999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

高壓電容瞬時放電時單片機軟件失效機理

2016-06-06 01:13:04孫國先戴黎紅康興國
探測與控制學報 2016年2期
關鍵詞:單片機

孫國先,戴黎紅,康興國

(1.機電動態控制重點實驗室,陜西 西安 710065;2.西安機電信息技術研究所,陜西 西安 710065)

?

高壓電容瞬時放電時單片機軟件失效機理

孫國先1,2,戴黎紅2,康興國2

(1.機電動態控制重點實驗室,陜西 西安710065;2.西安機電信息技術研究所,陜西 西安710065)

摘要:針對引信電子安全系統在實際工作中存在強電磁干擾,可使單片機出現“復位”、“死機”、RAM數據被改寫的軟件失效現象,研究了高壓電容瞬時放電時電子安全系統中單片機軟件的失效機理。導致單片機軟件失效的主要機理是運算或邏輯錯誤源于RAM數據寄存器內容發生變化。復位源于程序跳飛到非程序區,瞬時故障和死機或死循環源于程序跳飛到程序區。實驗表明,高壓電容瞬時放電時確實會造成數據寄存器內容被修改;復位現象是程序跳飛到非程序區引起的;死循環或死機是因為程序計數器PC跳飛到程序區改寫了指令的執行序列;瞬時故障是程序跳飛到程序區跳過部分指令執行。實驗結果與機理分析一致。

關鍵詞:引信;電子安全系統;單片機;失效機理

0引言

引信電子安全系統需要瞬時大電流脈沖激發沖擊片雷管,要求儲能電容充電至電壓約2 000 V,高壓電容瞬時放電產生強電磁場[1]。但是,遙測彈飛行試驗中要保證周期性返回遙測數據,在高壓電容放電后若單片機失效將導致無法正常返回遙測數據;一種布撒器的多路定時拋撒裝置電子安全系統在應用中要求工作時依次定時輸出多路信號,任何一路輸出都會對后續各路產生強電磁干擾,若單片機失效將導致之后的定時輸出無法正常執行。因此,在高壓電容瞬時放電后依然要保證單片機正常工作。

目前國內外對電磁環境下硬件失效及防護研究已取得顯著成就,提出濾波退耦、硬件冗余、三模表決等防護措施[2]。但是硬件防護措施增加了硬件成本和硬件體積,并且電磁干擾具有隨機性,因此需要采取適當的軟件技術。采用單片機的電子安全系統中共采用三個單片機,其中兩個解保單片機主要功能是接受環境傳感器的輸入信號及控制兩個靜態開關和一個動態開關的動作,另一個單片機完成起爆控制功能。實際使用中,單片機工作在瞬態電磁變化和靜態電磁場干擾環境中,除了永久性硬件損傷外,單片機受干擾會出現“復位”、“死機”、RAM數據被改寫等多種軟件失效現象。本文針對此問題,提出了高壓電容瞬時放電時電子安全系統中單片機軟件的失效機理。

1單片機抗干擾性能及工作原理

1.1單片機抗干擾性能

電子安全系統高壓電容放電時電流在150 ns內從0 A到3 000 A變化,瞬時電磁場峰值強度0.932×104kV/m,輻射源為瞬時大電流,電路阻抗較低,產生的電磁波為低阻抗波,對單片機構成了嚴重威脅[3]。金屬封裝的單片機在上升時間約為10 ns的電磁脈沖閾值達到1 kV/m時開始表現為受到干擾,當脈沖閾值達到45 kV/m時,單片機損壞。且當電流上升速度越快,干擾強度越大,干擾閾值相對較低。參考文獻[4]中對單片機抗電磁干擾性能進行試驗,實驗結果如表1所示。

表1 單片機抗電磁脈沖性能試驗結果

由實驗結果可知峰值為每米千伏量級的脈沖電場足以使單片機工作狀態發生改變,隨著場強增加,單片機從顯示格式出錯直至死機,需要重新啟動才能工作。電磁脈沖場對單片機干擾閾值Eptl>1.25 kV/m,損傷閾值Eptd>45 kV/m。

1.2單片機工作原理

單片機執行一條指令可分為三個階段進行,即取指令—分析指令—執行指令[5]。取指令的任務是:根據程序計數器PC中的值從程序存儲器讀出現行指令,送到指令寄存器。分析指令階段的任務是:將指令寄存器中的指令操作碼取出后進行譯碼,分析其指令性質。如指令要求操作數,則尋找操作數地址并將數據從寄存器取出送到CPU。單片機執行程序的過程實際上就是逐條指令地重復上述操作過程,直至遇到停機指令或循環等待指令。

1.3單片機失效機理

干擾信號對單片機的影響主要表現在以下3個方面[6]:

1)運算或邏輯出現錯誤。在單片機運行時,其輸入/輸出數據、微處理器計算的中間結果、控制程序流程的標志字等,都是存放在數據緩沖區的隨機存貯器(RAM)中。由于RAM的抗干擾能力較差,在干擾信號作用下,有可能使存放在RAM中的數據發生變化。

2)程序跳飛。在干擾信號作用下,機器碼改變時,將可能出現微處理器無法識別的機器碼,致使微處理器無法工作。此外,如果干擾信號改變了控制程序流向的標志字時,也將改變運行程序的執行順序,使單片機的運行程序跳飛,出現死機等問題。

3)損壞單片機芯片。在強電磁干擾作用下,單片機中的一些半導體芯片可能受到損壞,使單片機無法工作。

2電磁干擾導致的單片機失效

采用單片機的電子安全系統實際工作過程中出現“復位”、“死機”、RAM數據被改寫等多種軟件失效現象并未出現單片機芯片損壞現象,因此本文針對單片機軟件失效進行分析。如前所述,單片機軟件失效包括運算或邏輯出現錯誤和程序跳飛兩種情況,現結合前電磁輻射下的環境做具體分析如下。

2.1運算或邏輯錯誤

在電子安全系統中需調用數據寄存器內容進行邏輯控制,并且自檢完成,一級、二級解保完成,串口通信完成都會設置標志位。由于RAM的抗干擾能力較差,在強電磁干擾信號作用下,有可能使存放在RAM中的數據發生變化:一方面,電磁干擾可能直接破壞存儲空間的數據,可能破壞數據的運行過程,最終造成輸出數據錯誤;另一方面,電磁干擾也可能因為判斷數據錯誤而破壞程序的執行序列,造成控制錯誤。若電磁干擾使寄存器內容被改寫會造成數據誤差、改變程序狀態、改變定時器/計數器和串口的工作狀態、控制失靈等。

在電子安全系統中,電磁干擾可能通過變壓器和穩壓電路進入單片機數據存儲器,引起電平翻轉造成數據沖毀。同時干擾可能使電源電壓快速下降到工作電源以下,短暫干擾后,電源電壓恢復,系統重啟,但是RAM區掉電后數據遭到沖毀。此外,在進行讀/寫數據時,數據總線和地址總線也可能在干擾信號作用下發生讀/寫數據錯誤或將數據傳送到錯誤的地址中。因此,運算或邏輯錯誤源于RAM數據寄存器內容發生變化。

2.2程序跳飛

電子安全系統各級解保信號時序要求嚴格,任何時序出錯將導致不能正常解保。電磁干擾造成PC值的改變,將破壞程序的正常運行,改變電子安全系統中開關的動作時序,導致系統錯誤。由于被干擾后的PC值是隨機的,在PC值錯誤引導下,程序跳飛或者進入死循環,系統失去控制。

程序計數器跳飛可能包括跳飛到程序區和FLASH非程序區,跳飛到程序區可能包括兩個方面:一是跳過部分指令或程序段,造成瞬時故障,干擾消失后程序正常執行;二是拆分指令,將操作數當作操作碼執行,造成輸出故障或者死循環。具體分析如下:

1)程序計數器跳飛到程序區

①跳過部分指令或程序段的執行。跳過程序中任何一條有效指令都會危害系統的可靠性。在電子安全系統中解除三級解保需要三個環境信號輸入,如果跳過環境信號輸入采集指令將導致電子安全系統不能正常解保;碰合起爆信號采用外部中斷,如果中斷執行過程中跳過子程序或中斷服務程序的返回指令,將造成堆棧操作錯誤,即沒有完成RET、RETI指令所需要的正常出棧導致程序不能正確返回中斷點,并且遺留在棧頂的兩個字節必然破壞原來正常的出棧順序。

②拆分指令。CPU受干擾后可能將操作數當操作碼執行導致程序狀態錯誤,進入死循環或可能使PC值不斷增大,超出程序運行范圍。在AVR系統中指令都是雙字節和四字節指令,對于雙字節指令或四字節指令,當程序執行完某條指令取操作碼時程序計數器PC跑飛跳轉到另一條指令的取操作數造成錯誤,也可能程序跳轉到另一條指令的非首字節時,將這條指令的后半部分與下一條指令的前半部分作為一條指令來執行例如:ADIW Rd,K。

這條指令功能是將立即數K與Rd寄存器相加送到Rd中去,執行時假設K=03H,Rd為R0則其機器碼為:

第一字節1 0 0 1 0 1 1 0操作碼,第二字節0 0 0 0 0 0 1 1操作數(立即數03H)。

程序計數器PC跳飛到第二字節,直接跳過取操作碼過程,將操作數03H當作操作碼送到CPU譯碼,CPU默認為乘法指令(乘法指令FMULRd,Rr 機器碼:00000011 0ddd1rrr),接下來將下一條程序操作碼當乘法指令的操作數執行,造成死循環或死機。

2)程序計數器跳飛到非程序區

高壓電容瞬時放電時電磁干擾致使機器碼發生變化,導致程序計數器指向FLASH非程序區,無法執行正常的跳轉、返回指令,程序計數器PC指向非程序FLASH地址后,因為沒有返回指令會將整個FLASH非程序區執行結束,最后返回復位0000H處。

綜上所述,復位源于程序跳飛到非程序區;瞬時故障和死機或死循環源于程序跳飛到程序區。

3實驗驗證

為驗證采用單片機的電子安全系統在高壓電容瞬時放電時單片機出現“復位”、“死機”、RAM數據被改寫的軟件失效現象是由數據寄存器內容被改寫和程序計數器PC跳飛引起的,實驗在高壓電容瞬時放電時通過串口讀取數據寄存器內容同時在非程序區開辟數據段輸出高電平進行驗證。具體驗證過程如下。

3.1數據寄存器失效驗證

驗證數據寄存器內容是否被修改方法:試驗中將高壓電容置于距離單片機20~30 mm處,高壓電源給高壓電容充電到1 600 V,設置高壓觸發方式為單次下降沿觸發。編寫程序不間斷地給數據寄存器R20寫入數據11H,并通過串口從計算機COM3輸出R20數據,串口初始化設置輸出數據為2位停止位、8位數據位,無奇偶校驗位。即單片機上電后將每間隔1 ms輸出11H。采用高壓電源給高壓電容充電到1 600 V瞬時放電,通過串口數據判斷數據寄存器內容是否被改寫。如果沒有電磁干擾,程序將始終讀出R20寄存器內容,輸出11H。如果輸出數據不是11H說明數據寄存器R20內容被改寫。在多次試驗后,實驗結果如圖1所示。

圖1 寄存器數據測試圖Fig.1 Test pattern of register data

圖1中,單片機上電后始終輸出11H,但在高壓電容瞬時放電時程序受到強電磁干擾,數據寄存器R20數據出現亂碼,并且亂碼是隨機。在干擾消失后,寄存器R20繼續輸出11H,說明電磁干擾并未對數據寄存器造成永久性硬件損傷,而是數據寄存器數據遭到沖毀,在程序恢復正常執行時,數據寄存器可繼續工作。表明高壓電容瞬時放電時確實會造成數據寄存器內容被修改。

3.2程序計數器失效驗證

從失效機理分析可知程序計數器跳飛包括跳飛到程序區和FLASH非程序區,跳飛到程序區可能包括兩個方面:一是跳過部分指令或程序段,造成瞬時故障,干擾消失后程序正常執行;二是拆分指令,將操作數當作操作碼執行,造成輸出故障或者死循環或死機。

程序跳飛驗證方法如下:試驗中高壓電容置于距離單片機20~30 mm處,高壓電源給高壓電容充電到1 600 V,設置高壓觸發方式為單次下降沿觸發。給單片機燒寫驗證程序,驗證程序為PA0端口循環輸出1 ms方波且不對PB端口使能,而在非程序區開辟$1000、 $1F00、$1FF0 三個數據段(非程序區末地址$1FFF)填入程序使能PB端口使PB4輸出高電平,即程序正常執行將循環輸出1 ms方波并且PB4不會被使能輸出高電平,如果跳飛到非程序區將執行非程序FLASH區并且使能PB4端口必然輸出高電平。驗證程序跳飛過程中不調用任何數據寄存器的數據,防止因為數據寄存器內容被改寫而造成輸出錯誤。驗證結果如下:

1)PC跳飛到非程序區的驗證

如圖2所示,單片機上電后程序正常輸出1 ms方波,在受到瞬時高壓電磁干擾后,PB4端口出現毛刺干擾,產生毛刺是因為電磁在PB4端口產生耦合電壓,耦合電壓消失后,PB4恢復低電平。在恢復低電平680 μs后輸出高電平,說明程序執行到在非程序區開辟$1000、 $1F00、$1FF0的三個數據段的其中一個,程序已經跳飛。但是PA0端口始終輸出1 ms方波,方波并沒有出現錯誤是因為跳到非程序區時間為680 μs(選用8 MHz時鐘,程序運行8KFLASH只需1 ms),而方波輸出時間為1 ms,即在下一個方波到來前單片機已經運行完非程序區并返回0000H實現復位,所以輸出方波不受干擾,但程序確實跳飛到了非程序區,并且復位執行,因此復位現象是程序跳飛到非程序區引起的。

圖2 程序跳飛到非程序區測試圖Fig.2 Test pattern of program ricochet to the blank area

2)PC跳飛到程序區的驗證

如圖3所示,單片機上電后程序正常輸出1 ms方波,在受到瞬時高壓電磁干擾后,輸出方波在高電平周期內跳到低電平,并始終輸出低電平,直到重新上電復位后程序才恢復正常。單片機時鐘設置為內部8 MHz晶振,內部晶振抗干擾性能強,并且重新上電復位后程序恢復正常說明硬件沒有損傷。驗證程序跳飛過程中不調用任何數據寄存器的數據,不會因數據寄存器內容被改寫而造成死循環。非程序區PB4端口未輸出高電平說明在電容放電瞬間程序未跳飛到非程序區。因此造成輸出死循環或死機是因為程序計數器PC跳飛到程序區改寫了指令的執行序列。

如圖4所示,單片機上電后程序正常輸出1 ms方波,在受到瞬時高壓電磁干擾瞬間,輸出方波跳為高電平,干擾消失后程序正常執行。PB4端口出現毛刺干擾,產生毛刺是因為電磁在PB4端口產生耦合電壓,耦合電壓消失后,PB4恢復低電平。驗證程序跳飛過程中不調用任何數據寄存器的數據,即不會因數據寄存器內容被改寫而造成輸出錯誤。干擾到來產生瞬時故障,干擾消失后程序可以正常執行說明在電容放電瞬間程序跳飛到程序區跳過部分指令執行,干擾消失后,程序正常執行。

實驗表明復位現象確實是程序跳飛到非程序區引起的;死循環或死機是因為程序計數器PC跳飛到程序區改寫了指令的執行序列;瞬時故障是程序跳飛到程序區跳過部分指令執行。

圖3 程序死循環輸出測試圖Fig.3 Test pattern of infinite loop program output

圖4 程序跳飛到程序區測試圖Fig.4 Test pattern of programricochet to the program area

4結論

本文分析了在高壓電容瞬時放電時單片機軟件的失效機理。導致單片機軟件失效的主要機理是運算或邏輯錯誤源于RAM數據寄存器內容發生變化;復位源于程序跳飛到非程序區,瞬時故障和死機或死循環源于程序跳飛到程序區。實驗表明,高壓電容瞬時放電時確實會造成數據寄存器內容被修改;復位現象確實是程序跳飛到非程序區引起的;死循環或死機是因為程序計數器PC跳飛到程序區改寫了指令的執行序列;瞬時故障是程序跳飛到程序區跳過部分指令執行。實驗結果與機理分析一致。本文只分析在高壓電容瞬時放電時單片機軟件的失效機理,下一步擬對軟件防護措施進行研究。

參考文獻:

[1]張寶月.電子安全系統強靜電干擾下的單片機防護方法[J].探測與控制學報,2015,37(4):28-31.

[2]潘峰.電磁脈沖對單片機系統的干擾與損傷效應研究[D]. 南京:工程兵工學院, 2001.

[3]任克強,劉暉.提高單片機應用系統可靠性的軟件技術[J].計算機應用研究,2002(6):120-122.

[4]高星.基于虛擬寄存器的控制流錯誤檢測算法[J].宇航學報,2007(1):183-187.

[5]廖清明,鄭健.單片機測控系統電磁干擾及輻射的分析及抑制[J].2006(2):684-686.

[6]楊偉明.單片機軟件抗干擾技術研究[J].科技資訊,2009(9):3-4.

MCU Software Failure Mechanism of High Voltage Capacitor Instantaneous Discharge

SUN Guoxian1,2,DAI Lihong2,KANG Xingguo2

(1. Science and Technology on Electromechanical Dynamic Control Laboratory, Xi’an 710065, China;2.Xi’an Institute of Electromechanical Information Technology, Xi’an 710065, China)

Abstract:Strong electromagnetic interference will cause MCU of ESA software failure, such as “reset”、 “crash”、 RAM data rewrite. An analysis of MCU software failure mechanism of high voltage capacitor instantaneous discharge was proposed. The main software failure mechanism was an arithmetic or logical error resulted from RAM data rewrite; reset result from the program jumped to the blank area, transient fault or infinite loop resulted from program jumping to program area. Experiments showed that the high voltage capacitor instantaneous discharge could indeed cause the data register modified; reset was the result of the program jump to the blank area; infinite loop or crash because of the program counter PC ricocheted to the execution of the program area changed the instruction sequence; transient fault was program ricocheted to skip part of the instruction execution. The experimental results were consistent with the mechanism analysis.

Key words:fuze;ESA;MCU;failure mechanism

中圖分類號:TJ43

文獻標志碼:A

文章編號:1008-1194(2016)02-0023-05

作者簡介:孫國先(1990—),男,山東青島人,碩士研究生,研究方向:電子安全系統。E-mail:617418019@qq.com。

*收稿日期:2015-10-21

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 全部免费毛片免费播放| 久青草免费视频| 亚洲综合在线最大成人| 久久久噜噜噜久久中文字幕色伊伊 | 91精品综合| 手机在线免费毛片| 亚洲人人视频| 亚洲国产亚综合在线区| 国产95在线 | 国产91成人| 高清欧美性猛交XXXX黑人猛交| 免费无码AV片在线观看国产| 日本一区中文字幕最新在线| 国产成人a毛片在线| 制服丝袜一区二区三区在线| 国产毛片不卡| 色综合天天视频在线观看| 多人乱p欧美在线观看| 精品综合久久久久久97超人| av一区二区三区在线观看| 国产97视频在线观看| 亚洲精品无码AV电影在线播放| 美女无遮挡免费视频网站| 精品国产香蕉在线播出| 国产精品无码AV中文| 波多野结衣第一页| 亚洲网综合| 亚洲中文字幕久久精品无码一区| 欧美激情,国产精品| 亚洲一区黄色| 亚洲美女久久| 第一页亚洲| 一区二区三区四区日韩| 91在线视频福利| 日韩小视频在线观看| 不卡视频国产| 国产精品成人第一区| 亚洲国产午夜精华无码福利| 日韩二区三区无| 五月天久久婷婷| 国产在线麻豆波多野结衣| 国产无吗一区二区三区在线欢| 亚洲精品视频在线观看视频| 国产日本欧美在线观看| 成人在线观看不卡| 免费欧美一级| 欧美成人午夜影院| 日韩天堂视频| 九色视频最新网址| 成年片色大黄全免费网站久久| 亚洲精品在线91| 欧美亚洲欧美区| 在线观看视频99| 亚洲无线一二三四区男男| 丁香亚洲综合五月天婷婷| 国产白浆在线| 亚洲色成人www在线观看| 91无码人妻精品一区二区蜜桃| 成人在线视频一区| 精品少妇人妻无码久久| 欧美国产另类| 99热最新在线| 日本久久免费| 国产99视频在线| 欧美成人手机在线观看网址| a级毛片免费看| 中国成人在线视频| aa级毛片毛片免费观看久| 综合人妻久久一区二区精品| 18禁影院亚洲专区| 为你提供最新久久精品久久综合| 极品国产一区二区三区| 国产一区二区影院| 国产凹凸一区在线观看视频| 91无码网站| 亚洲黄网视频| 国产欧美视频综合二区| 热99精品视频| 国产91熟女高潮一区二区| 亚洲天堂网在线播放| 亚洲国产理论片在线播放| 一级黄色欧美|