單片機(jī)在嵌入式系統(tǒng)應(yīng)用中的抗干擾措施
N版本程序設(shè)計(jì)中包含了程序設(shè)計(jì)上的冗余,用效率換取可靠性,能容忍設(shè)計(jì)錯(cuò)誤的能力,還能屏蔽某些類型的暫時(shí)性硬件故障。
數(shù)據(jù)的冗余保護(hù)也是N版本程序設(shè)計(jì)思想的應(yīng)用。將重要數(shù)據(jù)同時(shí)存入幾個(gè)不相鄰的存儲(chǔ)單元,由于不相鄰存儲(chǔ)單元因干擾而被同時(shí)改寫的可能性很小,即使有一兩個(gè)存儲(chǔ)單元出錯(cuò)也能得到正確的數(shù)據(jù)。
4.棄權(quán)規(guī)則
就是當(dāng)程序運(yùn)行或繼續(xù)運(yùn)行的某些必要條件未能具備時(shí),放棄對(duì)這些條件的要求,不是產(chǎn)生等待、中斷、出錯(cuò)或停機(jī),而是采用跳過(guò)、轉(zhuǎn)移、N-1、默認(rèn)等方式保證程序繼續(xù)運(yùn)行,這些方法只適用于屏蔽暫時(shí)故障,所以要求同時(shí)產(chǎn)生報(bào)警輸出,以便確定是否需要人為干預(yù)來(lái)消除永久故障。棄權(quán)規(guī)則首先要不影響程序的正確性和適應(yīng)用性。
(1)跳過(guò)
在不影響控制系統(tǒng)正常運(yùn)行的前提下,跳過(guò)條件不具備而導(dǎo)致故障的模塊向下執(zhí)行,這是軟件失效運(yùn)行的形式之一。所謂軟件失效運(yùn)行就是在故障發(fā)生時(shí)先把故障模塊從系統(tǒng)中斷開,再對(duì)系統(tǒng)的其余模塊進(jìn)行重構(gòu),使系統(tǒng)能繼續(xù)運(yùn)行,但功能降低,即降級(jí)運(yùn)行??煽啃缘奶岣呤且阅承┕δ艿膿p失為代價(jià)的。
?。?)N-1方式
N-1方式是基于控制程序的循環(huán)執(zhí)行特性,即采用上一次循環(huán)(第N-1次)的數(shù)據(jù)代替本次循環(huán)(第N次)所需的卻未出現(xiàn)或未具備的數(shù)據(jù)。這種方法特別適用于緩變的被控對(duì)象。例如某次控制輸出被判斷為不合理,則利用上次循環(huán)的輸出來(lái)代替它。
?。?)默認(rèn)
默認(rèn)也是棄權(quán)規(guī)則形式之一,與跳過(guò)不同的是采用預(yù)先置入的合理?xiàng)l件代替未具備的條件,即默認(rèn)條件存在。例如將非法輸入的操作指令默認(rèn)的無(wú)輸入,繼續(xù)原操作。
總之,棄權(quán)規(guī)則的目的是使工作在實(shí)時(shí)方式的控制系統(tǒng)保證連續(xù)運(yùn)行,以確保被控系統(tǒng)長(zhǎng)期穩(wěn)定工作,雖然系統(tǒng)的功能有可能降低。
控制系統(tǒng)常用的軟件容錯(cuò)方法很多,還有非正常性規(guī)則、失效保險(xiǎn)設(shè)計(jì)等,在此就不不一一介紹。排錯(cuò)設(shè)計(jì)和容錯(cuò)設(shè)計(jì)的方法也很多,要根據(jù)現(xiàn)場(chǎng)情況選擇適當(dāng)?shù)姆椒?。以上介紹的抗干擾措施是在長(zhǎng)期實(shí)踐中摸索出的一些經(jīng)驗(yàn),在此提出僅供參考。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論