新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式系統(tǒng)的USB(HID)設(shè)備設(shè)計(jì)

        基于嵌入式系統(tǒng)的USB(HID)設(shè)備設(shè)計(jì)

        作者: 時(shí)間:2013-10-12 來源:網(wǎng)絡(luò) 收藏

          0 引言

          目前在數(shù)字化電子產(chǎn)品領(lǐng)域應(yīng)用越來越廣泛。隨著其成本的降低,大有取代單片機(jī)的趨勢。 設(shè)備以其小巧、便攜、即插即用、成本低廉等優(yōu)勢在當(dāng)前的桌面應(yīng)用中有相當(dāng)?shù)谋戎兀绕涫?a class="contentlabel" href="http://www.104case.com/news/listbylabel/label/HID">HID(人機(jī)接口)設(shè)備,其免驅(qū)的特點(diǎn)(不用安裝驅(qū)動(dòng)程序)更是給用戶帶來極大方便。現(xiàn)在市場上 設(shè)備多是由專門的 控制芯片來實(shí)現(xiàn)其應(yīng)用控制,芯片內(nèi)集成了USB 協(xié)議,成本較高。PCB 板的面積較大。本文提出了僅用一片MCU(微處器-單片機(jī))或芯片來實(shí)現(xiàn)其與PC 機(jī)的通訊的方法。就單片機(jī)而言,多數(shù)單片機(jī)速度較慢,對事件的響應(yīng)能力較弱,對全速USB 應(yīng)用不是很好的選擇。而,由于其速度較之單片機(jī)快很多,內(nèi)部RAM 容量較大,用其來仿真USB 設(shè)備是個(gè)理想的策略。

          本文將以LM310 嵌入式芯片仿真USB()鍵盤為例,研究其仿真USB 的方法。

          1 USB 協(xié)議規(guī)范

          1.1 總線定義:

          USB 又稱通用串地總線,共有四條線,如圖1 所示,VBUS 是設(shè)備供電接線,電壓+5V,最大供電電流500mA,向設(shè)備提供電源。具有過流保護(hù)、供電控制等功能。D-低速信號線;D+全速信號線;GND 電源地。


          1.2 USB 版本

          常規(guī)USB 通訊協(xié)議有USB1.1、USB2.0。USB1.1 版本的USB 設(shè)備,支持全速12Mb/S 低速通訊(1.5Mb/S);USB2.0 版本的USB 設(shè)備,支持高速通訊(480Mb/S)。由于USB2.0 的通訊速率太高,所以用芯片仿真無法實(shí)現(xiàn)(必須由單獨(dú)芯片控制)。

          1.3 總線長度

          USB1.1 版本的設(shè)備總線長度不大于5 米,通過集線器或中繼器,可達(dá)到30 米95 個(gè)中斷器或集線器)。U2.0 設(shè)備總線長度不大于3 米。

          1.4 通訊建立

          串口通訊另一個(gè)標(biāo)準(zhǔn)RS232 的通訊發(fā)起方可以從兩端發(fā)起,而USB 通訊發(fā)起方總是在主機(jī)端(HOST),設(shè)備端總是響應(yīng)主機(jī)端的通訊請求。主機(jī)端如果是PC 機(jī),每隔1ms 發(fā)起一次對一個(gè)設(shè)備的通訊建立請求,設(shè)備接收到訪問己方請求后,立即與主機(jī)建議起通訊連接。

          1.5 電氣特性

          對于“D-是低帶信號總線,D+是高速信號總線是高速總線”的說法是不準(zhǔn)確的,因?yàn)閁SB 信號總線是平衡差分式的,這點(diǎn)類似于485 總線。所謂“在-是低速信號總線”是指當(dāng)US 陽低速設(shè)備(如鼠標(biāo)、鍵盤) 時(shí),D-這條線在USB 設(shè)備端加1.5K 上拉電阻。反之對于全速設(shè)備(如U 盤、打印機(jī)、掃描儀),D+信號線加1.5K 上拉電阻。

          關(guān)于D+、D-信號線上的電壓淺談一下,類似于485 總線,當(dāng)485 總線的A 相電壓大,B相電壓200mV 時(shí),差分放大器輸出邏輯“1”,反之“0”,USB 總線在低速設(shè)備端D-電壓如大于2.0V,D+電壓小于0.8V 為邏輯“1”反之為“0”,在主機(jī)端,一根為大于2.8V,另一根小于0.3 發(fā),在此主機(jī)端不做深入探究。

          1.6 NRZI 編碼及位填充

          由于USB 總線沒有同步時(shí)鐘信號線,想要主機(jī)與設(shè)備建立良好通訊同步效果,只有從數(shù)據(jù)序列中提取同步時(shí)鐘。類似RS232 串口通訊,USB 通訊的建立也有起始信息,RS232 是一個(gè)起始位,而USB 起始位也有8 位,稱之為同步域(或段)格式為01010100。由于RS232 的通訊速率較低,所以兩端同步時(shí)鐘不大于5%即可實(shí)現(xiàn)良好通訊。然而USB 通訊最低速率也大于1Mb/S,對于時(shí)鐘的同步要求嚴(yán)格的多,況且USB 的數(shù)據(jù)包中的每個(gè)字節(jié)不象RS232 每個(gè)字節(jié)都有起始位(僅在包頭有同步域)。鑒此,USB 通訊時(shí)必須在數(shù)據(jù)包的位序列中提取同步信息。想象一下,如果數(shù)據(jù)包序列中數(shù)據(jù)位全是邏輯“1”或者全是邏輯“0”,芯片是無法提取同步信息的,為此需要一個(gè)高效的編碼方案,于是就有了NRZI 和位填充概念。何謂NRZI,看圖2 所示,NRZI 是非“1”跳變。由圖可知問題只解決一半,USB 規(guī)范約定當(dāng)序列1 1中連續(xù)出現(xiàn)6 個(gè)邏輯“1”時(shí)加進(jìn)一位“0”,如此問題全部解決,只不過是需要在接收后除去加進(jìn)的一個(gè)位“0”,加進(jìn)一位“0”的過程就是位填充。


          1.7 USB 通訊模式

          共四種模式:控制傳輸、等時(shí)傳輸、中斷傳輸、批量傳輸。

          1.8 端點(diǎn)

          端點(diǎn)也可稱為設(shè)備終端,每個(gè)USB 設(shè)備(USB 芯片)內(nèi)可以有1—16 個(gè)端點(diǎn),相對USB 芯片而言,各端點(diǎn)在通訊*能傳輸?shù)臄?shù)據(jù)包的大小和傳輸模式有所不同。在芯片內(nèi)數(shù)據(jù)緩沖區(qū)的地址也有所變化。

          2 嵌入式芯片(LM3S310)

          Stellaris 系列微控制器(包括L3 同S310)是以ARM CortexTM-M3 為內(nèi)核設(shè)計(jì)的。與早期的ARM7 相比較有功耗更低、中斷延時(shí)更小、代碼執(zhí)行速度更快、價(jià)格更低等優(yōu)勢。

        上拉電阻相關(guān)文章:上拉電阻原理
        三維掃描儀相關(guān)文章:三維掃描儀原理

        上一頁 1 2 下一頁

        關(guān)鍵詞: 嵌入式系統(tǒng) USB HID

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 盖州市| 嘉黎县| 兴山县| 铜梁县| 吉木萨尔县| 大邑县| 公安县| 海南省| 丹寨县| 甘德县| 福鼎市| 石门县| 天门市| 新乡县| 景泰县| 溧水县| 阿巴嘎旗| 阳山县| 荔浦县| 建瓯市| 汝州市| 祁门县| 北安市| 龙井市| 定襄县| 子长县| 浮梁县| 阿拉尔市| 同心县| 清新县| 东乌珠穆沁旗| 阳高县| 山丹县| 鄂托克旗| 南丹县| 鲁甸县| 绥棱县| 武夷山市| 金乡县| 哈巴河县| 阜平县|