洪偉鴻 鄧天軍
(廣東美的暖通設備有限公司,廣東 佛山 528311)
淺談微電子故障校驗
洪偉鴻 鄧天軍
(廣東美的暖通設備有限公司,廣東 佛山 528311)
本文詳細介紹了軟件安全認證中微電子故障校驗原理,并舉例說明微電子故障校驗的方法,提升家用電器安全性能。
軟件安全認證;IEC60730;微電子故障;微控制器MCU
微電子故障校驗主要是針對微控制器MCU本身內(nèi)部微電子故障的校驗或檢測,包括:RAM,ROM,Stack,register,A/D,interrupt,clock等校驗,但微控制器出現(xiàn)了微電子故障時,最有效的操作是將微控制器復位,關閉有可能造成人員傷害的器件。下面以NEC單片機為例,對微電故障校驗做一個詳細的說明
1.1 RAM校驗。其一,在上電是對整個RAM區(qū)域進行校驗。一是將RAM分為3個區(qū)域:0xfb00~0fcff,0xfd00~0xfe1f,0xfe20~0xfedf。二是分別對這3個區(qū)域進行校驗,需要注意的是:由于我們用到的堆棧是在0xfd00~0xfe1f這個區(qū)域,而校驗的過程中單片機又需要使用堆棧區(qū),所以在校驗這個區(qū)域的之前,需要將堆棧指針重新制定到已經(jīng)校驗合格的區(qū)域上去(例如0xfb00~0fcff),在校驗完該區(qū)域后,重新將堆棧指針恢復為0xfe20,再進行第三區(qū)域(0xfe20~0xfedf)的校驗。三是校驗的步驟如下:①將校驗區(qū)域的RAM清零。②由低地址開始,比較RAM是否為0,如果是,將RAM改寫為0xffff,繼續(xù)下一單元的校驗,否則報錯。③由低地址開始,比較RAM是否為0xffff,如果是,將RAM改寫為0x0,繼續(xù)下一單元的校驗,否則報錯。④由低地址開始,比較RAM是否為0,如果是,將RAM改寫為0xaaaa,繼續(xù)下一單元的校驗,否則報錯。⑤由低地址開始,比較RAM是否為0xaaaa,如果是,將RAM改寫為0x5555,繼續(xù)下一單元的校驗,否則報錯。⑥由低地址開始,比較RAM是否為0x5555,如果是,將RAM改寫為0x0,繼續(xù)下一單元的校驗,否則報錯。一旦發(fā)現(xiàn)RAM有錯,單片機復位。其二,在主循環(huán),分次校驗RAM,采用非破壞性的March X校驗,保證在安全時間內(nèi),可以將整個RAM區(qū)域校驗完(目前為9s完成整個RAM區(qū)域校驗)。其三,一旦發(fā)現(xiàn)校驗不合格,則MCU復位。
1.2 ROM校驗。在上電是對整個ROM區(qū)域進行CRC校驗。一是在主循環(huán),分次校驗ROM,保證在安全時間內(nèi),可以將整個ROM區(qū)域校驗完(目前為19s完成整個ROM區(qū)域校驗。二是一旦發(fā)現(xiàn)校驗不合格,則MCU復位。
1.3 Stack校驗。假定堆棧的范圍為0xfd80~0xfe1f,在初始化時,在0xfd70~0xfd7f寫入一串帶CRC16校驗的字符。在主循環(huán)中,周期性的對0xfd70~0xfd7f進行校驗,如果堆棧溢出,則該區(qū)域的信息必定改變,CRC16校驗和將被改變,一旦發(fā)現(xiàn)堆棧溢出,單片機將復位。
1.4 Register校驗。周期性對通用寄存器AX,BC,DE,HL進行校驗,如果校驗不通過,則MCU復位。寄存器校驗的方法可采用如下方法:一是將0xAAAA寫入AX。二是比較AX的值是否為0xAAAA。(3)如果為0xAAAA,則繼續(xù),否則寄存器有故障。四是將0x5555寫入AX。五是比較AX的值是否為0x5555。六是如果為0x5555,則繼續(xù),否則寄存器有故障。七是寄存器BC,DE和HL的校驗方法和AX的一樣。八是認證要求在初始化和主循環(huán)時都要對寄存器進行校驗。
1.5 A/D校驗。其一,確保A/D轉(zhuǎn)換正確。增加一個A/D電路檢測端口的電壓值,正常情況下是在2.5V左右,為了滿足+/-4F的要求(略高于UL+/-5F的要求),我們會一直檢測該電路的電壓,加入電壓不在2.4V~2.6V范圍內(nèi),則代表檢測A/D檢測出現(xiàn)了問題,MCU需要作出相應的保護動作,我們選擇的是復位。其二,確保A/D通道選擇不會出錯。由于大部分微控制器內(nèi)部都只有一個或者兩個A/D轉(zhuǎn)換器,通過選擇不同的A/D通道來讀取不同A/D轉(zhuǎn)換引腳的A/D轉(zhuǎn)換結(jié)果,確保A/D通道選擇正確的最簡單方法就是在每次A/D通道切換后,對A/D通道寄存器在進行一次校驗即可,如果A/D通道寄存器不是我們所希望的值,則表示A/D通道切換出現(xiàn)了問題,微控制器需要作出相應的保護動作
1.6 Interrupt校驗。Interrupt校驗主要是針對定時中斷的校驗,必須確保定時中斷能夠進入:設置一個標志,在進入定時中斷時,將這個標志設為1,利用軟件看門狗的復位功能,在喂狗之前,判斷該標志是否為1,如果不為1,則不進行喂狗,系統(tǒng)在一段時間內(nèi)不喂狗,MCU將復位,流程圖如下:
1.7 Clock。只要能夠確保軟件在半頻和倍頻的情況下,機器不會造成人員傷害,同時在安全時間內(nèi)能夠確保所有safety functions都能夠順利校驗一遍。最常用的辦法有過零檢測,對比內(nèi)置晶振,對比外置RC電路,利用外部通訊等辦法。
當對微控制器MCU的微電子故障進行有效校驗后,即使微控制器MCU內(nèi)部出現(xiàn)問題,微控制器還可以有效的關閉有可能造成危害的器件,使得家電的安全性進一步提高。
[1]王新潔.淺談程控交換機故障排除的方法[J].機械信息,2012(1).
TN407
A
1671-0037(2014)07-82-1
洪偉鴻(1979.1-),本科,研究方向:電機控制。