基于MCS-96單片機(jī)控制系統(tǒng)的程序失控防范
3.3 利用數(shù)據(jù)冗余技術(shù)實(shí)現(xiàn)RAM內(nèi)容自救的方法
為了保證系統(tǒng)實(shí)現(xiàn)無(wú)擾動(dòng)重入正常運(yùn)行狀態(tài),必須保證重要數(shù)據(jù)的正確性。實(shí)現(xiàn)這一目的的方法是采用數(shù)據(jù)冗余技術(shù)。
在實(shí)時(shí)控制過(guò)程中,干擾會(huì)造成RAM中的數(shù)據(jù)被沖毀。數(shù)據(jù)被沖毀的情形,一般有如下3類: 1)整個(gè)RAM區(qū)數(shù)據(jù)被沖毀;2)RAM中某一片數(shù)據(jù)被沖毀;3)個(gè)別數(shù)據(jù)被沖毀。由于RAM中保存的是各種原始數(shù)據(jù)、標(biāo)志、變量等,如果被破壞,會(huì)造成系統(tǒng)出錯(cuò)或無(wú)法運(yùn)行。不過(guò),對(duì)幾乎所有的單片機(jī)實(shí)時(shí)控制系統(tǒng)而言,RAM中的大部分內(nèi)容是為了進(jìn)行分析、計(jì)算、比較而臨時(shí)寄存的,不允許丟失的數(shù)據(jù)也只占RAM內(nèi)容的極少部分。在這種情況下,除了那些不允許丟失的數(shù)據(jù)外,其余大部分內(nèi)容允許短時(shí)被破壞,最多有過(guò)引起系統(tǒng)一個(gè)很短時(shí)間的波動(dòng),但很快就能恢復(fù)正常。因此,在實(shí)時(shí)軟件中,只要注意對(duì)少數(shù)不允許丟失的數(shù)據(jù)進(jìn)行保護(hù)即可。常用方法有“校驗(yàn)法”和“設(shè)標(biāo)法”。這兩種方法各有千秋,校驗(yàn)法比較繁瑣,但查錯(cuò)的置信度高;設(shè)標(biāo)法簡(jiǎn)單,但對(duì)數(shù)據(jù)表中個(gè)別數(shù)據(jù)被沖毀的情況無(wú)能為力。在編程中應(yīng)綜合使用。具體做法是:1)將RAM工作區(qū)重要區(qū)域的始端和尾端各設(shè)置一個(gè)標(biāo)志碼“0”或“1”;2)對(duì)RAM中固定不變的數(shù)據(jù)表格設(shè)置校驗(yàn)字。
在程序執(zhí)行過(guò)程中,每隔一定時(shí)間通過(guò)事先設(shè)計(jì)的查錯(cuò)程序來(lái)校驗(yàn)各標(biāo)志碼是否正常,如果不正常,則利用數(shù)據(jù)冗余技術(shù)通過(guò)抗干擾處理程序來(lái)進(jìn)行修正。冗余設(shè)計(jì)的一般原則是:在RAM區(qū)中相隔盡可能遠(yuǎn)且遠(yuǎn)離堆棧區(qū)的不同區(qū)域?qū)?shù)據(jù)備份3份,當(dāng)讀取數(shù)據(jù)時(shí),把3份數(shù)據(jù)備份相比較,采用 3取2的表決原則,確保數(shù)據(jù)的正確性。
3.4 鎖定輸出口的方法
為了防止失控程序?qū)敵隹诎l(fā)生非正常操作,引起控制量產(chǎn)生波動(dòng)和破壞系統(tǒng)的安全性,必須對(duì)輸出口的操作進(jìn)行嚴(yán)格的審查。解決的辦法是硬件上采用鎖定控制器,軟件上采用功能塊標(biāo)志和口令字。
鎖定控制器由兩個(gè)D觸發(fā)器來(lái)實(shí)現(xiàn),如圖3—3所示。
平時(shí)兩個(gè)鎖定控制器的輸出端Q1、Q2均為低電平,而且Q1、Q2只要有一個(gè)信號(hào)是低電平,輸出通道就處于被封鎖狀態(tài)。只有Q1、Q2同時(shí)為高電平時(shí),該通道才被打開(kāi)。為了防止程序?qū)敵鐾ǖ赖姆欠▽?xiě)入,平時(shí)程序通過(guò)端口控制信號(hào)和置Q1、 Q2為低電平來(lái)關(guān)閉輸出通道。而僅當(dāng)需要輸出時(shí),程序通過(guò)端口控制信號(hào)和置Q1、Q2為高電平打開(kāi)輸出通道。程序輸出時(shí),需先給出口令字。輸出模塊程序流程圖如圖3—4所示。
4 結(jié)束語(yǔ)
采用上述這些措施可以有效地提高系統(tǒng)運(yùn)行的可靠性,獲得令人滿意的控制效果,并且稍做修改即可用于其它類型的單片機(jī)控制系統(tǒng),具有很強(qiáng)的實(shí)用性和通用性。
[參考文獻(xiàn)]
[1] 王幸之.單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)[M].北京航空航天大學(xué)出版社,2000,2.
[2] 周航慈.單片機(jī)應(yīng)用系統(tǒng)程序設(shè)計(jì)技術(shù)[M].北京航空航天大學(xué)出版社,1991,7.
[3] 劉大茂.智能儀表[M].機(jī)械工業(yè)出版社,1998.5.
評(píng)論