USB中网络配置

转载 2015年07月07日 10:40:10

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

相关文章推荐

OpenWRT USB 摄像头 配置网络摄像头

1、手上刚好有个OpenWRT  AR9331硬件平台 ,还有个USB摄像头。所以想试着做个webCam 2、确认摄像头、安装摄像头驱动 1)摄像头有两种。一种是gspca devices,一种是U...

linux(ubuntu 64位)下,配置ARToolKit,用usb网络摄像头来实现

提示:在配置时遇到问题时,千万要心平气和,把它当作人生中必须克服的难题对待,要有坚韧不拔的毅力和细致入微的品质,在阅读每一个相关的教程时,并判断它有用后,不要流于字面的形式,一定要一字一字去读,仔细琢...

手机如何使用USB数据线共享PC网络

手机如何使用USB数据线共享PC网络 浏览:32773|更新:2013-10-22 18:27|标签:共享  1 2 3 4 5 6 7 ...

手把手教你在pcduino上实现uspip--USB网络重定向

我们经常碰到一种情况,我们需要往pcduino上拷贝东西,新手都用U盘,高手一般都用samba这样的高级玩意儿。拷贝一次倒也无所谓,关键是有些情况下,我们需要多次测试,多次拷贝。pcduino的USB...

【网络通信】Wince 和 PC 通过USB 用Socket 进行通信

网上资料比较少或者说讲的不太详细,现在进行总结下,刚毕业没接触过WINce,不过和MFC差不多,现在进入正题 刚开始我的疑惑是Wince是如何和PC进行通信的,以及能在USB模式下进...

在ROS中使用USB网络摄像头传输图像

转自:http://blog.csdn.net/yake827/article/details/44983093 在上节已经实现了单张图片的ROS实现,而在现实中,我们一般是使用摄像头来获取...
  • mxgsgtc
  • mxgsgtc
  • 2017年05月15日 14:24
  • 596

【系统使用】解决安卓USB共享网络给Windows10异常卡顿问题

最近windows7常常出现一些莫名其妙的问题,现在windows10勉强算是比较稳定了,就切换到windows10进行编程,但是windows10一直存在一些特别奇葩的问题,幸好现在windows1...

ROS学习笔记(三):在ROS中使用USB网络摄像头传输图像

刚刚实现了单张图片的ROS实现,而在现实中,我们一般是使用摄像头来获取图像,这次就来实现在ROS中使用摄像头传输图像,我使用的是罗技的usb网络摄像头,首先要安装摄像头驱动,...
  • yake827
  • yake827
  • 2015年04月10日 18:11
  • 6160

Linux下完美驱动HTC Android手机的Internet传输(通过USB共享电脑网络)

Htc android手机的Internet传输(Internet pass-through)是手机使用USB连接线通过PC上网,共享电脑网络。 但是,这么好的功能需要在windows系统下安装...
  • eyf0917
  • eyf0917
  • 2014年07月15日 22:49
  • 1315

上网篇:USB网络共享

假期还没有结束,抽空来图书馆学习,但是遇见个小麻烦,不知道图书馆WIFI密码。可能大家都会直接问管理员要了,但是尴尬的是我不想张口啊#死要面子#。所以我就自己想办法喽。准备工作手机版WiFi万能钥匙 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:USB中网络配置
举报原因:
原因补充:

(最多只允许输入30个字)