单片机心电信号数据采集系统的设计答辩(一)

时间:2024-09-11 21:47:10 电子信息工程毕业论文

单片机心电信号数据采集系统的设计答辩(一)

尊敬的各位评委老师,大家下午好,我叫   ,是自动化031班的学生,我的毕业设计题目是:单片机心电信号数据采集系统的设计。
首先,我先简单介绍一下本设计的意义。
心血管疾病是人类生命的最主要的威胁,而心电信号是诊断心血管疾病的主要依据,因此,实时检测病人的心电活动,设计信号采集系统具有非常重要的意义。
下面我开始介绍我的硬件电路设计。
首先介绍一下系统原理框图。
系统主要由前置放大电路,导联脱落检测电路,带通滤波电路,光电隔离电路,主放大电路,50赫兹掐波电路,35赫兹掐波电路,电平抬升电路,A/D转换电路,单片机处理电路以及液晶显示电路等几部分组成。
下面我介绍一下各部分的功能。
首先,前置放大电路的性能指标决定了整个电路的输入特性,而由于心电信号的频率低,信号弱,变化慢等特性,因此,需要前置放大具有高输入阻抗,高共模抑制比,低噪声等条件,针对以上的特点,选用了美国AD公司生产的AD620放大器,它具有高输入阻抗,低输入偏置电流,低噪音,低功耗等特性,很适合作为本设计的放大器,
AD620参数:CMRR为140DB,输入阻抗为10G欧,输入偏置电流小于2.0NA,工作电流为1.3MA。其可调增益1—1000倍,并可由公式                      来确定。使用时只需在1脚和8脚间接一电阻RG即可设置所需要的增益。
需要注意的是RG必须选用精密电阻。在此取5千欧。
 通过U3 可将R2、R3 上的人体共模信号检测出来用于驱动导线屏蔽层,以消除分布电容,提高输入阻抗和共模抑制比。U4、R5、R6、C1 构成的“浮地”驱动电路可将人体共模信号倒相放大后用于激励人体右腿,从而降低甚至抵消共模电压,以达到较强抑制50Hz 工频干扰之目的。U1、U2 主要用于稳定输入信号和提高输入阻抗,进一步提高共模抑制比。
电极脱落检测
 由于此系统应用于人体日常生活中,人体常常处于活动状态,这样输入电极很可能脱落,从而是系统不能正常工作。为此,设计了导联电极脱落检测电路如图3.3
所示。
 正常情况下,正负电极对人体皮肤形成的极化电压可以互相抵消。当一侧电极脱落时,将有较大的极化电压输入,通过一个比较器,当比较电压超出范围时,认为电极导联脱落,此时输出电平由正常时的高电平变为低电平,下级三极管导通,蜂鸣器发声报警。
 光电偶合电路的作用是为了进一步滤除干扰。
  带通滤波及主放大电路
 如图3.6 所示, 带通滤波由双运放集成电路OP2177 构成。OP2177 具有高精度、低偏置、低功耗等特性, 片内集成了两个运放, 可灵活组成各类放大和滤波电路。由于心电信号频带主要集中在0. 05~100Hz 左右, 频带较宽, 为此, 采用OP2177 的两个运放分别设计二阶压控有源高通和低通滤波器并组合成带通滤波。其中, U6A、C6、C7、R8、R9 构成高通滤波器,为不损失心电信号的低频成分, 其截止频率设计为f = 1/ [ 2π( C6C7R8R9) 1/ 2] =0. 03Hz。U6B、R10、R11、C8、C9 构成低通滤波器,同样,为不损失其高频成分, 截止频率设计为f =1/ [ 2π( C8C9R10R11) 1/ 2] = 130Hz。主放大电路由OP1177(U7) 、R12、R13 构成。考虑到心电信号幅度约为0~4mV, 而A/ D 转换输入信号要求1V左右, 因此, 整个信号电路的放大倍数需1000 倍左右。而前置放大约10 倍左右,因此本级放大倍数设计为100 倍左右,即G= 1 + R12/ R13≈100。
掐波及电平抬升电路
选用了BB(Burr-Brown)公司的UAF42,只需通过外接合适的外部电阻便可方便地实现陷波功能,同时可以克服以往陷波电路的电容电阻的匹配和损耗问题。
 另外:人体肌电随着个体的差异也会对心电信号造成不同程度的干扰;时甚至淹没心电信号,因而有必要加以抑制。研究表明,肌电干扰主要集中在35Hz 左右,为此,本系统还设计了图3.7所示的35Hz的无限增益多路反馈型二阶陷波器。该二阶陷波器由U10A、U10B 构成。其截止频率约为35Hz ,可符合实际要求。经过一系列信号调理后,陷波输出的心电信号为交变信号,而本系统中单片机内置ADC 转换输入电压范围为0~3.3V,因此,在送入ADC 之前还需进行电平抬升,在图3.7电平抬升部分由U11、R42、R43、R44 构成。
单片机的选择
 单片机作为数据采集系统的核心部分,在本系统的设计中占有举足轻重的地位。
单片机的选择
 单片机作为数据采集系统的核心部分,在本系统的设计中占有举足轻重的地位。与80C51兼容;
 具有4K可重复编程的闪存,可写入/擦除1000次以上,数据保存10年以上;
 操作频率:0Hz-24Hz;
 三层可编程的存储器上锁;
 128个位组的内部数据存储器;
 32条可变成的I/O线;
 2组16位定时器/计数器;
 6个中断源;
 可编程的串行通道;
低功率停顿和功率下降模式。
 以上特点使得AT89C51非常适合作为本数据采集系统的控制器。AT89C51与信号调理电路的连接见附录。
A/D转换芯片的选择
 (2)ADC0809 引脚 ADC0809 是 28 脚双列直插式封装,其引脚图如图3.9所示,各引脚的功能如下:
 D7~D0:8位数字量输出引脚;
 IN0~IN7:8 路模拟量输入引脚;
 VCC:+5 V 工作电压;
 GND:接地端;
 REF(+):参考电压正连接端;
 REF(-):参考电压负连接端;
 START:A/D 转换启动信号输入端;
 ALE:地址锁存允许信号输入端;
 EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平;
 OE:输出允许控制端,即完成转换后数字量输出允许控制信号输入端口,高电平有效,用以打开三态数据输出锁存器;
 CLK:时钟信号输入端;
 ADDA、ADDB、ADDC:地址输入线,用三位编码组成 3-8 译码器,选通 8 路模拟电子开关,实现 IN0~IN7八个通道中的通道之间可进行切换。
 ADC0809 可以以查询方式或中断方式与单片机 AT89C52 相连,本课题采用中断方式,并采用定时器 T0 定5ms 中断,进行 200 Hz 采样。ADC0809 与AT89C51
单片机的接口如图 3.10 所示。由于 ADC0809 片内无时钟,可利用 AT89C51提供的地址锁在允许信号 ALE 经 D 触发器二分频后获得 ALE 脚的频率是 AT89C51 单片机时钟频率的 1/6(但要注意的是,每当访问外部数据存储器时,将跳过一个 ALE 脉冲)。如果单片机时钟频率采用 12MHz,经二分频后符合 ADC0809 对时钟频率的要求。由于 ADC0809 具有输出三态锁存器,其 8 位数据输出引脚可直接与数据总线相连。地址译码引脚 ADDA、ADDB、ADDC 分别与地址总线的低三位 A0、A1、A2 相连,以选通 IN0~IN7 中一个通路,本课题只用到一个通道。将 P2.7(地址总线 A15)作为片选信号、在启动 A/D 转换时,由单片机的写信号和 P2.7 控制 ADC0809 的地址锁存和转换启动,由于 ALE 和START 连在一起,因此 ADC0809 在锁存通道地址的同时,启动并进行转换。在读取转换结果时,用低电平的读信号和 P2.7 脚经一级或非门后,产生的正脉冲作为 OE 信号用以打开三态锁存器,由图 3.10可知,P2.7应设为低电平,ADC0809 芯片选中第三通道的地址为 7FFB H。
液晶显示硬件设计
为了能够清晰的显示出系统所检测到的心电信号波形,特采用了高清晰的液晶显示作为系统的输出设备。
液晶显示模块的选择
 选则合适的液晶模块对于心电采集系统的外观和功能的实现起到至关重要的作用。
液晶模块有以下3种类型[13-14]。
 (1)数显液晶模决;
 (2)液晶点阵字符模块;
 (3)点阵图形液晶模块;
T6963C 液晶显示控制器是日本东芝公司的产品, 多用于中小规模的液晶显示器件, 常被装配在图形液晶显示模块上, 以内藏控制器式图形液晶显示模块的形式出现。它能与80 系列的8 位微处理器直接接口。可以图形方式、字符方式及图形和字符合成方式进行显示, 还可以实现字符方式下的特征显示, T6963C最大的特点是具有独特的硬件初始设置功能,由于显示驱动所需的参数(如占空比系数、驱动传输的字节数/行以及字符的字体选择等)均由引脚电平来设置,因此T6963C的初始化在上电时就已基本设置完成,而对显示功能的设置则由软件初始化来完成[19-20]。
液晶电源电路设计
液晶电源电路设计的主要作用是为液晶显示模块提供工作电压。
系统软件设计
4.1主程序及数据采集中断程序
 系统上电后,首先要进行系统初始化设置,包括复位方式、时钟源、电压基准、中断、ADC的设置,这些设置通过设置相应的特殊功能寄存器来进行。本系统选用外部时钟源,频率12M。由于心电信号的主要频率范围为0.05—100Hz,根据采样定理,为了不失真的采集信号,设计时将采样定为200 Hz,即心电数据采样周期为5ms。为此设置ADC启动方式采用定时器1溢出方式;转换采用中断方式。其主程序及数据采集程序流程图如图4.1及4.2所示。
液晶模块软件设计
 LCD 软件的设计主要包括初始化子程序和显示子程序。初始化子程序又包括清显示RAM 子程序和驱动子程序及对显示功能的设置。在进行显示之前, 应先对显示缓冲区进行清零, 也即先执行清显示RAM 子程序[21-22]; 而在对LCD 进行读写等操作之前, 必须先执行驱动子程序, 对其相应的标志位进行判断; 对显示功能的设置主要包括设置文本区首址和宽度、设置图形区首址和宽度、显示方式设置、显示开关设置等。
 图形区首地址:在点阵式液晶图形显示器中,LCD屏幕上的每个显示单元对应一个地址,从左上角开始,从左到右,从上到下。在图形显示方式下,显示单元的单位是1×8点阵(即一个字节),对应于240×64的屏幕,它有240×64÷8=1920个显示单元,一屏的地址范围是0-1919。命令控制字是24H和42H。
 图形区宽度:它用来调整使用的有效显示窗口宽度,表示每行可有效显示的单元数。对于240×64的显示屏,最多每行有240/8=30个显示单元。命令控制字是43H。
 显示开关设置是将相应的显示方式打开,例如要显示图形,则将图形方式控制位置1。命令控制字是98H。
 曲线显示的原理是将第1次A/D转换的结果在第0列显示,第2次转换的结果在第1列显示,……,第240次转换的结果在第239列显示,第241次转换在第1列显示,……,依次循环,在液晶屏幕上就会出现根据信号实时变化的心电曲线。
 利用液晶显示器显示波形时,应首先建立显示坐标系,可把坐标系的原点设在显示屏的左下角处,这样可使所有点都处在第一象限内,即坐标(X,Y)的值都为正值,以使算法简化。其中X表示1~240个点,Y表示各个点所对应的幅值。幅值Y每增加1,显示缓冲区的地址将减少10H。具体公式如下:  Y=X-10H(D/A)  其中D为ADC0809采集的数字量,A为该数字量缩小的倍数。这样,就可建立液晶屏面与直角坐标的一一对应关系。  如果把采集的数据放在RAM中,液晶显示器只能显示240点。为了能对采集来的数据有一个全面的了解,可以通过改变在RAM中的读数间隔来控制波形的显示,即每读完一个数据,存放数据的RAM地址便加N,然后通过设定N的大小来放大或回缩波形。在实际使用中,由于相邻两个点幅值的不同,可能会造成波形的不连续而影响视觉效果。因此,为了使波形能够连续显示,可以在显示屏每显示完一个点后,判断与前一个幅值的差距,若大于08H,则在两点之间插入若干个点以使两点连续起来,然后再进行下一个点的显示。相应操作表格说明见表4.1-4.7所示。显示程序流程图如图4.5所示。各子程序清单见附录。
4.3.1  基本操作时序
 读状态:输入:C/D=H,CE=L,RD=L,WR=H,输出:D0-D7=状态字
 写指令:输入:C/D=H,CE=L,RD=H,WR=L,D0-D7=指令码 输出:无
 读数据:输入:C/D=H,CE=L,RD=L,WR=H,输出:D0-D7=数据
 写数据:输入:C/D=H,CE=L,RD=H,WR=L,D0-D7=数据   输出:无
4.3.2  状态字说明
 控制器可处于两种工作状态,指令数据读写状态和连续数据读写状态。
 指令数据读写状态:在此状态下,对控制器每次进行操作之前,都必须进行读写检测,确保STA0和STA1都为1。
 连续数据读写状态:在此状态下,对控制器每次进行操作之前,都必须进行连续读写检测,确保STA2和STA3都为1。
4.3.3  指令写入方式
 指令写入方式可分三种:无参数指令、单参数指令、双参数指令。
 无参数指令:开始—读写检测—写指令—结束。
 单参数指令:开始—读写检测—写数据—读写检测—写指令—结束。
 双参数指令:开始—读写检测—写数据(参数一)—读写检测—写数据(参数二)—读写检测—写指令—结束。
4.3.4  指令说明
 控制器内部设有一个数据地址指针,可通过它来访问内部32KRAM。
 在连续指令开始后,控制器进入连续数据读写状态,以后每读写一次数据,数据地址指针自动加一,直到向控制器发出连续读写结束指令后,才能退出此状态。
 在连续数据读写状态,每次读之前必须进行连续读写检测。在连续数据读写状态,不可用除连续读写结束指令外的其他指令。在连续数据读写以后,务必向控制器发连续读写结束指令,退出连续数据读写状态位写入。
4.3.5  初始化过程(复位过程)
 写指令80H:设置显示模式为0R模式。
 写指令98H:开显示。
 写指令43H:设置现实缓冲区首地址。
STA0 指令读写使能  1:允许 0:禁止  
STA1 数据读写使能  1:允许 0:禁止 
STA2 数据连续读使能 1:允许 0:禁止 
STA3 数据连续写使能 1:允许 0:禁止 
STA4 未用  
STA5 未用  
STA6 未用  
STA7 液晶屏当前显示状态  1:显示 0:关闭 
表4.2 显示模式设置
参数1  参数2  指令码  功能 
 无  无  80H  设置显示模式为0R模式  
表4.3显示开/关设置
参数1  参数2  指令码数 功能 
无 无  90H   关显示  
无 无 98H  开显示 
表4.4  显示缓冲区设置
参数 1 参数2  指令码 功能 
地址低字节 地址高字节  42H  显示缓冲区首地址  
1EH  无  43H 设置显示每行字节数  
表4.5  数据指针设置
参数 1 参数2 指令码  功能 
地址低字节 地址高字节 24H  设置数据地址指针 
表4.6  数据读写
参数1  参数2  指令码  功能单位  
数据字节 无  C0H   写数据且数据地址指针加一  
无 无 C1H 读数据且数据地址指针加一 
数据字节 无 C2H   写数据且数据地址指针减一  
无 无 C3H 读数据且数据地址指针减一 
数据字节 无 C4H  写数据且数据地址指针不变 
无 无 C5H  写数据且数据地址指针不变 
表4.7数据连续读写
参数1  参数2  指令码  功能 
无 无  B0H  连续写开始  
无 无  B1H  连续读开始 
无 无  B2H  连续读写结束 
 前置放大电路,从强的噪声背景中提取心电信号。
 带通滤波电路,使频率为0.05-100Hz的心电信号通过,该范围以外的信号将大幅度衰减掉。
 导联电极脱落检测电路,检测电极是否脱落。
 主放大电路,将前级放大的心电信号进行再次放大。
 50Hz掐波电路,用于滤掉50Hz工频干扰。
 35Hz掐波电路,用于滤除肌电干扰。
 电平抬升电路,用于抬升电平。
 数据采集电路,采集心电信号并进行处理。
 液晶显示器输出电路,输出心电波形。

【单片机心电信号数据采集系统的设计答辩(一)】相关文章:

基于USB接口的心电信号数据采集系统03-19

一种用单片机控制的光谱数据采集系统03-18

基于USB接口的数据采集系统设计03-18

基于Verilog HDL设计的自动数据采集系统03-21

螺纹半角测量仪数据采集系统的设计03-07

基于Web的MCF5249数据采集系统的设计03-19

低轼耗数据采集系统的USB接口设计03-18

基于DSP和USB的数据采集处理系统的设计03-07

基于USB2.0的高速同步数据采集系统设计03-19