APP下载

基于淘晶驰串口屏的心电图监护设计

2021-06-17周昱帆涂国宇潘锋伟刘锦涛余素萍夏守行

电子制作 2021年11期
关键词:寄存器电信号右腿

周昱帆,涂国宇,潘锋伟,刘锦涛,余素萍,夏守行

(浙江温州科技职业学院信息技术学院,浙江温州,325003)

0 引言

这两年的新型冠状病毒性肺炎,打乱了整个世界生活秩序,虽然现在已被我们国家控制住,经济恢复得也很好,但国外有众多的感染数量。对该型肺炎病人的监护,其中的心电图(Electrocardiog-ram,ECG)指标是一个重要的评估参考[1]。

根据相关部门推算,我国心血管病患病人数已超2亿多,其中脑卒中和冠心病均达上千万之众[2]。但是对于检测此类病的ECG一般也只能去医院进行检测,由于心血管病患者以慢性病见多,如果所有检测均在医院进行,则医疗公共资源会很紧张,病人的治疗费用也升高而增多患者的负担。

作为一些预防性和慢性病的平常性监测,在普通家庭中能用一种较便宜且实用的仪器检测一些生命指标,也是一种较实用的较早发现病变趋势的有效手段。下文将以测量ECG为例,设计制作一个实用的家用心电监护仪,其基本功能是实时显示ECG,并可扩展存储和重播等功能。

ECG的基本原理是,心肌在生物电作用下产生规律的跳动,从而在人体表面产生电位变化[3],测量该电位,并形成与时间的曲线,即为ECG,具体见如下文设计。

1 总体设计

全电路主要由前置放大、右腿驱动、低通滤波放大、单片机(MCU)、心电显示、存储SD卡等组成,如图1所示,采用常规导联测量方式,其他导联方式请查相关资料。

图1 SCG电路框图

前置放大器采用专用仪表放大器,具有低噪声、高输入阻抗、高共模抑制比的特点,并将右腿驱动电路应用于前置放大端,以消除来自人体的共模干扰。

2 前置放大电路

电路主芯片型号为INA121,为FET输入、低功耗仪表放大器,其输入阻抗高达1012Ω,共模抑制比106dB,满足生物电放大器60dB~80dB的CMRR值要求[4],等效输入噪声为(1kHz,Au=100时)。心电信号为不足1mV的弱小信息,因此ECG放大器等效总自噪声应小于20μV。以单片机AD转换5V基准电压计算,ECG放大器总放大倍数Au总计算如下:

如图2所示的前置放大器放大倍数为Au1:

图2 前置放大电路

图2中R1和R2阻值选得较大,可明显减小皮肤接触电流,并与C5、C6和C7构成无源低通滤波器,截止频率一般小于150Hz即可,LA和RA分别为左右臂心电信号。R5取出左右臂的共模信息,送至右腿驱动以进一步减小共模信息。INA121的4和7脚为正负电源端。

U2C及外围阻容构成INA121的6脚输出的电压Vo1动态跟踪电路,正常情况下INA121的Vo1是以0V电位正负波动的,但可能某些原因,如LA和RA接触不良或人体本身电位等,Vo1可能正偏了或负偏了,由于U2C是反相接法,通过改变REF端电位,可自动校正正偏或负偏,其时间常数为0.7R6C8=0.7s,选得较长,对心电信号影响很小,最终结果是使波形保持在某一基线上。

3 右腿驱动电路

如图3 所示,总体是一个带通放大器。图2的INA121虽其本身共模共模抑制比达106dB,但LA和RA检测线不可能摆放对称,皮肤接触电阻也并不相等,且两输入端元件也不可能相等。因此仍有一定的干扰信号进入到检测电路中,特别是50Hz共模信号。为了降低共模干扰的影响,加入了右腿驱动电路。其Pz端取出输入端有共模信号,经U3B和U3A反相放大,重新通过接至右腿的RL端,作用于人体,则共模信号将相互抵消,从而达到减小共模干扰的目的。

图3 右腿驱动电路

4 带通滤波放大

图4所示的带通滤波放大由两个基本相同的同相放大器组成,带通,其总放大倍数Au2为:

则全电路总电压放大倍数为Au1* Au2=6050倍,是符合放大倍数要求。

图4每个带通放大低端截止频率为:

同理算得每个带通放大高端截止频率为284Hz。

图4 带通滤波放大

5 单片机设计

■5.1 单片机硬件电路

单片机采用STC的8G系列,为1T单片机,同等晶振下,比AT89C52快12倍,本电路采用内部晶振,为33MHz,那么相比12MHz晶振的AT89C52快33倍,这样更容易波形的输出显示,以及更能胜任其它任务,电路如图5所示。

图5的STC8G1K08A有6路的10位AD转换输入口,本电路只采用AD2口P32,P31和P30用作传统传输串口,其余口仍为普通IO口。

P1为程序下载口,需另配USB/TTL转换口,连至电脑USB口,用STC单片机下载程序软件stc-isp-15xx-v6.88即可下载程序,注意下载时内部IRC频率改为33MHz。下载完成后,改接淘晶驰串口屏即可。

■5.2 单片机程序设计

(1)初始化程序

void Port_ADC_Ser_int() {

P3M1 = 0x04;//0000 0100B端口配置

P3M0 = 0x00;//0000 0000B端口配置

P5M0 = 0x00;//0000 0000B端口配置

P5M1 = 0x00;//0000 0000B端口配置

P_SW2 |= 0x80;//可以访问扩展RAM区

ADCTIM=0x3F;//设置ADC时序控制

ADCCFG=0x0F;//ADC配置寄存器

ADC_CONTR=0x82;// ADC控制寄存器

AUXR=0xC0;//定时器1T方式

PCON =0x80;//串口速率加倍

TMOD=0X20;//8位定时器T1

TH1=0xF7;TL1=0xF7;//定时器初值

SCON=0x50;//串口方式1,允许接收

TR1=1;ES=1;EA=1;}//启动

ADC通道的端口应选择高阻类型,即ADC端口不能对被测电路电压有影响,配置值为11、10、01、00时分别对应为开漏、高阻、推挽、双向,配置值等于P3M1和P3M0相同位置各取一个值,从左至右分别对应P37~P30。上述子程序仅对P32置高阻,其余均为传统普通双向IO口。

ADC完成的数据为10位,分别存放在各8位的寄存器ADC_RES、ADC_RESL中,那么就有两种存放方式,如表1所示:(1)左对齐,把数据的高8位和低2位分别存放在ADC_RES、ADC_RESL中,ADC_RESL的低6位则空余而自动补0,最终ADC_RES和ADC_RESL合成将有16位数据,但有效数据仍为左边的10位;(2)右对齐,把数据的高2位和低8位分别存放在ADC_RES、ADC_RESL中,ADC_RES的高6位空余而自动补0,ADC_RES和ADC_RESL合成数据虽有16位,但有效也仍为10位数据。

表1 ADCCFG配置

配置寄存器ADCCFG的低4位为AD转换速度选择,其值越高转换则越慢,ADCCFG=0x0F,其意义为数据左对齐,AD转换速度Sysclk/2/16,Sysclk为系统时钟。

ADC_CONTR为ADC控制寄存器,如表2所示。Power为ADC电源控制,1为开启,0为关闭。

表2 ADC_CONTR控制寄存器

Start为1时,启动ADC;Flag为AD转换完成标志,完成即自动置1,须软件清零; Ch3Ch2Ch1Ch0为0101、0100、0011、0010、0001、0000时,ADC输 入口 对 应 选 择 P55、P54、P33、P32、P31、P30。ADC_CONTR=0x82=1000 0010B,意思即为开启ADC电源,选择P32通道转换。

ADC完成值送至串口屏显示,速度越快则波形显示越完整,同时单片机也可以腾出更多的时间完成其它任务。串口屏支持的波特率有9600、19200、38400、57600、115200、230400、256000、512000、921600等,以上述TH1=0xF7计算,串口波特率为:

上式中,PCON =0x80,即SMOD=1,AUXR= 0xC0,即定时器比传统AT89C51快12倍,式(6)波特率与230400相近,比传统9600快24倍。

(2)AD转换子程序

void ADC_P32() {

ADC_CONTR |= 0x40;//启动AD转换

_nop_();_nop_();

while(!(ADC_CONTR&0x20));//ADC 完成

ADC_CONTR &= ~0x20;//清零完成标志

ADC_Val=ADC_RES*256+ADC_RESL;}

//AD转换值合成,并赋值给变量ADC_Val。

(3)显示波形子程序

void disp_sine() {

ch0 = ADC_Val/256;//值折算

sprintf(buf,”add 1,1,%d”,ch0);

UART_Send_Str(buf);

UART_Send_END();}

由以上子程序可看出,只须把波形通道值ch0与AD转换值关连起来即可。

■5.3 淘晶驰串口屏上位机程序设计

首先要到淘晶驰官网www.tjc1688.com下载界面开发软件,再到资料中心中下载“STC单片机发正弦波给HMI屏显示(曲线波形)”例子,在该例子基础上进行修改即可,如图6参考修改文字。

图6 淘晶驰串口屏布局

须要注意的是:淘晶驰串口屏默认波特率为9600,由于前面单片机串口传输波特率为230400,则须在Pragram.s页面处的当前波特率值进行修改,加入上语句“baud=230400”即可。

6 实验调试

调试时首先要保证硬件电路是否正常工作,放大器至人体的测量线和导电片或导电夹可采用专用检测材料,采用导电夹时须在体表上涂抹生理盐水,以增加导电性。电路供电不建议采用普通开关电源或变压器降压整流滤波稳压供电,以免增大干扰而无法测量,最好用电池供电。

导电片或导电夹接触体表后,注意人体要安静稳定,先用示波器测量Vo1、Vo2处是否有正常心电信号,再撤去示波器,并观察淘晶驰串口屏是否有正常心电信号。实验效果图如图7所示。

图7 实验显示结果

7 结束语

本设计采用了专用低噪声仪表放大器INA121,简化了电路,STA8G1K08A-8PIN为8脚小型低价单片机,缩小了电路体积,便于于小型化和低成本,而直接采用淘晶驰串口屏官网的例子,更便于缩短开发周期,淘晶驰串口屏自带SD卡插口,因此可有存储和重播功能。经实验验证,实现了对心电信号的放大、滤波、AD转换和显示,达到实时测量心电信号的技术要求。

猜你喜欢

寄存器电信号右腿
基于窗函数法的低频肌电信号异常分类仿真
基于单片机的心电信号采集系统设计
神经元电生理模型的构建及分析
飞思卡尔单片机脉宽调制模块用法研究
移位寄存器及算术运算应用
数字电路环境下汽车控制电路信号设计
开平区中学运动员掷标枪最后用力右腿工作特征的研究
三步强壮你的双膝
一种心电信号采集放大电路的简单设计方法
“光”字找朋友