新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機系統設計的誤區與對策

        單片機系統設計的誤區與對策

        作者: 時間:2012-02-23 來源:網絡 收藏

        系統在軍事、工業、民用產品中的應用越來越廣。它將許多以往用硬件實現的功能由軟件來完成,體積小巧、功能豐富、智能化程序度,但在可靠性方面也面臨許多新問題。用現場(EMC)理論剖析系統設計中的某些傳統觀念,會發現許多誤區,并且有些誤區至今還在工程界廣為存在。

        1 誤區之一:有了就不會死機

        死機是指CPU的程序指針進入一個死循環,無法執行正常的程序流程。其外在表現常常是:正常功能喪失,按鍵無響應,顯示凝固。死機后,只有復全才能走出死循環,執行正常的程序流程。眾所屬知,克服死機的最有效手段是加(WatchDog)。

        目前用得最廣泛的實際上是一個特殊的定時器DogTimer。DogTimer按固定速率計時,計滿預定時間就發出溢出脈沖使單片機復位。如果每次在 DogTimer溢出前強行讓DogTimer清零,就不會發出溢出脈沖。清零脈沖由CPU發出,在單片機程序中每隔一段語句放一個清DogTimer的語句——FeedDog語句,以保證程序正常運行時DogTimer不會溢出。一旦程序進入一個不含FeedDog語句的死循環,DogTimer將溢出,導致單片機復位,跳出這個死循環。本文稱這種看門狗為典型看門狗,典型看門狗已被集成比,如MAX706、MAX791等[1];還有許多單片機本身集成了這種看門狗,如PIC16C57、MC68HC705等,具體電路可參閱這些芯片的技術資料[2]。

        有一個錯誤觀點:加了看門狗,單片機就不會死機。實際上,看門狗有時間會完全失效。當程序進入某個死循環,而這個死循環中又包含FeedDog語句,這時 DogTimer始終不會溢出,單片機始終得不到復位信號,程序也就始終跳不出這個死循環。針對這一弊端,筆者設計了雙對限看門狗和定時復位看門狗。

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 晋中市| 浦江县| 长治县| 新巴尔虎左旗| 应用必备| 鹿邑县| 灵璧县| 朝阳县| 长岛县| 桂东县| 伊宁县| 呼和浩特市| 电白县| 六枝特区| 永胜县| 游戏| 西和县| 花莲市| 陇南市| 柞水县| 邛崃市| 宜黄县| 舒兰市| 基隆市| 黑水县| 陆河县| 磴口县| 耿马| 漳浦县| 辛集市| 太康县| 新和县| 永康市| 孟州市| 循化| 无为县| 南召县| 仪陇县| 镇坪县| 海兴县| 新乐市|