天天看點

STM32F103之USB(一)

初識USB    

   由于項目需求,需要USB這塊,花了幾天時間了解了下USB方面的知識,的确挺難的!USB是個挺難啃的家夥,當時看了一遍看的一頭霧水,不過幾天下來還是有所收獲的。順便記錄下自己學習的過程,一遍以後檢視。

STM32F103之USB(一)

一、USB介紹

    USB(Univetsal Serial Bus)的縮寫,即通用串行總線。是現在通訊裝置中不可或缺的一部分,可以這麼說,電子工程師不懂USB那就太OUT了。

二、USB的發展史

   Ø1994年     Philips公司  Access.Bus規範(USB的前身)    Ø1996年     Compaq、Intel、Microsoft、NEC   USB1.0規範    Ø1997年     USB1.1規範    Ø2000年     USB2.0規範    Ø2002年     USB OTG規範  三、USB的特點     1)優點:       Ø可以熱插拔:告别“并口和序列槽先關機,将電纜接上再開機”的動作。     Ø系統總線供電:可提供5V/500mA電源。     Ø支援裝置衆多:例如滑鼠,鍵盤,列印機,顯示器等。     Ø擴充容易,通過Hub可以連接配接多個裝置隻PC機     Ø高速資料傳輸:USB1.1是12Mb/s,USB2.0高達480Mb/S(ps210Mb/s/并口8Mb/s、R-                    23220Kb/s)     Ø友善的裝置互連:USBOTG支援點對點通信,例如數位相機和列印機直接互連,無                      需PC斷開連接配接。    2)缺點:        Ø供電能力差:高功率裝置必須外接電源,例如:列印機      Ø傳輸距離短:USB總線的連線長度最大為5m,即便是用HUB來擴充最遠也不超過                     30m,距離越遠資料傳輸誤差越大!       不過對于這次做空中滑鼠來說,還是挺好的。這些影響基本沒有。

STM32F103之USB(一)

四、USB的工作原理    1)USB識别過程      以前的确很好奇,往電腦插個滑鼠,它就能識别出滑鼠來,插個鍵盤就能識别很出是鍵盤,插個U盤就能識别出U盤,太神奇了,心中充滿了好奇,一直想找個機會了解下,這回,終于懂了,USB是如何識别的,呵呵!    在USB的原理圖設計時,必須給D+和D-端接上連個電阻:     

STM32F103之USB(一)

     D+和D-是兩個差分信号線。 D+ 減 D-進行區分,可以看到區分度還是挺大的。      

STM32F103之USB(一)

    在裝置連結主機時,會檢測裝置電平,如果檢測到在D+上有上拉電阻說明是全速裝置,如果檢測到在D-上有上拉電阻說明是低速裝置。     識别過程是一個枚舉過程。     首先裝置上電---USB裝置會自動複位(将自己的位址初始化為0(包括裝置位址和端口位址))---主機檢測到複位了(檢測到位址為0 的裝置)---主機要求USB提供裝置址,此時USB裝置會将自己的一些描述符發送給主機(電腦),在這些描述符中包括,生産廠商、名字、幹什麼的、屬于什麼類别(比如U盤、滑鼠……)……,接着主機會查找自己的目前沒有占用的位址配置設定給裝置,包括端口位址、裝置位址-----想剛配置設定的位址發送索取資訊--包括描述符(比如是U盤的話,索取U盤的大小、什麼牌子等等),然後就可進行其他通訊了。想象還是挺神奇的,USB枚舉居然做了這麼多的事情。     在枚舉完成後,主機會給裝置安裝驅動程式,這也是我們經常可以看到的,剛買的滑鼠、鍵盤或U盤插入電腦後會提示正在安裝驅動,當驅動程式安裝完成後就可以記性相關的操作了。     2)描述符類型      在USB枚舉過程中,主機要求裝置提供描述符,描述符主要有一下幾個:      标準的(通用的)描述符主要有:      裝置描述符:屬于什麼裝置      配置描述符:      接口描述符:      端點描述符:有多少個端口      字元串描述符:告訴USB英文的一個表述:比如U盤的名字,KingSton(金士頓)      以上描述符的詳細資訊會在後面講解。      

    技術在于分享、交流……

    Email: [email protected]

    QQ:936563422

繼續閱讀