基于51單片機系統(tǒng)的故障重現(xiàn)實驗設計
電磁脈沖輻照效應實驗方法
本文引用地址:http://cafeforensic.com/article/201809/389090.htm電磁脈沖對電予系統(tǒng)的輻照效應實驗方法,簡單地說就是將被測電子系統(tǒng)置于電磁脈沖輻射場中,接受電磁脈沖的照射,研究被測系統(tǒng)在電磁脈沖照射下受干擾、損傷的情況。
實驗配置如圖1所示。主要由吉赫橫電磁波傳輸室(GTEM Cell)、Marx發(fā)生器、控制臺和被試系統(tǒng)等組成。Marx發(fā)生器用于產(chǎn)生高電壓,與GTEM室配合,在GTEM室內(nèi)產(chǎn)生均勻電磁場??刂婆_主要由示波器、光接收機和Marx控制面板組成。光接收機和電場傳感器組成模擬量光纖場測量系統(tǒng),主要用于將輻射電磁場轉換成電壓信號;示波器用來顯示電場波形;Marx控制面板用來控制Marx發(fā)生器的充放電操作和陡化間隙的調整。
故障重現(xiàn)原理
故障重現(xiàn)的概念
計算機系統(tǒng)在電磁脈沖作用下可產(chǎn)生硬件損壞、數(shù)據(jù)采集誤差增大、內(nèi)存數(shù)據(jù)改變、程序跳轉、重啟動和死機等故障。這些故障現(xiàn)象是大量的、不同的計算機在不同環(huán)境、不同時間受干擾后產(chǎn)生的故障現(xiàn)象的集總。如果拿出任意一臺計算機做實驗,只能產(chǎn)生很少的幾個故障現(xiàn)象,由于這些計算機沒有自動檢測功能,有的故障即使是發(fā)生了,也觀察不到。如
果連故障現(xiàn)象都觀察不全,就無法找出故障出現(xiàn)的規(guī)律和原因,更談不上進行防護技術研究。因此,很有必要設計一套專門用于電磁脈沖效應實驗的計算機系統(tǒng),該系統(tǒng)具有以下功能:
·自動檢測并顯示系統(tǒng)本身出現(xiàn)的故障;
·干擾時故障最容易出現(xiàn);
·使出現(xiàn)故障的種類最多;
·具有故障重現(xiàn)功能。
故障重現(xiàn)是指主動地采取一定的技術手段,使故障反復出現(xiàn)。想看哪種故障就能出現(xiàn)哪種故障,想讓它出現(xiàn)兒次就出現(xiàn)幾次。這與一般電路中采取有效措施抗干擾的設計思想截然不同。
故障重現(xiàn)的條件
故障重現(xiàn)并不是用計算機軟件進行故障仿真,而是故障的真實再現(xiàn)。要使故障重現(xiàn),除了輻射場的幅度要足夠強外,被測系統(tǒng)還要具備必需的硬件電路和軟件環(huán)境。軟件環(huán)境是指干擾出現(xiàn)時控制功能電路工作的程序正在運行,即時間對準。例如,如果要考查電磁脈沖對A/D轉換電路轉換精度的影響,首先要有ADC,其次要保證照射時ADC正在工作。
實現(xiàn)故障重現(xiàn)的技術手段
對輻射場強度和硬件電路的要求比較容易實現(xiàn),難點是保證時間對準。當然,有些故障的重現(xiàn)對時間對準要求很寬松,如死機和重啟動,計算機幾乎在運行任何程序時都有可能出現(xiàn)這兩種故障現(xiàn)象。
解決這一難點的方法是采取程序模塊化和循環(huán)等待技術。程序模塊化使每一種故障(效應)對應一個程序模塊,想看哪種故障,就運行相應的程序模塊;想讓故障多次出現(xiàn),就反復進行效應實驗。循環(huán)等待技術是讓計算機始終運行某一段或某一句程序,可大大提高干擾成功的概率,使故障最容易出現(xiàn)。
系統(tǒng)組成及工作原理
硬件組成
本系統(tǒng)采用51系列單片機。為便于研究程序存儲器的效應情況,選用內(nèi)部不含EPROM的8031作為中央處理器,程序固化在外部程序存儲器中,這里采用的是擦、寫方便的E2PROM(2864或28C64)。由于8031內(nèi)含CTC和SIO,不再另設外CTC和SIO。為使系統(tǒng)能夠重現(xiàn)盡可能多的故障現(xiàn)象,采用的外設芯片還有:外部數(shù)據(jù)存儲器(6264)和ADC(AD0809)。另外,增加4位數(shù)碼管用于信息顯示,顯示數(shù)據(jù)由4個鎖存器(74LS373)保存。上述硬件電路既完成一定的功能又是被試驗對象。系統(tǒng)組成如圖2所示。
程序執(zhí)行流程
該系統(tǒng)軟件共由8個程序模塊組成:指示單片機重啟動的程序模塊;檢查CTC運行情況的程序模塊;串口通訊功能檢查程序模塊;判斷外RAM內(nèi)容是否改變及讀寫是否出錯的程序模塊;判斷內(nèi)RAM內(nèi)容是否改變程序模塊;檢查A/D轉換電路轉換誤差是否增大程序模塊;判斷外中斷足否被誤觸發(fā)程序模塊;顯示E2PROM內(nèi)容是否被改寫的程序模塊。
系統(tǒng)的工作過程也就是上述8個程序模塊的運行過程,它們是在執(zhí)行開關K的控制下順序執(zhí)行的。圖3給出了流程圖。幾乎每一種效應實驗對應一個程序模塊。由于硬件損壞故障與軟件運行關系不大,而且故障現(xiàn)象明顯,無需專門設置程序模塊。重肩動效應實驗可以工作在除指示單片機重啟動的程序模塊的任一程序模塊。死機效應實驗可以工作在任一程序模塊,由于故障現(xiàn)象明顯,無需檢測程序。 故障重現(xiàn)及檢測的具體實現(xiàn)不同的故障現(xiàn)象有不同的重現(xiàn)和檢測方法。由于篇幅有限,只給出三種故障重現(xiàn)及檢測的實現(xiàn)方法。
外RAM效應
這部分實驗包括三部分:一是不進行讀寫操作時,檢查外RAM內(nèi)容是否被改寫;二是檢查讀操作是否出錯;三是檢查寫操作是否出錯。
第一部分實驗中,RAM內(nèi)容被改寫是由于RAM芯片被干擾所致,只需編制檢測程序。先在RAM的0000H~1FFFH單元寫入同一數(shù)據(jù)(AA),然后等待執(zhí)行開關K的按下,等待期間進行沖擊實驗。沖擊完畢,讀出RAM內(nèi)容并判斷是否改變。
第二、三部分實驗,檢查RAM的讀寫操作是否因干擾而出錯。讓持續(xù)時間只有微秒量級的干擾脈沖去干擾執(zhí)行時間只有幾個微秒的讀寫指令,這種事件發(fā)生的概率幾乎為0。對于干擾源可以工作在重復工作方式的情況,可以使其在重復工作方式下工作,這無疑是一種不錯的想法。但是,由于重復工作方式的重復頻率并不能做得很高,最高只能達到1kHz左右,所以其效果并不明顯。最有效的方法是使程序重復執(zhí)行一條讀或寫指令,雖然兩次讀或寫之間還有幾條判斷讀或寫入的數(shù)據(jù)是否正確的指令,但兩次讀或寫之間的時間間隔也只有數(shù)十微秒量級,這就相當于讓讀寫指令等著電磁脈沖來干擾,從而大大提高了被干擾的概率。
第二、三部分程序編制開始時,為了使其更具代表性,對RAM的所有單元進行讀或寫,即先將RAM的0000H~1FFFH單元清0,然后使程序循環(huán)讀這些單元,或向這些單元循環(huán)寫入數(shù)據(jù)AA,并實時檢查讀出或寫入的數(shù)據(jù)是否正確。在實驗中發(fā)現(xiàn),第二、三部分實驗出錯的次數(shù),比第一部分實驗出現(xiàn)的次數(shù)還多。盡管采取了上述循環(huán)等待技術,但某條指令被干擾的可能性還是很小。多次實驗不得其解,后來在讀實驗顯示出錯信息時檢查RAM各單元的內(nèi)容,發(fā)現(xiàn)每次都有一部分RAM單元的內(nèi)容出錯,而讀操作出錯不可能導致RAM內(nèi)容改變,因此,并不是或不全是讀寫操作出錯,而是由于RAM內(nèi)容被改寫后,誤判為讀或寫出錯。解決這一問題的方法是,使讀寫操作只對某一一固定的RAM單元進行,由于一個單元被改寫的概率是所有單元被改寫概率的l/2,這就大大降低了誤警概率。
串口SIO效應
串口SIO效應實驗主要是看串口通訊是否出錯。要觀察到這種故障現(xiàn)象,就必須讓單片機運行串口通訊程序。由于51型單片機只有一個串口,而要使其進行通訊,最少需要兩個串口,這就至少需要有兩套單片機系統(tǒng),這將使設備和實驗復雜化。在認真研究串口工作原理后,終于找到了只用一個單片機模擬串口通訊的方案:把CPU的TXD和RXD短接,將TXD端發(fā)出的數(shù)據(jù)直接送入RXD進行接收,使單片機工作于自發(fā)自收狀態(tài),通過檢查接收與發(fā)送的數(shù)據(jù)是否相等判斷通訊是否正常。當然,仍需采用循環(huán)等待技術,使通訊循環(huán)進行,當運行正常時,在P1.1口產(chǎn)生脈沖信號,使紅色LED亮。如果通汛出現(xiàn)異常,數(shù)碼管將顯示出錯信息,并將LED熄滅。
定時器CTC效應
為使CTC工作失誤故障重現(xiàn),可在主程序中加入允許CTC中斷的指令,使程序運行時,CTC一直在工作,等待電磁脈沖來干擾。 定時器采用CPU內(nèi)部定時器0,工作方式為方式1。編寫CTC0的中斷子程序,與軟件計數(shù)器R0配合,在P1.1口產(chǎn)生一個方波信號,驅動LED閃亮。主程序等待K按下指令,等待期間進行干擾實驗。如果LED閃亮異常,表明CTC工作不正常。以下為定時器0的中斷子程序:
實驗結果
在設計該單片機系統(tǒng)以前,曾用一單片機最小應用系統(tǒng)做效應實驗,結果只能觀察到死機現(xiàn)象。而將該系統(tǒng)用于效應實驗后,觀察到了硬件損壞、A/D轉換誤差增大、內(nèi)存數(shù)據(jù)改變、程序跳轉、死機、CTC工作失誤、串口通訊出錯和程序存儲器E2PROM內(nèi)容被改寫等多種故障現(xiàn)象。通過大量、反復地實驗,測出了各種故障出現(xiàn)的閾值,分析了故障出現(xiàn)的原因。
圖4是示波器記錄下的串口RXD引腳上的正常信號和通訊出錯時的干擾波形。圖4表明,RXD上有很強的干擾信號,而且低電平被展寬了3~4倍。
根據(jù)實驗數(shù)據(jù)及串口工作原理,得出申行通訊出錯的原因有兩個:
1.干擾使SIO電路工作失誤,如串口控制寄存器SCON內(nèi)容改變,發(fā)送或接收SBUF內(nèi)容改變等,這些都可能引起接收數(shù)據(jù)和發(fā)送數(shù)據(jù)不符,從而使通訊出錯;
2.RXD線上的干擾信號使串行數(shù)據(jù)發(fā)生混亂,從而使接收數(shù)據(jù)出錯。
評論