單片計算機(jī)系統(tǒng)抗干擾的軟件途徑
1.1 中央處理器CPU
CPU 屬于高速數(shù)字器件,易受干擾有運算器、控制器和控制寄存器。當(dāng)電磁干擾信號竄入時,CPU將錯誤地執(zhí)行指令,引起誤動作或者錯誤的結(jié)果;而控制寄存器中的信息如果被噪聲修改,將導(dǎo)致初始化錯誤、尋址失敗乃至系統(tǒng)癱瘓。試驗表明,干擾信號大多數(shù)由總線導(dǎo)入CPU內(nèi);其中與外界聯(lián)系最頻繁、因而最容易受干擾的是程序指針PC,這種干擾往往引發(fā)致命錯誤,屬于重點防范和重點糾錯的對象。
1.2 特殊功能寄存器SFR
SFR 包括各種I/O端口的寄存器、各種片內(nèi)部件的工作方式寄存器,以及堆棧指針、數(shù)據(jù)指針等等,其特點是傳遞數(shù)據(jù)的速度高,能夠與CPU的運行密切配合。如果某個SFR被干擾信號改寫,則意味意程序運行的結(jié)果異常,輕者改變單睡機(jī)內(nèi)各部件的操作控制,得則導(dǎo)致整個系統(tǒng)的輸出紊亂,引發(fā)故障或安全事故。因此,對于與程序有關(guān)的SFR內(nèi)容必須提供及時有效的保護(hù)。
1.3 存儲器MEM
微處理機(jī)的存儲器包括片內(nèi)存儲器及片外擴(kuò)展的存儲器。為了增強(qiáng)抑制噪聲的能力,工控計算機(jī)數(shù)據(jù)存儲器和程序存儲器一般分屬兩個器件。噪聲試驗表明:程序存儲器(EEPROM或者EPROM)的抗擾度最高,經(jīng)過引腳噪聲超常耦合試驗后芯片內(nèi)容毫無變化;單片機(jī)內(nèi)部的數(shù)據(jù)存儲器(片仙RAM)抗擾度也較為滿意,經(jīng)過9次試驗后僅有兩個字節(jié)的內(nèi)容發(fā)生了改變,累積變化率不到1%;片外RAM(6264)的抗擾性能相對較差,在6次試驗后,其內(nèi)容的累計變化率已達(dá) 8.05%。因此,在干擾信號較強(qiáng)的環(huán)境中運行的工控微機(jī),其較持久的和重要的數(shù)據(jù)應(yīng)當(dāng)保存在片內(nèi)RAM之中,在擴(kuò)展的RAM中只宜保存臨時數(shù)據(jù)(中間變量),否則應(yīng)當(dāng)采用后述方法在應(yīng)用程序中實施數(shù)據(jù)恢復(fù)。
2 軟件補(bǔ)償措施
對于已經(jīng)侵入微處理機(jī)的噪聲,必須采取能夠維持系統(tǒng)功能的對應(yīng)措施,以免出現(xiàn)意外停機(jī)或意外啟動,甚至引起惡性事故。對CPU的誤動作和各種存儲器內(nèi)容的誤修改,在應(yīng)用軟件中插入相應(yīng)的程序模塊,進(jìn)行主動補(bǔ)償是一種簡單而可靠的方法。
2.1 主動初始化
這里的“初始化”泛指在各段程序中,對單片機(jī)及片外擴(kuò)展器件的各種功能、端口或者方式、狀態(tài)等采取的永久性的或者臨時的設(shè)置。我們不僅要保證上電或復(fù)位后軟件能夠正確地實現(xiàn)各種級別的初始化,而且在程序中每次使用某種功能前,都要再一次對相應(yīng)的控制寄存器設(shè)定動作模式。實踐證明,這一措施可以大大提高系統(tǒng)對于入侵干擾的自恢復(fù)性能。
2.2 數(shù)據(jù)冗余化
在噪聲幅度較大的環(huán)境中,采用冗余數(shù)據(jù)法可以明顯地增加系統(tǒng)的可靠性,這種方法對于傳輸系統(tǒng)的永久性硬件故障或者干擾引入的數(shù)據(jù)錯誤都具有明顯的糾錯效果。采用的主要措施是給重要的數(shù)據(jù)添加冗余位,延長數(shù)據(jù)-代碼之間的漢明(hamming)距離以增強(qiáng)檢測和蔬正錯誤的能力。圖4表明了這種方式的原理,完全無冗余性的代碼漢明距離為1。
冗余化碼系在遠(yuǎn)距離數(shù)字通訊傳輸技術(shù)中應(yīng)用較為普遍,但在工業(yè)控制中的應(yīng)用尚不多見。圖4A代表工控技術(shù)中的一般數(shù)據(jù)碼,無檢測錯誤的能力。奇?zhèn)刃r瀯t是在數(shù)據(jù)中增加1位冗余位(圖 4B),使?jié)h明距離變?yōu)?,因此可以檢測奇數(shù)位錯誤。若再增加冗余位使碼系間的漢明距離延長為3(圖4C),還可具有校正1位錯誤的能力。在干擾信號特別強(qiáng)烈的場合中,控制或采集終端與上位機(jī)之間串行傳送還可以考慮采用循環(huán)冗余校驗(CRC)手段來增加數(shù)據(jù)的可靠性。
評論