朱凌云;李世星
【摘 要】For monitoring the working status and battery level of implantable cardiac pacemakers by remote wireless communication , it is very necessary to develop reliable wireless monitoring terminal .In hardware framework which uses S3C2440 of AM9 embedded system as the control core of the terminal , U-boot is selected to boot the operating system startup , and the Linux kernel is transplanted and cut accordingly . To deal with the problems of data processing and wireless transmission which is derived from high sampling rate of pacing signal , the pacing ECG data compression method in embedded condition based on improved LZ 77 algorithm, the multi-threading optimised processing in Linux and the data encryption technology based on RC 5 are emphatically studied .The QT program is employed to develop corresponding interperson-al interaction procedures , and the entire software system is implemented .Experimental results show that this embedded software can achieve pacing ECG real-time data acquisition , storage and remote wireless t
ransmission , has a good human-computer interaction , and meet the needs of remote wireless monitoring of cardiac pacemakers .%为实现心脏起搏器工作状况与电池电量的远程监测,研制可靠的无线监测终端非常必要。在以AM9嵌入式系统S3C2440为终端控制核心的硬件框架下,采用U-Boot来引导操作系统的启动,并对Linux内核进行了相应的移植与剪裁;针对起搏信号高采样率给系统带来的数据处理和远程传输困难,重点研究基于LZ77改进算法的嵌入式环境下的起搏心电数据压缩、Linux下的多线程优化处理和基于RC5的数据加密技术;利用QT开发了相应的人际交互程序,并实现了整个软件系统。实验结果表明:该嵌入式软件能够实现起搏心电数据的实时采集、存储与远程无线传输,具有良好的人机交互功能,能够满足远程无线监测心脏起搏器的需要。 【期刊名称】《计算机应用与软件》
【年(卷),期】2013(000)009
【总页数】5页(P119-122,166)
【关键词】嵌入式软件系统;心脏起搏器;远程监测;数据压缩;数据加密
【作 者】朱凌云;李世星
【作者单位】止痒沐浴露重庆理工大学计算机科学与工程学院 重庆400054;重庆理工大学计算机科学与工程学院 重庆400054
【正文语种】中 文
【中图分类】TP311.52
对于严重心动过缓、房室传导阻滞等心脏病人而言,植入心脏起搏器是可靠的医治手段。心脏起搏器植入人体后,需对其工作状况与电池电量随时进行监测。否则,可能由于起搏器工作紊乱、与自主心律不相适应或电池电量枯竭导致生命危险。现有的监测方法,如24小时Holter检查以及基于电话网的远程监测方法等,存在实时性较差、数据传输失真、病人活动范围受限等问题。随着嵌入式计算机和移动通信技术的发展,利用移动无线通信实现病人的远程实时监护日益到人们的广泛重视[1]。特别是在欧美和日本规避了移动通信终端与心脏起搏器的推介安全距离之后,利用通过移动数据通信网,可将病人的起搏心电信息远程传输给医院的中央监护工作站,从而实现心脏起搏器的远程实时监测,这无疑是对现有植入式心脏起搏器监测技术的巨大提升[2-4]。
文具盒生产过程在整个起搏器远程实时监测系统中,无线监测终端将及时为系统提供重要的数据源,实现植入式心脏起搏器的数据采集、原始数据存储、远程实时传输以及人机交互等功能,其性能好坏直接关系到整个系统的可靠性与有效性。本文以AM9嵌入式系统S3C2440为核心硬件框架下,在操作系统的内核移植与剪裁的基础上,通过对起搏器无线监测的关键软件技术——起搏心电数据压缩、嵌入式多线程处理、起搏数据加密的研究,设计和开发了相应的无线监测终端的嵌入式软件。
起搏器远程无线监测终端需要实现包括数据采集、压缩、检测、传输以及人机交互等多项功能,因此需要较强的硬件支持环境。同时,为便于用户携带和使用,还需考虑其便携式、体积小、低功耗等特点。图1为远程无线监测终端的总体框架图,该终端以三星公司的AM9嵌入式系统S3C2440为核心模块,其主频高达533 MHz,运算能力为200MIPS,扩展了64 M的SDRAM和256 M的Nand Flash,并支持NAND Flash存储器启动;利用AM9内部集成的8通道10位AD转换模块实现起搏心电数据的模数转换,采样频率设计为4 000 Hz;通过串口与GPRS无线传输模块华为EM310相连接,以实现数据的移动无线传输。其他硬件配置设计还包括电源模块、SD卡存储模块、触摸屏与LCD显示等。上述设计保证了起搏心电数据采集、存储、远程传输、显示等主要功能的基本硬件配置。
对于采样频率为4 000 Hz的嵌入式无线监测终端而言,在上述硬件框架下,数据量的增加对嵌入终端的软件系统相应的操作系统配置与裁剪、数据的实时处理与存储、软件的实时交互与远程通信能力等方面提出了更加苛刻的要求,因此,研究与设计效率更高、功能更强、实时性更好的嵌入式软件系统非常必要。
2.1 U-Boot启动分析及移植
嵌入式系统在正常启动过程中,首先运行的是Bootloader,用来引导系统启动的一小段程序,在系统上电时开始执行,初始化硬件设备、准备好软件环境,最后调用操作系统[5]。由于UBOOT遵循GPL条款的开放源码,且具有较高的可靠性和高度灵活的功能设置,是一种比较通用的Bootloader,可以支持多种操作系统,支持多种架构的CPU,所以采用U-Boo t作为系统的BootLoader来引导操作系统的启动。
2.2 嵌入式Linux系统的移植
2.6.4版的ucLinux可支持更多的平台系统,由于使用了新的调度器,进程的切换更高效,其内核可被抢占,使得用户的操作可以得到更快速的响应。最重要的是较之以往内核,它
采用POSIX兼容的NPTL线程库,引入了新的线程模型,管理线程的能力大提高[5]。因此,系统以Linux 2.6.4作为内核。其移植主要包括:
①修改内核以支持S3C2440系统:修改顶层Makefile,指定系统硬件架构和所用的交叉编译器;修改arch/arm/machs3c2440/mach-smdk2440.c里的时钟频率,使其与2440的固有频率一致等。
②修改内核使其支持支持NandFlash:修改MTD设备分区,使得内核可以挂接NAND Flash上的文件系统。修改Kconfig文件,在driver/mtd/nand/Kconfig添加上相应的Nand Flash支持功能,设置其容量大小。超滤器
③支持yaffs2文件系统:在给内核打上yaffs2文件系统的补丁后,为Makefile文件和Kconfig文件增加yaffs2的设置与编译条件;再配置内核,选中“YAFFS2 file system support”以支持相应的文件系统,其它配置项使用默认值。最后执行“make zImage”编译内核,即可同时支持NandFlash和yaffs2系统,并能将内核烧入至NAND Flash中。
智能调度系统④移植通用设备驱动程序:Linux2.6.4内核具有较完善的驱动,能支持常用的主机与外设。
对于某些具体的设备,需要进行驱动的简单修改。根据嵌入式无线监测终端的需要,主要完成了LCD、DM9000、SD卡、RTC、USB等设备及模块驱动的移植。
2.3 ADC驱动程序的设计与实现
仿形切割机
模数转换器ADC位于硬件框图中的心电检测传感器SENSER与ARM9之间。其功能为:在既定的采样频率与采样精度下,将起搏心电模拟信号转化为嵌入式计算机所需的数字信号。由于Linux中不具有ADC模块的驱动程序,需要对其自行设计与配置。ADC在Linux中属于字符驱动设备,可按如下方法进行设计:
首先对ADC进行初始化的。该过程在ADC_Init()函数中完成,需对ADC转化延时、触发方式、Standby模式、AD通道方式、ADC转换频率等进行设置。AD转换触发方式通过读操作来启动,在ADC_READ()函数中完成,主要实现内容为:
印刷制版机
再定义如下的系列函数实现设备的注册、文件的读写,并与file_operations结构体中的对应函数关联:sxing_adc_read()、sxing_adc_write()、sxing_adc_ioctl()、sxing_adc_open()、shixing_ adc_release()。
将代码放入内核drivers/char子目录下,在drivers/char/Makefile中增加:
在内核根目录下执行“make modules”,会生成模块.ko文件,将其放至根文件系统的/lib/modules/2.6目录下,即可使用insmod、rmmod命令进行加载和卸载。在执行完insmod后,会在/dev目录下生成sxing-adc节点,直接打开该文件,即可读出转换数据。
3.1 起搏心电数据压缩
起搏器无线监测终端的数据采集为3通道,采样频率高达4 000 Hz,采样精度为10位,并用串口控制GPRS模块进行起搏心电数据的远程无线传输送。按照上述设计要求,监测终端每秒采集的数据量就高达15KB/s。鉴于串口的通信速率及GPRS的上传速率的限制,再加上数据传输的经济性,必须在S3C2440嵌入系统中对起搏心电数据进行有效的压缩。