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功能的远程人体生理参数监护仪。