您的位置:首页 > 其它

usb驱动的基本知识

2012-02-12 17:59 218 查看
USB基本知识:

(1):公共总线协议

(2):两种接口:4个引脚(1,Vcc,2,DATA,3,DATA,4,Ground)

差分线:

USB主机软件架构

(1):客户软件-负责和USB设备的功能单元进行通信,以实现其特定功能。

(2):USB系统软件-负责和USB逻辑设备进行配置通信,并管理客户软件启动的数据传输。

(3):于给USB系统提供一个或多个连接点(端口)。

(注释:USB总线接口的代码一般由内核给我们写好了,我们写驱动一般是写的客户软件)

USB设备

(1)设备(设备描述符)

设备代表一个USB设备,它由一个或多个配置组成。设备描述符用于说明设备的总体信息,并指明其所含的配置的个数。一个USB设备只能有一个设备描述符。

(2)配置(配置描述符)

配置描述符用于说明USB设备中各个配置的特性,如配置所含接口的个数等。USB设备的每一个配置都必须有一个配置描述符

(3) 接口(接口描述符)

接口是端点的集合。

接口描述符用于说明USB设备中各个接口的特性,如接口所属的设备类及其子类等。USB设备的每个接口都必须有一个接口描述符

(4)端点(端点描述符)

端点是USB设备中的实际物理单元,USB数据传输就是在主机和USB设备各个端点之间进行的。

USB设备中的每一个端点都有唯一的端点号,每个端点所支持的数据传输方向一般而言也是确定的:或是输入(IN)或是输出(OUT)

(5)管道

管道是对主机和USB设备间通信流的抽象,它表示主机的数据缓冲区和USB设备的端点之间存在着逻辑数据传输,而实际的数据传输是由USB总线接口层来完成的。

管道的创建函数:usb_rcvctrlpipe(dev,endpoint);(向主机发数据,endpoint 即为端点号)

usb_sndctrlpipe(dev,endpoint);(从主机向外发数据))

管道和USB设备中的端点一一对应。

(注释:接口是端点的集合,所谓的配置:例如,我们在插入手机usb时,有储存模式,充电模式等,这就是一个配置,一个配置可能有很多的接口)

(7)USB通信最基本的形式为端点(endpoint)。

USB端点只能往一个方向传送数据,从主机到设备(称为输出端点)或者从设备到主机(称为输入端点)。

端点可以看作是单向的管道。

USB 端点有四种不同的类型,分别具有不同的传送数据的方式。

控制

中断

批量

等时

(8):数据传送

主机(缓冲区)—————(管道)————接口(端点,逻辑设备)。

(发送数据的函数: int usb_control_msg(struct usb_device *dev, unsigned int pipe, __u8 request,

__u8 requesttype, __u16 value, __u16 index, void *data,

__u16 size, int timeout)



(9)主机控制器:HCI

USB 的HCI 有3 种格式(一般是在我们编译内核时设置):

OHCI(Open Host Controller Interface)

UHCI(Universal Host Controller Interface)

EHCI(Enhanced Host Controller)

(10)设备地址:

地址是一个数字,1-127;

◇ 设备加电时由主机分配;

◇ 分配后存放在设备上;

◇ 每个设备都有唯一的地址;

◇ 地址是主机寻找设备的唯一标识。

(11)设备地址的分配:

一个 USB HOST 最多可以同时支持128 个地址

地址0 作为默认地址,只在设备枚举期间临时使用,而不能被分配给任何一个设备

在实际的USB 体系中可支持的USB 功能设备的数量将小于127

(11)usb 应用程序--usb设备驱动程序--usb核心--usb控制器驱动程序---usb控制器

(12)在Linux 操作系统中, 有一个叫做“usb core”的子系统, 它的作用是提供支持usb设备驱动程序的API(应用编程接口) 和usb的主机(HOST) 控制器驱动程序。

它提供了许多数据结构,宏定义和功能函数来对硬件或设备进行支持。

在Linux下编写usb 设备的驱动程序从严格意义上讲, 就是使用这些usb core 的子系统定义的数据结构、宏和函数来编写数据的处理功能。

(13)USB驱动注册函数:

注册:usb_register()

注销:usb_deregister()

参数:skel_driver

为 struct usb_driver类型(详细的见内核)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: