新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 一個準B類微控制器平臺

        一個準B類微控制器平臺

        作者: 時間:2009-02-27 來源:網絡 收藏

        從2007年10月起,為防止家電在出現故障時對人身造成傷害,所有新上市的家電產品都必須符合IEC60335標準,新標準首次啟用了軟件檢測和軟件分類的概念。根據軟件類別(A/B/C),新標準要求在上電時檢測微組件(如CPU寄存器或存儲器),并在運行期間監視這些組件的性能,這類似于工業或醫療設備市場上,按照SIL2/SIL3級標準、IEC61508或UL1998標準對安全至關重要產品件進行的評測。

        本文引用地址:http://www.104case.com/article/167057.htm

        根據設備在發生故障時的危險程度,新標準把檢測軟件分為三個類別。如果家電的安全性與軟件無關,則屬于A類設備。例如,室內溫度調節器或照明控制開關就屬于A類。相反,如果軟件被用于預防特殊的災害,如電子點火燃氣灶的防爆功能,這個軟件就被評定為C類軟件。本文不討論第二種情況,因為這一類別的系統可能需要多個微,這超出了本文的范圍;其次,因為大多數家電的電子控制開關都必須有不安全操作防護功能,這類產品屬于B類。例如,洗衣機的電控門鎖或洗碗機的帶電機過熱檢測功能的泵驅動器就屬于這種情況。

        對于B類待測設備,IEC60335標準讓我們參考另標準IEC60730,因為該標準涵蓋了全部的電子控制開關類產品。該標準的附件H的表H.11.12.7列出了B類和C類軟件需要測試的微組件、待測故障和達標數值。

        通過內1部硬件或利用軟件方法,可以直接進行這些測試過程。意法半導體的基于Cortex-M3內核的32位STM32是一款準B類產品,內置硬件能夠監視CPU的程序計數器中止、異常時鐘頻率和閃存內容完整性。

        該標準提出“獨立時隙監視”概念,以防CPU在PC機發生故障時失控。大多數都內置看門狗定時器。然而,承擔這個責任的看門狗必須是獨立的電路。基于這個原因,STM32有兩個看門狗:第一個看門狗定時器是一個普通的窗式看門狗,時鐘信號來自主時鐘源;第二個看門狗由一個獨立的內部振蕩器驅動,從閃存內的一個可選字節開始運行。這樣設計可確保在晶振發生故障時,不管時鐘電路配置如何,至少有一個看門狗能夠繼續工作。

        圖1是STM32的時鐘電路的簡圖,描述了各種時鐘源及與芯片其它部分的連接方法。


        實時時鐘的信號源可以是內部低速(LSI)阻容振蕩器。通過比較外部預期頻率與時鐘組件要求的內部頻率,這個特性提供了一個監視外部時鐘的方法。在系統級,這個方法可以節省一個50Hz/60Hz交流電源零交叉檢測電路的成本,應用系統啟動雙向晶體管需要這個電路的情況除外。

        最后,STM32還內置一個32位的硬件CRC計算單元,這個特性可以加快閃存數據完整性檢查,并把CPU負荷(CPU在運行期間處理的任務量)降到可以忽略不計的水平。

        如果用硬件方式執行測試程序,大多數測試都需要一個相當大的芯片面積。例如,RAM內存的單一位查錯需要在所有數據字上增加一個奇偶校驗位。STM32微控制器拋棄了這個方案,因為它可能會影響芯片的成本效益,而且,只用軟件就能輕松地實現測試功能。因此,意法半導體為用戶免費提供一個自診斷固件庫,固件庫含有以下檢測用C模塊:CPU寄存器檢測;時鐘監視;RAM功能檢查;ROM校驗合完整性檢查;看門狗自檢和棧區溢出監視(即便標準對此未提出明確要求,這個功能也能提高檢錯的整體覆蓋率)。

        現在討論其中一個檢測模塊,RAM檢測模塊有助于了解B類軟件的限制性要求。這個標準要求定期檢測RAM的DC故障(如停滯或耦合故障)。March C算法能檢測出所有這些錯誤,而且占用通道的數量很有限。不過,為了提高能效,它要求考慮存儲器的物理實現方式。STM32有一個邏輯對物理尋址加擾功能。Cortex-M3內核具有強大的寄存器陣列,無需使用RAM存儲器單元即可在算法中插入擾碼(這項檢測具有破壞性,必須驗證整個存儲器陣列)。作為一項附加要求,這項檢測必須定期進行。如果應用設備通過系統加電然后使用較短的一段時間,則系統引導后的檢測可視為定期測試。相反,如果應用設備保持上電狀態,則必須在運行期間重復檢測,這樣,情況變得更加復雜:RAM測試必須透明,因為測試與應用軟件正在占用的存儲單元有關。測試操作原理如圖2所示。


        固件庫為運行時測試提供一套不同的C函數。必須在優先權最高的中斷例程中執行C函數,為了避免CPU負載過大,影響實時響應性能,固件庫還提供了多個可選特性。用戶可以選擇March C或March X算法。對于有限的覆蓋損耗,這兩種算法的速度略微快一些。在一次測試中的待測存儲單元的數量可以在報頭文件內進行修改,這樣,中斷例程的時長可以微調到幾納秒的水平。

        這個實例證明,像這樣一個固件庫,在開發時間上能給客戶帶來巨大好處。同樣地,還要在封裝過程中做類似的測試(通常是CPU測試,C語言幾乎不準許直接處理內核寄存器和標志信號);隨固件庫一起提供給客戶的針對封裝優化的例程不需要客戶學習Cortex-M3指令集。

        除這些單獨測試外,當新建一個項目時,自診斷固件還提供一個B類軟件參考框架,包括開發工具工作室、修改的矢量表和用于處理A類和B類變量的自定義鏈接器腳本文件。在復位矢量取用后,引導序列立即開始執行,并在應用啟動前完成全部必要的測試(CPU、看門狗、時鐘監視、RAM和閃存測試),引導序列可以原樣重復再用。測試完成后,這個安全引導序列立即返回到編譯器C的啟動入口點,這樣從開發工具的角度看,所有的初始測試都是完全透明的(在數據自動初始化前驗證RAM)。使用一種計數器方法監視程序序列本身,這樣可以驗證是否所有的測試都被執行過。

        固件庫不包括H.11.12.7表中的每一個測試項目。有些只與帶外部存儲器的系統相關(有關數據通道的第五部分)或ASIC/門陣列(有關定制芯片的第9部分)相關。有些檢查與應用有關:關于外部通信接口的第6部分、關于中斷控制的第2部分和關于輸入輸出外設的第7部分。下面快速了解一下如何測試中斷和輸入輸出電路。

        如果需要監視中斷信號傳輸速率,并檢測“無中斷信號”或“中斷過于頻繁”,交叉檢查幾個獨立的時基是一個不錯的解決方案。實現這種方法相當地容易和簡單,但是每種情況都需要逐一定制,具體設置取決于被服務的ISR的數量及其頻率。基于這個原因,固件庫中不包含這種方法。

        對于輸入輸出外設,一個B類軟件必須檢測數字輸入輸出和模擬通道上的任何故障。這項檢測屬于假設性檢測。以一個加熱元器件為例,電源由一個雙向晶閘管控制,溫度由一個連接模數轉換器的負溫度系數(NTC)電阻器調節。如果雙向晶閘管導通而溫度沒有上升,這表示數字輸出或雙向晶閘管已損壞,或者模數轉換器工作不正常。無論如何,B類軟件必須檢測這些錯誤條件,并采取相應的處理辦法。

        固件庫還配備技術文檔和一個很有用的基于RS-232的Verbose模式。這個固件接受了歐洲測試機構VDE在真實條件下的現場測試,并獲得了該機構的測試認證。STM32的自診斷例程通過了IEC60335-1認證。如果這些模塊在使用前不做任何修改,并按照ST的集成指導原則使用,這些模塊不需要再要重新評估,從而可以簡化最終應用的認證過程,縮短產品上市時間,降低開發成本。

        STM8系列8位微控制器也定位于家電市場,同樣集成了雙看門狗定時器和失效保護電路,其自診斷例程于2008年2月通過VDE的測試認證。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 类乌齐县| 西峡县| 汉沽区| 美姑县| 措勤县| 盐亭县| 杨浦区| 新宾| 神农架林区| 子长县| 咸丰县| 宽城| 博野县| 三明市| 平果县| 小金县| 汕头市| 都江堰市| 恭城| 吉林市| 皮山县| 棋牌| 个旧市| 宁阳县| 三门峡市| 克山县| 潼关县| 黄梅县| 新河县| 六盘水市| 霍山县| 靖江市| 龙游县| 白玉县| 牙克石市| 陆丰市| 清涧县| 通州市| 利川市| 岳阳市| 普安县|