Windows XP下USB整體結構

來源:互聯網
上載者:User

這裡主要講的是Windows XP下USB驅動協議棧的整體結構,以及內部的一些重要資料結構。在寫這些東西時,參考了大牛Tiamo的相關論壇貼子 ,內容很多雷同,說是轉貼也不為過。

USB協議棧是由如下幾個驅動檔案構成的:

usbport.sys    USB主機控制器共用驅動程式碼程式庫,供miniport驅動調用。
usbhub.sys    USB匯流排驅動,USB匯流排也是USB裝置的一種。
usbehci.sys    USB EHCI主機控制器驅動,它是屬於miniport驅動。
usbuhci.sys    USB UHCI主機控制器驅動,它是屬於miniport驅動。
usbohci.sys    USB OHCI主機控制器驅動,它是屬於miniport驅動。
usbd.sys        USB裝置驅動共用程式碼程式庫,供USB裝置驅動和匯流排驅動調用。

usbccgp.sys  USB複合裝置驅動。
usbstor.sys   USB存放裝置驅動。
usbaudio.sys USB聲音裝置驅動。
usbvideo.sys USB視頻裝置驅動。
hidusb.sys    USB HID裝置驅動。

主機控制器驅動是USB協議棧的最底層驅動,在它之上就是USB匯流排驅動,再之上是USB裝置驅動。

USB裝置驅動上面呢,一般還有其它的驅動。象usbstor上面還有存放裝置class驅動,hidusb上面還有HIDclass驅動。不過這上面的驅動,就和USB的驅動協議棧沒有多大的關係了。而裝置驅動和具體的裝置類有千絲萬縷的關係,不是我們要討論的重點。

這裡重點要討論的是控制器和匯流排,這是USB驅動協議棧的核心

我們知道,USB2.0有EHCI控制器,USB1.1有UHCI和OHCI控制器。這樣一共有三種控制器,它們之間有什麼區別呢?
這要先說一說控制器的作用,USB協議棧並不是憑空而建立起來的,它下層就是PCI匯流排驅動(一般而言,也不一定非得是PCI匯流排),而控制器的作用就是和PCI匯流排打交道,將USB的功能和操作轉變成PCI匯流排上的一系列操作,同時還兼任著usb匯流排的日常管理。

不同的硬體廠商都可以有它自己的一個控制器規範,這在USB協議出現早期尤為突出。但這樣各自為政畢竟對整個規範的發展不利,於是大家便開始統一介面規範,這統一規範能滿足大家的絕大部分需求,所以大家也就都用標準規範。USB
1.1時,就形成了OHCI和UHCI兩大陣營,而USB2.0時,則只有EHCI了,顯然,大家還是覺得標準越少麻煩越少。

對比一下UHCI和OHCI,兩者都是提供對USB1.1協議的支援,只不過,UHCI硬體實現相對較少而成本相對較低,但軟體驅動複雜度相對較高,所
以,UHCI多用在PC上,OHCI多用在嵌入裝置中
。而 EHCI 則是伴隨著USB
2.0規範一同出現(因為大家都受夠了要同時支援兩大規範的痛苦),它同時也向下相容UHCI和OHCI。

好了,廢話就說這麼多,再具體的網上可查。下面,就說說控制器驅動的事兒。各大控制器規範和底層PCI匯流排的介面差別比較大,但它控制USB匯流排那一塊的功能都基本上差不多 --
都是完全符合USB本身規範的。所以,各大控制器的驅動底層介面部分是各自為政,而USB匯流排管理部分則被提煉出來,形成一個共同的程式碼程式庫,名為
usbport.sys
。也就是說,usbport.sys並不是一個獨立的驅動,而只是一個供別人調用的動態連結程式庫。而這個動態連結程式庫由於實現了控制器驅動的絕大多數功能,所以,我們習慣地將它當作控制器驅動的主體。

講了usbport.sys是怎麼回事,順帶講講usbd.sys。usbd.sys和usbport.sys角色定位類似,它也只是作為一個動態連結程式庫供USB裝置驅動和USB匯流排驅動使用。不過,由於usbd.sys實現的功能很有限,作用沒有usbport.sys那麼突出,所以就顯得比較邊緣化,
在一般的討論中將它忽略掉。

關於USB驅動棧的整體結構就講到這裡,後續會具體講講usbhub.sys和usbport.sys所實現的功能。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.