频率检测模块FD(frequency detect)

外部时钟信号频率检测

作用:有些较为高速的板间通信或者需要使用到外来时钟信号的情况,可能会遇到内部工作时钟频率与外来时钟(周期)信号差异过大的问题,这时候就需要有个报警系统或者中断报告无法正常工作。

方式:将接入待测信号与参考时钟(一个固定频率的时钟,譬如内部osc晶振)做比较。即通过计算在相同时间内两者所经过的时钟周期数量(假设周期均匀的情况下)的比值。具体可通过固定待测的信号被采样次数,然后为参考时钟数设立阈值。(一般情况参考时钟均快于待测时钟)

实现:使用三组重要的计数器(寄存器)
det_clkdet_clk1det_clk2:分别是待测信号、对待测信号的内部采样(打一拍)、再做一次延时(打第二拍);后两者共同生成边沿检测。(也可以增加延时已保证准确性)
注:若不满足香浓定理,被采用到的信号(det_clk1)频谱会出现在对称处,相当于频率骤降再随着频率上升而上升——混叠。
cnt1用于记录det_clk1 上升沿(下降沿)的数量,并且采用8倍超量采样(即记录8个上升沿),同步设立一个计数窗口信号gate(当cnt1记录到8个边沿时,进行翻转),目的是为了同步参考时钟。
注:关于超量采样,个人还是没找到比较好的解释,自己也没有很理解这样的意义,类似于oversample,但因为数据只有0,1两种情况,感觉上仅仅只是增加比较的基数,提高精确度,同时数量不大以保证速率。
cnt2用于记录参考时钟的周期数,仅在计数窗口gate置高时记录,gate为低时计数值保持,并在gate上升沿前处(为了对齐可能需要det_clk2多打一拍,用来避开竞争)置零。由此可以得到8个待测时钟上升沿对应的参考时钟数,并与所设阈值作比较,产生中断。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值