关闭

USB中网络配置

545人阅读 评论(0) 收藏 举报
分类:

USB中典型类及子类:

类别

解释

子类

典型应用

IC芯片

备注

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校验和不能包含在以太网收发数据包中。检验失败的帧数据不能再发送到主机。这意味着设备必须能够缓冲至少一个完整的以太网帧数据。

 

 

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

        这是有效的通信类接口与通信类子类乙太网路控制模型的唯一一类特定的请求代码列于表10

 

 

 

Linux内核配置支持CDC-ECM

[python] view plaincopy
  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

 

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

 

        总结:ECM的驱动源码文件是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()4API

 

一种基于

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的虚拟以太网接口研究与设计

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:53005次
    • 积分:880
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:22篇
    • 译文:0篇
    • 评论:10条
    最新评论