USB On-The-Go 工作原理分析和應(yīng)用研究
USB 1.1和2.0都是必須依賴于PC的,為了在一定程度擺脫對(duì)PC的完全依賴,有一定程度的主機(jī)功能,2001年12月推出了OTG 1.0,經(jīng)過(guò)6次修改,于2003年6月推出了USB OTG 1.0 a,正式成為一個(gè)達(dá)到市場(chǎng)實(shí)用的規(guī)范[3]。
本文中分析討論了USB 2.0補(bǔ)充規(guī)范OTG的工作原理,并且針對(duì)目前數(shù)碼相機(jī)伴侶存在的問(wèn)題,作者提出了自己的解決方案。
1USB OTG的工作原理
OTG補(bǔ)充規(guī)范對(duì)USB 2.0的最重要的擴(kuò)展是其更具節(jié)能性的電源管理和允許設(shè)備以主機(jī)和外設(shè)兩種形式工作。OTG有兩種設(shè)備類型:兩用OTG設(shè)備(Dualrole device)和外設(shè)式OTG設(shè)備(Peripheralonly OTG device) 。兩用OTG設(shè)備完全符合USB 2.0規(guī)范,同時(shí),他還要提供有限的主機(jī)能力和一個(gè)MiniAB插座、支持主機(jī)流通協(xié)議(Host Negotiatio n Protocol, HNP),并和外設(shè)式OTG設(shè)備一樣支持事務(wù)請(qǐng)求協(xié)議(Session Request Protocol, SRP)。當(dāng)作為主機(jī)工作時(shí),兩用OTG設(shè)備可在總線上提供8 mA的電流,而以往標(biāo)準(zhǔn)主機(jī)則需要 提供100~500 mA的電流。
2個(gè)兩用OTG設(shè)備連接在一起時(shí)可交替以主機(jī)和從機(jī)的方式工作,這個(gè)特點(diǎn)兼容了現(xiàn)有USB 規(guī)范主機(jī)/外設(shè)的結(jié)構(gòu)模型。OTG主機(jī)負(fù)責(zé)初始化數(shù)據(jù)通信的任務(wù),比如:總線復(fù)位、獲取USB 各種描述符和配置設(shè)備。這些配置完成后,2個(gè)OTG設(shè)備便可以分別以主機(jī)和從機(jī)方式傳輸信息,2個(gè)設(shè)備主從角色交換的過(guò)程由主機(jī)傳輸協(xié)議(HNP)定義。
下面從5個(gè)方面說(shuō)明OTG的工作原理。
1.1主機(jī)(Adevice)和從機(jī)(Bdevice)的初始功能
設(shè)備的初始功能是通過(guò)定義連接器來(lái)實(shí)現(xiàn)的。OTG定義了一個(gè)叫做MiniAB的袖珍插孔,他能直接接入MiniA或者M(jìn)iniB插口,MiniAB有一個(gè)ID引腳 上拉至電源端,MiniA插頭有一個(gè)與地連接好的ID(R10 Ω),Mini B插頭有一個(gè)與地連接的開路ID引腳(R>100 kΩ)。當(dāng)2個(gè)OTG設(shè)備連接到一起的時(shí)候,MiniA插頭邊的ID引腳會(huì)注入一個(gè)“0”狀態(tài),MiniB插頭邊的ID引腳為 “1”,ID為0的OTG設(shè)備默認(rèn)為主機(jī)(Adevice),ID為1的OTG設(shè)備默認(rèn)為從機(jī)(B device)。圖1對(duì)上述內(nèi)容進(jìn)行了圖解[4]。
OTG補(bǔ)充規(guī)范對(duì)USB 2.0的最重要的擴(kuò)展是其更具節(jié)能性的電源管理和允許設(shè)備以主機(jī)和外設(shè)兩種形式工作。OTG有兩種設(shè)備類型:兩用OTG設(shè)備(Dualrole device)和外設(shè)式OTG設(shè)備(Peripheralonly OTG device) 。兩用OTG設(shè)備完全符合USB 2.0規(guī)范,同時(shí),他還要提供有限的主機(jī)能力和一個(gè)MiniAB插座、支持主機(jī)流通協(xié)議(Host Negotiatio n Protocol, HNP),并和外設(shè)式OTG設(shè)備一樣支持事務(wù)請(qǐng)求協(xié)議(Session Request Protocol, SRP)。當(dāng)作為主機(jī)工作時(shí),兩用OTG設(shè)備可在總線上提供8 mA的電流,而以往標(biāo)準(zhǔn)主機(jī)則需要 提供100~500 mA的電流。
2個(gè)兩用OTG設(shè)備連接在一起時(shí)可交替以主機(jī)和從機(jī)的方式工作,這個(gè)特點(diǎn)兼容了現(xiàn)有USB 規(guī)范主機(jī)/外設(shè)的結(jié)構(gòu)模型。OTG主機(jī)負(fù)責(zé)初始化數(shù)據(jù)通信的任務(wù),比如:總線復(fù)位、獲取USB 各種描述符和配置設(shè)備。這些配置完成后,2個(gè)OTG設(shè)備便可以分別以主機(jī)和從機(jī)方式傳輸信息,2個(gè)設(shè)備主從角色交換的過(guò)程由主機(jī)傳輸協(xié)議(HNP)定義。
下面從5個(gè)方面說(shuō)明OTG的工作原理。
1.1主機(jī)(Adevice)和從機(jī)(Bdevice)的初始功能
設(shè)備的初始功能是通過(guò)定義連接器來(lái)實(shí)現(xiàn)的。OTG定義了一個(gè)叫做MiniAB的袖珍插孔,他能直接接入MiniA或者M(jìn)iniB插口,MiniAB有一個(gè)ID引腳 上拉至電源端,MiniA插頭有一個(gè)與地連接好的ID(R10 Ω),Mini B插頭有一個(gè)與地連接的開路ID引腳(R>100 kΩ)。當(dāng)2個(gè)OTG設(shè)備連接到一起的時(shí)候,MiniA插頭邊的ID引腳會(huì)注入一個(gè)“0”狀態(tài),MiniB插頭邊的ID引腳為 “1”,ID為0的OTG設(shè)備默認(rèn)為主機(jī)(Adevice),ID為1的OTG設(shè)備默認(rèn)為從機(jī)(B device)。圖1對(duì)上述內(nèi)容進(jìn)行了圖解[4]。
1.2對(duì)話請(qǐng)求協(xié)議SRP(Session Request Protocol)
這個(gè)協(xié)議允許Adevice(可以是電池供電)在總線未使用時(shí)通過(guò)切斷Vbus來(lái)節(jié)省電源消耗,也為Bdevice啟動(dòng)總線活動(dòng)提供了一種方法。任何一個(gè)Adevice, 包括PC或便攜式電腦,都可以響應(yīng)SRP;任何一個(gè)Bdevice,包括一個(gè)標(biāo)準(zhǔn)USB外設(shè), 都可以啟動(dòng)SRP;要求一個(gè)雙重功能設(shè)備既能啟動(dòng)SRP,又能響應(yīng)SRP。
1.3主機(jī)流通協(xié)議HNP(Host Negotiation Protocol)
HNP是一種用來(lái)實(shí)現(xiàn)Adevice和Bdevice主機(jī)/從機(jī)轉(zhuǎn)換的協(xié)議(實(shí)際上是電纜的反轉(zhuǎn))。主/從機(jī)功能交換的結(jié)果表現(xiàn)在下列過(guò)程中:
(1)利用上拉電阻來(lái)發(fā)送信號(hào)給從機(jī)。
(2)Adevice可在Bdevice上設(shè)置“HNP Enable”特性。
(3)Bdevice斷開上拉。
(4)ADevice與上拉電阻相連,表明Adevice從屬于從機(jī)。
(5)Adevice給Vbus供電。
(6)Bdevice檢測(cè)Adevice的上拉。
(7)復(fù)位/列舉/使用Adevice。
1.4驅(qū)動(dòng)程序[5]
與PC主機(jī)不同,便攜式設(shè)備沒有便捷的方式和足夠的空間裝載新的驅(qū)動(dòng)程序。因此,OTG 規(guī)范要求每個(gè)兩用OTG設(shè)備有一個(gè)支持的外設(shè)式OTG目標(biāo)設(shè)備的列表,列表中包括設(shè)備的類型和制造商等信息。
與PC機(jī)不同,OTG兩用設(shè)備的驅(qū)動(dòng)程序棧由USB主機(jī)棧和USB設(shè)備棧構(gòu)成以滿足兩種工作方式的需要。OTG驅(qū)動(dòng)程序通過(guò)連接器的不同或者是否有NHP交換設(shè)備的工作方式來(lái)決定使用USB主機(jī)棧還是USB設(shè)備棧。
當(dāng)OTG兩用設(shè)備以主機(jī)方式工作時(shí),USB主機(jī)棧工作。其中的主機(jī)控制器驅(qū)動(dòng)程序負(fù)責(zé)USB 主機(jī)棧與硬件端點(diǎn)的數(shù)據(jù)交換,USB驅(qū)動(dòng)程序枚舉并保存設(shè)備的信息,目標(biāo)外設(shè)主機(jī)類驅(qū)動(dòng)程序支持目標(biāo)設(shè)備列表里的設(shè)備。主機(jī)類驅(qū)動(dòng)程序由芯片制造商提供,同時(shí),OTG提供通用的主機(jī)類驅(qū)動(dòng)程序(可以修改以用于非通用設(shè)備)。
當(dāng)OTG兩用設(shè)備以從機(jī)方式工作時(shí),USB設(shè)備棧工作。其中的設(shè)備控制器驅(qū)動(dòng)程序負(fù)責(zé)USB 設(shè)備棧與硬件端點(diǎn)的數(shù)據(jù)交換,USB協(xié)議層負(fù)責(zé)處理USB協(xié)議規(guī)范,設(shè)備類驅(qū)動(dòng)程序的功能取決于該兩用設(shè)備的功能(如數(shù)碼照相機(jī)、存儲(chǔ)設(shè)備、打印機(jī)等)。
OTG驅(qū)動(dòng)程序負(fù)責(zé)處理兩用OTG設(shè)備的工作方式轉(zhuǎn)換,同時(shí),他還可以返回其結(jié)果(如設(shè)備是否支持HNP)并處理總線錯(cuò)誤。應(yīng)用層程序通過(guò)OTG驅(qū)動(dòng)程序開始或者結(jié)束一個(gè)傳輸事務(wù), 通過(guò)USB主機(jī)?;蛟O(shè)備棧與硬件層交換數(shù)據(jù)。 上拉電阻相關(guān)文章:上拉電阻原理
這個(gè)協(xié)議允許Adevice(可以是電池供電)在總線未使用時(shí)通過(guò)切斷Vbus來(lái)節(jié)省電源消耗,也為Bdevice啟動(dòng)總線活動(dòng)提供了一種方法。任何一個(gè)Adevice, 包括PC或便攜式電腦,都可以響應(yīng)SRP;任何一個(gè)Bdevice,包括一個(gè)標(biāo)準(zhǔn)USB外設(shè), 都可以啟動(dòng)SRP;要求一個(gè)雙重功能設(shè)備既能啟動(dòng)SRP,又能響應(yīng)SRP。
1.3主機(jī)流通協(xié)議HNP(Host Negotiation Protocol)
HNP是一種用來(lái)實(shí)現(xiàn)Adevice和Bdevice主機(jī)/從機(jī)轉(zhuǎn)換的協(xié)議(實(shí)際上是電纜的反轉(zhuǎn))。主/從機(jī)功能交換的結(jié)果表現(xiàn)在下列過(guò)程中:
(1)利用上拉電阻來(lái)發(fā)送信號(hào)給從機(jī)。
(2)Adevice可在Bdevice上設(shè)置“HNP Enable”特性。
(3)Bdevice斷開上拉。
(4)ADevice與上拉電阻相連,表明Adevice從屬于從機(jī)。
(5)Adevice給Vbus供電。
(6)Bdevice檢測(cè)Adevice的上拉。
(7)復(fù)位/列舉/使用Adevice。
1.4驅(qū)動(dòng)程序[5]
與PC主機(jī)不同,便攜式設(shè)備沒有便捷的方式和足夠的空間裝載新的驅(qū)動(dòng)程序。因此,OTG 規(guī)范要求每個(gè)兩用OTG設(shè)備有一個(gè)支持的外設(shè)式OTG目標(biāo)設(shè)備的列表,列表中包括設(shè)備的類型和制造商等信息。
與PC機(jī)不同,OTG兩用設(shè)備的驅(qū)動(dòng)程序棧由USB主機(jī)棧和USB設(shè)備棧構(gòu)成以滿足兩種工作方式的需要。OTG驅(qū)動(dòng)程序通過(guò)連接器的不同或者是否有NHP交換設(shè)備的工作方式來(lái)決定使用USB主機(jī)棧還是USB設(shè)備棧。
當(dāng)OTG兩用設(shè)備以主機(jī)方式工作時(shí),USB主機(jī)棧工作。其中的主機(jī)控制器驅(qū)動(dòng)程序負(fù)責(zé)USB 主機(jī)棧與硬件端點(diǎn)的數(shù)據(jù)交換,USB驅(qū)動(dòng)程序枚舉并保存設(shè)備的信息,目標(biāo)外設(shè)主機(jī)類驅(qū)動(dòng)程序支持目標(biāo)設(shè)備列表里的設(shè)備。主機(jī)類驅(qū)動(dòng)程序由芯片制造商提供,同時(shí),OTG提供通用的主機(jī)類驅(qū)動(dòng)程序(可以修改以用于非通用設(shè)備)。
當(dāng)OTG兩用設(shè)備以從機(jī)方式工作時(shí),USB設(shè)備棧工作。其中的設(shè)備控制器驅(qū)動(dòng)程序負(fù)責(zé)USB 設(shè)備棧與硬件端點(diǎn)的數(shù)據(jù)交換,USB協(xié)議層負(fù)責(zé)處理USB協(xié)議規(guī)范,設(shè)備類驅(qū)動(dòng)程序的功能取決于該兩用設(shè)備的功能(如數(shù)碼照相機(jī)、存儲(chǔ)設(shè)備、打印機(jī)等)。
OTG驅(qū)動(dòng)程序負(fù)責(zé)處理兩用OTG設(shè)備的工作方式轉(zhuǎn)換,同時(shí),他還可以返回其結(jié)果(如設(shè)備是否支持HNP)并處理總線錯(cuò)誤。應(yīng)用層程序通過(guò)OTG驅(qū)動(dòng)程序開始或者結(jié)束一個(gè)傳輸事務(wù), 通過(guò)USB主機(jī)?;蛟O(shè)備棧與硬件層交換數(shù)據(jù)。 上拉電阻相關(guān)文章:上拉電阻原理
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論