USB接口介紹


    USB設備系統分為兩個部分,USB Host端和USB Device端,以USB接口的U盤為例子,U盤自身是一個USB Device,PC機的USB接口以及相關的控制電路為USB Host部分。

    每個部分由硬件部分和軟件部分組成,硬件部分由USB主機控制器和USB接口芯片來組成,固件(軟件)由兩側的驅動程序組成。

   

    為了規范不同廠商的USB設備,IEEE指定了相應的規范,只要不同端的設備都符合此規范,就能正常的通訊。

主機控制器協議

     主機控制器協議有 OHCI、EHCI、UHCI、xHCI。

     對於協議規范里面的特定功能,由硬件來實現還是由軟件來實現,這取決於不同的應用場合和環境,因此,就出現了針對USB1.1協議的OHCI和UHCI主機控制器協議。

     OHCI把一些功能實現放在硬件上面,因此,軟件方面就比較容易開發,常用於嵌入式系統

     UHCI則把一些功能的實現更多的放在軟件上面,因此,硬件上面就可以做的較為簡單,適用於大規模生產,常用於PC中

     為了解決USB1.1傳輸速度低下的問題,USB規范升級到USB2.0,對應的主機控制器規范升級為 EHCI。

     進一步升級USB規范到USB3.0,對於的主機控制器規范為xHCI。下圖是不同USB主機控制器的區別。

clipboard

 

USB硬件接口

    USB的插頭和插座,根據不同使用環境,分為三種類型,Type最大,Mini適中,Micro最小。每個類型中又分為A類和B類兩個規格。

     clipboard[4]

     clipboard[6]

USB3.0的接口,USB3.0相比於USB2.0增加了4根線,不過在設計上,保持同USB2.0的兼容。

     image

下圖是不同規范的協議對比:

clipboard[8]

 

編碼方式

    USB中用NRZI(非歸零反轉碼),電平翻轉代表邏輯0,電平不變代表邏輯1.USB的每個數據包都以同步域開頭(0000_0001),通過編碼成為方波。為了防止發送同樣的數據造成的傳輸誤差,USB規定了強制插0的協議,即如果要傳輸的數據中有7個連續的1,發送前會在第六個1的后面強制插入一個0,強制反轉發送信號,使得兩側的接受頻率同步。

 

USB的分類

    USB只是一種接口形式,基於此接口,可以有多重多樣的設備,為了便於統一管理,對於不同的設備,USB規范規定了不同的設備類型,詳細的USB的Class分類參加此鏈接:

    http://www.xat.nl/en/riscos/sw/usb/class.htm

 

USB的枚舉

    USB的枚舉,USB Emulation,就是USB初始化的意思,簡單的說,就是USB的Host和Device之間的對話。

 

USB的數據傳輸

    一次USB的傳輸,由不同事務(Transaction)組成,一個事務是由不同的包(Packet)組成,一個包是由不同的域組成。見下圖:

    clipboard[12]

    數據傳輸分為兩類:周期性的和非周期性的。

            周期性的有中斷傳輸和等時傳輸。

            非周期性的有控制傳輸和批量傳輸

  參考鏈接:

USB設備簡述:

http://blog.csdn.net/ljzcom/article/details/8574411

USB設備驅動開發:

http://blog.csdn.net/ljzcom/article/details/8574387

usb設備的probe過程:

http://blog.csdn.net/ljzcom/article/details/7419867

USB設備驅動開發之數據結構:

http://blog.csdn.net/ljzcom/article/details/7693209

http://blog.csdn.net/ljzcom/article/details/7693212

http://blog.csdn.net/ljzcom/article/details/7693219 

Technorati 標簽: USB


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM