你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文

基于安卓開放配件AOA協(xié)議的PWM信號(hào)控制系統(tǒng)設(shè)計(jì)

發(fā)布時(shí)間:2015-01-23 責(zé)任編輯:echolady

【導(dǎo)讀】AOA協(xié)議是Android平臺(tái)下通過(guò)USB總線與Android配件相互通信的協(xié)議,這種協(xié)議在設(shè)備控制和數(shù)據(jù)采集領(lǐng)域發(fā)揮了極其重要的作用。本文就提出了基于Android開放配件AOA協(xié)議,實(shí)現(xiàn)PWM信號(hào)控制系統(tǒng)的設(shè)計(jì)。

系統(tǒng)基于Android開放配件協(xié)議,通過(guò)操作Android手機(jī)界面控制PWM 信號(hào)的周期和占空比。首先介紹了系統(tǒng)構(gòu)成,然后給出了Android終端軟件的具體實(shí)現(xiàn),最后以驅(qū)動(dòng)舵機(jī)為例進(jìn)行系統(tǒng)測(cè)試。系統(tǒng)實(shí)現(xiàn)了Android手機(jī)產(chǎn)生參數(shù)可控的PWM信號(hào)。

PWM(Pulse width Modulation,脈沖寬度調(diào)制)是一種調(diào)壓技術(shù)也是一種變頻技術(shù),由于其具有經(jīng)濟(jì)、節(jié)約空間、抗噪性能強(qiáng)等優(yōu)點(diǎn) ,已廣泛應(yīng)用于測(cè)量、通信、功率控制與變換等領(lǐng)域中。目前,嵌入式PWM 控制應(yīng)用廣泛采用單片機(jī),如簡(jiǎn)單應(yīng)用可選用PIC、AVR等系列單片機(jī),比較復(fù)雜的應(yīng)用可選用DSP,要求更高的可以選用ARM等。但是,PWM 控制應(yīng)用中選用Android智能手機(jī)還未見(jiàn)相關(guān)實(shí)例。

Android是一種全新的開源手機(jī)操作系統(tǒng),具有強(qiáng)大的應(yīng)用層API和傳感器功能,廣泛應(yīng)用于手機(jī)、平板電腦等移動(dòng)設(shè)備中。Android智能手機(jī)具有優(yōu)越的用戶交互性、接口資源開放性、移動(dòng)性以及便攜性等特點(diǎn),隨著其處理速度、存儲(chǔ)容量、穩(wěn)定性、網(wǎng)絡(luò)訪問(wèn)能力等性能的逐漸提高,Android智能終端與工業(yè)應(yīng)用的結(jié)合將會(huì)得到很大發(fā)展。2011年Google推出Android開放配件協(xié)議(Android Open Accessory Protocol,AOA,Protoco1)及配件開發(fā)工具包(Accessory Development Kit,ADK),提供了Android設(shè)備與Android配件通過(guò)USB或藍(lán)牙進(jìn)行通信的API,進(jìn)一步拓寬了Android終端的應(yīng)用范圍?;谝陨蠗l件,本文介紹了一種基于AOA協(xié)議,通過(guò)Android手機(jī)USB控制Android配件生成PWM信號(hào)的系統(tǒng)。

1 AOA協(xié)議

AOA協(xié)議用于Android配件通過(guò)USB或藍(lán)牙與Android終端進(jìn)行通信?;贏OA協(xié)議實(shí)現(xiàn)Android終端USB通信方式稱為配件模式。此模式下,與Android終端通信的另一端設(shè)備稱為Android配件,兩者都必須支持AOA協(xié)議。在USB通信過(guò)程中,Android終端充當(dāng)USB從機(jī),Android配件充當(dāng)USB 主機(jī)并為總線供電。Android配件需具有USB主控制器功能并移植有AOA 協(xié)議。ADK開發(fā)板是常見(jiàn)的Android配件。采用ADK 開發(fā)板的Android配件模式示意如圖1所示.

基于安卓開放配件AOA協(xié)議的PWM信號(hào)控制系統(tǒng)設(shè)計(jì)
圖1 Android配件模式

AOA協(xié)議基于USB協(xié)議,它規(guī)定了配件如何檢測(cè)、枚舉Android設(shè)備,并與設(shè)備建立通信的方法。AOA協(xié)議的工作流程如圖2所示。

基于安卓開放配件AOA協(xié)議的PWM信號(hào)控制系統(tǒng)設(shè)計(jì)
圖2 AOA協(xié)議工作流程
 
[page]  
2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2.1 系統(tǒng)設(shè)計(jì)

系統(tǒng)以Android手機(jī)控制Android配件(ADK 開發(fā)板)產(chǎn)生等脈寬PWM,并控制一舵機(jī)為例,采用的Android配件為英國(guó)飛特蒂亞公司(FTDI)公司生產(chǎn)的Android平臺(tái)USB主控模塊UMFT311EV。在該模塊的核心芯片內(nèi)集成了USB協(xié)議和AOA協(xié)議,并支持4路PWM。系統(tǒng)框圖如圖3所示。

2.2 軟件開發(fā)

本系統(tǒng)采用的UMFT311EV 開發(fā)板由于集成了AOA 協(xié)議,因此無(wú)需開發(fā)Android配件端的程序。此外,F(xiàn)TDI公司針對(duì)UMFT311EV 為Android終端程序開發(fā)提供了底層API?;赨MFT311EV 的Android手機(jī)端PWM 控制程序結(jié)構(gòu)如圖4所示。

基于安卓開放配件AOA協(xié)議的PWM信號(hào)控制系統(tǒng)設(shè)計(jì)
圖3 系統(tǒng)框圖
基于安卓開放配件AOA協(xié)議的PWM信號(hào)控制系統(tǒng)設(shè)計(jì)
圖4 程序結(jié)構(gòu)
 
在圖4所示的結(jié)構(gòu)中,PWM 驅(qū)動(dòng)層為FTDI公司提供的與UMFT311EV開發(fā)板通信的方法集合,PWM 驅(qū)動(dòng)層通過(guò)如表1所列的兩個(gè)類與開發(fā)板進(jìn)行USB通信。

基于安卓開放配件AOA協(xié)議的PWM信號(hào)控制系統(tǒng)設(shè)計(jì)
 
PWM 用戶層具體實(shí)現(xiàn)控制邏輯,由用戶編寫程序?qū)崿F(xiàn)。該層調(diào)用驅(qū)動(dòng)層的方法,從而間接實(shí)現(xiàn)與開發(fā)板的通信。在本系統(tǒng)中,用到的驅(qū)動(dòng)層的方法如表2所列。

基于安卓開放配件AOA協(xié)議的PWM信號(hào)控制系統(tǒng)設(shè)計(jì)
 
在編寫程序前,需要為Android工程做以下設(shè)置工作:

① 配置Android Mainfest文件,設(shè)置Android USB配件模式。設(shè)定 元素及android.hardware.usb.a(chǎn)ccessory屬性值,聲明使用USB配件API;設(shè)置最小SDK版本為12(Android從該版本后支持USB配件模式);增加元素,并指定android.hardware.Usb.action.USB_ACCESSORY_ATTACHED意圖,用于當(dāng)USB配件連接后向用戶發(fā)出提示。增加元素并使其指向一個(gè)外部的XML資源文件accessory_filter.xml,該文件用于聲明希望Android設(shè)備檢測(cè)的USB配件的描述信息。

② 配置accessory_filter.xml文件。增加元素,并指定manufacturer、model、version三個(gè)屬性。在Android配件的固件程序中,同樣包含以上三個(gè)屬性值。根據(jù)AOA協(xié)議,當(dāng)Android配件連接到Android設(shè)備上時(shí),配件會(huì)發(fā)送該屬性值到Android設(shè)備。Android程序?qū)⑽ㄒ豁憫?yīng)與其accessory_filter.xml中指定的屬性值匹配的Android配件。

本系統(tǒng)的accessory_filter.xml的配置如下:

< usb—accessory model=”FTDIPWMDemo”
Manufacturer=”FTDI”
version= ”1.0”/>

Android手機(jī)端程序流程如圖5所示。

基于安卓開放配件AOA協(xié)議的PWM信號(hào)控制系統(tǒng)設(shè)計(jì)
圖5 程序流程
 
[page]  
3 系統(tǒng)測(cè)試及結(jié)果

本系統(tǒng)的測(cè)試場(chǎng)景如圖6所示。

將ADK開發(fā)板通過(guò)USB數(shù)據(jù)線連接至Android手機(jī)上,此時(shí),手機(jī)界面將彈出授權(quán)對(duì)話框,提示打開系統(tǒng)軟件。軟件界面如圖7所示。

點(diǎn)擊“輸出”按鈕,輸出PWM 信號(hào)。在輸出信號(hào)的過(guò)程中,可以通過(guò)滑動(dòng)條動(dòng)態(tài)調(diào)整PWM 信號(hào)的周期和占空比。經(jīng)過(guò)測(cè)試,本系統(tǒng)能夠?qū)崿F(xiàn)Android手機(jī)通過(guò)USB接口控制產(chǎn)生PWM 信號(hào)。由于實(shí)驗(yàn)設(shè)備(Android手機(jī)和ADK開發(fā)板)的性能限制,本系統(tǒng)能夠?qū)崿F(xiàn)PWM 信號(hào)的參數(shù)調(diào)節(jié)范圍如表3所列。

基于安卓開放配件AOA協(xié)議的PWM信號(hào)控制系統(tǒng)設(shè)計(jì)
圖6 測(cè)試場(chǎng)景
基于安卓開放配件AOA協(xié)議的PWM信號(hào)控制系統(tǒng)設(shè)計(jì)
圖7 軟件界面
基于安卓開放配件AOA協(xié)議的PWM信號(hào)控制系統(tǒng)設(shè)計(jì)
 
經(jīng)過(guò)在小米2手機(jī)上的反復(fù)測(cè)試,通過(guò)手機(jī)能夠產(chǎn)生的PWM信號(hào)周期范圍為1~250 ms,占空比范圍為5%~95%,系統(tǒng)總體延遲小于5 ms。系統(tǒng)實(shí)現(xiàn)了通過(guò)Android手機(jī)USB控制Android配件生成參數(shù)可控PWM信號(hào)的功能,并且可以通過(guò)操作Android手機(jī)界面實(shí)現(xiàn)動(dòng)態(tài)調(diào)節(jié)PWM信號(hào)。項(xiàng)目組正開發(fā)多種PWM信號(hào)的控制系統(tǒng),并在深入研究和探討本系統(tǒng)與工業(yè)應(yīng)用的結(jié)合。

相關(guān)閱讀:

有PWM占空比,分分鐘搞定LED亮度線性變化
新手進(jìn)階:幾種由占空比與PWM結(jié)合的簡(jiǎn)單電路
學(xué)習(xí):5種開關(guān)電源PWM的反饋控制設(shè)計(jì)

要采購(gòu)開發(fā)板么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉