USB通訊協議 資料傳輸

2022-05-27 02:21:09 字數 2354 閱讀 7026

usb2.0通訊協議(spalish)

1.包(packet)

包是usb系統中資訊傳輸的基本單元,所有資料都是經過打包後在匯流排上傳輸的。usb包由五部分組成,同步字段(sync)、包識別符號(pid)、資料字段、crc和包結尾字段(eop)。

包型別(由pid區分):

令牌:out   in  sof  setup

資料:data0  data1

握手:ack  nak  stall

特殊:pre

2.事務(transaction)

還有乙個特殊的事務型別:拆分事務(split transaction),用來支援高速hub上連線低速或全速裝置。這種特殊事務型別只是和host和hub有關,但是對裝置是透明的。

3.傳輸

控制傳輸、中斷傳輸、批量傳輸、等時傳輸

所有的四種傳輸方式都由上面的事務來處理,也就是說傳輸由不同型別的事務組成,事務由不同型別的的收發組成

3.包傳送和frame的關係?幀(frame)和微幀(microframe)

usb匯流排上的傳輸由幀組成。

低速或全速裝置通過幀來傳送,週期1ms

高速裝置通過微幀,週期125us

host每1ms產生sof包(相當於微幀的時候是每8個微幀產生乙個sof包)

乙個幀可以包含多個事務。每n個幀匯流排會分配頻寬給中斷傳輸或是等時傳輸

可以這麼理解:匯流排時隙分成乙個個幀,每個幀裡面由事務組成。host controller的作用就是根據傳輸型別合理分配這些事務在匯流排上的排程。

usb  最主要的的是要理解   usb主機傳送命令給裝置,裝置要對主機的命令進行響應, usb通訊的基本單位為 「包」   理解好「包」這個概念是學習usb的關鍵所在。 

包有如下分類: 

分別是令牌包、資料報、握手包和特殊包(其實是由pid決定的) 

令牌包:可分為輸入包、輸出包、設定包和幀起始包(注意這裡的輸入包是用於設定輸入命令的,輸出包是用來設定輸出命令的,而不是放據數的)其中輸入包、輸出包和設定包的格式都是一樣的: 

sync+pid+addr+endp+crc5(五位的校驗碼) 

幀起始包: 

sync+pid+11位fram+crc5(五位的校驗碼) 

資料報:分為data0包和data1包,當usb傳送資料的時候,當一次傳送的資料長度大於相應端點的容量時,就需要把資料報分為好幾個包,分批傳送,data0包和data1包交替傳送,即如果第乙個資料報是data0,那第二個資料報就是data1。但也有例外情況,在同步傳輸中(四類傳輸型別中之一),所有的資料報都是為data0,格式如下: 

sync+pid+0~1023位元組+crc16 

握手包:結構最為簡單的包,格式如下 

sync+pid 

下面舉幾個例子來說明usb的通訊過程: 

1:主機想要向裝置傳送一串資料。 過程如下: 

(1)   主機向從機傳送 「令牌包」,令牌包的型別為輸出包,表示主機要向從機傳送資料了。 

(2)   主機向從機傳送完令牌以後,usb處理器件根據傳送的令牌,會將中斷狀態暫存器標誌置位,從機cpu通過查詢usb處理器件的中斷狀態暫存器,對主機的令牌包進行響應 

(3)   從機判別出中斷型別,於是,準備從主機接收資料。 

(4)   從機準備好了,於是主機開始傳送「資料報」 這時,usb處理器件會自動將從主傳送過來的資料放如它的內部緩衝區內,接收完這個資料報後,從機向主機傳送「應答包」  

這就是乙個完整的通訊過程。 

由以上可以看出,usb若是想要傳送資料,那麼主機必須先發乙個 in 或out的令牌包,然後傳送data0,或data1資料報。 

簡單的用現實生活中的事件進行描述:  老闆想讓員工去做一件事情,老闆 先會發出命令,告訴要做什麼事情,員工準備好以後呢,老闆再把做這件事情的經費發放給員工,當員工把發放的經費清點以後,發現數目正確,他會給老闆乙個回應資訊,告訴老闆,錢已經收到了,而且數目正確。 

老闆想讓員工做的事:  對應usb通訊裡的令牌包。 

老闆想要發放的經費:  對應usb通訊裡的資料報。 

員工給老闆的回應:    對應usb通訊裡的握手包。 

這裡尤其需要注意乙個問題就是: 

usb主機向裝置傳送令牌包的時候,接收令牌是有usb器件來完成的,而不是有從機cpu來完成的,如主機傳送乙個如下的令牌: 

sync+pid+addr+endp+crc5 

usb器件回根據pid的型別來判斷是哪種型別的令牌 根據addr的值來判斷是否是和自己通訊,根據endp的值來判斷是和哪個端點進行通訊,根據校驗來判斷,資料傳送是否無誤。根據以上的令牌包資訊,usb器件會將其內部的中斷狀態暫存器相應的位置位,從機cpu可以查詢這個中斷狀態暫存器來進行相應的操作。

硬體通訊協議的資料傳輸方式

硬體協議資料傳輸的包含要素主要為 物理介質,編碼方式,通訊協議,傳輸特點。下面就對常見的硬體通訊協議進行簡單總結。1.uart lsb first 2.usb lsb first,小端傳輸 3.spi msb first 4.iic msb first 5.網路 大端傳輸 6.pci pcie 小端...

usb 資料傳輸方式(2)

一 usb資料傳輸的過程 二 usb傳輸方式 1.塊傳輸 適合對速度沒要求,傳輸資料量大的裝置 每個資料報長度高速的時候為512位元組,低速裝置最大64個位元組 用 於主機與usb裝置之間的批量資料傳輸,通常一次塊傳輸需要分解成若干個塊傳輸事務。顯然,一次塊傳輸的方向是單一的,對主機而言,要麼是輸入...

USB通訊協議

usb2.0最高傳輸速度可達480mb s。一 四種傳輸方式 a 控制傳輸方式 配置和控制主機到usb裝置的資料傳輸方式和型別。b 中斷傳輸方式 資料量小,需被及時處理,實時性好,主要用於鍵盤 滑鼠等。c 同步 等時傳輸方式 用於連線需要連續傳輸資料且對資料正確性要求不高,而對時間極為敏感的外部裝置...