




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南 阳 理 工 学 院 本科生毕业设计(论文) 学院(系):电子与电气工程学院专 业:电气工程及其自动化学 生: 王 杰 指导教师: 高有堂 完成日期 2012 年 5 月 南阳理工学院本科生毕业设计(论文)基于 STM32 的便携式心电图仪设计 Design of Portable ECG Device Based on STM32 总计: 毕业设计(论文)25 页表 格: 1 个插 图 : 19 幅南南 阳阳 理理 工工 学学 院院 本本 科科 毕毕 业业 设设 计(论文)计(论文)基于 STM32 的便携式心电图仪设计Design of Portable ECG Device Based
2、 on STM32学 院(系): 电子与电气工程学院 专 业: 电气工程及其自动化 学 生 姓 名: 王 杰 学 号: 069108209 指 导 教 师(职称): 高有堂 (教授) 评 阅 教 师: 完 成 日 期: 南阳理工学院 Nanyang Institute of Technology 基于 STM32 的便携式心电图仪设计I基于基于 STM32STM32 的便携式心电图仪设计的便携式心电图仪设计 电气工程及其自动化 王 杰 摘 要 本系统完成了基于 STM32 微处理器的心电采集及分析处理系统的方案设计、硬件和软件设计与实现,心电信号采集电路是其关键部分,主要完成信号的正确提取。本
3、系统属于典型的生物医学信号采集处理系统,处理的对象是强噪声背景下的微弱心电信号,噪声和干扰的存在对前端采集电路提出了更高的要求。根据心电信号的特点,选用精密仪表放大器为主要元件设计了前置放大电路。为更好的降低干扰的影响,设计了右腿驱动电路、高通、低通滤波电路以及陷波电路,成功提取了心电信息。心电处理电路通过 A/D 转换把模拟信号转换成数字信号送至微处理器做进一步处理,该部分电路主要包括 STM32 处理器电路、LCD 接口电路等,选用 ST 公司的低成本、低功耗的 Cortex-M3 核处理器 STM32F103ZE 作为控制核心。 关键词关键词 心电采集;滤波电路;共模干扰;STM32De
4、sign of Portable ECG Device Based on STM32Electrical Engineering and Automation Specialty WANG JieAbstract: The system proposed a plan of ECG acquisition,analysis and processing system which based on STM32,and completed its hardware and software design.The core of the system is ECG acquisition circu
5、it,which is to complete the signal extraction. The system is a typical biomedical signal collecting- processing one, which processes weak signals in strong noise background.Because of the impact of noise and interference, the front-end acquisition circuit needs to have higher performance.According t
6、o the characteristics of ECG,the precision instrumentation amplifiers are chosen to design the preamplifier circuit. In order to reduce the interference effects, right leg drive circuits, high-pass filter and low-pass filter is designed to extract the ECG signal.Through the A/D converter of ECG proc
7、essing circuit, analog signals are converted into digital signals,which are sent to the microprocessor for further processing. ECG processing circuit, core of which is a microcontroller of low cost and low power Cortex-M3 by ST, mainly include power management circuits, STM32 processor circuits,LCD
8、interface circuits and so on.Key words: Ecg acquisition;filter circuit;serial communication; STM32基于 STM32 的便携式心电图仪设计II目 录1 引言.11.1 心电图仪在医学领域中的应用 .11.2 便携式心电图仪的发展状况 .22 系统总体设计.32.1 主要功能.32.2 系统设计方案.43 便携式心电图仪的硬件设计.43.1 最小核心系统的设计.53.1.1 处理器的选择.53.1.2 最小核心系统电路的设计.63.2 人机交互界面的设计.93.2.1 显示界面设计.93.2.2 按键
9、设计.103.3 前置放大电路以及右腿驱动电路.113.4 滤波电路以及陷波电路的设计.123.5 电源电路的设计.134 便携式心电图仪的软件设计.144.1 软件开发平台.144.2 软件系统整体设计.164.2.1 软件总体分析.164.2.2 STM32 软件系统设计流程.164.2.3 软件总体流程图.174.3 信号采集程序设计.184.4 数字滤波程序设计.184.5 液晶程序设计.195 系统调试结果及误差分析.205.1 调试手段.205.2 测量调试以及分析.215.2.1 采集电路的测试.215.2.2 滤波算法测试.225.2.3 整体测试和结果分析.22结束语.24基
10、于 STM32 的便携式心电图仪设计III参考文献.24附录.25致谢.28基于 STM32 的便携式心电图仪设计11 引言随着社会的进步、经济的发展以及人们生活水平的逐步提高,我国人口老龄化程度越来越严重,与此伴随的心脏病一类的疾病的发病率也不断攀升,人们的身体健康产生了巨大的威胁。相关数据表明,我国因心脑血管疾病死亡的人数将近占总死亡人数的一半1。根据相关部门的调查显示,我国每年大约有近一半的死亡病例为冠心病,而且死亡率还在逐年递增。每年约有 16 万名患者接受支架植入手术,手术施行每年的增长率超过了五分之一。在我国因心脑血管疾病每年耗费达 3000 亿元,由于受测试手段的局限,预防率、治
11、疗率及控制率依然很低。预防率是有效防治心脑血管疾病的关键因素,而且有效的方便的心电监测仪器是完成这一任务的有力工具。1.1 心电图仪在医学领域中的应用人类的心脏有规律性的膨胀和收缩,从而使血液的循环。在心脏肌肉每次收缩之前,都会产生一股微小的生物电流,加上人体的体液能够导电,这些微小电流可以通过体液的传递就会反映到人体的表面皮肤上。不过受限于身体各部分组织不同、距心脏的距离不同,会造成体表的不同部位的电位有所不同。通过捕捉这个现象,将心电图显示出来的心电检测仪器,根据这些人体生物电信号,我们可以从不同角度观察心脏的活动情况。这是我们对心脏基本功能及其病理研究,具有重要的参考价值2。 心电图能够
12、在一定程度上反映心律的运行状况,人的心肌受损的程度、发展过程以及心房、心室的功能结构情况都能通过它表现出来。这些都可以在心脏手术和药物的使用上提供重要的参考3。常规心电监护设备体积笨重、价格昂贵和不便于携带,但是随着社会生活水平的提高,医疗器械家庭化开始逐渐进入我们的日常生活,家庭化的心电图仪器功能没有专业的大型的医疗设备齐全,但是它具有体积小、操作简单的优点,同时可以在一定程度上满足了人们的基本应用。我们可以用它在家庭或则其他地方很方便的进行心电图信号的测量,并根据进一步的处理,做基本的诊断,也可以把这些数据提交到专业机构做进一步的详尽的诊断。这样也可以避免那些行动不便的病人,利用互联网技术
13、,把数据通过远程传送的方式,提交到专业机构或指定的医院惊醒专业诊断和分析。为了能够在更多场合更方便的诊断,各种各样的便携式心电图设备应运而生,常规心电图仪由于笨重只能在病人静卧的情况下记录的心电活动,历时时间短,获取的信息量很少,所以在有限时间内有些非正常的情况被发现的概率也是很低的。而便携式监护装置可以在随时随地的进行实时监护,并把数据存储起来。这样不仅可以节省时间,还可以得到实时的监护,所以研发便携式心电监护产品具有重要意义。本文主要研究的便携式心电图仪,即将普通心电图设备小型化、家庭化,具有低价位、体积基于 STM32 的便携式心电图仪设计2小、便于携带和使用方便等特点。1.2 便携式心
14、电图仪的发展状况1887 年英国生理学 Einthoven 通过对毛细管的静电计记录了心动的电流图4。 1895 年他开始了对心脏动作电流的进一步研究,并通过对德阿森瓦尔氏的镜影电流计的设计改进,提高了心电图的质量。1903 年他成功的设计了弦线式电流计,通过反射镜记录心动电流,解决了以前测量设备的惰性大,记录误差大以及需要繁琐的数学计算等缺点。同时,他又制定心电图的影线在纵坐标上波动 1cm,代表 1mV 的电位差,在横坐标上移动 1cm 为 0.4 秒的标准。这种方法简单直观,并采用 P、Q、R、S、T 等字母标出心电图上的各波,这种标记方法一致沿用至今。1912 年在他深入研究了正常心电
15、图的波动范围后,提出了著名的“爱因托芬三角”理论。1924 年 Einthoven 教授获得了诺贝尔生理学和医学奖5。总之这位被尊称为“心电图之父”的生理学家对心电图的创立及发展有着巨大的贡献。心电图从此开始逐步走进协助诊断疾病,并通过发展被广泛应用于临床。随着社会的发展,心电图检测理论越来越成熟与完善,另外机械、电子、计算机等技术的迅猛发展,带动了医疗器械发生了革命性变化,极大的增强了心电图机的功能。 随着现代科学技术的发展,特别是计算机、微电子、机械电子在医疗领域的广泛应用,极大的促进了心电设备的发展。目前各大医疗器械厂商都投入巨资开发性能更强、功能更加完善的心电设备,比如欧姆龙、北京超思
16、、亚新、均在该领域的研究与生产上有所突破。综观当前心电检测仪器发展趋势,主要向以下几个方向发展: (1)系统化随着医院计算机管理网络化、信息存储介质和 IC 卡等的应用及 Internet 的全球化而产生的。电子病历是信息技术和网络技术在医疗领域的必然产物,我国卫生部先后在 2010,2011 发布了关于电子病历系统的规范和通知文件。而实时心电数据将在该系统中有着重要的作用。(2)数字化 随着计算机科学、机械电子的迅猛发展,医疗器械的数字化程度越来越高,比如数字滤波器的使用,极大的降低了心电干扰,提高了心电判断的准确率。 (3)无线化 无线传感技术的发展能够促使心电检测无线化,从而摆脱传统心脏
17、检测的繁琐程序。同时,能减轻病人的心里紧张程度,实现心电检测的方便性。 (4)自动化 自动测量和分析是医疗仪器的发展方向,使医疗器械智能化是目前医疗器械设计基于 STM32 的便携式心电图仪设计3的目标之一。 (5)远程化计算机技术、网络通信技术的快速发展,为远程医疗的实现提供了可能,将心电数据通过远程传输,在远端对心电数据加以分析处理并提出诊断结果,从而实现远程医疗。如目前出现的基于 GPRS 网络的远程心电监护系统就是这个发展趋势的体现。总之,科技不断进步,人们的需求也在变化,心电图是记录心脏电活动状态的记录,包括心脏节律和频率以及电压的高低等信息,可用于诊断各种心律失常、心肌病变、心肌梗
18、塞及心肌缺血等心血管疾病。同时对心脏病的诊断和治疗也提供了确切的理论依据。设计符合市场需求的产品是企业生存的根本,利用高科技带来的技术革命去更新医疗器械更是一个巨大的市场机会,我们相信,在未来几年里,家庭化的监护设备必将越来越普及6。2 系统总体设计由于心电信号的微弱性,我们对心电信号的提取具有一定难度。另外受到 50Hz 及其倍频干扰和极化电压的影响,对前置放大器和信号滤波电路的设计提出了更高的要求。因此在设计前端硬件电路时,要根据信号的特征,选择最佳的器件。同时便携式设备必须是低功耗设备这限制了多数的微处理器,锂电池供电对信号仅仅用硬件滤波还不能达到分析信号的要求,硬件滤波的一个缺点是,要
19、想获得更好的滤波效果,必须设计更高的阶数,而这无疑会增加系统的体积。因此还有必要采用软件滤波的方法,这就对处理器的速度和软件的优化提出了更高的要求7。采取软件滤波即设计数字滤波器,数字滤波器有多种,这样就必须寻找一种行之有效的滤波算法。2.1 主要功能本文的目的是通过先进微处理器的应用研究的主要内容是通过将嵌入式技术、数字信号处理技术和信号采集技术的结合,设计一个能够完成信号提取和分析功能的嵌入式心电图监测系统。主要研究工作如下: (1) 心电图仪的硬件设计: 采集电路:准确提取生理信号,把信号处理为可供采集分析的有效信号; 处理电路:完成信号的采集、滤波、显示、分析和传输等。 (2) 心电图
20、仪的软件设计: STM32 芯片各模块初始化程序; 数字滤波处理程序; 人机交互界面的程序设计; 基于 STM32 的便携式心电图仪设计42.2 系统设计方案系统原理结构图如图 1 所示。心电信号由电极获取,送人心电采集电路,经前置放大、主放大、高低通滤波,得到符合要求的心电信号,并送入到 STM32 的 ADC 进行 AD 转换。为了更好地抑制干扰信号,在电路中还引入了右腿驱动电路。系统控制芯片采用 STM32,TFT-LCD 的触摸功能加上少量按键可以建立良好的人机交互环境,可以通过 LCD 实时显示和回放,数据通过 USB 可靠地传输到 PC 机,以便对心电数据做进一步的分析。系统主要硬
21、件结构及电路系统主要划分为三大部分:心电采集电路,主要完成心电信号的提取;带通滤波及主放大电路,用于调理采集到的信号,使之符合处理要求;STM32 处理电路,完成心电信号的显示和分析功能。信号采集电路信号调理电路处理器按键调节电路显示电路模块PC通信图 1 系统原理结构图整个系统有以下几个部分组成: (1)采集电路:主要有前置放大电路、带通滤波电路和主放大电路组成,心电信号由电极获取后送入心电采集电路,经处理后得到符合要求的心电信息。 (2)处理电路:主要完成对心电数据的滤波、陷波、放大、分析、显示和传输控制。 (3)按键电路:完成良好的人机交互。 (4)显示电路:实时显示出心电波形和心电相关
22、信息。 (5)上位机设计:在 PC 机上处理和显示心电波形。 (6)电源电路:设计稳定可靠的电源电路,为整个系统提供电源,降低系统功耗。3 便携式心电图仪的硬件设计便携式心电图仪要求具有可移动性和再开发性,不仅便于携带、功能尽可能的完基于 STM32 的便携式心电图仪设计5善能够实时对心电信号进行处理,而且要求随着发展可以进一步升级满足人们更多的需求。本心电图仪集信号的采集、处理、传输三大功能于一体。对于这些功能,即需要相对独立的模块化设计,又需要良好的协调。因此,在开发过程中,硬件设备的选择需要考虑这些特定的需求,有针对性的进行器件的选择和设计。总体电路要遵循: (1) 选择合适的处理器,尽
23、量选择片上系统(System on Chip,SoC)设计硬件系统,减少硬件复杂度并降低成本。 (2) 选择典型电路,按照模块化设计,系统扩展与 I/O 的配置充分满足应用系统的功能要求,并留有适当冗余,以便进行二次开发。 (3) 注重软硬件结合,软件能实现的功能尽可能由软件实现,以简化硬件结构,降低能耗和设备成本。 (4) 必须考虑芯片的驱动能力,有必要的可靠性及抗干扰设计它包括去耦滤波、印刷电路板布线、通道隔离等8。3.1 最小核心系统的设计以应用为中心、软件硬件可裁剪的、适应应用系统对功能、可靠性、成本、体积、功耗等严格综合性要求的专用计算机系统,由硬件和软件两部分有机的结合在一起,作为
24、一种典型的嵌入式应用9。由于便携式心电图仪有很强的可移动性,便于使用者携带,同时也要求功能完善,能够实时对心电信号进行处理。集信号采集处理传输三大功能于一体。对于这些功能,即需要相对独立的模块化设计,又需要良好的协调。 因此,在开发过程中,硬件设备的选择需要考虑这些特定的需求,有针对性的进行器件的选择和设计。 3.1.1 处理器的选择处理器相当于人体的大脑机制,整个系统在处理器合理指挥调度下才能完成我们赋予他们的任务,所以一款合适的处理器对于整个系统来说是非常重要的。经过综合考虑本设计对处理器的选择主要从以下五个方面来考虑: (1) 处理器的处理速度:在本设计中,处理器不仅要进行滤波处理,同时
25、还要实时显示出心电波形,在通信的情况下还要与 PC 机进行通信,因此,处理器要有较高的处理速度。(2) 处理器在完成任务的复杂程度:在本设计中,处理器要负责信号的采集、信号的滤波处理、心电波形的显示、数据存储以及通信。 (3) 尽可能简化外围电路的复杂程度:一个系统中所使用的元器件越多、电路结构越复杂,则系统的出问题的概率越大,可靠性与稳定性越差。因此在选择 MCU 的时候,希望 MCU 内部集成功能单元越多越好,这样就能简化系统设计,增加系统的可靠基于 STM32 的便携式心电图仪设计6性及稳定性。 (4) 尽可能减少生产成本:在本系统中,由于多数属于家庭使用及野外环境的不确定性因素较多,对
26、于普及性的大众化产品,希望替换成本越低越好,其中处理器的成本占了整个系统的重要的一部分,能够降低处理器的成本也就从而降低了产品的总成本。 (5) 尽可能底的功耗:便携式设备对低功耗的要求都较高,必须最低限度的减少功耗,手持式设备的续航能力也是众多参数比较受关注的一点,如何能有长时间的续航能力也是我们需要注意的一点。综合以上几个方面,最终选用了意法半导体公司推出的新型 32 位 ARM 内核处理器芯片 STM32 系列中的 STM32F103ZET6。3.1.2 最小核心系统电路的设计STM32F103x 增强型系列芯片使用高性能的 ARM Cortex-M3 32 位的 RISC 内核,工作频
27、率为最高可达 72MHz,内置高速存储器(高达 128K 字节的 FLASH 和 20K 字节的 SRAM),丰富的增强 I/O 端口和连接到两条 APB 总线的外设。所有型号的器件都包含 2 个 12 位的 ADC、3 个通用 16 位定时器和一个 PWM 定时器,还包含标准和先进的通信接口:多达 2 个 I2C 和 SPI、3 个 USART、一个 USB 和一个 CAN。工作电压为 3.3V。图 2 是 STM32F103x 的模块框图9。 STM32 微控制器有如下优点: (1) STM32 内部有高达 128K 字节的内置闪存存储器,用于存放程序和数据。多达 20K 字节的内置 SR
28、AM,CPU 能以 0 等待周期访问(读/写)。这样在我们所设计的系统中就去掉了以往很多嵌入式项目设计中所需要的用于外部程序存储器的 Flash 芯片和用于外部数据存储器的 SRAM 芯片,大大节约了系统成本,提高了系统可靠性及稳定性10。 (2) STM32 增强型系列拥有内置的 ARM 核心,因此它与所有的 ARM 工具和软件兼容。 这给项目的开发工作带来了很大的便利,因为在以前的工作中曾经使用过其他 ARM 核心的微控制器,所积累的经验在本项目的开发中得到了充分发挥。而且由于可用于 ARM 开发的工具软件很多,大大加快了项目开发的速度和效率。 (3) STM32 的内部 FLASH 是在
29、线可编程的。在我们的项目中,设备运行的配置参数 会存储在 FLASH 中的固定位置,每次启动设备时,程序会读取这些参数来进行初始化。但在某些情况下,需要远程设置或修改配置参数。这一功能使得可以在不用接 JTAG 烧写器的情况下根据 USART 接口接收到的数据来修改 FLASH 中的配置参数,在设备再次启动时,就会读取新参数来进行初始化。(4) STM32 有优秀的功耗控制。高性能并非意味着高功耗。STM32 经过特殊处基于 STM32 的便携式心电图仪设计7理,针对应用中三种主要的功耗需求进行优化,这三种能耗需求分别是运行模式下的高效率的动态耗电机制、待机状态时极低的电能消耗和电池供电时的低
30、电压工作能力11。 (5) STM32 拥有强大的库函数。它采取与以往不同设计方法,通过把各个外设封装成标准库函数 的方式,屏蔽了底层硬件细节,能够使开发人员很轻松地完成产品的开发,缩短系统开发时间。 图 2 STM32F103x 的模块框图STM32 固件库。STM32 固件库提供易用的函数可以使用户方便地访问 STM32 的 各个标准外设,并使用它们的所有特性。 基于 STM32 的便携式心电图仪设计8USB 开发工具集。在更广的应用领域中,USB 功能的实现将变得越来越方便,因为 USB 开发工具集提供了完整的,经过验证的固件包,使得用户可以顺利地开发各个类的 USB 固件。 (6) S
31、TM32F103xx 增强型支持三种低功耗模式,可以在要求低功耗、短启动时间和多 种唤醒事件之间达到最佳的平衡。 总之,STM32 芯片在项目中的使用,使得整个系统的运行效率、稳定性、功耗、生产成本等都比同类系统有了较大的提升。本设计中最小核心系统设计图如图 3 所示。图 3 最小核心系统设计图由图 3 中可以看出,在设计 STM32 最小系统时要注意一下几个部分: (1) 复位电路:利用 RC 电路的延时特性,设计了简单的复位电路,有此可简单基于 STM32 的便携式心电图仪设计9计算出延时时间,这里用一个 10 k 电阻和 1.0 F 的电容,时间延时大约为 3.6ms,符合 STM32
32、系统芯片的复位要求。 (2) 晶振电路:这里选用两个晶振,首先 8M 无源晶振,晶振两端分别通过 22pF的电容接地,另一个 32.768K 的晶振使用的 15pF 的电容接地电路简单,并能很容易的就能使晶振起振。(3) 芯片上的 BOOT0 和 BOOT1 引脚分别通过跳线帽可选高低电平,以改变芯片启动模式,其启动模式具体如下表 1 所示。表1 启动模式说明 (4) 模块有 4 个数字电源供电引脚,1 个模拟电源供电引脚以及相应的接地引脚。在电源端要注意接滤波电容,模拟地和数字地引脚之间最好通过 0 欧电阻隔离。电源和地之间加若干去藕电容。3.2 人机交互界面的设计人机交互界面是人与机器进行
33、沟通交流的设备,它可以把人的指令传入给 MCU,也可以让设备显示出我们所想知道的信息。3.2.1 显示界面设计首先,针对要完成一款便携式心电仪的设计,那么在 LCD 的选择上,就要符合实际的需要,必须要考虑功耗和成本。对于人机交互部分,显然采用单色液晶显然已经不能满足的需要,因此把 LCD 的选择定位在了彩色液晶上。主要从以下几个参数做出选择: (1) 颜色要丰富。从美观角度来讲,在液晶上不同类型的数据最好能够以不同的颜色来区分。比如波形、汉字、数字最好颜色不同。所以在液晶的颜色上要达到一定的数量。 (2) 尺寸。便携式式是本系统设计时的一个指标,因此液晶的尺寸不易过大,但也要便于观察,选择时
34、要符合实际情况,过大则不便于随身携带,过小则可能出现汉字或数字不便于观察等问题。 (3) 功耗。对于便携式嵌入式设备来说,低功耗是一般都作为一项重要的指标,在外边使用时能够尽可能地延长电池的工作时间 (4) 材质。液晶主要有两类:STN 型和 TFT 型,后者较之前者显示效果更佳,基于 STM32 的便携式心电图仪设计10但耗电能方面也高于前者。 (5) 价格。正如上面所提到的,性价比高是本系统设计的一个目标,因此要可能的用符合设计要求价格低廉的产品。 因此,根据上述几点本设计选用了 3.2 寸真彩TFT 液晶触摸屏,320*240 像素,26 万色,16 位并行接口,可以直接用AVR、ARM
35、7、STM32 等 MCU 驱动。相关参数: 分辨率:QVGA 240 x 320 尺寸:3.2 英寸 控制器:IL9320 触摸屏:4 线电阻式 接脚:30PIN 间距 2.54mm 背光:4 LED 并联具体接口电路设计如图 4 所示图4 LCD显示界面借口3.2.2 按键设计对于实现人机交互的场合,按键是比较常用的,通过按键来选择系统的功能,完成对系统的访问控制。本系统用了 5 个按键,分别定义为上、下、左、右、中键,前四个按键是对设置或访问的液晶显示对象进行选择,中间是确定键,这样就实现了既可以用按键功能,也可以用按键来实现对系统的设置,按键电路的实现比较简单,这里不再详述。具体电路实
36、现如图 5 所示。基于 STM32 的便携式心电图仪设计11图5 按键接口电路3.3 前置放大电路以及右腿驱动电路前置放大电路要完成的功能是实现信号的差分放大,该部分电路在整个采集电路中至关重要,因为后续信号的处理都是以此为基础的。因此要选择一款合适的差分运放芯片。选择时一般考虑以下几点:(1) 增益 由于心电信号非常微弱,均值在 1mV 左右,而采集电压一般要达到 1V 左右,所以心电放大倍数在 1000 倍左右。一般为了抑制零点漂移,提高共模抑制比,应该分多级实现放大。(2) 频率响应 所谓频率响应是指放大器对不同信号频率的反应,心电信号的范围低于 100Hz,所以要求放大器要对此频率范围
37、的信号尽可能不失真的放大出来。可以设计高通、低通滤波器来压缩频带,滤除该频带以外的干扰信号。必要时还需要设计 50Hz 工频干扰抑制电路,通过这样处理后,得到的信号才可能有诊断价值。 (3) 共模抑制比 电极不对称、电气设备运行时的干扰都易产生极化电压,然后通过放大电路其值极有可能远比心电信号大得多,从而将微弱的信号淹没。因此要求放大器有很高的共模抑制比。一般要求要达到 80db 以上。 (4) 输入阻抗 心电信号是微弱的,且具有高阻抗的特性,只有高输入阻抗才有可能不失真的引出心电信号,不然由于分压的因素,会极大的衰减心电信号,从而导致无法正确采集。 (5) 低噪声、低漂移 基于 STM32
38、的便携式心电图仪设计12在心电放大器中,还有两个较重要的参数即噪声和漂移。在设计心电放大器时应尽量选用低噪声元件,提高输入阻抗。另外,温漂会引入直流电压增益从而给心电信号带来干扰。因此,选用的放大器要特别注意这两个参数。综上所述该方案选用具有上述优点的 AD620,具体设计电路图如图 6 所示。图 6 前置信号采集电路由于人类受到大量的外部干扰,心电电极和电力线之问由于存在电容耦合会产生位移电流Id,降低位移电流干扰的一种有效办法是采用右腿驱动法,图7为右腿驱动的具体连接电路。右腿不直接接地而是接到辅助运算放大器的输出。从两个电阻结点检出共模电压,它经过辅助的反相放大器放大后通过电阻反馈到右腿
39、。采用右腿驱动电路,对50Hz干扰的抑制并不以损失心电信号的频率成分为代价。但由于右腿驱动存在交流干扰电压的反馈电路,而交流电流经人体,成为不安全因素,限流电阻通常在1M以上。图7 右腿驱动电路3.4 滤波电路以及陷波电路的设计为滤除干扰需要设计带通滤波器,使频率为 0.05Hzl00Hz 的心电信号通过,该范围以外的信号将大幅度衰减掉。滤波器有无源滤波器和有源滤波器两种。无源低通滤波器是由无源器件(电阻,电容,电感)组成。其带负载后,通带放大倍数的数值基于 STM32 的便携式心电图仪设计13减小,通带截止频率升高,这个缺点不符合信号处理的要求12。因此本设计选用有源低通滤波器。 由 RC
40、元件与运算放大器组成的滤波器称为 RC 有源滤波器,其功能是让一定的频率范围内的信号通过,抑制或急剧衰减此频率范围以外的信号。具有理想幅频特性的滤波器是很难实现的。只能用实际的滤波器的幅频特性去逼近理想的特性。常用的方法是巴特沃斯(Butterworth)逼近和切比雪夫(Chebysher)13逼近。保证信号的原形,采用较平坦的巴特沃斯有源滤波。高通滤波器的设计与低通滤波器相似,这里不再叙述。 带通滤波器用高低通滤波器来构成,如图 8 所示。高通滤波器由U3、C2、Rdip11 组成,其截至频率为 f=0.03Hz,低通滤波器由 U4、Cdip2、Rsop4 组成,截至频率为 f=110Hz。
41、 图 8 带通滤波电路基于小型化和成本考虑,硬件滤波只用一阶高通滤波器和一阶低通滤波器,虽然设计了右腿驱动电路,但是仍然有 50Hz 干扰进入电路,所以本设计增加了 50Hz 陷波电路,如图 9 所示通过该方法来滤除工频干扰,实验结果表明,通过高低通滤波后再加上陷波电路的信号波形清晰、特征明显。图 9 50Hz 陷波电路3.5 电源电路的设计电源电路是整个系统中十分重要的一环,随着便携式产品的普及,如何降低功耗成为工程师面临的急需解决的问题。如果电源不稳定可能造成系统不能正常工作,严重的甚至烧坏芯片引发事故。因此电源管理越发显得重要。 基于 STM32 的便携式心电图仪设计14电源管理是指如何
42、将电源有效分配给系统的不同组件。电源电路设计主要考虑用哪种类型的电源器件,输入输出电压,输出电流以及控制状态15。 心电采集电路需要土 5V 电源,STM32 工作电压为 3.3V,本设计用 7.2V 电池供电,中正负 5V 电压可以采用 7805 和 7905 来产生,它通过外围的电感电容的组合提供升满足运放使用的正电压和负电压,图 10 是其典型应用。图 10 正负 5V 电源电路3.3V 的电压采用 AMS1117 产生,其最大的特点是简单易用,而且性价比高,输入电压 5V12V,直接输出 3.3V。电路如图 11 所示。图11 AMS1117稳压电路4 便携式心电图仪的软件设计该系统的
43、软件设计沿用经典的是模块化的编程思想,首先根据要求设计好系统的总软件流程,然后再分别实现系统各模块的功能。在完成硬件电路设计和电路制作后,再进行整体的统一调试。本章主要讨论系统软件在 STM32 上的编程与实现。4.1 软件开发平台Keil 是德国 Keil 公司(现已并入 ARM 公司)开发的微控制器软件开发平台,是基于 STM32 的便携式心电图仪设计15目前 ARM 内核单片机开发的主流工具。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVision)将这些功能组合在一起。uVision 当前最高版本是 uV
44、ision3,它的界面和常用的微软 VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。uVision3 IDE 是一款集编辑,编译和项目管理于一身的基于窗口的软件开发环境。uVision3 集成了 C 语言编译器,宏编译,链接/定位,以及 HEX 文件产生器。如图 12所示,是它的一个典型的调试窗口,它主要包括以下几个窗口:图12 Keil MDK开发环境工程区:用于访问文件组和文件,调试是可以查看 CPU 寄存器。输出窗口:显示编译结果,以便快速查找错误的地方,同时还是调试命令输入输出窗口,也可以用于显示查找结果。内存窗口:显示指定地址内村里的内容。查看和调用堆
45、栈窗口:用于查看和修改变量的值,并且现实当前函数调用。代码窗口:用于查看和编辑源文件。外设对话框:检查微控制的片上外设的状态。使用 Keil 来开发嵌入式软件,开发周期和其他的平台软件开发周期是差不多的,大致有以下几个步骤:1. 创建一个工程,选择一块目标芯片,并且做一些必要的工程配置。2. 编写 C 或者汇编源文件。基于 STM32 的便携式心电图仪设计163. 编译应用程序。4. 修改源程序中的错误。5. 联机调试。4.2 软件系统整体设计采用模块化的编程思想,把整个软件系统化为为多个功能模块,主程序通过调用各个子程序来完成复杂功能的实现。下面具体介绍各个模块的实现。4.2.1 软件总体分
46、析从整体上看,该系统软件分为两个大的部分: (1) 下位机软件即 STM32 应用程序。主要完成心电信号的采集、信号滤波、RTC 模块、液晶显示和串口通信等。利用模块化编程思想分别来实现各个模块的功能,尽量减少程序之间的耦合性,提高程序之间的内聚性。主程序是个无限循环,通过调用各个子程序来完成系统的功能。该部分总体开发思路是,首先完成 STM32 片上资源的初始化,其次是完成各个子程序的编写,最后主程序通过调用主程序完成所要实现的功能。 (2) 上位机管理软件。上位机是运用 LabVIEW 编写的,其功能是完成数据的接收和处理,其中主要包括对数据的接收、显示和存储。处理是指利用 PC 机强大的
47、数据处理功能对上传来的数据进行处理并分析的结果。显示功能完成数据到波形的转换,能够动态显示出心电波形。存储功能完成数据的保存。4.2.2 STM32 软件系统设计流程软件搭载在硬件上运行的,硬件的资源多少在一定程度上决定了软件的设计方法和复杂程度。由于早期的单片机由于硬件资源少,RAM 资源有限,所以工程师在编程的时候对 RAM 的应用要十分小心,因此造成这类的设计开发工程师更加偏向于直接用汇编语言来控制硬件的工作。随着科学的发展,嵌入式系统的复杂度的提高和 EDA 技术的发展,各种高级的 EDA 工具不断推出,比如 Keil、IAR、ADS 等工具,这些工具不仅极大的方便了工程师的开发,同时
48、也为用 C 语言这种高级语言来编写程序提供了有利的条件。但是这种开发方式随着系统的复杂度的增高也变的愈加吃力了,因为对开发人员要熟悉芯片的内部资源,能够进行寄存器配置,这样就对工程师的要求比较高。但是这些问题可以通过移植操作系统来解决,操作系统的优势就是屏蔽了具体的硬件细节,可以让开发人员把更多的精力放在应用程序上。 本系统设计时考虑移植操作系统,但是对于具体的应用存在一些不足之处:首先,操作系统在对数据区的开销以及一些变量的存储方面浪费了很多的 RAM 资源,有限的基于 STM32 的便携式心电图仪设计17RAM 资源就无法有效的分配。其次,STM32 方便的库文件开发方式本身就屏蔽了硬件的
49、细节,处于以上考虑在本次开发中没用移植操作系统,而采用库文件的方式来开发设计。STM32 固件库是一个固件包,它不仅包括了程序、数据结构和覆盖所有外设特性的宏单元。还包括设备驱动的描述以及各个外围模块的实例,该固件库可以使得用户在没有深入学习外围模块规格手册的情况下,也能够使用任何在用户应用中涉及到的设备。因此,使用该固件库可以节省设计者的许多时间,可使开发人员把更多的精力花费在编程方面,加快了开发周期,减少了在应用开发中的综合开销。这是 STM32 软件开发十分显著的优点。实际应用开发时,我们用外设的时候一般有三个步骤,这里以 ADC1 外设为例简单介绍一下开发流程: 1、打开配置文件 st
50、m32f10 x_conf.h,打开 ADC1 的宏开关 #define _ADC #define _ADC1 /这里选择了打开#define _ADC1 2、加载 stm32f10 x_adc.c 文件 stm32f10 x_adc.c 是 ADC 对应的库文件,对 ADC 的一系列操作都在封装好了放在这类文件里。 3、参数设置。包括配置采用周期、触发方式、工作模式、数据存储格式等,开发人员只需根据所需要求在对应的参数位置设置即可。一个简单的实例如下: /* ADC1 configuration -*/ ADC_InitStructure.ADC_Mode = ADC_Mode_Indepe
51、ndent; /独立模式 ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_T1_CC1; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;/右对齐格式 ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &
52、ADC_InitStructure); ADC_RegularChannelConfig(ADC1,ADC_Channel_14,1,ADC_SampleTime_13Cycles5); 其他模块的应用也类似于此,这样就屏蔽了寄存器配置细节,加快了开发速度。4.2.3 软件总体流程图软件设计流程分为两个大的方面,分别对应两个个界面: 第一个界面心电图显示界面,按键有上、下、左、右、中五个按键,按键功能分配如下:上、下按键控制波形纵向移动和幅值的变化,左右键是调节波形在时间上的基于 STM32 的便携式心电图仪设计18周期变化,中间按键是切换键,切换上下键控制幅值变化还是纵向移动。另一个界面是帮
53、助界面,具体介绍各个按键的作用,具体流程图如图 13 所示。开始系统初始化A/D数据采集LCD显示是否有按键按下按键功能程序NYUSART发送图13 系统总体流程图4.3 信号采集程序设计心电信号的精确采集对于后面的进一步处理至关重要。STM32 的片内 ADC 是 12位的模数转换器,可以在 16 路模拟输入中任选一路进行采样,其最高采样率为1MHz,心电信号的频率较低,片内 ADC 足以满足系统采样定理的要求,这样可以提高采样的稳定性和降低系统成本。程序流程框图如 14 所示。 图14 数据采集流程图转换后的数据存放在 ADC_RegularConvertedValue 变量里,转换状态用
54、全局变量dmaflag 来标记,dmaflag0 代表转换未结束,dmaflag1 代表转换结束。4.4 数字滤波程序设计数字滤波算法的实现是软件部分关键的问题,它的运算时间和精度直接决定了系基于 STM32 的便携式心电图仪设计19统的实时性和数据的准确性。本系统用 C 语言编写了相对应的滤波算法程序来实现对所采集的心电信号进行数字滤波。 滤波算法实际上就是用 C 语言来实现差分方程,为叙述方面,把方程列出如下: yBP(n)= yBP(n-4)+ x(n)- x(n-20) (1) yAP(n)= x (n-98) (2)yBS(n)= yAP(n)-yBP(n) (3)可见关键是实现差分
55、方程(1),有式(2)和(3)看出,当前输出与以前数据状态有关,因此需要开辟缓冲区来存放以前的数据,这里开辟三个缓冲区 Buff_bp4、Buff_ap98和 Buff_x20分别存放 yBP(n-4)、yAP(n-98)、x(n-20)的数据。对于式(1),Buff_bp4数组里面存放的是前 4 次 yBP(n)的值,Buff_x20存放的是当前采集数据的前 20 次的x(n-20)数据,前 20 点的数据 yBP(n)都为 0,假设采集到第 20 点时,此时 n=20,把该点赋值给变量14。Cur_val,数组 Buff_bp4全为 0,数组 Buff_x20里面存放了前 20 个点的数据
56、,那么该点滤波后的数值这里让滤波后的数值存放到变量 Fil_val,则Fil_val=Buff_bp0+Cur_valBuff_x0;然后让数组 Buff_bp4右移,把数据Buff_bp0移除,把 Fil_val 的值存入到数据 Buff_bp4中,同理让数组 Buff_x20右移,移除数据 Buff_x0,在把 Cur_val 存入到 Buff_bp20中,这样就完成了一个点的滤波。软件流程如图 15 所示。图15 滤波流程图4.5 液晶程序设计 在本系统中采用彩色 TFT 液晶,波形显示清晰,界面良好。液晶控制的关键在于编写底层驱动程序,底层驱动写好以后再封装不同功能的函数,以后调用就很
57、方便了。STM32 的 FSMC 模块是能够与同步或异步的存储器和 16 位的 PC 存储器卡的接基于 STM32 的便携式心电图仪设计20口,它的主要作用是: 将 AHB 传输信号转换到适当的外部设备协议 满足访问外部设备的时序要求通过这样的方法就可以把液晶当作外部存储设备来使用,通过配置读写及控制信号的时序,用指定指针就可以实现对液晶的读写访问。这样处理不但简化了对液晶的操作,只需指定读写数据的指针就可完成操作,而且提高了访问速度,避免了用端口模拟时序访问液晶产生的滞后现象。并且 STM32 自带 FSMC 方式控制 TFT-LCD 的实例,只需做一些相应的修改就可应用到本系统中。显示的心
58、电波形有两个基本要求:一是波形清晰,无断点,二是波形无明显失真。在显示波形时需要解决三个问题:一是把采集到的电压值转换成液晶上的高度;二是两点之间要连续;三是刷新方式,刷新的一种方法是在波形显示到屏幕的最右边时整个波形区域刷新为空,然后重新从最左边显示,另一种方法是边显示边刷新,即在显示的后边的一小块区域刷新为空,也就是边显示边删除。相比较而言显然第二种方法比较好,因为整个区域刷新是很费时间的问题,有可能影响画图的速度,而第二种方法就有效的克服了这个问题,另外从实际效果来看,视觉效果也比较好。针对第一个问题,实际上就是把电压值转换成点的坐标。本设计中用液晶 X 轴中间的部分来显示波形,X 轴坐
59、标值范围为 60180,而心电信号的电压值范围为 02V,则第一个问题转化为把电压范围 02 映射到坐标 60180的范围内。为了提高精度可以把电压范围在程序内部处理时扩大 100 倍,则转换精度为 P=200/120=5/3,设转换后的坐标为 xzb,另外液晶的坐标原点在右上角,则把电压Cur_val 的范围 0200 转换到坐标 60180 之间可以用以下公式:xzb=180Cur_val*3/5。对于第二个问题解决的办法是在两点之间用直线连接起来,这样就需要把当前点的上一个点的坐标记住,用两个变量保存设为 prxzb、pryzb。5 系统调试结果及误差分析经过软硬件的设计和制作,完成了基
60、本的构架,但是还需经一部的调试和分析才能进一步的完善该系统。5.1 调试手段为检验各模块是否按要求进行正常工作,借助万用表、函数信号发生器以及示波器来进行检测,通过测试结果完成对各个模块完成功能的评估,对整体练调是一种很好的促进手段。当硬件电路正常工作后,我们使用串口调试助手、J-Link 进行在线调试。串口调试工具是通过串行通信接口与主控芯片的进行信息交互,其输出波特率与数据帧的格基于 STM32 的便携式心电图仪设计21式都可以进行设置,具有使用灵活、操作简便的特点。J-Link 是调试 ARM 嵌入式系统的常用工具。在每一部分程序调试通过后,对所有子程序进行整合编写出完的主程序。在开发环境中完成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新生儿骨折的临床护理
- 2024年汽车维修工考试学习路径
- 一年级语文考试模拟试题分享试题及答案
- 文化差异试题答案及解析
- 2024年宠物营养师考点提醒
- 全面考量汽车美容师考试内容试题及答案
- 商场服务测试题目及答案
- 全面备考的二手车评估师考试内容试题及答案
- 二手车市场监管政策分析试题及答案
- 公共事业管理自考重要考题试题及答案
- 2025年茂名市高三年级第一次综合测试(一模)地理试卷(含答案)
- 《ICU镇痛镇静指南》课件
- 证券公司合规管理有效性评估参考表
- 平行线的判定与性质证明题专训30题(人教版)(人教版) 带解析
- 2024新能源光伏电站竣工结算模板报表格式模板
- 全国赛课一等奖初中统编版七年级道德与法治上册《滋养心灵》课件
- 国开电大《企业信息管理》形考任务试题及答案
- 物流客服组建方案
- 外研版五年级英语下册期中测试卷及答案【完整】
- 中药饮片处方点评表-副本(文档良心出品)
- JJF1030-2023温度校准用恒温槽技术性能测试规范
评论
0/150
提交评论