隨著自動電子控制系統(tǒng)擴展到許多不同的應用,其可靠性和安全性的要求成為系統(tǒng)設計中的重要因素。家用電器IEC60730安全標準的提出要求制造商設計確保產品安全可靠運行的自動電子控制裝置。為此,瑞薩提供以IEC60730合規(guī)性為基礎開發(fā)的示例軟件,其也可以在任何系統(tǒng)中用作瑞薩MCU的自檢測試。所提供的軟件例程將在復位后和程序執(zhí)行期間使用,用戶可以靈活地將這些例程集成到整個系統(tǒng)的設計中。
自檢程序主要包括以下這些測試內容:
1CPU測試
CPU測試以下寄存器:R0->R15、ISP、USP、INTB、PC、PSW、BPC、BPSW、FINTV、FPSW和ACC。
CPU測試分為多個函數,可單獨執(zhí)行;如若執(zhí)行時間允許的話,可以使用單個函數依次運行所有測試。CPU測試按以下順序執(zhí)行:
1)測試通用寄存器R0到R15
有以下兩種方式可以選擇:
如果需要檢測通用寄存器的耦合錯誤,則執(zhí)行以下函數:
CPU_Test_GPRsCouplingPartB
如果不需要檢測通用寄存器的耦合錯誤,則執(zhí)行以下函數:
CPU_Test_GeneralA
CPU_Test_GeneralB
2)測試控制寄存器ISP、USP、INTB、PSW、BPC、BPSW、FINTV和FPSW
執(zhí)行以下函數:
CPU_Test_Control
3)測試ACC寄存器
執(zhí)行以下函數:
CPU_Test_Accumulator
4)測試程序計數器(PC)寄存器
執(zhí)行以下函數:
CPU_Test_PC
如果檢測到錯誤,CPU測試將跳轉到錯誤處理函數。
2RAM測試
March測試被公認為是測試RAM的有效方法。March測試由March元素的有限序列組成,而March元素是在繼續(xù)到下一個單元之前應用于存儲器陣列中的每個單元的有限操作序列。一般來說,算法包含的March元素越多,其故障覆蓋率就越好,但代價是執(zhí)行時間較慢。
1)March C
March C算法由6個元素組成,共10次操作。
I. 將全零寫入數組
II.從最低地址開始,讀0,寫1,數組逐位遞增
III. 從最低地址開始,讀1,寫0,數組逐位遞增
IV. 從最高地址開始,讀0,寫1,數組逐位遞減
V. 從最高地址開始,讀1,寫0,數組逐位遞減
VI.從數組中讀取全零
可檢測到以下故障:
·固定故障SAF
某個單元或行的值被固定,SA0固定為0,SA1固定為1
·轉換故障TF
某個單元或行無法從0變化為1或從1變化為0
·耦合故障CF
對一個單元的寫操作會更改第二個單元的內容
·地址解碼器故障AF
影響地址解碼器的任何錯誤/對特定地址,不會訪問任何單元/某個地址永遠不會被訪問/對特定地址,可以同時訪問多個單元/某個單元可由多個地址訪問
2)March X
March X算法由4個元素組成,共6次操作。
I. 將全零寫入數組
II.從最低地址開始,讀0,寫1,數組逐位遞增
III. 從最高地址開始,讀1,寫0,數組逐位遞減
V. 從數組中讀取全零
可檢測到以下故障:
·固定故障SAF
·轉換故障TF
·翻轉耦合故障CF(對一個單元的寫操作會翻轉第二個單元的內容)
·地址解碼器故障AF
3)March X (Word-Oriented Memory version)
March X (Word-Oriented Memory version) (WOM) 算法是根據March X算法分兩步創(chuàng)建的。首先,標準March X從使用單個位數據模式轉換為使用等于存儲器訪問寬度的數據模式。在此階段,主要測試字間故障,包括地址解碼器故障。第二階段是添加另外兩個March元素。第一個使用高/低位交替數據模式,第二個使用相反的數據模式。添加這些元素是為了檢測字內耦合故障。
March X (WOM) 算法由6個元素組成,共10次操作。
I. 將全零寫入數組
II.從最低地址開始,讀0,寫1,數組逐字遞增
III. 從最高地址開始,讀1,寫0,數組逐字遞減
IV. 從最低地址開始,讀0,寫h’AA,數組逐字遞增
V. 從最高地址開始,讀h’AA,寫h’55,數組逐字遞減
VI.從數組中讀取所有h’55
由于算法的本身具有破壞性(它們不保留當前RAM值),但瑞薩所提供的測試函數提供了非破壞性選項,以便可以保留內存內容。這是通過在運行實際算法之前將內存復制到提供的緩沖區(qū),然后在測試結束時再從緩沖區(qū)恢復內存來實現的。API包括一個用于自動測試緩沖區(qū)以及RAM測試區(qū)域的選項。而正在測試的RAM區(qū)域在測試期間是不能用于其他任何用途。這使得用于堆棧的RAM測試變得特別困難。為了解決這個問題,API包含了可用于測試堆棧的函數。
3ROM測試
ROM/Flash存儲器測試使用CRC。CRC是一種故障/錯誤控制技術,生成單個字或者校驗和來表示存儲器的內容。
ROM測試可以通過為ROM內容生成CRC值并保存來實現。在內存自檢期間,使用相同的CRC算法生成CRC值,并將其與保存的CRC值進行比較。該技術可識別一位錯誤和高比例的多位錯誤。
瑞薩電子工具鏈自動將CRC插入ROM,該值可以直接與計算值進行比較。例如,RX62T包含一個CRC模塊,該模塊支持CRC16-CCITT。使用該軟件驅動CRC模塊會生成以下16位CRC16-CCITT:
·多項式 = 0x1021(x16+ x12+ x5+ 1)
·寬度 = 16位
·初始值 = 0xFFFF
·對輸出CRC執(zhí)行與h’FFFF的異或
由于ROM測試是需要與參考CRC值進行比較,可以用瑞薩RX標準工具鏈來計算CRC值并在用戶指定的位置將其添加到構建的mot文件中,其設置的方法如下圖1所示。
圖1 添加參考CRC
4Watchdog測試
看門狗用來檢測程序執(zhí)行的異常。如果程序沒有按預期運行,軟件將不會按要求刷新看門狗,因此會檢測到錯誤。如果看門狗超時,會產生內部復位。測試程序中提供一個在復位后使用的函數來確定看門狗是否導致了復位。
自檢測試可以分成上電檢測和周期檢測。上電檢測是重啟后只運行一次的測試。周期測試是在正常程序執(zhí)行過程中定期運行的測試。如何安排周期測試具體取決于客戶的應用程序的結構。
以下是以RX62T為例加入自檢程序的示例。上電檢測的流程圖如圖2所示,上電后順序檢測CPU、RAM、ROM和IWDT。周期檢測的流程圖如圖3所示,周期執(zhí)行CPU檢測、RAM緩沖區(qū)檢測、剩余RAM區(qū)域測檢測、堆棧Stack檢測和CRC檢測。如需進一步了解自檢程序,可通過下方網址或二維碼進入瑞薩官網下載例程。
IEC60730 Self Test Code for RX62T Group MCU - Sample Code(需注冊/登陸瑞薩電子官網)
圖2上電檢測流程圖
圖3 周期檢測流程圖
-
mcu
+關注
關注
146文章
16885瀏覽量
349916 -
控制系統(tǒng)
+關注
關注
41文章
6509瀏覽量
110381 -
瑞薩
+關注
關注
34文章
22282瀏覽量
85940 -
程序
+關注
關注
116文章
3756瀏覽量
80751
原文標題:RX系列自檢程序簡介
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論