基于AT91SAM7SE512核心板的底板上配备了8 MB的SDRAM,l GB的NANFLASH等存储芯片,对外提供SPI,UART,TWI(I2C),USB及高速并行BUS等通信接口,并对其余外部模块(表面肌电信号采集模块、人机接口模块、Xbee无线通信模块等)进行统一调度。
整个系统的工作流程如下:两个通道的表面肌电信号被表面电极拾取,首先通过硬件放大和模拟滤波后送入多通道16 b ADC中进行2 500 Hz采样与A/D转换;转换好的双通道数据通过SPI总线接口送入AT91SAM7SE512中进行处理。处理分两种情况:在没有连接使用PC端时,本地进行实时滤波、简单分析、显示、存储;在连接使用PC端时,通过USB接口或者Xbee无线通信模块将数据实时传输给PC端处理。另外,在已有存储数据的情况下,可以进行表面肌电波形的回放。以上所有人机交换操作是通过采用带触摸功能的液晶显示屏(320×240彩色分辨率)实现的。
2 软件系统总体设计
随着嵌入式系统的广泛应用,传统的前/后台程序开发机制已经不能满足日益复杂的需求,因而现在常采用嵌入式实时操作系统RTOS开发实时多任务系统。
嵌入式实时操作系统一般可以提供多任务的任务调度、时间管理、任务间通信和同步以及内存管理等重要服务,使得嵌入式应用程序易于设计和扩展。采用RTOS可以使嵌入式产品更可靠,开发周期更短。μC/OS-Ⅱ以其本身所具有的源码开放,代码规模极小,运行稳定,执行效率高,实时性好等优点在诸多RT0S中拥有自己的一席之地。代码采用ANSIC编写,具有很强的可移植性和较好的可裁剪性,在移植过程中只需对与处理器相关的一些代码进行修改。
同时为了进一步增强软件的可操作性,该系统在μC/OS-Ⅱ的基础上移植了μC/GUI,用作用户图形界面设计。μC/GUI是由Micrium公司专门针对嵌入式系统开发的一款图形开发系统。它用于为任何使用LCD图形显示的应用提供高效的独立于处理器及LCD控制器的图形用户接口,适用于单任务或者多任务系统环境,并适用于任意LCD控制器和CPU下任何尺寸的真实显示或虚拟显示。
另外,为了方便对于用户资料和肌电数据的存储与操作,在SD卡存储机制上,移植了FATFS文件系统。FATFS是一种完全免费开源的FAT文件系统模块,是专门为小型嵌入式系统而设计的。它完全用标准C语言编写,所以具有良好的硬件平台独立性,可以移植到多种平台而只需做简单的修改。需要使用者编写移植代码的是FATFS提供的底层接口,包括存储介质读/写接口DiskIO和供给文件创建修改时间的实时时钟。
2.1 系统软件架构
软件系统的整体架构围绕表面肌电采集仪的几个基本功能来设计,结构如图2所示。主要分成下面几个部分: