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

請(qǐng)問(wèn)如何在程序中啟用CPU自檢?
請(qǐng)問(wèn)TMS320F28335如何做RAM區(qū)自檢、CPU自檢、溢出自檢及CMD配置
時(shí)鐘模塊RX-4803SA與時(shí)鐘模塊RX8803SA簡(jiǎn)介
rx8025t中文數(shù)據(jù)手冊(cè)_英文資料_驅(qū)動(dòng)程序下載
51單片機(jī)的IO口輸出板子測(cè)試自檢測(cè)試程序免費(fèi)下載

矢網(wǎng)的自檢程序如何使用?避免尷尬帖
非公版的RX 6800系列將正式解禁
AMD推出三款全新Radeon RX 6000系列顯卡
RX產(chǎn)品家族介紹手冊(cè) [4] RX700/RX600、RX200、RX100系列
FXLS896xAF和FXLS897xCF的自檢程序

RX系列的RX Driver Package Ver.1.42的應(yīng)用說(shuō)明

RX系列RX驅(qū)動(dòng)程序包第142版發(fā)布說(shuō)明

評(píng)論