何誠剛
(西安交通大學(xué) 城市學(xué)院電氣與信息工程系,陜西 西安710018)
安卓移動(dòng)設(shè)備外部通信接口板的設(shè)計(jì)
何誠剛
(西安交通大學(xué) 城市學(xué)院電氣與信息工程系,陜西 西安710018)
文中基于FT311D芯片提出了一個(gè)安卓移動(dòng)設(shè)備外部接口通信板的詳細(xì)設(shè)計(jì)方案,該方案能夠?qū)沧恐悄苁謾C(jī)、平板電腦與具有UART、GPIO、PWM、I2C、SPI等硬件接口的外部設(shè)備連接,實(shí)現(xiàn)安卓設(shè)備與這些外部設(shè)備的通信,實(shí)驗(yàn)結(jié)果表明,該方案具有電路設(shè)計(jì)合理、軟件界面友好、使用方便、實(shí)用價(jià)值高等特點(diǎn),可廣泛地應(yīng)用于新產(chǎn)品開發(fā)與調(diào)試、物聯(lián)網(wǎng)、生物醫(yī)電等領(lǐng)域。
安卓系統(tǒng);FT311D;USB接口通信;FT311D APP協(xié)議棧
隨著智能手機(jī)、平板電腦以及移動(dòng)互聯(lián)網(wǎng)的普及,在越來越多的領(lǐng)域,人們希望利用這些設(shè)備與外部硬件或者其它設(shè)備連接,例如,產(chǎn)品開發(fā)工程師希望利用手機(jī)、平板電腦代替?zhèn)鹘y(tǒng)笨重的筆記本電腦,以使手機(jī)通過UART、SPI、I2C等接口來調(diào)試和測(cè)試硬件,消費(fèi)者希望利用手機(jī)與物聯(lián)網(wǎng)、車載系統(tǒng)、POS機(jī)等連接以獲取相關(guān)的數(shù)據(jù),但是,眾所周知,安卓是手機(jī)、平板電腦等產(chǎn)品的主流操作系統(tǒng),在安卓系統(tǒng)的手機(jī)、平板電腦下擴(kuò)展UART、SPI、I2C等硬件接口十分困難,需要外部設(shè)備提供USB主機(jī)電路以便與安卓設(shè)備的USB從機(jī)接口通信,并且在安卓設(shè)備上需要安裝特殊的USB驅(qū)動(dòng)程序[1],盡管谷歌在安卓3.1以上的版本中提供了安卓開放附件 AOA (Android Open Accessory)簡(jiǎn)化了安卓設(shè)備通過USB接口與外部硬件通信方式,不需要在手機(jī)上安裝特殊的USB驅(qū)動(dòng)程序,但在外部設(shè)備上復(fù)雜的硬件和軟件仍然給安卓設(shè)備與外部設(shè)備的通信帶來了很大的不便,近來,英國飛特帝亞公司(FTDI)的FT311D以及FT312D芯片為安卓設(shè)備與其它硬件設(shè)備的連接提供了可能,F(xiàn)T311D提供了豐富的硬件擴(kuò)展接口,使用FT311D不需要在安卓系統(tǒng)中安裝特殊的USB驅(qū)動(dòng)程序,也不需要在外部硬件設(shè)備上增加USB軟硬件,只需在安卓設(shè)備上安裝APK應(yīng)用就可以很方便地與外部硬件設(shè)備通信。
圖1是FT311D的內(nèi)部方框圖,F(xiàn)T311D芯片除可以提供USB主機(jī)接口與安卓設(shè)備連接外,還提供豐富的硬件接口與外部硬件連接,F(xiàn)T311D能夠提供UART、I2C、SPI主從、GPIO、PWM等6種硬件接口與外部設(shè)備通信[2]。
圖1 FT311D方框圖
圖2是FT311D的引腳示意圖,F(xiàn)T311D采用3.3 V供電,時(shí)鐘頻率12 MHz,其中引腳12、14、15用于定義芯片工作模式,即向外部提供6種接口的哪一種,引腳23、24、25、26、29、30、31為7個(gè)輸入輸出引腳,不同工作模式下其作用不同[2],引腳17、18用于USB接口數(shù)據(jù)傳輸,引腳32用于外接發(fā)光二極管顯示USB接口傳輸狀態(tài),外部晶振與引腳4、5相連,提供FT311D所需外部時(shí)鐘,其余引腳為電源、接地或測(cè)試引腳。
圖2 FT311D引腳示意圖
表1列出了FT311D不同工作模式的定義方法以及不同狀態(tài)下7個(gè)輸入輸出引腳的功能,F(xiàn)T311D為一次性編程芯片(OTP),在出廠前內(nèi)部已經(jīng)刷入FTDI官方固件,用戶在使用時(shí)不需要在外部設(shè)備上增加電路與軟件,通過相關(guān)硬件接口的輸入輸出引腳與FT311D連接即可實(shí)現(xiàn)與安卓設(shè)備的通信,在安卓客戶端,用戶打開APK應(yīng)用程序即可控制及測(cè)試外部硬件設(shè)備[2]。
表1 FTD311外部接口模式配置與IO口功能
FT311D芯片所提供的豐富的外部接口資源可以使用戶非常方便地將手機(jī)、平板電腦等設(shè)備與外部各種接口的硬件連接,以下給出一個(gè)完整的安卓移動(dòng)設(shè)備外部接口通信板的設(shè)計(jì)方案,該方案的電路原理圖如圖3所示。
圖中USB插座J3用于外接5 V電源適配器或移動(dòng)電源給安卓移動(dòng)設(shè)備、FT311D以及外部設(shè)備供電,三端穩(wěn)壓器U3LM1117-3.3用于將+5 V電壓轉(zhuǎn)換為FT311D所需的3.3 V電壓,USB插座J2用于提供USB主機(jī)端口與安卓設(shè)備相連,撥碼開關(guān)SW1用于設(shè)定 FT311D 的工作模式,二極管陣列CM1293A-02SR是安森美公司生產(chǎn)的軌至軌防靜電保護(hù)二通道二極管陣列,用于防止靜電感應(yīng)(ESD)對(duì)USB數(shù)據(jù)傳輸和通信板硬件的破壞,當(dāng)正向ESD到來的時(shí)候,內(nèi)部連向+5 V的二極管導(dǎo)通。當(dāng)負(fù)向ESD到來的時(shí)候,內(nèi)部連向GND的二極管導(dǎo)通,從而快速泄放靜電感應(yīng)電壓,CM1293A-02SR可提供±8 000 V電壓的防靜電保護(hù)[4]。電路圖中指示燈D2為供電電源指示燈,D1可以顯示整個(gè)電路的工作狀態(tài),當(dāng)USB接口數(shù)據(jù)傳輸出現(xiàn)故障時(shí),D1指示燈閃爍,當(dāng)USB接口數(shù)據(jù)傳輸正常時(shí),D1指示燈常亮,當(dāng)安卓設(shè)備系統(tǒng)中缺少AOA附件時(shí),D1指示燈熄滅,插座J1引出芯片的所有功能管腳,方便與外部設(shè)備連接和進(jìn)行可靠的信號(hào)傳輸,該接口通信板支持USB2.0全速率數(shù)據(jù)傳輸。
圖3 安卓移動(dòng)設(shè)備外部接口通信板原理圖
圖4 PWM工作模式示例
圖 4是安卓移動(dòng)設(shè)備外部通信接口板通過PWM接口與外部硬件連接的示意圖,將撥碼開關(guān)置于PWM方式時(shí)(引腳12、15接地,引腳14斷開),F(xiàn)T311D此時(shí)可以提供四通道PWM波輸出,所有通道的PWM信號(hào)具有相同的信號(hào)周期,安卓應(yīng)用程序可以獨(dú)立設(shè)置每一路PWM信號(hào)的占空比,將安卓移動(dòng)設(shè)備外部通信接口板 J1插座的 IOBUS0、IOBUS3分別與外部的發(fā)光二極管以及直流電機(jī)控制器相連,通過手機(jī)上安裝的PWM安卓驅(qū)動(dòng)應(yīng)用軟件控制PWM輸出信號(hào)的周期和占空比就可以實(shí)現(xiàn)對(duì)發(fā)光二極管亮度以及直流電機(jī)轉(zhuǎn)速的控制。
FTDI公司為每一種接口模式都設(shè)計(jì)了簡(jiǎn)單的通信協(xié)議,該協(xié)議采用簡(jiǎn)單的兩層協(xié)議棧模式,協(xié)議棧如圖5所示[5]。
圖5 FT311D安卓應(yīng)用編程協(xié)議棧
該協(xié)議棧上層為用戶層,下層為接口層,用戶層的軟件設(shè)計(jì)不需要關(guān)注安卓設(shè)備與FT311D之間的USB接口通信,只需要關(guān)注FT311D不同外圍接口功能的實(shí)現(xiàn)以及軟件用戶界面的設(shè)計(jì),而后通過調(diào)用接口層不同的接口類函數(shù)就可以完成安卓設(shè)備通過FT311D與外部硬件設(shè)備的通信,接口層則完成FT311D不同接口類函數(shù)的實(shí)現(xiàn),通過接口類函數(shù)執(zhí)行用戶層的API函數(shù),實(shí)現(xiàn)安卓設(shè)備與FT311D的USB接口通信并控制FT311D與外部連接硬件接口間的通信,該層定義了接口間的命令以及數(shù)據(jù)傳輸格式,F(xiàn)TDI公司還提供了每一種接口在Eclipse開發(fā)環(huán)境下的Java庫文件,方便用戶編程時(shí)使用。下面以FT311D的PWM接口為例說明安卓客戶端軟件的開發(fā),F(xiàn)T311D PWM接口用戶層提供了PWM接口類的API應(yīng)用函數(shù),包括SetPeriod(int period)、SetDutyCycle(byte pwmChannel,byte dutyCycle)以及Reset()函數(shù),函數(shù)SetPeriod(int period)用于設(shè)置PWM 信號(hào)的周期,int period為具體的周期值,F(xiàn)T311D的PWM信號(hào)周期可以在1~250ms范圍內(nèi)以 1 ms的步進(jìn)設(shè)置, 函數(shù) SetDutyCycle(byte pwmChannel,byte dutyCycle)用于設(shè)置不同的PWM通道的占空比,其中 byte pwmChannel用于定義FT311D的PWM接口通道號(hào),byte dutyCycle用于定義該通道的占空比,占空比可以在5%~95%的范圍內(nèi)以1%的步進(jìn)設(shè)置,Reset()函數(shù)用于發(fā)送Reset命令以便將PWM接口復(fù)位為初始默認(rèn)狀態(tài),此時(shí)PWM通道輸出的信號(hào)周期為1 ms,占空比為0。而在PWM接口層,F(xiàn)T311D PWM接口協(xié)議棧接口層規(guī)定數(shù)據(jù)以4個(gè)字節(jié)為一幀進(jìn)行發(fā)送,其中第一字節(jié)為傳輸用戶PWM命令,第二字節(jié)發(fā)送PWM通道號(hào),剩下兩個(gè)字節(jié)發(fā)送該命令的具體參數(shù),下面以PWM接口為例給出FT311DAPI函數(shù)編程示例[5]。
圖6是基于上述API函數(shù)生成的安卓手機(jī)PWM應(yīng)用截圖,從圖中可以看到通過手機(jī)可以非常方便地設(shè)置PWM信號(hào)的周期、占空比、通道號(hào)等參數(shù)[6]。
圖6 安卓PWM.apk應(yīng)用截圖
基于FT311D芯片設(shè)計(jì)的安卓移動(dòng)設(shè)備外部通信接口板,無需在安卓設(shè)備上安裝驅(qū)動(dòng)程序,無需在外部設(shè)備上進(jìn)行復(fù)雜的軟硬件二次開發(fā),在安卓移動(dòng)設(shè)備與外部設(shè)備間建立了便捷的通信通道,實(shí)驗(yàn)結(jié)果表明,該通信接口板具有電路設(shè)計(jì)合理、軟件界面友好、成本低、實(shí)用價(jià)值高等特點(diǎn),可廣泛地應(yīng)用于新產(chǎn)品開發(fā)與調(diào)試、物聯(lián)網(wǎng)、生物醫(yī)電等領(lǐng)域。
參考文獻(xiàn):
[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é)議實(shí)現(xiàn)Android設(shè)備的USB通信[J].電子技術(shù)應(yīng)用,2013(9):31-33.
[8]彭鳳凌,庹先國,王洪輝,等.Android手機(jī)與內(nèi)網(wǎng)PC通信系統(tǒng)的設(shè)計(jì)與現(xiàn)實(shí)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013(7):2333-2337.
[9]李光明,孫英爽,黨小娟.基于安卓的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2016(2): 556-560.
[10]楊海,趙文濤,張乃千,等.基于Android的自主可控即時(shí)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2015(6):67-70.
[11]張佳進(jìn),陳立暢,楊曉東,等.Android手機(jī)串口調(diào)試助手設(shè)計(jì)與實(shí)現(xiàn) [J].電子設(shè)計(jì)工程,2015(2): 138-140.
[12]雷楚奇.對(duì)安卓開發(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手機(jī)低功耗GPS導(dǎo)航軟件設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,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稿件編號(hào):201512210
何誠剛(1968—),男,福建莆田人,副教授。研究方向:電子測(cè)量?jī)x器及通信工程。