版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 信息学院电科专业课程设计报告课程设计报告 设计题目:心电信号采集模块的设计与开发 班 级: 学 号: 姓 名: 指导教师: 设计时间:摘 要针对心电信号的特点进行心电信号的采集、数据转换模块的设计与开发。本文设计一种用于心电信号采集的电路,然后进行A/D转换,使得心电信号的频率达到采样要求。人体的心电信号是一种低频率的微弱信号,由于心电信号直接取自人体,所以在心电采集的过程中不可避免会混入各种干扰信号。为获得含有较小噪声的心电信号,需要对采集到的心电信号做降噪处理。本文通过滤波的方法将噪声从信号中分离。并将采集到的小信号放大约1000倍,送入数模转换模块,让单片机处理。关键词: 心电信号采集
2、,降噪,A/D转换放大目 录 1. 课程设计任务及要求11.1 设计任务11.2 设计要求12. 理论设计12.1 方案论证12.2 电路原理框图说明22.3 单元电路设计22.3.1 前置放大及反馈电路22.3.2 带通滤波电路32.3.3 50Hz陷波电路42.3.4 电压放大电路42.3.5 电平抬升电路52.4 整体电路图仿真63. 硬件调试63.1 焊接及调试过程63.2 心电信号采集73.3 故障分析74. 嵌入式软件设计74.1 开发软件CCS简介74.2 软件总体设计框图84.3 软件分步配置:94.3.1 配置ADC12:94.3.2 配置LCD:94.4 软件主程序95.
3、整体效果146. 结论157. 参考文献161. 课程设计任务及要求1.1 设计任务 了解心电信号特点,设计心电信号调理电路,调理电路包括前端放大和右腿 驱动电路、带通滤波和50Hz陷波电路、主放大和电平抬高电路等。学习MPS430单片机原理,通过对心电信号采集,实现对脉搏率的测量及显示。 焊接相应电路,完成调试。1.2 设计要求在设计中了解心电信号特点,设计心电信号调理电路,调理电路包括前端放大和右腿驱动电路、带通滤波和50Hz陷波电路、主放大和电平抬高电路等。2. 理论设计2.1 方案论证将整个设计分成硬件部分和软件部分,在硬件设计部分又可细分为如下几个部分:前置放大、带通滤波、陷波、电压
4、放大、电平抬升以及反馈。根据已有的器件,本设计使用AD620作为前置放大级。带通滤波部分,分成了高通与低通两部分,为了提高滤波的效果,高通部分采低通部分采用了二阶切比雪夫低通滤波器,带通纹波为3dB。50Hz滤波陷波电路考虑了Fliege结构点阻滤波器和“双T”型陷波电路,实际焊接后发现后者的效果明显更稳定,故改为采用了“双T”型陷波电路。2.2 电路原理框图说明图2-1 系统结构图如图2-1所示,本系统硬件部分主要由前置放大、带通滤波、陷波、电压放大、电平抬升等电路构成;软件部分由基于Msp430 Launchpad的AD采集和液晶显示等程序编写构成。2.3 单元电路设计2.3.1 前置放大
5、及反馈电路由于人体心电信号的特点,加上背景噪声较强,采集信号时电极与皮肤间的阻抗大且变化范围也较大,要求前级放大电路应满足高输入阻抗;高共模抑制比;低噪声、低漂移、非线性度小;合适的频带和动态范围等特点。 为此,选用仪用放大器AD620作为前级放大。该放大器有较高的共模抑制比(CMRR),温度稳定性好,放大频带宽,噪声系数小且具有调节方便的特点,是生物医学信号放大的理想选择。根据小信号放大器的设计原则,前级的增益不能设置太高,因为前级增益过高将不利于后续电路对噪声的处理。 仿真过程采用O5 MV,12 Hz的差分信号源为模拟心电输入来模拟电路的放大过程,结果满足要求,如图
6、2-2所示。图2-2 前置放大及反馈电路2.3.2 带通滤波电路心电信号频带主要集中在005-100 Hz,因此带通滤波器用高低通滤波器来构成,以滤除干扰信号。经过高通滤波后,可以大大削弱01 Hz以下因呼吸等引起的基线漂移程度,经过低通滤波后,也可以较好的削弱100Hz以上的干扰信号。图2-3 带通滤波电路2.3.3 50Hz陷波电路在我国采用的是50hz频率的交流电,所以在对信号进行采集处理和分析时,会存在50hz的工频干扰,对我们的信号处理造成很大干扰,因此要设计一个50hz双T陷波器来滤除工频干扰。滤波器的中心频率和抑制带宽BW之间的关系为: 中心频率:图2-4 50Hz陷波
7、电路2.3.4 电压放大电路心电信号通常比较微弱,至多为mV量级,需要用较大增益的放大电路将信号放大到方便分析和采集的量级。该放大电路放大倍数为:图2-5 电压放大电路2.3.5 电平抬升电路由于Msp430 Launchpad不能采集负电压,直接采集放大后的心电信号将会使液晶屏上波形失真,因此设计该电压抬升电路并通过电位器调节信号整体电平。图2-6 电平抬升电路2.4 整体电路图仿真图2-7 整体电路图仿真3. 硬件调试3.1 焊接及调试过程为了使作品更加具备实用性和观赏性,焊接电路时采用双面面包板并在不影响电路性能前提下尽可能减小电路面积。考虑“飞线”过多过长可能降低电路稳定性、增加干扰,
8、焊接过程尽量少使用引线,缩短导线长度。将VCC,VEE,GND及各级输入输出用一定量排针引出,方便调试,降低出错率。图3-1 硬件部分3.2 心电信号采集 经过采集电路在示波器显示的心电信号如图3-2所示,信号无明显失真,经测量和计算,该同学心率此时约为1.4Hz。 图3-2 成功采集的心电信号3.3 故障分析 心电信号因人而异,不同的人测量,效果可能会出现较大差异,可以选择信号明显波形较好的人做实验。 实验中使用了3种运放,都采用双电源接法,焊接时要注意不要短路,焊接完毕,应先检查后通电。 Msp430 Launchpad采集电压范围为0至5V,需调节抬升电路电位器使其输出电压值合适的心电信
9、号。4. 嵌入式软件设计本设计软件部分的设计用Msp430 Launchpad来实现。4.1 开发软件CCS简介 CCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。 CCS有两种工作模式,即软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。 CCS的开发系统主要由以下组件构成: TMS320C54x集成代码产生工具;
10、CCS集成开发环境; DSP/BIOS实时内核插件及其应用程序接口API; 实时数据交换的RTDX插件以及相应的程序接口API; 由TI公司以外的第三方提供的各种应用模块插件。 CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C+和汇编的混合编程。4.2 软件总体设计框图 F5529 ADC12 LCD模拟信号 数据处理 显示logo显示工程相关信息4.3 软件分步配置:4.3.1 配置ADC12:F5529内部ADC为8位12通道模数转换器。实验中将P6.4作为模拟 信号的输入端口。时钟源为MCLK的3分频。 ADC12CTL0 = ADC12SH
11、T02 + ADC12ON; / Sampling time, ADC12 on ADC12CTL1 |= ADC12SSEL0 + ADC12DIV2; /ADC12SSEL 0:mclk 1:smclk ADC12CTL1 |= ADC12SHP; / Use sampling timer ,0 clock ADC12IE = 0x01; / Enable interrupt ADC12CTL0 |= ADC12ENC; P6SEL |= 0x10; / P6.4 ADC option select4.3.2 配置LCD1602:采用F5529内置的点阵屏,相关详细配置参见F5529官方“
12、HAL_Dogs102x6.c”4.4 软件主程序/*/ MSP430F552x/ -/ /| |/ | | |/ -|RST |/ | |/ Vin ->|P6.4/CB0/A0 |/*#include <msp430.h>#include "HAL_Dogs102x6.h"#include"info.h"#include <math.h>int read;volatile unsigned int x = 0;volatile unsigned int flag = 0;volatile unsigned int val
13、ue = 0;volatile unsigned int count = 0;volatile float freq = 1.4;volatile unsigned int i;#define Num_of_Results 2volatile unsigned int resultsNum_of_Results; / Needs to be global in this / example. Otherwise, the / compiler removes it because it / is not used for anything.uint16_t timeoutCounter;voi
14、d init_lcd() uint8_t contrast = *(unsigned char *)contrastSetpointAddress); /读取FLASH中对比度值uint8_t brightness = *(unsigned char *)brightnessSetpointAddress); /读取FLASH中背光值 / Set up LCD Dogs102x6_init(); /初始化LCD Dogs102x6_backlightInit(); /背光初始化 / Contrast not programed in Flash Yet if (contrast = 0xFF)
15、 /若当前FLASH中无对比度值,则将对比度值设为11(默认) / Set Default Contrast contrast = 11; / Brightness not programed in Flash Yet if (brightness = 0xFF) /若当前FLASH中无背光值,则将背光值设为11(默认) / Set Default Brightness brightness = 0x11;/ Dogs102x6_setBacklight(brightness); /设置初始背光值/ Dogs102x6_setContrast(contrast); /设置初始对比度值 Dogs
16、102x6_clearScreen(); /显示文字说明: /Dogs102x6_stringDraw(3, 0, " pan ", DOGS102x6_DRAW_NORMAL);int main(void) WDTCTL = WDTPW + WDTHOLD; / Stop WDT /Board_init(); /初始化GPIO / Globally enable interrupts ADC12CTL0 = ADC12SHT02 + ADC12ON; / Sampling time, ADC12 on ADC12CTL1 |= ADC12SSEL0 + ADC12DIV2
17、;/ADC12SSEL 0:mclk 1:smclk ADC12CTL1 |= ADC12SHP; / Use sampling timer ,0 clock ADC12IE = 0x01; / Enable interrupt ADC12CTL0 |= ADC12ENC; P7DIR |= 0x01; / P7.0 output P6SEL |= 0x10; / P6.4 ADC option select P1DIR |= 0x01; / P1.0 output TA1CCTL0 = CCIE; / CCR0 interrupt enabled TA1CCR0 = 2040;/ (1/32
18、768)*205 =5 ms ? TA1CTL = TASSEL_1 + MC_1 + TACLR; / ACLK, upmode, clear TAR init_lcd(); /logo_init(); _enable_interrupt(); /使能全局中断 /info_init(); Dogs102x6_clearScreen(); buttonsPressed = 0; /_disable_interrupt(); /关闭全局中断 while (1) ADC12CTL0 |= ADC12SC; / Start sampling/conversion _bis_SR_register(L
19、PM0_bits + GIE); / LPM0, ADC12_ISR will force exit _no_operation(); / For debugger /Dogs102x6_stringDraw(8, 0, " pan ", DOGS102x6_DRAW_NORMAL); / Timer0_A5 Interrupt Vector (TAIV) handler#pragma vector=TIMER1_A0_VECTOR_interrupt void TIMER1_A0_ISR(void) P7OUT = 0x01; / Toggle P1.0#pragma v
20、ector = ADC12_VECTOR_interrupt void ADC12_ISR(void) static unsigned char index = 0;if(x<103) x+;else if (buttonsPressed) if(freq>1.0 && freq <1.5) ADC12IE = 0x00; / Enable interrupt _bic_SR_register_on_exit(LPM0_bits); / Exit active CPU else flag = 0; value = 0; count = 0; buttonsPr
21、essed = 0; Dogs102x6_clearScreen(); x=0; else Dogs102x6_clearScreen(); x=0; switch(_even_in_range(ADC12IV,34) case 0: break; / Vector 0: No interrupt case 2: break; / Vector 2: ADC overflow case 4: break; / Vector 4: ADC timing overflow case 6: / Vector 6: ADC12IFG0 read = ADC12MEM0; resultsindex =
22、ADC12MEM0; / Move results index+; / Increment results index, modulo; Set Breakpoint1 here if (index = 2) index = 0; Dogs102x6_pixelDraw(x,41-ADC12MEM0/100 + 10,DOGS102x6_DRAW_NORMAL); if( x>1 && abs(results0-results1) > 200 && x < 102/*the last line don't draw*/) Dogs102
23、x6_lineDraw(x,41-results0/100 + 10,x,41-results1/100 + 10,DOGS102x6_DRAW_NORMAL); if(abs(results0-results1) > 200 && flag=0) flag = 1; if(flag = 1) value+; count+; if( abs(results0-results1) > 200 && count > 5) flag = 2; freq = (float)102/value/5*2; /buttonsPressed = 1; /*Do
24、gs102x6_stringDraw(7, 0, "ECG FREQ:", DOGS102x6_DRAW_NORMAL); Dogs102x6_charDraw(7, 60, 0x30+(int)freq%10, DOGS102x6_DRAW_NORMAL); Dogs102x6_stringDraw(7, 67, ".", DOGS102x6_DRAW_NORMAL); Dogs102x6_charDraw(7, 74, 0x30+(int)(freq*10)%10, DOGS102x6_DRAW_NORMAL); Dogs102x6_stringDraw(7,90, "HZ", DOGS102x6_DRAW_NORMAL);*/ _bic_SR_register_on_exit(LPM0_bits); / Exit active CPU case 8: break; / Vector 8: ADC12IFG1 case 10: break; / Vector 10: ADC12IFG2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 欧亚共同体课程设计
- 自动驾驶技术应用总结
- 体育娱乐行业人力资源总结
- 新媒体行业技术工作概览
- 音响行业演出场地卫生消毒方案
- 食品安全销售总结
- 非公开发行股票认购协议三篇
- 2024年税务师题库(轻巧夺冠)
- 2024年美术教案7篇合集
- 2024年福建开放大学《网络测试与故障维修》形成性考核参考试题库(含答案)
- 中建安全标准化图册图集(上下全集)(全电子版)
- 高一物理必修一思维导图
- 锚索张拉和锁定记录表
- 2016年校本课程--------合唱教案1
- 【原创】《圆柱与圆锥》复习课教教学设计
- 《中国药典》规定中药饮片用量
- 国网合肥供电公司城市新建住宅小区电力建设实施细则
- 初中物理元件实物图及一些常用图形
- 中小学生备战期末迎接期末考试动员班会PPT
- 房测之友BMF用户说明书
- 国自然模板(空白版)
评论
0/150
提交评论