novoton-USBDevice使用

USB Device攻略

(USB Device 不能自己发送数据到USB Host,必须等USB Host问USB Device要数据才能回。)

一个USB物理设备一般可以包含多个USB 设备,这种叫USB复合设备,例如:USB Audio + USB HID设备,这种设备插入USB Host之后,会同时枚举出两个USB 设备。

插入USB Host的USB Device有以下6种状态:(插入、上电、缺省、分配地址、配置、挂起)

设备插入检测

主机通过DP/DM脚上的上拉电阻判断是否有设备接入,并由此判断该设备是全速、高速还是低速设备。

 USB设备地址

每个USB设备都有唯一的设备地址,在枚举的时候由主机分配。地址是用来识别USB设备的,总共7bit,最多可以表示127个设备,其中地址0是所有USB设备的默认地址。USB设备一插入主机时,地址就是0,然后主机会尽快给它分配一个地址。

 USB端点地址

USB设备中包含多个USB端点(Endpoint),每个端点有端点地址端点类型。USB IP根据端点地址操作对应的USB端点。

USB支持4种传输类型(端点类型):控制传输块传输中断传输等时传输

  • 控制传输:用来收/发 USB命令。它的端点地址是0,这个是强制规定的。一个设备插入主机,主机就开始枚举过程。枚举就是通过控制端点拿到设备的各种描述符。
  • 块传输:一般用于大量数据传输,只要主机有空就会传输该端点的数据
  • 中断传输:一般用于鼠标和键盘。它的特点是主机每隔一定的时间来要数据,如果主机比较忙,这个间隔是不保证的
  • 等时传输:一般用于传输语音数据。它的特点是主机每隔1ms传输一次数据,主机一定要尽力保证这个间隔。因为语音数据一旦跟不上,就会听到断音,而这个一般不允许。

一个USB设备中,可以有多个端点,每个端点的作用不同,所以需要端点地址来标识端点。端点地址由端点号+方向组成,端点号4-bit,方向1-bit。方向就是指IN 和OUT,代表数据传输的方向。IN代表该端点是负责发送数据到Host的,OUT代表该端点是负责从Host接收数据的。大家注意在USB中方向都是对USB Host而言的,就是说IN是指传输数据到USB Host, OUT是指USB Host传输数据到USB Device。
端点是有方向的,同一个端点地址可以同时支持IN和OUT,也可以只支持IN或者OUT。

USB的描述符

USB Host要识别USB device靠的就是各种USB 描述符:设备描述符配置描述符接口描述符端点描述符字符串描述符

结构如下:

猜你喜欢

转载自www.cnblogs.com/llw2017/p/9095429.html
今日推荐