新闻中心

EEPW首页>嵌入式系统>设计应用> 基于Android的低功耗移动心电监控系统的设计方案

基于Android的低功耗移动心电监控系统的设计方案

作者: 时间:2014-11-26 来源:网络 收藏

  4.终端应用程序设计

本文引用地址://m.amcfsurvey.com/article/266001.htm

  4.1蓝牙数据接收模块设计

  现代社会智能移动终端已经成为人们生活中不可或缺的一部分,而目前大部分以手机为代表智能移动终端都是以系统为操作平台并配置有蓝牙装置,因此为了满足人们日常生活使用的需求以配置有蓝牙的智能移动终端为数据处理和诊断平台来开发应用程。该应用程序以Java语言为主来进行开发。如图3所示为Android设备蓝牙数据接收模块设计。

  图3 Android设备蓝牙数据接收模块框图

  4.2 Android设备蓝牙传输的实现方案

  蓝牙通信采用C / S通信模式。在设计时将接收端(Android设备)的蓝牙作为客户端,发送端(智能电极)蓝牙作为服务器端。

  在蓝牙进行相互连接时,利用了数据通信中常用的Socket(套接字)机制。当两端的套接字相互连接好以后,收发双方的应用就可以将数据发送给自己的套接字,并从套接字处获取数据,双方的套接字则作为连接中转站一样,相互收发数据。下面对Android设备上蓝牙接收软件实现过程详细阐述。

  首先开启A n d r o i d终端的蓝牙功能,Android终端蓝牙设备作为客户端需要主动搜索周围的蓝牙设备。这个搜索过程需要用到广播机制,即搜索发起端需要一个广播接收器,用于接收搜索信息。其建立的具体步骤为,首先定义一个继承BroadcastReceicer的类,用这个类生成的实例就具备了对接收信息的操作能力,可以获取需要的信息,比如蓝牙设备名称和MAC地址。经过设置,该广播接收器只对发现了蓝牙设备这一消息和蓝牙搜索结束这两条消息响应,并且完成了广播接收器在本应用中的注册。用户在使用时,只需要点击“搜索”按钮,终端设备开始搜索周围蓝牙设备,整个搜索过程将耗时12秒。这个过程中,本地蓝牙适配器会搜索到周围所有可以连接的蓝牙设备,将这些搜索结果以列表的形式呈现在屏幕上,供选择。连接开始前,首先关闭蓝牙搜索功能。

  在系统库中有BluetoothSocket类,利用这个类生成相应的实例便是接收端蓝牙的套接字,如果该蓝牙是作为服务器来连接的,则利用系统类BluetoothServerSocket来生成套接字对象。在连接之前需要预先设置好UUID,然后由Android智能终端发起连接请求,这里需要调用BluetoothSocket类中的connect()方法,作为服务器端的蓝牙设备监听到连接请求后会验证其UUID是否与自己的一致,验证通过后便可以完成连接了。需要特别注意的是,在这个过程中,连接过程是一个阻塞调用过程,为不影响主线程的工作,需要一个单独的线程来进行连接工作。

  等待蓝牙连接完成后,便可以进行数据传输。在蓝牙间的数据传输是由蓝牙模块自动按照蓝牙协议栈的要求进行的,而在智能电极端从微控制器到蓝牙模块以及在Android终端从蓝牙设备到应用程序的数据传输都是按照URAT异步串口通信方式进行的数据传输。在设计中所设置的数据传输格式是以一个字节长度为一帧来传输的,其中有7位数据位和1位奇偶校验位共同组成。所以接收端所接收的数据都是以字节为单位来存储的。在这个通信系统中,还加入了对接收数据的另一数据检错方案。数据的收发并不是将采集数据直接转换成二进制的串行数据进行传输的,而是将这些数据转换成所对应的ASCII码再转成串行数据再进行数据的发送,这样在接收端接收到数据后,会将这些数据转为ASCII码,如果这些ASCII对应的不是数字或是已超出ASCII码范围,则认为是错误的数据,将其丢弃。这样做了之后,结合奇偶校验,只有低三位同时有两位都传输错误的数据不能被监测出来,出现这种情况的概率比较小,并且蓝牙传输距离短,传输环境并不算恶劣,这样的检错能力已经足够了。数据接收过程也是一个阻塞调用的过程,所以同样需要一个单独的线程来完成。

  接收到的数据,全部转换为数字的形式(振幅信息)存储起来,供心电图的显示提供数据支持。Android蓝牙传输软件流程如图4所示。

  图4 Android蓝牙传输软件流程图



关键词:TIMSP430Android

评论


相关推荐

技术专区

关闭