USB CDC
+ -

CDC SetPulseTime请求

2025-07-11 0 0

1. SetPulseTime 请求用途

SetPulseTime 用于设置脉冲拨号中”make”(连接)和”break”(断开)周期的时间长度。
主机通过此请求配置脉冲时序,以适应不同国家/地区的电话标准。


2. USB 控制传输格式

字段 值/说明
bmRequestType 0x21 (00100001B) 方向:主机到设备,类型:类,接收者:接口
bRequest 0x14 (SET_PULSE_TIME)
wValue 高字节:break时间(毫秒)<br>低字节:make时间(毫秒)
wIndex 接口号
wLength 0
Data

3. wValue 字段格式

wValue = (break_time_ms << 8) | make_time_ms

示例:

  • wValue = 0x283C:break = 40ms,make = 60ms
  • wValue = 0x1E32:break = 30ms,make = 50ms

4. 典型主机端请求示例

C 结构体示例:

USB_SETUP_PACKET setup = {
    .bmRequestType = 0x21,           // 主机到设备,类,接口
    .bRequest = 0x14,                // SET_PULSE_TIME
    .wValue = 0x283C,                // break: 40ms, make: 60ms
    .wIndex = interface_number,      // 通信接口号
    .wLength = 0                     // 无数据阶段
};
// 发送setup包,无data阶段

5. 设备端处理要点

  • 解析 wValue:
    • 高字节:break时间(毫秒)
    • 低字节:make时间(毫秒)
  • 保存时序参数,供后续 SendPulse 使用。
  • 完成后通过状态阶段(Status Stage)ACK主机。

6. 常见时序标准

标准 Make时间 Break时间 wValue
北美标准 60ms 40ms 0x283C
欧洲标准 66ms 34ms 0x2242
日本标准 50ms 50ms 0x3232

7. 参考

0 篇笔记 写笔记

CDC SetPulseTime请求
1. SetPulseTime 请求用途SetPulseTime 用于设置脉冲拨号中”make”(连接)和”break”(断开)周期的时间长度。主机通过此请求配置脉冲时序,以适应不同国家/地区的电话标准。2. USB 控制传输格式字段值/说明bmRequestType0x21......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!