- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA的数字式心率计.doc
基于FPGA的数字式心率计|第1
本心率计在数字式心率计的基础上,采用FPGA和VHDL语言实现,减少了元器件使用数量,提高了测量精度和可靠性。该电路能够实时采集并测量人体心跳的瞬时和平均心跳速率,判断并显示心率状态(即心跳是否正常、是否过快或过慢、是否有心率不齐现象)。如果心率过快或过慢或者有心率不齐现象,那么将用不同颜色发光管进行闪烁报警显示。
1 测量方法及电路组成
1.1 测试方法
如上所述,采用数字方法测量瞬时心率(Intantaneous Heart Rate,IHR)时,先测量两相邻R波之间的时间(即心率周期),再将这个心率周期转换为每分钟的心跳数。如图1所示,设心率周期为T秒,则瞬时心率的计算公式为IHR=60/T。如果用频率为f0的时钟脉冲作为测量时间基准,在T秒时间内对时钟脉冲计烽,并设计数值为N,则T=N/f0秒,故瞬时心率的计算公式为IHR=60f0/N。当f0=1kHz时,IHR=60×1000/N=60000/N。
平均心率(Average Heart Rate)的测量是将一定时间内测得的各个瞬时心率求平均值。设测得的瞬时心率为IHR1,IHR2,…,IHRn,则平均心率的计算公式为:
AHR=(IHR1+IHR2+…+IHRn)/n
1 .2 电路组成
系统的组成框图如图2所示。按下start开关将启动测量过程,由传感器获得的模拟心电信号(R波或脉搏波)经过放大后加到比较器的一个输入端,与另一个输入端的参考电压进行比较,将心电信号转换为同周期的方波信号,再输入FPGA进行心率测量。
500)this.style.ouseg(this)
在FPGA中,波形变换电路首先将这个脉冲宽较宽的方波信号进行微分,转换为脉冲宽度等于时钟信号(clk1)一个周期的方波信号,通过周期计数器在心率周期T时间内对时钟信号计数,再根据前面给出的瞬时心率计算公式做除法运算即可得到瞬时心率。瞬时心率通过译码电路转换为七段显示代码后送到FPGA外部的三个LED显示器上进行显示。在一次测量结束时,心率计算模块将测到的各个瞬时心率求平均,得到的平均心率转换为七段显示代码也送到三个LED显示器进行显示。
告警控制模块根据每一个瞬时心率值判断心率是否正常、是否过快或过慢,并根据相邻两个瞬时心率值判断是否有心率不齐现象,分别以英文字母E(正常)、F或S(过快或过慢)及I(心率不齐)的七段显示代码送告警显示电路中的三个LED显示器进行显示,并将这三种心率状态以8Hz的频率送到告警显示电路中颜色分别为绿、红、黄的三个发光二极管进行闪烁报警显示。按下stop开关将结束测量过程,并将平均心率送三个LED显示器进行显示。
系统的主时钟频率为32MHz,送到FPGA中的时钟分频电路产生1kHz和8Hz的时钟频率,分别送到用作波形变换、瞬时心率计算和心率状态显示的波形变换模块、心率计算模块和告警控制模块。系统中的数字电路全部由FPGA芯片实现,外围只有少量的模拟器件,包括比较器、LED和发光二极管显示器、电源电路及晶振电路等,因而系统的体积小、工作稳定、可靠性高。
2 FPGA中各模块的电路组成及工作原理
2.1 波形变换电路
由比较器获得的方波心率脉冲还不能直接用于心率测量,因为脉冲宽度太大。要进行正确的心率测量,必须对这个方波脉冲进行微分,将其宽度调整为一个时钟周期宽。微分电路如图3所示。用VHDL语言编程时,可用一个时钟进程实现这个微分电路。图3中各点波形如图4所示。
500)this.style.ouseg(this)
2.2 心率计算电路
根据瞬时心率计算公式及图1,瞬时心率的计算应以1kHz的时钟频率作为时间基准,测量相邻两次心跳之间的时间,然后做除法运算。因此,瞬时心率计算电路应包括一个12位的二进制计数器和一个16位的二进制除法电路。平均心率的计算应根据测量结束前最后测得的16次心率值求平均,因此心率计算电路还应包括一个能完成12位二时制数加法的电路和一个能完成12位二进制数除法的电路,这个除法运算可通过移位寄存器右移四次来实现。计数器、加法器和移位寄存器在FPGA中用VHDL语言实现都很容易。下面主要讨论测量的实现方法。
瞬时心率计算公式是一个抛物线函数,分母中计数值N是一个变量,这个除法运算不能通过简单的移位寄存器来实现;而设计16位二进制除法运算电路,无论采用组合电路还是采用时序电路,都将耗费很多的芯片资源。另一方面,人的正常心率为60~120跳/分钟,即使心率出现异常,也不会超过20~200跳/分钟,因此所测量的心率值只有有限个数据。这样,可根据每一个可能出现的心率值,预先求出N的变化范围,制作一张表,存入ROM中。实际测量时,再根据测到的N值,选择相应的心率数据。假设心率的变化范围为20~200,则N的变化范围为3077
文档评论(0)