0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MCU之IEC_60335_CLASSB軟件庫

jf_pJlTbmA9 ? 來源:華芯微特32位MCU ? 作者:華芯微特32位MCU ? 2023-10-25 17:12 ? 次閱讀

IEC(國際電工委員會)是由所有國家電工委員會組成的世界性標準化組織,IEC針對家用電器的正常安全運行制定了安全標準。

IEC60335安全標準里面定義了多種測試和診斷方法,確保面向家用電器的嵌入式控制硬件和軟件的安全運行。IEC60730安全標準主要針對安全和性能、環(huán)境、電能效率及其可再生能力,其標準為硬件及軟件解決方案提供建議。

為此,華芯微特開發(fā)出多款安全特性和軟件開發(fā)包(包括IEC60335安全庫),可幫助大型電器市場的自動化控制制造商滿足IEC60335 CLASSB規(guī)范。

在這里我們以SWM341為例給大家簡單介紹一下在IEC_60335_CLASSB軟件庫。

整體流程

ClassB軟件包程序檢測內容分為兩個主要部分:啟動時的自檢和運行時的周期自檢,MCU在上電的時候會進行復位啟動,在啟動完成以后會進行運行自檢。

wKgZomUDwfCAPJfTAAGud37QhK0265.png

啟動時檢測

CPU寄存器進行自檢操作,如果檢測沒有故障則進行看門狗的自檢,如果有故障則進行故障的處理。看門狗自檢流程與CPU寄存器自檢的流程一致,后面依次會進行FLASH,RAM以及時鐘自檢,啟動自檢完成以后會進入程序的主循環(huán)函數中。

啟動自檢流程如下圖:

wKgaomUDwfGAIheeAAIV0S_a0YQ451.png

CPU啟動時檢測

進行CPU寄存器的相關檢測,主要檢查內核標志、寄存器和堆棧指針等是否正確。如果發(fā)生錯誤,就會調用故障安全處理函數Selftest_fail_handle()。

wKgaomUDwfOAZX2LAAER6SD7u-k442.png

看門狗啟動時檢測

驗證看門狗復位功能是否正常,保證后續(xù)運行中如果因為程序計數器出現非預期異常情況導致程序跑飛時可以通過看門狗復位恢復。測試通過判斷復位狀態(tài)寄存器的復位標識來判斷是否測試成功。

wKgaomUDwfSAb16KAAAM-4Je-uY561.png

時鐘啟動時檢測

啟動階段的時鐘檢測通過內部低速時鐘源(LICK)和系統(tǒng)時鐘的交叉測量結果來判斷。系統(tǒng)時鐘頻率作為基準頻率,采用外部高速時鐘源(HEXT)或者內部高速時鐘源(HICK)。將定時器的時鐘源設置為LICK,systick設置為系統(tǒng)時鐘,運行systick相同時間,兩次timer當前值之間的差值作為測量值與LICK預期的范圍值進行比較。如果測量值超出了LICK預期范圍值,則測試失敗。

wKgZomUDwfaAIK-UAAAX-r3zZ6Q952.png

FLASH啟動時檢測

FLASH自檢是存儲器檢測的一部分, 程序中將FLASH數據用CRC算法計算, 將結果值跟編譯時已存儲在FLASH指定位置的預先計算好的CRC值進行比較。

wKgaomUDwfeAfne8AAECZS23avY147.png

RAM啟動時檢測

RAM自檢是存儲器檢測的一部分,對于支持硬件SRAM奇偶校驗功能的型號,可以開啟RAM校驗功能并且可以跳過該步驟,而對于不支持硬件SRAM奇偶校驗功能的型號,則采用March C算法,用值0x00和0xFF逐字交替填充整個RAM并檢查,填充時可以選擇加擾模式(scramble)或者標準模式(standard),加擾模式基本物理單元是4字,下圖單元格內的編號代表測試填充的順序。

wKgaomUDwfmAWAzaAABRM9MgoIM084.png

RAM采用March C算法測試時分6個步驟,前3個循環(huán)按照地址遞增執(zhí)行,后3個循環(huán)按照地址遞減執(zhí)行。測試步驟如下,如果采用March X算法則省略步驟3和4:

·全部范圍寫0x00,按照地址遞增順序執(zhí)行

·檢測是否全部范圍為0x00,然后全部范圍寫0xFF,按照地址遞增順序執(zhí)行

·檢測是否全部范圍為0xFF,然后全部范圍寫0x00,按照地址遞增順序執(zhí)行

·檢測是否全部范圍為0x00,然后全部范圍寫0xFF,按照地址遞減順序執(zhí)行

·檢測是否全部范圍為0xFF,然后全部范圍寫0x00,按照地址遞減順序執(zhí)行

·檢測是否全部范圍為0x00,按照地址遞減順序執(zhí)行

wKgZomUDwfqAe_dDAAEvayw8Ygc754.png

控制流啟動時檢測

控制流檢測也屬于程序計數器檢測的一部分,啟動階段控制流檢測主要分為了兩個節(jié)點,其中一個檢測節(jié)點是在RAM檢測之前,通過控制流變量值判斷是否前面所有測試項都正確完成,另外一個節(jié)點是在RAM檢測后,主要是運行階段檢測必須操作的流程的配置,比如CRC參考變量初始化、棧溢出pattern設置。

運行時周期檢測

在主循環(huán)中會定期的進行自檢操作,在進行自檢操作的時候會依次進行如下操作:CPU寄存器的自檢、棧自檢、時鐘自檢、FLASH自檢、并設置定時器定時進行RAM自檢,如果在自檢的過程中出現故障則會進行故障的處理。

wKgZomUDwfyAYtylAAGAaISt6TQ036.png

CPU運行時檢測

CPU運行時周期自檢跟啟動時的自檢類似,只是不檢測內核標志和堆棧指針。

wKgaomUDwf2AW_PmAADEA6Vyhuc449.png

看門狗運行時檢測

運行時需要定期喂狗保證系統(tǒng)正常運行, 看門狗的刷新部分放置在每次檢測最后部分。

時鐘運行時檢測

啟動階段的時鐘檢測通過內部低速時鐘源(LICK)和系統(tǒng)時鐘的交叉測量結果來判斷。系統(tǒng)時鐘頻率作為基準頻率,采用外部高速時鐘源(HEXT)或者內部高速時鐘源(HICK)。將定時器的時鐘源設置為LICK,systick設置為系統(tǒng)時鐘,運行systick相同時間,兩次timer當前值之間的差值作為測量值與LICK預期的范圍值進行比較。如果測量值超出了LICK預期范圍值,則測試失敗。

wKgZomUDwf-AWtAFAAHA9XA1qEY003.png

FLASH CRC運行時檢測

運行時進行Flash CRC的自檢,因為檢測范圍不同耗時不同,如果一次計算檢測全部范圍CRC可能耗時過長,影響正常應用部分的執(zhí)行,所以可以根據用戶應用程序大小配置分段CRC計算,當計算到最后一段范圍時,再進行CRC值比較,如果不一致則測試失敗。

wKgaomUDwgGAGPoyAAFIATSYt9s422.png

棧邊界運行時檢測

可驗證尋址和數據路徑測試相關,定義特殊固定值的Magic Pattern數組,放置在棧區(qū)域最底部地址,通過運行中檢測Magic Pattern數組完整性來判斷棧是否溢出。如果原始Pattern被破壞,則表明棧溢出測試失敗,調用故障安全程序。

這一區(qū)域根據設備及應用有不同的配置。用戶必須為堆棧定義足夠的區(qū)域,并保證pattern正確放置。下圖是程序中RAM的簡要分配圖,其中灰色部分是相比較于常規(guī)應用,支持自檢需要額外添加的部分。

wKgZomUDwgKAAj9aAADfSZiNQks517.png

wKgaomUDwgWAAM4DAAFD-cdt0WE647.png

局部RAM運行時檢測

運行時的RAM自檢是在systick中斷函數中進行的。因為運行中不允許破壞應用部分RAM,所以測試只覆蓋分配給CLASS B變量的那部分內存。測試流程方法概要描述如下:

·測試根據systick時基分批次進行,每次測試按照CLASS B部分4個字的區(qū)域偏移,為保障耦合故障覆蓋率,每次測試的實際內存塊還包括測試區(qū)域前后各1個相鄰字,總共6個字。

·首先將待測試內存塊(RAM block)的數據存儲到專門用于測試過程中臨時保存數據的緩沖塊(buffer block)

·然后跟啟動時檢測RAM類似, 對測試內存塊(RAM block)采用March C算法測試,同樣可以選擇加擾模式(scramble)或者標準模式(standard)

·測試完成后將緩沖塊(buffer block)中保存的數據恢復至測試內存塊(RAM block)。

wKgZomUDwgaABqDDAAE0xrHucgE858.png

工程配置

Keil中添加bat文件

wKgaomUDwgiAU0TqAAITpZ2HZIs428.png

添加ini文件

wKgZomUDwgmAUxZTAADb67Z-_Sg333.jpg

分散加載文件配置

wKgaomUDwguAYf__AADpWRm8Whs854.jpg

編譯結果

wKgZomUDwgyAFY4IAADHK4_jAAM005.jpg

運行結果

wKgaomUDwg6AY58QAAEBNX2-wpI067.jpg

以上是本次介紹的IEC_60335_CLASSB軟件庫,如需更多了解SWM芯片信息請聯系華芯微特技術人員。

來源:華芯微特32位MCU

免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16885

    瀏覽量

    349922
  • 寄存器
    +關注

    關注

    31

    文章

    5294

    瀏覽量

    119816
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1354

    瀏覽量

    114444
  • 檢測
    +關注

    關注

    5

    文章

    4413

    瀏覽量

    91305
  • 軟件庫
    +關注

    關注

    0

    文章

    15

    瀏覽量

    7757
收藏 人收藏

    評論

    相關推薦

    極海APM32F030系列MCU通過IEC60730軟件安全認證

    ? 隨著物聯網的飛速發(fā)展,越來越多智能家電走進我們的生活,針對家電產品日益增長的安全功能需求,近日極海APM32F030系列MCU順利通過IEC60730軟件安全認證,并可提供符合IEC603
    的頭像 發(fā)表于 05-26 14:06 ?2788次閱讀
    極海APM32F030系列<b class='flag-5'>MCU</b>通過<b class='flag-5'>IEC</b>60730<b class='flag-5'>軟件</b>安全認證

    IEC60335-1

    IEC60335-1IEC60730 Annex HThe standard applies to electronic controls and controls using software
    發(fā)表于 09-12 10:48

    TUV認證的標準以IEC60335為基礎

    世界各地的家電法規(guī),均以IEC標準IEC60335為基礎。其中,歐洲標準與國際標準最為接近,例如TUV認證。歐洲標準分為兩大部分:第一部分EN60335-1是對家電的綜合要求;第二部分EN60
    發(fā)表于 05-11 15:54

    AN4435_基于STM32系列MCU實現UL_CSA_IEC60730_60335_Class_B安全規(guī)范的設計指南

    本文檔適用于STM32產品全系列,是關于基于STM32實現UL/CSA/IEC60730/60335 Class B安全規(guī)范的應用筆記。通過本文檔和相關X-Cube-ClassB軟件
    發(fā)表于 11-02 18:22

    家電IEC60335-1總標準測試報告

    60335-2-65-2008冷氣機家用和類似用途電器的安全.第2-40部分:電動熱泵、空調器和去濕器的特殊要求IEC 60335-2-40-2006空氣清新機家用和類似電器的安全.第2-101部分
    發(fā)表于 04-16 19:19

    IEC60335 ClassB ST MCU軟件介紹

    IEC60730的附錄H(H.2.22)中對軟件進行了分類A類軟件軟件僅實現產品的功能,不涉及產品的安全控制。比如室用恒溫器的軟件,燈光控
    發(fā)表于 09-12 07:32

    AT32_IEC 60730_CLASSB軟件使用指南

    AT32_IEC 60730_CLASSB軟件使用指南描述了AT32系列的MCU如何執(zhí)行IEC
    發(fā)表于 10-24 06:40

    iec 60335-1:2001

    iec 60335-
    發(fā)表于 09-12 11:18 ?11次下載

    極海APM32F030系列MCU通過IEC 60730軟件安全認證

    隨著物聯網的飛速發(fā)展,越來越多智能家電走進我們的生活,針對家電產品日益增長的安全功能需求,近日極海APM32F030系列MCU順利通過IEC 60730軟件安全認證,并可提供符合IEC
    的頭像 發(fā)表于 05-25 11:50 ?1944次閱讀

    AN4435_基于STM32系列MCU實現UL_CSA_IEC60730_1_60335-1_Class_B安全規(guī)范的設計指南

    AN4435_基于STM32系列MCU實現UL_CSA_IEC60730_1_60335-1_Class_B安全規(guī)范的設計指南
    發(fā)表于 11-21 17:07 ?1次下載
    AN4435_基于STM32系列<b class='flag-5'>MCU</b>實現UL_CSA_<b class='flag-5'>IEC60730_1_60335</b>-1_Class_B安全規(guī)范的設計指南

    AN4435_基于STM32系列MCU實現UL_CSA_IEC60730-1_60335-1_Class_B安全規(guī)范的設計指南

    AN4435_基于STM32系列MCU實現UL_CSA_IEC60730-1_60335-1_Class_B安全規(guī)范的設計指南
    發(fā)表于 11-21 17:07 ?2次下載
    AN4435_基于STM32系列<b class='flag-5'>MCU</b>實現UL_CSA_<b class='flag-5'>IEC60730-1_60335</b>-1_Class_B安全規(guī)范的設計指南

    AN4435_基于STM32系列MCU實現UL_CSA_IEC60730_60335_Class_B安全規(guī)范的設計指南

    AN4435_基于STM32系列MCU實現UL_CSA_IEC60730_60335_Class_B安全規(guī)范的設計指南
    發(fā)表于 11-21 17:07 ?0次下載
    AN4435_基于STM32系列<b class='flag-5'>MCU</b>實現UL_CSA_<b class='flag-5'>IEC60730_60335</b>_Class_B安全規(guī)范的設計指南

    國際電工委員會(IEC)發(fā)布了第7版IEC 60335-2-40

    2022年5月25日, 國際電工委員會(IEC)發(fā)布了第7版IEC 60335-2-40, 家用和類似用途電器的安全第2部分:熱泵、空調器和除濕機的特殊要求;該版本在舊版IEC60335
    的頭像 發(fā)表于 07-20 17:49 ?2089次閱讀
    國際電工委員會(<b class='flag-5'>IEC</b>)發(fā)布了第7版<b class='flag-5'>IEC</b> <b class='flag-5'>60335</b>-2-40

    復旦微MCUIEC60730 Class B軟件

    復旦微MCUIEC60730 Class B軟件
    的頭像 發(fā)表于 09-26 16:58 ?1296次閱讀
    復旦微<b class='flag-5'>MCU</b><b class='flag-5'>之</b><b class='flag-5'>IEC</b>60730 Class B<b class='flag-5'>軟件</b><b class='flag-5'>庫</b>

    極海APM32F003 MCU通過IEC 60730/60335功能安全認證

    近日,極海APM32F003系列工業(yè)級超值型MCU,已順利通過IEC 60730/60335功能安全認證,并可提供符合CLASS B標準的功能安全設計套件,有助于客戶減少認證時間與成本,快速推出穩(wěn)定可靠的終端產品。
    的頭像 發(fā)表于 01-08 18:04 ?841次閱讀
    極海APM32F003 <b class='flag-5'>MCU</b>通過<b class='flag-5'>IEC</b> 60730/<b class='flag-5'>60335</b>功能安全認證