概述
报告在这里意思是数据传输(data transfer),而报告描述符是对这些传输的数据作用途(usage)上的说明。USB通讯协议的规范是以1ms产生一个USB帧(frame),USB设备可以每一个帧中发送和接收一个交换(transaction)。交换是由几个封包(packet)组成,而传输是由一个或几个交换来完成传送一口中有效的数据。在这里,传输和报告的意思相类似。传输方式有四种,初始学一般只要了解控制型传输(control transfer)和中断型传输(interrupt transfer)即可。控制型传输是当需要时才执行传输要求,是最一般的传输方式,组态、命令和状态的通讯都可以使用控制型传输;控制型传输主要用于消息型数据(message-type data)。中断型传输目的在做重复的数据更新(recurring data)传输,精确一点而言,即是在每个有限有周期内(bounded period)作至少一次的小量数据发送或接收;所以适用于流动型数据(stream-type data),注意这里所谓的周期时间就是在端点描述符中的轮询间隔时间。报告有三种:input,output,。中断型输入管线(interrupt in pipe)仅可以传送input报告;中断型输出管线(interrupt out pipe)仅可以传送output报告;但是控制型管线(control pipe)可以传送input,output和feature报告。端点描述符有声明所使用的端点为何种管线。
数据本身没有任何意义,要赋于用途才能明确其为控制什么(control);例如设备上的按钮指示灯和X与Y轴的位移等都通称控制,数据则为按钮和指示灯的开关状态或X与Y轴的位移量。为了这个目的应运而生报告描述符,其将数据的操控与它的用途作一对一的对应,所以解读报告后就可以知道每个数据作何种操作。所以“传输的数据”和“操作”只是一事件的两种描述方式。用途是以一个32位卷标(称作usage tag)来表示,高16位称作usage page(用途类页),低16位称为usage DI(用途识别名):
Usage = (usage page:usage ID)
主项目
全域项目
区域项目
标签
代码
标签
代码
标签
代码
Input
0X8?
Usage Page
0x0?
Usage
0x0?
Output
0x9?
Logical Minimum
0x1?
Usage Minimum
0x1?
Feature
0xb?
Logical Maximum
0x2?
Usage Maximum
0x2?
Physical Minimum
0x3?
Designator Minimum
0x3?
Collection
0xa?
Physical Maximum
0x4?
Designator Minimum
0x4?
End Collection
0xc0
Unit Exponent
0x5?
Designator Maximum
0x5?
Unit
0x6?
String
0x7?
Report Size
0x
USB-HID设备报告描述符详解 来自淘豆网m.daumloan.com转载请标明出处.