安卓移动设备外部通信接口板的设计
2017-05-09何诚刚
何诚刚
(西安交通大学 城市学院电气与信息工程系,陕西 西安710018)
安卓移动设备外部通信接口板的设计
何诚刚
(西安交通大学 城市学院电气与信息工程系,陕西 西安710018)
文中基于FT311D芯片提出了一个安卓移动设备外部接口通信板的详细设计方案,该方案能够将安卓智能手机、平板电脑与具有UART、GPIO、PWM、I2C、SPI等硬件接口的外部设备连接,实现安卓设备与这些外部设备的通信,实验结果表明,该方案具有电路设计合理、软件界面友好、使用方便、实用价值高等特点,可广泛地应用于新产品开发与调试、物联网、生物医电等领域。
安卓系统;FT311D;USB接口通信;FT311D APP协议栈
随着智能手机、平板电脑以及移动互联网的普及,在越来越多的领域,人们希望利用这些设备与外部硬件或者其它设备连接,例如,产品开发工程师希望利用手机、平板电脑代替传统笨重的笔记本电脑,以使手机通过UART、SPI、I2C等接口来调试和测试硬件,消费者希望利用手机与物联网、车载系统、POS机等连接以获取相关的数据,但是,众所周知,安卓是手机、平板电脑等产品的主流操作系统,在安卓系统的手机、平板电脑下扩展UART、SPI、I2C等硬件接口十分困难,需要外部设备提供USB主机电路以便与安卓设备的USB从机接口通信,并且在安卓设备上需要安装特殊的USB驱动程序[1],尽管谷歌在安卓3.1以上的版本中提供了安卓开放附件 AOA (Android Open Accessory)简化了安卓设备通过USB接口与外部硬件通信方式,不需要在手机上安装特殊的USB驱动程序,但在外部设备上复杂的硬件和软件仍然给安卓设备与外部设备的通信带来了很大的不便,近来,英国飞特帝亚公司(FTDI)的FT311D以及FT312D芯片为安卓设备与其它硬件设备的连接提供了可能,FT311D提供了丰富的硬件扩展接口,使用FT311D不需要在安卓系统中安装特殊的USB驱动程序,也不需要在外部硬件设备上增加USB软硬件,只需在安卓设备上安装APK应用就可以很方便地与外部硬件设备通信。
1 FT311 D介绍
图1是FT311D的内部方框图,FT311D芯片除可以提供USB主机接口与安卓设备连接外,还提供丰富的硬件接口与外部硬件连接,FT311D能够提供UART、I2C、SPI主从、GPIO、PWM等6种硬件接口与外部设备通信[2]。
图1 FT311D方框图
图2是FT311D的引脚示意图,FT311D采用3.3 V供电,时钟频率12 MHz,其中引脚12、14、15用于定义芯片工作模式,即向外部提供6种接口的哪一种,引脚23、24、25、26、29、30、31为7个输入输出引脚,不同工作模式下其作用不同[2],引脚17、18用于USB接口数据传输,引脚32用于外接发光二极管显示USB接口传输状态,外部晶振与引脚4、5相连,提供FT311D所需外部时钟,其余引脚为电源、接地或测试引脚。
图2 FT311D引脚示意图
表1列出了FT311D不同工作模式的定义方法以及不同状态下7个输入输出引脚的功能,FT311D为一次性编程芯片(OTP),在出厂前内部已经刷入FTDI官方固件,用户在使用时不需要在外部设备上增加电路与软件,通过相关硬件接口的输入输出引脚与FT311D连接即可实现与安卓设备的通信,在安卓客户端,用户打开APK应用程序即可控制及测试外部硬件设备[2]。
表1 FTD311外部接口模式配置与IO口功能
2 安卓外部接口通信板的设计
FT311D芯片所提供的丰富的外部接口资源可以使用户非常方便地将手机、平板电脑等设备与外部各种接口的硬件连接,以下给出一个完整的安卓移动设备外部接口通信板的设计方案,该方案的电路原理图如图3所示。
图中USB插座J3用于外接5 V电源适配器或移动电源给安卓移动设备、FT311D以及外部设备供电,三端稳压器U3LM1117-3.3用于将+5 V电压转换为FT311D所需的3.3 V电压,USB插座J2用于提供USB主机端口与安卓设备相连,拨码开关SW1用于设定 FT311D 的工作模式,二极管阵列CM1293A-02SR是安森美公司生产的轨至轨防静电保护二通道二极管阵列,用于防止静电感应(ESD)对USB数据传输和通信板硬件的破坏,当正向ESD到来的时候,内部连向+5 V的二极管导通。当负向ESD到来的时候,内部连向GND的二极管导通,从而快速泄放静电感应电压,CM1293A-02SR可提供±8 000 V电压的防静电保护[4]。电路图中指示灯D2为供电电源指示灯,D1可以显示整个电路的工作状态,当USB接口数据传输出现故障时,D1指示灯闪烁,当USB接口数据传输正常时,D1指示灯常亮,当安卓设备系统中缺少AOA附件时,D1指示灯熄灭,插座J1引出芯片的所有功能管脚,方便与外部设备连接和进行可靠的信号传输,该接口通信板支持USB2.0全速率数据传输。
图3 安卓移动设备外部接口通信板原理图
图4 PWM工作模式示例
图 4是安卓移动设备外部通信接口板通过PWM接口与外部硬件连接的示意图,将拨码开关置于PWM方式时(引脚12、15接地,引脚14断开),FT311D此时可以提供四通道PWM波输出,所有通道的PWM信号具有相同的信号周期,安卓应用程序可以独立设置每一路PWM信号的占空比,将安卓移动设备外部通信接口板 J1插座的 IOBUS0、IOBUS3分别与外部的发光二极管以及直流电机控制器相连,通过手机上安装的PWM安卓驱动应用软件控制PWM输出信号的周期和占空比就可以实现对发光二极管亮度以及直流电机转速的控制。
3 安卓应用软件编程
FTDI公司为每一种接口模式都设计了简单的通信协议,该协议采用简单的两层协议栈模式,协议栈如图5所示[5]。
图5 FT311D安卓应用编程协议栈
该协议栈上层为用户层,下层为接口层,用户层的软件设计不需要关注安卓设备与FT311D之间的USB接口通信,只需要关注FT311D不同外围接口功能的实现以及软件用户界面的设计,而后通过调用接口层不同的接口类函数就可以完成安卓设备通过FT311D与外部硬件设备的通信,接口层则完成FT311D不同接口类函数的实现,通过接口类函数执行用户层的API函数,实现安卓设备与FT311D的USB接口通信并控制FT311D与外部连接硬件接口间的通信,该层定义了接口间的命令以及数据传输格式,FTDI公司还提供了每一种接口在Eclipse开发环境下的Java库文件,方便用户编程时使用。下面以FT311D的PWM接口为例说明安卓客户端软件的开发,FT311D PWM接口用户层提供了PWM接口类的API应用函数,包括SetPeriod(int period)、SetDutyCycle(byte pwmChannel,byte dutyCycle)以及Reset()函数,函数SetPeriod(int period)用于设置PWM 信号的周期,int period为具体的周期值,FT311D的PWM信号周期可以在1~250ms范围内以 1 ms的步进设置, 函数 SetDutyCycle(byte pwmChannel,byte dutyCycle)用于设置不同的PWM通道的占空比,其中 byte pwmChannel用于定义FT311D的PWM接口通道号,byte dutyCycle用于定义该通道的占空比,占空比可以在5%~95%的范围内以1%的步进设置,Reset()函数用于发送Reset命令以便将PWM接口复位为初始默认状态,此时PWM通道输出的信号周期为1 ms,占空比为0。而在PWM接口层,FT311D PWM接口协议栈接口层规定数据以4个字节为一帧进行发送,其中第一字节为传输用户PWM命令,第二字节发送PWM通道号,剩下两个字节发送该命令的具体参数,下面以PWM接口为例给出FT311DAPI函数编程示例[5]。
图6是基于上述API函数生成的安卓手机PWM应用截图,从图中可以看到通过手机可以非常方便地设置PWM信号的周期、占空比、通道号等参数[6]。
图6 安卓PWM.apk应用截图
4 结束语
基于FT311D芯片设计的安卓移动设备外部通信接口板,无需在安卓设备上安装驱动程序,无需在外部设备上进行复杂的软硬件二次开发,在安卓移动设备与外部设备间建立了便捷的通信通道,实验结果表明,该通信接口板具有电路设计合理、软件界面友好、成本低、实用价值高等特点,可广泛地应用于新产品开发与调试、物联网、生物医电等领域。
参考文献:
[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协议实现Android设备的USB通信[J].电子技术应用,2013(9):31-33.
[8]彭凤凌,庹先国,王洪辉,等.Android手机与内网PC通信系统的设计与现实[J].计算机工程与设计,2013(7):2333-2337.
[9]李光明,孙英爽,党小娟.基于安卓的远程监控系统的设计与实现[J].计算机工程与设计,2016(2): 556-560.
[10]杨海,赵文涛,张乃千,等.基于Android的自主可控即时通信系统的设计与实现[J].电子设计工程,2015(6):67-70.
[11]张佳进,陈立畅,杨晓东,等.Android手机串口调试助手设计与实现 [J].电子设计工程,2015(2): 138-140.
[12]雷楚奇.对安卓开发相关技术的研究[J].电子技术与软件工程,2015(24):74.
[13]张兵,唐爱东.基于安卓的通信电源监控系统的研发[J].电源技术,2016(40):7.
[14]林粤伟,宋丹.基于Android手持设备的智能家居遥控系统研制[J].电子产品世界,2015(6):37-39.
[15]舒俊,李永忠,刘彬彬.Android手机低功耗GPS导航软件设计与实现[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稿件编号:201512210
何诚刚(1968—),男,福建莆田人,副教授。研究方向:电子测量仪器及通信工程。