本帖最后由 半句多 于 2024-3-7 10:52 编辑
一、USB标准
USB 1.0于1996年发布,提供最初的全速数据传输,最大传输速率为1.5 Mbps。USB 1.1是对1.0的修订版,修复了一些问题,并将最大传输速率提高到12 Mbps。
USB 2.0在2000年发布,提供高速数据传输,最大传输速率为480 Mbps。USB 2.0向后兼容USB 1.x,并成为相当长时间内主流的USB标准。
二、编/解码方式
NRZI
- 位填充 在数据进行NRZI编码前,每6个连续的1信号后都会插入一个0信号,避免因设备的时钟误差丢失同步。
三、信号传输状态 - 信号传输有4种状态 J状态 K状态 SE0状态 SE1状态
信号状态
差分0 : D+ = 0 D- = 3 差分1 : D+ = 3 D- = 0
四、基本概念 1、帧:时间单位,固定为1ms;微帧:时间单位,125us
帧2
2、包(Packet): USB通信是通过包的形式进行的。包是数据的基本传输单元,用于在USB设备之间进行通信。每个包都有一个特定的结构,包括同步标志、帧号、端点地址、数据字段等。包有 令牌包、数据包、握手包、特殊包;多个包组成事务。 下图就是一个包,第一部分SYNC是同步字段、PID是标志、Frame是帧号,后面是CRC和结尾EOP.
包
3、事务(Transaction): - USB通信是基于事务的,一个事务是一组数据传输操作,就是连续多个包的发送。USB协议定义了四种基本的事务类型:OUT(从主机到设备的数据传输)、IN(从设备到主机的数据传输)、SETUP(用于设备初始化和控制命令)、PING(用于轮询检测设备是否存在)。
- 事务构成:令牌包 + 数据包(可选)+ 握手包(可选)
- 下图就是一个事务,由三个包组成,第一个是SETUP令牌包,第二个是数据包,第三个是握手包。
-
事务
4、传输(Transfer): 多个事务组成传输。 传输是USB通信的高层次概念,用于表示在USB设备之间传输数据的一种方式。USB定义了四种传输类型:控制传输、批量传输、中断传输和等时传输。 - 控制传输(Control Transfer): 所有的主机和设备都支持的传输方式。特点是数据量不大,正确保障高。主要用于设备初始化、配置和管理。这是USB设备与主机 之间进行控制和命令交互的方式。
- 批量传输(Bulk Transfer): 主要用于大量数据的传输,对传输速率的实时性要求不高,例如打印机,U盘等。
- 中断传输(Interrupt Transfer): 用于低延迟、数据量小、周期性的数据传输,例如鼠标、键盘等设备。
- 等时传输(Isochronous Transfer): 用于实时传输,无差错控制,例如音频和视频数据。
下图就是一个传输
5、端点(Endpoint):
端点是USB设备上的逻辑通道,用于数据的输入或输出。每个端点都有唯一的地址,用于标识特定的数据流方向。
6、令牌(Token):令牌是USB传输中的一种数据包类型,用于指示数据的方向和类型。 7、数据包(Data Packet) 数据包携带实际的用户数据,用于在USB设备之间传输信息。 8、握手(Handshake) 握手是一种用于确认数据包是否正确接收的机制。包括ACK(肯定确认)和NAK(否定确认)。 9、设备描述符(Device Descriptor) 设备描述符包含有关USB设备的基本信息,如厂商ID、产品ID等。 10、配置描述符(Configuration Descriptor) 配置描述符包含有关USB设备配置的信息,包括端点、功率要求等。 11、接口描述符(Interface Descriptor) 接口描述符包含有关USB设备接口的信息,如接口号、传输类型等。 编辑器太难用了
|