接口描述符&端点描述符 ECM

五、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字节

bDescr iptorType

8

80

0x0B

接口类型 :INTERFACE_ ASSOCIATION

bFirst Interface

8

88

0x00

接口 关联的第一 个接口号是0

bInter faceCount

8

96

0x02

接 口关联的连 续接口数为2

bFunc tionClass

8

104

0x02

接 口属于通信 设备/接口类

bFunctio nSubClass

8

112

0x06

接口属于以 太网网络控 制模型子类

bFunctio nProtocol

8

120

0x00

接口使用 不需要特定 于类的协议

** iFunction**

8

128

0x03

接 口字符串描 述符索引为3

在这里插入图片描述

在这里插入图片描述

5.2、控制接口

5.2.1、ECM控制接口描述符(9字节)

字段

长度(位)

偏 移量(位)

十六进制值

说明

bLength

8

136

0x09

描述符 大小为9字节

bDescr iptorType

8

144

0x04

接口 描述符类型

bInterf aceNumber

8

152

0x00

此接口号 的索引为0。

bAlterna teSetting

8

160

0x00

用于选择此 接口的备用 设置的值为0

bNum Endpoints

8

168

0x01

此接 口使用的端 点数为1(不 包括端点0)

bInter faceClass

8

176

0x02

接 口实现通信 设备/接口类

bInterfac eSubClass

8

184

0x06

接口实现以 太网组网控 制模型子类

bInterfac eProtocol

8

192

0x00

接口使用 不需要特定 于类的协议

i Interface

8

200

0x05

接 口字符串描 述符索引为5

在这里插入图片描述

在这里插入图片描述

5.2.2、ECM CDC Header功能描述符(5字节)

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

字段

长度(位)

偏 移量(位)

十六进制值

说明

bLength

8

208

0x05

描述符 的大小,以 字节为单位

bDescr iptorType

8

216

0x24

描述符类型

bDescript orSubType

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

描述符 的大小,以 字节为单位

bDescr iptorType

8

256

0x24

描述符类型

bDescript orSubType

8

264

0x06

描 述符子类型

bControl Interface

8

272

0x00

通信 或数据类接 口的接口号

bS ubordinateI nterface0

8

280

0x01

下级接 口的接口号

在这里插入图片描述

在这里插入图片描述

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

字段

长 度 ( 位 )

偏移 量( 位)

十 六 进 制 值

说明

bLength

8

288

0 x0D

描述符的大小,以字节为单位

bDescr iptorType

8

296

0 x24

描述符类型:CS_INTERFACE

bDescript orSubType

8

304

0 x0F

功能描述符子类型

iM ACAddress

8

312

0 x06

字符串描述符索引

** bmEthernetS tatistics**

32

296

0 x00 060 F24

Bit 0: XMIT_OK 0Bit 1: RVC_OK 0Bit 2: XMIT_ERROR 0Bit 3: RCV_ERROR 0Bit 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

wMaxSe gmentSize

16

352

0x0 5EA

以太网设备能够支持的最大段大小

wNumber MCFilters

16

368

0x0 000

多播筛选器位图

bNumberPow erFilters*

8

384

0 x00

包含可用于唤醒主机的模式筛选器数

在这里插入图片描述

在这里插入图片描述

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

字段

长度(位)

偏 移量(位)

十六进制值

说明

bLength

8

392

0x07

描述符 大小为7字节

bDescr iptorType

8

400

0x05

端点 描述符类型

bEndpoi ntAddress

8

408

0x81

这 是端点号为 1的输入端点

bmA ttributes

8

416

0x03

类型-传输 :中断低功 耗:无Pkt大 小调整:无

wMaxP acketSize

16

424

0x0010

此 终结点的最 大数据包大 小为16字节 。如果是高 速,则每帧 增加0个事务

** bInterval**

8

440

0x20

轮询间隔值 为每32帧。 高速未定义

在这里插入图片描述

在这里插入图片描述

5.3、数据接口

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

字段

长度(位)

偏 移量(位)

十六进制值

说明

bLength

8

448

0x09

描述符 大小为9字节

bDescr iptorType

8

456

0x04

接口 描述符类型

bAlterna teSetting

8

464

0x01

此 接口号为1。

bAlterna teSetting

8

472

0x00

用于选择此 接口的备用 设置的值为0

bNum Endpoints

8

480

0x00

此接 口使用的端 点数为0(不 包括端点0)

bInter faceClass

8

488

0x0A

接口实现 数据接口类

bInterfac eProtocol

8

504

0x00

接口使用 不需要特定 于类的协议

bInterfac eSubClass

8

496

0x00

子类编码为0

i Interface

8

512

0x00

接 口字符串描 述符索引为0

在这里插入图片描述

在这里插入图片描述

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

字段

长度(位)

偏 移量(位)

十六进制值

说明

bLength

8

520

0x09

描述符 大小为9字节

bDescr iptorType

8

528

0x04

接口 描述符类型

bAlterna teSetting

8

536

0x01

此 接口号为1。

bAlterna teSetting

8

544

0x01

用于选择此 接口的备用 设置的值为1

bNum Endpoints

8

552

0x02

此接 口使用的端 点数为2(不 包括端点0)

bInter faceClass

8

560

0x0A

接口实现 数据接口类

bInterfac eProtocol

8

576

0x00

接口使用 不需要特定 于类的协议

bInterfac eSubClass

8

568

0x00

子类编码为0

i Interface

8

584

0x04

接 口字符串描 述符索引为4

在这里插入图片描述

在这里插入图片描述

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

字段

长度(位)

偏 移量(位)

十六进制值

说明

bLength

8

592

0x07

描述符 大小为7字节

bDescr iptorType

8

600

0x05

端点 描述符类型

bEndpoi ntAddress

8

608

0x82

这是端点号 为2的IN端点

bmA ttributes

8

616

0x02

类型-传输 :批量包大 小调整:否

wMaxP acketSize

16

624

0x0200

此 终结点的最 大数据包大 小为512字节 。如果是高 速,则每帧 增加0个事务

** bInterval**

8

640

0x00

轮询间隔 值为每0帧。 高速未定义

在这里插入图片描述

在这里插入图片描述

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

字段

长度(位)

偏 移量(位)

十六进制值

说明

bLength

8

648

0x07

描述符 大小为7字节

bDescr iptorType

8

656

0x05

端点 描述符类型

bEndpoi ntAddress

8

664

0x01

这 是端点号为 1的输出端点

bmA ttributes

8

672

0x02

类型-传输 :批量包大 小调整:否

wMaxP acketSize

16

680

0x0200

此 终结点的最 大数据包大 小为512字节 。如果是高 速,则每帧 增加0个事务

** bInterval**

8

696

0x00

轮询间隔 值为每0帧。

在这里插入图片描述

在这里插入图片描述