这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 请教一个关于检测回波时间的问题,怎么能让一个上升沿来了之后计数器停止计数。

共3条 1/1 1 跳转至

请教一个关于检测回波时间的问题,怎么能让一个上升沿来了之后计数器停止计数。

菜鸟
2014-07-03 09:22:56     打赏

我现在要做一个回波的首波时间检测,具体判断方法为使用一个门槛电压和比较器进行比较,

当TimeEnd=1时我就认为是回波已经来了。

然后做出来的仿真如下 :

如图

使用的是计数的方式来计算回波的时间,前面一段为激发和拖尾,我不认为是回波到来的时刻,所以让计数一直进行,然后到后面遇见高电平就停止计数。

现在存在的问题是,回波来之后TimeEnd信号的波形如图后半段所示, 我怎么才能在回波一来临的时候就停止计数??

下面是现在的程序

module TimeDetection  (
                        clk,                               
reset,
  //PHOneStart,
  TimeEnd,                           //全波列和比较器比较,高电平有效表示首波已经到来。

TimeData
                       );
 input clk;
 input reset;
    //input PHOneStart;
 input TimeEnd;
 output TimeData;
 reg [11:0] TimeData;
 
parameter  Time_Exc = 12'd799;                             //16us
 
always @ (posedge clk or negedge reset)
  if (!reset)
   TimeData <= 12'd0;
 // else if (PHOneStart)
 //  TimeData <= 12'd0;
  else if (TimeData < Time_Exc)
   TimeData <= TimeData+12'd1;  
  else if (TimeData > Time_Exc-12'd1 && TimeEnd==0)
   TimeData <= TimeData+12'd1;
  else if (TimeData >Time_Exc-12'd1 && TimeEnd==1)
   TimeData <= TimeData;


endmodule


菜鸟
2014-07-03 09:23:40     打赏
2楼
具体用语言怎么实现?

菜鸟
2014-07-03 09:56:47     打赏
3楼

激发信号是自己产生的,所以我有办法鉴别,问题是到了回波到了以后TimeEnd这个信号是会在1,0 之间变动的

问题是我怎么在首波来的时候让计数停止


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]