linux內核usb驅動程序框架

linux內核usb驅動程序框架

ID:31726460

大小:56.39 KB

頁數:9頁

時間:2019-01-17

linux內核usb驅動程序框架_第1頁
linux內核usb驅動程序框架_第2頁
linux內核usb驅動程序框架_第3頁
linux內核usb驅動程序框架_第4頁
linux內核usb驅動程序框架_第5頁
資源描述:

《linux內核usb驅動程序框架》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫

1、25.2USB驅動程序框架Linux內核提供了完整的USB驅動程序框架。USB總線采用樹形結構,在一條總線上只能冇唯一的主機設備。Linux內核從主機和設備兩個角度觀察USB總線結構。本節(jié)介紹Linux內核USB驅動程序框架。25.2.1Linux內核USB驅動框架圖25-2是Linux內核從主機和設備兩個角度觀察USB總線結構的示意圖。從圖25-2中可以看Hl,Linux內核USB驅動是按照主機驅動和設備驅動兩套體系實現的,卞面介紹兩套體系的結構和特點。1.基本結構圖25-2的左側是主機驅動結構。主機驅

2、動的最底層是USB主機控制器,提供了011C1/E1IC1/UI1C1這3種類型的總線控制功能。在USB控制器的上一層是主機控制器的驅動,分別對應OHCT/EHCT/UHCT這3種類型的總線接口。USB核心部分連接了USB控制器驅動和設備驅動.是兩者之間的轉換接口。USB設備驅動層提供了各種設備的驅動程序。USB主機部分的設計結構完全是從USB總線特點出發(fā)的。在USB總線上可以連接各種不同類型的設備,包括字符設備、塊設備和網絡設備。所有類型的USB設備都是用相同的電氣接口,使用的傳輸協(xié)議也基本相同。向用戶

3、提供某種特定類型的USB設備時,需要處理USB總線協(xié)議。內核完成所有的USB總線協(xié)議處理.并且向用戶提供編程接口。USB主機USB設爺Gadget驅動USB核心fiGadget核心IFUSB桿機控制器駆動圖25-2Linux內核USB總線結構圖25-2右側是設備驅動結構。與CSB主機類似,USB設備提供了相同的層次結構與之對應。但是在USB設備一側使用名為GadgetAPI的結構作為核心。GadgetAPI是Linux內核實現的對應USB設備的核心結構。GadgetAPI屏蔽了USB設備控制器的細節(jié),控制

4、具體的CSB設備實現。2.設備Linux內核定義了USB設備描述結構如下:每個LSB設備提供了不同級別的配置信息。一個LSB設備可以包含一個或多個配置,不同的配置使設備衣現出不同的特點。其中,設備的配置是通過接口組成的。structusb_device_descriptor{u8bLenglh;〃設備描述符長度u8bDescriptorType;//設備類型,lel6bcdlJSB;//USB版木號(使用BCD編碼)u8bDeviceClass;//USB設備類型u8bDeviceSubClass;//U

5、SB設備子類型u8bDeviceProtocol;//USB設備

6、辦議號u8bMaxPacketSizeO;//傳輸數據的最大包長,lel6idVendor;//廠商編號lel6idProduct;//產品編號lel6bcdDevice;//設備出廠號u8iMcinufcicturer;//廠商字符串索引u8iProduct;//產品字符串索引u8iSerialNumber;//產品序列號索引u8bNumConfigurations;//故大的配置數量}_attribute_((packed)):從usb

7、devicedescriptor結構定義看出,一個設備描述符定義了與USB設備有關的所有信息。3.接口在USB體系中,接口是由多個端點組成的。一個接口代表一個基木的功能,是USB設備驅動程序控制的對象。一個USB設備最少有一個接口,功能復雜的USB設備可以有多個接口。接口描述定義如下:structusb_interface_descriptor{u8bLength;//描述符氏度u8bDescriptorType;//描述符類型u8blnterfaceNumber;//接口編號u8bAlternateSe

8、tting;//備用接口編號u8bNumEndpoints;//端點數量u8blnterfaceClass;//接口類型u8bInterfaceSubClass;//接口子類型u8bTnterfaceProtoco1;//接口使用的協(xié)議u8iInterface;//接口索引字符串數值)_attribute_((packed));1.端點端點是USB總線通信的基本形式,每個USB設備接口可以認為是端點的集合。主機只能通過端點與設備通信。USB體系結構規(guī)定每個端點都冇一個唯一的地址,由設備地址和端點號決定端點

9、地址。端點還包括了與主機通信用到的屬性,如傳輸方式、總線訪問頻率、帶寬和端點號等。端點的通信是單向的,通過端點傳輸的數據只能是從主機到設備或者從設備到主機。端點定義描述如下:structusb_endpoint_descriiHor{_u8bLenglh;//描述符長度_u8bDescriptorType;//描述符類型_u8bEndpointAddress;//端點地址_u8bmAttributes;//端點屈性_lel6w

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。