版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于STM32的一款便携的心电监测仪器设计摘要随着人们生活质量的改善以及不良生活习惯的影响,患有心脏病的人数越来越多。同时,特别是工作压力变得越来越重和生活的快速化使得年轻的人们患上心脏病的概率越来越大。但是现在医院使用的体积庞大,操作复杂和价格昂贵的心电仪使得人们很难随时清晰地了解自身的心脏状况。因此设计一款便携的心电监测仪器有着很大的实用价值。为了面对这个实际存在的问题,本次论文的目的是实现一套基于STM32F103VCT6超高性能芯片的心电监测系统,运用了微机技术,传感器技术,SPI协议,模数转换技术,共模干扰抑制技术,ST-LINK在线调试技术。心电监测系统用STM32F03VCT6芯片为核心,心电信号由心电传感器ADS1292R采集,ADS1292R是一款专用于心电信号采集的传感器,内部集成右腿驱动抑制电路,放大电路,简单的滤波RC电路,高精度模数转换模块。当心电信号通过RA,LA和RL三个电极进入心电传感器ADS1292R后,首先进行共模信号的滤除和信号的放大(通过PGA-可编程增益放大器实现),放大后进入ADC转换模块,以24位二进制存储转换后的数字量。STM32F103VCT6和ADS1292R之间的通信通过SPI通信协议进行。当STM32F103VCT6收到心电传感器ADS1292R发来的数字量,进行软件FIR滤波,去除50HZ的工频干扰,然后把数据显示到TFT-SPFD5408显示屏上,绘制出心电图。关键字:STM32F103VCT6芯片;心电传感器ADS1292R;SPI通信协议;目录 第1章绪论 31.1引言 31.1.1研究目的及意义 31.1.2国外研究概况 31.1.3国内研究概况 31.2具体工作 41.3论文结构 4第2章心电信号的基础知识 52.1心电信号的产生 52.2心电信号的波形分析 52.3心电信号的特征 62.4心电信号测量方式 72.5心电信号的干扰 7第3章系统原理设计 83.1系统原理设计 83.2系统总体框架 8第4章系统硬件设计 104.1系统硬件组成 104.2STM32F103VCT6最小系统 104.2.1STM32F103VCT6简介 104.2.2STM32F103VCT6最小系统原理图 114.2.3STM32F103最小系统的复位电路 124.2.4STM32F103最小系统的晶振电路 124.2.5STM32F103VCT6最小系统的启动模式电路 134.2.6STM32F103VCT6最小系统的下载电路 144.3心电传感器ADS1292R 154.3.1心电传感器ADS1292R简介 154.3.2心电传感器ADS1292R采集原理 154.3.3心电传感器ADS1292R引脚说明 154.3.4心电传感器ADS1292R原理图 164.3.5心电传感器ADS1292R的通信 174.4电源电路的设计 184.5TFT-SPFD5408液晶显示模块 194.5.1SPFD5408简介 194.5.2SPFE5408控制方法 194.5.3SPFD5408的窗口工作模式 194.5.4SPFE5408写数据以及寄存器时序 204.5.5SPFD5408模块实物图 204.5.6SPFD5408模块原理图 21第5章系统软件设计 225.1总体流程图 225.2心电传感器的配置 235.3心电信号数据的获取 235.4LCD界面的绘制 245.5软件FIR滤波 255.6KeiluVision5 265.7STMStudio 275.8MATLAB设计软件FIR滤波系数 275.9AltiumDesigner绘制原理图 28第6章结果和性能分析 296.1调试结果 296.2调试过程中遇到的困难 296.3心电监测系统实物图 296.4TFT-LCD显示屏的调试 316.5心电信号的干扰 336.6STMstudio上的心电信号 346.7心电监测效果 356.8性能分析 35结论 36参考文献 37附录main.c 38绪论引言研究目的及意义随着科技的发展,人们生活质量的提高,以及我国医学的提升。人们越来越重视身体健康,其中心脏病是人们关注的焦点。根据《2020年中国健康大数据》,每半分钟,就会有人死于心脏病,给我国在过去十年内造成的损耗约5500亿美元。冠心病、原发性高血压、脑梗塞消耗了过半的心脑血管疾病治疗费用。因此怎么减少心脑血管疾病成为大家研究的重点。心脏病有一个特点发作快,抢救时间短,而且心脏疾病早期没有明显的征兆,在常规的心电图中很难检测到心脏疾病。STM32的出现给研究人员提供了一个新的选择。STM32系列是专为要求高性能、低成本、低功耗的嵌入式芯片。本次我们使用的是STM32F103VCT6,拥有外设包括双12位ADC,UART,SPI,18MHz的I/O翻转速度。ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz。单周期乘法和硬件除法。片上集成256KB的Flash存储器。64KB的SRAM存储器。心电图是反映心脏跳动时产生的电信号,可以把电信号给记录下来,成为心脏病的诊断和预测的一种方法。病房中的心电监测仪虽然能实时监测心电电波,但是只能监测人们静态下的心脏情况,况且人们不可能一直住在医院,人们需要生活,需要工作。因此人们需要一款便携的,24小时监测的心电监测节点。国外研究概况英国生理学家Einthove在1887年用毛细管静电计记录了心动电流图。此后他更深入了解心电信号,在德•阿森瓦尔氏的镜影电流计基础上,吸收后发展了心电信号。采用P、Q、R、S、T等字母标出心电信号波,识别方法。形成了标准导联。他对心电信号认真研究,于是在1292年提出了著名的“爱因托芬三角”理论。此后成为心电图的标准。国内研究概况在进入21世纪后,国内有一些公司已经开始便携式心电监测仪器的开发,类如同心管家公司,其品牌为CheckMe的心电检测仪器,尺寸小,集心电采集,心电上传,心电分析,视频问诊为一体,方便患者的自我检查,只有一个巴掌大,采用AI智能分析心电波,能够在手机APP上看到实时心电情况,手机和心电监测仪器之间采用蓝牙通信。随着嵌入式技术、通信技术和滤波技术的发展,体积小的无线监测节点将会引来一个大的快速发展期,医院老而大的心电监测仪将会慢慢被打败,作为一个积极发展的新兴技术,目前还面临着许多挑战,国内还没有建立起相关的标准,国内产品鱼目混珠,消费者无法辨识出无线心电仪的好坏。如何提高无线心电检测仪的准确度,如何建立起准确和理想的通信信道。这些技术问题都待解决。不过随着STM32F1系列芯片的推出,更准确的心电传感器ADS1292R出世,更准确的无线心电检测仪,将会被推出,期望它应用于家家户户的健康离我们不远了。具体工作在此设计中,主要工作内容有:查阅相关资料,了解STM32F103VCT6芯片,心电传感器ADS1292R的有关知识。学习使用KeiluVision5开发环境,并利用这个软件开发STM32芯片。学习使用STMStudio软件,并利用这个软件进行STM32芯片调试。用STM32开发板和心电传感器ADS1292R进行连接,实现心电信号的读取。用AltiumDesigner完成整个硬件设计的原理图设计。深入了解各模块功能,结合硬件不断调试,实现心电信号的采集。进行多次数据调试,查看心电信号,记录、整理并分析。总结毕业设计内容,撰写论文。论文结构此篇论文分为以下几个部分:第一部分:绪论。首先描述心电监测系统的研究目的及意义,引出心电监测的重要性。再介绍国内外心电监测系统的发展以及取得的成果,揭露了心电监测系统良好的发展前景。介绍了本次毕业设计的重点工作内容,最后是对论文整体框架的说明。第二部分:心电信号的基础知识。主要介绍心电信号的产生,心电信号的波形分析,心电信号的特征,心电信号测量方式,心电信号的干扰。第三部分:系统原理设计。首先简单说明心电监测系统的设计原理,接着介绍系统总体框图,很直观展示系统的工作流程。第四部分:系统硬件设计:首先介绍系统硬件组成模块,然后说明各模块的基本信息、引脚配置和原理图,最后给出实物图。第五部分:系统软件设计。首先是软件的系统流程图,详细展示心电传感器ADS1292R和STM32F103VCT6的工作过程。接着介绍KeiluVision5,STMStudio,MATLAB和AltiumDesigner的使用方法。第六部分:结果和性能分析。开始先介绍整体调试的结果,再介绍调试中遇到的问题,接着介绍各个模块的调试结果,最后附上调试的心电图信号。最后是本次毕业设计的总结,并在附录中附上部分主要代码。
心电信号的基础知识心电信号的产生当心脏正常工作时,窦房结发出专有的信号,传向心房和心室,让整个心脏处于兴奋状态。在每个心动周期中,心脏所有部分出现的电信号的参数,例如时间、方向、途径和次序都是特定的。当皮肤上收到体液作为导体传过来的特定电信号,让我们可以从皮肤上观察到心电信号的变化,即心电位。从生理学上来说,可以把心脏看成一个放电组织,每一个细胞都能放电和传导电(但不同部位和不同细胞会有差异)。把每个心肌细胞的电冲动可以看成矢量-向量,人体是个导体,心电图是所有细胞电冲动的矢量和。图STYLEREF1\s2SEQ图\*ARABIC\s11心脏结构心电信号的波形分析心电图反映心脏跳动的情况,是一组有规律和有节奏的周期性电信号变化曲线,心电信号的每个波段代表心脏某一特定组织结构的健康活动状况。在医学诊断上具有诊断值。图STYLEREF1\s2SEQ图\*ARABIC\s12一个标准的心电周期波形P波:最早出现的波,心房除极波。P-R段:心房开始复极到心室开始除极。P-R间期:心房开始除极到心室开始除极的时间。QRS波群:左、右心室除极的全过程,幅值最大,参考价值最高的波。S-T段:QRS波群到T波起点的一条直线,代表心室缓慢复极的过程。T波:心室快速复极的过程。QT间期:心室开始除极到复极完毕全过程的时间。心电信号的特征心脏是身体中极其重要的组织器官,人的生命健康和心脏的情况息息相关。人体血液的循环流动是靠心脏不间隔地收缩和舒张来实现的,生物电信号会在这个过程中产生,本文所利用的心电信号只是其中的一种,体表可以展现心肌细胞所发出的电信号,特征微小,而且信号到体表的这一路径中会伴随意想不到的干扰。心电信号一般情况下具有以下几种基本特征。不稳定性主要是由于个体的差异性和环境的差异性导致,心电信号的不稳定性有可能来自外界环境的干扰,也可能来自患者自己的干扰。无论这种不稳定性来自哪里,都将导致最后采集到的心电信号存在干扰,如果不能去除将导致误诊。微弱性心电信号是一种弱信号,很容易被干扰信号掩盖,幅值一般低于5毫伏,有的干扰信号幅值超过3V,使得完全看不出心电信号的各个波群,因此需要放大器去除大干扰信号和放大心电信号。低频性心电信号的频带比较窄,在0.5HZ~100HZ以内,而且一个标准的心电周期内,90%的能量集中在5HZ~50HZ之间,而且主要是QRS波群中。心电信号测量方式心电信号的测量原理是将电极贴片放在皮肤表面任意两个非等势面上,分别和采集前端的正负极相连,记录两个电极贴片的电位差变化。在心电信号测量中,这种电极贴片放置位置不同称为导联。我们这里用的是I型导联方式。I型导联是标准导联的一种。标准导联是两肢体导联线直接放在采集前端的正负极。基于三点假设而近似成立,指人体的心脏到左上肢、右上肢体、臀部三个点距离相等构成等边三角形图STYLEREF1\s2SEQ图\*ARABIC\s13标准I型导联心电信号的干扰心电信号很微弱,同时它的幅值也比较小,容易收到各种不确定因素的干扰,我们实际使用时无法完全避免干扰,只能尽量降低,常见的干扰一般有以下几种。(1)工频干扰50HZ的工频干扰由于心电采集仪器的电源和外界的电磁干扰引起,我们国家的市电电压交流频率为50HZ,市电和我们使用的电子设备会产生电磁场,电磁场在我们身上产生的干扰频率是50HZ。这个干扰的幅值比较大,不处理掉会掩盖我们的心电信号。(2)基线漂移心脏产生的心电信号基本上都会出现基线漂移,造成的后果是心电信号会上下移动,无法呈现在一条基准直线上,导致异常信号很难被我们识别出来。产生基线漂移的原因很多,比如人的运动,电极和皮肤接触不良等。(3)肌电干扰肌电信号伴随着肌肉细胞的收缩产生,它的幅值比心电信号低很多,但是它产生的干扰是不容忽视的,肌电信号和心电信号一起被采集,但是肌电信号的带宽比较大,5HZ-2000HZ之间,完全覆盖心电信号,给心电信号的识别带来巨大的影响,一般通过滤波处理。系统原理设计系统原理设计本次毕业论文的目的是用STM32F103VCT6芯片和心电传感器ADS1292R组成一套心电监测系统,能够实时采集人体的心电信号。所设计的心电监测系统的组成部分为传感器模块,显示模块,处理器模块。所设计的心电监测系统以STM32F103VCT6芯片为主要的部件,心电信号由心电传感器ADS1292R采集,ADS1292R和STM32F103VCT6之间的数据交互通过SPI通信接口实现,采用TFT-SPFD5408液晶显示模块显示心电图。系统总体框架图STYLEREF1\s3SEQ图\*ARABIC\s11心电监测系统总体框架图用三个电极分别连接左臂,右臂和右腿来获取心电信号,心电信号进入心电传感器ADS1292R后,进行处理,转换成24位的数字量,通过SPI接口和STM32F103VCT6处理器建立通信,然后传输数据,STM32F103VCT6处理器收到数据后,进行软件FIR滤波,把数据显示到TFT-SPFD5408显示模块上,这样就在观察到心电图。图STYLEREF1\s3SEQ图\*ARABIC\s12心电传感器ADS1292R主要功能模块本文的设计是一套基于STM32芯片的心电监测系统,实现实时采集心电信号。该系统的主要组成部分包括:STM32F103VCT6芯片,心电传感器ADS129R,液晶显示TFT-SPFD5408,上机位STMStudio。STM32F103VCT6具有极高的性价比。心电传感器ADS1292R内部集成右腿驱动电路模块,放大和滤波电路模块,ADC模块把输出信号转化为数字信号,不用再进行模数转换,不用额外设计电路,简单实用。具体工作过程;心电传感器ADS1292R通过三导联电极采集心电信号,经过传感器内部的右腿驱动模块和放大滤波电路模块后,再把心电信号送入ADC模块,转化为数字信号,数字信号通过SPI通信协议传给STM32F103VCT6芯片,在芯片内部进行软件FIR滤波,过滤工频信号,再通过TFT-SPFD5408显示出图形,可以通过上机位STMStudio显示出心电传感器ADS1292R经过ADC的数字信号和STM32F103VCT6芯片软件FIR滤波后的数字信号,方便我们直观地观察心电监测系统的工作。系统硬件设计系统硬件组成本次论文设计的心电监测系统的硬件部分由STM32F103VCT6最小系统,心电传感器ADS1292R,系统电源供电模块和TFT-SPFD5408显示模块。STM32F103VCT6最小系统STM32F103VCT6简介心电监测系统采用意法半导体公司生产的STM32F103VCT6芯片作为主控芯片,STM32F103VCT6是意法半导体公司高性价比32位芯片家族的一员。本论文采用100引脚的LQFP封装的STM32F103VCT6,引脚排列如下图所示。图STYLEREF1\s4SEQ图\*ARABIC\s11STM32F103VCT6引脚排列主要特点如下:内核用高性能的ARM®Cortex™-M332位的RISC内核,工作频率为72MHz。存储器闪存:256K,SARM:48K。通信接口SPI(I2S):3个(SPI1、SPI2、SPI3),其中SPI2和SPI3可作为I2S通信。I2C:2个(I2C1、I2C2)。USART/UART:5个(USART1、USART2、USART3、UART4、UART5)。USB:1个(USB2.0全速)。CAN:1个(2.0B主动)。SDIO:1个。GPIO端口:80。CPU频率和工作电压:72MHz,2.0V-3.6V。STM32F103VCT6最小系统原理图图STYLEREF1\s4SEQ图\*ARABIC\s12最小系统图一个标准的STM32F103VCT6最小系统图,由复位电路,电源电路,晶振电路,启动配置电路和下载电路组成。复位电路控制STM32F103芯片的复位,电源电路给整个电路提供电源,晶振电路提供外部时钟,可以让STM32F103芯片工作得更稳定和更快,启动配置电路决定STM32F103芯片的启动模式,通过下载电路可以往STM32F103芯片下载程序或者在线观察STM32F103芯片的工作情况。STM32F103VCT6最小系统的复位电路复位电路的构造比较简单,当系统连接电源的时候,会给电容进行充电,充电时间为1us,其中电阻的作用是控制复位时间,复位时间和RC成正比。图STYLEREF1\s4SEQ图\*ARABIC\s13复位电路STM32F103VCT6最小系统的晶振电路时钟是STM32F103芯片的核心,如果没有时钟的话,它无法工作,内部虽然有8MHZ的RC振荡电路,但是精度不高,一般不使用内部的时钟源作为工作时钟。本次设计时给STM32F103芯片提供8MHZ的外部高速时钟和32.728KHZ的外部低速时钟,电容的作用是使得电路更容易起振和稳定振荡频率。图STYLEREF1\s4SEQ图\*ARABIC\s14外部高速时钟图STYLEREF1\s4SEQ图\*ARABIC\s15外部低速时钟STM32F103VCT6最小系统的启动模式电路STM32一共有三个下载模式,大多数情况下用BOOT1和BOOT2=00的这个模式,即闪存存储器启动,因此本次设计中用电路固定了下载模式为主闪存寄存器启动,无法选择其他下载模式,本次设计的启动电路虽然很简单,固定两个引脚的电平为低电平,规定从模式一启动,启动模式的选择,对我们的下载方式有影响。STM32芯片有三种启动方式,具体如表所示。表STYLEREF1\s4SEQ表\*ARABIC\s11启动模式表启动模式选择引脚启动模式说明BOOT1BOOT0X0主闪存存储器主闪存存储器为启动区域01系统存储器系统存储器为启动区域11内置SRAM内置SRAM为启动区域图STYLEREF1\s4SEQ图\*ARABIC\s16启动模式电路引脚BOOT0接STM32F103VCT6的BOOT0,PB2接STM32F103VCT6的BOOT1,当上电后,BOOT0和BOOT1都为0,从主闪存存储器启动,一般的学习过程中,我们都是用的这个模式一,然后通过SWD下载程序,重启后也是从主闪存存储器启动,要注意的是,在下载烧录的时候一定要注意启动模式的选择,不然就会出现程序无法下载等错误,延误宝贵的时间。STM32F103VCT6最小系统的下载电路STM32有两种调试接口:一个是SW,一个是JTAG。其中SW只需要两根线,占用很少的资源,一根是数据线,一个是时钟线,本次设计采用一个带有三针的排针来设计下载电路,只需要用支持ST-LINK协议的下载器就能对STM32芯片下载。图STYLEREF1\s4SEQ图\*ARABIC\s17下载电路图STYLEREF1\s4SEQ图\*ARABIC\s18ST-LINK下载器当需要往STM32下载程序的时候,下载器的SWDIO接SWD_SWDIO,地接地,SWCLK接SWD_SWCLK。当程序编译成功生成HEX文件后,就可以点击下载按钮,往STM32芯片烧写程序,烧录成功后会显示完成时间和烧写文件的大小。心电传感器ADS1292R心电传感器ADS1292R简介心电传感器ADS1292R具有多通道同步采样24位Δ-Σ模数转换器(ADC),具有内置的可编程增益放大器(PGA)、内部基准和板载振荡器。心电传感器ADS1292R包含便携式低功耗医疗心电图(ECG)、体育和健身应用通常所需的所有功能。两个低噪声PGA和两个高分辨率ADC,数据速率:125SPS至8kSPS,CMRR:120dB,可编程增益:1、2、3、4、6、8或12,电源包括模拟:2.7V至5.25V,数字:1.7V至3.6V。内置右腿驱动放大器、持续断线检测、测试信号。SPI™兼容串行接口。心电传感器ADS1292R采集原理心电传感器可以把心电信号采集到,并转换为数字信号。具体流程如下,心电传感器ADS1292R先通过三个电极贴片,分别连接左手,右手和右腿,当心电信号进入心电传感器后先经过PGA和右腿驱动模块去除共模干扰和放大电压,再把数据输入ADC,经过心电传感器ADC后的心电信号,已经是数字量。心电传感器ADS1292R通过SPI协议把数字量传输给STM32F103VCT6芯片,进行后续的处理。心电传感器ADS1292R引脚说明心电传感器ADS1292R的引脚说明如表所示。表STYLEREF1\s4SEQ表\*ARABIC\s12心电传感器ADS1292R引脚说明编号引脚名称类型说明1PWDN/RESET数字输入断电或复位2START数字输入开始转换3CLK数字输入主时钟输入4CS数字输入SPI芯片选择5DIN数字输入SPI数据输入6SCLK数字输入SPI时钟7DOUT数字输出SPI数据输出8DRDY数字输出数据收发准备9PIN_5V电源电源10GND电源接地11GPIO2/RCLK2数字输入/输出通用IO或应答时钟212PIN_5V电源电源13GPIO1/RCLK1数字输入/输出通用IO或应答时钟114GND电源接地心电传感器ADS1292R原理图本文因为要采集心脏跳动产生的电信号,所以选用了心电传感器ADS1292R,心脏跳动产生的电信号通过体液传到皮肤表面,心电信号具有低频性和微弱性,我们需要去除干扰和放大心电信号。本次论文使用三个电极贴片组成三导联测试法来获取心电信号。心电传感器ADS1292R的供电电压为5V。通信协议是SPI,PWDN用来控制心电传感器断电或者复位,CS是片选信号,DIN用来接收数据,和STM32F103VCT6的PA7引脚连接,DOUT用来发送数据,和STM32F103VCT6的PA6连接,SCLK用来给SPI通信提供时钟,和STM32F103VCT6的PA5连接,DARY是数据准备就绪信号,当心电传感器处理好测量信号后把DARY拉低,会触发STM32F103VCT6芯片的外部中断。START控制心电传感器是否开始模数转换工作,和STM32F103VCT6芯片的PA1相连接。图STYLEREF1\s4SEQ图\*ARABIC\s19心电传感器原理图图STYLEREF1\s4SEQ图\*ARABIC\s110心电传感器实物图心电传感器ADS1292R的通信心电传感器ADS1292R和STM32F103VCT6之间的通信采用SPI通信协议,SCLK用来提供时钟,DIN用来输入数据,DOUT用来输出数据。具体的SPI通信过程如下图所示。图STYLEREF1\s4SEQ图\*ARABIC\s111SPI通信时序从图中可以看出,当心电传感器ADS1292R的数据准备就绪时,DARY数据就绪信号被拉低,片选信号CS也被拉低,选择心电传感器ADS1292R的SPI,只有当有数据传输的时候,SCLK会产生方波,输出的数据一共72位,8个字节,其中需要的数据是代号为CH2,CH2是24位,但是要注意的是CH2是一个带有符号位的数据,在收到后要进行异或,把负数变成正数,方便后面的使用,而且SPI每次只传输8位,也就是一个字节,要注意的是使用SPI协议接收数据之前,要先等待同步好,不然数据传输会出错,或者无法接收数据。电源电路的设计心电信号的工频干扰一部分来自于电源,因此电源的设计十分重要。AMS1117-3.3能将+5V的电压正向降压成+3.3v输出。而且接线简单,使用方便。价格便宜。图STYLEREF1\s4SEQ图\*ARABIC\s112AMS1117-3.3引脚图标号符号功能0VOUT电压输出1GND电源地2VOUT电压输出3VIN电压输入表STYLEREF1\s4SEQ表\*ARABIC\s13引脚定义图STYLEREF1\s4SEQ图\*ARABIC\s113电源转换电路原理图本次论文采用的STM32F103VCT6芯片的供电电压是3.3V,而采用的供电电压是直流稳压5V,如果我们直接拿5V的电源给3V的STM32芯片供电,会把所使用STM32芯片烧坏,所以必须得有一个降压芯片,本次所使用的是输出电压不可调的AMS117-3.3,输出电压固定为3.3V,刚好可以使用。TFT-SPFD5408液晶显示模块SPFD5408简介SPFD5408是一款彩色LCD显示屏,能够显示中英文、字符串、绘制简单图型以及显示小图片。本次采用的LCD分辨率是320*240。SRAM用来控制颜色。采用16位并行的方式与外部连接。SPFE5408控制方法一般来说对LCD模块的操作主要有两种,第一个是对控制寄存器的读写操作,第二种是对显存读写。但是实际上都是通过对LCD控制器的寄存器进行操作的,LCD控制器提供了一个索引寄存器,索引寄存器可以指向控制寄存器和显存寄存器。SPFD5408的RS控制线,RS为低电平说明是向索引寄存器操作,RS为高电平是向索引寄存器所指向的寄存器操作。当对一个LCD上的某一个点进行操作,先设置X和Y的地址寄存器,再对X和Y所指向的显存寄存器操作,这样就能完成某个点的操作。SPFD5408的窗口工作模式LCD除了具有全屏的工作模式外,还有一种局部的窗口工作模式,这样我们很方便就在LCD实现多画面的显示,处于窗口工作模式时,对显存的操作仅仅是对所设置的局部显示区域所对应的显存进行读写。因为分辨率有限,所以窗口范围也有上下限,分辨率为240*320,所以在设置坐标的时候要注意上限不能超过240或者320。图STYLEREF1\s4SEQ图\*ARABIC\s114给LCD清除窗口的背景色就是用开窗函数来实现的,设置XSTA为0,XEND为239,设置YSTA为0,YEND为319,意思是把整块屏幕当作一个窗口,再往SRAM显存寄存器写入颜色,这样的话,整块屏幕就是只呈现一种颜色,也就是达到了清理窗口的作用。SPFE5408写数据以及寄存器时序在写入寄存器操作之前,要先使能LCD液晶,即是nCS为低电平,再向端口写入数据。图STYLEREF1\s4SEQ图\*ARABIC\s115写寄存器时序从上图可以看出,向SPFD5408写入数据之前,要先把片选CS信号拉低,再将寄存器或存储器选择信号RS拉低,表明本次是向寄存器写数据,要注意的是,写寄存器操作要先写入地址,再写入数据。SPFD5408模块实物图图STYLEREF1\s4SEQ图\*ARABIC\s116SPDF5408实物图SPFD5408模块原理图图STYLEREF1\s4SEQ图\*ARABIC\s117SPFD5408显示模块原理图本次设计采用SPFD-5408显示模块和STM32F103VCT6芯片进行相连。其中SPFD5408和STM32F103VCT6芯片数据传输采用FSMC协议,FSMC是一个可变的静态存储器控制器,类似于一个桥梁,为内部高速总线和外部存储之间提供一个高速接口。FSMC的存储地址一共有四块,每块是256MB,一共是1024MB。SPFD5408的16个数据总线LCD_D0-LCD_15接到STM32芯片的16个FSMC数据口上,LCD_CS是液晶片选引脚接到PD7上,访问切换线LCD_RS接到PD11上,读操作LCD_NOE接到PD14上,写操作LCD_NEW接到PD5上,液晶复位LCD_RST接到PD12上,液晶背光灯LCD_LED接到PD13上。本次设计在SPFD5408显示心电波形,心率,和个人的名字。系统软件设计总体流程图图STYLEREF1\s5SEQ图\*ARABIC\s11软件总体流程图一但上电,STM32F103VCT6将从main.c函数开始执行,需要初始化使用到的外设。包括心电传感器ADS1292R,SPI1,液晶显示屏,FSMC。首先检测是否所连接的心电传感器型号是否正确,心电传感器ADS1292R有两种模式的数据发送,一个是单个数据发送,一个是根据DARY的状态连续发送数据,为了简化操作,选用连续数据发送模式,通过SPI1向心电传感器ADS1292R发送RDATAC命令启动。使用外部中断来实现数据的自动读取,心电传感器有一个特点,当ADC完成一次数据的转换,DARY会被拉低,然后触发STM32芯片的外部中断,进入外部中断处理函数处理,数据进入数组,软件FIR滤波以数组为单位进行滤波。滤波后的数据发送到显示屏上显示出来,整个过程完成。心电传感器的配置本模块主要是对心电传感器ADS1292R进行配置,主要配置心电传感器ADS1292R内ADC和PGA的参数。图STYLEREF1\s5SEQ图\*ARABIC\s12ADS1292R配置系统上电后,STM32芯片对和心电传感器相连的PWDN,START,CS进行初始化,抬高PWDN引脚,拉低CS和START引脚,发送获取芯片ID命令,心电传感器传回芯片ID数据,如果芯片型号正确,开始配置心电传感器的ADC和PGA参数,如果不对,一直查询心电传感器的芯片ID。根据奈奎斯特定理,心电信号最高频率是100HZ,所以采用频率要为200HZ及以上,所用的ADC采样率采用250SPS,基准电压设置为内部参考电压2.24V。PGA的增益设置为6。心电信号数据的获取本模块主要是获取心电传感器转换后的数据,STM32芯片通过外部中断的形式获取。如下所示。图STYLEREF1\s5SEQ图\*ARABIC\s13心电信号的获取首先,先设置PA3引脚为外部中断输入,设置PA3中断线为中断线3,模式为外部中断,中断沿设置为下降沿触发。配置外中断嵌套中断向量分组2,2位抢占优先级,2位响应优先级。选择外部中断通道线3,设置中断抢断优先级为1,响应优先级别为1。当外部中断被触发时,进入中断处理函数,心电传感器一次性发过来9个字节的数据,用数组接收,其中只需要最后三个字节的数据,把最后三个字节放在一个数组存储起来,这个数组就是心电传感器ADC转换后的心电信号值,是一个24位的值,最高位是符号位,真正有效数据只有23位。LCD界面的绘制本模块主要是绘制LCD的主界面,可以画出一条横线和加一些字符。使得界面看起来不那么单调。图STYLEREF1\s5SEQ图\*ARABIC\s14LCD界面的绘制LCD初始化,要初始化引脚和FSMC,主要是设置窗口的大小,就是设置X的开始和X的结束值,Y的开始和Y的结束值,设置扫描方式为方式二,通俗的说就是设置原点的位置。还有的就是设置显示方向,本次论文设计为从上到下,从左到右,通过窗口绘制一条横线,设置X的开始值和结束值都是1,那么宽度就是1,再设置长度,在视觉上就是一条横线。显示文字就是访问字符库,设置坐标,再通过一定规则点亮LCD来实现。软件FIR滤波本次采集的心电信号存在很多的干扰,但是心电信号主要集中在5HZ到50HZ,所以设置一个5HZ-50HZ的软件FIR滤波函数来过滤心电信号中的其他频率干扰。图STYLEREF1\s5SEQ图\*ARABIC\s15FIR软件滤波ARM提供的FIR滤波函数能节省自己用代码实现滤波花费的时间。能快速进行FIR滤波操作,省去了硬件FIR滤波的麻烦。首先要对FIR结构体进行初始化,给FIR结构体设置滤波系数的个数,滤波数组,状态数组,FIR一次性处理的个数。当STM32芯片收到的心电数据数量大于30,调用AMR提供FIR滤波函数,设置输入数据,输出数据,一次滤波数量的大小,就可以比较容易完成心电信号的滤波。KeiluVision5KeiluVision5是专门为ARM内核系列单片机开发的集成编译环境,操作简单,容易上手。在本次论文中,主要使用KeiluVision5来编写程序,并生成HEX文件,通过ST-LINK下载器就可以对STM32F103VCT6芯片进行烧录,而且可以在线调试,比较容易发现编写代码过程中出现的错误。STMStudioSTMStudio是STM公司开发的图形用户界面,比串口助手更好用,运行采样和可视化STM32运行中的变量。省去了开发上位机的复杂过程。图STYLEREF1\s5SEQ图\*ARABIC\s16STMStudio界面本次论文,我们用STMstudio来观察STM32F103VCT6接收到的心电信号以及软件FIR滤波后的心电信号,用ST-LINK下载线和STM32F103VCT6芯片进行连接,载入HEX文件,就可以看到所有的变量,还可以画出图像比较简单。省去开发上位机的流程。MATLAB设计软件FIR滤波系数MATLAB是一款强大的数学软件,本次论文主要用MATLAB的FIR函数滤波器设置图形界面设置求出滤波系数。图STYLEREF1\s5SEQ图\*ARABIC\s17软件FIR滤波系数获取本次论文使用的是带通滤波器,使用FDATOO命令,使用窗口函数,设计阶数为128,开始频率为5HZ,截止频率为50HZ,采用频率设置为250HZ,使用hamming窗口。AltiumDesigner绘制原理图AltiumDesigner是一款强大的电子自动化作图软件。内部包括很多的元件库,最强大的一点在于设计人员不仅可以从官网下载元件库,还可以自己绘制原理图库,省去了寻找元件库的时间,还可以在已经设计好原理图库的基础上,绘制印刷电路板PCB。本次论文所采用的原理图全部使用AltiumDesigner绘制,从元件库选择STM32F103VCT6,拖到原理图中,绘制传感器和液晶显示屏的原理图,最后用网络标签表示导线连接,使得原理图美观。结果和性能分析调试结果硬件设计和软件编写完成后,连接实物图和把程序下载到STM32F103VCT6。测试的部分有:TFT-LCD显示模块是否能正常显示,STMstudio上机位能否查看心电传感器传输过来的数据,心电传感器能否采集到心电信号的变化,经过反复测试,整个系统正常工作,能在显示模块上观察到心电信号的变化。调试过程中遇到的困难SPFD5408的主界面绘制失败。解决方法:检查窗口函数的作用范围大小设置,发现X方向的范围设置超过上限,导致超出屏幕显示,把X方向的范围设置在219之内,即可显示正常。心电监测系统实物图本次设计主要由三部分组成,分别是STM32F103VCT6模块,SPFD5408模块,心电传感器模块。图STYLEREF1\s6SEQ图\*ARABIC\s11连接线以及ECG贴片图STYLEREF1\s6SEQ图\*ARABIC\s12心电传感器图STYLEREF1\s6SEQ图\*ARABIC\s13STM32F103VCT6和SPFD5408模块TFT-LCD显示屏的调试LCD是彩色显示屏,可以在屏幕上绘制不同的颜色,这次使用白色和红色进行背景调试,要保证显示功能的正常。图STYLEREF1\s6SEQ图\*ARABIC\s14红色背景下LCD图STYLEREF1\s6SEQ图\*ARABIC\s15白色背景下的LCD为了使得显示界面的看起来比较美观,需要测试LCD上画线和显示字符,所以在LCD上进行划线和输入字符的调试,绘制初始化时的主界面。图STYLEREF1\s6SEQ图\*ARABIC\s16在LCD上的划线和字符图STYLEREF1\s6SEQ图\*ARABIC\s17初始化主界面心电信号的干扰由于存在工频信号的巨大干扰我们直接测量心电信号根本无法发现标准的心电图。频率在50HZ,幅值在720mv,远远大于心电信号的10mv。图STYLEREF1\s6SEQ图\*ARABIC\s18工频干扰图STYLEREF1\s6SEQ图\*ARABIC\s19幅度值STMstudio上的心电信号心电信号经过心电传感器采集后的心电数据如图所示。存在很大基线漂移,很难在一条直线上。图STYLEREF1\s6SEQ图\*ARABIC\s110ADC后的心电信号经过软件FIR滤波后的心电信号,明显有了质的提升。图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理环境9S优化指南
- 2026年市直单位公文处理工作规范考核题库
- 2026年实景三维中国建设知识测试题
- 2026年海关进出口商品归类解析及策略
- 2026年市级高能级创新平台建设题库
- 2026年市级规范基层干部医疗互助知识竞赛题库
- 年产160套机床尾座生产项目可行性研究报告
- 2026年烟草公司面试常见问题与解答策略
- 2026年如何进行高效的面试前调研
- 讲美德演讲稿作文英语
- 《渗透型液体硬化剂应用技术规程》
- 库房人员安全试题及答案
- 公司作风纪律管理制度
- 新中国控制传染病的光辉历程
- 皮肤新药生产基地及研发试验中心环评资料环境影响
- 甘肃省庆阳市华池县第一中学2024-2025学年高二下学期期中考试数学试题
- 汽车制造工艺技术课件:汽车总装生产工艺流程及检测工艺
- 空调维保服务投标方案(技术标)
- 基于大数据的消费者画像与市场洞察
- 中药羌活简介
- 《全球化与全球治理》课件
评论
0/150
提交评论