<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > USB主設(shè)備在嵌入式中的功能

          USB主設(shè)備在嵌入式中的功能

          作者: 時(shí)間:2011-06-23 來(lái)源:網(wǎng)絡(luò) 收藏

          外圍彼此之間不能彼此通信,它們只能與具有節(jié)制總線能力的通信。直到比來(lái),也只有PC具有主能力。但今朝,良多微節(jié)制器也具有了主設(shè)備的,這使得應(yīng)用可以毗連加倍普遍的USB外圍設(shè)備。

          本文引用地址:http://www.ex-cimer.com/article/150573.htm

            USB閃存驅(qū)動(dòng)器是一種使用很是普遍的USB外圍設(shè)備,它已經(jīng)成為傳遞或存儲(chǔ)年夜量數(shù)據(jù)的廉價(jià)介質(zhì),許年夜都據(jù)記實(shí)設(shè)備恰是得益于它才得以成長(zhǎng)。對(duì)于遠(yuǎn)程的持久數(shù)據(jù)記實(shí),可以先采集,并存儲(chǔ)在閃存驅(qū)動(dòng)器中,然后帶回到便利剖析措置的處所。

            閃存驅(qū)動(dòng)器也可以用于向PC中傳輸高速時(shí)刻相關(guān)數(shù)據(jù)。PC是極好的數(shù)據(jù)剖析工具,但實(shí)時(shí)能力有限。相反,應(yīng)用出格適合實(shí)時(shí)數(shù)據(jù)采集,但數(shù)據(jù)剖析能力凡是很弱。嵌入式實(shí)時(shí)數(shù)據(jù)記實(shí)儀可以在閃存驅(qū)動(dòng)器上存儲(chǔ)數(shù)據(jù),然后把數(shù)據(jù)傳輸?shù)絇C上剖析,這樣二者的優(yōu)勢(shì)都獲得了充實(shí)的闡揚(yáng)。

            嵌入式USB主設(shè)備的應(yīng)用

            起頭嵌入式設(shè)計(jì)的首要使命之一是選擇微節(jié)制器。為了使用閃存驅(qū)動(dòng)器,微節(jié)制器就必需具有嵌入式USB主設(shè)備的能力。若是微節(jié)制器具有USB OTG(On-The-Go)或USB雙腳色(Dual Role),如Microchip公司的PIC24FJ256GB1微節(jié)制器,如圖1所示,它也可以撐持嵌入式USB主設(shè)備。USB外圍設(shè)備,有時(shí)也稱為USB設(shè)備模式,只能用作閃存驅(qū)動(dòng)器等,而不能和其他USB外圍設(shè)備通信。

            其次,設(shè)計(jì)者應(yīng)該確信能有完整的開(kāi)發(fā)工具。至少也需要一個(gè)器件編程器(若是有一個(gè)調(diào)試器是最好的)和一個(gè)C說(shuō)話編譯器,因?yàn)榍度胧経SB主設(shè)備和運(yùn)行在微節(jié)制器中的軌范往往是用C說(shuō)話而不是用匯編說(shuō)話編寫的。

            最后,設(shè)計(jì)者也應(yīng)該體味哪些軟件庫(kù)是可以獲得的,因?yàn)榍度胧皆O(shè)備發(fā)現(xiàn)閃存驅(qū)動(dòng)器時(shí)的握手操作需要USB設(shè)備類、FAT32文件系統(tǒng)和其他庫(kù)的撐持。從頭起頭設(shè)計(jì)撐持嵌入式USB主設(shè)備的工作會(huì)需要數(shù)月的時(shí)刻,而一個(gè)由經(jīng)由認(rèn)證的和談棧組成的方案可以節(jié)約相當(dāng)多的時(shí)刻。

            為了使用閃存驅(qū)動(dòng)器,嵌入式設(shè)備也需要一種USB海量存儲(chǔ)類(Mass Storage Class)設(shè)備的終端驅(qū)動(dòng)軌范、硬件呼吁行接口,以及文件系統(tǒng)接口。凡是,具有2Gb或更低存儲(chǔ)空間的閃存驅(qū)動(dòng)器使用FAT16文件系統(tǒng),而更年夜容量的閃存驅(qū)動(dòng)器將使用FAT32文件系統(tǒng)。設(shè)計(jì)要求

            一旦選定了微節(jié)制器,硬件設(shè)計(jì)就起頭了。USB硬件設(shè)計(jì)需要遵循以下良多軌則。

            ● 若是嵌入式主設(shè)備需要撐持USB設(shè)備類,它對(duì)外圍的供電就必需能夠供給500mA的電流。

            ● 若是嵌入式主設(shè)備需要撐持任何耗損電流跨越100mA的設(shè)備,它也必需能夠供給500mA的電流。

            ● 若是嵌入式主設(shè)備需撐持耗損電流100mA或更低的設(shè)備,那么VBUS電壓限制就可以降低到4.4V。然而,若是嵌入式主設(shè)備需撐持耗損電流跨越100mA的設(shè)備,那么VBUS電壓限制是 4.75V,就和全功能主設(shè)備一樣。

            ● 必需從頭設(shè)計(jì)無(wú)須用戶干與干與就可復(fù)位的過(guò)流呵護(hù)機(jī)制。

            ● 從USB毗連器到收發(fā)器之間的傳輸延遲必需在8ns之內(nèi)。

            ● 嵌入式USB主設(shè)備在VBUS上的電容必需年夜于120μF,而且USB OTG設(shè)備在VBUS上的電容必需為1.0?6.8μF。

            除以上軌則外,也必需細(xì)心考慮采用嵌入式USB主設(shè)備應(yīng)用的用戶接口。USB外圍設(shè)備凡是用在PC上,萬(wàn)一發(fā)生錯(cuò)誤就可以供給具體的錯(cuò)誤信息。若是LED指示燈閃灼,用戶能夠知道毗連失蹤敗了。USB規(guī)范也作了強(qiáng)制性的劃定,經(jīng)由認(rèn)證的USB嵌入式主設(shè)備必需供給錯(cuò)誤信息。換句話說(shuō),所有錯(cuò)誤信息必需被明晰地通知應(yīng)用層,也就是奉告用戶。

            經(jīng)由過(guò)程USB通信

            實(shí)現(xiàn)USB嵌入式主設(shè)備的一個(gè)最年夜挑戰(zhàn)就是要和各類各樣的USB外圍設(shè)備通信。雖然不是所有的閃存驅(qū)動(dòng)器產(chǎn)物都經(jīng)由過(guò)程了認(rèn)證,可是若是在嵌入式設(shè)備中一種閃存驅(qū)動(dòng)器可以正常使用,而另一種沒(méi)有任何原因就不能使用時(shí),用戶是不會(huì)歡快的。

            若是閃存驅(qū)動(dòng)器需要的上電時(shí)刻是許可最年夜時(shí)刻的兩倍或一半,或因?yàn)橹鳈C(jī)以最年夜許可的速度輪詢時(shí)閃存驅(qū)動(dòng)器被鎖住,以及因?yàn)殚W存驅(qū)動(dòng)器需要一種分歧的SCSI呼吁序列來(lái)成立通信等,這都不會(huì)有任何問(wèn)題。但若是這樣的閃存驅(qū)動(dòng)器在主設(shè)備上不能運(yùn)行,在PC上卻可以正常使用,用戶會(huì)批*這一主設(shè)備。是以,確保進(jìn)行普遍的測(cè)試,與多種沒(méi)有進(jìn)行認(rèn)證的USB外圍設(shè)備進(jìn)行通信,即使它只是一個(gè)拇指年夜的閃存驅(qū)動(dòng)器或一根電纜。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          關(guān)鍵詞: 功能 嵌入式 設(shè)備 USB

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();