新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 一個(gè)準(zhǔn)B類微控制器平臺(tái)

一個(gè)準(zhǔn)B類微控制器平臺(tái)

作者: 時(shí)間:2009-02-27 來源:網(wǎng)絡(luò) 收藏

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

本文引用地址:http://2s4d.com/article/167057.htm

根據(jù)設(shè)備在發(fā)生故障時(shí)的危險(xiǎn)程度,新標(biāo)準(zhǔn)把檢測軟件分為三個(gè)類別。如果家電的安全性與軟件無關(guān),則屬于A類設(shè)備。例如,室內(nèi)溫度調(diào)節(jié)器或照明控制開關(guān)就屬于A類。相反,如果軟件被用于預(yù)防特殊的災(zāi)害,如電子點(diǎn)火燃?xì)庠畹姆辣δ?,這個(gè)軟件就被評(píng)定為C類軟件。本文不討論第二種情況,因?yàn)檫@一類別的系統(tǒng)可能需要多個(gè)微,這超出了本文的范圍;其次,因?yàn)榇蠖鄶?shù)家電的電子控制開關(guān)都必須有不安全操作防護(hù)功能,這類產(chǎn)品屬于B類。例如,洗衣機(jī)的電控門鎖或洗碗機(jī)的帶電機(jī)過熱檢測功能的泵驅(qū)動(dòng)器就屬于這種情況。

對(duì)于B類待測設(shè)備,IEC60335標(biāo)準(zhǔn)讓我們參考另標(biāo)準(zhǔn)IEC60730,因?yàn)樵摌?biāo)準(zhǔn)涵蓋了全部的電子控制開關(guān)類產(chǎn)品。該標(biāo)準(zhǔn)的附件H的表H.11.12.7列出了B類和C類軟件需要測試的微組件、待測故障和達(dá)標(biāo)數(shù)值。

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

該標(biāo)準(zhǔn)提出“獨(dú)立時(shí)隙監(jiān)視”概念,以防CPU在PC機(jī)發(fā)生故障時(shí)失控。大多數(shù)都內(nèi)置看門狗定時(shí)器。然而,承擔(dān)這個(gè)責(zé)任的看門狗必須是獨(dú)立的電路?;谶@個(gè)原因,STM32有兩個(gè)看門狗:第一個(gè)看門狗定時(shí)器是一個(gè)普通的窗式看門狗,時(shí)鐘信號(hào)來自主時(shí)鐘源;第二個(gè)看門狗由一個(gè)獨(dú)立的內(nèi)部振蕩器驅(qū)動(dòng),從閃存內(nèi)的一個(gè)可選字節(jié)開始運(yùn)行。這樣設(shè)計(jì)可確保在晶振發(fā)生故障時(shí),不管時(shí)鐘電路配置如何,至少有一個(gè)看門狗能夠繼續(xù)工作。

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


實(shí)時(shí)時(shí)鐘的信號(hào)源可以是內(nèi)部低速(LSI)阻容振蕩器。通過比較外部預(yù)期頻率與時(shí)鐘組件要求的內(nèi)部頻率,這個(gè)特性提供了一個(gè)監(jiān)視外部時(shí)鐘的方法。在系統(tǒng)級(jí),這個(gè)方法可以節(jié)省一個(gè)50Hz/60Hz交流電源零交叉檢測電路的成本,應(yīng)用系統(tǒng)啟動(dòng)雙向晶體管需要這個(gè)電路的情況除外。

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

如果用硬件方式執(zhí)行測試程序,大多數(shù)測試都需要一個(gè)相當(dāng)大的芯片面積。例如,RAM內(nèi)存的單一位查錯(cuò)需要在所有數(shù)據(jù)字上增加一個(gè)奇偶校驗(yàn)位。STM32微控制器拋棄了這個(gè)方案,因?yàn)樗赡軙?huì)影響芯片的成本效益,而且,只用軟件就能輕松地實(shí)現(xiàn)測試功能。因此,意法半導(dǎo)體為用戶免費(fèi)提供一個(gè)自診斷固件庫,固件庫含有以下檢測用C模塊:CPU寄存器檢測;時(shí)鐘監(jiān)視;RAM功能檢查;ROM校驗(yàn)合完整性檢查;看門狗自檢和棧區(qū)溢出監(jiān)視(即便標(biāo)準(zhǔn)對(duì)此未提出明確要求,這個(gè)功能也能提高檢錯(cuò)的整體覆蓋率)。

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


固件庫為運(yùn)行時(shí)測試提供一套不同的C函數(shù)。必須在優(yōu)先權(quán)最高的中斷例程中執(zhí)行C函數(shù),為了避免CPU負(fù)載過大,影響實(shí)時(shí)響應(yīng)性能,固件庫還提供了多個(gè)可選特性。用戶可以選擇March C或March X算法。對(duì)于有限的覆蓋損耗,這兩種算法的速度略微快一些。在一次測試中的待測存儲(chǔ)單元的數(shù)量可以在報(bào)頭文件內(nèi)進(jìn)行修改,這樣,中斷例程的時(shí)長可以微調(diào)到幾納秒的水平。

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

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

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

如果需要監(jiān)視中斷信號(hào)傳輸速率,并檢測“無中斷信號(hào)”或“中斷過于頻繁”,交叉檢查幾個(gè)獨(dú)立的時(shí)基是一個(gè)不錯(cuò)的解決方案。實(shí)現(xiàn)這種方法相當(dāng)?shù)厝菀缀秃唵?,但是每種情況都需要逐一定制,具體設(shè)置取決于被服務(wù)的ISR的數(shù)量及其頻率。基于這個(gè)原因,固件庫中不包含這種方法。

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

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

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



評(píng)論


相關(guān)推薦

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

關(guān)閉