考虑本系统定位于家庭使用,且系统需要连续长时间工作,又由于系统需要良好的人机交互环境、存储大量数据以及支持网络通信,所以要求处理器具有功耗低、成本低、丰富的接口和支持操作系统。本设计选用ARM9处理器S3C2410A,S3C2410A主要面向手持设备以及高性价比、低功耗的应用上。其CPU内核采用的是ARM公司的16/32位ARM920T RISC处理器。ARM920T实现了MMU、AMBA总线和Harvard高速缓存体系结构,该结构具有独立的16KB指令Cache和16KB数据Cache。S3C2410A集成的片上功能主要包括:1.8V/2.0V内核供电,3.3V存储器供电,3.3V外部I/O供电;外部存储器控制器;LCD控制器提供1通道LCD专用DMA; 8通道10位ADC接口,转换速率最大为500KSPS(Kilo Sample Per Second,千采样点每秒);117位通用I/O口和24通道外部中断源;电源控制模式包括正常、慢速、空闲和掉电4种模式;支持NAND Flash的启动装载。
对心电信号采样精度的考虑主要出于对ST段异常分析处理的要求,ST段电平变化约为0.05mV,因此采样精度至少为0.025mV。当采用10位A/D转换器工作在正极性、满刻度电压为2.5V时,可分辨的最小输入电压为2.5mV,而信号调理电路放大倍数为1000倍,则输入端的最小分辨率约为0.0025mV,故S3C2410A具有的10位A/D的精度完全满足系统需求。
为了使用户能够直观的观察心电和便于控制设备,设计采用东华公司的TFT彩屏YL-LCD35套件用于人机交互界面。为满足移植操作系统以及存储心电信号、网页等数据的要求,系统外扩了64M的NAND Flash(使用一片K9F1208UOB)和64M的SDRAM(使用两片HY57V561620)。为满足终端联网的需求,选用CS8900A用于设计网络适配器,CS8900A是一个真正的单芯片、全双工的以太网解决方案产品,更方便的是在Linux内核中提供有CS8900A适配器的驱动程序。
电源部分
为增加安全性、降低功耗、节省成本,设计采用9V碱性电池供电,通过电源转换芯片AS1117-3.3将9V转换为3.3V可供给放大器芯片和S3C2410使用。
软件设计
软件设计主要包括Linux的移植,嵌入式Web Server-Boa的移植,CGI(通用网关接口)程序的设计,功能程序的设计。
图6 系统软件框图
Linux的移植
本设计采用linux-2.4.18内核。正确进行Linux移植的前提是具备一个与Linux配套、易于使用的BootLoader,它能够正确完成硬件系统的初始化和Linux的引导。本系统中采用vivi,它是由韩国MIZI公司提供的一款针对S3C2410芯片的BootLoader。
Linux内核的目录/arch中包含了所有与硬件体系结构相关的内核移植代码,目录/arch中的每个子目录代表了一种Linux支持的处理器。移植Linux到S3C2410平台主要是修改/arch/arm目录及其子目录下相关的makefile文件和配置文件。例如:修改内核根目录下的Makefile文件,指明要移植的硬件平台为ARM:ARCH:=arm,指明使用的交叉编译器CROSS_COMPILE=/opt/host/armv41/bin/armv41-unknown-linux-;修改arm/arm目录下的config.in文件,配置S3C2410的相关信息;为初始化处理器,还需在arch/arm/boot/compressed目录下添加head-s3c2410.s文件。内核修改完成后,用命令make menuconfig配置Linux,再用make zImage命令编译内核,编译通过后则在目录arch/arm/boot下生成zImage内核文件,还需利用工具软件MKCRAMFS制作cramfs文件系统。最后,在minicom终端的vivi命令行下利用load命令将内核和文件系统下载到目标系统,至此移植完成。