USB CDC
+ -

CDC SendPulse请求

2025-07-11 0 0

1. SendPulse 请求用途

SendPulse 用于生成指定数量的脉冲周期(make/break pulse cycles),实现脉冲拨号功能。
主机通过此请求控制设备生成特定数量的脉冲,每个脉冲包含一个”make”(连接)和一个”break”(断开)周期。


2. USB 控制传输格式

字段 值/说明
bmRequestType 0x21 (00100001B) 方向:主机到设备,类型:类,接收者:接口
bRequest 0x13 (SEND_PULSE)
wValue 脉冲周期数量(make/break cycles)
wIndex 接口号
wLength 0
Data

3. 典型主机端请求示例

C 结构体示例:

USB_SETUP_PACKET setup = {
    .bmRequestType = 0x21,           // 主机到设备,类,接口
    .bRequest = 0x13,                // SEND_PULSE
    .wValue = 0x0005,                // 生成5个脉冲周期
    .wIndex = interface_number,      // 通信接口号
    .wLength = 0                     // 无数据阶段
};
// 发送setup包,无data阶段

4. 设备端处理要点

  • 检查 wValue,生成指定数量的脉冲周期。
  • 每个脉冲周期包含:
    • Make:连接线路(通常约60ms)
    • Break:断开线路(通常约40ms)
  • 完成后通过状态阶段(Status Stage)ACK主机。

5. 脉冲拨号典型流程

  1. PulseSetup:准备脉冲拨号
  2. SendPulse:生成脉冲(如拨号”5”需要5个脉冲)
  3. PulseSetup(可选):脱离保持电路

6. 参考


如需设备端处理代码、主机端调用示例、或脉冲时序细节,请继续提问!

0 篇笔记 写笔记

CDC SendPulse请求
1. SendPulse 请求用途SendPulse 用于生成指定数量的脉冲周期(make/break pulse cycles),实现脉冲拨号功能。主机通过此请求控制设备生成特定数量的脉冲,每个脉冲包含一个”make”(连接)和一个”break”(断开)周期。2. USB 控制传输格式字......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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