DCC模块的工作原理,DCC模块的实际应用及注意事项

描述

在MCU系统里,系统时钟的准确性及精度对于系统的安全运行非常重要,为保证系统可对时钟的准确性进行监控,从F28004X 系列开始,C2000 产品增加了一个新的功能模块Dual-Clock Comparator,简称DCC。DCC是一个可配置的,双时钟比较的模块,用于在应用程序的时间执行期间确定时钟信号的准确性。 DCC 使用另一个输入时钟作为参考来测量可选时钟源的频率。 时钟源以及精度由应用程序编程。可以实现对时钟信号提供时钟输入频率的自主、实时的监控,当输入时钟频率范围超出设定值时,DCC模块会触发错误,从而完成对输入时钟频率的监控。本文以F280049为例,介绍了DCC模块的工作原理和实际应用及相应的注意事项。

1.DCC工作原理介绍和配置方法:

顾名思义,DCC模块提供了两个时钟模块clock0 和clock1 按照设定比例及允许误差范围进行互相校验,用户可以自由选择两个时钟的输入源,如下图所示,同时也需要设定最大的允许误差。

Counter1 的时钟源有:

PLLRAWCLK

INTOSC1

INTOSC2

Counter0 的时钟源有:

XTAL

INTOSC1

INTOSC2

注:F280049是Type1 型的DCC,F28002x, F28003x, F280013x, F280015x, F2838x 均为Type2 型的DCC,clock0 和clock1都有更多的输入源,具体细节可以参考对应产品的datasheet。

DCC

在DCC的设定过程中,除了选定的被检测的两个时钟外,还有两个重要的参数:tolerance 和frequency error。

1. Tolerance : Tolerance代表着DCC模块的颗粒细度,Tolerance越大,Clock0和Clock1的counter 越小,类似于ADC 的采样位数更小。但是当频率异常的时候,也可以反应的更快。我们一般设这个值为1%。

2. Frequency error:时钟误差的接受度,由于两个时钟的不同步和量化都会引入误差,所以本身就存在一个最小的误差。同时,时钟一定程度的偏差也是可以接受的,可以根据系统的需求输入,针对+/- total error 的时间偏差,都是可以被接受的。

根据系统需要,给出Tolerance和frequency error,计算方法在库函数中可以看到:

count0 = window - total_error;

valid = 2 * total_error;

count1 = window * freq1 / freq0;

配置好后,一旦DCC 被使能,counter0 和Valid0 会在每一次clock0 的时钟信号来一次减1,同样的,counter1 会在每一次clock1的时钟信号来一次减1。

我们先假设clock0 是个可靠的时钟,在clock1 的精度在允许最大误差内运行的时候,三个计数器应该按照下列顺序到达0:

Counter0 -》 Counter1 -》 Valid0

如果clock1的误差偏大,那么 有两种失效可能性:

一种是clock1 偏快,那么就会出现clock1 的counter1 先到达0。

一种是clock1 偏慢 ,那么就会出现clock0和valid0都到达0 之后, counter1 还没到达0。

2.实际应用:

在实际应用中,我们既可以用Clock0 来监测Clock1的精度,也可以用clock1 来监测Clock0的丢失(将Clock0设为XTAL)(因为Clock1输入只能选内部时钟)。DCC 的值的计算比较复杂,可以用TI 提供的driverlib 函数DCC_continuousMonitor()来完成计算,也可以参考C2000Ware中的例程,方便快速实现功能。DCC 相关例程的路径如下:C:tic2000C2000Ware_4_03_00_00driverlibf28004xexamplesdcc

需要注意的是:

DCC 还可以配置为在单次或连续模式下运行。 在单次模式下,DCC 执行一次性倒计时,当计数器达到 0 时 DCC 停止操作。引发完成中断并可以检查状态。

在连续模式下,因为需要锁住发生错误的时刻(即counter0 或counter1 的值),也会使得DCC 模块报错后,counter停止工作。会遇到只能进入一次DCC中断的情况,如果客户希望多次进入DCC 中断,则需要在DCC中断中重新使能DCC模块,可以通过调用这个函数来实现:DCC_enableModule(DCC0_BASE)。

3.总结:

使用DCC模块可以方便快捷地实现对两路时钟信号输入频率的自主、实时监控,通过对两路时钟计数器的比较,可以实现对时钟系统可靠的监控,从而保证整个系统的安全可靠运行。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分