Usb設備驅動1:root hub 設備驅動安裝


按照設備模型的總線,設備,驅動模式,一條總線會把所有這條總線上的設備和驅動都掛載到總線的設備鏈表和驅動鏈表上,具體到usb總線上,就是usb主控制器,hub等設備,都需要按照設備模型的要求,作為設備掛載到usb總線的設備鏈表上,同時也需要把usb主控制器,hub的驅動也掛載到驅動鏈表上,並且使得設備和設備驅動能夠相互關聯起來,才能使得設備能夠使用,完成應有的設備功能。

那么usb hub驅動是如何被掛載的,驅動又是如何跟hub設備關聯在一起的?

首先,要有一條usb總線,就必須有一個usb主控制器,一個usb主控制器對應一條usb總線。一個系統有多少個usb主控制器,就有多少條usb總線,我們常見的UHCI,OHCI,ECHI等,就是不同的usb主控制器類型。一般的,這些主控制器都是PCI接口的,通過加載對應的PCI設備驅動,使得系統增加了usb總線,而這些,都是在我們現在的工作之前完成的。

其次,現在的usb主控制器,都集成了一個根集線器,在我們驅動好usb主控制器后,接下來就是使用設備模型的方式,把根集線器(root hub)作為一個設備添加到usb總線的設備隊列里,同時,從總線的驅動隊列中查找是否有可以支持這個設備的驅動程序,如果查找到,就可以按照設備模型的三角關系,把設備,驅動,總線通過相應的指針關系,把他們都關聯起來;如果找不到驅動,則root hub就不能正常的工作,只能在總線的設備隊列中等待有驅動安裝時,再匹配是否OK;如果一直都沒有對應的驅動,則這條總線也就沒有辦法掛載其他的設備了。

Root hub匹配成功驅動后,就循環運行一個進程,以發現hub的端口有設備插入或拔除。

大致的流程圖如下:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM