• 欢迎大家分享资料!前往留言板评论即可!

3、8910芯片USB描述符:接口描述符&端点描述符—RNDIS

合宙 模组资料网 2年前 (2021-05-15) 494次浏览 0个评论 扫描二维码
文章目录[隐藏]

三、RNDIS网卡

  RNDIS 是 Remote Network Driver Interface Specification(远程网络驱动程序接口规范) 的首字母缩写,实际上的作用为 TCP/IP over USB,也即视 USB 设备(如手机)为网卡,是基于USB实现RNDIS实际上就是TCP/IP over USB,从而使 Windows 可以通过 USB 设备连接网络。

  TCP/IP 协议族,简称为 TCP/IP, 其名称源于其最早的两个核心协议 TCP(Transmission Control Protocol,传输控制协议)和 IP (Internet Protocol,网际协议),它规定了设备连接网络的方式以及数据如何传输的标准。

  8910平台支持RNDIS功能,并且默认处于开启状态。模块只要能联网,正常情况下只要将模块接入电脑(windows、linux)电脑就会识别出来一块网卡,不需要经历ppp拨号那样复杂的流程就可以访问联网。

3.1、RNDIS接口关联描述符(8字节)

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 72 0x08 描述符大小为8字节
bDescriptorType 8 80 0x0B 接口类型
bFirstInterface 8 88 0x00 起始接口号是0
bInterfaceCount 8 96 0x02 接口数为2
bFunctionClass 8 104 0xE0 该接口属于无线控制器类
bFunctionSubClass 8 112 0x01 该接口属于RF控制器子类
bFunctionProtocol 8 120 0x03 该接口使用设备线适配器同步流接口协议
iFunction 8 128 0x05 接口字符串描述符索引为5

在这里插入图片描述

3.2、控制接口

3.2.1、RNDIS控制接口描述符(9字节)

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 136 0x09 描述符大小为9字节
bDescriptorType 8 144 0x04 接口描述符类型
bInterfaceNumber 8 152 0x00 此接口号的索引为0。
bAlternateSetting 8 160 0x00 用于选择此接口的备用设置的值为0
bNumEndpoints 8 168 0x01 此接口使用的端点数为1(不包括端点0)
bInterfaceClass 8 176 0xE0 接口实现无线控制器类
bInterfaceSubClass 8 184 0x01 接口实现射频控制器子类
bInterfaceProtocol 8 192 0x03 接口使用设备线适配器同步流接口协议
iInterface 8 200 0x03 接口字符串描述符索引为3

在这里插入图片描述

3.2.2、RNDIS CDC Header功能描述符(5字节)

  Header功能描述符表示功能描述符的开始,其他紧跟的内容就是此设备的功能描述符的内容。bcdCDC表示的是CDC的版本。

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 208 0x05 描述符的大小,以字节为单位
bDescriptorType 8 216 0x24 描述符类型
bDescriptorSubType 8 224 0x00 描述符子类型
bcdCDC 16 232 0x0110 USB通信类定义通信规范1.10版

在这里插入图片描述

3.2.3、RNDIS CDC Call Management功能描述符(4字节)

  Call Management描述的就是电话相关的东西,AT指令集的支持情况。 bDataInterface表示如有电话时,电话数据内容对应的接口号。

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 248 0x05 描述符的大小,以字节为单位
bDescriptorType 8 256 0x24 描述符类型
bDescriptorSubType 8 264 0x01 描述符子类型
bmCapabilities 8 272 0x00 Bit0:设备是否自己处理呼叫管理1
Bit1:设备是否可以通过数据类接口发送/接收呼叫管理信息0
bDataInterface 8 280 0x01 可选用于呼叫管理的数据类接口的接口号

在这里插入图片描述

3.2.4、RNDIS CDC ACM功能描述符(4字节)

  ACM(Abstract Control Model),即抽象控制模型,PSTN下,除了ACM模型还有还有DLM(Direct Line Mode), TCM(Telephone Control Model)。

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 288 0x04 描述符的大小,以字节为单位
bDescriptorType 8 296 0x24 描述符类型
bDescriptorSubType 8 304 0x02 描述符子类型
bmCapabilities 8 312 0x00 第0位:设备是否支持Set_Comm_Feature、Clear_Comm_Feature和Get_Comm_Feature的组合请求
第1位:设备是否支持Set_Line_Coding、Set_Control_Line_State、Get_Line_Coding和Serial_State 1的通知组合

在这里插入图片描述

3.2.5、RNDIS CDC Union功能描述符(5字节)

  Union描述符就是用来告诉主机端,哪些接口是联合在一起的,对应着一个功能,这个功能需要主机装载对应的驱动来实现,因此,功能与驱动是一对一的关系。这里bControlInterface值为0,则表示接口0为控制接口,bSubBoardinateInterface0值为1,表示接口1为控制接口0的下级接口,即数据接口。在CDC标准中,控制接口是必须的,而数据接口是可选的,因此,数据接口为控制接口的附属。

字段 长度(位) 偏移量(位) 解码 十六进制值 说明
bLength 8 320 0x05 0x05 描述符的大小,以字节为单位
bDescriptorType 8 328 0x24 0x24 描述符类型
bDescriptorSubType 8 336 0x06 0x06 描述符子类型
bControlInterface 8 344 0x00 0x00 通信或数据类接口的接口号
bSubordinateInterface0 8 352 0x01 0x01 下级接口的接口号

在这里插入图片描述

3.2.6、RNDIS 通知端点描述符(7字节)

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 360 0x07 描述符大小为7字节
bDescriptorType 8 368 0x05 端点描述符类型
bEndpointAddress 8 376 0x82 这是端点号为2的输入端点
bmAttributes 8 384 0x03 类型-传输:中断
低功耗:无
Pkt大小调整:无
wMaxPacketSize 16 392 0x0008 此终结点的最大数据包大小为8字节。如果是高速,则每帧增加0个事务
bInterval 8 408 0x09 轮询间隔值为每9帧。如果高速,每256帧

在这里插入图片描述

3.3、数据接口

3.3.1、RNDIS数据接口描述符(9字节)

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 416 0x09 描述符大小为9字节
bDescriptorType 8 424 0x04 接口描述符类型
bAlternateSetting 8 432 0x01 此接口号为1。
bAlternateSetting 8 440 0x00 用于选择此接口的备用设置的值为0
bNumEndpoints 8 448 0x02 此接口使用的端点数为2(不包括端点0)
bInterfaceClass 8 456 0x0A 接口实现数据接口类
bInterfaceProtocol 8 472 0x00 接口使用不需要特定于类的协议
bInterfaceSubClass 8 464 0x00 子类编码为0
iInterface 8 480 0x04 接口字符串描述符索引为4

在这里插入图片描述

3.3.2、RNDIS数据输入端点描述符(7字节)

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 488 0x07 描述符大小为7字节
bDescriptorType 8 496 0x05 端点描述符类型
bEndpointAddress 8 504 0x81 这是端点号为1的IN端点
bmAttributes 8 512 0x02 类型-传输:批量
包大小调整:否
wMaxPacketSize 16 520 0x0200 此终结点的最大数据包大小为512字节。如果是高速,则每帧增加0个事务
bInterval 8 536 0x00 轮询间隔值为每0帧。高速未定义

在这里插入图片描述

3.3.3、RNDIS数据输出端点描述符(7字节)

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 544 0x07 描述符大小为7字节
bDescriptorType 8 552 0x05 端点描述符类型
bEndpointAddress 8 560 0x01 这是端点号为1的输出端点
bmAttributes 8 568 0x02 类型-传输:批量
包大小调整:否
wMaxPacketSize 16 576 0x0200 此终结点的最大数据包大小为512字节。如果是高速,则每帧增加0个事务
bInterval 8 592 0x00 轮询间隔值为每0帧。

在这里插入图片描述


喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址