USB設備類型匯總

參考:usb wiki、USB

一、USB概述

1.USB 版本

2.USB 接口

[站外圖片上傳中...(image-2f523-1596012258374)]

3.USB Class Codes

? USB定義了設備類的類別碼信息,它的功能包括:可以用來識別設備并且加載設備驅(qū)動。這種代碼信息有包含Base Class([基類])、SubClass([子類])、Protocol([協(xié)議])一共占有3個字節(jié)。

Base Class、SubClass與Protocol詳細關系列表

4.USB封包格式

二、常見usb設備類型

參考ACM&ECM&NCM&EEM&RNDIS&RmNet介紹

1.USB CDC設備

通用串行總線(USB)通信設備(Communication devices)的定義由三個類組成:

  • 通信設備類(Communication Device Class, CDC):設備級定義,被主機用于識別(確定)含有幾種不同類型接口的通信設備;
  • 通信接口類(Communication Interface Class):定義了一種通用機制,該機制可被用來使能處于USB總線上的所有類型的通信服務,即USB通信設備的控制功能;
  • 數(shù)據(jù)接口類(Data Interface Class):定義了一種通用機制,當一種數(shù)據(jù)不符合任何類的要求時,該機制使這種數(shù)據(jù)傳輸能通過USB塊傳輸或同步傳輸類型在USB總線上進行,即通過USB塊傳輸或同步傳輸類型去實現(xiàn)任何類型的數(shù)據(jù)傳輸?shù)臋C制。

1)USB CDC ACM(虛擬串口)

  • CDC-ACM (Abstract Control Model 抽象控制模型)允許任何通信設備提供串行通信接口(例如發(fā)送和接收AT命令的調(diào)制解調(diào)器設備)。該設備類型是在PSTN(Public Switched Telephone Network)中定義的。
  • CDC-ACM驅(qū)動程序?qū)SB設備作為虛擬調(diào)制解調(diào)器或虛擬COM端口暴露給操作系統(tǒng)。驅(qū)動程序可以通過ACM(通過不同通道分離數(shù)據(jù)和AT命令)或通過串行仿真(按原樣傳遞AT命令和作為數(shù)據(jù)流的一部分)發(fā)送數(shù)據(jù)和AT命令。

2)USB CDC ECM

CDC-ECM(Ethernet Networking Control Model 以太網(wǎng)網(wǎng)絡控制模型)用于在設備和主機之間交換以太網(wǎng)幀數(shù)據(jù)。CDC-ECM設備的一般用例是LAN/WLAN的點對點以太網(wǎng)適配器。(獲取的是局域網(wǎng)IP)

3)USB CDC NCM

CDC-NCM(Network Control Model 網(wǎng)絡控制模型)協(xié)議用于在設備和主機之間交換高速以太網(wǎng)幀數(shù)據(jù)。這些以太網(wǎng)幀可以傳送通過通信網(wǎng)絡傳輸?shù)腎Pv4或IPv6數(shù)據(jù)報。NCM設備的一般用例是支持3.5G/4G網(wǎng)絡的無線網(wǎng)絡適配器,例如:HSPA +和LTE。NCM是建立在ECM的基礎上,進行改進以支持更高的數(shù)據(jù)速率,主要表現(xiàn)在

  • 多個以太網(wǎng)幀可以聚合為單個USB傳輸;
  • 為了最大限度地減少在USB設備中處理以太網(wǎng)幀時的開銷,CDC-NCM可以按照最好的方式將以太網(wǎng)幀放到USB傳輸中。
  • CDC-ECM專為USB full-speed設備而設計,尤其適用于支持DOCSIS 1.0電纜調(diào)制解調(diào)器。雖然ECM在功能上是完整的,但它在吞吐量或效率方面不能很好地擴展到更高的USB速度和更高的網(wǎng)絡速度。NCM利用從ECM實施中獲得的經(jīng)驗,并調(diào)整數(shù)據(jù)傳輸協(xié)議,使其更加高效。

4)USB CDC EEM

CDC-EEM(Ethernet Emulation Model 以太網(wǎng)仿真模型)是一種通過USB總線以低成本和高效率傳輸以太網(wǎng)幀的規(guī)范。CDC ECM不同,EEM不會擴展USB總線上的接口,而是將USB總線視為移動以太網(wǎng)數(shù)據(jù)包的工具。EEM是較新的標準,比ECM稍微簡單一些,可以獲得更多的硬件支持。兩者之間的差別是:

  • ECM將網(wǎng)絡接口擴展到目標(例如USB電纜調(diào)制解調(diào)器);
  • EEM用于移動設備通過USB使用以太網(wǎng)與主機通信。

但是,對于Linux gadget,與主機的接口是相同的(usbX設備),因此差異很小。

5)USB CDC OBEX

USB CDC-OBEX(Object Exchange 對象交換)符合WMC(Wireless Mobile Communication 無線移動通信)OBEX功能模型,支持USB上的OBEX應用程序。

6)USB WMC

USB WMC(Wireless Mobile Communication 無線移動通信),可以理解為USB上網(wǎng)卡(連接移動通信網(wǎng)絡),該模型包括以下內(nèi)容:

image

2.RNDIS設備

  • RNDIS(Remote Network Driver Interface Specification 遠程網(wǎng)絡驅(qū)動接口協(xié)議)是Microsoft專有協(xié)議,主要用于USB之上,在支持Microsoft RNDIS協(xié)議的Windows PC上提供類似CDC的通信功能。它提供了大多數(shù)Windows,Linux和FreeBSD操作系統(tǒng)版本的虛擬以太網(wǎng)鏈接。

  • NDISRNDIS區(qū)別:NDIS是一種規(guī)范,定義了網(wǎng)絡驅(qū)動接口的api。RNDIS是一種技術,是將TCP/IP封裝在USB報文里,實現(xiàn)網(wǎng)絡通信。

  • NDISPPP區(qū)別:ppp通過pppd進行撥號,NDIS通過gobinet進行撥號。

  • RNDIS的框架如下:

    image

3.RmNet設備

RmNet是高通公司為其手機平臺開發(fā)的專有USB虛擬以太網(wǎng)框架。 RmNet通過薄層協(xié)議(TLP)提供更高的吞吐量,并允許服務質(zhì)量流量控制。

  • RmNetCDC-ECM區(qū)別:更像是兩種撥號方式的區(qū)別,RmNet獲取公網(wǎng)IP,CCD-ECM獲取局域網(wǎng)IP。
  • 在高通平臺上,rmnet 也是屬于CDC-ECM,他們具體的區(qū)別在于對于USB命令的封裝以及使用的USB接口,端點定義方式不同。
  • 如果是使用RmNet,那么發(fā)起data call是通過QMI工具發(fā)的QMI命令,QMI工具為QMICM,QMICM集成了QMI命令。
  • 而通過標準的CDC-ECM發(fā)起data call,則是發(fā)送標準的ECM命令。
    • 如果是QMICM建立的data call,不走router的,所以它的IP地址獲得的是公網(wǎng)IP。
    • 而通過標準的CDC-ECM建立的data call,是走router的,獲得的IP地址是私有的IP如192.168開頭。

4.HID設備

Human Interface Device的縮寫,由其名稱可以了解HID設備是直接與人交互的設備,例如鍵盤、鼠標與游戲桿等。不過HID設備并不一定要有人機接口,只要符合HID類別規(guī)范的設備都是HID設備。

5.Mass Storage設備

USB大容量存儲設備是一個協(xié)議,允許一個USB接口的設備與主計算設備相連接,以便在兩者之間傳輸文件。對于主計算設備來說,USB設備看起來就像一個移動硬盤,允許拖放型文件傳送。它實際上是由USB實施者論壇所通過許多通訊協(xié)議的匯總,這一標準提供了許多設備的界面。包括移動硬盤、閃存盤、移動光學驅(qū)動器、讀卡器數(shù)碼相機、數(shù)碼音樂播放器、PDA以及手機等等。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容