在2011年的GoogleI/O年會上,Google宣布正在向Android操作系統(tǒng)添加一個框架,以支持基于USB的配件。此配件框架當時已添加到Android2.3.4(API級別10)和Android3.1(API級別12)操作系統(tǒng)版本。 USB外設和主機 USB是一種外設和主機之間的點對點通信方式。外設之間無法通過USB相互通信,總線上始終有一個主機。一般來說,在USB系統(tǒng)中的主機是功能更強大的設備,而外設是具有基本功能的較簡單設備,為主機提供服務。主機還需要為外設供電并管理總線上的外設。由于這些差異,USB主機和外設的設計迥異。 作為USB設備的Android配件 對于配件設計人員來說,如何在這兩種USB選項之間做出選擇似乎是顯而易見的。智能手機/平板電腦的配件最適合作為USB設備。手機或平板電腦很可能是用戶的關注焦點,配件將為手機/平板電腦提供服務。讓手機/平板電腦為配件供電也很有吸引力。 作為USB主機的Android配件Google在發(fā)布稱為Open Accessory的配件框架時,意識到市場上銷售的很多Android產(chǎn)品只能作為USB設備工作。這些產(chǎn)品沒有作為USB主機所需的硬件。為了使這些產(chǎn)品能夠連接配件,Google必須讓這些Android產(chǎn)品作為USB設備來創(chuàng)建配件框架選項。 如果創(chuàng)建的配件所需要支持的Android設備沒有USB主機功能或正在運行不支持USB主機模式的操作系統(tǒng)版本,則配件必須成為USB主機并使用Open Accessor框架才能與Android設備通信。 作為標準USB設備的Android配件 第三個選項是原生操作系統(tǒng)支持。除了操作系統(tǒng)的USB主機功能外,還添加了對一些標準配件(如鼠標、鍵盤和U盤等)的支持。配件可在任何支持的操作系統(tǒng)上工作。圖1、2和3突出顯示了以上三種支持選項。 《電子設計技術》網(wǎng)站版權所有,謝絕轉(zhuǎn)載 應該選哪個選項? 要從三種選項中選擇一個來創(chuàng)建配件,需要了解每個選項的含義。要創(chuàng)建作為USB設備的配件,需要目標Android手機/平板電腦的軟硬件配置能作為USB主機工作。 USB主機必須供電 選擇讓配件作為USB主機的決定并不像查看版本信息那么簡單。在USB系統(tǒng)中,USB主機必須為外設供電。大多數(shù)USB外設需要主機至少提供100mA的電流。這種要求對于執(zhí)行診斷或固件更新的冰箱來說可能是合理的,但對于脈動血氧計之類的設備可能就是個困難。圖1、2和3說明了三種可能的配件配置是如何供電的。 標準或定制應用 除了供電要求外,設計人員還必須考慮其配件的使用方式。讓配件作為USB主機的設計人員可能需要為其應用創(chuàng)建定制協(xié)議。仍然以前文提到的冰箱和脈動血氧計為例,對于冰箱來說,使用定制協(xié)議是合理的,因為客戶必須使用供應商特定的應用程序才能與冰箱通信。而對于脈動血氧計來說,可能需要使用USB協(xié)議中內(nèi)置的個人醫(yī)療設備類協(xié)議(Personal Healthcare Device Class,PHDC)。使用此協(xié)議允許這個產(chǎn)品用于任何USB主機,且允許硬件與各種軟件通信。 如果配件確實以不具有USB主機功能的Android設備為目標,則配件必須使用定制協(xié)議,如圖2所示。 《電子設計技術》網(wǎng)站版權所有,謝絕轉(zhuǎn)載 USB物理連接器 雖然物理連接器不是主要決定因素,但在決定使用哪種模式時還是需要加以考慮。對于作為USB主機的配件,USB規(guī)范要求該配件應具有全尺寸A型母頭連接器。 對于充當USB設備的配件,設計人員可以選擇使用全尺寸B型、mini-B型或micro-B型母頭連接器。如果配件作為USB設備,則意味著Android設備將成為USB主機。大多數(shù)Android設備沒有可插入USB電纜的全尺寸A型母頭連接器。目前市場上許多支持USB主機模式的Android設備需要某種適配器才能使用此功能。在理想情況下,Android設備具有micro-A/B型母頭連接器,用戶可以使用micro-A轉(zhuǎn)micro-B型OTG電纜將配件連接到Android設備,然后使用micro-B轉(zhuǎn)全尺寸A型電纜將Android設備連接到USB主機(如標準PC)。 外設和主機的USB On-The-Go(OTG) 如果無法決定選擇USB主機模式還是USB設備模式配件,或是兩種模式都需要,則還有另一個可用選項。Android配件可設計成USBOTG設備。USBOTG規(guī)范允許配件成為USB主機或USB設備,具體取決于插入的電纜。利用USBOTG,配件可作為沒有主機功能的Android產(chǎn)品的USB主機,也可以作為具有USB主機功能的Android產(chǎn)品的USB外設。 使用USBOTG會并發(fā)一些問題。配件用戶將無法使用Android產(chǎn)品隨附的電纜來連接配件,因此需要額外的電纜。由于Android產(chǎn)品具有多種不同的硬件連接器,因此這種電纜問題實際可能很難解決。使問題進一步復雜化的是,市場上的一些Android產(chǎn)品具有OTG功能但不使用規(guī)范的連接器而采用定制的非標準電纜來實現(xiàn)主機模式操作。 如果選擇配件工作于USB主機模式,則還需要做出另一個決定—使用哪種API集。配件框架作為GoogleAPI附加庫,它的庫模塊(com.android.future.usb)與Android3.1中使用的庫(android.hardware.usb)稍有不同。這兩個庫的接口也略有差異,但功能基本相同。這里的主要考慮事項是目標產(chǎn)品是否支持所需要的庫和相應的功能。 使用Android調(diào)試器接口(IOIO) 有一種稱為IOIO的解決方案,允許通過Android ADB調(diào)試器接口開發(fā)基于Android的配件。此解決方案提供了一種使配件可用于運行Android1.5或更高版本的Android手機/平板電腦的方法,解決了必須等待硬件制造商向其設備推送Android2.3.4或Android3.1+后才能使用配件的問題。雖然ADB接口近來變化不大,但Google仍保留在未來設備上根據(jù)需要更改此接口的權利,以便硬件和軟件開發(fā)人員可使用開發(fā)和調(diào)試器功能。 《電子設計技術》網(wǎng)站版權所有,謝絕轉(zhuǎn)載 |