強電磁脈沖對單片機系統的輻照效應實(shí)驗研究
按動(dòng)開(kāi)關(guān)K,使單片機工作于任一程序模塊,對單片機進(jìn)行沖擊實(shí)驗。實(shí)驗中多次出現程序跳轉和“死機”現象。程序跳轉是指程序跳過(guò)一段指令后仍能正常運行?!八罊C”有兩種表現:一是按動(dòng)開(kāi)關(guān)K,數碼管顯示內容無(wú)變化;二是按動(dòng)開(kāi)關(guān)K,數碼管顯示內容改變幾次后不再發(fā)生變化。圖3 是示波器上記錄下的單片機“死機”時(shí),腳上的干擾波形。
“死機”是指干擾使程序計數器內容改變,結果可能將一條指令的后半字節與下一條指令的前半字節當做一條指令來(lái)執行,從而使程序進(jìn)入一個(gè)意想不到的死循環(huán)[4]。程序跳轉不一定必然引起“死機”。當程序跳轉到某條指令首字節時(shí),一般不會(huì )引起“死機”,如實(shí)驗中出現的程序跳轉現象。實(shí)驗中“死機”的第一種表現是干擾后程序已進(jìn)入死循環(huán);第二種表現是干擾后程序并未立即進(jìn)入死循環(huán),先停留在一條等待指令上,即:WAIT:JNB P1.0 WAIT,等待開(kāi)關(guān)K的按下,按下開(kāi)關(guān)K后,程序繼續運行錯誤指令而進(jìn)入死循環(huán)。此時(shí)執行的等待指令并不是正常的等待指令,而是由一條指令的后半字節與下一條指令的前半字節組合成的指令。
一般認為“死機”是由于干擾改變了程序計數器的PC值引起的。但通過(guò)實(shí)驗,并根據單片機的讀指時(shí)序圖,我們認為還有兩種可能造成“死機”:一是由于數據線(xiàn)上的干擾信號使CPU讀入了錯誤的跳轉指令;二是由于腳上的干擾信號(如圖3)使CPU在非讀指周期發(fā)生讀指操作,讀入了錯誤的跳轉指令。
單片機系統的控制信號一般由鎖存器保存[5],因此,可通過(guò)研究鎖存器輸出數據的變化情況來(lái)研究控制狀態(tài)的變化。該單片機系統中的數碼管的數據是由四位鎖存器74LS373保存的,數碼管顯示內容的變化可直觀(guān)地反映鎖存器輸出狀態(tài)的變化。
按動(dòng)開(kāi)關(guān)K,使單片機工作于任一程序模塊,對單片機進(jìn)行沖擊實(shí)驗。幾乎每次沖擊都能使數碼管顯示內容發(fā)生改變。由鎖存器74LS373的時(shí)序圖可知,ALE腳上脈沖的上升沿可將數據輸入端的信號存入鎖存器。在每次沖擊實(shí)驗中,ALE腳有很強的干擾信號,而每次數據輸入端的干擾數據都不同,因此每次數碼管的顯示內容也都不同。
2.4 A/D轉換電路效應實(shí)驗研究
按動(dòng)開(kāi)關(guān)K,使單片機工作于A(yíng)/D轉換電路檢測模塊。A/D轉換程序循環(huán)運行(提高A/D轉換期間受沖擊的概率),并隨時(shí)顯示轉換結果的最大、最小值,在此期間進(jìn)行沖擊實(shí)驗。
實(shí)驗中發(fā)現轉換結果的最大、最小值嚴重偏離正常值“8AH”(可調),最大值可達“FFH”(對應5V,滿(mǎn)量程),最小值到“00”。其原因有三:(1)模擬輸入端的輸入信號上迭加有干擾信號(干擾脈沖峰值可達幾十伏);(2)讀轉換結果時(shí),數據線(xiàn)上的干擾信號使讀入數據出錯;(3)強干擾使AD0809的工作異常。實(shí)驗表明,數據采集誤差增大主要由前兩個(gè)因素引起。
2.5 串行通訊電路效應實(shí)驗研究
按動(dòng)開(kāi)關(guān)K,使單片機工作于串口通訊功能檢查模塊。這部分程序也是循環(huán)進(jìn)行的(提高通訊期間受到?jīng)_擊的概率),當發(fā)現接收數據與發(fā)送數據不符時(shí),顯示出錯信息。在此期間進(jìn)行沖擊實(shí)驗,圖4是RXD腳上的正常波形和通訊出錯時(shí)的干擾波形。
串口通訊出錯的原因有兩個(gè):(1)干擾使CPU內的串口電路工作失誤,從而使接收與發(fā)送不符;(2)RXD線(xiàn)上的干擾信號使串行數據發(fā)生混亂。圖4中,RXD上有很強的干擾信號,而且低電平被展寬了3~4倍。這是通訊出錯的主要原因。
2.6 讀寫(xiě)存儲器RAM效應實(shí)驗研究
按動(dòng)開(kāi)關(guān)K,使單片機工作于RAM檢測模塊。該部分實(shí)驗由三部分組成:(1)先在RAM的0000H~1FFFH單元寫(xiě)入數據(“AAH”、“55H”), 然后等待開(kāi)關(guān)K按下,等待期間進(jìn)行沖擊實(shí)驗。沖擊完畢,按下開(kāi)關(guān)K,判斷RAM內容是否改變并顯示數據改變的個(gè)數。(2)先進(jìn)行循環(huán)寫(xiě)(提高寫(xiě)期間受到?jīng)_擊的概率),在寫(xiě)期間進(jìn)行沖擊實(shí)驗,沖擊完畢,顯示數據改變的個(gè)數。(3)先寫(xiě)入,然后循環(huán)讀(提高讀期間受到?jīng)_擊的概率),在讀期間進(jìn)行沖擊實(shí)驗,并顯示數據改變的個(gè)數。圖5是循環(huán)讀出現2個(gè)錯誤時(shí),采集到的腳和
腳上的干擾波形。
評論