本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
摘 要: 为了可靠获取人体运动意图,对假肢、外骨骼机器人进行有效控制,评价助力效果,设计了一种基于STM32处理器的无线肌电采集装置。介绍了装置的前端调理硬件电路、无线传输和上位机数据处理的设计方案,给出了工频滤波算法及表面肌电信号的简单特征提取方法。这种表面肌电采集装置具有通道数目多、实时性强、数据传输距离远、精度高、操作简便等优点。如果将采集装置构成表面肌电采集阵列,可用于复杂手势的识别。
关键词: 表面肌电采集; 梳状滤波; 功率谱; 无线传输
表面肌电信号(SEMG)利用粘贴在人体肌肉表面的Ag-AgCl电极片,测量肌肉活动时的放电信号。它不同于针电极插入肌肉的测量方法,具有简单易用、无创伤、无痛苦的优点,能有效反映肢体运动信息。它可以被用在临床医学研究与诊断、康复工程、机器人等领域[1]。
现有肌电采集仪具有通道数目较少、所测数量少、测量受连接电缆的束缚等缺点,因此,本文提出了一种无线肌电采集装置,以STM32F103作为处理器,利用nRF24L01作为射频无线收发模块,不但可克服以上缺点,还具有稳定可靠、传输距离远、数据量大等优点。在助力机器人应用中,可以实时采集人在上楼梯、远距离行走时的SEMG。目前,该装置已经被用于助力机器人的助力效果评价中[2]。
1 工作原理
系统结构框图如图1所示。16个通道的肌电信号通过差分电极,经过射极跟随电路缓冲后,经放大、滤波、电平抬升后供STM32F103进行采集。STM32F103内部的切换开关分时选通每个通道,由于切换速度高,可认为采集是同步进行的。STM32F103将SEMG进行数字滤波后,通过nRF24L01发送至接收端。接收端将数据通过USB接口发送至上位机软件。STM32F103具有最高128 KB的Flash,最高20 KB的SRAM,主频可以达到72 MHz,具备二个SPI同步串行接口,一个USB2.0全速接口。它自带A/D转换器,具有16通道、1 μs转换速度、12 bit采样精度,可完成16通道的SEMG数据采集。通道数目越多,可测量的数据点就越多,所反映肌肉块的数据信息也就越多。多通道可以构成阵列式电极,运用相关算法,可对复杂肢体运动进行识别。虽然MSP430单片机采样频率可以达到200 kS/s,但受制于晶振的工作频率及串口传输速率的瓶颈,无法做到8通道以上的高速SEGM采集。
nRF24L01作为采集仪的收发模块,是一种工作于2.4 GHz的无线工业级的通信芯片, 它的最高传输速率为2 Mb/s,具有内置硬件CRC检错和点对多点通信地址控制,抗干扰能力强。基于WIFI的无线文件传输系统,对于嵌入式系统,配置杂,功耗较高。使用工业级无线模块nRF24L01做无线收发任务,配置简单,功耗低。
2 系统硬软件设计
2.1 SEMG的前端调理
SEMG非常微弱,幅度一般为0.1~5 mV,常常淹没在大量噪声中,极易受到干扰。要先进行首级放大后才能进行滤波,放大电路选用高共模抑制比、低输入偏置电流的仪表运放INA111。对于毫伏级小信号的放大,运算放大器选择特性优良的OPA4277,其参数为:偏置电压10 μV,偏置电流1 nA,温漂±0.1 μV/℃,电源抑制比130 dB,静态电流0.79 mA,单双电源供电,轨对轨输出。前3个参数可防止SEMG淹没在器件本身的噪声中,高电源抑制比可避免由电源波动引起的噪声干扰,低静态电流可减少锂电池供电时的功耗。考虑到SEMG频带为10~500 Hz,故设计-3 dB截止频率范围为10~500 Hz的带通滤波器,滤除SEMG夹杂的低频和高频的干扰信号,再进行末级放大。取INA111差分信号的平均值,做积分运算,运算结果作为参考电极--浮地(Float GND),可有效地抑制共模干扰。电路图如图2所示。
电路中仅做带通滤波还不够,还需针对50 Hz的工频陷波,可选方法很多。有源T型陷波器虽然理论与设计成熟,但对元件的对称性要求极其严格,元件精度直接影响中心频率与Q值,调试非常困难;用UAF42通用滤波器构成的陷波器,可以使50 Hz工频衰减40 dB[3],但是对于多通道的数据采集系统来说,每个通道都加一片UAF42及外围电路,硬件显得过于庞杂。结合STM32F103的数据处理速度快的特点,直接用数字滤波,可以简化系统设计、降低成本。使用FIR滤波器可以设计到高阶,而且线性相位性能好,详细过程在后面介绍。
2.2 SEMG数据采集与发送
参考文献[4]介绍了一种96通道的阵列式SEMG采集与测量系统,ADC转换速率高达1 MHz。有研究表明,SEMG 作为一种微弱的生物电信号,其频率分布在10~500 Hz,且绝大部分集中在20~150 Hz之间[5]。根据香农定理及工程实践经验,将STM32F103的采样频率定为1 kHz,已经能够较好满足实际需求。每次A/D转换结束后,使用DMA方式将转换后的数据依次移至数据缓冲区,数缓冲区填满后,将4 KB数据无线发送到接收模块。
SEMG数据发送工作流程如下:采集模块接收到PC机发送的采集命令参数后,解析命令的具体功能,如开始采集、发送数据、停止采集、滤波、修改采样频率等。采集模块将数据按Modbus协议格式打包成数据帧,通过SPI接口传给nRF24L01自动发送。如果采集模块接收到重传命令,重新传递数据。
2.3 SEMG数据接收
接收模块的STM32F103在上电后,完成系统时钟配置与初始化片外设备,并从nRF24L01读取数据,进行CRC校验,若数据出错,则命令发送模块重传。若数据正确,放入DMA中,等到数据缓冲满4 KB时,将数据打包,通过STM32的USB接口,发送到上位机软件,进行实时显示与存储。意法半导体公司专门为STM32F103 提供USB固件驱动程序库,简化了应用开发流程。首先,使用DriverStudio中的Driver works编写USB 驱动程序,生成“*.inf”与“*.sys”文件。然后,当接收端与PC机连接时,PC机自动加载USB驱动程序,上位机软件用CreateFile 函数打开设备,用ReadFile 从WDM中读数据,用WriteFile写数据给WDM。利用TeeChart Active控件,实现数据的可视化输出。为减小文件大小、提高读写速度,防止出现死机与丢包现象发生,数据被以二进制文件“*.dat”的形式存储在硬盘中。最后,当应用程序退出时,用CloseHandle关闭设备。
3 工频滤波
使用较好的差分电极和高共模抑制比的仪表运放,可减少工频噪声。但是它的带宽较窄,难以充分抑制。工频干扰主要集中在以50 Hz及其倍频上,如100 Hz、150 Hz、…、450 Hz。为了把工频干扰从SEMG中滤除,本文设计了线性递归的梳状陷波器。IIR滤波器的计算量小,但没有线性相位;FIR滤波器虽有线性相位,但其所用阶次高,带阻滤波器的系数也非整数,所以乘加运算量大,无法实时处理SEMG。如果采用简单整系数滤波可以用IIR的结构实现FIR滤波器。采用全通网络减去带通网络方法得到带阻网络。
带通滤波器的转移函数为:
根据转移函数,求出时域方程,STM32处理器将采集数据放到循环队列中与时域方程的各项系数进行乘加运算,得到滤波后的SEMG,再通过无线传输方式发送到上位机。为了验证滤波器的设计效果,用120 Hz、210 Hz两种正弦波叠加,并添加50 Hz及其倍频干扰,来模拟SEMG。滤波前后对比如图3所示。可看出复合信号经陷波后,工频成分极大地衰弱,陷波器窄阻带很好地保护了其他有效频带内的模拟SEMG。
4 SEMG的特征提取 |