原创 毛刺滤波的一些方法

2011-4-26 11:08 5666 13 25 分类: 消费电子

 

在采集一组并行接口信号时,发现接收到的数据非常不稳定。用示波器测量几个用于同步的控制信号,发现时不时的有毛刺产生。因为这些数据最终都是要显示在液晶屏上的,当示波器同时测量两个同步信号时,液晶屏的显示错位现象得到明显好转。示波器探头测量信号时相当于并联上一个pF级的电容,也能够一定程度上起到滤波的效果,因此可以断定同步信号的毛刺影响了数据的采集。其中一个同步信号如图1,两个有效高脉冲之间有很多毛刺,放大毛刺后如图2所示,大约维持10ns的高电平。


20110426_tequan_f1.jpg

图1

20110426_tequan_f2.jpg

图2

 

 

如何滤除这些毛刺呢?办法有两个,其一就是用纯粹硬件的办法,在信号进入FPGA之前进行滤波处理,串个电阻并个电容都可以,特权同学并了一个20pF电容后就能够把这些毛刺彻底滤干净,如图3所示。

 

20110426_tequan_f3.jpg

图3

 

 

而还有一种“软”硬件滤波的方法。就如特权同学收录进《深入浅出玩转FPGA》一书中的博文《基于FPGA的跨时钟域信号处理——亚稳态》所谈到的,降低数据采集频率以及多次采集后逻辑处理都是一种思路。那这里特权同学给出一种多次采集处理的滤波方法和大家分享。

input ain;  //输入信号

 

reg[3:0] ainr;  //输入信号缓存

 

    //输入信号打4拍

always @(posedge clk or negedge rst_n)

    if(!rst_n) ainr <= 4'd0;

    else ainr <= {ainr[2:0],ain};

 

    //输入信号上升沿检测,高电平有效

wire pos_ain = ~ainr[3] & ~ainr[2] & ainr[1] & ainr[0];

    //通常只要两个信号就行,即wire pos_ain = ~ainr[2] & ainr[1] ;。

    //这里用了4个信号就是多次采样滤波的效果

 

    //输入信号下降沿检测,高电平有效

wire neg_ain = ainr[3] & ainr[2] & ~ainr[1] & ~ainr[0];

    //通常只要两个信号就行,即wire neg_ain = ainr[2] & ~ainr[1] ;。

    //这里用了4个信号就是多次采样滤波的效果   

 

    //若该输入信号主要关注其高脉冲,那么可以做以下滤波

wire high_ain = ainr[1] & ainr[0]; 

    //两个信号相与通常可以滤除1个clk的毛刺,相应的,3个信号相与可以滤除2个clk的毛刺

 

    //若该输入信号主要关注其低脉冲,那么可以做以下滤波

wire low_ain = ainr[1] | ainr[0];

文章评论12条评论)

登录后参与讨论

kent_rao_738407428 2013-7-4 16:51

谢谢香雪茶先生。你的评论,让我很感动,真的!

用户1470025 2013-7-4 09:37

就感到温馨。这才是中华民族的传统美德。

用户1699078 2013-7-2 11:56

我们要努力向楼主学习,奉献社会!

用户1277994 2013-7-2 11:49

只要是时间上OK,我一定去。

kent_rao_738407428 2013-7-2 10:49

Mike, 这个月底愿意与我同去吗? 由于是灾区,政府对那里不错,这些年改善非常多。所以去那里不用“吃苦”

kent_rao_738407428 2013-7-2 10:46

多谢Suieuu的心意。其实,不用太多物质上的东西,我们同样可以帮助他们。如果你有小孩, 他们看过的书籍,还有具, 对大山里的孩子来说,都说非常好的礼物, 都会让他们感受到人们的关爱。 这次过去,我女儿和她的同学就捐了很多她们看的书。由于这些书都说孩子们选的,在那里非常受欢迎。受欢迎的程度远超过大人们给挑选的书

用户1663888 2013-7-2 09:07

以后有条件了,我们也贡献一份力量~

用户1277994 2013-7-2 08:59

博主在传播正能量,赞!希望真有机会,和博主一起去参与这样的活动,能够再去“吃点苦”。

用户1586985 2013-7-2 08:43

一个公司援建一所学校,不错!

用户1012893 2013-7-2 07:41

好!分享快乐!
相关推荐阅读
用户1587532 2012-12-04 14:56
被忽略的硬件常识
          在特权同学的《都是IO弱上拉惹的祸》一文中,提及了Altera的CPLD在初始化时管脚通常会处于弱上拉状态。在实际示波器采样来看,就表现在上电初 期IO脚会有一个短暂(当时是持...
用户1587532 2012-12-04 14:56
都是IO弱上拉惹的祸
         开发的一款液晶驱动器,接收MCU过来的指令和数据进行图像显示。使用了一片可编程(带使能和PWM调节控制)的背光芯片。在CPLD设计中,上电复位状态将背光使能拉低(关闭),直到MC...
用户1587532 2011-12-29 09:39
四通道波形动态演示效果
 ">http:// http://v.youku.com/v_show/id_XMzM3MDY2NjYw.html   这效果,Cortex-M3可以吗?     ...
用户1587532 2011-12-21 12:54
高速绘图显示,还是FPGA给力
  示波器的效果,曾经以为难于上青天,殊不知咱用FPGA一样能够轻松效仿。目前只是单通道的显示效果,随后送上4通道独立或叠加的波形效果。          感兴趣的朋友不妨去看看他的详细参数:...
用户1587532 2011-10-12 10:23
Keil存储空间自定义分配
Keil存储空间自定义分配          看来Capital-Micro的软件支持包做得还不够到位啊,在51编程环境KeilC中使用Astro II器件光有个Capital Micro D...
用户1587532 2011-09-22 16:38
源同步信号跨时钟域采集的两种方法
源同步信号跨时钟域采集的两种方法            对于数据采集接收的一方而言,所谓源同步信号,即传输待接收的数据和时钟信号均由发送方产生。FPGA应用中,常常需要产生一些源同步接口信...
我要评论
12
13
关闭 站长推荐上一条 /2 下一条