新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430單片機看門狗面面觀

        MSP430單片機看門狗面面觀

        作者: 時間:2013-04-07 來源:網絡 收藏

        實驗程序清單:

        #include

        void main(void){

        P1DIR l=0x07; //設置P1.0~P1.2為輸出

        for(;;){

        volatile unsigned int i;

        WDTCTL = WDTPW + WDTCNTCL; //復位WDT計數器

        P1OUT ^= 0x07; //P1.0~P1.2相互異或

        i=5000; //延時

        do(i--);

        while(i != 0);

        }

        }

        上述實驗啟動后,如果程序正常運行,LED會閃爍。缺省時,是允許狀態,所運行的程序會不斷地訪問。理論上,這個系統是不會發生啟動失敗的,因為即使啟動失敗,也應該在數百毫秒內啟動,復位整個系統。基于這種思想,對的復位進行測試。K2斷開,用K1連續產生。Reset信號,測試看門狗使系統重啟的成功率。K2閉合,則reset端高電平,理論上K1不能有效產生復位脈沖,觀察看門狗是否起作用。

        2. 實驗結果與分析

        實驗結果如下:K2斷開,連續開關K1,上電重啟系統,平均155次失敗1次(LED不閃),即看門狗失效概率0.6%;K2閉合,連續開關K1,平均18次失敗1次(LED不閃),且一旦失敗,將連續失敗下去,看門狗無效率占到了約5.5%。

        另外,當采用同樣具有內置看門狗的其他系列替代實驗中的,啟動程序段作相應修改時,實驗結果仍大致相同,這說明具有內置看門狗的面臨的問題是相同的。經分析可能有如下原因:

        ① 由于看門狗的時鐘不獨立,計數時鐘與系統為同一分頻鏈路,因此看門狗不能在系統出現問題時有效運作。

        ② 由于時鐘可用軟件設置,啟動失敗時,開機時鐘可能處于空檔,沒有時鐘看門狗不能生效。

        ③ 有些看門狗需要用軟件設置或啟動,因此啟動失敗后,初始化程序沒有激活,CPU可能跳轉到隨機代碼,使看門狗被禁止。這樣的看門狗是需要有可靠的上電復位作保證的,因此,從理論上講,原設計存在著不合理性。基于上述分析,采用片外看門狗專用芯片TPS3823由獨立的分頻振蕩電路提供計數脈沖。實驗電路如圖2所示。

        3.jpg

        上述電路中,TPS3823輸出定時溢出信號給Reset端。程序段中,CPU要不斷地通過I/O口輸出喂狗信號,使看門狗計數器清零。在此電路中重復上述試驗中K1、K2的相同動作,系統重啟成功率達到100%。

        結 語

        未來的內置看門狗必須有獨立可靠的時鐘。系統上電后,看門狗即為允許狀態,無需軟件設置,它只能被外部硬件跳線或內部熔絲(fuse)所禁止。目前,如果要求設計可靠性較高的嵌入式系統,外置看門狗是必須考慮的。內置看門狗的另一問題是系統復位后,程序應判斷是由Reset端正常上電復位,還是程序跑飛看門狗所致,由此確定現場數據是否應該保留。這也是在看門狗應用中所應考慮的。


        上一頁 1 2 3 下一頁

        關鍵詞: MSP430 單片機 看門狗

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 武威市| 嘉祥县| 托克托县| 察隅县| 萨嘎县| 铜川市| 饶阳县| 镇平县| 措美县| 新疆| 栖霞市| 祥云县| 山阴县| 开鲁县| 阿合奇县| 土默特右旗| 民和| 桃园市| 宁海县| 古田县| 成武县| 闽侯县| 开化县| 汽车| 琼海市| 陆良县| 浮山县| 达日县| 永安市| 永寿县| 望都县| 上思县| 栾城县| 繁昌县| 赫章县| 紫云| 泊头市| 抚松县| 安达市| 塔河县| 青田县|