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