工業(yè)現(xiàn)場中嵌入式系統(tǒng)抗干擾與容錯技術(shù)
時間:2008-09-26 17:17:00來源:dujing
導(dǎo)語:?本文以智能電能表的抗干擾設(shè)計為例,根據(jù)電能表的工作環(huán)境特點,分析了影響電能表可靠性的因素,并針對影響其可靠性最為嚴重的供電系統(tǒng)干擾,提出了相應(yīng)的抗干擾措施。
摘要:對于微機嵌入式應(yīng)用系統(tǒng),系統(tǒng)的可靠性是至關(guān)重要的,只有高可靠性才能保證系統(tǒng)正常運行。在工業(yè)現(xiàn)場,因工作環(huán)境惡劣,干擾源較多,對于那些需要作連續(xù)數(shù)據(jù)記錄的智能儀器對系統(tǒng)的可靠性要求更高。本文以智能電能表的抗干擾設(shè)計為例,根據(jù)電能表的工作環(huán)境特點,分析了影響電能表可靠性的因素,并針對影響其可靠性最為嚴重的供電系統(tǒng)干擾,提出了相應(yīng)的抗干擾措施。
一、引言
對于微機嵌入式應(yīng)用系統(tǒng),系統(tǒng)的可靠性是至關(guān)重要的,只有高可靠性才能保證系統(tǒng)正常運行。在工業(yè)現(xiàn)場,因工作環(huán)境惡劣,干擾源較多,對于那些需要作連續(xù)數(shù)據(jù)記錄的智能儀器對系統(tǒng)的可靠性要求更高,這類儀器的特點是:能夠根據(jù)用戶的要求選擇量程范圍,掉電時進行數(shù)據(jù)保護記錄,其中包括用戶設(shè)定的量程參數(shù)和累加記錄的數(shù)據(jù)結(jié)果等;而當(dāng)系統(tǒng)上電恢復(fù)工作時又能將保存的數(shù)據(jù)準確的讀出,并在此基礎(chǔ)上繼續(xù)作累加記錄。但在上電或掉電階段,系統(tǒng)工作狀態(tài)往往不夠穩(wěn)定,容易造成讀寫數(shù)據(jù)錯誤,需要在硬件和軟件設(shè)計上采取抗干擾和容錯措施。本文以智能電能表的抗干擾設(shè)計為例,根據(jù)電能表的工作環(huán)境特點,分析了影響電能表可靠性的因素,并針對影響其可靠性最為嚴重的供電系統(tǒng)干擾,提出了相應(yīng)的抗干擾措施。
二、系統(tǒng)功能電路圖
圖1給出系統(tǒng)中與本文內(nèi)容相關(guān)的功能電路圖,其功能是實現(xiàn)系統(tǒng)掉電時記錄數(shù)據(jù)保護,系統(tǒng)上電工作時恢復(fù)記錄數(shù)據(jù)。
[align=center][img=425,587]http://www.e-works.net.cn/images/127915295847031250.GIF[/img]
圖1 系統(tǒng)功能圖[/align] 電路中包括一個單片機AT89C52,一個看門狗芯片MAX813,一個E[sup]2[/sup]PROM存儲芯片AT24C02,一個電壓比較器A由LM393芯片構(gòu)成,兩個反相器由74HC04芯片構(gòu)成。兩反向器用于實現(xiàn)電壓匹配,以確保外部中斷信號電壓在0~5V。電壓比較器是在系統(tǒng)掉電時發(fā)出外部中斷信號,保證系統(tǒng)在停止工作前,將記錄在單片機內(nèi)部RAM中的數(shù)據(jù),保存到掉電保護芯片AT24C02中。圖中僅用了一片AT24C02,所以片選端A[sup]0[/sup]、A[sup]1[/sup]和A[sup]2[/sup]接地。WP為寫保護輸入端即當(dāng)其為高電平時具有寫保護功能,低電平時可進行正常的讀寫,SCL為串行時鐘輸入端,SDL為串行數(shù)據(jù)輸入輸出端。AT24C02是Atmel公司生產(chǎn)的,具有I[sup]2[/sup]C總線接口的串行E[sup]2[/sup]PROM。AT24C02自定時寫周期包括自動擦除時間不超過10ms,典型時間為5ms,擦寫次數(shù)一般為10萬次以上,寫人數(shù)據(jù)的有效保存時問一般可達100年,采用單一電源供電,電源電壓為5V。
三、影響系統(tǒng)正常工作的干擾因素
對于微機應(yīng)用系統(tǒng)來說,工作環(huán)境中會遇到各種干擾,按竄入微機系統(tǒng)的渠道主要有三種:空間干擾,如電磁輻射;供電系統(tǒng)干擾,如電網(wǎng)的欠壓或過壓等;過程通道干擾,如測量通道中的干擾。其中供電系統(tǒng)的干擾最為嚴重。大部分微機嵌入式系統(tǒng)的直流電源都是通過市電經(jīng)過整流、穩(wěn)壓、濾波后提供的,然而電網(wǎng)電壓并非純凈的正弦波,其污染程度不容忽視。在工礦企業(yè)中,電網(wǎng)的污染主要來自各電氣設(shè)備的投切、故障跳閘和對地短路等原因。
對一機械制造廠車間電網(wǎng)的監(jiān)測表明,平均2~3小時出現(xiàn)一次欠壓,最大欠壓約為40伏,最長時間達2秒,平均為0.3秒。平均5~6小時出現(xiàn)一次過壓,最大過壓為17伏,最大過壓時間為0.8秒,平均為0.2秒。
另外,除電網(wǎng)竄入的干擾外,電源電路本身也是一個干擾源,例如電源電路本身產(chǎn)生的紋波和自激振蕩,開關(guān)電源產(chǎn)生的尖鋒脈沖噪聲等。研究表明,浪涌與下陷幅度過大也會影響系統(tǒng)正常工作,如果有連續(xù)幾個±10%?!?5%的浪涌或下陷,由此造成的振蕩能產(chǎn)生±30%~±40%的電源電壓變化,而使系統(tǒng)無法正常工作。
造成系統(tǒng)數(shù)據(jù)記錄錯誤的原因,主要集中在系統(tǒng)上電階段和系統(tǒng)工作階段電網(wǎng)電壓波動,即供電系統(tǒng)產(chǎn)生的干擾。因而本文針對供電系統(tǒng)產(chǎn)生的干擾,在系統(tǒng)硬件上和軟件上分別采用相應(yīng)的抗干擾措施。
另外,對于記錄數(shù)據(jù)準確性要求極高的系統(tǒng),為了保證記錄數(shù)據(jù)的準確可靠,防止系統(tǒng)在讀寫數(shù)據(jù)時造成的數(shù)據(jù)錯誤以及存儲器部分存儲單元損壞造成的記錄數(shù)據(jù)錯誤,還必須通過多次記錄的方法,即數(shù)據(jù)備份冗余來提高系統(tǒng)的容錯能力。
四、系統(tǒng)硬件抗干擾措施
對于具有掉電保護記錄功能的系統(tǒng),必須提高供電系統(tǒng)供電質(zhì)量,如使用各種穩(wěn)壓器、電源調(diào)節(jié)器等措施消除電網(wǎng)噪聲影響。對于印刷電路板電感造成的供電電壓上升緩慢的影響,可采用給PCB板上的集成電路增加去耦電容方法來解決,電容容量一般取0.01μF~0.1μF。
為了有效地消除系統(tǒng)因電源電壓波動造成誤中斷的影響,在系統(tǒng)硬件電路上仍要采取相應(yīng)的措施,解決由電網(wǎng)電壓波動造成的電壓比較器A的誤翻轉(zhuǎn)。為此,本系統(tǒng)電路中的電壓比較電路采用施密特電路結(jié)構(gòu),施密特電路的特點是抗干擾能力強,能夠有效地消除電路中各種噪聲和電壓波動的影響,使比較器輸出波形不因各種干擾的影響而出現(xiàn)無故的翻轉(zhuǎn),從而減少因干擾而引起的誤中斷信號,保證整個系統(tǒng)的正常工作,也可減少AT24C02的誤擦寫次數(shù),從而可以提高AT24C02的使用壽命,提高整個系統(tǒng)的可靠性。
五、系統(tǒng)軟件抗干擾措施
硬件上雖對電壓波動的干擾采取了一定措施,但對CPU與存儲器的工作狀態(tài)匹配,系統(tǒng)上電過程中產(chǎn)生外部誤中斷干擾及系統(tǒng)工作過程中的電壓波動的誤中斷的克服仍需采用軟件方法。軟件的抗干擾措施主要是針對兩個方面的干擾影響:一個是系統(tǒng)上電階段,系統(tǒng)工作不協(xié)調(diào)可能出現(xiàn)的數(shù)據(jù)讀寫錯誤;一個是系統(tǒng)工作過程中供電電壓波動干擾造成的誤中斷,而造成不必要的對AT24C02的寫操作。
對于智能累加性記錄儀器,剛開始工作時,必須讀出上次記錄結(jié)果,以及用戶所設(shè)定的一些量程和換算比例參數(shù)等。在系統(tǒng)上電過程中,存在兩種造成讀寫數(shù)據(jù)出錯的干擾。
1. 對供電電源上升緩慢干擾的克服
由于PCB板印制線條電感的影響,電源電壓上升緩慢,當(dāng)CPU已正常工作時,電壓比較電路輸出仍為低電平,發(fā)出外部中斷信號。雖然AT24C02帶有寫保護端,但因系統(tǒng)工作不穩(wěn),如不采取必要的軟件處理措施,仍會使系統(tǒng)產(chǎn)生中斷響應(yīng),而誤改記錄結(jié)果,即將上電階段CPU的RAM中的隨機數(shù)寫入AT24C02。因此,必須在軟件上使CPU等待,只有當(dāng)比較電路輸出電平為高后,才允許CPU讀外部存儲器中的數(shù)據(jù),然后才可打開中斷,允許中斷。
2. 對系統(tǒng)各部分工作狀態(tài)不匹配干擾克服
系統(tǒng)上電過程中,還存在CPU和存儲器工作狀態(tài)的匹配問題,即在讀取數(shù)據(jù)前,必須先判斷外部存儲器是否已正常工作。因此,需測試AT24C02的工作狀態(tài),即向存儲器中送入特征字,然后再讀出來,并判斷結(jié)果是否與送入的特征數(shù)據(jù)一樣,如相同,證明外部存儲器已正常工作,否則等待10ms,再送入特征字,直到讀出結(jié)果和寫入的數(shù)據(jù)相同,特征字可用55H(01010101B)或AAH(10101010B)。但由于AT24C02擦寫次數(shù)是有限的,為防止可能出現(xiàn)的惡性情況,當(dāng)測試3次仍不正確的話,CPU進入死循環(huán),在死循環(huán)中不訪問看門狗,超過一定時間后(大約1.6s,看門狗允許最大訪問時間間隔),看門狗發(fā)出復(fù)位信號,重新啟動CPU。系統(tǒng)啟動過程抗干擾程序?qū)崿F(xiàn)流程圖如圖2所示。
[align=center][img=350,719]http://www.e-works.net.cn/images/127915296281093750.GIF[/img]
圖2 系統(tǒng)上電過程抗干擾程序流程圖[/align] 當(dāng)系統(tǒng)正常工作后,對于電網(wǎng)電壓欠壓造成的電壓波動,雖在硬件上采用了抗干擾措施,但當(dāng)欠壓過大,仍會使電壓比較器誤翻轉(zhuǎn),引起不必要的外部中斷。在軟件上仍需進行必要的處理,即在進入外部中斷響應(yīng)后,程序需等待300ms,并判斷外部中斷信號是否仍為低電平,當(dāng)外部中斷信號電平變高時,應(yīng)結(jié)束中斷,返回正常工作;當(dāng)300ms后仍為低電平,CPU才進行記錄數(shù)據(jù)保護記錄。300ms是根據(jù)電網(wǎng)的欠壓的平均值確定的。
六、系統(tǒng)的容錯措施
對于數(shù)據(jù)記錄準確性要求極高的微機系統(tǒng),除了必要的抗干擾措施,還必須具有容錯能力。所謂的容錯,就是通過增加冗余資源的方法來掩蓋故障造成的影響,使得系統(tǒng)即使出錯或發(fā)生故障,其功能仍不受影響。對于數(shù)據(jù)記錄的容錯方法就是通過數(shù)據(jù)多次備份。本系統(tǒng)中采用了常用的三模冗余(Triple Modular Redundancy,TMR)方法,即對需要記錄的數(shù)據(jù)記錄三次,讀出時兩兩進行比較,以比較結(jié)果來決定記錄結(jié)果正確與否。只有當(dāng)至少兩個記錄結(jié)果相同時,系統(tǒng)才能以此為基礎(chǔ)繼續(xù)累加記錄,否則發(fā)出出錯信號報警。通過多次記錄能有效地克服單次記錄可能造成的錯誤,并能有效地彌補因存儲器部分存儲單元物理介質(zhì)損壞而造成的數(shù)據(jù)記錄結(jié)果破壞,有效地提高了系統(tǒng)的可靠性。
上述軟件抗干擾措施具體實現(xiàn)代碼如下:
wdi equ p3.4
wp equ p3.5
ORG 0000H
ljmp main
ORG 0003H
ljmp int0
ORG 0030H
Main:……
setb wp;AT24C02寫保護,禁止寫入,但可正常讀
wait0:cpl wdi;訪問看門狗
jnb p3.2,wait0;查看外部中斷電壓信號是否已變高
mov r1,#10;當(dāng)外部中斷消失后再等l0ms
waita:mov r0,#250
wait1:cpl wdi
nop
djnz r0,waitl
jnb p3.2,wait0
djnz r1,waita
clr wp;取消寫保護
mov r0,#3
retry:mov a,#55H;正常后,檢查外部存儲器是否正常工作送人;特征字#55H
mov b.#XXH;#XXH為外部存儲器的一個存儲單元地址
lcall wrt24c02
mov a,#XXH
lcall rd24c02
cjne a,#55H,number
……;省略的為讀出記錄數(shù)據(jù)和結(jié)果比較程序
setb ea:開中斷進入主循環(huán)
limp loop
number:djnz r0,retry
waitrest:ajmp waitrest;等待看門狗復(fù)位,重啟
loop:……
……
ljmp loop
int0:push psw
push acc
mov r0,#100
intwait0:mov r1,#250
intwaitl:cpl wdi;進人中斷后等待大約l00ms,以防止電;網(wǎng)波動造成的誤中斷
nop
djnz r1,intwaitl
djnz r0,intwait0
jb p3.2,noclose;當(dāng)l00ms后中斷信號消失,結(jié)束中斷
mov r0,#ramaddreH;#ramaddreH為CPU中記錄數(shù)據(jù)的地址,有兩個字節(jié)
mov b,#rom24c02H;#rom24c02H為E[sup]2[/sup]PROM中要寫入的單元地址
mov a,@r0
lcall wrt24e02
inc r0
mov a,@r0
mov b,#rom24c02H+1
lcall rt24c02
intwait:ajmp intwait;數(shù)據(jù)寫完以后,在此等待直到完全關(guān)機
noclose:pop acc
pop psw
reti
……
end
wrt24c02,rd24c02是寫和讀AT24C02子程序,由于AT89C52無I[sup]2[/sup]c串行接口,所以是以軟件模擬12C串口。因篇幅有限,這里省略了有關(guān)讀寫程序。
需要說明的是,對于進入外部中斷int0后,在進行數(shù)據(jù)保存前,等待300ms,這一時間是根據(jù)電網(wǎng)欠壓平均時間確定的,但要確保外部電源下降到CPU停止工作前,即2.7V前,將要保存的數(shù)據(jù)可靠地寫入AT24C02中。本文中的電能表電能讀數(shù)的表示是用三個字節(jié)來表示的,并且每一個數(shù)據(jù)要保存三次,共需寫入9個字節(jié),每個字節(jié)寫操作需5ms,共要45ms,考慮可能出現(xiàn)最長的寫入時間,故選擇總寫入時間為100ms。因而需要選擇合適的分壓電阻R6和R8或穩(wěn)壓二極管z來確保電壓比較器的翻轉(zhuǎn)時機,用以保證系統(tǒng)在掉電時響應(yīng)外部中斷到停止工作前,有0.4s的時間間隔,確保將要保存的數(shù)據(jù)可靠地寫入存儲器,又盡可能地減少因誤中斷造成的不必要的數(shù)據(jù)擦寫。
七、結(jié)束語
實際應(yīng)用結(jié)果表明,采用上述的硬件和軟件兩方面的抗干擾設(shè)計方法及數(shù)據(jù)冗余措施,大大地提高系統(tǒng)的可靠性和容錯性,有效地克服了各種干擾因素造成記錄數(shù)據(jù)出錯的可能性,保證存儲數(shù)據(jù)的準確性,提高了產(chǎn)品在工業(yè)現(xiàn)場適應(yīng)性。因而,對于智能記錄儀器的數(shù)據(jù)記錄來說,這一硬件和軟件相結(jié)合的抗干擾設(shè)計方法和容錯技術(shù)是有效的,可行的。
標簽:
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。