關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 淺析智能電表軟硬件的抗干擾設計

淺析智能電表軟硬件的抗干擾設計

作者: 時間:2012-05-28 來源:網(wǎng)絡 收藏

三、軟件

在提高硬件系統(tǒng)抗干擾能力的同時,軟件抗干擾以其設計靈活、節(jié)省硬件資源、可靠性好越來越受到重視。因此,除了采取硬件抗干擾方法外,還要采取如下軟件抗干擾措施。

(1)指令冗余技術

當指針受到干擾出現(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指令,可保證跑飛程序迅速納入軌道;或者在其后面重復寫上這些指令,以確保這些指令的正確運行。

(2)軟件陷阱

當微處理器受到各種干擾時,若PC指針跳到非程序區(qū),可能會陷入某種循環(huán)不能跳出。如果循環(huán)中無清WDT指令,在給定看門狗定時器條件下,經(jīng)過一定時間 WDT起作用,將PC指針復位,工作恢復正常。如果循環(huán)中包含了清WDT的指令,則產(chǎn)生死機。對于后者可在非程序區(qū)放置軟件陷阱加以解決。

軟件陷阱有三條指令組成:

* NOP

* NOP

* LJMP EER

安排軟件陷阱的位置有:

1. 未使用的中斷區(qū)。如果設計的未使用全部的中斷向量區(qū),則可在剩余的中斷區(qū)安排軟件陷阱,以便能捕捉到錯誤的中斷。

2. 未使用的大片EPROM空間。對于單片機未編程的空間,其初始值為OFFH。OFFH對51指令來說,相當于單字節(jié)指令MOV R7,A。當程序跑飛入該區(qū)后,不僅無法迅速入軌,而且破壞R7的內(nèi)容。因此在該區(qū)每隔一段地址設一個陷阱,就一定能捕捉到跑飛的程序。

3. 在表格的最后安排陷阱。注意表格中不應被放入。

4. 在程序區(qū)。前面曾指出,跑飛的程序在用戶程序內(nèi)部跳轉時可用指令冗余加以解決,也可以設置一些軟件陷阱,能更有效地抑制程序跑飛??梢詫⑾葳逯噶罘胖迷诟髂K之間的空余單元里。在正常運行中不執(zhí)行這些陷阱指令,一旦程序跑飛落入這些陷阱區(qū),馬上將亂飛的程序拉入正確軌道。由于軟件陷阱都安排在正常程序執(zhí)行不到的地方,故不會影響程序的執(zhí)行效率。所以在EPROM容量允許的條件下,這種陷阱多一點為好。

(3)“看門狗”措施

如果跑飛的程序落入一個臨時構成的死循環(huán)中時,冗余指令和軟件陷阱都將無能為力,這時可以采用復位的方法使系統(tǒng)恢復正常。“看門狗”電路的功能就是對 CPU進行實時檢測,當CPU落入死循環(huán)之后,能及時發(fā)現(xiàn)并使整個系統(tǒng)復位。在軟件編程中,設置約1秒訪問一次看門狗芯片,當程序跑飛或大于1.4秒(設置的超時時間)沒有訪問看門狗芯片,X5045將輸出復位脈沖,直至程序正常運行。

(4)保證EEPROM數(shù)據(jù)寫入的可靠性措施

需要注意的是,看門狗如果起作用說明程序計數(shù)器內(nèi)容被破壞,因此其它寄存器或片內(nèi)公羊的內(nèi)容也有被破壞的可能,會導致把錯誤的數(shù)據(jù)寫入EEPROM。在電表工作中,每產(chǎn)電量改變0.1度寫入一次EEPROM,如果出現(xiàn)將錯誤的數(shù)據(jù)寫入EEPROM,這是不允許的。采取以下措施可很好的解決此問題:

1. 正常寫入EEPROM之前,要進行一系列操作,可將其分成幾部分。每一部分設置一寫入口令。只有程序正常一步一步運行,口令才會逐一被賦予正確的值,到最后寫入時再判斷所有的口令是否正確。若正確,寫入,否則退出。寫入完成,口令清除。

2. 數(shù)據(jù)雙備份。當由于干擾使微處理器中的寄存器數(shù)據(jù)改變時,鑒于三組數(shù)據(jù)在同一值出錯的概率較小,故在寫入之前,將三組數(shù)據(jù)比較,若相等則寫入,若不相等則將相等的兩組數(shù)據(jù)寫入。

3. 寫入之前對數(shù)據(jù)的合法性進行判別,即對電量或參數(shù)的數(shù)據(jù)格式進行判別。有了這樣的限制,可進一步提高可靠性。

4. 定時設置I/0口狀態(tài);微處理器受到干擾,I/0口狀態(tài)可能改變,比如電脈沖輸入口若改變?yōu)檩敵鰬B(tài),會造成用戶用了電但微處理器卻檢測不到的可能。所以周期性地重復定義I/0口的輸入/輸出狀態(tài)對于干擾環(huán)境下運行的電表是有好處的。

(5)串行通信數(shù)據(jù)的冗余校驗

在抄表通信過程中,由于信道上各種因素的影響,所傳輸?shù)男盘柺芤欢ǔ潭鹊母蓴_,PC機、集中器、電表間的性能參數(shù)不完全一致,在串行通信中僅靠奇偶校驗是不夠的。而采用國際上較為流行的傳輸碼校驗方法——循環(huán)冗余碼校驗(CRC),可收到了很好的效果。CRC是一種多用于同步通訊方式中的差錯檢出方式,在該方式中,將所傳數(shù)據(jù)系列看成高次多項式G(x),將此多項式用預先規(guī)定的生成多項式P(x)去除,再將其余數(shù)碼BCC附加在所傳數(shù)據(jù)的尾部一并傳送:在接收方,用同樣的生成多項式去除,若除得結果為零,則可判斷所接收到的數(shù)據(jù)是正確的。在發(fā)送端的一方,即電表先將發(fā)送數(shù)據(jù)轉換,連同原數(shù)據(jù)一同發(fā)給集中器,集中器不做校驗,直接發(fā)給PC機,在接收端,PC機用高級語言實行CRC算法解碼;以確定數(shù)據(jù)的真?zhèn)?。?jīng)實驗證明,冗余校驗使誤碼率大為降低,確保了數(shù)據(jù)傳輸?shù)目煽啃浴?p>另外在軟件的編制過程中應注意在執(zhí)行各功能子模塊之前,可先進行功能標志冗余判斷,以增強其程序運行可靠性。

四、結束語

在電表設計中,為了少走彎路和節(jié)省時間,應充分考慮抗干擾性能的要求,避免在設計完成后再去進行抗干擾的補救措施。因此電表設計開發(fā)者應從抑制干擾源,切斷干擾傳播路徑,提高敏感器件的抗干擾性能等方面采取各種措施來提高系統(tǒng)性能。在中,軟件抗干擾是被動措施,而硬件抗干擾是主動措施,只要認真分析系統(tǒng)所處環(huán)境的干擾來源以及傳播途徑,采用兩者相結合的方法,就能保證系統(tǒng)長期穩(wěn)定可靠地運行。


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉