單片機(jī)在嵌入式系統(tǒng)應(yīng)用中的抗干擾措施
現(xiàn)在已有許多更先進(jìn)的集電源監(jiān)視和“看門狗”于一身的新型芯片,如MAX705、MAX706、MAX813L等,有的還具備掉電檢測(cè)、備用電池自動(dòng)切換功能。
2.軟件看門狗
軟件狗實(shí)際上就是通常所說的軟件陷井。它是在程序存儲(chǔ)器的空余地址中全部填上1條跳轉(zhuǎn)指令,一旦程序跑飛,只要程序指針指向這些地址,便立即被強(qiáng)行跳轉(zhuǎn)至程序開頭或其他指定地址處,從而使程序繼續(xù)正常運(yùn)行。
四、軟件中的抗干擾措施
提高系統(tǒng)可靠性的方法有排錯(cuò)設(shè)計(jì)和容錯(cuò)設(shè)計(jì)。前面提到的排錯(cuò)設(shè)計(jì)并不能將干擾完全解決。而容錯(cuò)就是允許系統(tǒng)發(fā)生故障,借助冗余技術(shù)使其自動(dòng)抵消,在故障存在的情況下也能使系統(tǒng)正常運(yùn)行。下面介紹一下常用的幾種軟件容錯(cuò)方法。
1.?dāng)?shù)據(jù)采集誤差的軟件對(duì)策
對(duì)于實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),為了消除傳感通器中的干擾信號(hào),在硬件上常采取模擬濾波器對(duì)信號(hào)實(shí)現(xiàn)頻率濾波,也可以用CPU的運(yùn)算控制功能也可以實(shí)現(xiàn)頻率濾波,這就是數(shù)字濾波(軟件濾波)。對(duì)一點(diǎn)數(shù)據(jù)連續(xù)采樣多次,計(jì)算其平均值,以平均值作為點(diǎn)的采樣結(jié)果,這樣可以減少系統(tǒng)的隨機(jī)干擾對(duì)采集結(jié)果的影響。根據(jù)干擾造成采樣數(shù)據(jù)偏大或偏小的情況,對(duì)一個(gè)采樣點(diǎn)連續(xù)采集多個(gè)信號(hào),對(duì)采樣值進(jìn)行比較,取中值作為該點(diǎn)的采集結(jié)果。還可利用軟件完成RC低通濾波器的算法,實(shí)現(xiàn)用軟件方法代替硬件RC濾波器。一階遞推數(shù)字濾波公式為
式中:Q為數(shù)字濾波器時(shí)間常數(shù);Yn為第n次采樣時(shí)的濾波輸出;Xn為第n次采樣時(shí)的濾波輸入。
2.時(shí)間冗余
在程序的適當(dāng)位置設(shè)置若干檢查點(diǎn),在每一個(gè)檢查點(diǎn)保存程序在該檢查點(diǎn)之前正確運(yùn)行而得到的全部信息及標(biāo)志。如果故障是暫時(shí)性的,則程序卷回到上一檢查點(diǎn)開始重新執(zhí)行,這樣可以完全消除錯(cuò)誤,其框圖如圖3所示。但它只能檢出而不能消除永久性故障,用時(shí)間換取可靠性。
3.N版本程序設(shè)計(jì)
N版本程序設(shè)計(jì),是為某一個(gè)確定功能而獨(dú)立編制的幾個(gè)程序同時(shí)運(yùn)行,其結(jié)果是通過這些獨(dú)立程序的運(yùn)行結(jié)果經(jīng)多數(shù)表決而得到的,其結(jié)構(gòu)框圖如圖4所示。N版本程序設(shè)計(jì)中,特別強(qiáng)調(diào)N版本,因?yàn)槿绻鞒绦虿捎昧讼嗤慕Y(jié)構(gòu)、相同的算法,就有可能產(chǎn)生相同的錯(cuò)誤而使多數(shù)表決失敗。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論