《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于故障重現(xiàn)的單片機(jī)系統(tǒng)設(shè)計(jì)
基于故障重現(xiàn)的單片機(jī)系統(tǒng)設(shè)計(jì)
摘要: 為研究電磁脈沖對(duì)計(jì)算機(jī)系統(tǒng)的干擾和破壞機(jī)理,,利用GTEM室等大型裝置產(chǎn)生的模擬核電磁脈沖為照射源,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行輻照效應(yīng)實(shí)驗(yàn)。為了有效地研究計(jì)算機(jī)系統(tǒng)的電磁脈沖效應(yīng),,需要專門用于電磁脈沖效應(yīng)實(shí)驗(yàn)、具有故障重現(xiàn)功能的單片機(jī)系統(tǒng),。本文介紹了該系統(tǒng)的組成和原理,,并給出了將該系統(tǒng)用于電磁脈沖效應(yīng)實(shí)驗(yàn)的結(jié)果。
Abstract:
Key words :

  電磁脈沖輻照效應(yīng)實(shí)驗(yàn)方法
  
  電磁脈沖對(duì)電予系統(tǒng)的輻照效應(yīng)實(shí)驗(yàn)方法,,簡(jiǎn)單地說就是將被測(cè)電子系統(tǒng)置于電磁脈沖輻射場(chǎng)中,,接受電磁脈沖的照射,研究被測(cè)系統(tǒng)在電磁脈沖照射下受干擾,、損傷的情況,。
  
  實(shí)驗(yàn)配置如圖1所示。主要由吉赫橫電磁波傳輸室(GTEM Cell),、Marx發(fā)生器,、控制臺(tái)和被試系統(tǒng)等組成。Marx發(fā)生器用于產(chǎn)生高電壓,,與GTEM室配合,,在GTEM室內(nèi)產(chǎn)生均勻電磁場(chǎng)??刂婆_(tái)主要由示波器,、光接收機(jī)和Marx控制面板組成。光接收機(jī)和電場(chǎng)傳感器組成模擬量光纖場(chǎng)測(cè)量系統(tǒng),,主要用于將輻射電磁場(chǎng)轉(zhuǎn)換成電壓信號(hào),;示波器用來顯示電場(chǎng)波形;Marx控制面板用來控制Marx發(fā)生器的充放電操作和陡化間隙的調(diào)整,。
 

電磁脈沖輻照效應(yīng)實(shí)驗(yàn)方法

  
 
  故障重現(xiàn)原理
  
  故障重現(xiàn)的概念

  
  計(jì)算機(jī)系統(tǒng)在電磁脈沖作用下可產(chǎn)生硬件損壞,、數(shù)據(jù)采集誤差增大、內(nèi)存數(shù)據(jù)改變、程序跳轉(zhuǎn),、重啟動(dòng)和死機(jī)等故障,。這些故障現(xiàn)象是大量的、不同的計(jì)算機(jī)在不同環(huán)境,、不同時(shí)間受干擾后產(chǎn)生的故障現(xiàn)象的集總,。如果拿出任意一臺(tái)計(jì)算機(jī)做實(shí)驗(yàn),只能產(chǎn)生很少的幾個(gè)故障現(xiàn)象,,由于這些計(jì)算機(jī)沒有自動(dòng)檢測(cè)功能,,有的故障即使是發(fā)生了,也觀察不到,。如

 

果連故障現(xiàn)象都觀察不全,,就無(wú)法找出故障出現(xiàn)的規(guī)律和原因,更談不上進(jìn)行防護(hù)技術(shù)研究,。因此,,很有必要設(shè)計(jì)一套專門用于電磁脈沖效應(yīng)實(shí)驗(yàn)的計(jì)算機(jī)系統(tǒng),該系統(tǒng)具有以下功能:
  
  ·自動(dòng)檢測(cè)并顯示系統(tǒng)本身出現(xiàn)的故障,;
  
  ·干擾時(shí)故障最容易出現(xiàn),;
  
  ·使出現(xiàn)故障的種類最多;
  
  ·具有故障重現(xiàn)功能,。
  
  故障重現(xiàn)是指主動(dòng)地采取一定的技術(shù)手段,,使故障反復(fù)出現(xiàn)。想看哪種故障就能出現(xiàn)哪種故障,,想讓它出現(xiàn)兒次就出現(xiàn)幾次,。這與一般電路中采取有效措施抗干擾的設(shè)計(jì)思想截然不同。
  
  故障重現(xiàn)的條件

  
  故障重現(xiàn)并不是用計(jì)算機(jī)軟件進(jìn)行故障仿真,,而是故障的真實(shí)再現(xiàn),。要使故障重現(xiàn),除了輻射場(chǎng)的幅度要足夠強(qiáng)外,,被測(cè)系統(tǒng)還要具備必需的硬件電路和軟件環(huán)境,。軟件環(huán)境是指干擾出現(xiàn)時(shí)控制功能電路工作的程序正在運(yùn)行,即時(shí)間對(duì)準(zhǔn),。例如,,如果要考查電磁脈沖對(duì)A/D轉(zhuǎn)換電路轉(zhuǎn)換精度的影響,首先要有ADC,,其次要保證照射時(shí)ADC正在工作,。
  
  實(shí)現(xiàn)故障重現(xiàn)的技術(shù)手段

  
  對(duì)輻射場(chǎng)強(qiáng)度和硬件電路的要求比較容易實(shí)現(xiàn),難點(diǎn)是保證時(shí)間對(duì)準(zhǔn),。當(dāng)然,,有些故障的重現(xiàn)對(duì)時(shí)間對(duì)準(zhǔn)要求很寬松,,如死機(jī)和重啟動(dòng),計(jì)算機(jī)幾乎在運(yùn)行任何程序時(shí)都有可能出現(xiàn)這兩種故障現(xiàn)象,。
  
  解決這一難點(diǎn)的方法是采取程序模塊化和循環(huán)等待技術(shù),。程序模塊化使每一種故障(效應(yīng))對(duì)應(yīng)一個(gè)程序模塊,想看哪種故障,,就運(yùn)行相應(yīng)的程序模塊,;想讓故障多次出現(xiàn),,就反復(fù)進(jìn)行效應(yīng)實(shí)驗(yàn),。循環(huán)等待技術(shù)是讓計(jì)算機(jī)始終運(yùn)行某一段或某一句程序,可大大提高干擾成功的概率,,使故障最容易出現(xiàn),。
  
  系統(tǒng)組成及工作原理
  
  硬件組成

  
  本系統(tǒng)采用51系列單片機(jī)。為便于研究程序存儲(chǔ)器的效應(yīng)情況,,選用內(nèi)部不含EPROM的8031作為中央處理器,,程序固化在外部程序存儲(chǔ)器中,這里采用的是擦,、寫方便的E2PROM(2864或28C64),。由于8031內(nèi)含CTC和SIO,不再另設(shè)外CTC和SIO,。為使系統(tǒng)能夠重現(xiàn)盡可能多的故障現(xiàn)象,,采用的外設(shè)芯片還有:外部數(shù)據(jù)存儲(chǔ)器(6264)和ADC(AD0809)。另外,,增加4位數(shù)碼管用于信息顯示,,顯示數(shù)據(jù)由4個(gè)鎖存器(74LS373)保存。上述硬件電路既完成一定的功能又是被試驗(yàn)對(duì)象,。系統(tǒng)組成如圖2所示,。

 

系統(tǒng)組成


  
   程序執(zhí)行流程

  
  該系統(tǒng)軟件共由8個(gè)程序模塊組成:指示單片機(jī)重啟動(dòng)的程序模塊;檢查CTC運(yùn)行情況的程序模塊,;串口通訊功能檢查程序模塊,;判斷外RAM內(nèi)容是否改變及讀寫是否出錯(cuò)的程序模塊;判斷內(nèi)RAM內(nèi)容是否改變程序模塊,;檢查A/D轉(zhuǎn)換電路轉(zhuǎn)換誤差是否增大程序模塊,;判斷外中斷足否被誤觸發(fā)程序模塊;顯示E2PROM內(nèi)容是否被改寫的程序模塊,。
  
  系統(tǒng)的工作過程也就是上述8個(gè)程序模塊的運(yùn)行過程,,它們是在執(zhí)行開關(guān)K的控制下順序執(zhí)行的。圖3給出了流程圖,。幾乎每一種效應(yīng)實(shí)驗(yàn)對(duì)應(yīng)一個(gè)程序模塊,。由于硬件損壞故障與軟件運(yùn)行關(guān)系不大,,而且故障現(xiàn)象明顯,無(wú)需專門設(shè)置程序模塊,。重肩動(dòng)效應(yīng)實(shí)驗(yàn)可以工作在除指示單片機(jī)重啟動(dòng)的程序模塊的任一程序模塊,。死機(jī)效應(yīng)實(shí)驗(yàn)可以工作在任一程序模塊,由于故障現(xiàn)象明顯,,無(wú)需檢測(cè)程序,。 故障重現(xiàn)及檢測(cè)的具體實(shí)現(xiàn)不同的故障現(xiàn)象有不同的重現(xiàn)和檢測(cè)方法。由于篇幅有限,,只給出三種故障重現(xiàn)及檢測(cè)的實(shí)現(xiàn)方法,。   外RAM效應(yīng)
  
  這部分實(shí)驗(yàn)包括三部分:一是不進(jìn)行讀寫操作時(shí),檢查外RAM內(nèi)容是否被改寫,;二是檢查讀操作是否出錯(cuò),;三是檢查寫操作是否出錯(cuò)。
  
  第一部分實(shí)驗(yàn)中,,RAM內(nèi)容被改寫是由于RAM芯片被干擾所致,,只需編制檢測(cè)程序。先在RAM的0000H~1FFFH單元寫入同一數(shù)據(jù)("AA"),,然后等待執(zhí)行開關(guān)K的按下,,等待期間進(jìn)行沖擊實(shí)驗(yàn)。沖擊完畢,,讀出RAM內(nèi)容并判斷是否改變,。
  
  第二、三部分實(shí)驗(yàn),,檢查RAM的讀寫操作是否因干擾而出錯(cuò),。讓持續(xù)時(shí)間只有微秒量級(jí)的干擾脈沖去干擾執(zhí)行時(shí)間只有幾個(gè)微秒的讀寫指令,這種事件發(fā)生的概率幾乎為0,。對(duì)于干擾源可以工作在重復(fù)工作方式的情況,,可以使其在重復(fù)工作方式下工作,這無(wú)疑是一種不錯(cuò)的想法,。但是,,由于重復(fù)工作方式的重復(fù)頻率并不能做得很高,最高只能達(dá)到1kHz左右,,所以其效果并不明顯,。最有效的方法是使程序重復(fù)執(zhí)行一條讀或?qū)懼噶睿m然兩次讀或?qū)懼g還有幾條判斷讀或?qū)懭氲臄?shù)據(jù)是否正確的指令,,但兩次讀或?qū)懼g的時(shí)間間隔也只有數(shù)十微秒量級(jí),,這就相當(dāng)于讓讀寫指令等著電磁脈沖來干擾,從而大大提高了被干擾的概率,。
  
  第二,、三部分程序編制開始時(shí),,為了使其更具代表性,對(duì)RAM的所有單元進(jìn)行讀或?qū)?,即先將RAM的0000H~1FFFH單元清0,,然后使程序循環(huán)讀這些單元,或向這些單元循環(huán)寫入數(shù)據(jù)"AA",,并實(shí)時(shí)檢查讀出或?qū)懭氲臄?shù)據(jù)是否正確,。在實(shí)驗(yàn)中發(fā)現(xiàn),第二,、三部分實(shí)驗(yàn)出錯(cuò)的次數(shù),,比第一部分實(shí)驗(yàn)出現(xiàn)的次數(shù)還多。盡管采取了上述循環(huán)等待技術(shù),,但某條指

 

令被干擾的可能性還是很小,。多次實(shí)驗(yàn)不得其解,,后來在讀實(shí)驗(yàn)顯示出錯(cuò)信息時(shí)檢查RAM各單元的內(nèi)容,,發(fā)現(xiàn)每次都有一部分RAM單元的內(nèi)容出錯(cuò),而讀操作出錯(cuò)不可能導(dǎo)致RAM內(nèi)容改變,,因此,,并不是或不全是讀寫操作出錯(cuò),而是由于RAM內(nèi)容被改寫后,,誤判為讀或?qū)懗鲥e(cuò),。解決這一問題的方法是,使讀寫操作只對(duì)某一一固定的RAM單元進(jìn)行,,由于一個(gè)單元被改寫的概率是所有單元被改寫概率的l/2,,這就大大降低了誤警概率。
  
  串口SIO效應(yīng)

  
  串口SIO效應(yīng)實(shí)驗(yàn)主要是看串口通訊是否出錯(cuò),。要觀察到這種故障現(xiàn)象,,就必須讓單片機(jī)運(yùn)行串口通訊程序。由于51型單片機(jī)只有一個(gè)串口,,而要使其進(jìn)行通訊,,最少需要兩個(gè)串口,這就至少需要有兩套單片機(jī)系統(tǒng),,這將使設(shè)備和實(shí)驗(yàn)復(fù)雜化,。在認(rèn)真研究串口工作原理后,終于找到了只用一個(gè)單片機(jī)模擬串口通訊的方案:把CPU的TXD和RXD短接,,將TXD端發(fā)出的數(shù)據(jù)直接送入RXD進(jìn)行接收,,使單片機(jī)工作于自發(fā)自收狀態(tài),通過檢查接收與發(fā)送的數(shù)據(jù)是否相等判斷通訊是否正常,。當(dāng)然,,仍需采用循環(huán)等待技術(shù),,使通訊循環(huán)進(jìn)行,當(dāng)運(yùn)行正常時(shí),,在P1.1口產(chǎn)生脈沖信號(hào),,使紅色LED亮。如果通汛出現(xiàn)異常,,數(shù)碼管將顯示出錯(cuò)信息,,并將LED熄滅。
  
  定時(shí)器CTC效應(yīng)

  
  為使CTC工作失誤故障重現(xiàn),,可在主程序中加入允許CTC中斷的指令,,使程序運(yùn)行時(shí),CTC一直在工作,,等待電磁脈沖來干擾,。 定時(shí)器采用CPU內(nèi)部定時(shí)器0,工作方式為方式1,。編寫CTC0的中斷子程序,,與軟件計(jì)數(shù)器R0配合,在P1.1口產(chǎn)生一個(gè)方波信號(hào),,驅(qū)動(dòng)LED閃亮,。主程序等待K按下指令,等待期間進(jìn)行干擾實(shí)驗(yàn),。如果LED閃亮異常,,表明CTC工作不正常。以下為定時(shí)器0的中斷子程序:
 

 

中斷子程序


  
  實(shí)驗(yàn)結(jié)果
  
  在設(shè)計(jì)該單片機(jī)系統(tǒng)以前,,曾用一單片機(jī)最小應(yīng)用系統(tǒng)做效應(yīng)實(shí)驗(yàn),,結(jié)果只能觀察到死機(jī)現(xiàn)象。而將該系統(tǒng)用于效應(yīng)實(shí)驗(yàn)后,,觀察到了硬件損壞,、A/D轉(zhuǎn)換誤差增大、內(nèi)存數(shù)據(jù)改變,、程序跳轉(zhuǎn),、死機(jī)、CTC工作失誤,、串口通訊出錯(cuò)和程序存儲(chǔ)器E2PROM內(nèi)容被改寫等多種故障現(xiàn)象,。通過大量、反復(fù)地實(shí)驗(yàn),,測(cè)出了各種故障出現(xiàn)的閾值,,分析了故障出現(xiàn)的原因。
 

干擾波形


  
  圖4是示波器記錄下的串口RXD引腳上的正常信號(hào)和通訊出錯(cuò)時(shí)的干擾波形,。圖4表明,,RXD上有很強(qiáng)的干擾信號(hào),,而且低電平被展寬了3~4倍。根據(jù)實(shí)驗(yàn)數(shù)據(jù)及串口工作原理,,得出申行通訊出錯(cuò)的原因有兩個(gè):1.干擾使SIO電路工作失誤,,如串口控制寄存器SCON內(nèi)容改變,發(fā)送或接收SBUF內(nèi)容改變等,,這些都可能引起接收數(shù)據(jù)和發(fā)送數(shù)據(jù)不符,,從而使通訊出錯(cuò);2.RXD線上的干擾信號(hào)使串行數(shù)據(jù)發(fā)生混亂,,從而使接收數(shù)據(jù)出錯(cuò),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。