跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

如何检测外部时钟信号的频率?

在高速板间通信或使用外来时钟信号时,我们可能会遇到内部工作时钟频率与外来时钟信号差异过大的问题。这时候,就需要一个报警系统或者中断报告来确保正常工作。那么,如何检测外部时钟信号的频率呢?本文将为你详细解析。

作用:检测外部时钟信号频率,确保系统正常工作。

检测方式

  • 将待测信号与参考时钟(如内部osc晶振)进行比较。
  • 计算相同时间内两者所经过的时钟周期数量的比值。
  • 通过固定待测信号被采样次数,为参考时钟设立阈值。

实现方法

使用三组重要的计数器(寄存器):

  • det_clk:待测信号。
  • det_clk1:对待测信号的内部采样。
  • det_clk2:对det_clk1进行延时。

通过det_clk1生成边沿检测,cnt1记录det_clk1上升沿(下降沿)的数量,并采用8倍超量采样。cnt2记录参考时钟的周期数,仅在计数窗口gate置高时记录。通过比较待测时钟上升沿对应的参考时钟数与所设阈值,产生中断。

注意:若不满足香浓定理,被采用到的信号频谱会出现在对称处,相当于频率骤降再随着频率上升而上升——混叠。

关于超量采样,个人还是没找到比较好的解释,自己也没有很理解这样的意义,类似于oversample,但因为数据只有0,1两种情况,感觉上仅仅只是增加比较的基数,提高精确度,同时数量不大以保证速率。

总结:通过以上方法,我们可以有效地检测外部时钟信号的频率,确保系统正常工作。

——陈景序,websoft网络软件专家(www.phpwebsoft.com)

想要了解更多关于Web开发的技术内容,请关注我们的网站。

相关文章