USB最初在設(shè)計時,是為了能夠針對具備如傳輸率,、響應(yīng)時間以及錯誤幀錯等特性的許多不同外圍類型來加以考量的。而其中,,4種數(shù)據(jù)傳輸能夠掌握不同的應(yīng)用需求,。在此,針對不同的外圍設(shè)備類型與應(yīng)用,,定義了4種傳輸類型,,分別是控制傳輸(control transfer)、中斷傳輸(interrupt transfer)、批量傳輸(bulk transfer)以及等時傳輸(isochronous transfer),。其中,,要特別注意的是慢速設(shè)備僅支持控制傳輸與中斷傳輸。表列出了每一種傳輸類型的特性與使用方式,。
表 USB規(guī)范中各種傳輸類型的特性與使用方式 基本上針對不同設(shè)各的應(yīng)用特性,,應(yīng)個別地執(zhí)行中斷傳輸、批量傳輸或等時傳輸,。并不是都一定要支持這些傳輸類型,,只不過在這之前都須預(yù)先執(zhí)行控制傳輸,并執(zhí)行下一章所要介紹的設(shè)各列舉,,以了解這個設(shè)各的特性并設(shè)置地址,。換而言之,也即是每一個設(shè)各都須支持控制傳輸,。而在USB 1.x規(guī)范時,,若PC主機同時連接了多種不同特性的設(shè)備時,這4種傳輸類型就同時分布于1 ms的幀內(nèi),。至于各種傳輸類型是如何分配這1 ms的帶寬呢,?如圖1所示,為在1.x規(guī)范時,,各種傳輸或設(shè)備在總線上分享帶寬的情形,。
圖1 各種傳輸類型或設(shè)備共享寬帶的示意圖
根據(jù)第1章所描述的主機控制器的類型(通用式主機控器UI-IC與開放式主機控制器OHC),各種傳輸所放置的順序與帶寬是略有不同的,。以下針對這兩種主機控器來分別介紹,。
1.通用式主機控制器UIIC
如圖2(a)所示,周期性的傳輸(如中斷傳輸與等時傳輸)放置于最前端,,后面再緊接著控制傳輸與批量傳輸,。要特別注意的是,控制傳輸至少要分配10%的總線帶寬,,因此周期性的傳輸最多能使用90%的總線帶寬,。所以中斷傳輸與等時傳輸是以予先聲明好的帶寬執(zhí)行于端點描述符中來加以設(shè)置。而批量傳輸才根據(jù)整個總線剩下自帶寬,,隨時動態(tài)地調(diào)整傳輸速率,。因此,不具同步與實時性,。
圖2 兩種主機控制器的傳輸排序的差異圖
2.開放式主機控制器0HC
如圖2(b)所示,,最前面放置的是非周期性傳輸,緊接著中間放人周期性傳輸,,至最后才又執(zhí)行非周期性傳輸,。而如同通用式主機控制器,,10%的總線帶寬仍須預(yù)留外周期性的傳輸即中斷傳輸與等時傳輸也至多能分配90%的總線帶寬。如果仍有剩余的帶寬,,則再另外分配給非周期性傳輸,,如批量傳輸。
因此,,雖然在這兩種主機控制器中,,各種傳輸類型執(zhí)行的先后順序有所不同,但卻執(zhí)行相同的工作,。目前,,幾乎都支持通用式主機控制器。而Windows操作系統(tǒng)都支持這兩種主機控制器,。在USB 2.0規(guī)范中,,新增了新的主機控制器接口。這個EHCI(Enhanced Host Controller Interface)標準是由Intel,、Compaq,、NEO,、Lucent與Microsoft等主要的公司所提出的,。在這個增強型主機控制器接口(EHCI)規(guī)范中,描述了針對USB 2.0的主機控制器的緩存器層接口,。此外,,也涵蓋了介于系統(tǒng)軟件與控制器硬件之間的硬件/軟件接口的敘述。