變頻空調單片機測控系統的抗干擾設計
單片機在惡劣的環(huán)境中工作時(shí),干擾源不僅會(huì )影響到硬件系統的正常工作,也常常會(huì )使系統的軟件運行發(fā)生混亂。因此系統的抗干擾問(wèn)題不能完全靠硬件去解決,軟件的抗干擾設計也是一項重要措施。當系統受到干擾時(shí),可能使單片機的程序跑飛,改變程序指針PC值,從而使程序進(jìn)入死循環(huán)而不能正常工作;也可能改變單片機內部特殊功能寄存器(SFR)的值使程序狀態(tài)混亂,甚至發(fā)生故障,損壞器件;如果被測量信號受到干擾,則會(huì )造成測量值失真。對于這種情況的對策是及時(shí)發(fā)現,及時(shí)引導程序走向正確位置,或者使系統重新復位開(kāi)始運行。在本系統中采用了以下措施。
圖5提高系統抗干擾能力的原理框圖
31利用冗余指令
當CPU受到干擾后,往往將一些操作數當作指令碼來(lái)執行,引起程序混亂。此時(shí),若程序彈飛到某一條單字節指令上時(shí),便自動(dòng)納入正規;若程序彈飛到某一條雙字節或三字節指令上時(shí),有可能落到其操作數上而繼續出錯。為此,在對程序流向起著(zhù)決定作用的指令之前插入兩條NOP指令,保證彈飛的程序迅速納入正確的控制軌道。此類(lèi)指令有RET、RETI、LCALL、LJMP、JNC、JNB、CJNE、DJNZ等。
指令冗余措施可以減少程序彈飛的次數,使其很快納入程序軌道,但這不能保證在失控期間不出錯,更不能保證程序納入正常軌道后就太平無(wú)事了。解決這個(gè)問(wèn)題還必須采用軟件容錯技術(shù),使系統的誤動(dòng)作減少,并盡可能消除重大誤動(dòng)作。
32設置軟件陷阱
所謂軟件陷阱,就是一條引導指令,強行將捕獲的程序引向一個(gè)指定的地址,在那里有一段專(zhuān)門(mén)對程序出錯進(jìn)行處理的程序。如果把這段程序的入口標號稱(chēng)為ERR的話(huà),軟件陷阱即為一條LJMPERR的指令,為加強其捕捉效果,一般還在它前面加兩條NOP指令。因此,真正的軟件陷阱由三條指令構成: NOP NOP LJMPERR
軟件陷阱一般安排在下列四種地方:
(1)未使用的中斷向量區當干擾使未使用的中斷開(kāi)放,并激活這些中斷時(shí),就會(huì )引起系統程序的混亂,但如果在這些地方布上陷阱,就能及時(shí)捕捉到錯誤中斷;
(2)未使用的大片ROM空間對于剩余的大片
未編程的ROM空間,一般都維持原狀(0FFH)。程序彈飛到這一區域后將順流而下,不再跳躍(除非受到新的干擾)。這時(shí)只要每隔一段設置一個(gè)陷阱,就能捕捉到彈飛的程序;
(3)表格表格有兩類(lèi),一類(lèi)是數據表格;另一類(lèi)是
散轉表格。由于表格中內容和檢索值有一一對應關(guān)系,在表格中安排陷阱將會(huì )破壞其連續性和對應關(guān)系,所以只能在表格的最后安排五字節陷阱(NOPNOPLJMP);
(4)程序區程序區是由一序列執行指令構成
的,一般不能在這些指令串中間任意安排陷阱,否則正常執行的程序也可能被抓走。在這些指令串中間有一些斷裂點(diǎn),正常執行的程序到此便不會(huì )往下繼續執行了,這類(lèi)指令有LJMP、SJMP、AJMP、RET、RETI等,在它們后面加軟件陷阱。
33設置程序運行監視系統(WDT)
利用CPU內部的WDT可以實(shí)現系統定時(shí)復位。在程序正常運行時(shí),每隔一段時(shí)間對WDT清零。一旦程序運行不正常,沒(méi)有及時(shí)給WDT送清零信號,則在WDT計數溢出時(shí)自動(dòng)將系統復位。所使用的西門(mén)子公司生產(chǎn)的C504單片機的WDT溢出時(shí)間可人為設定。若晶振用12MHz,其可選時(shí)間為512μs~11s。本系統設計溢出時(shí)間為7ms。
34采用軟件濾波
被測信號的抗干擾可以采用“軟件濾波”的方法解決。常用的有:算術(shù)平均值法,比較取舍法,中值法,一階遞推數字濾波法。本系統采用的是比較取舍法。
4結語(yǔ)
經(jīng)試驗,該系統工作半年多來(lái),運行狀況良好,性能穩定,噪音低,沒(méi)有出現錯誤及損壞器件現象,取得了良好的效果,達到了預期的目的,證明在系統設計中采用的上述抗干擾措施是行之有效的。
評論