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

          新聞中心

          USB的低層結(jié)構(gòu)

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

          設(shè)備
          的設(shè)備可以接在PC上的任意的接口上。而使用HUB還可以擴(kuò)展使更多的 USB設(shè)備連接到系統(tǒng)中,USB的HUB有一個(gè)上行的端口(到host),有多個(gè)的下行端口(連接其它的設(shè)備),從而可以使整個(gè)的系統(tǒng)可以擴(kuò)展的連接 127個(gè)外設(shè),其中HUB也酸外設(shè)。對(duì)于USB系統(tǒng)來(lái)說(shuō),USB的host永遠(yuǎn)是PC邊,所有的其他連接到host都稱為設(shè)備,在設(shè)備與設(shè)備之間是無(wú)法實(shí) 現(xiàn)直線通信的,只有通過(guò)host的管理與調(diào)節(jié)才能夠?qū)崿F(xiàn)數(shù)據(jù)的互相傳送.在系統(tǒng)中,通常會(huì)有一個(gè)根HUB,這個(gè)HUB一般有兩個(gè)下行的端口。
          一個(gè)PC可以擁有一個(gè)或多個(gè)的USB host控制器。一般有兩種類型的控制器:UHCI(USB host控制器接口),OHCI(開放的host控制器接口)。Windows的USB類驅(qū)動(dòng)程序?qū)τ诿恳环N的控制器類型都有一種miniclass驅(qū)動(dòng)程序來(lái)支持。

          USB的物理信號(hào)
          USB的電纜有四根線,兩根傳送的是5V的電源,有一些直接和電源HUB相連的設(shè)備可 以直接利用它來(lái)供電。另外的兩根是數(shù)據(jù)線,數(shù)據(jù)線是單工的,在整個(gè)的一個(gè)系統(tǒng)中的數(shù)據(jù)速率是一定的,要么是高速,要么是低速,沒有一個(gè)可以中間變速的設(shè)備 來(lái)實(shí)現(xiàn)數(shù)據(jù)碼流的變速.在這一點(diǎn)上,USB和1394有明顯的差別。
          USB的總線可以在不使用的時(shí)候被掛起,這樣一來(lái)就可以節(jié)約能源。
          在有些時(shí)候的總線還有可能擋機(jī)(stall),比如說(shuō)象數(shù)據(jù)傳送的時(shí)候突然被打斷,這個(gè)時(shí)候通過(guò)host的重新配置可以實(shí)現(xiàn)總線的重新工作。

          低層協(xié)議
          USB的物理協(xié)議規(guī)定了大多數(shù)的在總線上的數(shù)據(jù)格式,通常一個(gè)全速的數(shù)據(jù)楨可以最多有的1500bytes,而對(duì)于低速的楨最多有187bytes。
          楨通常是用來(lái)分配帶寬給不同的數(shù)據(jù)傳送方式。同時(shí)由于楨結(jié)構(gòu)的規(guī)律性,楨的這種特性也可以用來(lái)做同步信號(hào)來(lái)使用。
          一個(gè)最小的USB的數(shù)據(jù)塊叫做包(packet),包包括同步信號(hào),包標(biāo)識(shí)(packet ID),CRC和傳送的數(shù)據(jù)。Packet ID共有以下十種:
          token OUT IN SOF SETUP
          data DATA0 DATA1
          handshake ACK NAK STALL
          special PRE

          Transactions(數(shù)據(jù)交換)
          一個(gè)transaction是在host和設(shè)備(device)之間的不連續(xù)相互數(shù)據(jù) 交換,通常由host開始交換,交換的開始是由Token的包開始的,接下來(lái)是雙方向上的數(shù)據(jù)包,在數(shù)據(jù)包傳送完之后,就會(huì)由設(shè)備(device)返回一 個(gè)握手(handshake)包。USB系統(tǒng)通過(guò)IN,OUT,和SETUP的包來(lái)指定USB地址和endpoint(最多是128個(gè),0通常被用來(lái)用做 缺省的傳送配置信息的),并且這些被指定的設(shè)備必須通過(guò)上面形式的包來(lái)回應(yīng)這種形式的指定。每個(gè)SETUP的包包含8個(gè)byte的數(shù)據(jù),數(shù)據(jù)用來(lái)指示傳送 的數(shù)據(jù)類型。對(duì)于DATA數(shù)據(jù)包來(lái)說(shuō),設(shè)置兩種類型的數(shù)據(jù)包是為了能夠在傳送數(shù)據(jù)的時(shí)候做到更加的精確。ACK handshake的包用來(lái)指示數(shù)據(jù)傳送的正確性,而STALL handshake則表示數(shù)據(jù)包在傳送的過(guò)程中出了故障,并且請(qǐng)示host重新發(fā)數(shù)據(jù)或者清除這次傳送。PRE格式的包主要是用在在一個(gè)USB的系統(tǒng)中如 果存在不同速率的設(shè)備的時(shí)候,將不同于總線速度的設(shè)備中就會(huì)回應(yīng)一個(gè)PRE的包從而會(huì)忽略該設(shè)備。
          各種不同類型的包的大小是不同的,DATA的數(shù)據(jù)包最大是1023bytes.

          Start of Frame(SOF)
          SOF是host用來(lái)指示frame的開頭的。SOF的包包括11個(gè)bit的楨序號(hào),從0到0X7FF(i.e. USBD_ISO_START_FRAME_RANGE-1),SOF對(duì)于所有的高速設(shè)備來(lái)說(shuō)是有效的。

          Power
          每個(gè)設(shè)備可以從總線上獲得100mA的電流,如果特殊的向系統(tǒng)申請(qǐng),最多可以獲得500mA的電流,在掛機(jī)的狀態(tài)下,電流只有500uA.

          驅(qū)動(dòng)程序的安裝步驟
          Windows用設(shè)備描述字或者接口描述字來(lái)了解到底是什么樣的設(shè)備被接入到系統(tǒng)。 Windows初始化的Hardware ID中有設(shè)備提供商的ID域(IDVendor,IDProduct,和BCDDevice)。如果你沒有向系統(tǒng)提供一個(gè)INF文件的話,系統(tǒng)就會(huì)自動(dòng)選 擇提供一個(gè)兼容ID(可能不是工作得很好,就像你買了一個(gè)Rockswell的Modem,而你使用標(biāo)準(zhǔn)Modem的驅(qū)動(dòng)程序,你的Modem可能會(huì)工作 的有很多的毛病,也可能跑得飛快,電腦的事情,什么都可能發(fā)生,就像中國(guó)足球........我在九四年就發(fā)誓不再為中國(guó)足球惱火,可是俺前不久還是罵了 一下那個(gè)叫章魚鱗的小伙子,怎么就.......好歹還是一孩子,就原諒一回吧,哎!)

          USB的新特性
          共享性 一個(gè)物理設(shè)備可以使用許多不同的pipe
          實(shí)時(shí)性 可以實(shí)現(xiàn)和一個(gè)設(shè)備之間有效的實(shí)時(shí)通信
          動(dòng)態(tài)性 可以實(shí)現(xiàn)接口間的動(dòng)態(tài)切換
          聯(lián)合性 不同的而又有相近的特性的接口可以聯(lián)合起來(lái),
          多能性 各個(gè)不同的接口可以使用不同的供電模式
          自動(dòng)性 缺省的pipe的使用使基系統(tǒng)的建立和配置變得自動(dòng)并且快速



          關(guān)鍵詞: USB 低層結(jié)構(gòu)

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