如何用低成本ARM Cortex-M微控制器讓家電變得更安全
自2007年起,家電廠商的所有新設(shè)計(jì)必須遵守IEC60335安全標(biāo)準(zhǔn)。為確保家電設(shè)備安全可靠,特別是設(shè)備故障不能威脅用戶的人身安全,這套新標(biāo)準(zhǔn)涉及十分廣泛的內(nèi)容,從機(jī)械系統(tǒng)到嵌入電子元器件均有明確規(guī)定。
本文引用地址:http://www.ex-cimer.com/article/170481.htm電子部分參照另一個(gè)標(biāo)準(zhǔn),即適用于各種應(yīng)用領(lǐng)域的IEC60730自動(dòng)電子控制標(biāo)準(zhǔn)。對于嵌入式系統(tǒng)開發(fā)人員,附件H對于嵌入式系統(tǒng)開發(fā)人員尤為重要,因?yàn)樵摳郊顷P(guān)于可編程器件。白色家電通常使用多個(gè)微控制器:一個(gè)微控制器負(fù)責(zé)管理控制臺(tái),另一個(gè)管理閥門和電機(jī)控制。
根據(jù)設(shè)備故障導(dǎo)致的危險(xiǎn)程度,該標(biāo)準(zhǔn)將軟件分為A、B、C三類。如果家電安全不依靠軟件,則該家電屬于A類,如室內(nèi)溫控器或照明控制器。相反,如果軟件用于防止安全隱患,如電子點(diǎn)火燃?xì)庠顨w為C類。本文不探討C類。電子控制系統(tǒng)防止不安全操作的家電多數(shù)屬于B類,如洗衣機(jī),其安全隱患與電控門鎖或電機(jī)熱關(guān)斷有關(guān)。
IEC60730附件H的表格 H.11.12.7 列出了B類和C類軟件需測試的微控制器元器件、需檢測的故障和接受的安全措施,檢測內(nèi)容包括監(jiān)視CPU(寄存器和程序計(jì)數(shù)器)、中斷(處理和執(zhí)行)和時(shí)鐘頻率,檢驗(yàn)易失性存儲(chǔ)器(RAM) 、非易失性存儲(chǔ)器(閃存和 EEPROM)、外部通信以及外設(shè)。
這些檢測均在微控制器引導(dǎo)過程中甚至在系統(tǒng)執(zhí)行代碼前完成,主要原因是RAM測試具有‘破壞性’,可導(dǎo)致初始化的變量損壞。
在RAM檢測中,標(biāo)準(zhǔn)要求B類設(shè)備定期做單一位DC故障檢測(如嵌入存儲(chǔ)器固定故障或耦合故障)。因?yàn)槎鄶?shù)入門級(jí)微控制器的SRAM無校驗(yàn)位,所以該檢測必須由軟件來完成。March算法通過限定數(shù)量的測試來發(fā)現(xiàn)這些故障,March C測試最適合B類(使用10N次測試,N為被測試存儲(chǔ)地址的數(shù)量),但是March X(6N次測試)在某些特定情況也被測試機(jī)構(gòu)接受。測試完成后,RAM存儲(chǔ)器內(nèi)容被清除(因此,又稱為‘破壞性測試’)。
復(fù)位后執(zhí)行March測試不會(huì)產(chǎn)生特別的問題。除略微降低開機(jī)速度外,沒有什么實(shí)際缺點(diǎn),因?yàn)榍度胧絊RAM很小,開機(jī)速度降低甚至都不會(huì)被注意到。
相反,如果在運(yùn)行期間重復(fù)這個(gè)測試,可能會(huì)產(chǎn)生很大的問題。首先,測試必須透明:應(yīng)用無需特定的協(xié)議即可處理RAM,好像沒有測試一樣。實(shí)際而言,這增加了下列條件:
· 測試必須是一個(gè)中斷處理程序(ISR),且給予最高的處理優(yōu)先級(jí),可禁止應(yīng)用程序在測試過程中訪問數(shù)據(jù)。
· 必須配備緩存,以便提前備份被檢驗(yàn)的RAM內(nèi)容,最后在應(yīng)用任務(wù)重新運(yùn)行前恢復(fù)RAM內(nèi)容。顯然,也必須定檢驗(yàn)證緩存。
其次,應(yīng)用任務(wù)暫停時(shí)間不宜過長。該測試通常分為若干個(gè)小測試,以限制占用頂層任務(wù)的時(shí)間。一次測試的地址不得少于3個(gè)連續(xù)地址(這是耦合故障測試覆蓋率的硬性要求),這表示不少于30次連續(xù)的March C算法讀寫操作。
雖然實(shí)際應(yīng)用證明該解決方案效果不錯(cuò),而且在業(yè)界十分流行,但還是存在不少的缺點(diǎn)。
我們先從軟件工程角度剖析這些問題。結(jié)構(gòu)化編程的優(yōu)點(diǎn)略過,只分析相關(guān)的局限性問題:
· 封裝問題:C模塊必須將部分內(nèi)部變量提高至全局變量,不再接受編譯器參照跨模塊訪問進(jìn)行的完整校驗(yàn)。
· 低任務(wù)隔離度和低模塊化:測試對每個(gè)安全關(guān)鍵的軟件模塊強(qiáng)制進(jìn)行訪問測試,使增加新功能變得更加復(fù)雜。
光電開關(guān)相關(guān)文章:光電開關(guān)原理
評(píng)論