總線驅(qū)動是不用改的,內(nèi)核都幫我們做好了,為了了解整個USB驅(qū)動的體系,我們來分析一下總線驅(qū)動程序。
一.總線框圖
總線的圖畫的已經(jīng)非常清楚了,這篇博客我們分析的是左邊的程序,在下篇我們想通過USB鍵盤這一實際例子來講解。
二.程序?qū)崿F(xiàn)
1. 由于代碼太多且關(guān)系復雜這里只列出調(diào)用的函數(shù)(沒有寫參數(shù))。從插入USB設(shè)備,到調(diào)用USB設(shè)備驅(qū)動程序,這一過程。
2.總線驅(qū)動程序都做了什么
a. 識別USB設(shè)備
1. 分配地址
2. 并告訴USB設(shè)備(set address)
3. 發(fā)出命令獲取描述符(描述符的信息可以在include\linux\usb\Ch9.h看到)
b. 查找并安裝對應的設(shè)備驅(qū)動程序
c. 提供USB讀寫函數(shù)
盡管USB本身所屬設(shè)備驅(qū)動的結(jié)構(gòu)與不掛在USB總線上時完全相同,但是在訪問方式上卻發(fā)生了很大的變化。例如,對于字符設(shè)備驅(qū)動而言,盡管仍然是write(), read(), ioctl()這些函數(shù),但是在這些函數(shù)中,與USB設(shè)備通信時不再是I/O內(nèi)存和I/O端口的訪問,而貫穿始終的是稱為URB的USB請求塊,這些請求塊通過USB總線驅(qū)動提供的讀寫等接口進行操作。
-
總線
+關(guān)注
關(guān)注
10文章
2904瀏覽量
88421 -
USB驅(qū)動
+關(guān)注
關(guān)注
1文章
137瀏覽量
20284
原文標題:看完就會是不可能的,USB驅(qū)動之總線驅(qū)動程序
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
usb網(wǎng)卡驅(qū)動程序下載(萬能全集)
![<b class='flag-5'>usb</b>網(wǎng)卡<b class='flag-5'>驅(qū)動程序</b>下載(萬能全集)](https://file.elecfans.com/web2/M00/48/81/pYYBAGKhtAqAZcKRAAAWB28fw0M508.jpg)
Windows CE 下通用串行總線(USB)驅(qū)動程序開發(fā)
EZ USB 通用驅(qū)動程序說明
USB設(shè)備的WDM驅(qū)動程序設(shè)計
USB接口驅(qū)動程序開發(fā)
![<b class='flag-5'>USB</b>接口<b class='flag-5'>驅(qū)動程序</b>開發(fā)](https://file.elecfans.com/web2/M00/49/52/pYYBAGKhtEaABjgzAAATewyGTC0311.jpg)
USB總線數(shù)據(jù)采集設(shè)備驅(qū)動程序的設(shè)計
![<b class='flag-5'>USB</b><b class='flag-5'>總線</b>數(shù)據(jù)采集設(shè)備<b class='flag-5'>驅(qū)動程序</b>的設(shè)計](https://file1.elecfans.com//web2/M00/A6/36/wKgZomUMPE2AWSIhAAAORmtid3o816.jpg)
HC6800的USB驅(qū)動程序
WinCE_Net系統(tǒng)下USB總線驅(qū)動程序實現(xiàn)的研究
![WinCE_Net系統(tǒng)下<b class='flag-5'>USB</b><b class='flag-5'>總線</b><b class='flag-5'>驅(qū)動程序</b>實現(xiàn)的研究](https://file.elecfans.com/web2/M00/4A/21/pYYBAGKhvJ2AR3SiAABCRiaqx-8842.png)
CDM20600驅(qū)動程序,USB驅(qū)動程序和并口驅(qū)動應用程序(免費下載)
![CDM20600<b class='flag-5'>驅(qū)動程序</b>,<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動程序</b>和并口<b class='flag-5'>驅(qū)動</b>應用<b class='flag-5'>程序</b>(免費下載)](https://file.elecfans.com/web1/M00/52/BA/o4YBAFsXh5SAbiYeAALhTnT6-PM115.png)
Linux設(shè)備驅(qū)動程序的平臺驅(qū)動程序和字符驅(qū)動程序介紹
如何使用Linux內(nèi)核實現(xiàn)USB驅(qū)動程序框架
![如何使用Linux內(nèi)核實現(xiàn)<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動程序</b>框架](https://file.elecfans.com/web1/M00/CE/DE/pIYBAF-lIPeADODWAAI0W5hPQOg995.png)
評論