USB CDC通訊裝置子類概述

2021-06-22 10:02:01 字數 2125 閱讀 3223

1,usb通訊裝置定義

usb的cdc類是usb通訊裝置類(communication device class)的簡稱。cdc類是usb組織定義的一類專門給各種通訊裝置(電信通訊裝置和中速網路通訊裝置)使用的usb子類。根據cdc類所針對通訊裝置的不同,cdc類又被分成以下不同的模型:usb傳統純**業務(pots)模型,usb isdn模型和usb網路模型。其中,usb傳統純**業務模型,有可分為直接線控制模型(direct line control model)、抽象控制模型(abstract control model)和usb**模型(usb telephone model)。 

通用序列匯流排(usb)通訊裝置(communication devices)的定義由三個類組成:

通訊裝置類(the communication device class, cdc):裝置級定義,被主機用於識別(確定)含有幾種不同型別介面的通訊裝置。

通訊介面類(the communication inte***ce class):定義了一種通用機制,該機制可被用來使能處於usb匯流排上的所有型別的通訊服務,即usb通訊裝置的控制功能。

資料介面類(the data inte***ce class):定義了一種通用機制,當一種資料不符合任何類的要求時,該機制使這種資料傳輸能通過usb塊傳輸或同步傳輸型別在usb匯流排上進行,即通過usb塊傳輸或同步傳輸型別去實現任何型別的資料傳輸的機制。

cdc協議定義了一種使得usb匯流排能夠支援任何通訊裝置的框架,如支援電信裝置、多**網路裝置等。

cdc協議並非試圖去重定義已經存在的那些通訊裝置連線和控制標準,而是去定義了一種確定裝置與主機應該使用哪種現有協議的機制.。cdc會盡可能的使用已存在的通訊資料格式,而只是由usb通過恰當的描述符(descriptor)、介面(inte***ce)和服務請求(request)定義去使這些資料格式能夠在usb匯流排上傳輸。確切來說,cdc規範描述了了一種包含usb介面、資料結構和服務請求的框架,在該框架下種類繁多的通訊裝置能夠被定義和實現。

2,通訊裝置組成

通常乙個cdc類裝置由兩個子類介面組成:乙個通訊介面類介面(communication inte***ce class)和0個或多個資料介面類介面(data inte***ce class)。主機主要通過通訊介面類對裝置進行管理和控制,而通過資料介面類傳送資料。對於前面所述的不同cdc類模型,其所對應的介面的端點需求也是不同的,兩個介面子類占有不同數量和型別的端點(endpoints)。

通訊介面類介面(communication inte***ce )

裝置通過通訊介面通過定義好的申請(request)和通知(notification)實施裝置控制以及可能的呼叫控制。因此通訊介面時通訊裝置必須配置的介面,通訊介面類一般需要乙個控制端點(control endpoint,ep0)和乙個可選的中斷(interrupt)端點。為了達到裝置控制的目的,通訊裝置類在配置描述符中必須通過聯合功能描述符(union functional descriptor)將通訊介面和資料介面組織起來。

資料介面類介面(data inte***ce class)

當通訊裝置需要傳輸的資料的資料格式不符合任何類的要求時就需要用資料介面來實現。乙個通訊裝置可以包含0個或多個資料介面,資料介面上的資料格式則是主機和裝置通過通訊介面協商決定。資料介面子類需要乙個方向為輸入(in)的塊傳輸或同步傳輸型別端點和乙個方向為輸出(out)的塊傳輸或同步傳輸型別端點。

3,描述符(descriptor)和請求(request)

關於描述符和請求的具體內容可參考文章usb列舉過程。

裝置描述符

通訊類裝置在裝置描述符中通過cdc子類編號(02h)標示該裝置為cdc,如果不在裝置描述符中表明自己是cdc則要引入usb common class feature mechanism來標示。

配置描述符

配置描述符和通訊介面類的介面描述符和0或多個資料介面類介面描述符組成。通訊介面類的介面描述符後緊跟header functional descriptor、聯合功能描述符、功能描述符和0或1個中斷端點描述符。每個資料介面描述符後則緊跟著兩個端點描述符,型別為塊傳輸或者同步傳輸,乙個in端點乙個out端點。 請求

通訊裝置類定義了一些請求來控制裝置狀態,這些請求通過控制端點或者控制端點與中斷端點的組合使用來控制和獲取裝置的狀態資訊。當裝置狀態發生改變時,裝置也可以通過中斷端點主動上報裝置狀態,稱之為notification。

在keil5上簡單使用USB CDC 通訊

keil5提供了樣板virtualcom,就在上面修改。我們需要修改的是usbd user cdc 0.c和virtualcom.c函式 keil給出的模板是既使用串列埠又使用usb,對於只需要usb功能的見到usart統統刪。usbd user cdc 0.c只需要儲存usbd cdc0 acm ...

序列通訊概述

序列通訊概述 序列通訊按照資料流的方向可以分為全雙工 通訊雙方能在同一時刻進行傳送和接受 半雙工 通訊雙方不能同時收發資料 和單工 通訊一方只能接受或傳送資料,另一方只能傳送或接受資料 序列通訊的傳輸速率是用每秒傳送的位數即波特率表示的 通訊協議分為鏈路層協議和應用層協議。序列通訊按通訊雙方是否用同...

程序通訊概述

閱讀筆記及總結 低階程序通訊 資訊量小 訊號量 高階通訊方式 大量資料 分類 共享儲存器,訊息傳遞,管道通訊 1.共享儲存器系統 程序之間共享某些資料結構或儲存區域 2.訊息傳遞系統 以格式化的訊息為單位,計算機網路中又稱報文,採用系統提供的命令通訊,隱藏了細節 又分為直接 直接發到目標的訊息緩衝佇...