基于Verilog-HDL的轴承振动噪声电压峰值检测_EDAPLD论文
关键词:峰值检测 传感器 verilog-hdl a/d转换器
引言
在轴承生产行业中,轴承振动噪声的峰值检测是一项重要的指标。以往,该检测都是采用传统的模拟电路方法,很难做到1:1地捕捉和保持较窄的随机波形的最大正峰值。本文叙述了基于verilog-hdl与高速a/d转换器相结合所实现的快速轴承噪声检测方法。
1 振动噪声电压峰值检测方案的确定
1.1 轴承振动噪声的产生及检测
图1是轴承振动噪声电压峰值检测系统的示意图。由于加工设备、技术、环境等因素的影响,生产的轴承都程度不同地带有伤疤。图1中,假设某待测轴承有一处伤疤。由于伤痕的存在,轴承在转动过程中,伤疤将与滚珠产生摩擦,从而表现在轴承整个产生微小的振动。这一振动通过加速度传感器输出电压信号,经电荷放大器、峰值检测后,即后得到振动噪声的峰值电压。图2给出了在有伤疤情况下的传感器输出电压波形。
1.2 模拟式的峰值电压保持电路
以往的轴承振动噪声峰值电压检测,均采用了模拟式的峰值电压检测法。图3示出了由采样保持电路lf398h构成的该类检测电路。当噪声电压到来后,采样信号跟随模拟信号电压到峰值处,之后采样脉冲消失,电路处于保持状态。保持电容c上即存储了模拟信号的峰值电压vm。要想较快地跟随输入电压vin的变化,保持电容c的容量就应相对减小;而c的相对减小,又会导致在保持电压期间,输出电压vout的下降速率加快。这两者相互矛盾,从而使这种电路难以达到较高的性能。
1.3 数字式的峰值电压检测
模拟式的峰值检测电路不易做到高速采样。采桥保持电路经长期使用后,多方面的性能会发生明显变化,且不易批量化生产;而由数字电路组成的系统可以做到结构简单、调试方便,长期使用不会导致系统性能指标的下降。图4是一种数字式的峰值检测系统的组成方案。它由a/d转换部分和数字电压的峰值检测部分组成,接口电路内含微处理器,负责与微机进行数据通信和接收来自微机的控制信号,并控制检测系统的工作。根据应用对象的不同,a/d转换器的采样速率可高达上百msps,并可自带采样保持电路。与a/d转换器相接的数字电压峰值检测电路可采用fpga,其工作速度也中达上百msps。因此,在信号的处理速度方面两者都是优于传统的模拟电路方式的。
2 基于verilog-hdl的峰值电压检测方案
2.1 逻辑功能的设计
图5给出了数字电压峰值检测框图。图中除了a/d转换器外,虚线部分所示均为fpga组成的功能模块。其功能由verilog-hdl(hdl:硬件描述语言)来实现。工作原理如下:由a/d转换器取得的数字电压送入数据缓冲模块get_data,get_data中的数据与来自数据存储模块data_mem中的数据都送入数据比较模块data_comp进行比较。如果x端的数据大于y端的数据,比较标志模块产生标志信号,同时该信号将x端的数据打入数据存储模块data_mem中(系统复位后,data_mem中的数据为最小值0),进而实现了保持2个数据中较大的一个功能。当振动噪声电压经a/d转换器转换成数字电压后,数据存储模块便依a/d转换的次数做相应次的比较,最终将噪声电压的峰并保持下来。vdout为数字式的峰值输出电压。
仅有图5的逻辑功能框图还不能方便地用verilog-hdl来描述。为此将其进一步细化为图6所示的形式。图6中虚线框内的功能由xc9572(xilinx公司的产品)实现。图6中,vin为模拟电压的输入,vdout为数字峰值电压的输出,vdout、rb1、rb21均与接口电路相接,rb1、rb2受微机的控制。
2.2 时序图
图7为图6所示逻辑电路的时序图。按照轴承检测的工艺,当系统复位rb2、启动脉冲rb1到来后,经0.7s的延时,便产生1个宽度为1s的门脉冲g_p。在此期间,a/d转换器连续转换的数据送入数据缓冲器get_data,之后进行数字信号的峰值检测和保持。a/d转换器在此采用max120。该转换器的分辨率为12bit,转换时间为1.6μs。
2.3 逻辑仿真
在硬件电路实现之前,用verilog-hdl对图6所示的逻辑电路进行了仿真,图8即为仿真结果。从仿真结果中可以看出,系统复位后,d_out(vdout)输出为0,在1s门脉冲g_p有效期间,get_data接收时钟get_data_clk。此间来自a/d转换器的数字电压(分别为from_adc=10、15、18、17、4、6、2)相继输入至get_data。由于这期间的最大值为from_adc=18,故有d_out=18。在门脉冲g_p无效期间,即使有数据from_adc=11输入,仍有d_out=0。
2.4 verilog-hdl主模块
限于篇幅,这里只将本系统所涉及到的verilog-hdl的主模块部分列出:
module pk_sel(busy,rb1,rb2,from_adc,d_out,p_out);
input busy,rb1,rb2;
output p_out;
input [11:0]from_adc;
output [11:0]d_out;
wire [11:0]to_com;
wire get_data_clk;
//产生秒脉冲
cnt100 f_4khz (rb1,busy,f_4k); //分频
cnt100 f_37hz (rb1,f_4k,f_37); //分频
delay_p1 start_dly (rb2,rb1,f_7,dly_05s); //延时0.7s
delay_p2 gene_spb (rb2,dly_05s,f_7,spb); //延时1s
gete_gene gene_gp (g_p,dly_05s&rb2,spb); //1s的门脉冲
assign p_out=g_p;
//adc数据最大值的比较和检测
assign get_data_clk=~busy & g_p;
dff12 get_data(get_data_clk,from_adc,to_com, ~spb & rb2); //获取adc数据
comp_d data_comp(to_com,d_out,d_s); //数据比较
dff12 data_mem(busy & d_s,to_com,d_out,rb1 & rb2); //数据存储
endmodule
结束语
与模拟式的峰值电压检测方式相比,数字式的检测方式有着结构简单、系统开发周期短等优点,而采用verilog-hdl可以方便地实现欲有的功能。笔者设计开发的该系统用在了大连科汇轴承仪器有限公司生产的s0910-3型轴承振动测量仪中,并于今年6月在上海的国际轴承及装备博览会上引起了同行的关注。