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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > USB及其設(shè)備開發(fā)

          USB及其設(shè)備開發(fā)

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

          (Universal Serial Bus)通用串行總線。是1995年康柏、微軟、IBM、DEC等公司為解決傳統(tǒng)總線的不足而推廣的一種新型的通信標(biāo)準(zhǔn)。該總線接口具有安裝方便、高帶寬、易于擴(kuò)展等優(yōu)點(diǎn),已逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢。同時(shí)又是一種通信協(xié)議,支持主系統(tǒng)與其外設(shè)之間的數(shù)據(jù)傳送。

          1 的特點(diǎn)

          (1)速度快

          USB接口的傳輸速度高達(dá)4 80 Mb/s,和串口11 5 200 b/s的速度相比,相當(dāng)于串口速度的4 ooO多倍,完全能滿足需要大量數(shù)據(jù)交換的外設(shè)的要求。

          (2)使用方便,支持熱插拔

          其設(shè)備單獨(dú)使用自己的保留中斷,不會(huì)同其他設(shè)備爭奪PC機(jī)資源,不會(huì)涉及IRQ沖突問題。其驅(qū)動(dòng)程序和應(yīng)用軟件可自啟動(dòng)。

          (3)無需外接電源

          一些采用普通串口或并口設(shè)備比如打印機(jī)、掃描儀等都需要相應(yīng)的外接電源系統(tǒng),而USB外部設(shè)備直接利用USB接口提供的電源,能向低壓設(shè)備提供5 V的電源,無需外接專門的交流電源。

          (4)連接靈活

          USB接口支持多個(gè)不同設(shè)備的串列連接,1個(gè)USB口理論上可連接127個(gè)USB設(shè)備。連接方式既可使用串行連接,也可通過中樞轉(zhuǎn)接頭(即Hub)把多個(gè)設(shè)備連接在一起再和PC機(jī)的USB口相連接。

          2 USB接口針腳和信號定義

          USB使用一個(gè)4針插頭作為標(biāo)準(zhǔn)插頭。通過這個(gè)標(biāo)準(zhǔn)插頭,采用菊花鏈形式可以把所有的外設(shè)連接起來,并且不會(huì)損失帶寬。USB接口針腳如圖1所示。


          3.USB的結(jié)構(gòu)及傳輸方式

          3.1 USB的結(jié)構(gòu)

          USB采用菊花鏈結(jié)構(gòu),最多可以同時(shí)連接1 2 7臺(tái)設(shè)備,由總線提供電源,并有檢錯(cuò)、糾錯(cuò)功能以保證數(shù)據(jù)正確傳輸。usB規(guī)范將uSB分為5個(gè)部分:控制器、控制器驅(qū)動(dòng)程序、USB芯片驅(qū)動(dòng)程序、USB設(shè)備以及針對不同USB設(shè)備的驅(qū)動(dòng)程序。

          (1)控制器 主要負(fù)責(zé)執(zhí)行由控制器驅(qū)動(dòng)程序發(fā)出的命令。

          (2)控制器驅(qū)動(dòng)程序 在控制器與USB設(shè)備之間建立通信信道。

          (3)USB芯片驅(qū)動(dòng)程序 提供對USB的支持。

          (4)USB設(shè)備 包括與PC相連的USB外圍設(shè)備,分為2類:一類設(shè)備本身可再接其他USB外圍設(shè)備;另一類設(shè)備本身不可再連接其他外圍設(shè)備。前者稱為集線器,后者稱為設(shè)備?;蛘哒f,集線器帶有連接其他外圍設(shè)備的USB端口,而設(shè)備則是連接在計(jì)算機(jī)上用來完成特定功能并符合USB規(guī)范的設(shè)備單元,如鼠標(biāo)、鍵盤等。

          (5)設(shè)備驅(qū)動(dòng)程序 就是用來驅(qū)動(dòng)USB設(shè)備的程序,通常由操作系統(tǒng)或USB設(shè)備制造商提供。

          3.2 USB的傳輸方式

          針對設(shè)備對系統(tǒng)資源需求的不同,在USB規(guī)范中規(guī)定了4種不同的數(shù)據(jù)傳輸方式:

          (1)等時(shí)傳輸方式 該方式用來連接需要連續(xù)傳輸,且對數(shù)據(jù)的正確性要求不高而高而對時(shí)間極為敏感的外部設(shè)備,如麥克風(fēng)、音箱以及電話等。等時(shí)傳輸方式以固定的傳輸速率連續(xù)不斷地在主機(jī)與USB設(shè)備之間傳輸數(shù)據(jù),在傳送數(shù)據(jù)發(fā)生錯(cuò)誤時(shí),USB并不處理這些錯(cuò)誤,而是繼續(xù)傳送新的數(shù)據(jù)。

          (2)中斷傳輸方式 該方式傳送的數(shù)據(jù)量很小,但這些數(shù)據(jù)需要及時(shí)處理,以達(dá)到實(shí)時(shí)效果,此方式主要用在鍵盤、鼠標(biāo)以及游戲手柄等外部設(shè)備上。

          (3)控制傳輸方式 該方式用來處理主機(jī)USB設(shè)備的數(shù)據(jù)傳輸。包括設(shè)備控制指令、設(shè)備狀態(tài)查詢及確認(rèn)命令。當(dāng)USB設(shè)備收到這些數(shù)據(jù)和命令后,將依據(jù)先進(jìn)先出的原則按隊(duì)列方式處理到達(dá)的數(shù)據(jù)。

          (4)批傳輸方式 該方式用來傳輸要求正確無誤的數(shù)據(jù)。通常打印機(jī)、掃描儀和數(shù)碼相機(jī)以這種方式與主機(jī)連接。

          在這4種數(shù)據(jù)傳輸方式中,除等時(shí)傳輸方式外,其他3種方式在數(shù)據(jù)傳輸發(fā)生錯(cuò)誤時(shí),都會(huì)試圖重新發(fā)送數(shù)據(jù)以保證其準(zhǔn)確性。

          4 USB接口標(biāo)準(zhǔn)

          從1 9 94年11月11 IEI發(fā)布了USB V0.7版本以后,USB版本經(jīng)歷了6年的發(fā)展,到現(xiàn)在已經(jīng)到了2.0的版本。

          USB 1.1標(biāo)準(zhǔn)接VI傳輸速率為1 2 Mb/s,理論上可以支持1 27個(gè)裝置,通過USB Hub即USB擴(kuò)展器連接多個(gè)周邊設(shè)備,連接線纜的最大長度為5 m。

          COMPAQ,Hewlett Packard, Intel,Lucent,Microsoft,NEC和Philips這7家廠商聯(lián)合制定了USB 2·0接口標(biāo)準(zhǔn)。USB 2.0將設(shè)備之間的數(shù)據(jù)傳輸速度增加到了480 Mb/s,~gUSB 1.1標(biāo)準(zhǔn)快40倍左右,速度的提高對于用戶的最大好處是可以使用更高效的外部設(shè)備,而且具有多種速度的周邊設(shè)備都可以連接到USB 2.0的線路上,不像USB 1.1時(shí)代,因?yàn)楦邘捠沟酶嗟脑O(shè)備無需擔(dān)心數(shù)據(jù)傳輸時(shí)發(fā)生瓶頸效應(yīng)。USB 2.0可以使用原來USB定義中同樣規(guī)格的線纜,接頭的規(guī)格也完全相同,在高速的前提下同樣保持了USB 1.1的優(yōu)秀特色,也保證了向下兼容。


          上一頁 1 2 下一頁

          評論


          相關(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); })();