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

5、8910芯片USB描述符:接口描述符&端点描述符—ECM

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

五、ECM网卡

  以太网控制模型(Ethernet Networking Control Model) 用于在设备和主机之间传输以太网数据包。
  在操作系统看来,CDC ECM设备就是一个虚拟以太网卡,包含标准网卡需要的MAC地址和IP地址。
  CDC ECM设备通常是一个以太网卡,用于连接LAN或者是WLAN。ECM是标准的,隶属USB协议,当然是usb封装的TCP协议,数据接口则用于在USB总线上交换USB数据包,这些USB数以的包封装了完整的以太网包。
  8910平台支持ECM功能,默认处于关闭状态。需要发送AT+SETUSB=2设置USB网卡的工作模式。命令发送完成之后可以断电保持,重启有效。

在这里插入图片描述

  正常情况下只要将模块接入运行linux系统,电脑就会识别出来一块网卡。windows系统上默认不支持ECM网卡,需要额外安装驱动才能使用。

5.1、ECM接口关联描述符(8字节)

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 72 0x08 描述符大小为8字节
bDescriptorType 8 80 0x0B 接口类型:INTERFACE_ASSOCIATION
bFirstInterface 8 88 0x00 接口关联的第一个接口号是0
bInterfaceCount 8 96 0x02 接口关联的连续接口数为2
bFunctionClass 8 104 0x02 接口属于通信设备/接口类
bFunctionSubClass 8 112 0x06 接口属于以太网网络控制模型子类
bFunctionProtocol 8 120 0x00 接口使用不需要特定于类的协议
iFunction 8 128 0x03 接口字符串描述符索引为3

在这里插入图片描述

5.2、控制接口

5.2.1、ECM控制接口描述符(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 0x02 接口实现通信设备/接口类
bInterfaceSubClass 8 184 0x06 接口实现以太网组网控制模型子类
bInterfaceProtocol 8 192 0x00 接口使用不需要特定于类的协议
iInterface 8 200 0x05 接口字符串描述符索引为5

在这里插入图片描述

5.2.2、ECM 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版

在这里插入图片描述

5.2.3、ECM CDC Union功能描述符(5字节)

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

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

在这里插入图片描述

5.2.4、ECM CDC ethernet功能描述符(13字节)

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 288 0x0D 描述符的大小,以字节为单位
bDescriptorType 8 296 0x24 描述符类型:CS_INTERFACE
bDescriptorSubType 8 304 0x0F 功能描述符子类型
iMACAddress 8 312 0x06 字符串描述符索引
bmEthernetStatistics 32 296 0x00060F24 Bit 0: XMIT_OK 0
Bit 1: RVC_OK 0
Bit 2: XMIT_ERROR 0
Bit 3: RCV_ERROR 0
Bit 4: RCV_NO_BUFFER 0
Bit 5: DIRECTED_BYTES_XMIT 0
Bit 6: DIRECTED_FRAMES_XMIT 0
Bit 7: MULTICAST_BYTES_XMIT 0
Bit 8: MULTICAST_FRAMES_XMIT 0
Bit 9: BROADCAST_BYTES_XMIT 0
wMaxSegmentSize 16 352 0x05EA 以太网设备能够支持的最大段大小
wNumberMCFilters 16 368 0x0000 多播筛选器位图
bNumberPowerFilters 8 384 0x00 包含可用于唤醒主机的模式筛选器数

在这里插入图片描述

5.2.5、ECM通知端点描述符(7字节)

字段 长度(位) 偏移量(位) 十六进制值 说明
bLength 8 392 0x07 描述符大小为7字节
bDescriptorType 8 400 0x05 端点描述符类型
bEndpointAddress 8 408 0x81 这是端点号为1的输入端点
bmAttributes 8 416 0x03 类型-传输:中断
低功耗:无
Pkt大小调整:无
wMaxPacketSize 16 424 0x0010 此终结点的最大数据包大小为16字节。如果是高速,则每帧增加0个事务
bInterval 8 440 0x20 轮询间隔值为每32帧。高速未定义

在这里插入图片描述

5.3、数据接口

5.3.1、ECM数据接口描述符alt0(9字节)

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

在这里插入图片描述

5.3.2、ECM数据接口描述符alt1(9字节)

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

在这里插入图片描述

5.3.3、ECM数据输入端点描述符(7字节)

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

在这里插入图片描述

5.3.4、ECM数据输出端点描述符(7字节)

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

在这里插入图片描述


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

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

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

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