嵌入式技术应用表面肌电信号采集仪设计
μ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值足够高,尽量少影响有效肌电信号,并且计算量很少,且没有浮点运算,非常适宜用于嵌入式环境中。另外,为让用户直观地感受肌电信号,在肌电波形显示窗口旁边做了一个可以上
信号采集表面肌电AT91SAM7SE51 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)