|
各位前輩好
標(biāo)題不知道該怎麼下才好, 故先用USB to I2C當(dāng)標(biāo)題
第一次寫USB to other interface的需求, 很多方面都不了解
規(guī)劃上, 不知道該選擇何種protocol會比較好開發(fā)
故想求助一些方向,如果有現(xiàn)成的原代碼可以參考更好
目前的問題如下
MCU上有下列多組interface
I2C (4組)
SPI (4組)
UART (3組)
PWM (原生2組+2組GPIO模擬)
SDIO (一組 for SD card)
想利用USB 2.0 interface串接起來 (USB to I2C/SPI/UART/PWM/SD)
USB2.0 endpoints 5 in /5 out
目前研究了幾種方式
1. 使用IAD 複合式 的方式,但發(fā)現(xiàn)光是 CDC endpoints 數(shù)目會不夠用
IAD -> CDC-ACM -> UART (3 endpoints * 4)
-> ...
2. Vendor-Specific
參考市面上的USB to UART
它們的作法是使用 Vendor-Specific
以Interrupt IN / Bulk in/out 三個endpoints 來作
但該傳哪些資料/哪些Byte代表什么意思 , 需全部自定義
但 有一個疑問點為
如果在 USB to I2C/SPI/UART/PWM 之下
需要更多的endpoints 嗎?
3. 使用HID
目前于網(wǎng)路上有查詢到 MS 有定義過 USB HID I2C的 spec
但著墨不多, 范例也少
直覺上 USB to I2C/SPI/UART/PWM
也需自定義, 但是基于自定義Report descriptor的架構(gòu)上 去實現(xiàn)
關(guān)于2跟3,如日后driver和application 會在linux 上開發(fā)
會建議使用哪種方式較佳呢?
關(guān)于這類USB to XXX interface的部分 有網(wǎng)站或文件可以推薦參考嗎?
|
|