簡介
IEC-60730安全標準法規由國際電工委員會 ( IEC ) 制定,該安全標準定義了家用電器嵌入式控制軟體與硬體安全操作的測試與檢測方法,以確保家電中受控設備的安全操作。
IEC-60730將家用電器分為3類:
本說明文檔以主要Class B 進行要項說明,Class B 適用於大部分的家電產品,包括吊扇、洗衣機、電冰箱、冰櫃等。
在IEC-60730中,自動化電子控制設備的製造商,必須使用下述說明的結構設計其軟體:
- 單通道,功能檢測。
在單晶片執行使用者設計的應用前,執行單晶片功能測試,以確保所有關鍵功能能正常運行。
- 單通道,定期自檢。
在單晶片執行使用者設計的應用時,單晶片會定期自我檢查電子控制設備的所有關鍵功能,且避免與使用者設計的應用操作產生衝突。
- 雙通道,相互驗證。
在雙通道的架構下,使用兩顆或兩顆以上的單晶片,獨立運行至關鍵功能前相互驗證其各自的工作。例如:洗衣機的安全鎖在解開前,一顆單晶片控制馬達停止,一顆單晶片檢查轉筒轉速以驗證其已停止。
"雙通道,相互驗證"需要兩顆單晶片,增加了硬體成本,且兩顆單晶片間的相互通訊增加其複雜度,大多應用於與生命攸關的電子控制系統上,例如:航空運輸工具、汽車等。目前市面上最常見的架構為"單通道,功能檢測",因為檢測功能的建立相對容易,且不需要在硬體上增加額外的成本。而"單通道,定期自檢",則是大多數製造商正在嘗試的項目,勢必為未來趨勢。
國際電工委員會將各類型的商品條列出各項不同的規範,參照附錄的說明,可得知電子控制設備需參考附錄H。在附錄H中,H.11.12.7詳述了必須測試的部件,具體測試取決於軟體分類,換句話說,每項測試部件都有其驗證/測試的選項,方便於製造商的設計,下表列出了 IEC-60730 安全標準法對MCU可能需要考慮的所有項目。
測試部件 |
測試項目 |
故障/錯誤 |
1. CPU |
1.1 暫存器 |
停滯 |
1.3 計數器 |
停滯 | |
2. 中斷處理與執行 |
無中斷/中斷過度頻繁 | |
3. 時鐘 |
錯誤的頻率 | |
4. 記憶體 |
4.1 Flash |
所有單一位元的故障 |
4.2 RAM |
直流故障 | |
4.3 記憶體位址 |
停滯 | |
5. 內部數據路徑 |
5.1 數據 |
停滯 |
5.2 路徑 |
錯誤的位址 | |
6. 對外通訊 |
6.1 數據 |
漢明距離過長 |
6.2 定時 |
錯誤的時間點 | |
7. 輸入/輸出外設 |
7.1 數位輸入/輸出 |
H.27.1(2)中的故障 |
7.2.1 ADC與DAC |
H.27.1(2)中的故障 | |
7.2.2 模擬多路復用器 |
錯誤的位址 |
2.1 CPU暫存器 – 測試項目1.1
檢測暫存器中的滯留位。
CPU暫存器是MCU中最重要的部分,由於必須正確操作,因此進行測試是必要的。在自檢程式中,需檢測暫存器中是否有滯留位以及是否存在耦合故障。
故障檢測的方式是使用靜態儲存器測試或是帶奇偶校驗的資料保護措施進行功能測試或定期自檢。基本的檢測方式會在測試前先將暫存器的內容堆疊,待測試後恢復暫存器原有內容。堆疊完畢後,開始進行檢測,先將暫存器設置為已知值並驗證其正確性,接著強制改變暫存器位元的改變,並再次驗證暫存器內容是否正確,若不正確,則改變錯誤旗標。測試完畢後,將原有內容恢復至暫存器。
檢測程序計數器中的滯留位。
要讓使用者設計的軟體順利的在MCU上運行,程序計數器正常運行的狀態十分重要,且因為對程序計數器直接測試的方式都依賴於程式計數器才能正常工作。
檢測方法包含了獨立時隙監視及程式序列的邏輯監視的功能測試或定期自檢。目前市面上的產品大多採用看門狗對應用程序進行間接時隙監視。當程序 計數器發生故障時,看門狗能夠在監測時間點發現錯誤,進而使器件復位。
驗證中斷是否發生並以預期速率處理程序。
大多數的應用程序都依賴於中斷進行操作,因此驗證中斷是否在預期的時間內發生並採取對應的處理,是很重要的一件事。
中斷的功能測試大多採用時隙監視。採用時隙監視的方式,是因為有助於使用家電時檢測錯誤操作,且任意的中斷測試還會間接測是中斷控制器。在實際測試時,可透過定時器設定指定時間間隔觸發中斷進行測試。例如:使用RTC設定中斷為1s,使用系統時鐘的中斷為1ms,當RTC中斷下一次觸發時,使用系統時鐘的中斷計數器應增加1000。
檢測系統時鐘頻率的精準度,確認是否有意外的偏差。
為了確定單晶片擁有正確的時序執行預期的工作指令,必須驗證系統時鐘的頻率是否符合規範。
頻率的檢測或時隙監視,必須驗證檢測到的震盪頻率部會導致單晶片正常運行時出現問題。可透過外部時鐘訊號或實時計數器(RTC)觸發,實現參考時鐘與系統時鐘的頻率比較。
檢測非易失性儲存器中的所有單一位元故障。
在單晶片中,Flash記憶體常用於儲存單晶片的設置與常量等參數,為了確保單晶片的安全運行,必須檢查這些非易失性儲存器是否損壞。
檢測的方式可使用單個或多個校驗和的方式,或是單一位元的數據冗餘的定期自檢。例如:CRC校驗、March測試,這些檢測方式可用於定期檢查儲存器的完整性。單晶片自檢的方式則可以參考儲存器訪問衝突檢測,用來確認任何錯誤或不可預知的儲存器訪問。常見的作法是利用CRC校驗法,將數據輸入後生成可用於檢測錯誤的輸出校驗和,透過計算與儲存(前一筆)的校驗和進行比較,若不為相同的結果,則表示存在錯誤。
檢測程序計數器中的滯留位。
要讓使用者設計的軟體順利的在MCU上運行,程序計數器正常運行的狀態十分重要,且因為對程序計數器直接測試的方式都依賴於程式計數器才能正常工作。
檢測方法包含了March測試、獨立時隙監視及程式序列的邏輯監視的功能測試或定期自檢。目前市面上的產品大多採用看門狗對應用程序進行間接時隙監視。當程序計數器發生故障時,看門狗能夠在監測時間點發現錯誤,進而使器件復位。另外也可以使用March測試法來進行測試,簡單的來說,就是將所有的記憶體位置填成0或1,然後逐步地一一進行讀值驗證,在更換填值換一個讀取的起點開始一一讀值測試,若讀出來的參數跟事先填入的數值不同則代表記憶體該位址的存取有錯誤。
驗證所傳輸的數據以及通信序列與時序是否正確。
與外部設備進行通訊是許多應用的重要組成之一,但潛在的故障率也相對來的高,因為通訊非常容易受到其他電磁波或訊號源的干擾,且通訊的任一端都有可能出現工作異常的狀況,透過驗證對外通訊的運行可以避免其中一端設備故障時,另一端設備也出現故障。
檢測數據傳輸的運行狀態時,可使用傳輸冗餘或是數據冗餘,數據冗餘例如CRC校驗、漢名碼或協議測試。最基本的是傳輸冗餘是在正式數據傳輸前先發送與接收兩筆傳輸內容,防止輸入/輸出訊息中的巧合或系統性錯誤,該傳輸測試至少需連續傳輸成功兩次以上進行比較。
驗證輸入/輸出是否符預期以及信號是否正確連接。
所有的應用開發都會使用到模擬或數位的輸入/輸出,以便檢測外部設備或單晶片本身的故障。
在軟體中驗證是否獲得了預期的輸入,並能在任何給定時間提供所需的輸出。
- NXP AN4989 - 对Kinetis E系列MCU实施IEC 60703 B类测试
評論