基于ARM架构的监护系统的研究与设计
2010-10-28
1 引言
随着我国经济的快速发展、城市化进程的日益加速、人们生活节奏的不断加快,越来越多的人们开始感到自己的健康每况愈下,很多人直至病情突发才明白。据报道,我国绝大多数人都处于亚健康状态。随着现代电子技术的发展,16/32位CPU的广泛应用,传统的生理信号监护仪的CPU系统也在逐渐的由8位 CPU向更高位数的处理器发展。随着监护仪功能的强大,对数据处理速度的要求越来越高,使得8位CPU的发展受到了限制,16/32位CPU可以在远高于 8位CPU的时钟频率下正常工作,数据一次性吞吐量大,处理器的价格却在下降,16/32位CPU开始被广泛应用于生理信号监护仪中。
该监护系统采用了ARM7系列芯片中的LPC2292嵌入式微处理器,主要用来测量人体的生理参数,如:心电图、血压、血氧饱和度、体温等。因为系统需要采集、处理大量的数据信息,而在CPU上用单任务的软件来处理这些数据信息是很难的,甚至是不可能的。因此在设计中选用可同时处理多任务的 μC/OS-Ⅱ操作系统。其提供了安全可靠的操作系统平台,缩短了开发周期。
2 系统硬件设计
ARM 7系列芯片LPC2292最小系统如图1所示:
系统的总体结构框图如图2所示:
由图2可看出整个系统以ARM 7系列芯片LPC2292为核心,在其外围扩展一些外围电路,从而实现了对人体生理参数:心电、血压、血氧饱和度、体温的安全检查。系统通过心电模块、血压模块、血氧饱和度模块、体温模块采集人体的生理参数、调理电路对这些信号进行滤波和放大,LPC2292自带的A/D转换器将传输过来的模拟信号转换为数字信号,最后人体的各参数指标通过LCD显示。
2.1 ARM系统模块
ARM系统是这个系统的控制中心,主要完成运算、控制、管理等工作,是系统工作的核心模块。该系统采用的ARM 7系列芯片LPC2292,他是基于一个支持实时仿真和跟踪的16/32位CPU,并带有256 kb嵌入的高速FLASH存储器。128位宽度的存储器接口和独特的加速结构使2位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16 位Thumb模式将代码规模降低超过30%,而性能的损失却很小。由于LPC2292的144脚封装、极低的功耗、多个32位定时器、8路10位ADC、 2路PWM通道以及多达9个外部中断使他们特别适用于医疗系统、汽车、工业控制应用以及容错维护总线。
2.2 LCD显示模块
LCD显示模块主要完成数据显示、输出数据与显示数据的同步等功能。由于LPC2292中没有液晶控制器的功能模块,如果所选择的液晶屏内部也没有液晶控制器,那么,要使CPU可以对液晶进行控制,就必须加设计一个液晶驱动控制电路。因此本系统中选择自带控制器的液晶屏HLM6323。他是5英寸伪彩液晶屏,像素是320×240点阵,每个点需要RGB三色数据,每种色需要1个字节数据表示。而设计要求需要连续观看图图像,根据标准需要每秒钟25帧图像,那么每秒至少需要传输数据为25×8×320×240=15 360 000位数据,若选用串行传输,则需要4.6 Mb/s的串行传输速度,但是遗憾的是,没有任何一种串行标准传输大于这个速度,因此,势必需要选择并行的数据传输。
2.3 报警模块
当测得的生理参数,如心电、血压、血氧饱和度、体温超过预设的正常值,则产生报警,提醒患者赶紧进行治疗或医护人员需进行抢救措施。
2.4 FLASH数据存储器以及USB接口
为了能够确保实时数据的保存,以及提取,从而设计此模块。本系统中选择NAND08GW3D2系列的存储器芯片。由于该芯片不同存储密度器件引脚一致,因此系统可以在电路不做改动的情况下升级为高容量存储器件。通过USB设备接口芯片ISP1161A1扩展出一个USB的设备接口。通过该USB接口,可以实现将监护系统记录的数据上传到PC机,PC机也可以通过该接口下载程序到LPC2292处理器的存储器中。
2.5 系统电源
电源设计是一个系统设计中的关键部分,对于整个系统,一个稳定的、具有一定功率的电源和合理的电源管理是必不可少的。本系统有以下几种电源:CPU 的内核数字和模拟电源电压+1.8 V,CPU的I/O口数字和模拟电源电压+3.3 V、总线的隔离电源、LCD的驱动电源、LCD的背光逆变电源、其他外围设备电源电压+5 V等电源。
3 软件设计
本系统的软件设计主要包括ARM的应用程序的开发和μC/OS-Ⅱ操作系统的移植2个基本部分。ARM的应用程序主要包括LCD显示程序、 FLASH存储程序、USB通信程序、键盘扫描程序、A/D程序和报警程序等。μC/OS-Ⅱ操作系统是协调LPC2292对程序的任务管理和调度。整个系统的软件流程图如图3所示。
3.1 LCD驱动软件的设计思想
LCD驱动软件的功能是完成数据最终输出显示,其主要软件流程有数据的收发、LCD上按键的读取、LCD扫描等。数据收发是为了完成数据与CPU、 LCD液晶显示器进行数据的传输,CPU通过驱动芯片向LCD输送数据,而LCD要向CPU返回响应数据等。为了增强人机界面的可读性,在LCD上设置了几个按键,当有按键反应时,应当向CPU发出相应的响应,并且可以通过按键对LCD的显示界面设置和对其他系统参数进行设置。LCD的扫描是为了保证显示不出现明显间断、不出现花屏现象,在出现花屏现象时能够进行准确的错误响应。其中的按键设计没有给每个按键使用硬件中断,因为在本系统中,LCD显示驱动的任务优先级在应用程序中是最高的,按键统一使用一个硬件外部中断,然后用软件对按键进行软件中断安排,确定软件优先级;另一个原因由于按键较多,没有足够的硬件中断设置为按键中断,如果设置为中断扩 展,除了要进行硬件的扩展,还要进行软件扩展,将浪费很多资源。
本设计中,LCD的驱动需要编写2个文件,其中一个是C语言文件,另一个是C语言头文件。C语言文件是通信接口协议文件,需要与其他模块进行数据的交换。而头文件是设计一些LCD基本参数,在系统运行中,这些参数基本不变。
3.2 USB通信软件的设计思想
本系统设计的USB通信软件通过中断响应来实现,这样做的目的是CPU在没有USB设备或者不需要USB设备时,可以进行其他工作,节省CPU和操作系统的资源。其有利于保护CPU。
3.3 FLASH读写操作软件的设计思想
整个程序文件包括芯片的擦除、芯片的写入和读取、数据的效验等几个部分。擦除是为了存储器能够进行重复利用而不更换芯片;芯片的写入和读取是整个文件的中心,负责存储器的数据的写入,在适当时候要读取数据;效验是为了保证数据的正确,在错误时需要报警。
本设计中,存储器有3个存储器地址入口,所有的数据都需要经过这3个地址入口,因此,必须保证此3个地址入口在任何时刻都没有与其他地址发生地址交叉的状况。
3.4 μC/OS-Ⅱ操作系统的移植
μC/OS-Ⅱ实时操作系统是一种可移植、可固化、可裁剪及可剥夺型的多任务实时内核(RTOS),适合应用于各种微处理器和微控制器。其性能足可以媲美于各种商用内核,在某些方面表现更佳。所有代码都是采用ANSI的C语言编写,故具有良好的可移植性。
μC/OS-Ⅱ不像其他实时操作系统,他提供给用户的是一个标准的API函数,程序开发人员利用操作系统提供的API函数进行应用程序的开发。要想在 μC/OS-Ⅱ内核上进行应用程序的开发,就需要程序开发人员在实时内核基础上建立自己的实时操作系统。首先,把μC/OS-Ⅱ移植到自己的硬件目标板上,写出相应的驱动程序以及用户图形界面等;在这些接口函数之上,加上用户自己的应用程序,就构成了嵌入式软件。
μC/OS-Ⅱ的移植条件是:处理器C编译器能产生可重入型代码;处理器支持中断,并能产生定时中断;用C语言可以开、关中断;处理器支持一定数量的数据存储硬件堆栈;处理器有将堆栈指针及其他CPU寄存内容读出,并保存到堆栈或内存中的指令这5个方面的要求。Philips公司LPC2292芯片和 ADS1.2的C编译器一起可以满足上述5个条件,因此本设计是完全可以移植操作系统,以提高系统的功能。
μC/OS-Ⅱ软件的体系结构如图4所示:
虽然μC/OS-Ⅱ大部分源代码是用C语言写的,但是完成和处理器有关的一些代码时,还是必须要用汇编语言来实现的。寄存器的读、写只能通过汇编语言的存储和加载指令实现。
移植μC/OS-Ⅱ到一个新的体系结构上需要对如下3个文件进行修改:
(1)c语言头文件OS-CPU.H;
(2)C语言源文件OS-CPU.C;
(3)汇编源文件程序OS-CPU-A.ASM。
4 结语
该人体生理参数监护系统在基于ARM7微处理器的硬件平台上实现,采用当前流行的μC/OS-Ⅱ实时多任务操作系统,能实时检测用户的心电、血压、血氧饱和度和体温,并能对其进行数据分析,当出现异常时,能自动报警使用户得到及时救治。该系统可扩展性比较高,可根据需要直接在该系统上进行扩展,使其具有 GPS,GPRS,CDMA功能的远程人体生理参数监护仪。