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