四、系统软件设计
软件设计主要包括嵌入式操作系统uClinux在S3C44B0X上的移植,心电数据的采集和存储,基于S3C44B0X的嵌入式GUI的实现,网络设备驱动程序开发等。
4.1、嵌入式uClinux操作系统在S3C44B0X上的移植
uClinux是专门针对无MMU(Memory Management Unit 内存管理单元)的处理器而设计的一种免费开放源代码的操作系统。支持多任务,采取模块化设计。系统移植可分为bootloader和内核的移植两大部分。
Bootloader从本质上讲它不属于系统内核,在CPU上电启动后即开始运行,创立初始化环境和引导内核。这部分代码用汇编语言编写,主要完成硬件初始化,对系统的存储映射(memory map)进行初始化设置等操作,同时改变PC值,使得CPU开始从SDRM执行操作系统的内核。
内核移植时首先RedHat Linux环境下下载源代码文件包建立交叉编译环境,接着进入uClinux-dist文件夹进行内核配置,系统配置主要由三部分组成:Makefile、配置文件(config.in)和配置工具(在/script目录下)。运行make menuconfig命令,会现顶层菜单,选择硬件系统、内核版本和C库的选择,我们在这里vendors选Samsung的S3C44B0X,内核版本为Linux-2.4-x,C库选uClibc。接着要修改源代码,对应于各个硬件的子目录中,例如在uClinux-dist/linux-2.4-x/drivers/修改或增加驱动程序;保存设置退出后运行再执行make dep和make lib_only命令,生成C库;运行make user_only生成应用程序;接着运行make romfs和make image,生成rom文件系统,拷贝内核文件到uClinux-dist/images中;最后运行make,生成可供嵌入式系统运行的内核文件,这时可以在uClinux-dist/images中出现三个文件:含“rom”是压缩内核,含“ram”是直接运行的内核,romfs.img是uClinux的文件系统。“ram”和“rom”文件可以通过超级终端从PC串口下载到嵌入式系统的内存中直接运行,这时超级终端上也将显示uClinux的启动信息。
4.2、基于S3C44B0X的嵌入式GUI的实现
屏幕驱动的程序设计主要是PSD(Pointer to Screen Device)的结构指针,指针所指向的结构中记录了有关的一切属性,根据显示属性判断选择那个子函数来提供有关的显示函数。图形引擎调用PSD完成矩形,圆形等作图函数,这些函数调用底层的屏幕驱动基本作图函数来完成图形显示。
4.3、RTL8019AS驱动程序在uClinux下的实现
在uClinux中,网络接口被看作是一个发送和接收数据包的实体,用一个net_device的数据结构表示,在数据结构中定义对网络接口的各种操作。程序我们是在uClinux网络驱动文件的基础上修改而成,主要修改在/drivers/net下的两个文件:ne.c和8390.c,包括芯片的初始化、收包、网络注册等大部分工作。内核在初始化时会自动调用函数ne_probe(),读取RTL8019AS标识寄存器,检测设备是否存在以决定是否启动驱动程序,配置和初始化硬件,然后初始化net_device结构中的变量,再调用Rtl8019as_init()对RTL8019AS做寄存器的相关设置,最后根据starp的值来启动和关闭RTL8019AS。
五、结束语
针对心电信号ECG极其微弱和极易受到外界干扰的特点,本文的创新点为采用具有低漂移、共模抑制比的仪表放大器AD620对信号进行初级放大,并设计右腿驱动电路以增强信号的抗干扰能力; LCD的引入给人直观的印象和常识性的判断;采集到的数据可通过以太网实时传输到远程数据中心,供专家分析和诊断;嵌入式uClinux的引入保证了系统稳定、可靠的运行;小型化的设计,更有利于患者的携带。随着心血管疾病的发病率不断地逐年上升,这种便携式心电监护仪具有很高的应用价值和良好的市场前景。
参考文献:
[1] 张华和卫星徐栋君陈相朝基于S3C44B0X的便携式心电监测仪的研制 2006
[2] 杨崎刘大茂一种用于心电信号采集接口的调理方法福州大学学报 2003
[3] 唐鸿华,罗贵娥,吕扬生. 基于S3C44B0X的智能仪表以太网接口设计.电子质量.2004.6
[4] 张州基于ARM7的便携式心电监护仪及心电分析的研究 广东工业大学 2005
[5] 唐怀武基于ARM处理器的仪器网络化应用与研究浙江大学 2005
[6] ANALOG DEVICES INC. AD620 DATA SHEETS. 2005
[7] 毛德操 胡希明 Linux内核源代码情景分析 浙江大学出版社
[8] 吴旭移植uClinux到嵌入式系统的方法有线电视技术 2005.14
[9] 杨亮杨宜民陈波基于uClinux平台的程序设计《微计算机信息》 2004