1引言
隨著科學技術(shù)的發(fā)展,單片機在各種家電產(chǎn)品中得到了越來越廣泛的應用,,它的穩(wěn)定性工作是衡量其質(zhì)量好壞的重要指標,。因此,有效地抑制單片機系統(tǒng)內(nèi)部和外部的電磁噪聲干擾,,使單片機系統(tǒng)在實際運行環(huán)境中長期可靠地工作,,是一個亟待解決的電磁兼容問題。
在我們設(shè)計的變頻空調(diào)電控系統(tǒng)中,,由于其所處環(huán)境比較惡劣,,特別是在冬季與夏季強功率運行時,由壓縮機,、風機高速運轉(zhuǎn)所引起的機械振動,,電器設(shè)備(如斬波器、電動機等)所產(chǎn)生的干擾,,室內(nèi)外環(huán)境的溫差(-20℃~40℃),,都會影響單片機系統(tǒng)的正常工作,。這就要求在設(shè)計單片機系統(tǒng)時必須考慮到各種影響其正常工作的因素,并采取相應的有效措施,。當然,,單片機系統(tǒng)的可靠性是由多種因素決定的,但系統(tǒng)的抗干擾性能是系統(tǒng)可靠性的重要指標,。因此,,抗干擾設(shè)計是整體設(shè)計工作中的一個重要內(nèi)容。
2硬件的抗干擾設(shè)計
實際單片機應用系統(tǒng)中,,干擾一般都是以脈沖的形式進入系統(tǒng)的,。其主要形式有三種,如圖1所示,。
(1)空間場輻射干擾干擾以電磁輻射的形式耦
合進入系統(tǒng),;
(2)電源系統(tǒng)干擾干擾通過地線和電源線進入系
統(tǒng)。地線和電源線是傳導電磁干擾的一個主要通道,,這是由于地線和電源線是數(shù)字集成電路所有電流的通路。
(3)過程通道干擾干擾通過與主機的前向通道,、后向通道以及與其他主機的相互通道進入系統(tǒng),。[1]
針對這種情況,在控制方法設(shè)計上,,除了采用眾所周知的抑制干擾傳播的技術(shù),,如屏蔽、接地,、搭接,、合理布線等方法外,還采取了回避和疏導的技術(shù)處理,,如空間方位分離,,以及電氣隔離等措施。
21空間場輻射抗干擾措施
空間場輻射干擾主要由數(shù)字信號源產(chǎn)生,,一般是由高頻脈沖信號的高次諧波造成的,,通常以差模和共模兩種噪聲模式產(chǎn)生輻射。差模噪聲的輻射是高頻噪聲電流在信號電路中流動時產(chǎn)生的,,共模噪聲的輻射則是因為電路中的線阻抗或感抗產(chǎn)生的電位差引起的,。針對這一情況,采用合理的布線,、良好的屏蔽與正確的接地,,增加高頻濾波,盡量減小系統(tǒng)中各工作環(huán)節(jié)的阻抗等一系列措施,;對于功率模塊和單片機系統(tǒng)的結(jié)合部位,,采用空間分離的措施,,把強電和弱電的結(jié)合部位分離開來。使得這一問題得到了良好的解決,。
22電源系統(tǒng)抗干擾措施
電源系統(tǒng)干擾包括電源干擾和地線干擾,。本系統(tǒng)采用220V市電供電,故電網(wǎng)上及其它電器所產(chǎn)生的干擾都會通過電源進入系統(tǒng),。主要采用了以下幾種解決辦法:
圖1單片機系統(tǒng)主要干擾渠道
圖2系統(tǒng)抗干擾設(shè)計總圖
圖3光耦合器的應用
圖4光耦合器的應用
(1)采用隔離電源消除各功能模塊間的相互影響,,提高抗干擾的能力;
(2)使用低通濾波器電源系統(tǒng)的干擾源大部分是高次諧波,,因此利用低通濾波器濾掉高次諧波,,以改善電源波形;
(3)采用分散獨立的功能塊供電在每塊系統(tǒng)功能模塊上用三端穩(wěn)壓集成芯片,,如7805等集成穩(wěn)壓電源,。每個功能塊單獨對電源進行過載保護,不會因某塊穩(wěn)壓電源故障而使整個系統(tǒng)遭到破壞,,且減少了公共阻抗的相互耦合和公共電源的相互耦合,,大大提高了供電可靠性,也有利于電源散熱,。
地線干擾通常表現(xiàn)為外部干擾通過公共地線進入主機系統(tǒng),,數(shù)字地線的干擾還表現(xiàn)為邏輯地的不等電位。因此,,單片機系統(tǒng)的地線布置相當重要,。解決地線干擾的辦法是正確處理好地線隔離問題,同時為了避免模擬電路引入的噪聲通過地阻抗對數(shù)字電路產(chǎn)生影響,,數(shù)字地與模擬地應分開布線,,單點連接。
將以上原則應用于實際系統(tǒng)的設(shè)計中,,本系統(tǒng)采用了如圖2所示的電源,、地線抗干擾設(shè)計。
23過程通道抗干擾措施
過程通道主要是單片機系統(tǒng)本身和外圍器件所產(chǎn)生的聯(lián)系,。前向接口,、后向接口與主機以及主機之間相互進行信息傳輸?shù)穆窂剑母蓴_主要是長線傳輸?shù)母蓴_,。系統(tǒng)中解決的辦法是采取光電耦合的措施,。
光電耦合是采用半導體光電耦合器件進行隔離。它的主要優(yōu)點是能有效地抑制尖峰脈沖及各種干擾,,使輸入電路中的干擾信號不能直接從電路上進入輸出電路,,從而使過程通道上信噪比大大提高。光電耦合有很強的抗干擾能力,,原因如下:
(1)光電耦合的輸入阻抗很小,,一般只有100Ω~1kΩ之間,,而干擾源內(nèi)阻很大,通常為100kΩ~100MΩ之間,,因此分壓到光電耦合器輸入端的噪聲很?。?/p>
(2)干擾噪聲雖有較大的電壓幅度,,但能量小,,只
能形成微弱電流,而光電耦合器輸入部分的發(fā)光二極管是在電流狀態(tài)下工作的,,即使有很高電壓幅值的干擾由于不能提供足夠的電流而被吸收,;
(3)光電耦合是在密封條件下實現(xiàn)輸入電路和輸
出電路的光耦合,不會受到外界光線的干擾,;
(4)輸入電路和輸出電路之間分布電容極小,,一
般為0.5~2pF之間,而且絕緣電阻極大,。因此,,電路一邊的干擾很難通過光電耦合器饋送到另一邊去。[2]
系統(tǒng)主要在三種情況下應用了光電耦合器,。其一是室內(nèi)機信號由CPU的P21腳經(jīng)過光耦輸入到通信線上去,,如圖3所示。為了使光耦兩端的輸入和輸出電平與各自的電路匹配,,將光耦兩邊的電源分別置為各自電路的電源。電路中的+12V電源通過一個1kΩ的電阻接光耦的輸入端,,這個電阻作為光耦通路中的限流電阻,,通過光耦輸入端的電流大小為I=12mA。因為電流傳輸率接近100%,,故在輸出一側(cè)使220V電源通過一個22kΩ的電阻,,I′=220/22k=10mA,略小于輸入端電流,。第二個應用光電耦合的地方是室內(nèi)機接收室外機的信號處,。第三個應用光電耦合的場合是單片機輸出驅(qū)動PG電機處,如圖4所示,。其原理分析完全同上,,不再贅述。
從以上的分析看出,,通過AC/AC隔離電源和光電耦合電路,,使以單片機為核心的中央處理控制系統(tǒng)與外界完全隔離開來,極大地提高了系統(tǒng)運行的抗干擾能力,,如圖5所示,。
3軟件的抗干擾設(shè)計
單片機在惡劣的環(huán)境中工作時,,干擾源不僅會影響到硬件系統(tǒng)的正常工作,也常常會使系統(tǒng)的軟件運行發(fā)生混亂,。因此系統(tǒng)的抗干擾問題不能完全靠硬件去解決,,軟件的抗干擾設(shè)計也是一項重要措施。當系統(tǒng)受到干擾時,,可能使單片機的程序跑飛,,改變程序指針PC值,從而使程序進入死循環(huán)而不能正常工作,;也可能改變單片機內(nèi)部特殊功能寄存器(SFR)的值使程序狀態(tài)混亂,,甚至發(fā)生故障,損壞器件,;如果被測量信號受到干擾,,則會造成測量值失真。對于這種情況的對策是及時發(fā)現(xiàn),,及時引導程序走向正確位置,,或者使系統(tǒng)重新復位開始運行。在本系統(tǒng)中采用了以下措施,。
圖5提高系統(tǒng)抗干擾能力的原理框圖
31利用冗余指令
當CPU受到干擾后,,往往將一些操作數(shù)當作指令碼來執(zhí)行,引起程序混亂,。此時,,若程序彈飛到某一條單字節(jié)指令上時,便自動納入正規(guī),;若程序彈飛到某一條雙字節(jié)或三字節(jié)指令上時,,有可能落到其操作數(shù)上而繼續(xù)出錯。為此,,在對程序流向起著決定作用的指令之前插入兩條NOP指令,,保證彈飛的程序迅速納入正確的控制軌道。此類指令有RET,、RETI,、LCALL、LJMP,、JNC,、JNB、CJNE,、DJNZ等,。
指令冗余措施可以減少程序彈飛的次數(shù),使其很快納入程序軌道,,但這不能保證在失控期間不出錯,,更不能保證程序納入正常軌道后就太平無事了,。解決這個問題還必須采用軟件容錯技術(shù),使系統(tǒng)的誤動作減少,,并盡可能消除重大誤動作,。
32設(shè)置軟件陷阱
所謂軟件陷阱,就是一條引導指令,,強行將捕獲的程序引向一個指定的地址,,在那里有一段專門對程序出錯進行處理的程序。如果把這段程序的入口標號稱為ERR的話,,軟件陷阱即為一條LJMPERR的指令,,為加強其捕捉效果,一般還在它前面加兩條NOP指令,。因此,,真正的軟件陷阱由三條指令構(gòu)成: NOP NOP LJMPERR
軟件陷阱一般安排在下列四種地方:
(1)未使用的中斷向量區(qū)當干擾使未使用的中斷開放,并激活這些中斷時,,就會引起系統(tǒng)程序的混亂,,但如果在這些地方布上陷阱,就能及時捕捉到錯誤中斷,;
(2)未使用的大片ROM空間對于剩余的大片
未編程的ROM空間,,一般都維持原狀(0FFH)。程序彈飛到這一區(qū)域后將順流而下,,不再跳躍(除非受到新的干擾),。這時只要每隔一段設(shè)置一個陷阱,就能捕捉到彈飛的程序,;
(3)表格表格有兩類,,一類是數(shù)據(jù)表格;另一類是
散轉(zhuǎn)表格,。由于表格中內(nèi)容和檢索值有一一對應關(guān)系,在表格中安排陷阱將會破壞其連續(xù)性和對應關(guān)系,,所以只能在表格的最后安排五字節(jié)陷阱(NOPNOPLJMP),;
(4)程序區(qū)程序區(qū)是由一序列執(zhí)行指令構(gòu)成
的,一般不能在這些指令串中間任意安排陷阱,,否則正常執(zhí)行的程序也可能被抓走,。在這些指令串中間有一些斷裂點,正常執(zhí)行的程序到此便不會往下繼續(xù)執(zhí)行了,,這類指令有LJMP,、SJMP、AJMP,、RET,、RETI等,,在它們后面加軟件陷阱。
33設(shè)置程序運行監(jiān)視系統(tǒng)(WDT)
利用CPU內(nèi)部的WDT可以實現(xiàn)系統(tǒng)定時復位,。在程序正常運行時,,每隔一段時間對WDT清零。一旦程序運行不正常,,沒有及時給WDT送清零信號,,則在WDT計數(shù)溢出時自動將系統(tǒng)復位。所使用的西門子公司生產(chǎn)的C504單片機的WDT溢出時間可人為設(shè)定,。若晶振用12MHz,,其可選時間為512μs~11s。本系統(tǒng)設(shè)計溢出時間為7ms,。
34采用軟件濾波
被測信號的抗干擾可以采用“軟件濾波”的方法解決,。常用的有:算術(shù)平均值法,比較取舍法,,中值法,,一階遞推數(shù)字濾波法。本系統(tǒng)采用的是比較取舍法,。
4結(jié)語
經(jīng)試驗,,該系統(tǒng)工作半年多來,運行狀況良好,,性能穩(wěn)定,,噪音低,沒有出現(xiàn)錯誤及損壞器件現(xiàn)象,,取得了良好的效果,,達到了預期的目的,證明在系統(tǒng)設(shè)計中采用的上述抗干擾措施是行之有效的,。