仪表通信技术之USB课件2

  • 格式:pdf
  • 大小:987.47 KB
  • 文档页数:68

bInterfaceSubClass 1
1.4 端点描述符
端点描述符用于描述接口所使用的非0端点的属 性,包括输入/输出方向、端点号和端点容量即 包的大小等。 需要注意的是,端点描述符是作为配置描述符 的一部分来返回给主机的,不能直接通过控制 传输中的 GET_DESCRIPTOR或 SET_DESCRIPTOR命令来访问。
GET_DESCRIPTOR 6
bmRequestType
bRequest
请求命令代码
wValue
wIndex
wLength
17
请求命令名称 SET_DESCRIPTOR
bRequest 值 7
设置描述符请求 获取配置请求 设置配置请求 获取接口请求 设置接口请求 同步请求
GET_CONFIGURATION 8 SET_CONFIGURATION 9 GET_INTERFACE SET_INTERFACE SYNCH_FRAME bmRequestType 10 11 12 bRequest wValue
设备描述符由14个字段共18字节组成
设备描述符字段组成:
6
设备描述符字段组成:
偏移 字段名称 量 0 1 2 4 5 6 7 bLength bDescriptorType bcdUSB bDeviceClass bDeviceSubClass bDeviceProtocol bMaxPacketSize0
返回
24
二、USB设备类
1、USB设备类简介 2、标准的USB设备类
25
1、USB设备类简介
1.1 类的定义
一组在属性和功能上具有相同之处的设备或接口的集合
USB的类及相关的设备驱动程序的作用: * 设备的接口与主机之间的连通性; ——通信方式,包括数据的发送机制和控制方式;所 有类的协议都必须定义 *接口提供的功能——只是某些类定义之
数字 配置描述符的字节数大小 常数 配置描述符类型编号 数字 此配置所返回的所有数据大小 数字 此配置所支持的接口数量
5
6 7 8
bConfigurationV alue
iConfiguration bmAttributes MaxPower
1
1 1 1
数字 Set_Configuration命令需要 的参数值
第二节
USB系统软硬件设计
主要内容:
一、USB协议栈设备框架与固件软件编程基础 二、USB设备类 三、USB设计
1
一、USB协议栈设备框架与固件软件编程基础 内容包括: 搭建USB协议栈的基础知识,介绍标准的USB 设备描述符和请求命令的概念及实现方法。 重要性:是进行USB固件和软件设计时要首先 编程实现的部分。
用于描述一个USB设备的属性和能力等配置信 息。有的USB设备只需要一个配置描述符就可 以了。 配置描述符由8个字段共9字节组成
9
配置描述符字段组成:
偏移 字段名称 量 0 1 2 4 bLength bDescriptorType wTotalLength bNumInterfaces 长度 字段 (字节) 值 1 1 2 1 意 义
数据 设备、 接口或 端点状 态
返回
23
3、USB协议栈设备框架的软件实现
3.1、描述符类型、标准的USB请求命令和特性选择器等在 程序中设定为常量,而每一类描述符则定义自己的结构 3.2、软件实现的通用的流程 在枚举阶段设备的状态: 接入态、供电态、缺省态、地址态、配置态和挂起态 ——皆为暂态 设备只有在按顺序经过了一定的暂时状态(挂起态除外) 之后,才能算是真正被主机配置成功,才能开始USB设备 类的各种数据传输——枚举过程(略)
bmRequestType bRequest wValue wIndex wLength
传输数据的大小
22
举例:
获取状态请求GET_STATUS
字段内容
BmReque bRequest wValue wIndex wLength 字段 stType 10000000 0x00 (查 0 0接口 2(规定 内 10000001 表得到) 值) 容 端点 10000010
bmRequestType
bRequest
wValue
wIndex wLength
16
请求命令类型
请求命令名称 GET_STATUS CLEAR_FEATURE SET_FEATURE SET_ADDRESS
bRequest值 0 1 3 5
获取状态请求 清除特性请求 设置特性请求 设置地址请求 获取描述符请求
长度 字段 意 义 (字节) 值 1 数字 接口描述符的字节数大小
1 1 1 1 1 1 1 常数 接口描述符类型编号 数字 该接口的编号 数字 备用的接口描述符编号 数字 该接口使用的端点数,不包括 端点0 类 接口类型 子类 接口子类类型 协议 接口遵循的协议 索引 描述该接口的字符串索引值
12
意 义 端点描述符的字节数大小 端点描述符类型编号 端点地址及输入输出属性 端点的传输类型属性 端点收、发的最大包的大小 主机查询端点的时间间隔
bEndpointAddress 1
返回
14
2、标准的USB设备请求命令
是主机配置USB设备的关键。包含在控制传输中的“初始设 置步骤”里。即存在于 DATA0数据包中,为8个字节,是主 机用来发送控制阶段中的请求命令的。 2.1设备请求命令的数据格式 bmRequestType
索引 描述该配置的字符串的索引值 位图 供电模式的选择 mA 设备从总线提取的最大电流
10
1.3 接口描述符
接口描述符用于描述一个特定接口的属性。接 口一般是由一系列端点所组成的集合体,用于 实现某种特定的 USB的数据传输功能。 有些 USB设备只有一个接口。 接口描述符由9个字段共9字节组成
11
接口描述符字段组成:
偏移 字段名称 量
0 1 2 3 4 5 6 7 8 bLength bDescriptorType bInterfaceNumber bAlternateSetting bNumEndpoints bInterfaceClass bInterfaceProtocol iInterface
由USB主机提供的 软件接口执行,称 为系统软件
返回
28
2、标准的USB设备类
编 类名称 号 设备描述符 设备描述符 接口描述符 bDeviceCla bDeviceSub bInterface Class ss 字段的值 Class字段 的值 字段的值 0x00 0x00 0x01 (0) (0) (1) 0x02 (0) 0x00 (0) 0x00 (0) 0x02 (2) 0x03 (3) 接口描述符 bInterfaceSu bClass 字段的值 29
wIndex wLength
18
请求命令代码
特性选择器——特定需要清除或禁止的特性代码,与 bRequest有关
选择的特性 接收者 wValue的值 1 0
DEVICE_REMOTE_WAKE 设备 UP ENDPOINT_HALT 端点
bmRequestType
bRequest
wValue 命令信息
长度(字 字段值 节) 1 1 2 1 1 1 1 数字 常数 类 子类 协议 数字
意 义 设备描述符的字节数大小 设备描述符类型编号 USB分配的设备类代码 USB分配的子类代码 USB分配的设备协议代码 端点0的最大包的大小
7
BCD码 USB版本号
偏移 字段名称 量
8 10 12 14 15 idVendor idProduct bcdDevice iManufacturer iProduct
1 2 3 4
音频类 通信类
通信设备控 0x00 (0) 制类 人机接口设 0x00 备(HID)类 (0)
端点描述符由6个字段共7字节组成
13
端点描述符字段组成:
偏移 字段名称 量 0 1 2 3 4 6 bLength bDescriptorType bmAttributes wMaxPacketSize bInterval
字符串描述符略
长度 字段 (字节) 值 1 数字 1 1 2 1 常数 数字 位图 数字 数字
动设备的远程唤醒功能;
选择端点的禁用特性,主机可利用它解除一个端点的禁用状态或 使端点处于禁用状态;
bmRequestType
bRequest
wValue
命令信息
wIndex wLength
20
与bmRequestType字段内容匹配,例如 当传输一个端点的索引值时,该字段的内容:D8~D15保留
wIndex wLength
19
若整个命令无特殊的内容,不启动此段,=0; 特性选择器——特定需要清除或禁止的特性代码,与bRequest有关
选择的特性 DEVICE_REMOTE_WAKEUP ENDPOINT_HALT 接收者 设备 端点 wValue的值 1 0
主机用来管理设备的远程唤醒能力,通过它,主机可以禁用或启
USB以设备类协议的形式对每种类进行定义。
26
1.2 类协议在整个USB协议体系中的位置
功能抽象层
设备驱动程序
类协议
USB设备功能
设备抽象层 USB系统软件 设备框架 USB设备接口
串行总线
主机控制器 USB设备硬件
27
USB驱动程序分类:
核心驱动程序和主控制器驱动 程序 设备驱动程序
相应的是系统软件 层的请求,不能与 设备硬件直接通信
1字节
bRequest
1字节
wValue
2字节
wIndex wLength