端点描述符具有7 B的长度,用来描述端点的属性以及各个端点的位置。对每个设备而言可能不止一种端点类型,其端点的数目由 上面的接口描述符的第5个字段bNumEndpoints设置。每一个端点都定义了一个如数据缓存器沟通点。例如,在CY7C630/1XX微控制器 系列中,以数据存储器0x70~Ox77地址,供端点0使用;另以数据存储器0x78~0x7F地址,供端点1使用。
端点描述符用来描述除了端点0以外的端点。这个端点0总是预设为控制端点,并且甚至在任何描述符被要求之前,即已被加以配置 。而主机将会使用这些描述符所回传的信息来决定总线所需的带宽或各种设备的特性。
在端点描述符中,包含了此端点的传输类型(控制、等时、批量或中断),以及传输率。以USB鼠标为例子,利用“View Descriptors”项目与“Device Framework”项目所测试的端点描述符如图1和图2所示。
图1 View Descriptors项目所测试的端点描述符
图2 Device Framework项目所测试的端点描述符
以下列出端点描述符的范例、数值以及各个字段的意义。
db 07h ;bLength,长度大小(7字节)
db 05h ;bDescriptorType,描述符类型,5代表端点(1字节)
db 81h ;bEndpointAddress,端点地址([ox8o IN,0 OUT]),在这个例子中,
;端点编号为1且为IN端点(1字节)
db 03h ;bmAttributes,传输类型的属性设置为中断传输(0:控制,1:等时,
;2:批量,3:中断)(1字节)
db 04h,OOh ;wMaxPacketSize,封包的大小设置为3 B(2宇节)
db 0Ah ;blnterval,查询间隔,以ms为单位,在此设置为lO ms(1字节)
端点是PC主机与设备之间,互相传递数据与命令的信道或管线。有些原文数据,直接称这种端点为管线。所以端点描述符在稍 后的数个章节中,会大量地加以应用与探讨。而在此描述符中,特别要注意bEndpointAddress字段值,首先第1个位是用来决定方向 的(IN或OUT)。也因此才能把4个位的端点编号扩充为32个。但实际可设计至15组,外加一个端点0,总共是31个端点。而 bmAttributes字段值则决定端点的类型,是等时、批量或中断(代表了相对所要执行的等时、批量以及中断传输)。在其次的 wMaxPacketSize字段值则决定每一帧所能传递的封包大小。而2字节则可提供给等时传输高达1 023字节。
的blnterval字段值,则是设置每个传输类型的查询间隔。在本章稍前提及,中断与等时传输是同步的,须预设查询的间隔。而 中断传输在慢速时设置为l0~255ms,快速时设置为1~255 ms。对于等时传输,则不用说一定要设置为1 ms。但是,对于异步的批量 传输须设置多少呢?答案是0 ms。为什么呢?这是因为批量传输具有非周期的特性,因此,不须设置查询间隔。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。