總線驅(qū)動(dòng)是不用改的,內(nèi)核都幫我們做好了,為了了解整個(gè)USB驅(qū)動(dòng)的體系,我們來(lái)分析一下總線驅(qū)動(dòng)程序。
一.總線框圖
總線的圖畫(huà)的已經(jīng)非常清楚了,這篇博客我們分析的是左邊的程序,在下篇我們想通過(guò)USB鍵盤(pán)這一實(shí)際例子來(lái)講解。
二.程序?qū)崿F(xiàn)
1. 由于代碼太多且關(guān)系復(fù)雜這里只列出調(diào)用的函數(shù)(沒(méi)有寫(xiě)參數(shù))。從插入U(xiǎn)SB設(shè)備,到調(diào)用USB設(shè)備驅(qū)動(dòng)程序,這一過(guò)程。
2.總線驅(qū)動(dòng)程序都做了什么
a. 識(shí)別USB設(shè)備
1. 分配地址
2. 并告訴USB設(shè)備(set address)
3. 發(fā)出命令獲取描述符(描述符的信息可以在include\linux\usb\Ch9.h看到)
b. 查找并安裝對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)程序
c. 提供USB讀寫(xiě)函數(shù)
盡管USB本身所屬設(shè)備驅(qū)動(dòng)的結(jié)構(gòu)與不掛在USB總線上時(shí)完全相同,但是在訪問(wèn)方式上卻發(fā)生了很大的變化。例如,對(duì)于字符設(shè)備驅(qū)動(dòng)而言,盡管仍然是write(), read(), ioctl()這些函數(shù),但是在這些函數(shù)中,與USB設(shè)備通信時(shí)不再是I/O內(nèi)存和I/O端口的訪問(wèn),而貫穿始終的是稱為URB的USB請(qǐng)求塊,這些請(qǐng)求塊通過(guò)USB總線驅(qū)動(dòng)提供的讀寫(xiě)等接口進(jìn)行操作。
-
總線
+關(guān)注
關(guān)注
10文章
2958瀏覽量
89526 -
USB驅(qū)動(dòng)
+關(guān)注
關(guān)注
1文章
138瀏覽量
20685
原文標(biāo)題:看完就會(huì)是不可能的,USB驅(qū)動(dòng)之總線驅(qū)動(dòng)程序
文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
usb網(wǎng)卡驅(qū)動(dòng)程序下載(萬(wàn)能全集)

天語(yǔ)手機(jī)usb驅(qū)動(dòng)程序
Windows CE 下通用串行總線(USB)驅(qū)動(dòng)程序開(kāi)發(fā)
EZ USB 通用驅(qū)動(dòng)程序說(shuō)明
USB設(shè)備的WDM驅(qū)動(dòng)程序設(shè)計(jì)
USB接口驅(qū)動(dòng)程序開(kāi)發(fā)

USB總線數(shù)據(jù)采集設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)

HC6800的USB驅(qū)動(dòng)程序
WinCE_Net系統(tǒng)下USB總線驅(qū)動(dòng)程序實(shí)現(xiàn)的研究

CDM20600驅(qū)動(dòng)程序,USB驅(qū)動(dòng)程序和并口驅(qū)動(dòng)應(yīng)用程序(免費(fèi)下載)

Linux設(shè)備驅(qū)動(dòng)程序的平臺(tái)驅(qū)動(dòng)程序和字符驅(qū)動(dòng)程序介紹
如何使用Linux內(nèi)核實(shí)現(xiàn)USB驅(qū)動(dòng)程序框架

評(píng)論