智能接觸器可靠性設(shè)計的軟件實現(xiàn)方法(06-100)
監(jiān)控程序一般在上電、復(fù)位等操作時,對單片機(jī)及片外擴(kuò)展接口芯片的各種功能、端口、方式、狀態(tài)等采用永久性或臨時性的設(shè)置,這就是通常的初始化??紤]到可能的干擾入侵,為保證嵌入式系統(tǒng)的自恢復(fù)功能,可進(jìn)行“重復(fù)初始化”,即:在重要功能模塊調(diào)用前,再一次對相應(yīng)的控制寄存器設(shè)定動作模式,以加強(qiáng)該功能模塊的健壯性。
本文引用地址:http://2s4d.com/article/81284.htm數(shù)據(jù)傳輸冗余
控制或采集端與上位機(jī)之間的串行傳輸可考慮給數(shù)據(jù)添加冗余位的方式,以延長數(shù)據(jù)代碼之間的海明距離(Hamming);或采用循環(huán)冗余校驗(CRC)手段,來增加數(shù)據(jù)的檢測和糾正錯誤能力。
重復(fù)執(zhí)行
把重要的指令設(shè)計成定時掃描模塊,使其在整個程序的循環(huán)運(yùn)行過程中反復(fù)執(zhí)行。這樣,即使干擾信號改寫了指令的內(nèi)容,也能在受控設(shè)備的反應(yīng)時間內(nèi)自動恢復(fù)正常。例如,對頻率較低的傳感器數(shù)據(jù),可在有效時間內(nèi)多次采集并比較;對控制外部設(shè)備的指令,則需多次重復(fù)執(zhí)行以確保輸出信號的可靠性。
標(biāo)志冗余法
考慮到干擾信號有可能對RAM區(qū)的數(shù)據(jù)進(jìn)行破壞,我們可以在RAM中每隔一定單元置入一些標(biāo)志(標(biāo)志冗余),而這些標(biāo)志在初始化時便設(shè)置好。事故處理程序一開始,便檢查這些標(biāo)志是否正常;如不正常,說明數(shù)據(jù)已被破壞,轉(zhuǎn)向事故處理程序。具體做法是:在單片機(jī)內(nèi)存(片內(nèi)RAM)中設(shè)立運(yùn)行標(biāo)志FLAG(冗余標(biāo)志)。若數(shù)據(jù)寫在2K的RAM空間,地址從0000H開始,每隔256個單元置一個標(biāo)志EEH。
“冗余標(biāo)志”還可以完成單片機(jī)系統(tǒng)的冷、熱啟動的自動判別。“冷啟動”就是清零啟動,一切重新開始。它通常包括清除內(nèi)外RAM中的所有中間運(yùn)行數(shù)據(jù)、各種狀態(tài)標(biāo)志。“熱啟動”則是停電時保存的中間數(shù)據(jù)和各種有關(guān)標(biāo)志為基礎(chǔ)的條件下,繼續(xù)運(yùn)行。如果在RAM中將連續(xù)5個單元設(shè)為“AAH”作為正常標(biāo)志。即正常開機(jī)時,初始化程序?qū)lag全部置為AAH,然后,再執(zhí)行運(yùn)行程序。若軟復(fù)位后,程序查到Flag全為AAH,則是熱啟動,轉(zhuǎn)而執(zhí)行“事故處理程序”。
指令冗余
為了抑制程序的彈飛,在多字節(jié)指令后增加兩條沒有意義的空指令NOP,稱之為“指令冗余”。單片機(jī)受到干擾后,往往會把操作數(shù)當(dāng)做指令碼來執(zhí)行,從而,引起整個程序的混亂。由于程序彈飛到某一條單字節(jié)指令上,不會發(fā)生將操作數(shù)當(dāng)成指令碼的錯誤,而彈飛到雙字節(jié)或三字節(jié)指令的操作數(shù)時,程序就會發(fā)生將操作數(shù)當(dāng)成指令碼的錯誤,使程序繼續(xù)彈飛,引起整個軟件的崩潰。為了保證指令在干擾條件下不被拆散,在程序多字節(jié)指令后,通常,插入兩個單字節(jié)的空操作指令NOP,來抑制程序的彈飛。冗余指令NOP,在程序中不宜加得太多,否則,會使程序運(yùn)行速度減慢。
結(jié)語
在零侵蝕接觸器試驗樣機(jī)容錯控制算法的設(shè)計過程,筆者除使用搏弈、冗余等軟件容錯技術(shù)外,還使用了數(shù)字濾波、堆棧溢出的預(yù)防、A/D和D/A通道的診斷與校正、以及輸入輸出界面的安全性設(shè)計等可靠性技術(shù)。軟件理論告訴我們,微處理系統(tǒng)的軟件不可能完美無缺,但軟件容錯設(shè)計可以幫助設(shè)計師盡可能減少錯誤,使控制器由于軟件問題而出錯的概率降低到完全可以接受的程度。
值得注意的是:軟件容錯設(shè)計不可以取代硬件可靠性和抗干擾的基本設(shè)計!硬件可靠性和抗干擾基本設(shè)計,包括元器件篩選、老化、防潮、防震、防塵、散熱問題;濾波電路與抗干擾穩(wěn)壓電源的使用;系統(tǒng)的屏蔽、接地、光電隔離的處理等等。它們可以給微處理系統(tǒng)創(chuàng)造一個基本上是“干凈”的工作環(huán)境。由于軟件容錯設(shè)計是以CPU和RAM的開銷為代價的,如果沒有硬件可靠性和抗干擾一般措施消除絕大多數(shù)干擾,CPU將忙于奔命,沒有時間來干正經(jīng)的工作,嚴(yán)重影響到系統(tǒng)的工作效率和實時性。因此,一個成功的智能控制器可靠性設(shè)計應(yīng)是硬件與軟件有機(jī)結(jié)合的產(chǎn)物。
評論