USB匯流排協議中的一些基本概念

2021-06-06 21:02:22 字數 1437 閱讀 5847

usb匯流排協議中經常會遇到一些概念,自己總結了下,講基本的概念進行描述

1.usb系統模型:

usb實際上是乙個資料通訊協議,由幾個大公司定義的。

usb系統由兩部分組成,usb主機和usb裝置,平常看到的usb主機就是整合在pc上的usb口;usb裝置就是我們連線在pc上的裝置,如u盤。其中usb裝置始終是被動的,usb主機器控制所有的傳輸,即所有的事務都是由usb主機發起。usb裝置通常由兩部分晶元組成,usb協議解釋晶元+mcu(搬資料)。

1.usb裝置位址與端點的區別

端點(endpoint):首先從物理機制來說,端點可以使嵌入式系統或pc上的乙個資料緩衝區,用來存放或傳送usb的資料;從邏輯上看,端點可以視為資料的收發器,按照預先定義的傳輸方式來交換資料。每個端點具有唯一的位址,即端點號。每個端點的屬性由硬體晶元設定,需要從data sheet中檢視。在usb的韌體中,就存在對端點的描述,包括輸入/輸出方向,端點號,端點包的容量即buffer大小,如果一次事務傳輸的資料量》endpoint.buffer,則會分包,如tcp傳輸的資料報》mcu時,在鏈路層則會出現分片包;其中端點描述為4bit,每個裝置最多有2^4=16個端點,其中0號端點為配置端點,可以是雙向的。其他端點只能是單向的。乙個控制器具體有幾個端點以及端點的屬性,需要檢視晶元手冊。

usb裝置位址為7bit,2^7=128,其中0號位址是裝置列舉成功前預設的位址,所以乙個usb主機最多可以連線127個usb裝置。usb系統為乙個拓撲結構,usb主機需要知道每個裝置的位址。

資料在usb裝置和usb主機的傳輸方式是串列埠模式,但是usb主機與pc的傳輸是採用pci匯流排,並口方式進行的。

2.usb匯流排上二進位制數的傳送順序

當乙個資料需要多個位元組表示的時候,資料的傳輸就需要考慮位元組順序了

usb匯流排上二進位制數的傳送順序是按照lsb->msb的方式進行。

如0x12345678,在usb匯流排上的傳送順序是0x78,0x56,0x34,0x12的位元組順序傳送.

如果資料0x12345678,在pc中採用的儲存方式是little endian方式(資料在記憶體中儲存的方式0x78 0x56 0x34 0x12),則資料在usb匯流排的傳送不需要轉化,如intel

而如果資料0x12345678在pc中採用的儲存方式是big endian方式(資料在記憶體中儲存的方式0x12 0x34 0x56 0x78),則資料在傳送之前需要進行轉化。

同時接受段的mcu也需要注意資料的儲存方式,處理位元組位與位址的關係。

網路位元組序採用"所見即所得」的方式獲取,如網路抓包工具收到兩個位元組 0x01 0x02,按照一般的數學常識,數抽從左到右增長的的方式,則解釋為0x0102,intel cpu模式則需要進行資料的轉化。

即,網路位元組流可以理解為big endian的方式處理的。

3.usb 事務與傳輸的概念

4.usb 4種傳輸模式以及應用場景

5.usb幀格式

5.usb如何實現低功耗

c 中的一些基本概念

tom archer寫的 c 技術內幕 通俗易懂,翻譯行文流暢,菜鳥如我也能順利地讀下去,不錯。覺得有些東西還是值得邊讀邊記的,留作以後參考。c 中的數值型別與引用型別 數值型別 數值型別類似c中的變數型別,當宣告乙個數值型別的時候,是在棧上分配相應的儲存空間,並且後續的操作都是直接針對這些已分配的...

Cas中的一些基本概念

ticket granting ticket tgt 可以認為是cas server根據使用者名稱密碼生成的一張票,存在server端.ticket granting cookie tgc 其實就是乙個cookie,存放使用者身份資訊,由server發給client端.service ticket ...

PS中的一些基本概念

1.數字影象 用一些數位相機拍攝的 能夠放在電腦中被讀取出來的影象。2.解析度 把 放入ps中放大,最終會被放大成一格一格的,這個格在預設狀態下它是正方形的,每乙個小格稱之為乙個畫素,每乙個小格是影象中最小的乙個元素,簡稱畫素。影象也可以被稱為位圖。一英吋的範圍內大約有多少個畫素,那我們就說他的解析...