包格式從裝置接入usb主機的時候,usb主機會給從裝置分配乙個唯一的位址,並且在通過usb匯流排傳輸資料的時候,會附帶有相應的從裝置位址,而從裝置靠著這個位址,來決定這個資料是否屬於自己的。乙個usb主機,最多只能分配127個位址(1~127),並且最多只能連線5層集線器,在第5層的集線器中,只能連線usb裝置,而不能連線hub。
usb主機和usb裝置之間的通訊,是通過管道(pipe)進行的。這個管道可能有點難理解,其實是這樣的,並不是真的一條管子,而是在usb主機這裡,有一處資料緩衝區,而這個資料緩衝區,這個緩衝區是用來做資料收發的時候進行緩衝的,它直接指向的是對應的從裝置,從裝置是通過緩衝區指向的乙個端點,也就是確定好的索引方向,來接收主機傳送過來的資訊。這樣一來,usb裝置位址、端點索引和端點方向,就可以直接組合成乙個唯一的usb主機和usb裝置通訊的通道了。
在usb協議上,管道傳輸的資料基本單位是乙個包(packet),這個包的組成是由多個邏輯0和1構成的。然後多個包又可以構成乙個事務,多個事務可以構成乙個傳輸。
usb協議中定義了三大類包:
這些包的的區分,是通過識別符號(pid)進行區分的,pid的令牌包:
同樣的,資料報也有分類:
握手包:
通過多個包的組,會相應的變成事務,如setup事務等等。
這當然不是包子了、、、它是usb基本傳輸單元。從面所講的,包的種類有很多,作用也不同,我們可以對包進行分析。
包的型別銅鼓長度為8為的包識別符號指定的,其中包括4位的包型別位域和與其對應的4位校驗位位域。
這裡就舉個例子:
包型別包名稱
pdi值
令牌包out
4『b0001
in4』b1001
sof4』b0101
setup
4』b1101
usb裝置接入usb主機之後,usb主機會給usb裝置分配乙個位址,但是在收到主機傳送過來的位址之前,預設的位址是0,包目標裝置的位址長度只有7位,這也是為啥乙個usb主機最多只能管理127個usb裝置的原因。
usb的裝置和主機之間,在通訊上建立好乙個個單獨的管道,並且每乙個都對應著乙個端點。端點上是有方向區分的:
資料長度的範圍是0-1024位元組。
幀索引的長度是11bit,該位域的初始值為0,由usb主機對其進行遞增,達到2047時則重新從0開始計數。
usb協議規定只有令牌包和資料報具有迴圈冗餘校驗碼,其它的包沒有。令牌包使用5為迴圈冗餘校驗碼,資料報使用16位迴圈冗餘檢驗碼。
sync
setup
addr
endp
crc5
eop00000001
0xb400
0x08
233.330ns
sync
data0
data
crc6
eop00000001
0xc3
8bytes
0xbb29
250.000ns
sync
ackeop
00000001
0x4b
266.660ns
USB學習1 ST微控制器USB簡介
stm32f407 usb otg fs 框圖 usb,英文全稱是universial serial bus 通用序列匯流排 的縮寫,其中文簡稱為通串線,是乙個外部匯流排標準,用於規範電腦與外部裝置的連線和通訊。是應用在pc領域的接 術。usb介面支出裝置的即插即用和熱拔插功能。usb是在1994年...
微控制器入門學習二 51微控制器學習一
本篇將對51微控制器一些概念進行一下記錄,本次針對 手把手教你學51微控制器 的前7章的硬體知識做乙個總結,軟體程式設計就不記錄了,可以看教程,裡面講解的很詳細。微控制器最小系統的三要素 電源 晶振 復位電路。最小系統是指用最少的原件組成微控制器可以工作的系統 下圖中晶振旁邊的20pf的電容的作用是...
微控制器學習筆記二(微控制器的儲存結構)
8051微控制器在物理結構上有4個儲存空間 1.片內程式儲存器 2.片外程式儲存器 3.片內資料儲存器 4.片外資料儲存器 邏輯上,8051微控制器有三個儲存空間 1.片內外統一編址的64k的程式儲存器位址空間 movc 2.256b的片內資料儲存器的位址空間 mov 3.64k片外資料儲存器的位址...