何誠剛
(西安交通大學 城市學院電氣與信息工程系,陜西 西安710018)
安卓移動設(shè)備外部通信接口板的設(shè)計
何誠剛
(西安交通大學 城市學院電氣與信息工程系,陜西 西安710018)
文中基于FT311D芯片提出了一個安卓移動設(shè)備外部接口通信板的詳細設(shè)計方案,該方案能夠?qū)沧恐悄苁謾C、平板電腦與具有UART、GPIO、PWM、I2C、SPI等硬件接口的外部設(shè)備連接,實現(xiàn)安卓設(shè)備與這些外部設(shè)備的通信,實驗結(jié)果表明,該方案具有電路設(shè)計合理、軟件界面友好、使用方便、實用價值高等特點,可廣泛地應用于新產(chǎn)品開發(fā)與調(diào)試、物聯(lián)網(wǎng)、生物醫(yī)電等領(lǐng)域。
安卓系統(tǒng);FT311D;USB接口通信;FT311D APP協(xié)議棧
隨著智能手機、平板電腦以及移動互聯(lián)網(wǎng)的普及,在越來越多的領(lǐng)域,人們希望利用這些設(shè)備與外部硬件或者其它設(shè)備連接,例如,產(chǎn)品開發(fā)工程師希望利用手機、平板電腦代替?zhèn)鹘y(tǒng)笨重的筆記本電腦,以使手機通過UART、SPI、I2C等接口來調(diào)試和測試硬件,消費者希望利用手機與物聯(lián)網(wǎng)、車載系統(tǒng)、POS機等連接以獲取相關(guān)的數(shù)據(jù),但是,眾所周知,安卓是手機、平板電腦等產(chǎn)品的主流操作系統(tǒng),在安卓系統(tǒng)的手機、平板電腦下擴展UART、SPI、I2C等硬件接口十分困難,需要外部設(shè)備提供USB主機電路以便與安卓設(shè)備的USB從機接口通信,并且在安卓設(shè)備上需要安裝特殊的USB驅(qū)動程序[1],盡管谷歌在安卓3.1以上的版本中提供了安卓開放附件 AOA (Android Open Accessory)簡化了安卓設(shè)備通過USB接口與外部硬件通信方式,不需要在手機上安裝特殊的USB驅(qū)動程序,但在外部設(shè)備上復雜的硬件和軟件仍然給安卓設(shè)備與外部設(shè)備的通信帶來了很大的不便,近來,英國飛特帝亞公司(FTDI)的FT311D以及FT312D芯片為安卓設(shè)備與其它硬件設(shè)備的連接提供了可能,F(xiàn)T311D提供了豐富的硬件擴展接口,使用FT311D不需要在安卓系統(tǒng)中安裝特殊的USB驅(qū)動程序,也不需要在外部硬件設(shè)備上增加USB軟硬件,只需在安卓設(shè)備上安裝APK應用就可以很方便地與外部硬件設(shè)備通信。
圖1是FT311D的內(nèi)部方框圖,F(xiàn)T311D芯片除可以提供USB主機接口與安卓設(shè)備連接外,還提供豐富的硬件接口與外部硬件連接,F(xiàn)T311D能夠提供UART、I2C、SPI主從、GPIO、PWM等6種硬件接口與外部設(shè)備通信[2]。
圖1 FT311D方框圖
圖2是FT311D的引腳示意圖,F(xiàn)T311D采用3.3 V供電,時鐘頻率12 MHz,其中引腳12、14、15用于定義芯片工作模式,即向外部提供6種接口的哪一種,引腳23、24、25、26、29、30、31為7個輸入輸出引腳,不同工作模式下其作用不同[2],引腳17、18用于USB接口數(shù)據(jù)傳輸,引腳32用于外接發(fā)光二極管顯示USB接口傳輸狀態(tài),外部晶振與引腳4、5相連,提供FT311D所需外部時鐘,其余引腳為電源、接地或測試引腳。
圖2 FT311D引腳示意圖
表1列出了FT311D不同工作模式的定義方法以及不同狀態(tài)下7個輸入輸出引腳的功能,F(xiàn)T311D為一次性編程芯片(OTP),在出廠前內(nèi)部已經(jīng)刷入FTDI官方固件,用戶在使用時不需要在外部設(shè)備上增加電路與軟件,通過相關(guān)硬件接口的輸入輸出引腳與FT311D連接即可實現(xiàn)與安卓設(shè)備的通信,在安卓客戶端,用戶打開APK應用程序即可控制及測試外部硬件設(shè)備[2]。
表1 FTD311外部接口模式配置與IO口功能
FT311D芯片所提供的豐富的外部接口資源可以使用戶非常方便地將手機、平板電腦等設(shè)備與外部各種接口的硬件連接,以下給出一個完整的安卓移動設(shè)備外部接口通信板的設(shè)計方案,該方案的電路原理圖如圖3所示。
圖中USB插座J3用于外接5 V電源適配器或移動電源給安卓移動設(shè)備、FT311D以及外部設(shè)備供電,三端穩(wěn)壓器U3LM1117-3.3用于將+5 V電壓轉(zhuǎn)換為FT311D所需的3.3 V電壓,USB插座J2用于提供USB主機端口與安卓設(shè)備相連,撥碼開關(guān)SW1用于設(shè)定 FT311D 的工作模式,二極管陣列CM1293A-02SR是安森美公司生產(chǎn)的軌至軌防靜電保護二通道二極管陣列,用于防止靜電感應(ESD)對USB數(shù)據(jù)傳輸和通信板硬件的破壞,當正向ESD到來的時候,內(nèi)部連向+5 V的二極管導通。當負向ESD到來的時候,內(nèi)部連向GND的二極管導通,從而快速泄放靜電感應電壓,CM1293A-02SR可提供±8 000 V電壓的防靜電保護[4]。電路圖中指示燈D2為供電電源指示燈,D1可以顯示整個電路的工作狀態(tài),當USB接口數(shù)據(jù)傳輸出現(xiàn)故障時,D1指示燈閃爍,當USB接口數(shù)據(jù)傳輸正常時,D1指示燈常亮,當安卓設(shè)備系統(tǒng)中缺少AOA附件時,D1指示燈熄滅,插座J1引出芯片的所有功能管腳,方便與外部設(shè)備連接和進行可靠的信號傳輸,該接口通信板支持USB2.0全速率數(shù)據(jù)傳輸。
圖3 安卓移動設(shè)備外部接口通信板原理圖
圖4 PWM工作模式示例
圖 4是安卓移動設(shè)備外部通信接口板通過PWM接口與外部硬件連接的示意圖,將撥碼開關(guān)置于PWM方式時(引腳12、15接地,引腳14斷開),F(xiàn)T311D此時可以提供四通道PWM波輸出,所有通道的PWM信號具有相同的信號周期,安卓應用程序可以獨立設(shè)置每一路PWM信號的占空比,將安卓移動設(shè)備外部通信接口板 J1插座的 IOBUS0、IOBUS3分別與外部的發(fā)光二極管以及直流電機控制器相連,通過手機上安裝的PWM安卓驅(qū)動應用軟件控制PWM輸出信號的周期和占空比就可以實現(xiàn)對發(fā)光二極管亮度以及直流電機轉(zhuǎn)速的控制。
FTDI公司為每一種接口模式都設(shè)計了簡單的通信協(xié)議,該協(xié)議采用簡單的兩層協(xié)議棧模式,協(xié)議棧如圖5所示[5]。
圖5 FT311D安卓應用編程協(xié)議棧
該協(xié)議棧上層為用戶層,下層為接口層,用戶層的軟件設(shè)計不需要關(guān)注安卓設(shè)備與FT311D之間的USB接口通信,只需要關(guān)注FT311D不同外圍接口功能的實現(xiàn)以及軟件用戶界面的設(shè)計,而后通過調(diào)用接口層不同的接口類函數(shù)就可以完成安卓設(shè)備通過FT311D與外部硬件設(shè)備的通信,接口層則完成FT311D不同接口類函數(shù)的實現(xiàn),通過接口類函數(shù)執(zhí)行用戶層的API函數(shù),實現(xiàn)安卓設(shè)備與FT311D的USB接口通信并控制FT311D與外部連接硬件接口間的通信,該層定義了接口間的命令以及數(shù)據(jù)傳輸格式,F(xiàn)TDI公司還提供了每一種接口在Eclipse開發(fā)環(huán)境下的Java庫文件,方便用戶編程時使用。下面以FT311D的PWM接口為例說明安卓客戶端軟件的開發(fā),F(xiàn)T311D PWM接口用戶層提供了PWM接口類的API應用函數(shù),包括SetPeriod(int period)、SetDutyCycle(byte pwmChannel,byte dutyCycle)以及Reset()函數(shù),函數(shù)SetPeriod(int period)用于設(shè)置PWM 信號的周期,int period為具體的周期值,F(xiàn)T311D的PWM信號周期可以在1~250ms范圍內(nèi)以 1 ms的步進設(shè)置, 函數(shù) SetDutyCycle(byte pwmChannel,byte dutyCycle)用于設(shè)置不同的PWM通道的占空比,其中 byte pwmChannel用于定義FT311D的PWM接口通道號,byte dutyCycle用于定義該通道的占空比,占空比可以在5%~95%的范圍內(nèi)以1%的步進設(shè)置,Reset()函數(shù)用于發(fā)送Reset命令以便將PWM接口復位為初始默認狀態(tài),此時PWM通道輸出的信號周期為1 ms,占空比為0。而在PWM接口層,F(xiàn)T311D PWM接口協(xié)議棧接口層規(guī)定數(shù)據(jù)以4個字節(jié)為一幀進行發(fā)送,其中第一字節(jié)為傳輸用戶PWM命令,第二字節(jié)發(fā)送PWM通道號,剩下兩個字節(jié)發(fā)送該命令的具體參數(shù),下面以PWM接口為例給出FT311DAPI函數(shù)編程示例[5]。
圖6是基于上述API函數(shù)生成的安卓手機PWM應用截圖,從圖中可以看到通過手機可以非常方便地設(shè)置PWM信號的周期、占空比、通道號等參數(shù)[6]。
圖6 安卓PWM.apk應用截圖
基于FT311D芯片設(shè)計的安卓移動設(shè)備外部通信接口板,無需在安卓設(shè)備上安裝驅(qū)動程序,無需在外部設(shè)備上進行復雜的軟硬件二次開發(fā),在安卓移動設(shè)備與外部設(shè)備間建立了便捷的通信通道,實驗結(jié)果表明,該通信接口板具有電路設(shè)計合理、軟件界面友好、成本低、實用價值高等特點,可廣泛地應用于新產(chǎn)品開發(fā)與調(diào)試、物聯(lián)網(wǎng)、生物醫(yī)電等領(lǐng)域。
參考文獻:
[1]FTDIWhite Paper.Connecting Peripherals to an Android Platform[EB/OL],(2012-9)[2015-12-20]. http://www.ftdichip.com/Support/Documents/White_Papers/WP_001_Connecting_%20Peripherals_to_an_Android_%20Platform.pdf.
[2]FTDI Products.FT311D datasheet[EB/OL].(2013-11).[2015-12-20].http://www.ftdichip.com/Support/ Documents/DataSheets/ICs/DS_FT311D.pdf.
[3]FTDI.FT311D and FT312DDemo APK User Guide [EB/OL].(2013-9).[2015-12-20].http://www.ftdichip. com/Support/Documents/AppNotes/AN_208_FT31x-D_Demo_APK_User_Guide.pdf.
[4]On ConsimductorProduts.CM1293A 02SRdatasheet [EB/OL].(2012-7).[2015-12-20].http://www. onsemi.cn/pub_link/Collateral/CM1293A-D.PDF.
[5]FTDI.FT31X Android Programmers Guide[EB/ OL].(2013-5).[2015-12-20].http://www.ftdichip. com/Support/Documents/ProgramGuides/FT31XD_Android_programmer_guide(FT_000532).pdf.
[6]FTDI.FT311 APK Demo Projects[EB/OL].(2013-9).[2015-12-20].http://www.ftdichip.com/Products/ ICs/FT311D.html.
[7]位恒曦,段晉軍,韓曉紅,等.基于AOA協(xié)議實現(xiàn)Android設(shè)備的USB通信[J].電子技術(shù)應用,2013(9):31-33.
[8]彭鳳凌,庹先國,王洪輝,等.Android手機與內(nèi)網(wǎng)PC通信系統(tǒng)的設(shè)計與現(xiàn)實[J].計算機工程與設(shè)計,2013(7):2333-2337.
[9]李光明,孫英爽,黨小娟.基于安卓的遠程監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2016(2): 556-560.
[10]楊海,趙文濤,張乃千,等.基于Android的自主可控即時通信系統(tǒng)的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2015(6):67-70.
[11]張佳進,陳立暢,楊曉東,等.Android手機串口調(diào)試助手設(shè)計與實現(xiàn) [J].電子設(shè)計工程,2015(2): 138-140.
[12]雷楚奇.對安卓開發(fā)相關(guān)技術(shù)的研究[J].電子技術(shù)與軟件工程,2015(24):74.
[13]張兵,唐愛東.基于安卓的通信電源監(jiān)控系統(tǒng)的研發(fā)[J].電源技術(shù),2016(40):7.
[14]林粵偉,宋丹.基于Android手持設(shè)備的智能家居遙控系統(tǒng)研制[J].電子產(chǎn)品世界,2015(6):37-39.
[15]舒俊,李永忠,劉彬彬.Android手機低功耗GPS導航軟件設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2013(5): 106-109.
Design of peripheral equipment interface communication board for Android mobile devices
HE Cheng-gang
(Department of Electrical&Information Engineering,City College of Xi'anJiaotong University,Xi’an 710018,China)
This paper presents a detailed design of peripheral equipment interface communication board for Android mobile devices based on FT311D chip.The design enables devices including Android smart phones and tablet computers to be connected to peripheral equipment with such hardware interfaces as UART,GPIO,PWM,12C,and SPI,thus realizing the connection between Android devices and these peripheral equipment.The experiment results show that the design features good circuit planning,friendly software interface,convenience and high practical value and can be applied widely to the development and test of new products or in the fields such as Internet of Things,Biochemical Electronics,and so on.
Android system;FT311D;USB interface communication;FT311D APP protocol stack
TN710.9
:A
:1674-6236(2017)01-0114-05
2015-12-21稿件編號:201512210
何誠剛(1968—),男,福建莆田人,副教授。研究方向:電子測量儀器及通信工程。