中典型类及子类:

类别

解释

子类

典型应用

芯片

备注

UVC

视频类

 

USB摄像头

 

 

CDC

通讯类

RNDIS

 

 

 

ECM(p24)

USB网卡

RTL8152B

 

EEM

 

 

 

......

 

 

 

 

UVC,今天接触了CDC-ECM原理上是一样的,定义一套标准协议主从机都遵守了就不需要额外的驱动程序。

(其实用Google的多一些)一下usbcdc11的第3.8.2关于CDC-ECM的章节。

 

3.8.2 Ethernet Networking Control Model

“以太网控制模型”子类码是通信类接口描述定义。

USB总线上交换USB数据包,这些USB数以的包封装了完整的以太网包。CRC校验和不能包含在以太网收发数据包中。检验失败的帧数据不能再发送到主机。这意味着设备必须能够缓冲至少一个完整的以太网帧数据。

 

android usb 以太网通讯 usb配置usb以太网_android usb 以太网通讯

 

USB虚拟网络接口通常一直保持连接状态,一些网络设备管理的要求,需要正确地初始化设备和主机网络堆栈两者。也可能是偶然的变化配置或状态,例如,增加组播过滤器。

10。

 

android usb 以太网通讯 usb配置usb以太网_子类_02

 

android usb 以太网通讯 usb配置usb以太网_通信类_03

 

内核配置支持CDC-ECM:


1. Device Drivers  --->  
2.     [*] Network device support  --->  
3.         USB Network Adapters  --->  
4.             <*> Multi-purpose USB Networking Framework  
5.             -*-   CDC Ethernet support (smart devices such as cable modems)


CDC-ECM设备的LOG信息:

usb 1-1: new full speed USB device using s3c2410-ohci and address 3

usb 1-1: New USB device found, idVendor=0bda, idProduct=8152

usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

usb 1-1: Product: USB 10/100 LAN

usb 1-1: Manufacturer: Realtek

usb 1-1: SerialNumber: 00E04C36004F

usb 1-1: configuration #2 chosen from 2 choices

eth1: register 'cdc_ether' at usb-s3c24xx-1, CDC Ethernet Device, 00:e0:4c:36:00:4f

 

然后就完事了,它就是一个普通的网卡了。

 

的驱动源码文件是drivers/net/usb/cdc_ether.c。不需要添加Vid Pid等等任何操作就可以使用。cdc_ether.c与传统的以太网芯片的驱动程序并不一样,并不是实现xxx_open(),xxx_stop(),xxx_tx(), xxx_hard_header(), xxx_get_stats, xxx_tx_timeout()而是实现了:usbnet_generic_cdc_bind(), usbnet_cdc_unbind(), usbnet_cdc_bind(), usbnet_cdc_status()等4个API。

 

一种基于

USB 

通讯设备类协议

CDC

Communication Devices Class Specification

USB

不同的通讯设备接口,

其中的以太网控制模型

ECM(Ethernet Networking Control Model)

与以太网仿真模型

EEM

Ethernet Emulation 

Model

)可以将其虚拟为一个标准的以太网接口

[3][4]

。自从

USB CDC

规格发布以来,

国外的软硬件公司都使用

USB CDC

USB

上实现一些通讯接口的功能,如串口,

ISDN

ATM

,以太网等。

Microsoft 

WINXP

版本上内置了基于

CDC

RNDIS

动,使得在

WINXP

下可以无缝的连接基于

RNDIS 

USB 

以太网接口设备。

Linux

2.6

以后的版本就缺省支持基于

CDC

的以太网接口(

usbnet

)与串口。在

Linux

内核中,

usbnet

模块用于创建

USB

虚拟以太网设接口。创建成功后,这一虚拟网络

接口便可以如同标准网络接口一样被指定一个

IP

地址。

USB

电缆连接上后,

usbnet

模块便能使

USB

虚拟的以太网接口

ping

测其它

IP

地址,

甚至

“谈论”

DHCP

 HTTP

 

NFS

 telnet

 

ftp

[5]

。简言之,任何在实际的以太网接口上运行的应用将不折不

扣地在

USB

虚拟以太网接口上得到实现,因为它们不能分辨出其正在使用的是真实

的以太网硬件接口还是

USB

虚拟的以太网接口

参考:《基于USB+CDC的虚拟以太网接口研究与设计