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

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

在 Windows 上編譯 KiCad

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

Made with KiCad(119):基于 ESP32 的離線便攜式全球?qū)Ш叫l(wèi)星系統(tǒng)設(shè)備

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

KiCad 直播系列活動(dòng)預(yù)告(一):KiCad 9 新功能揭秘

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

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

Made with KiCad(十五):Glasgow調(diào)試工具(數(shù)字接口)

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

Made with KiCad(五):USB轉(zhuǎn)CAN適配器

Made with KiCad(二):Jetson Origin Baseboard

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

評(píng)論