一胚鸯、USB概述
1.USB 版本
2.USB 接口
[站外圖片上傳中...(image-2f523-1596012258374)]
3.USB Class Codes
? USB定義了設(shè)備類的類別碼信息姜钳,它的功能包括:可以用來(lái)識(shí)別設(shè)備并且加載設(shè)備驅(qū)動(dòng)。這種代碼信息有包含Base Class([基類])哥桥、SubClass([子類])、Protocol([協(xié)議])一共占有3個(gè)字節(jié)泰讽。
Base Class、SubClass與Protocol詳細(xì)關(guān)系列表
4.USB封包格式
二佛玄、常見(jiàn)usb設(shè)備類型
參考ACM&ECM&NCM&EEM&RNDIS&RmNet介紹
1.USB CDC設(shè)備
通用串行總線(USB)通信設(shè)備(Communication devices)的定義由三個(gè)類組成:
- 通信設(shè)備類(Communication Device Class, CDC):設(shè)備級(jí)定義梦抢,被主機(jī)用于識(shí)別(確定)含有幾種不同類型接口的通信設(shè)備愧哟;
- 通信接口類(Communication Interface Class):定義了一種通用機(jī)制,該機(jī)制可被用來(lái)使能處于USB總線上的所有類型的通信服務(wù)霞赫,即USB通信設(shè)備的控制功能肥矢;
- 數(shù)據(jù)接口類(Data Interface Class):定義了一種通用機(jī)制,當(dāng)一種數(shù)據(jù)不符合任何類的要求時(shí),該機(jī)制使這種數(shù)據(jù)傳輸能通過(guò)USB塊傳輸或同步傳輸類型在USB總線上進(jìn)行旅东,即通過(guò)USB塊傳輸或同步傳輸類型去實(shí)現(xiàn)任何類型的數(shù)據(jù)傳輸?shù)臋C(jī)制。
1)USB CDC ACM(虛擬串口)
-
CDC-ACM
(Abstract Control Model 抽象控制模型)允許任何通信設(shè)備提供串行通信接口(例如發(fā)送和接收AT命令的調(diào)制解調(diào)器設(shè)備)抵代。該設(shè)備類型是在PSTN(Public Switched Telephone Network)
中定義的忘嫉。 -
CDC-ACM
驅(qū)動(dòng)程序?qū)SB設(shè)備作為虛擬調(diào)制解調(diào)器或虛擬COM端口暴露給操作系統(tǒng)。驅(qū)動(dòng)程序可以通過(guò)ACM(通過(guò)不同通道分離數(shù)據(jù)和AT命令)或通過(guò)串行仿真(按原樣傳遞AT命令和作為數(shù)據(jù)流的一部分)發(fā)送數(shù)據(jù)和AT命令参淫。
2)USB CDC ECM
CDC-ECM
(Ethernet Networking Control Model 以太網(wǎng)網(wǎng)絡(luò)控制模型)用于在設(shè)備和主機(jī)之間交換以太網(wǎng)幀數(shù)據(jù)愧杯。CDC-ECM
設(shè)備的一般用例是LAN/WLAN的點(diǎn)對(duì)點(diǎn)以太網(wǎng)適配器。(獲取的是局域網(wǎng)IP)
3)USB CDC NCM
CDC-NCM
(Network Control Model 網(wǎng)絡(luò)控制模型)協(xié)議用于在設(shè)備和主機(jī)之間交換高速以太網(wǎng)幀數(shù)據(jù)耍铜。這些以太網(wǎng)幀可以傳送通過(guò)通信網(wǎng)絡(luò)傳輸?shù)腎Pv4或IPv6數(shù)據(jù)報(bào)。NCM
設(shè)備的一般用例是支持3.5G/4G網(wǎng)絡(luò)的無(wú)線網(wǎng)絡(luò)適配器陡舅,例如:HSPA +和LTE伴挚。NCM
是建立在ECM
的基礎(chǔ)上,進(jìn)行改進(jìn)以支持更高的數(shù)據(jù)速率茎芋,主要表現(xiàn)在:
- 多個(gè)以太網(wǎng)幀可以聚合為單個(gè)USB傳輸;
- 為了最大限度地減少在USB設(shè)備中處理以太網(wǎng)幀時(shí)的開(kāi)銷涛酗,
CDC-NCM
可以按照最好的方式將以太網(wǎng)幀放到USB傳輸中偷厦。 -
CDC-ECM
專為USB full-speed設(shè)備而設(shè)計(jì),尤其適用于支持DOCSIS 1.0電纜調(diào)制解調(diào)器剖笙。雖然ECM
在功能上是完整的请唱,但它在吞吐量或效率方面不能很好地?cái)U(kuò)展到更高的USB速度和更高的網(wǎng)絡(luò)速度。NCM
利用從ECM
實(shí)施中獲得的經(jīng)驗(yàn),并調(diào)整數(shù)據(jù)傳輸協(xié)議榴啸,使其更加高效。
4)USB CDC EEM
CDC-EEM
(Ethernet Emulation Model 以太網(wǎng)仿真模型)是一種通過(guò)USB總線以低成本和高效率傳輸以太網(wǎng)幀的規(guī)范勋功。與CDC ECM
不同库说,EEM
不會(huì)擴(kuò)展USB總線上的接口,而是將USB總線視為移動(dòng)以太網(wǎng)數(shù)據(jù)包的工具潜的。EEM
是較新的標(biāo)準(zhǔn),比ECM
稍微簡(jiǎn)單一些信不,可以獲得更多的硬件支持。兩者之間的差別是:
-
ECM
將網(wǎng)絡(luò)接口擴(kuò)展到目標(biāo)(例如USB電纜調(diào)制解調(diào)器)硫戈; -
EEM
用于移動(dòng)設(shè)備通過(guò)USB使用以太網(wǎng)與主機(jī)通信。
但是丁逝,對(duì)于Linux gadget霜幼,與主機(jī)的接口是相同的(usbX設(shè)備),因此差異很小辛掠。
5)USB CDC OBEX
USB CDC-OBEX
(Object Exchange 對(duì)象交換)符合WMC
(Wireless Mobile Communication 無(wú)線移動(dòng)通信)OBEX
功能模型释牺,支持USB上的OBEX
應(yīng)用程序。
6)USB WMC
USB WMC
(Wireless Mobile Communication 無(wú)線移動(dòng)通信)没咙,可以理解為USB上網(wǎng)卡(連接移動(dòng)通信網(wǎng)絡(luò)),該模型包括以下內(nèi)容:
2.RNDIS設(shè)備
RNDIS
(Remote Network Driver Interface Specification 遠(yuǎn)程網(wǎng)絡(luò)驅(qū)動(dòng)接口協(xié)議)是Microsoft專有協(xié)議牌捷,主要用于USB之上涡驮,在支持Microsoft RNDIS協(xié)議的Windows PC上提供類似CDC的通信功能。它提供了大多數(shù)Windows撤防,Linux和FreeBSD操作系統(tǒng)版本的虛擬以太網(wǎng)鏈接蝗锥。NDIS
和RNDIS
區(qū)別:NDIS
是一種規(guī)范野揪,定義了網(wǎng)絡(luò)驅(qū)動(dòng)接口的api拗馒。RNDIS
是一種技術(shù)灸眼,是將TCP/IP封裝在USB報(bào)文里克懊,實(shí)現(xiàn)網(wǎng)絡(luò)通信。NDIS
和PPP
區(qū)別:ppp通過(guò)pppd進(jìn)行撥號(hào)耕蝉,NDIS通過(guò)gobinet進(jìn)行撥號(hào)。-
RNDIS
的框架如下:
3.RmNet設(shè)備
RmNet
是高通公司為其手機(jī)平臺(tái)開(kāi)發(fā)的專有USB虛擬以太網(wǎng)框架垒在。 RmNet通過(guò)薄層協(xié)議(TLP)提供更高的吞吐量场躯,并允許服務(wù)質(zhì)量流量控制旅挤。
-
RmNet
和CDC-ECM
區(qū)別:更像是兩種撥號(hào)方式的區(qū)別,RmNet
獲取公網(wǎng)IP签舞,CCD-ECM
獲取局域網(wǎng)IP。 - 在高通平臺(tái)上柒瓣,rmnet 也是屬于
CDC-ECM
芙贫,他們具體的區(qū)別在于對(duì)于USB命令的封裝以及使用的USB接口,端點(diǎn)定義方式不同魂仍。 - 如果是使用
RmNet
,那么發(fā)起data call是通過(guò)QMI工具發(fā)的QMI命令拣挪,QMI工具為QMICM,QMICM集成了QMI命令菠劝。 - 而通過(guò)標(biāo)準(zhǔn)的
CDC-ECM
發(fā)起data call,則是發(fā)送標(biāo)準(zhǔn)的ECM
命令。- 如果是QMICM建立的data call介袜,不走router的,所以它的IP地址獲得的是公網(wǎng)IP遇伞。
- 而通過(guò)標(biāo)準(zhǔn)的
CDC-ECM
建立的data call,是走router的秋麸,獲得的IP地址是私有的IP如192.168開(kāi)頭。
4.HID設(shè)備
Human Interface Device的縮寫(xiě)炬太,由其名稱可以了解HID設(shè)備是直接與人交互的設(shè)備,例如鍵盤(pán)炒考、鼠標(biāo)與游戲桿等。不過(guò)HID設(shè)備并不一定要有人機(jī)接口斋枢,只要符合HID類別規(guī)范的設(shè)備都是HID設(shè)備知给。
5.Mass Storage設(shè)備
USB大容量存儲(chǔ)設(shè)備是一個(gè)協(xié)議,允許一個(gè)USB接口的設(shè)備與主計(jì)算設(shè)備相連接戈次,以便在兩者之間傳輸文件朝扼。對(duì)于主計(jì)算設(shè)備來(lái)說(shuō),USB設(shè)備看起來(lái)就像一個(gè)移動(dòng)硬盤(pán)擎颖,允許拖放型文件傳送观游。它實(shí)際上是由USB實(shí)施者論壇所通過(guò)許多通訊協(xié)議的匯總懂缕,這一標(biāo)準(zhǔn)提供了許多設(shè)備的界面允跑。包括移動(dòng)硬盤(pán)、閃存盤(pán)搪柑、移動(dòng)光學(xué)驅(qū)動(dòng)器聋丝、讀卡器、數(shù)碼相機(jī)工碾、數(shù)碼音樂(lè)播放器弱睦、PDA以及手機(jī)等等。