EEPW首页 > 商机频道 > 安赛卓尔电子科技 > 新闻 > 基于AM335X开发板和Linux的心电监护仪设计

公司信息

安赛卓尔电子科技
所在省:江西
所在市:南昌市
店铺地址:http://ec.eepw.com.cn/
mfmember/index/userid/37077

推荐产品

imx6开发板IMX6-EK200
价格:890元
imx6核心板
价格:480元

联系我们

安赛卓尔电子科技
电话:0791-85260486
邮箱:1756282429@qq.com
地址:江西省南昌市西湖区八一大道长运商贸城B座014室
基于AM335X开发板和Linux的心电监护仪设计
来源:aczool   时间:2013-01-20

引言

随着人们生活节奏加快,人口逐渐老龄化,心脏疾病成为危害人类健康和生命的主要疾病之一。心电监护系统为心脏病人诊断和治疗提供了一个有效的手段,对心脏疾病的防治和诊断具有重大的意义,本介绍一种基于Linux 和MiniGUI 的心电监护系统,能够满足患者随时随地对心电进行方便快捷的监测,及时地发现异常情况并采取有效的措施,从而更好地保护人们的身体健康。

1 硬件系统设计

本系统采用TI Cortex-A8 AM3354处理器作为控制中心,AM3354 是32 位RISC 嵌入式处理器,最高主频可达720MHz,提供256MSDRAM、256M Nand Flash 以及2M Nor Flash 的存储设备,独立的32kB 指令缓存和32kB 数据缓存,带 NEON 协处理器、带 24 位 LCD 控制器和触摸屏控制器,分辨率高达 2048*2048、带 2 个具有集成 PHY 的 USB2.0 高速 OTG、最多支持 6 个 UART、集成 2 个工业用千兆以太网 MAC(10/100/1000MHZ) 、多达 2 个控制器局域网(CAN)端口,支持 CAN2.0 A 和 B、集成 2 个 PRU 模块、2 路多功能音频通道、多路 SPI、IIC、定时器、PWM、DMA、RTC 等常用外设、自带 SGX530 3D 图形加速引擎、具有高性能、超低功耗、高性价比等特点,主要用于视频会议、网络监控,GPS 定位/导航仪、工业控制等,特别是医疗电子设备。系统的整体硬件结构如图1 所示,能够实现对心电信号采集、处理、显示、存储等功能。

2 软件系统设计
2.1构建嵌入式Linux
心电界面的开发是基于MiniGUI 的嵌入式Linux系统。在各种嵌入式操作系统中,Linux以其结构清
 晰、源代码公开、功能强大、又易于移植得到广泛的使用。本系统内核采用2. 6 版本的内核,Linux 2. 6内核在性能、模块支持、可用性、可测量性等方面有大幅度的提高。一个完整的嵌入式Linux 系统主要包括BootLoader( 引导程序) 、内核和根文件系统3个方面。本系统中Bootloader采用ViVi,文件系统采用Yaffs。根据目标平台实际的需要,对引导程序、内核和文件系统进行裁减、配置,最后把编译好的ViVi 以及生成的Linux内核和文件系统的镜像文件烧录到平台中并运行,嵌入式Linux 构建完毕。
2.2图形用户界面MiniGUI
 MiniGUI 是基于Linux 的轻量级的图形用户界面支持系统,是由原清华大学教师魏永明主持开发,遵循GPL公约。所支持的操作系统已不仅仅限于Linux,它还可以在uClinux、uC /OS-Ⅱ、eCos 和Vx-Works等系统上运行。已验证的硬件平台包括Intelx86,ARM ( ARM/AMR9 /StrongARM/xScale ) ,Power-PC,MIPS,M68K( DragonBall /ColdFire ) 等。对MiniGUI 移植,首先下载MiniGUI 的源代码libminigui-1. 6. 10. tar.gz ( MiniGUI 函数库源代码) 和minigui-minigui-res-1. 6. 10. tar. gz( MiniGUI所使用的资源,包括基本字体、图标、位图和鼠标光标) ,然后编译安装并将MiniGUI 的资源拷贝到目标平台上,最后修改目标平台的/etc /MiniGUI.cfg 文件,对目标平台MiniGUI 的运行环境进行配置。
2.3心电采集界面设计
2.3.1 主界面
 MiniGUI 中有3 种窗口类型:主窗口、对话框和控件窗口,心电采集界面是采用对话框进行设计,对话框编程是一种快速构建用户界面的技术,MiniGUI提供了一种基于模板的机制,利用DLGTEMPLATE和CTRLDATA两个结构体来表示,DLGTEMPLATE用来定义对话框本身,结构体CTRLDATA用来定义控件。利用这两个结构体模板,用户可以根据需要在程序中定义自己的对话框和控件。主界面的对话框定义如下:
 static DLGTEMPLATE DlgInitProgress =
 {
 WS_BORDERWS_CAPTION,
 WS_EX_NONE,
 0,0
 , 240, 320,
 " 欢迎使用心电信号采集系统",
 0,0
 ,
 10,NULL,
 0
 } ;
 用CTRLDATA定义对话框中所有的控件并用数组表示,对话框常常使用控件来实现提示或者设置等功能,定义控件数组模型如下:
 static CTRLDATA CtrlInitProgess[]=
 {
 {CTRL_STATIC,
 WS_CHILD|WS_VISIBLE| SS_NOTIF
 |WS_BORDER,
 0,0
 ,240, 30
 IDC_STATIC1,
 “欢迎使用心电信号采集系统”,
 0
 } ;
 {
 …
 };
 …
 } ;
       通过上述方法生成的心电监护仪主界如图2所示。心电采集界面主要有心电数据采集与显示、存
 储、分析等功能,采用多线程编程,为采集、显示、存储、分析各建立一个专门的线程。多线程进行数据采集可以有效地加快程序的反应速度、增加执行的效率。

                                                             图2 电监护仪主界面
在MiniGUI中,使用消息驱动作为应用程序的创建构架。在消息驱动的应用程序中,计算机外设发生的事件都由支持系统收集,将以事先的约定格式翻译为特定的消息。应用程序一般包含有自己的消息队列,系统将消息发送到应用程序的消息队列中。从消息队列中读取这些消息,并由窗口过程函数来处理这些消息。本系统界面通过鼠标键的按击,翻译成特定的消息,若收到的是控件消息,则判断ID,根据应用程序进行相应的消息处理。
2.3.2 心电采集与显示
 心电数据采集采用定时器进行采集和显示,定时器使用SetTimer函数创建,创建时需要指定定时器标识号以及定时时间,当定时时间到达时,定时器将会产生MSG _ TIMER消息,本系统的心电采集频率为200Hz。
 从A/D 寄存器读取三通道的数据存入数组中,并将数组中的数据在液晶显示器上绘出。在MiniGUI中实时绘图采用GDI,GUI 系统的一个重要组成部分就是GDI,即图形设备接口( Graphics Device
 Interface)。通过GDI,GUI程序就可以在计算机屏幕上,或者其它的显示设备上进行图形输出,包括基本绘图和文本输出。所有绘图相关的函数均需要有一个设备上下文,为了提高绘图效率,在这里建立私有设备上下文,所建立的设备上下文在整个窗口生存期内有效,从而免除了获取和释放的过程。利用hdc=GetPrivateClientDC( hDlg) 可获得私有设备上下文。然后调用MoveTo ( HDC hdc, int x, int y)和LineTo( HDC hdc, int x, int y)对数组中的数据进行画线,由于采集到的心电数据较小,因此在对其进行画线之前根据显示区域对所有数据进行适当放大,这样可以使心电波形在液晶显示器上直观显示。
 2.3.3 心电数据分析
 在心电数据显示和分析线程中,由于心电信号容易受到各种干扰的影响,为了滤除心电信号中的干扰成分,首先要进行数字滤波处理,采用FFT滤波和滑动平均滤波的方法使图像得以平滑,并采用差分方法进行R 波检测。当采集到5秒的数据的时候,程序启动心电数据分析线程,对存储在数组中的心电数据进行分析,主要进行R 波检测,并且在液晶显示器上显示。
 2.3.4 心电界面程序的编译
 心电界面程序首先是在PC机上编写的,为了能够在目标平台上运行,必须先进行交叉编译,编译
 如下:
 #arm-linux-gcc -I /home /include-L/home /lib-O2 -oxindian xindian.c -lminigui -lmgext -lm-ljpeg-lpthread-lpng
 这时生成心电界面程序的可执行文件,将其下载到目标平台中即可运行。
 3 结束语
 本文研制的心电监护仪采用高性能的ARM9 微处理器为核心,在其上移植Linux操作系统,并用
 MiniGUI进行心电界面开发,能够对心电信号进行采集、波形显示及处理,实现心电信号的实时监护的目的。该心电监护仪结合了目前现有的心电监护仪的优点,体积小、重量轻,并且具有操作界面简洁、可扩展性强等优点,对各种心率失常及各种心脏病变有较高的诊断价值。

相关产品:
AT91SAM9260开发板、AT91SAM9263开发板、AT91SAM9G45开发板、
AT91SAM9M10开发板、EP9315开发板、AM335X开发板、CIRRUS LOGIC EP9315工控板、 AT91SAM9263工控板、ARM9工业控制板、ARM9开发板、ARM9工控板、TI开发板、ARM9核心板