基于FPGA的脉搏测量仪的设计 - FPGA/ASIC技术 -
脉搏信号中包含人体重要的生理病理信息,常作为心血管疾病诊断和治疗的依据。随着信息采集技术以及生物医学的迅速发展,脉搏信号的获取也有了新的方法。本文提出将脉搏信号实时显示出来,为诊治医师提供足够的病理信息,提高传统脉诊的效率。
本系统的脉搏信号显示借助VGA接口来实现。以往对于VGA显示的研究侧重于VGA接口驱动技术,主要实现VGA静态显示[1-2]。基于此种现象,本文提出了利用双口RAM来实现脉搏采集数据的存储与读取,从而可以实现实时显示,结果证明此方案可以很好地满足要求。同时,本系统充分利用了FPGA的硬件资源,取代了VGA的专用显示芯片,降低了系统的开发成本,提高了系统的集成度。
1 总体设计
采集到的脉搏信号往往比较微弱,而且伴随着很多噪声。因此需要滤波、放大等处理电路进行预处理。脉搏信号属于模拟信号,要想送到FPGA处理,需进行模/数转换。FPGA将数字信号存储在内部RAM中,并利用Verilog HDL语言编写VGA显示控制模块,驱动显示器显示脉搏波形。整个系统的原理框图如图1所示。
2 系统实现
2.1 信号处理电路
脉搏信号存在频率低、信号弱、噪声严重等问题。脉象频谱分析表明,脉象能谱中99%的能量集中在10 Hz以下[3],而且正常成人的脉搏跳动次数为60~100次/min,脉率是1~1.67 Hz。为了滤除噪声,又不影响脉搏信号的能量,选择0.8~20 Hz作为信号的频带宽度。因此,本设计的信号处理电路主要由前置放大器、高通滤波器、低通滤波器、主放大器组成。信号处理电路图如图2所示。
经分析,信号处理电路的频率带宽为0.72 Hz~20 Hz,放大倍数为300多倍,可以完成功能要求。另外,实际中将R7用10 k?赘的电位器代替,从而实现放大倍数可调的目的,适用更多的场合。
2.2 A/D转换
A/D转换芯片主要完成模拟信号到数字信号的转换。ADC0804是逐次比较型集成A/D转换器,分辨率为8位,转换时间为100 μs,输入电压范围为0~5 V,而且价格便宜、操作简便。基于以上特点,本设计选用ADC0804作为A/D转换芯片。对经过处理电路处理的脉搏信号进行采样,并将得到的数字信号送到FPGA中。
2.3 FPGA控制
本系统的FPGA控制部分主要由分频模块、RAM、VGA控制模块三部分组成。
根据电视原理有关VGA显示的内容可知,VGA显示采用逐行扫描方式。扫描是从屏幕的左上方开始,从左到右、从上到下。本系统采用640&TImes;480@60 Hz显示模式,其中60 Hz为场扫描频率。对于一个场扫描频率为60 Hz、分辨率为640&TImes;480的显示模式,其典型的VGA时序表如表1所示。
由表1可以计算出VGA驱动所需的时钟频率为800&TImes;552&TImes;60 Hz=25.2 MHz。而FPGA的时钟频率为50 MHz,因此需要一个分频模块,实现二分频的功能。
VGA控制部分主要是产生行同步信号(Hsync)和场同步信号(Vsync),模拟VGA的显示时序表。此模块的设计思想是模拟逐行扫描的过程,每行800个像素点,扫完一行,接着扫第二行,一共有525行。因此,可以设计两个计数器,行计数器(h_cnt)和列计数器(v_cnt)。h_cnt从0开始计数,计到799后归零;v_cnt也从0开始计数,计到524后归零,并且在h_cnt计到799后,v_cnt加1,clk_25m作为两个计数器的触发脉冲。当h_cnt=96时,Hsync=1;当h_cnt=0时,Hsync=0。类似的,当v_cnt=2时,Vsync=1;当v_cnt=0时,Vsync=0。从而实现了行同步信号和列同步信号的产生,并模拟了VGA显示时序表。行计数器的程序流程图如图3所示。
显示器是由一个个像素点组成的,如果是640×480的显示模式,就意味着每行有640个像素点,每列有480个像素点,一共是307 200个像素点。图像在显示器上显示,其实就是点亮相应的像素点。因此,基于这种理解,可以将脉搏波形当作一幅图像,波形走过的地方就是相应的像素点被点亮了。因此对脉搏信号采样,得到的就是相应的像素点。如果将采样值作为列坐标,第几次采样作为行坐标,就可以确定一个像素点,继而可以描绘出一幅脉搏波形图。
通过上面的分析过程,提出一个解决方案,就是寻找一个存储介质,既可以读,又可以写。而FPGA正好有这样的资源,于是采用RAM来充当这个存储介质。从VGA显示原理已经知道,VGA显示采用的是逐行扫描的方式。如果将采样值作为RAM的地址,也是列坐标,而将第几次采样作为相应的存储单元存储的内容,同时也是行坐标。这样既有了行坐标,又有了列坐标。当VGA扫描时,扫描到某一行,就到相应的RAM存储单元取出其中的内容,并判断是否与当前扫描到的行坐标相同,如果相同则点亮此像素点,否则就不点亮。这就是RAM部分的设计思想。
查看评论 回复