“Cynthion 是一款集 USB 設備構建、測試、監控和實驗于一身的工具。采用基于 FPGA 的獨特架構,其數字硬件可根據應用進行完全定制。因此,它可以充當不折不扣的高速 USB 協議分析儀、USB 黑客多功能工具或 USB 開發平臺。”
Made with KiCad 系列將支持新的展示方式。直接將以下鏈接復制到瀏覽器中(或點擊“閱讀原文”打開):
https://www.eda.cn/ecadViewer/viewerPage/?xmlId=991cf998-762d-415f-ac1f-3602afd1b7e6&fileZip=%2Fdata%2Fdesign%2Fdemo%2F991cf998-762d-415f-ac1f-3602afd1b7e6.zip 即可動態查看設計的原理圖、PCB、3D 及 BOM,查詢設計中器件、走線、焊盤的屬性詳情。還可以在原理圖中與AI小助手互動,幫您更高效地學習設計細節:
概覽 Cynthion 是用于構建、測試、監控和試驗 USB 設備的一體化工具。Cynthion 采用基于 FPGA 的獨特架構,其數字硬件可根據手頭的應用進行完全定制。因此,它可以充當高速 USB 協議分析儀、USB 研究多功能工具或 USB 開發平臺。 開箱即用的 Cynthion 是一款 USB 協議分析儀,能夠捕捉和分析主機與任何低速、全速或高速(“USB 2.0”)USB 設備之間的流量。它可與我們的開源分析軟件無縫配合。
與我們的 LUNA gateware(https://github.com/greatscottgadgets/luna)和 Facedancer (https://github.com/greatscottgadgets/facedancer)庫相結合,Cynthion 成為了一種多功能 USB 研究和開發工具。即使您沒有數字硬件設計、HDL 或 FPGA 架構方面的經驗,Facedancer 也能讓您快速輕松地創建或實驗真正的 USB 設備,而不僅僅是仿真!
核心功能
Cynthion 是一款完全可配置的測試儀器,它提供了掌握 USB 所需的所有硬件、網關、固件和軟件。以下是 Cynthion 可以應對的一些挑戰:
低速、全速和高速 USB 的協議分析。Cynthion 為您提供被動 USB 監控所需的一切。通過 Packetry USB 分析軟件,Cynthion 可為您提供被動 USB 監控所需的一切。
創建自己的低速、全速或高速 USB 設備。LUNA 提供的 Amaranth gateware 可讓您在 gateware、固件或兩者的組合中創建 USB 設備。使用 Facedancer 庫,您可以用高級 Python 創建或模擬真實的 USB 設備。
對 USB 通信的 “Meddler-in-the-Middle”(MitM)攻擊。Cynthion 硬件可充當 “USB 代理”,能夠在 USB 數據在主機和設備之間流動時對其進行透明修改。每塊電路板的三個 USB Type-C 接口可同時進行高速代理,并保持與主機的高速連接。因此,無論有無主機幫助,您都可以代理連接。
USB 逆向工程和安全研究。Cynthion 硬件和 LUNA gateware 為 Facedancer 和 USB-fuzzing 庫等研究工具提供了專用后臺,從而簡化了合規和不合規 USB 設備的仿真和快速原型開發。與其他 USB 仿真解決方案不同,基于 Cynthion 的硬件可動態重新配置,因此您可以靈活地創建任何端點配置并參與任何 USB 行為。
開源 USB 協議分析儀
Packetry 接口
Cynthion 包括低速、全速或高速 USB 協議分析所需的所有硬件,這意味著它可以提供與昂貴的商用 USB 分析儀(如 TotalPhase Beagle 480 或 LeCroy Mercury 系列)相同的核心功能。
不過,與現有的 USB 解決方案不同,Cynthion 的分析儀堆棧完全建立在強大的開源工具基礎之上。通過利用 Amaranth 庫和開源的 FPGA 工具。您可以根據手頭的任務對 Cynthion 進行定制,從而獲得獨特的功能,如用戶定義的硬件觸發和同時捕獲額外的外部或內部信號。
Cynthion 使用開源 Packetry 分析器前端,這是一款用于捕獲、查看和分析 USB 捕捉信號的快速跨平臺工具。Packetry 有助于使 USB 流量更易于人類讀取,同時還能流暢高效地處理大型高速捕獲。由于 Packetry 完全開源,您可以根據自己的需要進行定制。
學習 USB 的教育平臺
一套完全開源的培訓材料可幫助您了解 USB 的基本知識,包括 USB 基本要素的說明和示意圖,如圖所示的 USB 傳輸。
Cynthion 團隊在 USB 教育方面有著悠久的歷史。已經開發了許多不同難度的開源 USB 培訓課程。Cynthion 的可定制架構讓你不僅僅能看到數據包的變化,還可以接觸到每個級別的 USB 流量。如果你能將其拆開,探究其中的奧秘,并以巧妙的方式加以操作,那么學習其工作原理就會容易得多。Cynthion 為你提供了這種程度的控制。
輕松創建自己的 USB 設計
Cynthion 從底層開始構建,旨在簡化創建新 USB 設備的過程。無論你是資深的底層硬件設計人員,還是新人,Cynthion 都能在多個方面讓你的工作變得更輕松。
首先,Cynthion 的 Facedancer 后端允許您使用幾行 Python 語言快速描述整個自定義 USB 設備,這樣您就可以立即在真實硬件上試用它們。此外,Facedancer 還提供了一系列現有的設備模板,可幫助您快速入門:
# Using a Facedancer pre-made device, you can create a# "USB rubber ducky" with only a few lines of python!device = USBKeyboardDevice()async def type_letters(): await device.type_string('r', modifiers=KeyboardModifiers.MOD_LEFT_META) await asyncio.sleep(0.5) await device.type_string('calcn')main(device,type_letters())
此外,對于那些對 FPGA 設計感興趣的人來說,基于 Amaranth 的 LUNA gateware 庫使 USB gateware 的實現變得輕而易舉。
透明地處理 USB 數據
Cynthion 在處理現有 USB 設備和設計新設備時同樣有用。Cynthion 能讓你以透明的方式注入或修改 USB 數據:這讓你可以做一些原本不可能做到的事情。它對 Facedancer 的 USBProxy 的支持意味著,在線路上操作 USB 數據就像編寫幾行 Python 代碼一樣簡單:
# USBProxy makes manipulating USB data trivial!# The following few lines are enough to flip the X-axis# on a Nintendo-branded USB game controller:class SwitchControllerInvertXFilter(USBProxyFilter): def filter_in(self, ep_num, data): # The fourth byte of our packets contains the # joystick X position, as a number between 0 and 255. data[3] = 0xff - data[3]returnep_num,data
Cynthion 的 USB 外圍設備是為每個 USBProxy 應用程序定制的,因此您不會受限于特定的 USB 設備配置。理論上,它可以代理現有的任何 USB 設備!
逆向工程和安全研究工具
作為Great Scott Gadgets(GSG)公司的產品,Cynthion從一開始就是為創新研究而設計的,同時也支持多種安全和逆向工程應用:
通過實時 USB 分析,您可以觀察協議的傳輸過程。
創建和仿真 USB 設備的簡單工具可讓您快速開發與現有 USB 主機軟件兼容的硬件。
使用 LUNA 靈活的 USB 棧,您可以輕松生成不符合標準的流量,從而對各種主機或運行在這些主機上的軟件和驅動程序進行模糊處理!
USBProxy Meddler-the-Middle(MitM)功能使您能夠操縱在主機和設備之間傳輸的 USB 數據,這樣您就能 “看到 ”設備偏離既定協議時會發生什么。
技術規格
yosys+nextpnr 開源 FPGA 流程支持的 Lattice LFE5U-12F ECP5 FPGA
三個高速 USB 接口,每個接口都連接到 USB3343 PHY,工作速率高達 480 Mbps。
兩個USB Type-C 連接器(左側),用于設備模式通信的
一個 USB Type-C 連接器(右側),用于主機模式通信、設備模式通信或 USB 分析
一個 USB Type-A 連接器,用于主機模式通信或 USB 分析(右側,與 Type-C 連接器共用)
Microchip SAMD11 調試控制器允許用戶對 FPGA 進行配置,并提供多個診斷接口:
完整的用戶可編程 JTAG 控制器,能夠配置 FPGA 并通過 JTAG 與用戶設計進行通信
用于 FPGA 調試輸入/輸出的內置 USB 轉串行通信橋接器
各種簡單的內置調試機制,包括允許您創建簡單、PC 可訪問的寄存器接口的實用程序
三個 USB 電源開關允許您控制右側 USB 連接器的供電和從 USB 連接器供電,從而為分析中的 USB 供電設備的受控電源循環提供便利。
64 Mbit (8 MiB) RAM 用于緩沖 USB 流量或用戶應用程序
兩個 Digilent Pmod 兼容 I/O 連接器提供 16 個高速 FPGA 用戶 IO,支持用戶 FPGA 應用
32 Mbit (4 MiB) SPI 連接閃存,用于無 PC FPGA 配置
6 個 FPGA 連接的用戶 LED 和 5 個微控制器管理的狀態 LED
一個 PAC1954 4 通道 I2C 電源監控器 IC,用于測量所有四個 Cynthion USB 端口的 VBUS 電壓和電流。
兩個 FUSB302B I2C Type-C 端口控制器,用于 AUX 和 TARGET-C 端口,支持 USB Power Delivery 或自定義 Type-C 行為。
同類產品比較
原理圖 & PCB
License CERN-OHL-P-2.0 license
倉庫 & 下載
可以在Github中獲取開源倉庫:
https://github.com/greatscottgadgets/cynthion-hardware
Baidu 下載:
注意:如果想第一時間收到 KiCad 內容推送,請點擊下方的名片,按關注,再設為星標。
常用合集匯總:
和 Dr Peter 一起學 KiCad
KiCad 8 探秘合集
KiCad 使用經驗分享
KiCad 設計項目(Made with KiCad)
常見問題與解決方法
KiCad 開發筆記
插件應用
發布記錄
審核編輯 黃宇
-
usb
+關注
關注
60文章
8071瀏覽量
269958 -
KiCAD
+關注
關注
5文章
218瀏覽量
9280
發布評論請先 登錄
Made with KiCad(九十八):USB-C 的 Raspberry PiCo 2

Made with KiCad:Tangara 便攜式音樂播放器
Made with KiCad(122):ANAVI Miracle Emitter

在 Windows 上編譯 KiCad

KiCad直播活動(三):在 Windows上編譯KiCad 手把手教您編譯/構建 KiCad 源碼

Made with KiCad(119):基于 ESP32 的離線便攜式全球導航衛星系統設備

Made with KiCad(118):Inkplate 4 TEMPERA 墨水屏終端

KiCad 直播系列活動預告(一):KiCad 9 新功能揭秘

Made with KiCad(116):GreatFET One 硬件黑客最佳搭檔

Made with KiCad(115):Yard Stick One 無線測試工具(USB接口)

Made with KiCad(十五):Glasgow調試工具(數字接口)

Made with KiCad(九):OtterCast音頻流設備

Made with KiCad(二):Jetson Origin Baseboard

Made with KiCad(106):ScopeFun 多功能開源儀器

評論