USB中CDC-ECM的了解和配置


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

Device Drivers  --->
    [*] Network device support  --->
        USB Network Adapters  --->
            <*> Multi-purpose USB Networking Framework
            -*-   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的虛擬以太網接口研究與設計


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM