0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android应用程序开发及USB数据采集系统的设计

电子设计 作者:电子设计 2018-11-09 09:10 次阅读

随着科技的发展, 嵌入式及移动互联网的应用越来越广泛,二者以其自身的优势在各自领域都占有一席之地。目前基于Android操作系统手机进行移动应用开发非常火热,Android以其源代码开放,硬件选择丰富,无缝结合google 等特点,自发布以来 Android 立刻受到了业界的广泛关注。而嵌入式ARM7 微处理器LPC2142具有较高的集成度和高性价比, 很适合于数据采集系统设计。因此,了解Android平台的组成、系统架构API和应用程序框架,并掌握该平台移动应用的开发方法将为从事移动互联网开发的企业和个人带来非常广阔的前景。

Google 对Android平台的SDK更新很快,目前已发布的平板Android 3.1(API level 12)及以上版本实现了对USB 外设模式和主机模式的支持,并遵循USB2. 0 通讯协议。本文结合两者的突出优点设计了一种新型数据采集系统,以下将详细阐述Android 3. 1平台下的USB 应用程序开发的完整过程,以及与LPC2142之间的USB 通信功能。

1 Android USB应用程序开发

1 . 1 Android 开发框架

Android系统架构由5部分组成,分别是:Linux Kernel 、Android Runtime、Libraries 、Application Frame-work、Applications。

Android开发主要有三种类型( 如图1 所示) :

移植开发和电话系统;

Android应用程序开发;

Android系统开发;

本文中的Android应用程序的开发是在Android系统第三个层次(Java 框架) 和第四个层次(Java 应用)之间的接口之上开发出来的。

Android应用程序开发及USB数据采集系统的设计

图1 Android开发详解

1 . 2 Android USB 接口

Android支持各种USB 外围设备,通过两种模式来支持Android USB外设( 实现了Android外设协议的硬件) :USB 外设模式和USB 主机模式。Android将在新的平板电脑版Honeycomb 3 . 1 和智能手机版Gingerbread 2. 3 .4 中首次支持USB 外设模式,该支持包括一种新的Open Accessory API,含有谷歌提供的一个USB 支持库。而在Android3 . 1 及以上版本才支持主机模式。Android从机设备只能和Android主机设备连接,而主机模式可以连接其他USB 设备,故本设计采用Android3 . 1主机模式连接LPC2142USB 接口。当Android设备处于主机模式时,它扮演USB主机角色并为总线供电。如图2 所示。

Android3 .1(API 12)更新的API为Android开发者提供了应用程序开发直接可用的USB A PI ,这个USB类是在android.Hardware. usb 包下,具体介绍如下:

Android应用程序开发及USB数据采集系统的设计

图2 USB 主机模式

UsbAccessory 本类是针对Open Accessory API设计的。UsbConstants作为USB 常量定义,在Linux内核文件linux/usb/ch9 . h中。UsbDevice获取USB设备的信息,比如说类型、制造商等等。

UsbDeviceConnection 这个是USB 设备传输控制的核心。UsbEndpoint 获取一个USB 终端信息。UsbInt erface USB 底层接口,获取一些信息底层信息,比如说通讯协议,等等。UsbManager USB管理类,它提供了识别和使用的USB 设备和USB 配件通讯方法。应用程序可以获取一个UsbManager实例,然后用于连接的设备或配件清单查询,管理、通信。UsbRequest 核心的USB请求处理类,支持读写操作,以字节数组方式处理一个 UsbEndpoint,

Android12.3提示这个类类似WinCE串口通讯的CreateFile部分,可以进行数据流的读写。

1.3 Android 应用程序组件

Android应用程序由松散耦合的组件组成。各个应用是相互独立的,并运行在自己的进程当中,要进行Android的移动应用程序的开发,开发人员需要熟悉以下几个基本组件:

Activity(活动) 应用程序中每个屏幕都是Activity类的扩展,活动使用视图来形成显示信息和响应用户动作的图形界面。Broadcast Receiver(广播接收器) 通过创建和注册广播接收器,应用程序可以监听到那些匹配特定的过滤标准的广播。Intent( 意图) 应用程序间传递消息的框架。View 是Android中图形用户界面的基类,提供可视化界面的展示。

1 . 4 Android 应用程序设计

Android应用程序开发是由Java语言实现的,具体是由Google为开发者提供的一些类和接口组成。本设计主要用到USB 类、数据存储SQLiteDatabase类、视图显示SurfaceView 类以及一些Android 小组件类等。程序设计框架如图3。

Android应用程序开发及USB数据采集系统的设计

图3 Android 程序框架

该设计共创建五个Activity来实现人机交互界面,使用户操作起来方便快捷。MainMenuActivity 是主界面,由这一界面可以进入以下三个界面:USBconnect Activity是USB 连接界面,在这个类里实现设置要连接的USB 的端口参数,查找并发现USB 设备,按条件枚举USB 设备,得到连接设备的权限,连接USB设备,终止已连接的USB 设备等功能,如USB 设备连接成功则进入下一界面;USBMonitorActivity 是接收USB 数据的界面,USB 连接成功后,开始接收数据,并把已接收的数据以文件形式存入 SD 卡中;FileListActivity 是显示已存入SD卡所有文件的列表界面,单击文件进入显示波形界面。除了Acti vity ,该程序还注册了BroadcastReceiver( 广播消息) 来接收系统USB 连接消息的通知。同时各个Activity之间的通信是由Intent 实现的,界面的一些按钮、布局等是由View实现的。

2 LPC2142 前端采集平台设计

本设计前端采用ARM7处理器LPC2142作为硬件开发平台,LPC2142是PHILIPS公司生产的基于支持仿真和嵌入式跟踪的32位ARM7TDMI-S内核的CPU ,带有64kB的高速Flash存储器和16kB 的RAM,最高工作频率能够高达60M Hz。同时集成了A/D 、定时器、串口等资源, 与LPC2132 相比最突出的特点就是内置了USB2.0 Device( 全速) 控制器。该芯片内部资源比较丰富, 特别适用于工业控制等嵌人式系统。该设计总体框图如图4 所示。

Android应用程序开发及USB数据采集系统的设计

图4 系统总体框架

2 . 1 A/D 采集接口

LPC2142 包含2个模-数转换器,提供6/14 路模拟输入,每个通道的转换时间低至2.44vs 。具体特性如下:

10位逐次逼近模数转换器6 或8 个管脚复用为输入脚测量范围:0~3 . 3V单路或多路输入的突发转换模式可选择由输入跳变或定时器匹配信号触发转换2个转换器全部启动命令A/D 转换器的基本时钟由VPB 时钟提供,每个转换器包含一个可编程分频器,可将时钟调整至逐步逼近转换所需的4 . 5MHz 。

2 . 2 LPC2142与USB 模块接口

LPC2142 微控制器内部带有一个USB 设备控制器,该控制器支持32个固定配置的物理端点,并完全兼容USB2. 0 全速规范。该控制器嵌于CPU 芯片内部,这样的集成方式不仅使 USB 设备控制器与 CPU 之间的数据交换可以稳定地达到很高的速度,而且提高了芯片的性价比。USB 接口电路如图 5. LPC2142 的P0.27和P0.26 引脚的第二功能控制 USB 数据的传输。Android USB 主机与LPC2142 USB设备之间的通信完全遵循USB2. 0 全速规范,根据规范建立USB 连接的命令流程如图6 。

Android应用程序开发及USB数据采集系统的设计

图5 USB 接口电路

Android应用程序开发及USB数据采集系统的设计

图6 USB 通信命令

2 . 3 应用

该系统能够成功实现Android3.1平板与LPC2142之间的USB 数据通信,传输速率完全满足USB2. 0 全速规范。与传统数据采集系统相比更具优越性,既拥有Android完美的人机交互界面,又兼具LPC2142USB高速采集的优点,具有很强的实用性。为测试该系统运行正常,利用LPC2142发送一组来自麻省理工的心电数据进行测试,为配合Android支持的USB 传输模式,LPC2142 USB按批量传输方式,一次可传送最大包长度为64字节,Android平板也采用批量传输方式,设置的接收时间与LPC2142 的发送时间一致,接收函数是bulkTransfer (UsbEndpoint endpoint,byte[] buffer,int length ,int timeout) 。为说明测试结果,将接收的数据以文件形式存入数据库与原数据进行对比正确,说明测试结果非常标准,测试波形如图7 所示。

图7 心电信号波形图

3 结语

本文介绍了Android平台的系统构成以及基于Android平台平板电脑USB 应用程序的开发和设计,并将这一应用与AMR 平台紧密结合开发出一种新型数据采集系统,即基于Android平台和AMR平台相结合的USB 数据采集系统。可以看出,Android平板电脑在应用程序开发上已与PC相媲美,而ARM7 处理器LPC2142 具有USB 通用串行总线接口,可以进行高速数据采集的处理,该平台具有良好的实用性, 可应用于需要实时高精度测量电参数的领域,而且方便快捷。相信未来随着 Android 技术的不断发展平板电脑应用程序会越来越丰富,应用领域会越来越广。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3849

    浏览量

    125616
  • usb
    usb
    +关注

    关注

    59

    文章

    7418

    浏览量

    257977
  • 数据采集
    +关注

    关注

    38

    文章

    4504

    浏览量

    112310
收藏 人收藏

    评论

    相关推荐

    基于USB总线的高速数据采集系统

    基于USB总线的高速数据采集系统介绍了一种基于USB总线的高速数据采集系统,讨论了USB控制器EZ-USB FX2?CY7C68013?的性
    发表于 04-11 17:20

    基于USB数据采集系统的研究与设计--ResearchandDesignofDataAequisitio

    功能。最后以函数发生器为对象对系统进行测试,从测试的结果中可得出此系统性能良好,能达到设计的预期效果。关键词:UsB数据采集,固件,驱动程序
    发表于 06-10 00:57

    AVR-USB数据采集系统(程序+原理图)

    AVR-USB数据采集系统(程序+原理图)
    发表于 08-17 16:14

    数据采集分享】基于LABVIEW的USB接口高速数据采集的设计

    基于PCI总线的数据采集系统的进一步开发和应用,因此迫切需要设计一种更为简便通用的高速数据采集通信系统来完成
    发表于 12-16 11:32

    Android手机的USB转串口开发

    分析和问题的解决。硬件采用常用的USB转串口模块,既可以用电脑配合串口软件进行数据采集,又可以通过Android手机的USB配合相应的APP进行数据
    发表于 12-06 11:22

    Android手机的USB转串口开发硬件以及软件

    `Android手机的USB转串口开发Android手机的USB接口在各个领域都得到了广泛的应用和推广。笔者前几天接手一个项目,主要就是解决
    发表于 12-06 13:16

    基于ADuC841的USB接口数据采集系统设计

    的信息校正被测光测量位置误差。在XFT-1型开放式傅立叶变换光谱仪中,采用了本文提出的这种简易的USB数据采集系统。考虑到经济、实用因素,系统中采用了单片机和通用
    发表于 12-12 10:23

    基于LABVIEW的USB接口多路高速数据采集系统的设计

    基于PCI总线的数据采集系统的进一步开发和应用,因此迫切需要设计一种更为简便通用的高速数据采集通信系统来完成
    发表于 12-26 07:00

    基于USB总线的高速数据采集系统

    基于PCI总线的数据采集系统的进一步开发和应用,因此迫切需要设计一种更为简便通用的高速数据采集通信系统来完成
    发表于 05-07 09:40

    采用LabVIEW实现USB实时数据采集处理系统设计

    摘要:介绍了以图形化编程语言LabVIEW为应用程序开发平台的USB数据采集处理系统的设计,并给出了LabVIEW对外部动态链接库的调用方法
    发表于 05-28 07:40

    采用LabVIEW实现USB实时数据采集处理系统

    摘要:介绍了以图形化编程语言LabVIEW为应用程序开发平台的USB数据采集处理系统的设计,并给出了LabVIEW对外部动态链接库的调用方法
    发表于 05-31 07:40

    基于USB和多线程的实时数据采集系统

    说明基于USB 技术的实时数据采集系统的硬件、软件实现;重点介绍PDIUSBD12带并行总线的USB 接口器件以及基于多线程思想设计应用程序
    发表于 04-16 09:07 12次下载

    MSP430和CC2500的USB无线数据采集系统

    MSP430和CC2500的USB无线数据采集系统 摘要:设计基于MSP430单片机和CC2500无线收发器的USB无线数据采集
    发表于 04-13 13:25 1565次阅读
    MSP430和CC2500的<b class='flag-5'>USB</b>无线<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>

    基于USB2.0与LabVIEW的高速数据采集系统设计

    计算机对信号进行分析和处理依赖于数据采集,而现有的数据采集卡成本高,接口复杂,不易扩展。采用USB控制器和FPGA为核心设计系统的硬件平台
    发表于 10-17 11:06 130次下载
    基于<b class='flag-5'>USB</b>2.0与LabVIEW的高速<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>设计

    LabWindows CVI在USB2. 0接口数据采集器在开发中的应用

    文章介绍了虚拟仪器软件LabWindows/CVI在USB2. 0接口数据采集器中的应用, 阐述了利用LabWindows/CVI进行USB设备驱动程序访问的方法, 以及在界面
    发表于 07-02 15:37 27次下载
    LabWindows CVI在<b class='flag-5'>USB</b>2. 0接口<b class='flag-5'>数据采集</b>器在<b class='flag-5'>开发</b>中的应用