USB CDC
+ -

CDC SetHookState请求

2025-07-10 0 0

1. SetHookState 请求用途

SetHookState 用于控制POTS(普通电话交换系统)线路的继电器状态,实现摘机(off-hook)、挂机(on-hook)、监听(snooping/caller ID)等操作。
主机通过此请求通知设备切换线路状态,设备据此控制物理继电器。


2. USB 控制传输格式

字段 值/说明
bmRequestType 0x21 (00100001B) 方向:主机到设备,类型:类,接收者:接口
bRequest 0x11 (SET_HOOK_STATE)
wValue 继电器配置代码(见下表)
wIndex 接口号
wLength 0
Data

3. POTS Relay Configuration Values(Table 49)

状态 wValue 说明
ON_HOOK 0x0000 挂机,断开电话线路
OFF_HOOK 0x0001 摘机,接通电话线路
SNOOPING 0x0002 监听,仅用于接收来电显示数据

4. 典型主机端请求示例

C 结构体示例:

USB_SETUP_PACKET setup = {
    .bmRequestType = 0x21,           // 主机到设备,类,接口
    .bRequest = 0x11,                // SET_HOOK_STATE
    .wValue = 0x0001,                // 0x0000: ON_HOOK, 0x0001: OFF_HOOK, 0x0002: SNOOPING
    .wIndex = interface_number,      // 通信接口号
    .wLength = 0                     // 无数据阶段
};
// 发送setup包,无data阶段

5. 设备端处理要点

  • 检查 wValue(0x0000/0x0001/0x0002),切换继电器状态。
  • ON_HOOK:断开电话线路
  • OFF_HOOK:接通电话线路
  • SNOOPING:监听线路,仅接收来电显示(Caller ID)数据
  • 完成后通过状态阶段(Status Stage)ACK主机。

6. 参考


如需设备端处理代码、主机端调用示例、或继电器控制细节,请继续提问!

0 篇笔记 写笔记

CDC SetAuxLineState
1. SetAuxLineState 请求用途SetAuxLineState 用于控制设备的辅助电话接口(Auxiliary Jack),将其连接或断开到POTS(普通电话交换系统)电路或编解码器(CODEC)。主机通过此请求通知设备: wValue = 0:断开辅助接口 wValue = ......
CDC SetHookState请求
1. SetHookState 请求用途SetHookState 用于控制POTS(普通电话交换系统)线路的继电器状态,实现摘机(off-hook)、挂机(on-hook)、监听(snooping/caller ID)等操作。主机通过此请求通知设备切换线路状态,设备据此控制物理继电器。2. US......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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