摘要:FT311D接口芯片为Android手机或平板电脑供给了USB转外部UART、GPIO、PWM、I2C、SPI硬件接口功用。本文介绍了FT311D的硬件特色及其在Android渠道下的软件开发办法。试验标明,根据FT311D的Android设备USB转外部接口计划硬件规划简略,软件开发便利,可广泛运用于物联网、车载体系、POS机、智能医疗保健仪器设备等。
导言
现在,移动商场现已急剧地改变了IT职业的格局,商场正在向智能手机和平板电脑等移动核算设备歪斜。因而,许多传统的PC软件的开发也正在迅速地向移动渠道搬迁,Android智能手机和平板电脑移动设备逐渐成为重要的核算运用渠道。
因为考虑体系硬件体积、功耗、本钱等要素,除了常用的USB接口外,根据Android的智能手机或平板电脑往往缺少硬件拓宽接口,这某种程度上约束了这些智能移动设备与物理国际的信息交互才能,例如外界传感器数据的获取,外部履行设备的操控和在车载体系、POS机、智能医疗保健仪器设备中的运用等。
FT311D接口芯片能为Android手机或平板电脑供给USB转外部UART、GPIO、PWM、I2C、SPI等硬件接口,无需装置USB驱动,全面兼容USB 2.0接口,不需要软件移植,不受Android操作体系升级的影响,只需装置对应的APK就能完成数据通讯,这有利于处理Android移动设备硬件接口的扩展难题。
本文介绍了根据FT311D的Android移动设备的USB转外围硬件接口拓宽计划,首要内容包含FT311D的硬件特色及其在Android渠道下的软件开发办法。
1 FT311D接口芯片
FT311D芯片是由美国FTDI公司研发出产的面向Android移动设备的USB转外部硬件接口处理计划。FT311D芯片直接集成了USB通讯协议栈,它别离支撑USB转UART、GPIO、PWM、I2C、SPI。FT311D芯片体系功用如图1所示。
当FT311D的外围接口装备为UART串口形式时,该接口作为具有流操控的根本异步串行UART端口运用。FT311D的UART支撑的波特率为300~921 600baud。其I2C总线主控端接口能够连接到支撑125 kbps的I2C总线从控端接口。别的通用接口GPIO能够装备为供给多路脉冲宽度调制(PWM)输出信号,这些输出可用于操控电机、制动器、传感器、DC/DC转换器或AC/DC电源的PWM信号以及玩具、照明运用、家用电器和工业设备等。
图2为FT311D芯片引脚界说,FT311D体系原理框图如图3所示,首要引脚的功用略——编者注。
FT311D别离支撑UART、GPIO、PWM、I2C、SPI硬件接口,详细接口类型由CNFG2、CNFG1和CNFG0引脚决议。接口的类型界说及其对应引脚略——编者注。
2 软件开发
根据Android开发渠道的软件开发,FT311D硬件接口运用程序首要包含两部分,即用户层User Layer和接口层Layer,详见图4。
用户层面向高层运用程序开发,程序员不需要过多考虑Android设备与FT311D接口芯片通讯的详细细节,只需要凭借相应的用户函数即可完成USB转GPIO/UART/I2C/SPI/PWM接口的驱动程序规划。而接口层则详细来履行用户层供给的API函数功用,完成FT311D与Andoid体系间的USB通讯功用,触及详细的通讯协议和数据包格局等。FTDI公司供给了用户层和接口层的Java类文件,能够很便利地编译到用户的运用程序中。
3 体系运用开发实例
接下来首要介绍FT311D作为UART串行通讯接口时的驱动程序开发办法。在实践开发运用中,根据Android手机开发环境,FT311D硬件串口驱动软件开发的着力点是UART Layer的API函数的正确运用。与图4相似,图5是UART串行通讯驱动程序框图。图6为根据FT311D串行口,Android平板电脑与桌面PC串行通讯试验实物图。
3.1 FT311-UART Layer
FT311-UART Layer供给了UART接口类的用户API函数。
3.1.1 SetCofig函数
函数SetConfig(int baudRate,byte dataBits,byte stopBits,byte parity,byte flowControl)的功用是设置串行通讯帧格局包含通讯波特率、中止位、校验位等,在运用串口前,必须先运用该函数来进行正确的设置。
baudRate波特率:最小是300,最大值是921 600,默认值是9 600。
dataBits数据位:7位或8位。
stopBits中止位:1或2位。
Parity校验位:0代表没有校验;1为奇校验;2为偶校验。
flowControl流控:0为没有,1代表有流控。
3.1.2 SendData函数功用
Send Data(byte numBytes,char[]buffer)向FT311DUART串行口发送数据。其间numBytes是发送的字节数,最大值是256;buffer是所发送数据的地址指针。
3.1.3 ReadData函数功用
Read Data(byte numBytes,byte[]buffer,byte[]actualNumBytes)从FT311D UART串行口读取数据。
numBytes是接纳的字节数;buffer是所发送数据的地址指针;actualNumBytes是实践接纳到的数据个数。
3.2 FT311D串口通讯代码示例
根据上述API函数,示例代码首要包含FT311D串行口装备、数据发送与接纳。