找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3451|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

第一篇 USB基礎(chǔ)知識

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 weiguopai123 于 2020-7-31 15:43 編輯

一、基礎(chǔ)知識

1.USB
        USB:UniversalSerial Bus,中文譯為“通用串行總線”,USB設(shè)備最顯著的優(yōu)點(diǎn)是具有熱插拔功能、傳輸速率快。USB是主從結(jié)構(gòu)的系統(tǒng),具有主機(jī)和設(shè)備這兩個角色,即Host和Device。此外,還有兩類特殊的USB設(shè)備,分別是USB集線器設(shè)備(USB Hub)和USB OTG設(shè)備。
        USB協(xié)議版本有:USB1.0、USB1.、USB2.0、USB3.0。USB1.0和USB1.1只有低速模式(Low-SpeedMode)和全速模式(Full-Speed Mode),理論上最大傳輸速率分別為1.5Mbps和12Mbps。USB2.0引入了傳輸速度更快的高速模式(High-Speed Mode),理論上最大傳輸速率為480Mbps。而USB3.0在速度的提升上,實(shí)現(xiàn)了重大飛躍,最大傳輸速率理論值高達(dá)5Gbps。需要注意的是,這些都是理論值,實(shí)際開發(fā)過程中,不可能達(dá)到這些理論值。      
        在實(shí)際開發(fā)過程中,不同的傳輸類型有不同的傳輸速率,每一次的數(shù)據(jù)交互,都是一個相當(dāng)復(fù)雜的過程,有令牌包的解析、數(shù)據(jù)包的傳輸、握手包的發(fā)送等等,這些都是額外的消耗,因此,傳輸速度是不可能達(dá)到理論值。USB有四種傳輸類型,分別是控制傳輸、中斷傳輸、塊傳輸、等時傳輸。
        先學(xué)習(xí)Device開發(fā),再研究Host的實(shí)現(xiàn)。

2.USB的電氣特性
USB使用差分傳輸模式,有兩條數(shù)據(jù)線,分別是:
  
1USB數(shù)據(jù)正信號線,USB Data Positive,即USBDP線,簡寫為D+
  
2USB數(shù)據(jù)負(fù)信號線,USB Data Minus,即USBDM線,簡寫為D-

剩下的就是電源線(5V-Vbus)和地線(GND)。對于USB OTG設(shè)備,會多出一根ID線。

3.USB主機(jī)端硬件控制器類型
分別有:OHCI  UHCI  EHCI XHCI。USB協(xié)議版本:1.0/ 1.1/ 2.0/ 3.0
與協(xié)議規(guī)定標(biāo)準(zhǔn)接口的對應(yīng)OHCI、UHCI都是USB1.1的接口標(biāo)準(zhǔn);而EHCI是對應(yīng)USB2.0的接口標(biāo)準(zhǔn);最新的xHCI是USB3.0的接口標(biāo)準(zhǔn)。

3.1 OHCI
        OHCI:Open Host Controller Interface,是USB1.1的標(biāo)準(zhǔn),不僅僅是針對USB,還支持其他的接口,比如支持Apple的火線(Firewire,IEEE 1394)接口。與UHCI相比,OHCI的硬件復(fù)雜,硬件做的事情更多,所以實(shí)現(xiàn)對應(yīng)的軟件驅(qū)動的任務(wù),就相對較簡單。主要用于非x86的USB,如擴(kuò)展卡、嵌入式開發(fā)板的USB主控。

3.2 UHCI
        UHCI:Universal Host ControllerInterface,是Intel主導(dǎo)的對USB1.0、1.1的接口標(biāo)準(zhǔn),與OHCI不兼容。UHCI的軟件驅(qū)動的任務(wù)重,需要做得比較復(fù)雜,但可以使用較便宜、較簡單的硬件的USB控制器。Intel和VIA使用UHCI,而其余的硬件提供商使用OHCI。

3.3 EHCI
        EHCI:Enhanced Host Controller Interface,是Intel主導(dǎo)的USB2.0的接口標(biāo)準(zhǔn)。EHCI僅提供USB2.0的高速功能,而依靠UHCI或OHCI來提供對全速(full-speed)或低速(low-speed)設(shè)備的支持。

3.4 xHCI
        xHCI:eXtensible Host ControllerInterface,是最新USB3.0的接口標(biāo)準(zhǔn),它在速度、節(jié)能、虛擬化等方面都比前面3中有了較大的提高。xHCI支持所有種類速度的USB設(shè)備(USB 3.0的 SuperSpeed; USB 2.0 Low-、Full-、andHigh-speed; USB 1.1 Low- and Full-speed)。xHCI的目的是為了替換前面3種類型(UHCI/OHCI/EHCI)。

4.識別設(shè)備的速度模式
        對于設(shè)備(Device)而言,按照速度來劃分,工作在低速模式下的設(shè)備稱之為低速設(shè)備;工作在全速模式下的設(shè)備稱之為全速設(shè)備;同理,工作在高速模式下的設(shè)備稱之為高速設(shè)備。
        對于主機(jī)(Host)而言,只有全速主機(jī)和高速主機(jī)兩種。

4.1識別低速和全速設(shè)備
         主機(jī)的D+D-都接有15K下拉電阻;全速USB設(shè)備的數(shù)據(jù)線D+接有1.5K的上拉電阻,一旦接入主機(jī),主機(jī)的D+被拉高;低速USB設(shè)備的數(shù)據(jù)線D-接有1.5K的上拉電阻,一旦接入主機(jī),主機(jī)的D-會被拉高。因此,主機(jī)就可以根據(jù)檢測到自己的D+為高還是D-為高,從而判斷接入的設(shè)備是一個全速還是低速設(shè)備。硬件結(jié)構(gòu)圖如下:


圖:有USB低速設(shè)備接入



圖:有USB全速設(shè)備接入

4.2識別高速設(shè)備
         剛開始時,高速設(shè)備以全速模式連接到主機(jī),D+有上拉電阻。主機(jī)檢測到全速設(shè)備連接上之后,對設(shè)備進(jìn)行復(fù)位,USB設(shè)備收到復(fù)位信號,主動發(fā)起高速模式的握手協(xié)議進(jìn)行速度識別。接下來,就取決于主機(jī)端了,如果主機(jī)的USB控制器支持高速模式傳輸,則主機(jī)會與該高速設(shè)備交互完成高速模式握手協(xié)議,之后,兩者都工作在高速模式下;如果主機(jī)不支持高速模式傳輸(如果主機(jī)上沒有EHCI類型的控制器,像比較老舊的電腦,并且是XP系統(tǒng)的),那么握手協(xié)議就會失敗,設(shè)備端也不會切換到高速模式,之后兩者都工作在全速模式下。
         如果是一個全速設(shè)備接到高速主機(jī),設(shè)備端沒法發(fā)起高速握手協(xié)議,所以,最終設(shè)備和主機(jī)都會工作在全速模式下。主機(jī)具有多種控制器類型,能工作在全速/高速模式下。
        全速和高速控制器,都是DP上拉,低速才是DM上拉(配置寄存器的時候,需要注意的地方)。





評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:812886 發(fā)表于 2020-8-11 09:46 | 只看該作者
謝謝樓主的分享,原來是調(diào)整D+,D-電位來判斷傳送速度。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表