• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > 基于FT311D的Android移动设备硬件接口拓展设计

基于FT311D的Android移动设备硬件接口拓展设计

录入:edatop.com    点击:

引言

目前,移动市场已经急剧地改变了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串行口配置、数据发送与接收。

 

 

 

 

上述示例显示,基于FT311D接口芯片,面向Android移动设备的USB转外部UART、GPIO、PWM、I2C、SPI接口功能方案,具有硬件连接简单、软件开发方便易行的特点。

结语

FT311D芯片通过USB转多种物理接口的方式拓展Android移动设备的应用领域,进一步增强Android移动系统与外部物理世界的信息交互能力。同时FT311D硬件成本较低,开发方便,无需安装USB驱动,全面兼容USB2.0接口,不需要进行软件移植,同时不受Android操作系统升级的影响,因此以FT311D为核心的Android移动系统硬件接口拓展解决方案是值得推广应用的。

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:基于MIP553的无电解电容高亮度LED驱动电源设计方案
下一篇:部分代码设计- 基于STM32的FSMC接口驱动TFT彩屏的设计方案

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图