USB网络控制通讯NCM
+ -

NCM传输头-NTH16

2025-07-07 0 0

根据USB2.0和USB3.0,NTC传输头分为NTH16和NTH32.

NTH16(NCM Transfer Header for 16-bit NTB)

NTH16 结构定义(总长度:12字节)

偏移量 字段名 大小 值/格式 说明
0 dwSignature 4字节 0x484D434E (小端序:NCMH) NTB16标识签名
- 固定魔数,用于标识这是一个NTB-16结构。
- 小端序实际传输为 0x4E,0x43,0x4D,0x48(ASCII字符 “NCMH”)。
4 wHeaderLength 2字节 0x000C (小端序) NTH16头部长度
- 固定为12字节(0x0C),表示NTH16自身的长度。
6 wSequence 2字节 递增数字(小端序) 序列号
- 功能:每次”功能复位”后从0开始递增,用于调试和错误检测。
- 约束
- 发送方必须在复位后重置为0,后续NTB递增。
- 接收方可选择是否校验序列号(规范未强制要求)。
- 用途:帮助诊断丢包或乱序问题(如USB传输错误)。
8 wBlockLength 2字节 NTB总字节数(小端序) NTB块总长度
- 关键规则
- 必须 ≤ dwNtbInMaxSize(输入)或 dwNtbOutMaxSize(输出)。
- 特殊值 0x0000:表示通过短包(Short Packet)终止传输,需谨慎使用(见下方注意事项)。
- 对齐要求:若NTB大小等于wMaxPacketSize的整数倍,且无剩余数据,则不发送ZLP(Zero Length Packet)
10 wNdpIndex 2字节 NDP16偏移量(小端序) 第一个NDP16的偏移量
- 约束
- 必须 ≥ 0x000C(即跳过NTH16头部)。
- 必须是4的倍数(32位对齐)。
- 作用:指向NTB中第一个NDP16结构的位置,用于定位封装的以太网帧。

关键注意事项

  1. wBlockLength = 0x0000 的特殊处理

    • 用途:动态调整NTB大小以减少延迟(如发送方发现数据不足时提前终止)。
    • 风险:可能导致主机与设备状态不同步,需严格测试。
    • 示例
      • 设备开始发送一个预分配的大NTB,但实际数据较少时,可通过短包提前结束传输。
  2. 对齐与边界条件

    • NDP对齐wNdpIndex 必须4字节对齐(如0x0C, 0x10, 0x14…)。
    • ZLP规则:若NTB大小正好为端点wMaxPacketSize的整数倍,禁止发送ZLP(与常规USB批量传输不同)。
  3. 调试支持

    • wSequence 字段虽非强制校验,但建议在开发阶段启用,以检测传输异常(如丢包、乱序)。

示例数据流(小端序)

假设一个NTB-16的NTH16头部如下(十六进制):

4E 43 4D 48  0C 00  01 00  00 10  0C 00
  • 解析
    • dwSignature = 0x4E434D48 (“NCMH”)
    • wHeaderLength = 0x000C (12字节)
    • wSequence = 0x0001 (序列号1)
    • wBlockLength = 0x1000 (NTB总长4096字节)
    • wNdpIndex = 0x000C (第一个NDP16紧接NTH16之后)

关联规范参考

  • NTB大小限制:参见规范第6章(Table 6-3)的dwNtbInMaxSize/dwNtbOutMaxSize
  • NDP16结构:需结合后续的NDP16定义(含以太网帧偏移量和长度)。
  • 错误处理:若wBlockLengthwNdpIndex非法,接收端应丢弃NTB并报告错误。

此设计确保了NCM在USB 2.0环境下的高效性和可靠性,同时为调试提供了灵活性。

0 篇笔记 写笔记

NCM传输头-NTH16
根据USB2.0和USB3.0,NTC传输头分为NTH16和NTH32.NTH16(NCM Transfer Header for 16-bit NTB)NTH16 结构定义(总长度:12字节)偏移量字段名大小值/格式说明0dwSignature4字节0x484D43......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB网络控制通讯NCM
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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