朱安阳,徐秀林
(上海理工大学 医疗器械与食品学院,上海 200093)
基于STM32的表面肌电采集系统的实现
朱安阳,徐秀林
(上海理工大学 医疗器械与食品学院,上海 200093)
针对康复训练治疗效果的评估的需要,设计了一种基于STM32的表面肌电采集系统。系统采取由主机控制和显示的主从型结构,硬件以STM32为核心,配合表面肌电信号采集模块以实现对原始的表面肌电信号的采集,再利用均方根值提取模块提取其肌电均方根值并通过USB接口传送至上位机,最终由上位机软件分析处理传送上来的肌电数据并显示。实验结果表明,系统所采集的肌电信号的准确性较高,能够满足评估康复训练治疗效果的需要。
STM32;数据采集;肌电均方根值;积分肌电值
表面肌电信号是一种伴随着肌肉活动在皮肤表面传递的生物电[1]。表面肌电信号是来源于人体自身的电信号,因此它具有直接自然的特点,其中蕴含了多种肌肉运动信息,被广泛的运用于肌肉运动、肌肉损伤诊断、康复医学以及运动体育等方面的研究。
随着电子新技术和计算机技术的发展以及神经肌肉生理学研究,人们可以对肌电信号和神经肌肉功能进行更加精准的研究[2]。南京大学的周兵等人研制的便携式表面肌电信号采集仪以ARM7微处理器AT91SARM7SE512为核心,采用μC/OSⅡ操作系统,通过触摸屏控制肌电信号的采集,操作简便且性能稳定,但选用的芯片成本较高,而且由于缺少上位机的配合,不便于肌电数据的管理[3];哈尔滨理工大学的尤波等人搭建的肌电信号采集平台采用了北京阿尔泰科技发展有限公司研发的PCI8622数据采集卡,其采样通道多达32路,转换精度达16bit,可同时采集多路肌电信号且精度较高,但也使得数据采集变得复杂,不利于临床使用。
针对上述情况,本文设计了一种基于STM32的低成本、低功耗、双通道的表面肌电采集系统。该系统包括上、下位机两部分,由上位机控制下位机的肌电数据的采集与传送,同时上位机还负责对采集的肌电数据进行保存、分析和显示,上位机与下位机之间通过USB接口进行数据通讯。
基于STM32的肌电采集系统设计由硬件设计与软件设计两部分组成。硬件包括原始肌电信号采集模块、肌电均方根值提取模块、STM32芯片、UART转USB模块和电源模块;软件分为下位机的STM32控制程序设计和上位机的肌电信号分析界面设计两部分。其中,下位机的STM32控制程序包括对上位机下传的命令数据的处理响应模块和肌电均方根值数据的上传模块;上位机的肌电信号分析界面包括病人信息管理模块、肌电数据分析显示模块和数据通讯模块。系统整体结构框图如图1所示。
1.1 硬件设计
表面肌电采集系统的硬件部分由原始肌电信号采集模块、肌电均方根值提取模块、STM32芯片、UART转USB模块和电源模块组成,其具体工作流程为:原始肌电信号采集模块通过对信号进行放大滤波处理以提取原始表面肌电信号,而获得的原始肌电信号再经过均方根值提取模块的处理以提取肌电信号的均方根值,再由STM32芯片将采集到的肌电均方根值数据通过UART转USB模块传送给上位机。硬件系统的设计指标如表1所示。
表1 硬件设计指标
图1 肌电采集系统整体框图
1.1.1 电源模块
本系统通过电源适配器将220V市电转化为直流+9V供电。为确保STM32芯片的正常工作,选用1117-3.3输出+3.3V电压作为STM32芯片的工作电源;采用MAX660输出-5V电压以及LM2576-5输出的+5V电压作为肌电采集模块中各芯片的供电电源。
1.1.2 原始肌电信号采集模块
表面肌电信号是一种微弱的电信号,一般只有微伏级,其幅值范围一般在0-5000μV,下肢瘫痪者的肌电信号则更加微弱,一般在200μV以下。因此本系统采用前、中、后三级放大电路,并设计了增益调节电路,可选择性调节增益倍数。前级放大电路选用AD8220差分放大芯片用于提高输入阻抗,降低共模干扰,放大倍数为200倍;中级放大结合滤波电路实现,放大倍数为25倍;后级放大电路采用同相放大器,放大10倍;增益调节电路以CD4052芯片为核心,由STM32芯片控制其第9和第10引脚的高低电平的输入以选择采集信号的放大倍数。根据两输入引脚的高低电平的组合,共有四种放大倍数可供选择:1、2、5、10倍。
采集表面肌电信号时会同时采集到各种噪声,包括人体内部组织的各种生物电信号、采集系统设备本身噪声以及周围环境噪声等,为保留有用的肌电信号,在设计肌电信号采集模块时还需要滤除噪声,为此需要结合噪声与肌电信号的频率特征来设计相应的滤波电路。人体表面肌电信号的频谱范围为0~1000Hz,其主要能量集中在200Hz以下(占80%以上),而作为肌电采集的主要干扰的心电信号的频率范围在0.05~100Hz,其频谱能量集中于0.25~20Hz的范围。因此,硬件系统选取20~500Hz频段的肌电信号作为采集目标,分别设计了截止频率为20Hz的一阶高通滤波器与截止频率为500Hz的二阶低通滤波器。此外,由于硬件系统采用市电电压供电,在肌电采集时不可避免的受到50Hz工频干扰,需采用50Hz陷波电路滤除。表面肌电信号处理流程如图2所示。
图2 肌电信号处理流程
1.1.3 肌电均方根值提取模块
肌电信号的时域分析主要包括原始肌电信号、积分肌电值和均方根值。其中,肌电均方根值体现了肌肉负荷性因素和肌肉本身生理生化过程之间的内在联系,直观的反映了肌电信号的幅值特征,被广泛的的应用于运动医学和人机工程学领域的肌肉功能评估。因此,本系统选择肌电均方根值作为STM32芯片最终采集与上传的肌电数据,设计了肌电均方根值提取模块。它能够很好的将肌电信号波形进行整流滤波,并提取肌电信号的均方根值作为有效值,这既有利于肌电信号的观测,也便于后续的肌电信号处理。肌电均方根值提取模块如图3所示。
图3 均方根值提取模块
该模块以AD536A真有效值提取芯片为核心,该芯片可以直接计算输入的任何复杂波形的真有效值。其1引脚为电压信号输入端,连接肌电信号采集模块的输出端,以导入原始肌电信号;根据输入的肌电信号的特征,在提取其有效值时,需要在4引脚与14引脚之间外接一个滤波电容,在这种连接中,由于滤波电容的作用,当输入的交流电压信号频率较低时,会出现微小误差,而当输入高频信号时,则可获得高精度的直流输出;8引脚输出的有效值再经过缓冲处理,最终由缓冲输出端6引脚导出肌电有效值。
1.1.4 STM32芯片
硬件系统所用的核心芯片型号为STM32F103RC,使用高性能的32位的ARM Correx-M3内核,最高工作频率可达72MHz,内置高速存储器(高达256k字节的闪存和32k字节的SRAM)。作为一款低功耗高速单片机,它的外设资源丰富,包括2个12位的ADC、3个通用16位定时器和一个PWM高级定时器,还包含标准和先进的通信接口:5个USART和1个CAN。它涵盖了本肌电采集系统所需要的所有外设,并且在存储容量和运算速度方面很好的满足了肌电采集系统的要求。
在本系统中,STM32芯片作为肌电均方根值提取模块与上位机之间的中枢纽带,一方面它要接受上位机的控制如肌电采集的开断、肌电采集通道的选择、采集信号的放大倍数的选择等,另一方面它将采集到的肌电均方根数据传递给上位机。
1.1.5 UART转USB模块
本肌电采集系统包含上下位机两部分,两者之间存在数据通讯:一方面上位机以向下发送命令数据的方式控制下位机的肌电采集,另一方面下位机需要将采集到的肌电数据上传给上位机以便后者分析处理肌电数据。USB接口是PC与外部设备进行数据交互时广泛使用的通讯接口,因此为了方便上下位机的数据通讯,本系统采用USB接口方式连接硬件采集系统与PC端,而STM32芯片自身并未配备USB通信接口,需要外接UART转USB模块。
UART转USB模块采用CP2102芯片,它是一种高度集成的UART转USB桥接器。该芯片包含一个USB 2.0全速功能控制器、USB收发器、振荡器和带有全部的调制解调器控制信号的异步串行数据总线(UART)。本设计添加退耦电容,电源指示等外围元件,将UART升级为USB接口,其通讯速率可达1Mbps。
1.2 软件设计
1.2.1 上下位机数据通讯协议
上下位机数据通讯协议规定了上下位机通讯时每帧数据的传输格式,为上下位机的串口通讯编程提供了必要依据。该数据通讯协议包括帧头、设备号、采集通道号、数据类型、长度、命令(数据)序列、效验。其中,帧头标识一帧数据的开始,用于判别当前帧数据是否是有效,而只有在数据有效时才会进一步的解析当前帧数据,提取有用信息;本肌电采集系统为双通道,通过通道号来选择当前肌电采集的通道;上下位机数据通讯是双向的,因此其传递的数据也分为两种即肌电均方根数据和命令数据,由通讯协议中的数据类型来标识。数据通讯协议格式如表2所示。
1.2.2 STM32控制程序
STM32控制程序的编写采用C语言,通过库函数开发方式编程即利用由ST公司针对STM32单片机提供的函数库来配置STM32各种外设的寄存器,从而摆脱最底层的寄存器操作,便于程序的开发与后期维护。
STM32控制程序包括对上位机下传的命令数据的处理响应模块和肌电均方根数据的上传模块。STM32控制程序流程图如图4所示。
命令数据的处理响应模块采用串口中断的方式接收,解析上位机下传的数据并响应。当上位机下传命令数据时,将触发串口中断而执行中断函数。中断函数将根据事先制定的数据通讯协议执行对一帧命令数据的判别与解析,首先是对帧头的校对,如果符合协议设置的帧头,则证明所接收的数据为命令数据,继而进一步解析命令并响应。
表2 通讯协议格式
图4 STM32控制程序流程图
肌电均方根值数据的上传模块负责采集与上传肌电均方根数据。该模块采用AD-DMA的方式将模数转换后的肌电均方根数据直接导入到STM32内存缓冲区,每次采集4kB的肌电均方根数据,采集周期约为1S,定时器TIM1配置为PWM输出模式,用于控制AD1的采样频率(2000Hz);肌电均方根数据的上传采用UART-DMA方式将STM32内存缓冲区中的4k数据传递至UART,再通过UART转USB模块上传至上位机。
1.2.3 肌电信号分析界面
上位机软件采用C++,通过MFC软件设计肌电信号分析界面,实现了上位机对下位机肌电采集的控制以及肌电均方根数据的分析和显示。该界面包括病人信息管理模块、数据通讯模块和肌电数据分析模块。
在病人信息管理模块中可以进行患者编号、姓名、性别和年龄等基本信息的创建与修改,这部分信息将独立显示并自动保存,而采集到的病人的肌电数据也将相应的保存在以病患信息命名的目录的文件夹下,以便于管理。
上位机的串口通讯模块采用基于Windows API的串口编程方法,编写适合本肌电采集系统的串口类,将串口操作的一般步骤都封装在串口类中,通过创建串口类对象的方式完成打开与配置串口、读写串口、开启与关闭串口等基本操作。此外,上位机的串口通讯模块还利用Windows系统的消息响应机制,自定义了WM_COMM_RXCHAR消息并按照上下位机通信协议编写其消息响应函数。由于串口被设置为一次仅传递一个字节数据而一个肌电均方根数据却有12位,因此一个完整的肌电均方根数据需要拆分为两个字节分两次传送,而上位机在接收到数据时会向系统发送WM_COMM_RXCHAR消息,进而执行其消息响应函数,完成肌电均方根数据的重组、显示和保存。
肌电数据分析模块一方面控制下位机的肌电采集,另一方面负责显示与保存上传的肌电均方根数据,并进一步提取和显示肌电积分值及其最大最小值。肌电信号分析显示界面如图5所示。
图5 肌电信号分析显示界面
本界面主要包括五个功能性按键,两个显示控件和两个编辑框控件。两个显示控件中,上方的控件只用于显示肌电均方根图,下方的控件除了显示积分肌电图外,还可用于回放肌电均方根图。此外,上位机的软件事先通过编程设定了各按键的逻辑顺序,以防止误操作,最初只有“开始”键与“波形回放”键处于使能可用状态,随着一个采集周期的结束,其他按键将先后使能可用。肌电信号分析界面的一个工作周期如下:
初次点击“开始”按键后,它将自动失能变灰,避免重复点击,此时上位机将向下位机传送开始指令,启动定时器以开启一个周期(150s)的肌电采集并动态显示,此时 “停止”按键使能可用,点击可终止数据采集与显示并重新使能“开始”键,回复初始状态。此外,最初状态下处于使能状态的还有“波形回放”按键,用于回放保存的肌电均方根数据。
当一个周期的肌电采集正常结束时,“积分肌电值”按键将使能可用,点击后将对本周期所采集的肌电均方根数据进行运算处理,提取其积分肌电值并以积分肌电图的形式显示。
在点击过“积分肌电值”按键后,“保存”按键将使能可用而“积分肌电值”按键将重新失能变灰。点击“保存”按键可截取当前的积分肌电图并以“.jpg”图片格式保存,之后“保存”按键将失能变灰,“开始”键恢复最初使能状态,其他按键也将恢复初始状态,等待下一个采集周期的开始。
为了验证系统所采集的肌电信号的准确性,本文对有效频段(20Hz~500Hz)内的肌电信号的信噪比(S/N)进行了定量分析。从频域角度来看,某一时刻的肌电信号值是该时刻下各种频率的肌电信号的总和,因此设计如下实验方法:利用信号发生器产生恒定的正弦波信号作为输入信号,实验过程中不断地调节输入信号的频率,分别记录输入端接信号和输入端空载时的输出电压的有效值,前者作为信号值,后者作为噪声值,根据信噪比的定义求得各频率下的信噪比,并对测得的数据进行分析,得到的结果如图6所示。在整个测试过程中,系统的各项功能都正常运行,工作稳定,未出现异常。
图6 信噪比频谱图
上图直观的反映了整个有效频段内信噪比随频率变化的趋势。由图可知,在肌电信号的有效频段内,除了50Hz频率处由于陷波器的作用而急剧衰减外,系统的信噪比整体上保持在20~30dB范围内。根据信噪比计算公式:S/N =101g(PS/PN),其中PS和PN分别代表信号和噪声的有效功率,对该范围换算可得信号与噪声的有效功率之比(PS/PN)的范围为100~1000倍,因此噪声对肌电信号的干扰十分微弱,系统所采集的肌电信号具有高准确性,能够满足评估康复训练治疗效果的需要。
本文针对电刺激治疗效果的评估的需要,设计了一种基于STM32的主从型表面肌电采集系统。该系统实现了对原始表面肌电信号的采集并提取其均方根值传送给上位机,由上位机软件对上传的肌电均方根数据进行显示与保存,在此基础上进一步提取与显示积分肌电值,并提供肌电均方根数据的回放与积分肌电图保存的功能。经测试该系统达到了设计要求,并能够稳定可靠的工作,为评估电刺激治疗效果以及确定下一步的治疗方案提供了依据,提升了康复治疗效率。在下一步的研究中,将在当前系统的基础上利用频域方法进一步的分析肌电信号,更全面的反映肌电信号的特征,进一步的提高本系统的康复训练评估能力。
[1] 胡巍,赵章琰,路知远,等.无线多通道表面肌电信号采集系统设计[J].电子测量与仪器学报,2009,23(11):30-35.
[2] 周兵,纪晓亮,张荣,等.基于嵌入式技术的表面肌电信号采集仪设计[J].现代电子技术,2010,33(6):55-57.
[3] 尤波,周丽娜,黄玲.实时肌电信号采集系统设计与探究[J].黑龙江大学工程学报,2011,02(1):72-76.
[4] 韩晓新.表面肌电信号采集电路的设计[J].计算机测量与控制,2011,19(7):1778-1780.
[5] 王建辉,张传鑫,白冰,等.上肢康复机器人实验平台肌电信号采集系统的设计[J].电子世界,2012(11):28-30.
[6] 朱仕勇.手持式肌电信号采集系统设计与应用研究[D].武汉市:武汉理工大学,2013.
[7] Fang Y F, Zhu X Y, Liu H H. Development of a Surface EMG Acquisition System with Novel Electrodes Configuration and Signal Representation[A].International Conference,Icira[C].2013:405-414.
[8] 林锦荣,谭北海,谢胜利,等.基于ADS1294的表面肌电信号采集系统的设计[J].医疗卫生装备,2015,36(1):5-7.
[9] 李成凯,席旭刚,王俊伟,等.表面肌电信号采集系统设计[J].杭州电子科技大学学报,2015(2):34-37.
[10] Correa-Figueroa J L, Morales-Sánchez E, Huerta-Ruelas J A, et al.SEMG signal acquisition system for muscle fatigue detection[J].Revista Mexicana De Ingenieria Biomedica,2016,37(1).
Implementation of surface EMG acquisition system based on STM32
ZHU An-yang, XU Xiu-lin
TH772
:B
1009-0134(2017)07-0119-05
2017-03-06
上海市科委智能化下肢综合评估训练系统的临床应用研究项目(14441905100);上海市科委俯卧式多态脊柱康复训练与评估系统的开发与关键技术研究项目(15441906200)
朱安阳(1989 -),男,浙江温州人,硕士研究生,研究方向为精密医疗器械设计与检测。