基于STM32F103的USB学习笔记10 - 端点描述符

72 篇文章 39 订阅

端点(Endpoint):主机与从机之间通讯数据的接收或发送的逻辑通道。每个USB设备必须要有一个端点0,其作用为对设备枚举和对设备进行一些基本的控制功能,端点0也被称为控制端点。并且它与其他的端点还有一个不同之处在于端点0的数据传输方向是双向的,即端点0既可以给主机发送数据,也可以接收主机发送过来的数据,而其它端点均为单向。

端点描述符是描述USB通信通道或管道的类型和功能的标准USB描述符。

偏移量名称大小说明
0bLength1描述符的长度(7字节)
1bDescriptorTyep1描述符类型(端点描述符为0x05)
2bEndpointAddress1该端点的地址
3bmAttributes1该端点的属性
4wMaxPackeSize2该端点支持的最大包长
5bInterval1端点的查询时间
  • bEndpointAddress:端点的地址。

Bit 3…0: 端点值

Bit 6…4: 保留,默认为0

Bit 7:如果是控制端点可以忽略,否则一般表示数据传输方向

0 = OUT endpoint

1 = IN endpoint

  • bmAttributes:端点属性。

Bits 1..0: Transfer Type,传输类型

00 = Control-控制传输

01 = Isochronous-等时传输

10 = Bulk-批量传输

11 = Interrupt-中断传输

如果不是一个等时传输端点,第5~2位是保留的,必须设置为0。如果它是等时的,则定义如下:

Bits 3..2: Synchronization Type-同步类型

00 = No Synchronization-无同步

01 = Asynchronous-异步

10 = Adaptive-适配

11 = Synchronous-同步

Bits 5..4: Usage Type-用途

00 = Data endpoint-数据端点

01 = Feedback endpoint-反馈端点

10 = Implicit feedback Data endpoint-暗含反馈的数据端点

11 = Reserved-保留

  • wMaxPackeSize:端点支持的最大包长

对于等时端点,此值用于在调度中保留总线时间,这是每(微)帧数据有效负载所需的时间。

对于所有的端点,bit10~bit0指定最大数据包大小(以字节为单位)。

对于高速同步和中断端点:bit12~bit11指定每个微帧的额外通信次数:

00 = None (1 transaction per microframe)

01 = 1 additional (2 per microframe)

10 = 2 additional (3 per microframe)

11 = Reserved

其它位默认为0

  • bInterval:轮训数据传送端点的时间间隔

对于批量传送和控制传送的端点忽略.对于同步传送的端点,必须为1,对于中断传送的端点,范围为1-255

每种传输类型的端点定义的最大长度不同。

1. 控制传输的端点:

低速模式包长固定为8字节,高速模式则为64字节,全速模式可以在8,16,32,64字节中选择。

2. 等时传输的端点:

全速模式最大包长为1023字节,高速模式为1024字节,低速模式不支持等时传输。

3. 中断传输的端点:

低速模式最大包长为8字节,全速模式为64字节,高速模式为1024字节。

4. 批量传输的端点

高速固定为512字节,全速模式在8,16,32,64字节中选择。低速模式不支持批量传输。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值