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 同步 等時傳輸方式 用於連線需要連續傳輸資料且對資料正確性要求不高,而對時間極為敏感的外部裝置...