基于嵌入式系統(tǒng)的USB(HID)設(shè)備設(shè)計
3 實現(xiàn)原理
由于LM3S310 控制器每個GPIO 都可配置為中斷引腳,所以在這個應(yīng)用中只需要用兩個同Port 的兩個相鄰引腳仿真USB 的D+和D-,圖3 所示。
4 軟件設(shè)計
圖4 是一個簡化程序流程圖,實際編程中還有很多細(xì)節(jié),在此不再羅列。下面以中斷傳輸為例,將一個事務(wù)不同階段思想重點研討。
LM3S310 芯片利用兩個GPIO(USB)的中斷監(jiān)控USB 總線,當(dāng)USB 總線從空閑狀態(tài)變?yōu)閭鬏敔顟B(tài),也就是總線由主機(jī)發(fā)起與同步域(SYN),LM3S310 進(jìn)入USB 接收程序。略過同步階段,收到的第一個字節(jié)是PID 字段(包標(biāo)識類型)。這字段的低四位描述此包類型方向(IN 或OUT),接下來7 位表示設(shè)備的地址,然后是四位端點號索引。LM3S310 根據(jù)設(shè)備地址判定主機(jī)向本設(shè)備發(fā)起的請求,如果是則根據(jù)包的類型決定繼續(xù)接收數(shù)據(jù)或向主機(jī)發(fā)送數(shù)據(jù)。對OUT 類型數(shù)據(jù)的后5—16 位是CRC 校驗(根據(jù)配置決定CRC 的位數(shù))。對IN 類型,LM3S310將準(zhǔn)備好數(shù)據(jù)連同RC 校驗數(shù)據(jù)一同發(fā)往主機(jī)。數(shù)據(jù)傳輸階段完成后,主機(jī)或設(shè)備要確認(rèn)傳輸成功。
對于低速設(shè)備的仿真,LM3S310 芯片的速度足以滿足要求(包括一些速度較快單片機(jī),如:PIC、EMP、MSP),然而對全速設(shè)備的仿真,須要選擇速度更快嵌入式芯片,軟件實現(xiàn)的原理方法基本相同。
5 結(jié)論
使用微控制器仿真USB 設(shè)備的方法,極大地方便了用戶的開發(fā),同時降低了功耗、成本。本文作者創(chuàng)新點在于利用MCU 或嵌入式控制器實現(xiàn)USB 設(shè)備功能。本方法在USB 讀卡器、USB 編程器、USB 接口轉(zhuǎn)RS232 及RS485 接口等方面有良好的應(yīng)用前景。
參考文獻(xiàn):
[1].PCBdatasheethttp://www.dzsc.com/datasheet/PCB_1201640.html.
[2].PC datasheethttp://www.dzsc.com/datasheet/PC+_2043275.html.
[3].LM310 datasheethttp://www.dzsc.com/datasheet/LM310+_838172.html.
[4].RS232 datasheethttp://www.dzsc.com/datasheet/RS232+_585128.html.
[5].RS485 datasheethttp://www.dzsc.com/datasheet/RS485+_585289.html.
評論