嵌入式技术应用表面肌电信号采集仪设计
表面肌电信号(sEMG信号)是从皮肤表面通过电极引导、放大、显示和记录下来的神经肌肉系统活动时的生物电信号,信号形态具有较大的随机性和不稳定性。它与肌肉的活动状态和功能状态之间存在着不同程度的关联性,因而能在一定的程度上反映神经肌肉的活动,在康复医学领域的肌肉功能*价以及在体育科学中的疲劳判定、运动技术合理性分析等方面均有重要的实用价值。表面肌电信号采集属无创性,操作简单,病人易接受,有着广泛的应用前景。
这里涉及到的便携式肌电采集仪小巧方便,结构简单,性能稳定,可以随身携带,可由电池供电,一般用于运动员的训练中。本文主要介绍表面肌电信号采集仪的软硬件设计与实现。
1 硬件系统总体设计
该系统的控制核心选择Atmel公司的AT91SAM7SE512处理器。AT91SAM7SE512是一款32位嵌入式微处理器,可针对交互式终端类和工业控制类等多种嵌入式应用。AT91SAM7SE512提供了丰富的外围设备接口,包括USB,UART,SPI,TWI(I2C)和系统高速并行BUS等总线接口,从而减小了添加、配置附加外围接口的困难与开销,为用户开发简化了硬件和软件设计,节省了系统成本。系统的整体结构如图1所示。
基于AT91SAM7SE512核心板的底板上配备了8 MB的SDRAM,l GB的NANFLASH等存储芯片,对外提供SPI,UART,TWI(I2C),USB及高速并行BUS等通信接口,并对其余外部模块(表面肌电信号采集模块、人机接口模块、Xbee无线通信模块等)进行统一调度。
整个系统的工作流程如下:两个通道的表面肌电信号被表面电极拾取,首先通过硬件放大和vwin 滤波后送入多通道16 bADC中进行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所示。主要分成下面几个部分:
(1)肌电采集显示,用于控制对肌电信号的实时采集、分析处理、显示和存储;
(2)本地肌电回放,用于对已存储在SD卡中的肌电数据进行回放显示,并支持对无用肌电数据文件的删除操作;
(3)肌电采集传输,选择传输模式向PC端实时发送采集的肌电数据;
(4)用户设置,用于设置用户ID及实时时钟初始值等参数。以上各功能均在μC/GUI用户图形界面上实现人机交互。
如图2所示,依据表面肌电采集仪的功能要求,在μC/OS-Ⅱ下设计了肌电采集任务;液晶屏显示任务;触摸屏输入任务;肌电回放任务。其他所需功能均做成模块,集成在上述某一任务中。
μC/OS-Ⅱ是基于优先级抢占式调度的操作系统,优先权的设置非常重要。该系统根据整个系统运行的时序,将对系统安全运行较重要和对实时性要求较严格的任务设成较高的优先级。以下分别介绍这几个任务和功能模块。
2.2 肌电采集任务
肌电采集任务用于对经过硬件放大与滤波后的双通道肌电信号进行2 500 Hz采样与A/D转换,并将其通过SPI总线接口传输至主芯片中以进行后续处理。基于肌电采集的实时性要求,在μC/0S-Ⅱ操作系统中,将肌电采集任务设置为除系统内核使用的优先级外最高的优先级,同时为满足肌电采集的精确性要求,通过启动定时器中断来运行肌电采集任务。
肌电采集任务分两种情况运行:第一种,本地采集显示,此时运行该任务前会被要求输入存储文件名,然后在采集肌电同时,调用下文的肌电滤波模块进行滤波和调用文件存储模块进行实时存储数据,滤波后的肌电数据和已采集的时间会送到下文液晶屏显示任务中同步显示出来;第二种,肌电采集并与PC端交互,此时启动任务需先选择USB通信与Xbee无线模块通信中的一种,然后才能启动肌电采集任务,并将原始肌电数据传输给PC端进行处理。
2.3 肌电回放任务
为了使用户能随时回放已保存的本地肌电数据,设计了该肌电回放任务。通过采用定时器中断来定时读取文件中的肌电数据,并发送给下文的液晶屏显示任务来实现波形的复原显示。同时,为了便于用户反复观看某一段波形,该任务支持对肌电波形的显示与暂停,以及对波形显示的前翻与回翻一屏操作。
2.4 液晶屏显示任务
为了使用户能够了解系统的当前状态,同时可使用户与系统进行交互,在μC/OS-Ⅱ和μC/GUI的基础上设计了液晶屏显示任务。液晶屏显示任务负责通告当前的系统状态与运行过程,包括μC/GUl支持下的各种图形界面。具体来说,这里集成了肌电采集、显示与回放、时间显示、数据存储、数据USB或Xbee传输等的图形界面。
因为该任务实时性要求不高,故对其设计了最低的任务优先级。
2.5 触摸屏输入任务
为了人机交互的方便与系统整体的简洁,采用触摸屏实现人机交互输入。该任务在系统启动时就开始工作,采集并处理用户通过触摸液晶屏输入的信息,并将得到的用户命令发送给μC/0S-Ⅱ与μC/GUl,以完成人机交互。
由于用户输入必须保证一定的实时性,以便使用户不会感受到系统大的延时,在此对触摸屏输入任务设计了仅低于肌电采集任务与肌电回放任务的第三高优先级。
2.6 其他功能模块
除了以上几个任务之外,设计了几个功能模块辅助以上几个任务,具体如下:
(1)实时时钟模块。在AT91SAM7SE512芯片外扩展了一片实时时钟PCF8563用来为系统提供实时时钟值,以便记录用户肌电数据采集时的具体时刻。PCF8563通过TWI(I2C)接口与AT91SAM7SE512芯片通信。
(2)定时器中断模块。在AT91SAM7SE512芯片中启动定时器中断来支持肌电采集任务与肌电回放任务。定时器中断频率设计为2 500 Hz,用来在肌电采集任务中定时向ADC发送采样转换指令,并读取双通道肌电信号的数据,或者在肌电回放任务中定时从肌电文件中读取双通道肌电数据。
(3)文件系统模块。为了方便肌电数据在SD卡中的存储和处理,在以SPI模式读写SD卡的基础上移植了FATFS文件系统模块来管理肌电数据。FATFS可以使用户方便地存储数据文件,读取数据文件与删除无用文件。
(4)通信模块。为了使采集的肌电能实时传输给PC端处理,设计USB有线与Xbee无线两种通信模块。USB有线通信,利用片上USB外设接口实现与PC端的数据交互;Xbee无线通信,利用片上UART接口操作本地Xbee无线模块与PC端的Xbee无线模块通信,从而实现数据无线传输到PC端处理的功能。
(5)用户设置模块。对每一部设备而言,均有一些设置需要用户更改,如用户ID等。为便于在掉电状态下保存此类信息,采用一片非易失性铁电存储器FM24CL64来保存此类信息。该存储芯片通过TWI(I2C)接口与主芯片通信,可随时读取与保存用户设置信息。每次系统启动时,都会自动读入用户已存储好的设置信息。
(6)肌电滤波与分析模块。表面肌电信号的频率范围为10~500 Hz。由于50 Hz工频噪声干扰处于表面肌电信号能量集中的频段,且幅值较大,如果不做处理,肌电信号将被工频噪声所淹没。因此在本地采集显示时,选用嵌入式环境中应用广泛的梳状滤波器。梳状滤波器可以有效滤除50 Hz工频干扰和基线漂移,Q值足够高,尽量少影响有效肌电信号,并且计算量很少,且没有浮点运算,非常适宜用于嵌入式环境中。另外,为让用户直观地感受肌电信号,在肌电波形显示窗口旁边做了一个可以上下浮动的气球,根据本地滤波后的肌电数据平滑平均并与参考值比较后的两者差值上下浮动。
3 结语
肌电信号在基础医学研究、临床诊断、康复工程等方面有着广泛应用,对它的检测分析已成为医学和生物医学工程界研究的热点问题之一。这里研制的表面肌电信号采集仪,基于嵌入式ARM技术构建,体积小,重量轻,功耗低,通信方便,稳定性较好,界面简洁人性化,操作方便,在实践中证明能够满足设计要求,能采集到清晰的肌电信号。采用μC/OS-Ⅱ操作系统与μC/GUI图形用户界面,便于后续研发中添加功能模块与新任务。另外,若前端配用不同的传感器,该系统还可以实现对其他生理信号的采集和分析处理。
评论
查看更多