1. 程式人生 > >USB學習筆記,情深義重。親身實踐從0開始,STM32,MSP430的實現。

USB學習筆記,情深義重。親身實踐從0開始,STM32,MSP430的實現。

多年工作一直在使用MSP430微控制器,其實有些系列也支援全速通用序列匯流排(USB 2.0),比如MSP430F5504,MSP430F5510。近期在學習STM32,以後就在以STM32F103ZET6為基礎平臺展開對USB 2.0(USB3.0的區別就是高速下 3.0 可以達到5Gbps)的學習。也在此記錄學習筆記。 1、首先USB的傳輸速率大家深知速度之快,貼一張圖來總結一下USB的速率與應用場合以及優點。 這裡寫圖片描述 2、我們用它除了上述的一些應用,更多的應用就是用做單純資料的傳輸,與上位機的資料互動。其優點大可不必介紹,相比你也清楚。 3、USB的拓撲結構,USB匯流排是基於分層的星狀拓撲結構,總線上一共可以連線127個裝置。每個Hub(集線器)下可以最多串聯5個Device,所以出現我們平時用的USB分線器。USB不適合的是工業長距離傳輸,它所要求的最長輸出線為5米。 4、USB通訊協議 4.1 包:包是USB資料傳輸的基本單元,所有的資料都是打包進行傳輸的一包資料包括5部分,同步欄位、包識別符號欄位、資料欄位、CRC欄位、包尾欄位。 這裡寫圖片描述

4.1.1 SYNC:8位,作為包的同步欄位,用來產生同步作用。固定的數值為00000001 4.1.2 PID:用來表示資料封包的型別,包含了令牌、資料、握手、特殊四種資訊包型別。這裡寫圖片描述 4.1.3 資料欄位:用來攜帶主機與裝置之間的傳輸資訊。可以包含裝置地址、端點號、序列號、資料等等。裝置地址是7位0-127,端點4位最多可以尋32個端點。全速裝置可以有16個輸入端點,16個輸出端點。 4.1.4 CRC欄位:根據包的不同型別CRC欄位的位數也不定。重要的資料包就是16位CRC,其餘的則為5位。 4.1.5 包結束欄位:主機根據此EOP來判斷包的結束。

暫且到這裡,還將會繼續更新發送學習筆記。