《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于AOA協議實現Android設備的USB通信
基于AOA協議實現Android設備的USB通信
來源:電子技術應用2013年第9期
位恒曦,段晉軍,韓曉紅,常曉明
太原理工大學 計算機科學與技術學院,山西 太原030024
摘要: AOA協議是Google公司推出的用于實現Android設備與外圍設備之間USB通信的協議。該協議拓展了Android設備USB接口的功能,為基于Android系統的智能設備應用于數據采集和設備控制領域提供了條件。介紹了Android系統下USB通信的兩種模式,并給出了USB配件模式下基于AOA協議實現Android手機控制步進電機的實例。
關鍵詞: 軟件 Android AOA USB通信
中圖分類號: TP273
文獻標識碼: A
文章編號: 0258-7998(2013)09-0031-03
Realization of USB communication on Android-powered device based on AOA protocol
Wei Hengxi,Duan Jinjun,Han Xiaohong,Chang Xiaoming
School of Computer Science and Technology,Taiyuan University of Technology,Taiyuan 030024,China
Abstract: AOA protocol, which is launched by Google, is a protocol used for communication between Android-powered devices and peripheral equipments via USB. The protocol expands the function of USB on Android-powered devices and provides a condition for the data acquisition and equipment control system based on Android-powered devices. In this paper, two kinds of Android USB communication model are introduced firstly. And an example about how to realize Android mobile phone controlling stepping motor based on AOA protocol in USB accessory mode is presented.
Key words : Android;AOA;USB communication

    最近業界的統計數據顯示,智能手機與自動化及機械系統之間存在著很大的市場潛力。2011年Google推出Android開放配件協議AOA(Android Open Accessory Protocol)及配件開發工具包ADK(Accessory Development Kit)提供了Android設備與Android配件通過USB或藍牙進行通信的API,為基于Android系統的智能設備控制外設提供了條件。利用Android,系統可以連接從家用電器到重型機械、機器人等多種設備。

    Android作為一種基于開源Linux的智能手機操作系統,廣泛應用于手機、平板電腦等移動設備中。在各種Android設備提供的接口中,USB接口是常見接口,該接口的作用是為Android設備充電并通過PC端的驅動程序實現Android設備與PC的交互。如何拓展Android設備的USB接口功能是當前的研究熱點之一。針對該問題,本文介紹了一種基于AOA協議實現Android設備USB通信的方案,并通過Android手機控制步進電機的案例給出了方案的實現方法。
1 Android USB通信模式
    Android系統支持多種USB外圍設備。根據Android設備在USB通信中充當的角色,可以將Android USB通信分為主機模式(Host Mode)和配件模式(Accessory Mode)[1]兩種模式。
1.1 主機模式
    主機模式是指Android設備充當USB主機并為總線供電。此模式下,Android設備需支持USB主機功能或OTG功能,此時Android設備的USB主機稱為USB嵌入式主機EH(Embedded Host)[2]。與PC上的USB主機相比,EH設備可能無法為連接到其總線上的未識別外圍設備加載驅動程序,因此它們對其目標外圍設備列表TPL(Target Peripheral List)進行了定義[3]。這些外圍USB設備大部分為HID設備(Human Interface Device)、BOMS設備(Bulk Only Mass Storage,如U盤)和CDC設備(Comm-
unication Device Class,USB通信設備類,如打印機),其驅動程序已存在于Android平臺的系統中(Linux Kernel),因此Android設備可以與其直接通信。
    主機模式示意圖如圖1所示。
1.2 配件模式
    配件模式是指Android設備充當USB從機,外部設備充當主機并為總線供電。此模式下,外部USB設備稱為Android配件。該模式為不具備主機功能的Android設備提供與USB設備交互的能力。Android設備和Android配件都必須支持AOA協議。不支持AOA協議的設備可以通過Android配件開發板(ADK板)與Android設備連接,成為Android設備的間接配件。
    配件模式示意圖如圖2所示。

    本文介紹的基于AOA協議的Android設備USB通信方案即采用配件模式。主機模式和配件模式在Android 3.1(API level 12)及更高的平臺中直接支持。配件模式作為一個附加庫也被Android 2.3.4(API level 10)支持。設備廠商可以選擇是否在設備的Linux系統鏡像中包含附加庫。對主機和配件模式的支持最終取決于設備的硬件,而不是Android平臺的等級(軟件)。
1.3 Android配件、ADK及AOA協議
    Android配件是指遵循AOA協議的硬件,是Android配件模式中的概念。從硬件角度講,Android配件具有實現USB EH功能和AOA協議的微處理器以及包括USB接口在內的輸入/輸出接口。Android配件必須與Android平臺一起工作。
    ADK是開發Android配件的參考開發包,該開發包基于Arduino公司的開源電子成型平臺[4]。ADK開發包包括Android配件硬件設計文檔、Android配件固件源碼、Android設備程序源碼。
    AOA協議是Android設備與Android配件之間進行USB通信需遵循的連接協議,該協議規定了Android配件如何檢測Android設備并與其建立通信。AOA協議規定配件需具備以下4項功能[5]:
    (1)偵聽自身的USB接口,等待與其連接的Android設備。
    (2)檢測Android設備是否支持AOA協議。
    (3)如果需要,啟動Android設備的USB配件模式。
    (4)與Android設備建立USB通信。
2 USB配件模式開發
    Android配件模式開發需要在Android設備端和Android配件端分別進行開發。
2.1 Android設備端開發
    Android設備端需進行以下兩項工作:
    (1)確保設備支持AOA協議。設備對AOA協議是否支持由設備硬件和Android系統版本決定。
    (2)調用ADK中的API開發USB應用程序。
    ADK中與USB配件模式相關的兩個類是UsbManager和UsbAccessory。UsbManager用于枚舉連接的USB配件并與其通信,UsbAccessory代表Android配件并包含獲取配件描述信息的方法。
    在編寫程序前,需要為Android工程做以下設置工作[6]:
    (1)配置Android Mainfest文件,聲明使用配件模式,指定最低SDK版本,并設置配件過濾意圖。
    (2)配置accessory_filter.xml文件。accessory_filter.xml文件用于描述希望Android設備檢測的USB配件的描述信息,包含manufacturer、model、version 3個屬性。在Android配件的固件程序中,同樣包含以上3個屬性值。根據AOA協議,當Android配件連接到Android設備上時,配件會發送該屬性值到Android設備。Android程序將唯一響應與其accessory_filter.xml中指定的屬性值匹配的Android配件。
    Android設備端程序開發的流程如下:
    (1)發現配件并過濾。
    (2)獲取與配件通信的權限。通過廣播接收器(Broad-castReceiver)的方式以彈出授權對話框的形式詢問用戶是否允許與Android配件通信。
    (3)開始與配件通信。創建文件輸入輸出流代表USB批量傳輸端點,通過獨立線程以流傳輸的方式實現USB通信。
    (4)終止與配件通信。通過廣播接收器偵聽USB配件與Android設備的斷開操作,當事件發生時,關閉文件輸入/輸出流。
2.2 Android配件端開發
    Android配件端需進行以下兩項工作:
    (1)根據ADK中的硬件設計文檔設計具有USB主控制器的硬件電路,并支持USB協議。
    (2)將AOA協議以固件代碼的形式下載至Android配件的主芯片中。
    目前,已有多家公司為Android設備的配件模式開發提供專門的ADK板,ADK板將AOA協議以程序的方式燒寫至芯片中,ADK板也即Android配件。目前常見的ADK板有Arduino的Arduino Mega ADK板、SparkFun的IOIO板,此外還有DIY Drones、Microchip、RT Corp、Seeed Studio、Troido等公司生產的ADK板。采用ADK板將可節省Android配件端的開發時間。
3 系統設計
3.1 總體設計

    構建的系統框圖如圖3所示。

    采用的ADK板是由英國飛特蒂亞FTDI(Future Technology Devices International Ltd.)公司生產的Android平臺USB主控模塊(USB Android Host Module)[7],型號為UMFT311EV,于2012年7月31日推出。UMFT311EV板具有USB主控功能和USB接口橋接功能,其特性如下:
    (1)采用USB Android主控芯片FT311D,單芯片內集成USB協議。
    (2)兼容USB 2.0全速模式(最大傳輸速率12 Mb/s,即1.5 MB/s,最大輸出電流500 mA)。
    (3)6種接口類型,即GPIO(7路)、UART、PWM(4路)、I2C Master、SPI Master、SPI Slave。
    (4)6種接口只能單一工作,通過跳線帽和3個接口類型選擇引腳選擇接口類型。
    UMFT311EV板支持AOA協議,作為Android配件無需用戶做配件端的開發,而且為Android設備端的程序開發提供Java驅動包。因此采用UMFT311EV板能夠實現Android手機、平板與其他設備的通信,進行設備控制和數據采集,并能與現有系統快速集成,降低開發難度和開發時間。
    在此,以Android手機小米MI2和步進電機28BYJ48為例,通過UMFT311EV板的4路GPIO口實現Android手機USB控制步進電機。
3.2 軟件設計
    在設計Android手機端軟件時,采用FTDI公司為Android平臺提供的驅動包。根據該驅動包,架構如圖4所示的應用程序。


    FT311驅動層提供驅動UMFT311EV板上接口的方法和實現Android應用程序與UMFT311EV板USB通信的方法。該層為用戶層提供封裝的方法,為用戶開發程序屏蔽底層編程細節。用戶層通過調用FT311驅動層的方法實現對UMFT311EV板上接口的控制。
    本實驗編程采用FT311驅動層提供的配置GPIO、讀GPIO、寫GPIO、重置GPIO 4個方法實現對步進電機的控制,程序流程如圖5所示。

4 系統測試
    本設計中將Android手機作為脈沖信號源和脈沖分配器,通過軟件編程為步進電機提供脈沖信號,并通過驅動芯片ULN2003驅動步進電機。系統測試過程如下:

 


    (1)用跳線帽設置ADK板的接口類型為GPIO,將步進電機與其驅動板連接,驅動板與ADK板的GPIO口連接,并給ADK板上電。
    (2)將軟件安裝至手機上,然后通過USB線將ADK板與手機連接。
    (3)連接后,手機將彈出授權對話框,提示用戶打開(2)中安裝的軟件。
    (4)進入軟件界面后,點擊“設定輸出”按鈕,設定GPIO口的數據傳輸方向;點擊“啟動”、“停止”、“正轉”、“反轉”,拖動速度調節滑塊,可實現對電機的控制。
    本文介紹了一種基于AOA協議實現Android設備USB通信的方案。該方案利用ADK開發板UMFT311EV實現外圍設備與Android設備的USB連接,通過Android USB配件模式編程實現了Android設備對外圍設備的控制。實際測試表明,該方案設計簡單,能夠實現Android設備對外設的控制。
參考文獻
[1] Google.USB host and accessory[EB/OL].[2013-03-02].http://developer.android.com/guide/topics/connectivity/usb/index.html.
[2] USB.USB On-The-Go and embedded host[EB/OL].[2013-03-02].http://www.usb.org/developers/onthego.
[3] HARMON D.哪種USB接口適合您的應用[J].今日電子,2013(2):29-31.
[4] Google.Accessory development kit 2011 guide[EB/OL].[2013-03-02].http://developer.android.com/tools/adk/adk.html.
[5] Google.Android open accessory protocol 1.0[EB/OL].[2013-03-02].http://source.android.com/tech/accessories/aoap/aoa.html.
[6] Google.USB accessory[EB/OL].[2013-03-02].http://devel-oper.android.com/guide/topics/connectivity/usb/accessory.html.
[7] FTDI.FT311D development module(UMFT311EV)[EB/OL].(2012-07-31)[2013-03-02].http://www.ftdichip.com/Android.htm.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美视频日韩视频在线观看| 国内一区二区三区在线视频| 女人香蕉久久**毛片精品| 噜噜噜久久亚洲精品国产品小说| 99视频+国产日韩欧美| 亚洲视频电影图片偷拍一区| 亚洲精品少妇网址| 欧美日韩亚洲国产一区| 亚洲国产精品久久久| 欧美三级午夜理伦三级中视频| 亚洲视频 欧洲视频| 欧美专区日韩专区| 欧美日韩国产影院| 亚洲欧美春色| 国产一区 二区 三区一级| 亚洲欧美一级二级三级| 最新国产成人av网站网址麻豆| 亚洲一区制服诱惑| 国产中文一区二区三区| 欧美日韩一区二区三区四区五区| 国产视频在线观看一区| 一区二区三区偷拍| 国产色爱av资源综合区| 亚洲小说欧美另类婷婷| 一区二区三区在线视频播放| 欧美一级播放| 国产一区在线观看视频| 亚洲黄色av| 欧美黑人国产人伦爽爽爽| 激情久久综艺| 久热re这里精品视频在线6| 久久一区二区精品| 99re热这里只有精品免费视频| 欧美日韩午夜在线| 一区二区欧美视频| 日韩亚洲成人av在线| 亚洲影院一区| 免费成人毛片| 欧美激情导航| 欧美激情在线狂野欧美精品| 午夜久久美女| 久久噜噜噜精品国产亚洲综合| 巨胸喷奶水www久久久免费动漫| 99av国产精品欲麻豆| 久久视频在线看| 伊人久久亚洲美女图片| 亚洲一本视频| 亚洲欧洲精品一区二区三区不卡| 欧美精品九九| 国产日韩欧美精品综合| 欧美日韩在线观看一区二区| 国产欧美精品一区二区三区介绍| 一本色道久久综合亚洲精品按摩| 亚洲精品1234| 久久久久久伊人| 久久成人免费| 亚洲无玛一区| 欧美精品在线网站| 99日韩精品| 欧美日韩不卡在线| 亚洲激情自拍| 欧美成人综合在线| 国产精品免费aⅴ片在线观看| 亚洲欧洲日产国码二区| 欧美日韩在线一二三| 国模吧视频一区| 美女视频黄a大片欧美| 亚洲第一精品夜夜躁人人躁| 国产精品露脸自拍| 亚洲精品永久免费| 免费视频一区二区三区在线观看| 六月婷婷一区| 午夜激情亚洲| 亚洲伊人观看| 欧美激情一区二区在线| av成人福利| 亚洲精品国产精品国产自| 国产精品毛片a∨一区二区三区| 久久国产一区二区三区| 午夜精彩视频在线观看不卡| 国产欧美va欧美va香蕉在| 久久一区二区三区国产精品| 国产香蕉久久精品综合网| 亚洲视频在线播放| 亚洲欧美精品| 亚洲欧美日韩视频二区| 亚洲久久一区| 老司机成人网| 欧美精品电影在线| 国产精品视频网站| 亚洲视频第一页| 久久都是精品| 国产乱码精品一区二区三区忘忧草| 免费观看日韩| 你懂的国产精品永久在线| 伊人久久亚洲影院| 性一交一乱一区二区洋洋av| 久久爱另类一区二区小说| 国产精品久久久久久久久久尿| 欧美成人精品一区二区| 国产日韩欧美视频| 在线亚洲国产精品网站| 欧美色精品天天在线观看视频| 欧美aⅴ一区二区三区视频| 亚洲欧美成人精品| 欧美激情一区二区| 国产精品久久久久毛片大屁完整版| 久久精品成人一区二区三区蜜臀| 欧美视频在线观看免费| 欧美在现视频| 国产亚洲永久域名| 欧美特黄一级大片| 一区二区三区久久精品| 国产精品久久久久久久app| 欧美日韩日本国产亚洲在线| 久久久久九九九九| 99热在这里有精品免费| 伊人成人网在线看| 国产欧美一区二区三区在线老狼| 久久伊人精品天天| 中文国产亚洲喷潮| 一个人看的www久久| 亚洲图片欧美午夜| 欧美视频一区二区| 在线不卡免费欧美| 欧美一区二区在线看| 亚洲经典自拍| 亚洲精品少妇| 狠狠色2019综合网| 欧美一二三区在线观看| 欧美精品二区三区四区免费看视频| 国产精品自拍小视频| 欧美主播一区二区三区美女 久久精品人| 国产精品美女一区二区在线观看| 国产精品人人做人人爽人人添| 91久久精品一区二区别| 一本色道久久综合亚洲精品不| 欧美在线观看网址综合| 亚洲私人影院在线观看| 性高湖久久久久久久久| 国产伊人精品| 欧美精品一卡二卡| 国产一区二区黄色| 性色一区二区三区| 亚洲一区二区三区777| 亚洲男人的天堂在线| 久久亚洲欧美国产精品乐播| 久久婷婷人人澡人人喊人人爽| 日韩一级欧洲| 亚洲视频图片小说| 亚洲区欧美区| 国产永久精品大片wwwapp| 亚洲观看高清完整版在线观看| 国产午夜精品在线观看| 免费日韩成人| 国产精品人人做人人爽人人添| 欧美电影免费| 美女被久久久| 六月婷婷一区| 免费国产自线拍一欧美视频| 激情亚洲成人| 国产欧美一级| 99ri日韩精品视频| 亚洲精品老司机| 美女啪啪无遮挡免费久久网站| 亚洲香蕉伊综合在人在线视看| 国产美女精品一区二区三区| 国产精品视频免费观看| 欧美精品久久99| 麻豆九一精品爱看视频在线观看免费| 一区二区三区久久久| 亚洲韩国青草视频| 欧美日韩精品免费看| 亚洲国产小视频在线观看| 欧美淫片网站| 国产精品白丝黑袜喷水久久久| 老司机精品视频网站| 久久亚洲二区| 欧美成熟视频| 黑人操亚洲美女惩罚| 亚洲女人av| 亚洲伊人伊色伊影伊综合网| 狠狠色2019综合网| 国产精品久久综合| 亚洲午夜精品久久| 一区二区三区在线免费视频| 日韩一二在线观看| 久久xxxx精品视频| 亚洲精品网站在线播放gif| 国内外成人免费视频| 国产视频一区二区在线观看| 一区二区三区欧美亚洲| 亚洲国产精品va在看黑人| 牛夜精品久久久久久久99黑人| 国内精品久久久久国产盗摄免费观看完整版| 亚洲电影视频在线| 欧美日韩在线看| 你懂的视频欧美| 久久久精品国产99久久精品芒果| 亚洲在线国产日韩欧美| 欧美日韩精品二区第二页| 欧美一区2区视频在线观看| 欧美成人午夜视频| 久久亚洲一区二区三区四区| 日韩亚洲欧美成人| 欧美视频在线免费看| 一本大道久久a久久精二百| 久久精品最新地址| 欧美亚洲免费高清在线观看| 亚洲校园激情| 国产综合色精品一区二区三区| 久热国产精品| 好吊一区二区三区| 亚洲色图在线视频| 久久九九全国免费精品观看| 狠狠色综合一区二区| 在线观看一区二区精品视频| 99精品热6080yy久久| 久久久人人人| 国产日韩在线看片| 99精品视频免费观看视频| 亚洲永久视频| 欧美日韩国产成人高清视频| 国色天香一区二区| 久久一区二区三区四区五区| 亚洲国产美女久久久久| 久久综合婷婷| 国产精品人人做人人爽人人添| 亚洲视频在线观看网站| 国产精品夫妻自拍| 欧美精品久久久久久久久老牛影院| 国产精品一区二区你懂得| 亚洲人体影院| 亚洲国产精品电影在线观看| 亚洲欧美日韩国产一区| 国产日韩精品一区二区浪潮av| 欧美在线一区二区| 亚洲精品欧洲| 久久av资源网站| 国产乱人伦精品一区二区| 国产日韩欧美一区二区| 亚洲一区三区电影在线观看| 国产精品日韩欧美一区二区三区| 国产亚洲一区二区三区在线播放| 久久综合九色欧美综合狠狠| 久久久www免费人成黑人精品| 欧美jjzz| 欧美自拍偷拍| 欧美日韩在线不卡| 久久超碰97人人做人人爱| 国产精品国产亚洲精品看不卡15| 在线观看视频免费一区二区三区| 欧美成人亚洲成人日韩成人| 久久久人成影片一区二区三区观看| 国产亚洲精品资源在线26u| 精品福利av| 你懂的视频一区二区| 欧美四级伦理在线| 91久久精品www人人做人人爽| 亚洲美女黄网| 欧美怡红院视频一区二区三区| 欧美黄色网络| 欧美精品一区二区三区在线看午夜| 亚洲日本一区二区三区| 欧美美女日韩| 野花国产精品入口| 在线免费观看日本一区| 国产自产高清不卡| 欧美日韩在线亚洲一区蜜芽| 亚洲免费激情| 亚洲一区国产精品| 国产毛片久久| 国内精品视频在线观看| 欧美日韩国产高清| 欧美视频一区二| 欧美日韩1234| 久久久久久综合网天天| 亚洲视频福利| 亚洲国产一区二区三区在线播| 看片网站欧美日韩| 美女黄色成人网| 日韩视频在线播放| 亚洲毛片在线观看| 精品不卡一区二区三区| 你懂的国产精品| 在线观看日韩专区| 99成人免费视频| 国产日韩欧美另类| 久久久久久网| 亚洲女人天堂av| 亚洲第一成人在线| 在线成人性视频| 欧美a级理论片| 免费中文字幕日韩欧美| 韩国亚洲精品| 亚洲欧美国产一区二区三区| 欧美大片专区| 亚洲精品免费看| 国产精品久久久久久久免费软件| 亚洲国产一区二区三区在线播| 国产精品久久久久毛片软件| 欧美一区二区三区电影在线观看| 亚洲高清二区| a4yy欧美一区二区三区| 欧美精品亚洲二区| 亚洲国产欧美一区| 一本色道久久综合亚洲精品不卡| 亚洲一区二区三区午夜| 欧美性大战久久久久久久蜜臀| 欧美色网在线| 国产欧美另类| 久久久美女艺术照精彩视频福利播放| 在线 亚洲欧美在线综合一区| 欧美视频专区一二在线观看| 国产一区二区三区电影在线观看| 蜜桃av一区二区| 国产伦精品一区二区三区高清| 午夜激情综合网| 国产精品久久久久毛片软件| 国产一区二区中文字幕免费看| 狂野欧美激情性xxxx| 91久久精品网| 欧美日韩亚洲一区二区三区四区| 激情懂色av一区av二区av| 亚洲国产欧美一区二区三区久久| 一区免费视频| 欧美日韩一区二区三区视频| 国产精品久久午夜夜伦鲁鲁|