首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

usb 端点解释

usb 端点解释

__u8 bEndpointAddress; //端点地址:03位是端点号,第7位是方向(0-OUT,1-IN)

端点地址:总共80,1,2,3四位表示端点号,第7位表示端点方向


那么由这5位可以确定32个端点地址.


其中输入端点0-15输出端点0-15


Out endpoint for all omron health devices,
所有Omron健康设备的输出端点地址(8,包括端点号,端点类型和端点方向)
static const uint32_t OMRON_OUT_ENDPT = 0x02;
In endpoint for all omron health devices,
所有Omron健康设备的输入端点地址(8,包括端点号,端点类型,和端点方向)
static const uint32_t OMRON_IN_ENDPT = 0x81;

我们和设备通信的时候,不是使用端点号,端点号不能唯一确定一个管道,而是使用端点地址,端点地址中的端点号和端点方向,可以唯一确定一个管道pipe.


0x81 端点的地址 1000 0001

D7 表示传输方向 1 为输入
D6~D4 reserved
D3~D0 为端点号 端点号为 01
  也就是说 1 号端点,输入端点

//////////////////////////////////////////////////////////////
0x02 端点的地址 0000 0010
D7 表示传输方向 1 为输入

D6~D4 reserved
D3~D0 为端点号 端点号为 2
端点号为 2,输出端点





USB 通讯的最基本形式是通过某些称为 端点 的. 一个 USB 端点只能在一个方向承载数据, 或者从主机到设备(称为输出端点)或者从设备到主机(称为输入端点). 端点可看作一个单向的管道.
一个 USB 端点可是 4 种不同类型的一种, 它来描述数据如何被传送:
CONTROL控制端点被用来允许对 USB 设备的不同部分存取. 通常用作配置设备, 获取关于设备的信息, 发送命令到设备, 或者获取关于设备的状态报告. 这些端点在尺寸上常常较小. 每个 USB 设备有一个控制端点称为"端点 0", 被 USB 核用来在插入时配置设备. 这些传送由 USB 协议保证来总有足够的带宽使它到达设备.
INTERRUPT中断端点传送小量的数据, 以固定的速率在每次 USB 主请求设备数据时. 这些端点对 USB 键盘和鼠标来说是主要的传送方法. 它们还用来传送数据到 USB 设备来控制设备, 但通常不用来传送大量数据. 这些传送由 USB 协议保证来总有足够的带宽使它到达设备.
BULK块端点传送大量的数据. 这些端点常常比中断端点大(它们一次可持有更多的字符). 它们是普遍的, 对于需要传送不能有任何数据丢失的数据. 这些传送不被 USB 协议保证来一直使它在特定时间范围内完成. 如果总线上没有足够的空间来发送整个 BULK 报文, 它被分为多次传送到或者从设备. 这些端点普遍在打印机, 存储器, 和网络设备上.
ISOCHRONOUS同步端点也传送大量数据, 但是这个数据常常不被保证它完成. 这些端点用在可以处理数据丢失的设备中, 并且更多依赖于保持持续的数据流. 实时数据收集, 例如音频和视频设备, 一直都使用这些端点.

控制和块端点用作异步数据传送, 无论何时驱动决定使用它们. 中断和同步端点是周期性的. 这意味着这些端点被设置来连续传送数据在固定的时间, 这使它们的带宽被 USB 核所保留.
继承事业,薪火相传
返回列表