<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 如何用低成本的ARM Cortex-M微控制器讓家電變得更安全

          如何用低成本的ARM Cortex-M微控制器讓家電變得更安全

          作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
            自2007年起,家電廠商的所有新設(shè)計必須遵守IEC60335安全標(biāo)準(zhǔn)。為確保家電設(shè)備安全可靠,特別是設(shè)備故障不能威脅用戶的人身安全,這套新標(biāo)準(zhǔn)涉及十分廣泛的內(nèi)容,從機(jī)械系統(tǒng)到嵌入電子元器件均有明確規(guī)定。

            電子部分參照另一個標(biāo)準(zhǔn),即適用于各種應(yīng)用領(lǐng)域的IEC60730自動電子控制標(biāo)準(zhǔn)。對于嵌入式系統(tǒng)開發(fā)人員,附件H對于嵌入式系統(tǒng)開發(fā)人員尤為重要,因為該附件是關(guān)于可編程器件。白色家電通常使用多個微控制器:一個微控制器負(fù)責(zé)管理控制臺,另一個管理閥門和電機(jī)控制。

          本文引用地址:http://www.ex-cimer.com/article/201611/323113.htm

            根據(jù)設(shè)備故障導(dǎo)致的危險程度,該標(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(寄存器和程序計數(shù)器)、中斷(處理和執(zhí)行)和時鐘頻率,檢驗易失性存儲器(RAM) 、非易失性存儲器(閃存和 EEPROM)、外部通信以及外設(shè)。

            這些檢測均在微控制器引導(dǎo)過程中甚至在系統(tǒng)執(zhí)行代碼前完成,主要原因是RAM測試具有‘破壞性’,可導(dǎo)致初始化的變量損壞。

            在RAM檢測中,標(biāo)準(zhǔn)要求B類設(shè)備定期做單一位DC故障檢測(如嵌入存儲器固定故障或耦合故障)。因為多數(shù)入門級微控制器的SRAM無校驗位,所以該檢測必須由軟件來完成。March算法通過限定數(shù)量的測試來發(fā)現(xiàn)這些故障,March C測試最適合B類(使用10N次測試,N為被測試存儲地址的數(shù)量),但是March X(6N次測試)在某些特定情況也被測試機(jī)構(gòu)接受。測試完成后,RAM存儲器內(nèi)容被清除(因此,又稱為‘破壞性測試’)。

            復(fù)位后執(zhí)行March測試不會產(chǎn)生特別的問題。除略微降低開機(jī)速度外,沒有什么實際缺點(diǎn),因為嵌入式SRAM很小,開機(jī)速度降低甚至都不會被注意到。

            相反,如果在運(yùn)行期間重復(fù)這個測試,可能會產(chǎn)生很大的問題。首先,測試必須透明:應(yīng)用無需特定的協(xié)議即可處理RAM,好像沒有測試一樣。實際而言,這增加了下列條件:

            · 測試必須是一個中斷處理程序(ISR),且給予最高的處理優(yōu)先級,可禁止應(yīng)用程序在測試過程中訪問數(shù)據(jù)。

            · 必須配備緩存,以便提前備份被檢驗的RAM內(nèi)容,最后在應(yīng)用任務(wù)重新運(yùn)行前恢復(fù)RAM內(nèi)容。顯然,也必須定檢驗證緩存。

            其次,應(yīng)用任務(wù)暫停時間不宜過長。該測試通常分為若干個小測試,以限制占用頂層任務(wù)的時間。一次測試的地址不得少于3個連續(xù)地址(這是耦合故障測試覆蓋率的硬性要求),這表示不少于30次連續(xù)的March C算法讀寫操作。

            雖然實際應(yīng)用證明該解決方案效果不錯,而且在業(yè)界十分流行,但還是存在不少的缺點(diǎn)。

            我們先從軟件工程角度剖析這些問題。結(jié)構(gòu)化編程的優(yōu)點(diǎn)略過,只分析相關(guān)的局限性問題:

            · 封裝問題:C模塊必須將部分內(nèi)部變量提高至全局變量,不再接受編譯器參照跨模塊訪問進(jìn)行的完整校驗。

            · 低任務(wù)隔離度和低模塊化:測試對每個安全關(guān)鍵的軟件模塊強(qiáng)制進(jìn)行訪問測試,使增加新功能變得更加復(fù)雜。

            如果將數(shù)據(jù)損壞的機(jī)率與讀寫次數(shù)聯(lián)系在一起,該解決方案的數(shù)據(jù)損壞風(fēng)險是比較高的。雖然逆向冗余存儲安全關(guān)鍵變量可降低風(fēng)險,但同時也會擴(kuò)大存儲器B類測試的容量。

            從微控制器資源角度看,測試代碼占用ROM和RAM空間,以及CPU帶寬:除正常處理任務(wù)外,如果內(nèi)核臨時無法吸納測試負(fù)荷,就必須在家電運(yùn)行關(guān)鍵階段終止測試。

            最后,運(yùn)行時RAM校驗會影響實時響應(yīng)性(可能延遲甚至?xí)和F渌袛嗵幚沓绦颍?,并可能與低延時或緊急任務(wù)要求沖突。測試程序的代碼長度無法最小化:耗合故障測試對被測連續(xù)存儲地址的數(shù)量有下限要求。如果軟件必須管理地址解擾,使其符合存儲器物理布局,則復(fù)雜度更高。圖1所示是軟件如何在運(yùn)行時處理部分RAM測試。

            IEC60730標(biāo)準(zhǔn)另提供一個由硬件校驗位組成的解決方案。雖然這是一個標(biāo)準(zhǔn)的DRAM存儲器流程,但是很少用于通用微控制器。不過,先進(jìn)的芯片制程節(jié)點(diǎn)使得該方法更具成本效益。

            硬件測試解決方案的本質(zhì)是在每個存儲地址增加一個校驗位:存儲器每寫一次,計算一次校驗位,并將校驗位計算值與數(shù)據(jù)存儲在一起。當(dāng)讀取數(shù)據(jù)時,同樣計算校驗值,然后與參考值對比,如圖2所示。如果數(shù)值不同,無論是數(shù)據(jù)損壞還是校驗位損壞,中斷或異常信號線都會置位。處理器內(nèi)核將使用一個專用安全中斷處理程序處理錯誤,并關(guān)閉家電的電源。第二步,內(nèi)核可能重啟應(yīng)用(熱復(fù)位)或停止家電運(yùn)行,同時顯示檢修代碼。

            該解決方案的優(yōu)勢十分明顯。B類RAM校驗變得完全透明:

            · 不影響軟件開發(fā)方法

            · 不必開發(fā)某一個微控制器廠商專用的測試程序,只需開發(fā)一個在任何情況下都會出現(xiàn)的全局故障處理函數(shù)

            · 無需專用的RAM分區(qū)和鏈接腳本

            · 不占用CPU帶寬(校驗不會增加存儲器讀操作延遲)

            · 最優(yōu)的實時性能

            最后一個優(yōu)勢是該解決方案在啟動時無需進(jìn)行完整的RAM校驗,而且在上電復(fù)位后,寄偶校驗立即激活,因此降低了引導(dǎo)時間。

            由于擁有高能效、靜音運(yùn)行、高可靠性的特點(diǎn),無刷電機(jī)被廣泛用于家電,但是需要復(fù)雜的控制算法和專用的PWM外設(shè),需要特別注意故障防護(hù)和安全關(guān)機(jī)。因此,RAM校驗機(jī)制可提高可靠性和響應(yīng)性,不是用軟件管理安全關(guān)閉功能,而是直接向PWM外設(shè)發(fā)送校驗錯誤信號,自動觸發(fā)緊急停機(jī)功能,避免系統(tǒng)時鐘和軟件相關(guān)的延遲。圖3所示框圖描述了一個實用的解決方案。

            還必須注意系統(tǒng)的其它關(guān)鍵參數(shù)。電源監(jiān)控系統(tǒng)可以設(shè)置電壓,如果Vdd 電壓降至預(yù)設(shè)電壓值,系統(tǒng)將發(fā)出一個中斷命令。同樣,時鐘安全系統(tǒng)檢查主時鐘運(yùn)行是否正常,如果出現(xiàn)異常,則發(fā)出一個中斷命令。此外,當(dāng)發(fā)生硬故障、在NMI處理程序內(nèi)部出現(xiàn)錯誤或者在引導(dǎo)過程中發(fā)生總線故障時,Cortex內(nèi)核進(jìn)入鎖保護(hù)時態(tài),在芯片級提供一個狀態(tài)顯示信號。這三個事件以及校驗值合并,產(chǎn)生一個內(nèi)部緊急關(guān)斷信號,信號本身與外部斷路(break)輸入進(jìn)行或運(yùn)算。

            該標(biāo)準(zhǔn)還需要一個防失效時鐘電路。當(dāng)晶振失效時,時鐘安全系統(tǒng)外設(shè)(CSS)可自動將主時鐘切換到內(nèi)部高速振蕩器,從而實現(xiàn)部分防失效功能。此外,還需要一個通過對比外部預(yù)計頻率與內(nèi)部頻率來監(jiān)視外部時鐘的方法。實時時鐘定時器可由LSI (內(nèi)部低速)阻容振蕩器驅(qū)動,以便精確地測量主系統(tǒng)時鐘,發(fā)現(xiàn)晶體副諧波引起的50%的變化。在系統(tǒng)級,這可節(jié)省50/60Hz電網(wǎng)過零檢測電路的成本。

            該標(biāo)準(zhǔn)提出一個獨(dú)立的時隙監(jiān)視方案,防止CPU在程序計數(shù)器故障時失控,這是看門狗定時器的職責(zé),多數(shù)微控制器均內(nèi)置看門狗。但是,標(biāo)準(zhǔn)規(guī)定看門狗必須完全獨(dú)立。因此,意法半導(dǎo)體的32位Cortex-M STM32系列微控制器有兩個看門狗:第一個窗口看門狗使用主時鐘;第二個看門狗使用獨(dú)立的內(nèi)部振蕩器,通過閃存內(nèi)的選項字節(jié)啟動。這種設(shè)計可確保在晶體失效時,無論時鐘電路配置如何,都能確保至少有一個看門狗在運(yùn)行。

            最后,微控制器還內(nèi)置一個32位硬件CRC計算器,可大幅加快閃存內(nèi)容完整性檢查,同時將相關(guān)CPU負(fù)荷(在運(yùn)行時占用的時間)降至可忽略不計的水平。該外設(shè)甚至可以用DMA控制器驅(qū)動。在微控制器運(yùn)行期間,閃存數(shù)據(jù)完整性檢查可在后臺進(jìn)行。

            硬件校驗長期以來只用于計算機(jī)DRAM模塊和高可靠性系統(tǒng)。該方法被引進(jìn)嵌入式市場的通用微控制器,如基于Cortex-M0的STM32F0x產(chǎn)品,隨著系統(tǒng)監(jiān)控和安全功能數(shù)量日益增加,該方案可簡化產(chǎn)品認(rèn)證、安全開發(fā)的執(zhí)行,最重要一點(diǎn)是使家電變得更安全。



          關(guān)鍵詞: ARMCortex-M微控制

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();