USB CDC
+ -

CDC SerialState通知

2025-07-11 0 0

SerialState 通知用途

SerialState 通知发送UART状态的异步通知。
此通知用于报告UART的各种状态信号,包括载波检测、传输载波、中断、振铃信号和设备溢出错误等。这些信号通常存在于UART中,用于通信状态报告。


通知格式

字段 值/说明
bmRequestType 0xA1 (10100001B) 方向:设备到主机,类型:类,接收者:接口
bNotification 0x20 (SERIAL_STATE)
wValue 0x0000
wIndex 接口号
wLength 2
Data UART状态位图(2字节)

UART State Bitmap Values(Table 69)

字段名 描述
D15..D7 RESERVED 保留供将来使用
D6 bOverRun 由于设备溢出,接收数据已被丢弃
D5 bParity 发生奇偶校验错误
D4 bFraming 发生帧错误
D3 bRingSignal 设备振铃信号检测状态
D2 bBreak 设备中断检测机制状态
D1 bTxCarrier 传输载波状态。对应V.24信号106和RS-232信号DSR
D0 bRxCarrier 设备接收载波检测机制状态。对应V.24信号109和RS-232信号DCD

典型设备端通知示例

C 结构体示例:

// 载波检测通知
uint8_t serial_state_notification[] = {
    0xA1,           // bmRequestType (设备到主机,类,接口)
    0x20,           // bNotification (SERIAL_STATE)
    0x00, 0x00,     // wValue (Zero)
    0x01, 0x00,     // wIndex (Interface 1)
    0x02, 0x00,     // wLength (2 bytes)
    0x01, 0x00      // Data (bRxCarrier = 1, others = 0)
};

主机端处理要点

  • 通过中断端点接收通知。
  • 解析2字节的UART状态位图。
  • 根据各个位的状态处理相应的事件:
    • D0:载波检测状态变化
    • D1:传输载波状态变化
    • D2:中断检测
    • D3:振铃信号检测
    • D4:帧错误
    • D5:奇偶校验错误
    • D6:溢出错误

常见应用场景

场景 说明
载波检测 D0 检测到载波信号
传输载波 D1 传输载波状态变化
中断检测 D2 检测到中断信号
振铃检测 D3 检测到振铃信号
错误检测 D4-D6 检测到各种通信错误

参考

0 篇笔记 写笔记

CDC SerialState通知
SerialState 通知用途SerialState 通知发送UART状态的异步通知。此通知用于报告UART的各种状态信号,包括载波检测、传输载波、中断、振铃信号和设备溢出错误等。这些信号通常存在于UART中,用于通信状态报告。通知格式字段值/说明bmRequestType......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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