详述USB OTG发展及协议标准
???? USB On-The-Go 擴(kuò)大了USB 的應(yīng)用領(lǐng)域,將USB 從傳統(tǒng)的PC 與外設(shè)通訊的模式,擴(kuò)展到移動電子和嵌入式領(lǐng)域中,拋開主機(jī)PC,實(shí)現(xiàn)通常的外設(shè)與外設(shè)之間點(diǎn)對點(diǎn)(Point to Point)的數(shù)據(jù)傳輸模式。
1 什么是USB On-The-Go?
???? 我們先來回顧一下通用串行總線(Universal Serial Bus,簡稱為USB)發(fā)展的歷史:
?i)1994 年11 月,以Intel 為首的7 家公司(Intel、Compaq、Microsoft、IBM、DEC、Northern Telecom 和NEC)推出了USB 協(xié)議的第一個草案,USB 作為一種新型的串行總線,揭開了新一輪的USB 總線的革命,但這時,USB 并不為計算機(jī)技術(shù)人員所熟知;
?
ii)1996 年2 月,USB 協(xié)議規(guī)范1.0 版本發(fā)布,版權(quán)屬于Compaq、Intel、Microsoft和NEC 等4 家公司,并同意任何人可免費(fèi)使用。自此,USB 開始逐漸被廣大技術(shù)人員和用戶所認(rèn)可,并逐漸開始成為PC 主板上的標(biāo)準(zhǔn)接口;
?
iii)1998 年10 月,USB 1.1 版本發(fā)布,集中修訂了USB 1.0 中的問題,并進(jìn)一步突出了USB 的優(yōu)勢。到目前,USB 1.1 仍是開發(fā)USB 低速(1.5Mbps,Low-Speed)和全速(12Mbps,Full-Speed)設(shè)備的標(biāo)準(zhǔn)版本。USB 的低功耗、速度高、成本低、支持即插即用和維護(hù)方便等優(yōu)勢更加穩(wěn)定,USB 開始成為鼠標(biāo)、鍵盤、游戲桿、打印機(jī)、光驅(qū)、硬盤、顯示器和數(shù)碼相機(jī)等幾乎各種PC 外設(shè)與PC 連接的標(biāo)準(zhǔn)協(xié)議之一。各種USB 的外設(shè)產(chǎn)品如雨后春筍般出現(xiàn),如USB Flash 讀卡器、USB 移動硬盤、USB 數(shù)碼相機(jī)、USB 鍵盤等,幾乎所有的PC 外設(shè)都有相應(yīng)的USB 接口的產(chǎn)品。一時間,USB 成為了最為流行的PC 接口標(biāo)準(zhǔn),嵌入式軟硬件工程師也將USB 應(yīng)用到自己的設(shè)計之中;
iv)2000 年4 月,Compaq、HP、Intel、Lucent、Microsoft、NEC 和Philips 等7 家公司聯(lián)合發(fā)布USB 2.0 協(xié)議規(guī)范版本。新版本最大的變化就是將USB 的總線速度一下子提高到了480Mbps,即開始支持高速設(shè)備(High-Speed)。由此,USB 翻開了新的一頁,徹底打破了USB 應(yīng)用在視頻等高速傳輸領(lǐng)域中的速度瓶頸,大大擴(kuò)展了USB 應(yīng)用領(lǐng)域。從低速的鼠標(biāo)、鍵盤,到全速的硬盤,再到高速的視頻傳輸,USB 幾乎無所不能,可以應(yīng)用到任何一種PC 外設(shè)中。USB 取代串口、并口等傳統(tǒng)PC 接口只是個時間問題了。
?
????從問世,到協(xié)議規(guī)范2.0 版本,USB 不斷在自我完善,走向成熟。從普通計算機(jī)用戶,計算機(jī)工程師,到硬件芯片生產(chǎn)廠商,都已經(jīng)完全認(rèn)可了USB。廠商對于USB 的硬件和軟件支持的也越來越完備,現(xiàn)在開發(fā)一個USB 外設(shè)產(chǎn)品,所需要投入的成本和時間大大降低了,幾年前是沒有辦法做到這一點(diǎn)的。但是,隨著USB 應(yīng)用領(lǐng)域的逐漸擴(kuò)大,人們對于USB的期望也越來越高,希望USB 能應(yīng)用在各種計算機(jī)領(lǐng)域中,尤其是在移動通訊領(lǐng)域中,希望能通過PDA 等移動設(shè)備來直接和USB 外設(shè)通信,使得USB 能應(yīng)用在沒有PC 的領(lǐng)域中。非PC 應(yīng)用領(lǐng)域? 這正是USB 一個致命的弱點(diǎn)。USB 的拓?fù)浣Y(jié)構(gòu)中居于核心地位的是Host,任何一次USB 的數(shù)據(jù)傳輸都必須由Host 來發(fā)起和控制,所有的USB 外設(shè)都只能和Host 建立連接,任何兩個外設(shè)之間或是兩個Host 之間無法直接通信。而目前,大量的扮演Host 角色的是個
人電腦PC。因此,“如何將USB 應(yīng)用到嵌入式領(lǐng)域?如何實(shí)現(xiàn)USB 點(diǎn)對點(diǎn)的通訊?”等問題,開始進(jìn)入了USB 開發(fā)者的討論議程。正是在這種新的需求之下,USB On-The-Go 應(yīng)運(yùn)而生。2001 年12 月,USB On-The-Go 版本協(xié)議1.0 正式發(fā)布(簡寫為OTG 1.0)。
???? USB On-The-Go,顧名思義,是USB 應(yīng)用在便攜式移動設(shè)備領(lǐng)域中,因此,我們姑且將其翻譯為“便攜式USB”(或者“移動USB”),簡記成USB OTG。OTG 1.0 作為USB 2.0的補(bǔ)充協(xié)議,基本上符合USB 2.0 規(guī)范。但是,有所不同的是符合USB OTG 的設(shè)備完全拋開了PC,既可以作為Host,也可以作為外設(shè),而與另一個OTG 設(shè)備直接實(shí)現(xiàn)點(diǎn)對點(diǎn)(Pear to Pear)通訊。因此,這類OTG 設(shè)備也被成為是雙角色設(shè)備(Dual-Role Device,簡稱為DRD),并能夠根據(jù)接入設(shè)備的特性和數(shù)據(jù)傳輸過程中的情況,自動切換為Host 或是外設(shè)。例如,一個OTG 數(shù)碼相機(jī)可以直接與OTG 打印機(jī)相連,打印圖片;兩個OTG MP3 播放器可以之間連在一起,實(shí)現(xiàn)音樂文件的共享。。。需要注意的是,USB OTG 設(shè)備保留了作為普通USB 2.0 外設(shè)的功能,可以作為外設(shè)直接連接到PC Host 上。
?
2 USB OTG 設(shè)備的功能
???? USB OTG 定義了兩種設(shè)備類型:雙角色設(shè)備DRD 和單外部設(shè)備(Peripheral-OnlyDevice,簡稱為POD)。DRD 具備Host 和外設(shè)的兩種功能,POD 基本與外設(shè)功能近似,因此,我們這里著重討論DRD。
???? 要成為一個USB Host,必須具有存儲外設(shè)驅(qū)動程序、提供足夠的USB 端口電流和A型Host 插座的能力。而其所要實(shí)現(xiàn)的基本功能包括3 部分:
i)管理和控制總線,包括提供USB 端口電源管理;
ii)檢測外設(shè)的接入和斷開,枚舉(Enumerate)設(shè)備;
iii)初始化總線上所有的數(shù)據(jù)包傳輸?shù)然顒印?br />???? 同樣,USB 外設(shè)也具有特定的功能:
i)響應(yīng)USB Host 的命令,執(zhí)行又Host 發(fā)起的發(fā)送設(shè)備描述符、傳送數(shù)據(jù)等活動;
ii)?遠(yuǎn)程喚醒處于掛起(Suspend)狀態(tài)的主機(jī);
iii)?提供自供電(Self-Powered)電源(如果所需電流大于總線能提供的限額,選此項(xiàng))。
????? DRD 具有USB Host 和外設(shè)的雙重功能,但是,正因?yàn)榫哂辛穗p重的角色任務(wù),DRD又必須有切換角色等新的任務(wù)和功能,因此,我們可以用(1)式來簡單的定義OTG DRD的功能:
DRD = Host + Peripheral + OtherLL(1)
????? 由(1)式可知,完整的USB OTG DRD 還必須具有除了通常的Host 和外設(shè)之外的一些功能,當(dāng)然DRD 的Host 功能是有限的,不要求完全實(shí)現(xiàn)PC Host 的功能,不過,這正符合了嵌入式領(lǐng)域中對USB 靈活性和便攜性的要求:
i)作為外設(shè),支持12Mbps 的全速模式(或者是480Mbps 的高速模式);
ii)作為Host,也支持全速模式(或者是低速和高速模式);
iii)產(chǎn)生目標(biāo)外設(shè)列表(Targeted Peripheral List,簡寫為TPL);
iv)會話請求協(xié)議(Session Request Protocol,簡寫為SRP);
v)主機(jī)交流協(xié)議(Host Negotiation Protocol,簡寫為HNP);
vi)有且僅有1 個Mini-AB 插座;
vii)至少為總線提供8mA 的電流;
viii)能及時將總線活動狀態(tài)通知給設(shè)備用戶。
?
3 USB OTG 體系的軟件描述
3.1 OTG 配置描述符??
????? 在OTG 系統(tǒng)處于枚舉過程時,A 設(shè)備就會發(fā)送GetDescriptor 命令給B 設(shè)備(開始處于外設(shè)狀態(tài)的設(shè)備),要求B 設(shè)備發(fā)送OTG 配置描述符。配置描述符包括3 個字節(jié),分別是bLength、bDescriptorType 和bmAttributes。
?
3.2 會話請求協(xié)議(Session Request Protocol,簡寫為SRP)
????? SRP 用于B 設(shè)備向A 設(shè)備請求建立會話和使用總線。
????? 一般,OTG 系統(tǒng)中的A 設(shè)備采用的是電池供電,因?yàn)檫@些設(shè)備是便攜式和可移動的,這就決定了,OTG 系統(tǒng)電源管理是非常重要的一個專題。因此,為了節(jié)省OTG 系統(tǒng)的電源開支,OTG 2.0 規(guī)定A 設(shè)備在沒有總線活動的時候,可以關(guān)掉VBus 上的電源。這樣,當(dāng)一個B 設(shè)備連接到A 設(shè)備上之后,就要初始化SRP,并發(fā)送給A 設(shè)備,請求A 設(shè)備在VBus上提供電流支持,進(jìn)而進(jìn)行通信。OTG 中,DRD 可以作為A 設(shè)備,也可以作為B 設(shè)備,因此,DRD 必須支持初始化SRP 和響應(yīng)SRP;POD 只能作B 設(shè)備,所以,只能初始化SRP。SRP 中,B 設(shè)備有兩種方式可以向A 設(shè)備發(fā)送請求,要求建立SRP:一種是數(shù)據(jù)線脈沖(Data-Line Pulsing),一種是VBus 脈沖(VBus Pulsing)。具體的脈沖方法在OTG 2.0 中有詳細(xì)的說明。任何一個A 設(shè)備只要求能響應(yīng)一種SRP 方式,而B 設(shè)備必須能初始化兩種SRP方式。這樣,當(dāng)B 設(shè)備先初始化一種SRP,而A 設(shè)備無法響應(yīng)是,則B 設(shè)備就要用另一種SRP 方式。
?
3.3 主機(jī)交流協(xié)議(Host Negotiation Protocol,簡寫為HNP)
????? HNP 用于初始B 設(shè)備與初始A 設(shè)備之間切換Host 角色。
????? OTG DRD 具有Mini AB 型插座,因此,DRD 既可作為Host,也可以作為外設(shè)。而在某一個OTG 連接中,這個DRD 到底是作Host(即A 設(shè)備),還是作外設(shè)(即B 設(shè)備),則要根據(jù)接入的另一個OTG 設(shè)備來定。如果,接入的是OTG POD,那么,毫無疑問,這個DRD 肯定是作A 設(shè)備。但,如果接入的是另一個DRD,那么這兩個DRD 之間,就可以HNP來隨時切換Host 角色。
????? 一次完整的HNP 流程是這樣的:B 設(shè)備希望控制總線,成為Host;在A 設(shè)備發(fā)送了SetFeature 命令后,B 設(shè)備就可以來請求控制總線;A 設(shè)備掛起總線,通知B 設(shè)備可以控制總線;B 設(shè)備發(fā)送信號,斷開與A 設(shè)備的連接;A 設(shè)備啟動D+信號線上的上拉電阻,將D+置高;這樣,A 設(shè)備就開始作為外設(shè),放棄了總線的控制權(quán),B 設(shè)備成為了Host;在B設(shè)備完成了對總線的控制,就需要上拉其上的D+電阻,放棄總線控制權(quán)。當(dāng)然,這一系列的HNP 活動,不僅僅是通過信號線上的電平變化來實(shí)現(xiàn)的。電平變化只是一種標(biāo)志,真正內(nèi)部對總線的控制權(quán)的變化,則要通過軟件來實(shí)現(xiàn)。
?
3.4 OTG 的軟件結(jié)構(gòu)
?????OTG 的軟件結(jié)構(gòu)包括3 部分:
i)OTG 系統(tǒng)硬件驅(qū)動:包括SRP 和HNP;
ii)OTG 系統(tǒng)外設(shè)軟件:實(shí)現(xiàn)標(biāo)準(zhǔn)的USB 類,來實(shí)現(xiàn)特定的USB 外設(shè)功能;
iii)OTG 系統(tǒng)Host 軟件:包括Host 驅(qū)動程序、操作系統(tǒng)支持軟件、支持外設(shè)的類庫。
總結(jié)
以上是生活随笔為你收集整理的详述USB OTG发展及协议标准的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 詹姆斯拿下三双 本赛季第六次 个人生涯第
- 下一篇: 人工智能----语音助手