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总线结构。本节介绍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总线特点出发的。在USB总线上可以连接各种不同类型的设备,包括字符设备、块设备和网络设备。所有类型的USB设备都是用相同的电气接口,使用的传输协议也基本相同。向用户

3、提供某种特定类型的USB设备时,需要处理USB总线协议。内核完成所有的USB总线协议处理.并且向用户提供编程接口。USB主机USB设爺Gadget驱动USB核心fiGadget核心IFUSB杆机控制器駆动图25-2Linux内核USB总线结构图25-2右侧是设备驱动结构。与CSB主机类似,USB设备提供了相同的层次结构与之对应。但是在USB设备一侧使用名为GadgetAPI的结构作为核心。GadgetAPI是Linux内核实现的对应USB设备的核心结构。GadgetAPI屏蔽了USB设备控制器的细节,控制

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;//接口使用的协议u8iInterface;//接口索引字符串数值)_attribute_((packed));1.端点端点是USB总线通信的基本形式,每个USB设备接口可以认为是端点的集合。主机只能通过端点与设备通信。USB体系结构规定每个端点都冇一个唯一的地址,由设备地址和端点号决定端点

9、地址。端点还包括了与主机通信用到的属性,如传输方式、总线访问频率、带宽和端点号等。端点的通信是单向的,通过端点传输的数据只能是从主机到设备或者从设备到主机。端点定义描述如下:structusb_endpoint_descriiHor{_u8bLenglh;//描述符长度_u8bDescriptorType;//描述符类型_u8bEndpointAddress;//端点地址_u8bmAttributes;//端点屈性_lel6w

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。