新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于MCS-96單片機控制系統的程序失控防范

        基于MCS-96單片機控制系統的程序失控防范

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

        3.3 利用數據冗余技術實現RAM內容自救的方法

        為了保證系統實現無擾動重入正常運行狀態,必須保證重要數據的正確性。實現這一目的的方法是采用數據冗余技術。

        在實時控制過程中,干擾會造成RAM中的數據被沖毀。數據被沖毀的情形,一般有如下3類:      1)整個RAM區數據被沖毀;2)RAM中某一片數據被沖毀;3)個別數據被沖毀。由于RAM中保存的是各種原始數據、標志、變量等,如果被破壞,會造成系統出錯或無法運行。不過,對幾乎所有的實時而言,RAM中的大部分內容是為了進行分析、計算、比較而臨時寄存的,不允許丟失的數據也只占RAM內容的極少部分。在這種情況下,除了那些不允許丟失的數據外,其余大部分內容允許短時被破壞,最多有過引起系統一個很短時間的波動,但很快就能恢復正常。因此,在實時軟件中,只要注意對少數不允許丟失的數據進行保護即可。常用方法有“校驗法”和“設標法”。這兩種方法各有千秋,校驗法比較繁瑣,但查錯的置信度高;設標法簡單,但對數據表中個別數據被沖毀的情況無能為力。在編程中應綜合使用。具體做法是:1)將RAM工作區重要區域的始端和尾端各設置一個標志碼“0”或“1”;2)對RAM中固定不變的數據表格設置校驗字。

        執行過程中,每隔一定時間通過事先設計的查錯來校驗各標志碼是否正常,如果不正常,則利用數據冗余技術通過抗干擾處理來進行修正。冗余設計的一般原則是:在RAM區中相隔盡可能遠且遠離堆棧區的不同區域將數據備份3份,當讀取數據時,把3份數據備份相比較,采用 3取2的表決原則,確保數據的正確性。

        3.4 鎖定輸出口的方法

        為了防止程序對輸出口發生非正常操作,引起控制量產生波動和破壞系統的安全性,必須對輸出口的操作進行嚴格的審查。解決的辦法是硬件上采用鎖定控制器,軟件上采用功能塊標志和口令字。

        鎖定控制器由兩個D觸發器來實現,如圖3—3所示。

        48.jpg

        平時兩個鎖定控制器的輸出端Q1、Q2均為低電平,而且Q1、Q2只要有一個信號是低電平,輸出通道就處于被封鎖狀態。只有Q1、Q2同時為高電平時,該通道才被打開。為了防止程序對輸出通道的非法寫入,平時程序通過端口控制信號和置Q1、 Q2為低電平來關閉輸出通道。而僅當需要輸出時,程序通過端口控制信號和置Q1、Q2為高電平打開輸出通道。程序輸出時,需先給出口令字。輸出模塊程序流程圖如圖3—4所示。

        49.jpg

        4 結束語

        采用上述這些措施可以有效地提高系統運行的可靠性,獲得令人滿意的控制效果,并且稍做修改即可用于其它類型的,具有很強的實用性和通用性。

        [參考文獻]
        [1] 王幸之.應用系統抗干擾技術[M].北京航空航天大學出版社,2000,2.
        [2] 周航慈.單片機應用系統程序設計技術[M].北京航空航天大學出版社,1991,7.
        [3] 劉大茂.智能儀表[M].機械工業出版社,1998.5.


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 隆子县| 隆回县| 合川市| 东台市| 都兰县| 麦盖提县| 施甸县| 裕民县| 三台县| 萨迦县| 余干县| 高唐县| 社会| 普安县| 全南县| 盐池县| 沂源县| 永寿县| 友谊县| 类乌齐县| 浮梁县| 景洪市| 虎林市| 夹江县| 沙湾县| 阿拉善盟| 剑川县| 岑巩县| 卢龙县| 汽车| 唐海县| 巍山| 邯郸县| 新疆| 孝义市| 孟连| 巴马| 武宣县| 石首市| 霞浦县| 新竹市|