馮海杰 萬今明 范凌云
(珠海格力電器股份有限公司 廣東珠海 519070)
隨著家電行業(yè)的蓬勃發(fā)展,帶有自動控制功能的控制器得以廣泛地應(yīng)用,嵌入式軟件除了完成規(guī)定的功能,越來越多的同時承擔(dān)安全防護(hù)的功能。相比于硬件保護(hù)(如電機(jī)過流保護(hù)器、壓縮機(jī)過載保護(hù)器),越來越多的保護(hù)完全依賴于軟件來實現(xiàn),軟件的可靠與否關(guān)系著整機(jī)的安全和可靠。
目前變頻空調(diào)器控制越來越復(fù)雜,一般說來空調(diào)內(nèi)機(jī)和外機(jī)都會有獨立的芯片,甚至于某些主板上不止兩個芯片。主要涉及電氣/電子/可編程電子系統(tǒng)(E/E/PES),即嵌入式微控制器MCU(如NEC芯片、東芝芯片、ARM內(nèi)核芯片)、數(shù)字信號處理DSP(如德州儀器TMS320F28XX芯片)等;另一方面成本壓力也越來越大。如何既實現(xiàn)整體空調(diào)的安全可靠,同時又減輕成本壓力,軟件安全評估應(yīng)運而生。國際電工委員會(IEC)、美國保險商實驗室(UL)都對軟件安全有相應(yīng)的要求,本文結(jié)合一款空調(diào)和兩個標(biāo)準(zhǔn)的要求,介紹一款B類軟件在變頻空調(diào)上的應(yīng)用。
2.1 軟件評估和軟件安全分類的定義
軟件評估是一個發(fā)現(xiàn)軟件系統(tǒng)故障/錯誤的過程,進(jìn)而評價軟件系統(tǒng)的可靠性。其主要考核可編程電子系統(tǒng)(PES)是否具有相關(guān)保護(hù)性的功能,這些功能是否可靠,失效后可能帶來的危害等等。
B類軟件:含有代碼的軟件,用于防止其具有與非軟件故障而引起的危險。
C類軟件:含有代碼的軟件,用于防止沒有使用其他保護(hù)裝置時出現(xiàn)的危險。
2.2 軟件評估的意義
(1)軟件評估是安全認(rèn)證不可缺少的部分;
(2)軟件評估可以為家電產(chǎn)品的制造商在保證產(chǎn)品安全的情況下節(jié)省成本;
(3)軟件評估對于家電行業(yè)的發(fā)展具有積極推動意義。
2.3 軟件評估的豁免
并不是所有的使用電子控制器的家電產(chǎn)品都要進(jìn)行軟件評估,關(guān)鍵要看器具是否具有保護(hù)性電子電路,并且保護(hù)性電子電路是否使用了軟件:
2.3.1 IEC(EN、GB)[1]認(rèn)證方面
如圖1所示,只有在延著紅色箭頭方向才需要進(jìn)行軟件評估,而目前我們的變頻空調(diào)器在第二從“非正常”測試之后均實現(xiàn)了“硬件動作”,因此無需進(jìn)行軟件評估。
2.3.2 UL(ETL)[2]認(rèn)證方面

2011年10月14日修訂2014年10月14日生效的《UL 1995 Heating and Cooling Equipment制熱和制冷設(shè)備》第4版對電子電路的評估進(jìn)行了更為嚴(yán)格的要求,從中我們獲得如圖2信息,只有在延著紅色箭頭方向才需要進(jìn)行軟件評估,而目前我們的變頻空調(diào)器的壓縮機(jī)、風(fēng)機(jī)均均實現(xiàn)了硬件防護(hù),如“過載保護(hù)器”、“集成的過載保護(hù)裝置”,或進(jìn)行《UL 508C Power Conversion Equipment功率轉(zhuǎn)換設(shè)備》的安全認(rèn)證,因此也無需進(jìn)行軟件評估。
2.3.3 目前國內(nèi)變頻空調(diào)器安全控制部分
從安全認(rèn)證及自動控制理論角度出發(fā),變頻空調(diào)器其實就是一個控制器控制馬達(dá)的簡單過程。
如圖3所示,正常情況下,變頻控制器的“功能電子電路”控制“壓縮機(jī)、風(fēng)機(jī)”正常運轉(zhuǎn),當(dāng)“壓縮機(jī)、風(fēng)機(jī)”產(chǎn)生任意安全危險(堵轉(zhuǎn)、溫升、缺相、過載)時,“保護(hù)電子電路”將有效控制產(chǎn)生的相關(guān)安全危險。惡劣情況下,當(dāng)“保護(hù)電子電路”失效時,“硬件保護(hù)”也將防止危險的進(jìn)一步發(fā)生,從而保障器具不會對人及周圍的環(huán)境產(chǎn)生危害。
3.1 軟件可靠性來源
從以上2.1中對“軟件評估”的定義看出,它將評價軟件系統(tǒng)的可靠性。這里的可靠性包含兩個方面的內(nèi)容:
(1)軟件系統(tǒng)所控制的家電整機(jī)對使用者、環(huán)境的安全;
(2)軟件控制器本身在正常使用中的故障/錯誤概率。
以上可靠性內(nèi)容①,在任何“非正常”情況下最終“硬件保護(hù)”都會保證產(chǎn)品對使用者、環(huán)境的安全,但可靠性內(nèi)容②則可以通過“軟件評估”采取的一些措施避免軟件控制器本身在正常使用中的故障/錯誤,這個就是對控制器軟件可靠性水平的提升。
3.2 軟件評估的程序和資料要求
“軟件評估”的過程一般以“培訓(xùn)”的方式進(jìn)行,主要有3個階段:
(1)產(chǎn)品風(fēng)險分析階段,需要認(rèn)證工程師+產(chǎn)品工程師+安規(guī)工程師;
(2)硬件線路可靠性評估階段,需要認(rèn)證工程師+電子硬件開發(fā)工程師;
(3)軟件設(shè)計評價階段,需要認(rèn)證工程師+軟件開發(fā)工程師。
以上三階段中需要提高眾多資料,這里列舉之:
① 軟件說明書(接口、界面、功能、模塊、出錯、版本、安全保護(hù)實現(xiàn));
② 電路圖(硬件架構(gòu));
③ 系統(tǒng)危險分析、軟件如何保護(hù)的介紹;
④ 流程圖;
⑤ 軟件架構(gòu)(數(shù)據(jù)存儲、流向規(guī)定);
⑥ 中斷處理;
⑦ 軟件更新說明;
⑧ 其它。
“軟件評估”中主要評估措施是否可以有效的預(yù)防“微電子失效模式”的出現(xiàn),而“微電子失效模式”在電子電路方面主要有以下兩種形式故障/錯誤[8]:
(1)d.c.故障模式(d.c. fault model)——包含有信號線間短路的一種粘著性故障形式。它屬于電路門級的永久故障模式,是由數(shù)字邏輯電路中的硬件缺陷(如短路、開路等),引起邏輯器件的邏輯故障,迫使硬件信息中的某一位或幾位恒為1或0;
(2)粘著性故障模式(stuck-at fault model)——呈現(xiàn)開路或不變的信號水平的故障模式。它屬于晶體管開關(guān)級的故障,表現(xiàn)為某個晶體管開關(guān)永久導(dǎo)通(常閉故障)或永久斷開(常開故障),通常有“粘開(stuck open)”、“互連的短路(stuck at 1)”、“互連的斷路(stuck at 0)”。
為了通過預(yù)防以上兩種類型的故障模式,通過“微電子失效模式”的相關(guān)測試,變頻空調(diào)軟、硬件件系統(tǒng)必須采取監(jiān)控措施以確保安全。目前各芯片廠家(FREESCALE[9]、NEC[10]、MICROCHIP[11]、ST[12]等)都有針對IEC/UL60730的軟件策略,以下舉例說明:

(1)CPU測試,包含寄存器,指令、譯碼與執(zhí)行,程序計數(shù)器,尋址,數(shù)據(jù)路徑指令譯碼,一般策略是功能測試或用靜態(tài)存儲器測試或帶有冗余的字保護(hù)周期自檢,以下以Microchip對寄存器的功能測試為例說明,具體方法如下:
1)在執(zhí)行此程序之前,應(yīng)將需要測試的CPU寄存器內(nèi)容存入堆棧;
2)首先向需要測試的寄存器依次寫入“0x5555”和“0xAAAA”,然后再讀取寄存器內(nèi)容來進(jìn)行驗證;
3)果返回值與先前存入的值不匹配,那么測試會返回一個錯誤代碼;
4)不保存返回錯誤代碼的寄存器(W0)的內(nèi)容,一旦測試完成,就恢復(fù)所有其他CPU寄存器的內(nèi)容。
(2)中斷處理與執(zhí)行測試:中斷是指處理器在執(zhí)行正常工作的期間,由于某種隨機(jī)發(fā)生的外部事件而使其暫停執(zhí)行當(dāng)前程序,轉(zhuǎn)而執(zhí)行另外一段程序,來做些必要的處理,以滿足突發(fā)狀況,完成后再返回繼續(xù)執(zhí)行原來的程序。對于B級軟件可靠性安全評估來說,我們只要知道中斷是否經(jīng)常發(fā)生。從而對其進(jìn)行相應(yīng)處理。測試中,我們必須在中斷測試函數(shù)內(nèi)設(shè)計一個專門的計數(shù)器來指出中斷在單位時間內(nèi)發(fā)生的次數(shù),通過單位時間對中斷次數(shù)的收集來判斷其次數(shù)是否在預(yù)先定義的范圍之內(nèi)(每收集判斷一次計數(shù)器就清零),來判定程序的中斷是否發(fā)生異常。
(3)時鐘測試:MCU所完成的全部操作都要在時鐘信號嚴(yán)格控制下有節(jié)律地進(jìn)行,所以時鐘的可靠與否關(guān)系到機(jī)組的安全。B級軟件可靠性安全評估來說時鐘的測試,我們只要知道中斷是否驗證系統(tǒng)時鐘的可靠性(即系統(tǒng)時鐘不應(yīng)太快也不應(yīng)太慢),從而對其進(jìn)行相應(yīng)處理。通常的策略是在控制器的主芯片增加一組冗余晶振電路,定期的利用冗余晶振對主晶振的頻率或周期進(jìn)行比對,偏差在合理的范圍內(nèi)即認(rèn)為機(jī)組經(jīng)振可靠。
(4)貯存器測試,包含不可變貯存器,可變貯存器,尋址:對不可變存儲器要求:對所有一位的故障進(jìn)行檢測。可接受措施有:周期修改的檢查和/或多重檢查和;帶有一位冗余的字保護(hù);對可變存儲器要求:對DC故障進(jìn)行檢測。可接受措施有:周期靜態(tài)貯存器試驗;或有一位冗余的字保護(hù);尋址(與可變和不可變貯存器相關(guān)的)要求:對持續(xù)的DC故障進(jìn)行檢測。可接受措施有:帶有包括地址的一位奇偶性的字保護(hù)。
(5)內(nèi)部數(shù)據(jù)路徑,包含數(shù)據(jù)、尋址:對于內(nèi)部數(shù)據(jù)與尋址,僅具有外部存儲器的單片機(jī)才需要進(jìn)行此測試。建議通過增大MCU的存儲容量來避免增加外部存儲器,降低不必要的故障來源。
(6)外部通信測試,包含數(shù)據(jù),尋址,計時:通常在數(shù)據(jù),尋址中采用CRC(循環(huán)冗余校驗)或傳輸冗余較為合適。而在計時中,提供看門狗定時器是一個較好的方法。
(7)輸入/輸出外圍,包含字I/O,A/D和D/A轉(zhuǎn)換器,模擬多重通道:輸入/輸出外圍的要求,都是針對管腳輸入、輸出進(jìn)行測試。基本的方法都是模擬管腳輸入,對比輸出狀態(tài),確保在正常運行中,出現(xiàn)非正常的輸入,輸出非正常的狀態(tài)的影響。
(8)其它:以上對控制器達(dá)到B類安全軟件的要求的一般策略,實際執(zhí)行過程中可以參考芯片廠家的數(shù)據(jù)手冊或使用指引,并結(jié)合IEC/UL60730的要求,增加策略代碼,從而達(dá)到異常時軟件能夠可靠安全的實現(xiàn)保護(hù)或停機(jī),避免危險的發(fā)生。
綜上分析,如果要規(guī)避軟件評估的要求,變頻空調(diào)器可采取了“硬件保護(hù)”措施而無需進(jìn)行復(fù)雜且耗時耗力的“軟件評估”過程;但如果要取消昂貴的硬件保護(hù)降成本又不降低安全可靠性, “軟件評估”中的安全策略對于提高整機(jī)的安全性至關(guān)重要。即使不取消硬件保護(hù),利用B類軟件的要求完善程序,也可以大大的提高空調(diào)系統(tǒng)的安全性。
1] IEC 60335-1 Edition 5.0 2010-05 Household and similar electrical appliances ! Safety !Part 1:General requirements家用和類似用途電器的安全標(biāo)準(zhǔn) 第1部分:通用要求
[2] UL 1995 Fourth Edition Heating and Cooling Equipment制熱和制冷設(shè)備
[3] UL 991 Tests for Safety-Related Controls Employing Solid State Devices用于固定裝置安全相關(guān)控制部分的測試
[4] UL 1998 Software in Programmable Components可編程元器件的軟件
[5] UL 60730-1 Automatic Electrical Controls for Household and Similar Use -Part 1 General Requirements家用和類似用途電自動控制器 第1部分:通用要求
[6] UL 60730-2-9 Automatic Electrical Controls for Household and Similar Use - Part 2-9: Particular Requirements for Temperature Sensing Controls家用和類似用途電自動控制器 第2部分:對溫度變化敏感控制部分的特殊要求
[7] UL 508C Power Conversion Equipment功率轉(zhuǎn)換設(shè)備
[8] GB 14536.1-2008/IEC 60730-1:2003(Ed 3.1) 家用和類似用途電自動控制器 第一部分.通用要求
[9] Industrial Safety starts with IEC/UL60730 Standards FTF-ENT-F0714 Dulgald Campbell, Donnie Garcia FREESCALE 2010.6
[10] Application Note IEC60730 Class B Support for certification NEC 2007.4
[11] AN1229 PIC MCU和dsPIC DSC的B類安全軟件庫Veena Kudva Microchip Technology Inc.
[12] AN3181 Application note Guidelines for obtainning IEC60335 Class B certification in an STM8 application