淺析智能電表軟硬件的抗干擾設(shè)計
一、引言
智能電表的設(shè)計,由于微控制器的引入,對設(shè)計者提出了更高的要求。這是因為由于電源等引入的干擾可能導(dǎo)致程序指針跳飛,從而引起不可預(yù)測的后果,諸如電量數(shù)據(jù)的丟失、改變或死機等。像家用電腦和普通儀器儀表對死機等現(xiàn)象是允許的,可以通過人工復(fù)位,重新設(shè)置等手段來恢復(fù),求長年連續(xù)的掛網(wǎng)運行,如果運行中出現(xiàn)任何異?,F(xiàn)象,均要求能自動恢復(fù)正常工作。然而,在工程實際中,噪聲和干擾是不可避免的。目前,大多數(shù)智能電表都應(yīng)保證在干擾較強的現(xiàn)場運行,因此如何提高智能電表的抗干擾能力,保證其在規(guī)定條件下正常運行,以及防止儀表內(nèi)部產(chǎn)生的噪聲對外部的輻射,是智能儀表設(shè)計中必須考慮的問題,也是關(guān)鍵問題。
二、硬件抗干擾設(shè)計
在智能電表研制的初期,我們發(fā)現(xiàn)這樣一種現(xiàn)象,電表帶上電感性負載(比如電扇)時,在電扇快速插拔的瞬間,容易導(dǎo)致智能電表中單片機數(shù)據(jù)的丟失或死機。如果從設(shè)計上不能把智能電表的抗干擾問題解決好,后果將會非常嚴重。
(1)電源的抗干擾措施
實踐證明,系統(tǒng)失效和硬件損壞大都是由各種干擾引起的,而90%以上的干擾來自于電源??梢娺@種來自電源的干擾對系統(tǒng)的影響相當大,因此應(yīng)充分考慮電源對單片機的影響。電源做得好壞,直接影響整個電路的抗干擾能力的好壞。目前有以下幾種電源可供選擇:第一種阻容分壓式,它采用簡單的電阻電容分壓、濾波。但這種電源穩(wěn)壓性能差、電源波動大、帶負載能力小、電網(wǎng)干擾極易串入,一般不采用這種方式。第二種開關(guān)電源,這種電源穩(wěn)壓性能好、紋波小,但成本較高且對外界電網(wǎng)干擾比較嚴重,也不宜采用。第三種線性電源,這種電源由220V經(jīng)交流變壓、整流、濾波及穩(wěn)壓得到,穩(wěn)壓性能好、隔離特性好,價格適中,在目前應(yīng)用廣泛的多用戶電表設(shè)計中大都采用這種方式。對這種電源的抗干擾措施有以下幾個方面。
1. 對于電源變壓器的設(shè)計,要使其空載電流盡可能小,以降低整表功耗。增加變壓器的容量,能使干擾脈沖的數(shù)量和幅度有所減少,而變壓器的容量受電表空間的限制,變壓器又不能太大。
2. 在電源變壓器的初級串聯(lián)一個電源濾波器,比如采用“雙繞組扼流圈”的濾波線路,它對高頻干擾信號阻抗很大,使整個電子系統(tǒng)與供電網(wǎng)之間得到一定程度的高頻隔離,對于外界空間電磁場的干擾,也起一定的抑制作用。
3. 在各相交流電源的進線端,并聯(lián)一個壓敏電阻(MOV),其電阻隨電壓的增加而減小。在過壓時形成一個低阻的分流器,從而可以防止被保護電路兩端的電壓進一步上升;當浪涌電壓過后,電路電壓恢復(fù)到正常工作電壓,壓敏電阻又恢復(fù)到高阻狀態(tài)。
4. 在為主處理器提供電源之前的三端穩(wěn)壓器前,并接一個瞬變電壓抑制二極管(TVS),對后面的電路起到保護作用。當TVS兩端經(jīng)受瞬間高能量沖擊時,它能以極高的速度成為低阻抗器件,吸收大電流,從而把它兩端的電壓鉗位在一個預(yù)定的數(shù)值上,保護后面的電路元件不因瞬態(tài)高電壓的沖擊而損壞。
5. 在變壓器一次側(cè)采取磁珠和電容組成的丌型濾波方法,對高頻干擾起作用,但對幾百赫茲以內(nèi)的低頻干擾作用卻很小。綜上所述,設(shè)計人員應(yīng)根據(jù)具體的工作環(huán)境,選擇不同的抗干擾措施。
(2)電源檢測及看門狗電路
分析及實踐表明,對來自電網(wǎng)的干擾不僅要采取硬堵的辦法,還要采取容錯措施。使用電源檢測及看門狗電路的目的,就是當電源電壓出現(xiàn)干擾脈沖或單片機受干擾程序運行異常時,產(chǎn)生一復(fù)位信號使單片機復(fù)位??撮T狗電路實質(zhì)上是一個單穩(wěn)電路。當程序運行正常時,單片機定時給單穩(wěn)電路輸入觸發(fā)信號,使單片機輸出保持暫穩(wěn)態(tài):當干擾異常時,單片機不能給觸發(fā)信號,單穩(wěn)輸出回到穩(wěn)態(tài)引起單片機硬件夏位:看門狗不僅對來自電網(wǎng)方面的干擾起作用,而且對來自空間等其他方面的干擾也起作用。然而如果沒有電源檢測電路,只有看門狗電路,在電網(wǎng)干擾下,即使不帶電感性負載,當電源快速合閘時,也有可能導(dǎo)致死機。實踐證明,采用電源檢測及看門狗電路之后,死機觀象得到了有效地克服。
(3)串行E2PROM的選擇
因為電表數(shù)據(jù)存儲的可靠性至關(guān)重要,為了保證在掉電時以及在因干擾導(dǎo)致單片機復(fù)位時,智能電表中的主要數(shù)據(jù)和參數(shù)不丟夫,存儲器的選擇上要有所考慮。使用并行存儲器.雖然有速度快的特點,但讀寫信號容易受到干擾從而造成錯誤。而采用串行E2PROM存儲器時,其讀寫時序相當嚴格,受到干擾出錯的幾率就小得多。
(4)布線布局上的抗干擾設(shè)計
在用電負荷很小時,220V的電壓與幾個μV的小信號會共集于一塊電路板上,如果電源布局不當,有用信號會被噪聲所淹沒,以多用戶電表為例,在布線布局上的抗干擾措施有:
1. 電源與控制分兩塊板。在多用戶智能電表中分三部分:電源板,主機控制板和電能采集傳感器板。電源板包括變壓器、整流、濾波、穩(wěn)壓等??刂瓢灏ㄎ⑻幚砥鳌@示驅(qū)動、看門狗電路、串行E2PROM、電能脈沖采集等。電能采集傳感器板包括A、B、C三相上各用戶的電能采集模塊及其外圍電路。對變壓器的設(shè)計要求其漏磁要小,一般其空載電流不大于10mA,若仍不能滿足要求,可變換變壓器位置改變磁場方向,減小漏磁對小信號的影響。
2. 印刷電路板應(yīng)有良好的絕緣性,絕緣電阻大于1011ΩV。在電路設(shè)計中,必須嚴格保證強電與弱電的隔離,除了電路有直接連接外,100V以上的強電印刷布線與弱電印刷布線距離應(yīng)大于4—5mm。數(shù)字地與模擬地應(yīng)通過一點方式連接來提高抗干擾性能。
3. 在每個印刷電路扳入口處的電源線與地線之間并接退耦電容。并接的電容應(yīng)為一個大容量的電解電容(10~100μF)和一個0.01~0.1μF的非電解電窖,電路板上的大中規(guī)模IC要并接一個0.0lμF一0.1μF高頻電容,以減小IC對電源的影響。注意高頻電容的布線,連線應(yīng)靠近電源端并盡量粗短,否則,等于增大了電容的等效串聯(lián)電阻,會影響濾波效果。
4. 印刷線走線要科學(xué),高壓走線盡量短,盡量遠離小信號走線。對于電能采集傳感器板的印刷板布線要求一面走線.另一面銅鉑既作電磁屏蔽用、又作地線用,以減少干擾信號。除了要根據(jù)電流大小,盡量加大導(dǎo)線寬度外,采取使電源線、地線走向與數(shù)據(jù)信息傳送方向一致,將有助于增強抗噪聲的能力。布線時避免小于90度折線,減少高頻噪聲發(fā)射。不要在印制板上留下空白銅箔層,因為它們可以充當發(fā)射天線或接收天線,因此可將它們接地以減小電磁干擾。
5. 在線路無法排列或只有繞大圈才能走通的情況下,干脆用絕緣“飛線”連接,而不用印刷線,或采用雙面印刷“飛線”或阻容元件直接跨接。
6. 對印刷板上容易受干擾的信號線,不能與產(chǎn)生干擾或傳遞干擾的線路長距離平行鋪設(shè)。必要時可在它們之間設(shè)置一根地線,以實現(xiàn)屏蔽。
當然,這些布線與布局的抗干擾設(shè)計一般不能由自動布線軟件來實現(xiàn),必須有設(shè)計者親自參與并設(shè)計有關(guān)電路。
三、軟件抗干擾設(shè)計
在提高硬件系統(tǒng)抗干擾能力的同時,軟件抗干擾以其設(shè)計靈活、節(jié)省硬件資源、可靠性好越來越受到重視。因此,除了采取硬件抗干擾方法外,還要采取如下軟件抗干擾措施。
(1)指令冗余技術(shù)
當指針受到干擾出現(xiàn)程序跑飛時,可能會出現(xiàn)將操作數(shù)數(shù)值改變及將操作數(shù)誤當作操作碼的情況。當“跑飛”到某雙字節(jié)或三字節(jié)指令的操作數(shù)上時,會將操作數(shù)當作操作碼,程序?qū)⒊鲥e,因此可在雙字節(jié)和三字節(jié)指令之后插入兩個或三個單字節(jié)NOP指令,這可保證其后的指令不被拆散。對程序流向起決定作用的指令(如浸水使柔軟、RETI、ACALL、LCALL、LJMP、JZ、JNZ、JC、.INC等)和對系統(tǒng)工作狀態(tài)起重要作用的指令(如SETB、EA等)之前插入兩條NOP指令,可保證跑飛程序迅速納入軌道;或者在其后面重復(fù)寫上這些指令,以確保這些指令的正確運行。
(2)軟件陷阱
當微處理器受到各種干擾時,若PC指針跳到非程序區(qū),可能會陷入某種循環(huán)不能跳出。如果循環(huán)中無清WDT指令,在給定看門狗定時器條件下,經(jīng)過一定時間 WDT起作用,將PC指針復(fù)位,工作恢復(fù)正常。如果循環(huán)中包含了清WDT的指令,則產(chǎn)生死機。對于后者可在非程序區(qū)放置軟件陷阱加以解決。
軟件陷阱有三條指令組成:
* NOP
* NOP
* LJMP EER
安排軟件陷阱的位置有:
1. 未使用的中斷區(qū)。如果設(shè)計的智能電表未使用全部的中斷向量區(qū),則可在剩余的中斷區(qū)安排軟件陷阱,以便能捕捉到錯誤的中斷。
2. 未使用的大片EPROM空間。對于單片機未編程的空間,其初始值為OFFH。OFFH對51指令來說,相當于單字節(jié)指令MOV R7,A。當程序跑飛入該區(qū)后,不僅無法迅速入軌,而且破壞R7的內(nèi)容。因此在該區(qū)每隔一段地址設(shè)一個陷阱,就一定能捕捉到跑飛的程序。
3. 在表格的最后安排陷阱。注意表格中不應(yīng)被放入。
4. 在程序區(qū)。前面曾指出,跑飛的程序在用戶程序內(nèi)部跳轉(zhuǎn)時可用指令冗余加以解決,也可以設(shè)置一些軟件陷阱,能更有效地抑制程序跑飛。可以將陷阱指令放置在各模塊之間的空余單元里。在正常運行中不執(zhí)行這些陷阱指令,一旦程序跑飛落入這些陷阱區(qū),馬上將亂飛的程序拉入正確軌道。由于軟件陷阱都安排在正常程序執(zhí)行不到的地方,故不會影響程序的執(zhí)行效率。所以在EPROM容量允許的條件下,這種陷阱多一點為好。
(3)“看門狗”措施
如果跑飛的程序落入一個臨時構(gòu)成的死循環(huán)中時,冗余指令和軟件陷阱都將無能為力,這時可以采用復(fù)位的方法使系統(tǒng)恢復(fù)正常。“看門狗”電路的功能就是對 CPU進行實時檢測,當CPU落入死循環(huán)之后,能及時發(fā)現(xiàn)并使整個系統(tǒng)復(fù)位。在軟件編程中,設(shè)置約1秒訪問一次看門狗芯片,當程序跑飛或大于1.4秒(設(shè)置的超時時間)沒有訪問看門狗芯片,X5045將輸出復(fù)位脈沖,直至程序正常運行。
(4)保證EEPROM數(shù)據(jù)寫入的可靠性措施
需要注意的是,看門狗如果起作用說明程序計數(shù)器內(nèi)容被破壞,因此其它寄存器或片內(nèi)公羊的內(nèi)容也有被破壞的可能,會導(dǎo)致把錯誤的數(shù)據(jù)寫入EEPROM。在電表工作中,每產(chǎn)電量改變0.1度寫入一次EEPROM,如果出現(xiàn)將錯誤的數(shù)據(jù)寫入EEPROM,這是不允許的。采取以下措施可很好的解決此問題:
1. 正常寫入EEPROM之前,要進行一系列操作,可將其分成幾部分。每一部分設(shè)置一寫入口令。只有程序正常一步一步運行,口令才會逐一被賦予正確的值,到最后寫入時再判斷所有的口令是否正確。若正確,寫入,否則退出。寫入完成,口令清除。
2. 數(shù)據(jù)雙備份。當由于干擾使微處理器中的寄存器數(shù)據(jù)改變時,鑒于三組數(shù)據(jù)在同一值出錯的概率較小,故在寫入之前,將三組數(shù)據(jù)比較,若相等則寫入,若不相等則將相等的兩組數(shù)據(jù)寫入。
3. 寫入之前對數(shù)據(jù)的合法性進行判別,即對電量或參數(shù)的數(shù)據(jù)格式進行判別。有了這樣的限制,可進一步提高可靠性。
4. 定時設(shè)置I/0口狀態(tài);微處理器受到干擾,I/0口狀態(tài)可能改變,比如電脈沖輸入口若改變?yōu)檩敵鰬B(tài),會造成用戶用了電但微處理器卻檢測不到的可能。所以周期性地重復(fù)定義I/0口的輸入/輸出狀態(tài)對于干擾環(huán)境下運行的電表是有好處的。
(5)串行通信數(shù)據(jù)的冗余校驗
在抄表通信過程中,由于信道上各種因素的影響,所傳輸?shù)男盘柺芤欢ǔ潭鹊母蓴_,PC機、集中器、電表間的性能參數(shù)不完全一致,在串行通信中僅靠奇偶校驗是不夠的。而采用國際上較為流行的傳輸碼校驗方法——循環(huán)冗余碼校驗(CRC),可收到了很好的效果。CRC是一種多用于同步通訊方式中的差錯檢出方式,在該方式中,將所傳數(shù)據(jù)系列看成高次多項式G(x),將此多項式用預(yù)先規(guī)定的生成多項式P(x)去除,再將其余數(shù)碼BCC附加在所傳數(shù)據(jù)的尾部一并傳送:在接收方,用同樣的生成多項式去除,若除得結(jié)果為零,則可判斷所接收到的數(shù)據(jù)是正確的。在發(fā)送端的一方,即電表先將發(fā)送數(shù)據(jù)轉(zhuǎn)換,連同原數(shù)據(jù)一同發(fā)給集中器,集中器不做校驗,直接發(fā)給PC機,在接收端,PC機用高級語言實行CRC算法解碼;以確定數(shù)據(jù)的真?zhèn)?。?jīng)實驗證明,冗余校驗使誤碼率大為降低,確保了數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
另外在軟件的編制過程中應(yīng)注意在執(zhí)行各功能子模塊之前,可先進行功能標志冗余判斷,以增強其程序運行可靠性。
四、結(jié)束語
在電表設(shè)計中,為了少走彎路和節(jié)省時間,應(yīng)充分考慮抗干擾性能的要求,避免在設(shè)計完成后再去進行抗干擾的補救措施。因此電表設(shè)計開發(fā)者應(yīng)從抑制干擾源,切斷干擾傳播路徑,提高敏感器件的抗干擾性能等方面采取各種措施來提高系統(tǒng)性能。在抗干擾設(shè)計中,軟件抗干擾是被動措施,而硬件抗干擾是主動措施,只要認真分析系統(tǒng)所處環(huán)境的干擾來源以及傳播途徑,采用兩者相結(jié)合的方法,就能保證系統(tǒng)長期穩(wěn)定可靠地運行。