2. 多通道采集系统架构

好,咱们直接进入正题。多通道肌电采集,说白了就是同时盯着好几块肌肉的“电信号”。你想想看,单通道只能看一块肌肉动没动,多通道才能看出肌肉之间的配合关系。这一章,我就带你把这个系统的骨架搭起来。

核心思路:信号从人体皮肤表面拾取,经过放大、滤波、数字化,最后交给微控制器处理。每一级都有坑,咱们一个一个填。

2.1 系统总体框图

我个人习惯,画框图是第一步。别急着焊电路,先把信号流理清楚。下面这张图,是我做项目时常用的架构。

多通道肌电采集系统总体框图 表面电极 Ag/AgCl 仪表放大器 INA128 / AD620 G=100~1000 高通滤波 fc = 10~20 Hz 一阶/二阶 低通滤波 fc = 500 Hz 抗混叠 ADC 16位 1 kHz采样 微控制器 STM32 / ESP32 电源管理 ±5V / 3.3V 供电 通道1 ~ 通道N(典型8通道)

这张图里,信号从左到右走。每个通道都是独立的模拟前端,最后汇总到微控制器。我做过一个8通道的版本,PCB上最头疼的就是模拟地和数字地的分割——这个后面细说。

2.2 前端模拟电路

模拟前端是整套系统的“耳朵”。耳朵不好使,后面数字处理再牛也白搭。咱们拆开来看。

2.2.1 仪表放大器

肌电信号有多弱?峰峰值也就几毫伏。而且人体上全是50Hz工频干扰,还有各种运动伪迹。这时候仪表放大器就派上用场了。

选型要点:

  • 高共模抑制比(CMRR):至少100dB以上。我常用的INA128,CMRR能做到120dB,对付工频干扰很稳。
  • 低输入偏置电流:肌电信号源阻抗高,偏置电流大了会引入额外噪声。
  • 增益设置:一般用单个电阻设定增益。公式是 G = 1 + 50kΩ / RG。我习惯先设G=100,后面再加一级放大。

实战技巧:我曾经在一个项目里直接用仪表放大器输出接ADC,结果信号漂得厉害。后来发现是参考端(REF)没处理好。记住,REF引脚要接到系统的模拟地,或者用电压跟随器提供一个稳定的参考电平。

2.2.2 滤波器设计

肌电信号的有效频率范围是20~500Hz。低于20Hz的是运动伪迹,高于500Hz的基本是噪声。所以我们需要两级滤波。

高通滤波器(去除基线漂移):

  • 截止频率:10~20Hz
  • 我一般用二阶巴特沃斯,衰减斜率够用,相位失真小
  • 运放选型:LM358就行,便宜够用

低通滤波器(抗混叠):

  • 截止频率:500Hz
  • 必须放在ADC之前,否则高频噪声会折叠到低频段
  • 阶数选择:二阶够用,四阶更干净

注意:滤波器级联时,每一级都会引入噪声和相移。我踩过的坑是——两级滤波器直接级联,结果通带增益掉了3dB。解决办法是中间加一级缓冲,或者用多反馈拓扑。

2.3 后端数字电路

模拟信号调理好了,接下来就是数字化。这一步看似简单,但采样率、分辨率、同步性都是坑。

2.3.1 ADC选型

参数 推荐值 说明
分辨率 16位 12位也能用,但动态范围不够
采样率 ≥1 kHz/通道 奈奎斯特定理,500Hz信号需要1kHz以上
通道数 8~16通道同步 同步采样才能分析肌肉协同
接口 SPI 速度快,适合多通道

我推荐ADS1298,这芯片是专门为生物电信号设计的。8通道、24位、同步采样,还内置了右腿驱动电路。不过价格小贵,学生项目可以用ADS1299的简化版。

2.3.2 微控制器选型

微控制器负责三件事:配置ADC、读取数据、发送给上位机。

  • STM32F4系列:带硬件SPI和DMA,适合高速数据流。我习惯用DMA+双缓冲,这样CPU不用一直等着。
  • ESP32:自带WiFi/蓝牙,适合无线肌电采集。但要注意,无线传输时数据包会丢,需要加校验和重传机制。

代码片段:SPI读取ADS1298的配置示例

// 初始化SPI
SPI_HandleTypeDef hspi2;
hspi2.Instance = SPI2;
hspi2.Init.Mode = SPI_MODE_MASTER;
hspi2.Init.Direction = SPI_DIRECTION_2LINES;
hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
HAL_SPI_Init(&hspi2);

// 读取8通道数据
uint8_t rxBuffer[27]; // 3字节状态 + 8通道*3字节
HAL_SPI_Receive(&hspi2, rxBuffer, 27, HAL_MAX_DELAY);

2.4 电源管理模块

电源是系统的“心脏”。模拟电路需要低噪声电源,数字电路需要稳定供电。两者还不能互相干扰。

供电方案:

  • 模拟部分:±5V。仪表放大器和运放需要双电源。我常用TPS7A4700(正压)和TPS7A3301(负压),噪声低至4μVrms。
  • 数字部分:3.3V。给微控制器和ADC的数字核心供电。用AMS1117-3.3就行,便宜皮实。
  • 隔离:模拟地和数字地之间用0Ω电阻或磁珠连接。我习惯在ADC下方单点接地,避免地环路。

血的教训:有一次我偷懒,模拟和数字共用一个LDO。结果ADC读数一直跳,最后发现是数字噪声通过电源耦合到了模拟端。从那以后,我坚持模拟和数字电源分开,中间加LC滤波。

嗯,这一章的内容差不多就这些。系统架构搭好了,后面几章咱们再深入每个模块的细节。记住,多通道肌电采集的核心是“同步”和“低噪声”——这两点做好了,后面的数据分析才有意义。

个人建议:刚开始做的时候,先搭一个单通道的验证板。把每一级的波形都用示波器看一遍,确认没问题了再扩展到多通道。我当年就是太心急,8通道一起焊,结果出了问题都不知道是哪一级的锅。

专注资料整理