2. 低速USB设备特性:定义、应用与电气信号
低速USB设备是USB 1.1规范中定义的最基础设备类别,其设计目标是以最低成本满足人机交互设备的通信需求。本章从定义、典型应用、电气特性与信号要求三个维度,系统剖析低速设备在UHCI调试环境下的行为特征。
2.1 低速设备定义(1.5 Mbps)
USB 1.1规范将设备分为全速(Full-Speed, 12 Mbps)和低速(Low-Speed, 1.5 Mbps)两种传输速率。低速设备具有以下核心定义:
- 位速率:1.5 Mbps ± 0.25%,由主机控制器(UHCI)通过SOF帧起始包同步时钟。
- 数据编码:采用NRZI(Non-Return-to-Zero Inverted)编码,配合位填充(Bit Stuffing)机制保证时钟同步。
- 最大包长度:控制传输最大8字节,中断传输最大8字节。
- 拓扑限制:低速设备必须通过集线器(Hub)连接到主机,且集线器端口需支持低速信号预分频(Pre-scale)。
调试要点:UHCI调试端口捕获低速事务时,需注意SOF帧间隔为1 ms,但低速设备的中断轮询周期最小为10 ms(即10个SOF帧)。若捕获到小于10 ms的中断IN事务,说明主机控制器配置异常。
2.2 典型应用:HID键盘/鼠标
低速设备最典型的应用场景是HID(Human Interface Device)类设备,包括键盘、鼠标、游戏手柄等。这些设备对实时性要求不高,但需要极低的成本和功耗。
| 设备类型 | 报告描述符长度 | 输入报告长度 | 轮询间隔 | 典型事务数/秒 |
|---|---|---|---|---|
| USB键盘(低速) | ≤ 64 字节 | 8 字节(按键状态) | 10 ms | 100 |
| USB鼠标(低速) | ≤ 64 字节 | 3~4 字节(X/Y/按键) | 10 ms | 100 |
| 游戏手柄(低速) | ≤ 64 字节 | 4~8 字节(多轴+按键) | 10~20 ms | 50~100 |
协议分析技巧:在UHCI调试端口捕获低速HID事务时,重点关注IN事务的DATA0/DATA1切换序列。低速设备使用数据翻转(Data Toggle)位进行错误恢复,若连续捕获到两次相同的DATA PID(如DATA0后紧跟DATA0),说明发生了重传或主机NACK处理异常。
2.3 电气特性与信号要求
低速USB设备在电气层面与全速设备有显著差异,这些差异直接影响UHCI调试端口的信号捕获与解码。
2.3.1 差分信号电平
- D+ / D- 静态电平:低速设备在空闲状态时,D-线被拉高至3.0~3.6 V,D+线被拉低至0~0.3 V(与全速设备相反)。
- 差分信号幅度:低速设备驱动器的差分输出幅度为1.5~3.6 V(峰-峰值),接收器阈值范围为0.8~2.0 V。
- 上升/下降时间:低速信号上升时间(10%~90%)为75~300 ns,下降时间为75~300 ns,远慢于全速设备(4~20 ns)。
调试陷阱:使用UHCI调试端口捕获低速信号时,若示波器探头带宽不足(如< 20 MHz),会导致上升沿变缓,使NRZI解码出现位错误。建议使用至少50 MHz带宽的差分探头,并开启信号滤波。
2.3.2 低速设备检测与挂起
主机通过集线器端口的D+和D-线电平状态检测低速设备插入:
- 设备插入:设备将D-线拉高(≥ 2.7 V),集线器检测到该状态后向主机报告端口状态变化。
- 复位(Reset):主机通过集线器将D+和D-同时拉低≥ 10 ms,设备检测到复位后进入默认地址状态。
- 挂起(Suspend):总线空闲≥ 3 ms后,设备进入挂起模式,此时D-线保持高电平,但驱动电流降至500 μA以下。
- 唤醒(Resume):设备通过驱动D-线低电平≥ 1 ms(或主机发送复位信号)唤醒总线。
2.3.3 低速信号时序参数
| 参数 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|
| 位时间(Bit Time) | — | 666.67 | — | ns |
| EOP宽度(End of Packet) | 1.33 | 2.0 | 2.67 | 位时间 |
| SE0持续时间(复位) | 10 | — | 20 | ms |
| 空闲→挂起延迟 | 3 | — | — | ms |
| 唤醒信号宽度 | 1 | — | 15 | ms |
2.4 低速事务协议结构
低速设备的事务(Transaction)由三个阶段组成:令牌包(Token Packet)、数据包(Data Packet)和握手包(Handshake Packet)。UHCI调试端口捕获的原始位流需按以下结构解析:
低速事务格式(以IN事务为例):
+----------------+----------------+----------------+
| 令牌包 (Token) | 数据包 (Data) | 握手包 (Handshake) |
+----------------+----------------+----------------+
| SYNC | PID | ADDR | ENDP | CRC5 | SYNC | PID | DATA | CRC16 | SYNC | PID |
| 8位 | 8位 | 7位 | 4位 | 5位 | 8位 | 8位 | 0~8B | 16位 | 8位 | 8位 |
+----------------+----------------+----------------+
低速设备最大数据负载:8 字节
PID类型:
- 令牌:OUT (0xE1), IN (0x69), SETUP (0x2D)
- 数据:DATA0 (0xC3), DATA1 (0x4B)
- 握手:ACK (0xD2), NAK (0x5A), STALL (0x1E)
UHCI捕获验证:在调试端口捕获低速事务时,检查SYNC字段(00000001)是否正确对齐。若SYNC后连续出现多个无效PID(如0x00或0xFF),说明位同步丢失或信号质量差,需检查电缆长度(≤ 3 m)和终端电阻(D+ 15 kΩ上拉,D- 15 kΩ下拉)。
2.5 低速设备电气特性SVG结构图
下图展示了低速USB设备在UHCI调试环境下的电气连接与信号路径,重点标注了D+/D-电平状态、集线器预分频器以及调试端口的捕获点。
2.6 低速设备调试注意事项
- 电缆长度:低速设备电缆长度不得超过3 m,否则信号衰减会导致位错误率上升。
- 终端匹配:低速设备在D-线上需有1.5 kΩ ± 5%的上拉电阻至3.0~3.6 V,D+线上需有15 kΩ ± 5%的下拉电阻至GND。
- 集线器兼容性:部分旧款集线器不支持低速设备预分频,会导致设备无法被枚举。调试时需确认集线器芯片支持低速事务拆分(Split Transaction)。
- 电磁干扰:低速信号上升/下降时间较慢,对电磁干扰更敏感。在UHCI调试端口捕获时,建议使用屏蔽USB电缆并远离高频开关电源。
实战建议:在调试低速键盘/鼠标枚举失败问题时,优先使用UHCI调试端口捕获复位(Reset)阶段后的设备描述符请求。若捕获到设备返回STALL或超时,检查D-上拉电阻是否焊接正确,以及集线器端口是否已使能低速模式。