• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 使用C2000?? DCC功能監控系統時鐘

    使用C2000?? DCC功能監控系統時鐘

    作者:Emma Wang 時間:2023-06-05 來源:TI 收藏

    簡介:

    本文引用地址:http://www.czjhyjcfj.com/article/202306/447329.htm

    在MCU系統里,的準確性及精度對于系統的安全運行非常重要,為保證系統可對時鐘的準確性進行監控,從F28004X 系列開始, 產品增加了一個新的功能模塊Dual-Clock Comparator,簡稱是一個可配置的,雙時鐘比較的模塊,用于在應用程序的時間執行期間確定時鐘信號的準確性。 使用另一個輸入時鐘作為參考來測量可選時鐘源的頻率。 時鐘源以及精度由應用程序編程。可以實現對時鐘信號提供時鐘輸入頻率的自主、實時的監控,當輸入時鐘頻率范圍超出設定值時,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的設定過程中,除了選定的被檢測的兩個時鐘外,還有兩個重要的參數: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()來完成計算,也可以參考Ware中的例程,方便快速實現功能。DCC 相關例程的路徑如下:C:tic2000Ware_4_03_00_00driverlibf28004xexamplesdcc

    需要注意的是:

    DCC 還可以配置為在單次或連續模式下運行。 在單次模式下,DCC 執行一次性倒計時,當計數器達到 0 時 DCC 停止操作。引發完成中斷并可以檢查狀態。

    在連續模式下,因為需要鎖住發生錯誤的時刻(即counter0 或counter1 的值),也會使得DCC 模塊報錯后,counter停止工作。會遇到只能進入一次DCC中斷的情況,如果客戶希望多次進入DCC 中斷,則需要在DCC中斷中重新使能DCC模塊,可以通過調用這個函數來實現:DCC_enableModule(DCC0_BASE)。

    3.總結:

    使用DCC模塊可以方便快捷地實現對兩路時鐘信號輸入頻率的自主、實時監控,通過對兩路時鐘計數器的比較,可以實現對時鐘系統可靠的監控,從而保證整個系統的安全可靠運行。

    4.參考文檔:

    Continuous Monitor of the PLL Frequency With the DCC

    C2000 Real-Time Control Peripheral Reference Guide (Rev. Q)

    TMS320F28004x Real-Time Microcontrollers Technical Reference Manual (Rev. F)



    關鍵詞: C2000 DCC 系統時鐘

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 陕西省| 柯坪县| 布尔津县| 宣武区| 韶山市| 冕宁县| 丽江市| 五家渠市| 简阳市| 蓬溪县| 游戏| 天等县| 信宜市| 望都县| 通海县| 望都县| 临海市| 崇左市| 肃宁县| 武强县| 芷江| 大城县| 虹口区| 怀安县| 哈尔滨市| 陈巴尔虎旗| 福泉市| 山东省| 手游| 射阳县| 科技| 吴旗县| 通州市| 盈江县| 晋州市| 射阳县| 南昌县| 炎陵县| 金华市| 奎屯市| 化德县|