NTC GetNtbParameters
2025-07-08
0
0
此请求检索描述每个方向NTB的参数。
GET_NTB_PARAMETERS 请求格式
字段 | 值 | 描述 |
---|---|---|
bmRequestType | 10100001B |
请求类型: • 位7:1 = 设备到主机 • 位6-5:00 = 标准请求 • 位4:0 = 主机到设备 • 位3-0:0001 = 接口 |
bRequestCode | GET_NTB_PARAMETERS |
请求代码: 80h (128) |
wValue | zero |
值字段: 必须为0 |
wIndex | NCM Communications Interface |
索引字段: NCM通信接口号 |
wLength | Number of bytes to read |
长度字段: 要读取的字节数 |
Data | NTB Parameter Structure |
数据字段: NTB参数结构体(表6-3) |
请求详情
bmRequestType 位字段解析
位7: 1 = 设备到主机 (IN)
位6-5: 00 = 标准请求类型
位4: 0 = 主机到设备方向
位3-0: 0001 = 接口请求
典型值示例
- bmRequestType:
A1h
(10100001B) - bRequest:
80h
(GET_NTB_PARAMETERS) - wValue:
0000h
(0) - wIndex:
0001h
(接口1,具体值取决于NCM接口号) - wLength:
001Ch
(28字节,NTB参数结构体大小)
响应数据
主机将接收到包含以下信息的NTB参数结构体:
使用场景
此请求用于:
- 获取设备支持的NTB格式
- 确定NTB传输大小限制
- 配置数据报对齐参数
- 建立NCM通信的基础参数
响应此请求,函数应返回下表列出的这些元素。
NTB Parameters 结构体定义
偏移 | 字段名 | 大小 | 值 | 描述 |
---|---|---|---|---|
0 | wLength |
2 | Number | 此结构体的大小,以字节为单位 = 1Ch (28字节) |
2 | bmNtbFormatsSupported |
2 | Bitmap | 位图字段: • 位0:支持16位NTB(设为1) • 位1:支持32位NTB • 位2-15:保留(重置为0;主机必须忽略) |
4 | dwNtbInMaxSize |
4 | Number | IN NTB最大大小,以字节为单位 |
8 | wNdpInDivisor |
2 | Number | IN NTB数据报负载对齐使用的除数 |
10 | wNdpInPayloadRemainder |
2 | Number | 用于对齐输入数据报负载在NTB内的余数:(负载偏移) mod (wNdpInDivisor) = wNdpInPayloadRemainder |
12 | wNdpInAlignment |
2 | Number | IN管道NTB的NDP对齐模数。必须是2的幂,且至少为4 |
14 | -reserved |
2 | Zero | 填充,功能必须传输为0,主机忽略 |
16 | dwNtbOutMaxSize |
4 | Number | OUT NTB最大大小 |
20 | wNdpOutDivisor |
2 | Number | OUT NTB数据报对齐模数 |
22 | wNdpOutPayloadRemainder |
2 | Number | 用于对齐输出数据报负载偏移在NTB内的余数:(负载偏移) mod (wNdpOutDivisor) = wNdpOutPayloadRemainder |
24 | wNdpOutAlignment |
2 | Number | OUT管道NTB中使用的NDP对齐模数。必须是2的幂,且至少为4 |
26 | wNtbOutMaxDatagrams |
2 | Number | 主机可以打包到单个OUT NTB中的最大数据报数量。0表示设备不施加限制 |
结构体特点
- 总大小:28字节 (1Ch)
- 对齐要求:NDP对齐模数必须是2的幂且至少为4
- 方向性:分别定义了IN和OUT管道的参数
- 扩展性:包含保留位供未来使用
关键字段说明
- NTB格式支持:通过位图指定支持的NTB位数
- 最大大小:限制NTB的传输大小
- 对齐参数:确保数据报在NTB中的正确对齐
- 数据报限制:控制单个NTB中的数据报数量
- 所有NCM功能应支持16位NTB。因此,bmNtbFormatsSupported的位0应始终设置为1。
- NCM函数可能支持32位NTB。如果支持32位NTB,则必须支持GetNtbFormat和SetNtbFormat