USB 驱动学习一
发布网友
发布时间:2024-10-15 19:02
我来回答
共1个回答
热心网友
时间:2024-11-15 16:29
USB设备驱动程序的学习首先需要对USB协议有深入了解。
USB系统拓扑结构中,每个USB系统都包含一个Host控制器设备,它与一个根Hub一起构成一个整体。根Hub下可以连接多级Hub,每个子Hub又可以连接子Hub。每个USB设备作为节点连接在不同的Hub级别上,每条USB总线上最多可连接127个设备。
USB主控制器负责处理主机与设备之间的电气和协议层互联。常见的USB主控制器规格包括USB HUB。
每个USB Host控制器都自带一个USBHub,称为根(Root)Hub。这个根Hub可以连接子(Sub)Hub,每个Hub上可以挂载USB设备。通过外接USB Hub,可以连接更多的USB设备。当USB设备插入到USBHub或从上面拔出时,都会发出电信号通知系统。
USB设备指的是连接在USB总线上工作的设备,广义上USB Hub也属于USB设备。有些USB设备功能单一,直接连接在USBHub上,而有些USB设备功能复杂,将多个USB功能结合在一起,成为一个复合设备。
USB设备的逻辑结构主要包括四个层次:设备、配置、接口和端点。在USB设备的逻辑组织中,设备通常有一个或多个配置,配置通常有一个或多个接口,接口有零或多个端点。
每个USB设备都可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合(在探测/连接期间需从其中选定一个),配置由多个接口组成。
在USB协议中,接口由多个端点组成,代表一个基本的功能,是USB设备驱动程序控制的对象。一个功能复杂的USB设备可以具有多个接口,而接口是端点的汇集。
USB PnP(即插即用)指的是USB设备在连接到电脑时,能够自动被系统识别和配置,无需用户手动安装驱动程序或进行其他设置。
USB PnP机制依赖于USB协议和操作系统的支持。USB协议定义了设备的描述符信息、通信协议和错误处理等机制,以确保设备与主机之间的可靠通信。操作系统提供了相应的USB驱动程序和PnP管理器来支持USB设备的自动识别和配置。
端点支持的最大包大小称为数据有效负载。
每个设备必须有端点0,它用于设备枚举和对设备进行一些基本的控制功能。除了端点0,其余的端点在设备配置之前不能与主机通信,只有向主机报告这些端点的特性并被确认后才能被激活。
USB总线类似于高速公路,收发的数据类似于汽车,USB端点类似于高速公路收费口的入口或出口。