精选文档心电信号采集模块的设计与开发课程设计_第1页
精选文档心电信号采集模块的设计与开发课程设计_第2页
精选文档心电信号采集模块的设计与开发课程设计_第3页
精选文档心电信号采集模块的设计与开发课程设计_第4页
精选文档心电信号采集模块的设计与开发课程设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息学院电科专业课程设计报告课程设计报告设计题目:心电信号采集模块的设计与开发班级:学号:姓名:指导教师:设计时间:摘要针对心电信号的特点进行心电信号的采集、数据转换模块的设计与开发。本文设计一种用于心电信号采集的电路,然后进行A/D转换,使得心电信号的频率达到采样要求。人体的心电信号是一种低频率的微弱信号,由于心电信号直接取自人体,所以在心电采集的过程中不可避免会混入各种干扰信号。为获得含有较小噪声的心电信号,需要对采集到的心电信号做降噪处理。本文通过滤波的方法将噪声从信号中分离。并将采集到的小信号放大约1000倍,送入数模转换模块,让单片机处理。关键词:心电信号采集,降噪,A/D转换放大目录160631.课程设计任务及要求 1268071.1设计任务 1265051.2设计要求 164182.理论设计 1199492.1方案论证 163132.2电路原理框图说明 2275122.3单元电路设计 2197622.3.1前置放大及反馈电路 2277272.3.2带通滤波电路 3130872.3.350Hz陷波电路 4117072.3.4电压放大电路 491082.3.5电平抬升电路 546352.4整体电路图仿真 6291943.硬件调试 6108593.1焊接及调试过程 6145063.2心电信号采集 7266133.3故障分析 737774.嵌入式软件设计 7303564.1开发软件CCS简介 7224764.2软件总体设计框图 847834.3软件分步配置: 9327064.3.1配置ADC12: 9116504.3.2配置LCD: 968624.4软件主程序 9120215.整体效果 14243986.结论 15176747.参考文献 16课程设计任务及要求设计任务⑴了解心电信号特点,设计心电信号调理电路,调理电路包括前端放大和右腿驱动电路、带通滤波和50Hz陷波电路、主放大和电平抬高电路等。⑵学习MPS430单片机原理,通过对心电信号采集,实现对脉搏率的测量及显示。⑶焊接相应电路,完成调试。设计要求在设计中了解心电信号特点,设计心电信号调理电路,调理电路包括前端放大和右腿驱动电路、带通滤波和50Hz陷波电路、主放大和电平抬高电路等。理论设计方案论证将整个设计分成硬件部分和软件部分,在硬件设计部分又可细分为如下几个部分:前置放大、带通滤波、陷波、电压放大、电平抬升以及反馈。根据已有的器件,本设计使用AD620作为前置放大级。带通滤波部分,分成了高通与低通两部分,为了提高滤波的效果,高通部分采低通部分采用了二阶切比雪夫低通滤波器,带通纹波为3dB。50Hz滤波陷波电路考虑了Fliege结构点阻滤波器和“双T”型陷波电路,实际焊接后发现后者的效果明显更稳定,故改为采用了“双T”型陷波电路。电路原理框图说明图2-1系统结构图如图2-1所示,本系统硬件部分主要由前置放大、带通滤波、陷波、电压放大、电平抬升等电路构成;软件部分由基于Msp430Launchpad的AD采集和液晶显示等程序编写构成。单元电路设计前置放大及反馈电路由于人体心电信号的特点,加上背景噪声较强,采集信号时电极与皮肤间的阻抗大且变化范围也较大,要求前级放大电路应满足高输入阻抗;高共模抑制比;低噪声、低漂移、非线性度小;合适的频带和动态范围等特点。

为此,选用仪用放大器AD620作为前级放大。该放大器有较高的共模抑制比(CMRR),温度稳定性好,放大频带宽,噪声系数小且具有调节方便的特点,是生物医学信号放大的理想选择。根据小信号放大器的设计原则,前级的增益不能设置太高,因为前级增益过高将不利于后续电路对噪声的处理。

仿真过程采用O.5MV,1.2Hz的差分信号源为模拟心电输入来模拟电路的放大过程,结果满足要求,如图2-2所示。图2-2前置放大及反馈电路带通滤波电路心电信号频带主要集中在0.05--100Hz,因此带通滤波器用高低通滤波器来构成,以滤除干扰信号。经过高通滤波后,可以大大削弱0.1Hz以下因呼吸等引起的基线漂移程度,经过低通滤波后,也可以较好的削弱100Hz以上的干扰信号。图2-3带通滤波电路50Hz陷波电路在我国采用的是50hz频率的交流电,所以在对信号进行采集处理和分析时,会存在50hz的工频干扰,对我们的信号处理造成很大干扰,因此要设计一个50hz双T陷波器来滤除工频干扰。滤波器的中心频率和抑制带宽BW之间的关系为:

中心频率:图2-450Hz陷波电路电压放大电路心电信号通常比较微弱,至多为mV量级,需要用较大增益的放大电路将信号放大到方便分析和采集的量级。该放大电路放大倍数为:图2-5电压放大电路电平抬升电路由于Msp430Launchpad不能采集负电压,直接采集放大后的心电信号将会使液晶屏上波形失真,因此设计该电压抬升电路并通过电位器调节信号整体电平。图2-6电平抬升电路整体电路图仿真图2-7整体电路图仿真硬件调试焊接及调试过程为了使作品更加具备实用性和观赏性,焊接电路时采用双面面包板并在不影响电路性能前提下尽可能减小电路面积。考虑“飞线”过多过长可能降低电路稳定性、增加干扰,焊接过程尽量少使用引线,缩短导线长度。将VCC,VEE,GND及各级输入输出用一定量排针引出,方便调试,降低出错率。图3-1硬件部分心电信号采集经过采集电路在示波器显示的心电信号如图3-2所示,信号无明显失真,经测量和计算,该同学心率此时约为1.4Hz。图3-2成功采集的心电信号故障分析心电信号因人而异,不同的人测量,效果可能会出现较大差异,可以选择信号明显波形较好的人做实验。实验中使用了3种运放,都采用双电源接法,焊接时要注意不要短路,焊接完毕,应先检查后通电。Msp430Launchpad采集电压范围为0至5V,需调节抬升电路电位器使其输出电压值合适的心电信号。嵌入式软件设计本设计软件部分的设计用Msp430Launchpad来实现。开发软件CCS简介CCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。

CCS有两种工作模式,即

软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。

硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。

CCS的开发系统主要由以下组件构成:

①TMS320C54x集成代码产生工具;

②CCS集成开发环境;

③DSP/BIOS实时内核插件及其应用程序接口API;

④实时数据交换的RTDX插件以及相应的程序接口API;

⑤由TI公司以外的第三方提供的各种应用模块插件。

CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C++和汇编的混合编程。软件总体设计框图F5529ADC12LCD模拟信号数据处理显示logo显示工程相关信息软件分步配置:配置ADC12:F5529内部ADC为8位12通道模数转换器。实验中将P6.4作为模拟信号的输入端口。时钟源为MCLK的3分频。ADC12CTL0=ADC12SHT02+ADC12ON;//Samplingtime,ADC12onADC12CTL1|=ADC12SSEL0+ADC12DIV2; //ADC12SSEL0:mclk1:smclkADC12CTL1|=ADC12SHP;//Usesamplingtimer,0clockADC12IE=0x01;//EnableinterruptADC12CTL0|=ADC12ENC;P6SEL|=0x10;//P6.4ADCoptionselect配置LCD1602:采用F5529内置的点阵屏,相关详细配置参见F5529官方“HAL_Dogs102x6.c”软件主程序//******************************************************************************//MSP430F552x/////|\||//|||//--|RST|//||//Vin-->|P6.4/CB0/A0|////******************************************************************************#include<msp430.h>#include"HAL_Dogs102x6.h"#include"info.h"#include<math.h>intread;volatileunsignedintx=0;volatileunsignedintflag=0;volatileunsignedintvalue=0;volatileunsignedintcount=0;volatilefloatfreq=1.4;volatileunsignedinti;#defineNum_of_Results2volatileunsignedintresults[Num_of_Results];//Needstobeglobalinthis//example.Otherwise,the//compilerremovesitbecauseit//isnotusedforanything.uint16_ttimeoutCounter;voidinit_lcd(){ uint8_tcontrast=*((unsignedchar*)contrastSetpointAddress);//读取FLASH中对比度值 uint8_tbrightness=*((unsignedchar*)brightnessSetpointAddress);//读取FLASH中背光值 //SetupLCD Dogs102x6_init();//初始化LCD Dogs102x6_backlightInit();//背光初始化 //ContrastnotprogramedinFlashYet if(contrast==0xFF)//若当前FLASH中无对比度值,则将对比度值设为11(默认) //SetDefaultContrast contrast=11; //BrightnessnotprogramedinFlashYet if(brightness==0xFF)//若当前FLASH中无背光值,则将背光值设为11(默认) //SetDefaultBrightness brightness=0x11;// Dogs102x6_setBacklight(brightness);//设置初始背光值// Dogs102x6_setContrast(contrast);//设置初始对比度值 Dogs102x6_clearScreen(); //显示文字说明: //Dogs102x6_stringDraw(3,0,"pan",DOGS102x6_DRAW_NORMAL);}intmain(void){WDTCTL=WDTPW+WDTHOLD;//StopWDT//Board_init();//初始化GPIO//GloballyenableinterruptsADC12CTL0=ADC12SHT02+ADC12ON;//Samplingtime,ADC12onADC12CTL1|=ADC12SSEL0+ADC12DIV2; //ADC12SSEL0:mclk1:smclkADC12CTL1|=ADC12SHP;//Usesamplingtimer,0clockADC12IE=0x01;//EnableinterruptADC12CTL0|=ADC12ENC;P7DIR|=0x01;//P7.0outputP6SEL|=0x10;//P6.4ADCoptionselectP1DIR|=0x01;//P1.0outputTA1CCTL0=CCIE;//CCR0interruptenabledTA1CCR0=2040;//(1/32768)*205=5ms??TA1CTL=TASSEL_1+MC_1+TACLR;//ACLK,upmode,clearTARinit_lcd();//logo_init();__enable_interrupt();//使能全局中断//info_init();Dogs102x6_clearScreen();buttonsPressed=0;//__disable_interrupt();//关闭全局中断while(1){ADC12CTL0|=ADC12SC;//Startsampling/conversion__bis_SR_register(LPM0_bits+GIE);//LPM0,ADC12_ISRwillforceexit__no_operation();//Fordebugger//Dogs102x6_stringDraw(8,0,"pan",DOGS102x6_DRAW_NORMAL);}}//Timer0_A5InterruptVector(TAIV)handler#pragmavector=TIMER1_A0_VECTOR__interruptvoidTIMER1_A0_ISR(void){P7OUT^=0x01;//ToggleP1.0}#pragmavector=ADC12_VECTOR__interruptvoidADC12_ISR(void){ staticunsignedcharindex=0; if(x<103){ x++; } else{if(buttonsPressed){ if(freq>1.0&&freq<1.5){ ADC12IE=0x00;//Enableinterrupt __bic_SR_register_on_exit(LPM0_bits);//ExitactiveCPU }else{ flag=0; value=0; count=0; buttonsPressed=0; Dogs102x6_clearScreen(); x=0; }}else{ Dogs102x6_clearScreen(); x=0;} }switch(__even_in_range(ADC12IV,34)){case0:break;//Vector0:Nointerruptcase2:break;//Vector2:ADCoverflowcase4:break;//Vector4:ADCtimingoverflowcase6://Vector6:ADC12IFG0 read=ADC12MEM0; results[index]=ADC12MEM0;//Moveresults index++;//Incrementresultsindex,modulo;SetBreakpoint1here if(index==2) { index=0; } Dogs102x6_pixelDraw(x,41-ADC12MEM0/100+10,DOGS102x6_DRAW_NORMAL);if(x>1&&abs(results[0]-results[1])>200&&x<102/*thelastlinedon'tdraw*/) Dogs102x6_lineDraw(x,41-results[0]/100+10,x,41-results[1]/100+10,DOGS102x6_DRAW_NORMAL);if(abs(results[0]-results[1])>200&&flag==0){ flag=1;}if(flag==1){ value++; count++;}if(abs(results[0]-results[1])>200&&count>5){ flag=2; freq=(float)102/value/5*2; //buttonsPressed=1; /*Dogs102x6_stringDraw(7,0,"ECGFREQ:",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);//ExitactiveCPUcase8:break;//Vector8:ADC12IFG1case10:break;//Vector10:ADC12IFG2case12:break;//Vector12:ADC12IFG3case14:break;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论