摘要:介绍了一种便携式多功能生理信号采集装置,用户通过简单设置及选择相应电极,可分别进行脑电和心电数据的实时采集,并能对数据进行显示和存储。它具有精度高、体积小、功耗低等特点。该系统下位机主要由ST公司的STM32单片机STM32F103和TI公司的ADS1298模拟前端IC构成,省去了大量的外围电路。下位机通过USB2.0协议与上位机进行数据传输。上位机USB驱动由NI-VISA实现,软件用LabVIEW开发。
关键词:生理电信号;24位ADC;USB;LabVIEW
引言
生理电信号在医疗诊断和科学研究方面有着重要的意义。目前,生理电信号采集装置通常针对某种特定的信号设计,如脑电图机、心电图机等。通常精度高的仪器,由于各个通道均需要独立的模拟放大、滤波等模块,故其体积往往较大,限制了仪器的应用环境。而脑电的幅频特性“0.001~0.1 mV、0.5~40 Hz”与心电的幅频特性“1~5 mV、0.05~100 Hz”具有相似性。本文运用24位ADC技术,直接采集生理电信号,进行数字滤波和放大,设计一种能通过简单配置,能分别采集脑电和心电的生理信号采集系统。该系统具有可复用、便携、功耗低等特点,为生理信号的采集提供一种新方案。
1 总体设计
考虑到整个系统的精度、体积、成本以及电子技术的发展趋势,提出以下设计方案。为减小系统体积,提升精度,系统利用24位A/D转换芯片和低数值基准电压源,得到高分辨率的数字信号(μV/bit级),传送至单片机。单片机根据具体的应用(脑电或心电)配置A/D芯片,并进行数据的采集、存储。由于数据量较大,系统上/下位机之间采用USB协议进行数据传输。为防止人体触电、减少信号干扰,USB数据链路采用ADuM4160芯片进行隔离。上位机采用LabVIEW软件实现USB驱动、数据处理和界面的设计。
图1为系统的原理框图。
2 硬件设计
2.1 预处理电路
图2为预处理部分电路。该部分由二阶无源低通滤波和限幅电路组成,起到消除高频干扰和过压保护的作用。其中,低通截止频率为30 kHz,可通过电压幅值范围为±700mV。
2.2 基准电平
虽然ADS1298中集成了精度为0.2%的2.4V和4.0 V的基准电平,但为了减小前端放大器的放大倍数,本设计中的ADC部分采用REF3112提供的1.25 V(0.2%)作为基准电平。该电平通过OPA211组成的电压跟随器进一步稳定,输入至ADS1298的VREF。
2.3 模拟前端ADS1298
本系统的模拟前端采用TI公司的ADS1298芯片。其内部原理框图如图3所示。
ADS1298主要特性为:
①8通道24位ADC转换芯片,其采样频率可工作在250sps~32ksps。
②各通道含可编程放大器,其放大倍数在1~12倍可调;CMRR>100 dB时,输入阻抗约为10MΩ。
③内置右腿驱动放大器和威尔逊中心电端。
根据心电模式或脑电模式的具体应用,通过单片机配置多路选择器(MUX)内部各个输入端(INPUTS、RLD)的通断,可编程放大器(A1~A8)的放大倍数和AD转换器(ADC1~ADC8)的采样频率。当芯片完成一次转换,Data Ready引脚变为低电平,通知MCU通过SPI总线读取数据。
2.4 MCU控制部分
选用STM32F103芯片作为系统的MCU。该芯片具有高性能(72 MHz工作频率、具有单周期乘法指令和硬件除法指令),低功耗(0.19 mW/ MHz)和丰富外设(SPI及USB等)等特点。对于模拟前端ADS1298,MCU作为主机,采用SPI协议进行通信。系统上电时,设置ADS1298的相应寄存器;在检测到ADS1298的Data Ready信号后,读取ADC的转换结果。对于上位机,MCU作为从机,采用USB协议和上位机进行通信。MCU在连接上位机时,完成USB枚举等初始化动作;当接收到ADS1298的数据后,打包成USB数据包,传送给上位机。
2.5 USB隔离
当单片机不能正常工作时,我们首先要检查三个条件,分别是电源、时钟晶振以及复位。用电压表或者万用表检测电源和接地脚,检测两个引脚之间的电压是不是5V左右;检测时钟晶体震荡有没有正常工作,我们可以用示波器,看能否检测到相应频率的正弦波脉冲;复位检测就比较简单了,单片机的复位电平一般是高电平复位,单片机在接通电源时一般复位引脚上会出现5V左右的高电平,另外在按下复位键时,复位引脚上也会出现高电平,用一般的电压表或者万用表都可以进行检测。
为保护人体安全,本设计中采用ADuM4160芯片进行上下位机隔离,下位机采用电池供电。ADuM4160芯片是ADI公司推出的专用USB隔离芯片,具有透明、易于配置、兼容USB2.0协议、可隔离5 000 V电压等优点。图4为USB隔离部分框图。芯片左侧VBUS1、DD+、DD-和GND1分别连接上位机的5 V、USB正端、USB负端和地线;芯片右侧VBUS2、DD+、DD-和PIN分别连接MCU的电源、USB正端(PA12口)、USB负端(PA11口)、I /O口(PA10口),其中PIN为使能端。
2.6 电源部分
本系统需要3路电源供电:数字部分供电电压3.3 V、模拟正端供电电压3 V、模拟负端供电电压-3 V。其中,3.3 V由AMS1117-3.3芯片从电池电压转换得到,3V由TPS73230芯片从电池芯片转换得到,-3V由TPS60403芯片从3V电压转换得到。
3 上位机程序设计
3.1 USB驱动部分
采用LabVIEW的NI-VISA子程序控件来实现USB驱动。VISA(Virtual Instrument Software Architecture)是一个用来与各种仪器总线进行通信的高级应用编程接口(API)。运用该API,可使用NI-VISA方便地实现USB的读写功能。
基于NI-VISA的USB驱动配置过程如下:
①使用驱动程序开发向导(Driver Development Wizard,DDW)创建INF文档。安装NI-VISA软件(3.0或后续版本),打开DDW,选择USB,在相应栏里面填入USB设备的VID、PIE)、制造商名称和型号名称,最后点击“完成”按钮即可生成*.INF驱动文件。
②安装INF文档,并安装使用INF文档的USB设备。将*.INF文件复制到系统盘的Windows文件夹下,在右键菜单中点击安装即可。当PC机检测到本系统的下位机接入后,会根据INF配置文件加载NI-VISA作为底层驱动。
3.2 软件编程部分
在LabVIEW开发环境中,使用“VISA打开”模块打开USB设备,在“VISA启用事件”模块中使能USB中断,在“VISA等待事件”模块中设置超时时间。设置完成后,可在“VISA获取USB中断数据”模块中得到USB数据。实现USB通信的LabVIEW代码如图5所示。
LabVIEW开发环境中,集成了多种信号处理模块、数据显示模块和数据保存函数,可方便地对USB中得到的数据进行处理。本设计心电应用中,带通频率设置为0.5~50 Hz、50~100Hz;脑电应用中,带通频率设置为0.5~40Hz。经过滤波的数据一方面在“Waveformcharts” 中显示,另一方面应用“Open/Create/Replace File”函数和“Write To Spreadsheet File”函数保存至硬盘,供后续分析。
4 测试结果
在室内常温环境下,被测人体的身体自然放松,大脑清醒;系统下位机由电池供电,分别进行心电和脑电采集,采样频率为1 kHz,心电测试图和脑电测试图如图6、图7所示。
心电测试中,侦测电极位于锁骨中线和第五肋间的交点,参考地位于右边腋中线;脑电测试中,侦测电极位于10~20电极放置法的FP1点位,参考地位于右耳根部。
结语
生理电信号大多具有信号内阻高、幅度低的特点,往往淹没在环境噪声当中。本文基于24位ADC技术的采集系统,能够对模拟信号进行高分辨率采样,对转化后的数字信号进行数字滤波、放大处理。一方面,简化了硬件电路;另一方面,由于数字滤波器的参数可通过软件方式方便的调节,故可实现仪器复用,采集多种生理电信号。
对样机的测试表明,系统能够正常工作,适用于脑电、心电的采集。
来源:http://www.21ic.com/app/computer/201202/107233.htm
这十篇系列教程到这里就结束了,内容不太全面实在是我们能力有限,日后有机会还会继续更新后续的进阶内容和自己编程开发过程中的心得经验。耐心看到这里的希望你能够喜欢,如果看完之后能让你提起兴趣,找来一片单片机,点亮第一颗闪烁的灯,就是对我们最好的支持和鼓励啦~谢谢大家