一種C2000系列芯片的RAM在線診斷實(shí)現(xiàn)方法
發(fā)布時間:2020-05-15 來源:China Central FAE Sam Zhang 責(zé)任編輯:wenwei
【導(dǎo)讀】隨著越來越多的工業(yè)應(yīng)用對產(chǎn)品的可靠性和安全性要求越來越高,我們在做產(chǎn)品設(shè)計的時候不僅要正確的實(shí)現(xiàn)產(chǎn)品功能,同時也需要通過一些功能安全認(rèn)證,比如家電行業(yè)的IEC60730等或者ISO13849等。一般的系統(tǒng)故障可以通過設(shè)計的迭代和嚴(yán)格測試來避免,但是硬件的隨機(jī)失效理論上是無法完全消除的,所以要想提高硬件隨機(jī)失效的診斷覆蓋率,就需要軟硬件診斷機(jī)制來保障。
作為系統(tǒng)的核心控制部分,MCU主平臺的診斷機(jī)制就是最關(guān)鍵的部分。針對一般通用的MCU,以Piccolo C2000系列為例,硬件上提供了一些診斷或者校驗(yàn)機(jī)制,如下所示:
同時TI也提供了一些軟件診斷方案,如MSP430 IEC60730 Software Package和C2000 SafeTI 60730 SW Packages軟件庫等,可以提供很多的診斷測試功能,例如CPU、時鐘、外設(shè)、RAM等的診斷,已經(jīng)可以滿足一部分的需求。如下圖所示為C2000 SafeTI 60730 SW Packages中的功能和資源消耗。
然而在實(shí)際的應(yīng)用中,有些安全標(biāo)準(zhǔn)要求對RAM進(jìn)行周期性的在線診斷,同時不能影響程序的正常運(yùn)行。但是程序在運(yùn)行過程中存儲在RAM中的數(shù)據(jù)會實(shí)時的變化,而RAM的診斷往往會破壞這些存儲的數(shù)據(jù),比如電機(jī)控制類的實(shí)時性要求較高的場合。所以在沒有ECC的情況下,如何對RAM進(jìn)行實(shí)時在線的診斷是一個值得討論的問題。
下面以電機(jī)控制為例,討論硬件校驗(yàn)的實(shí)現(xiàn),尤其是RAM在線檢測的過程。
1. 系統(tǒng)軟件流程
非破壞性的診斷可以放在背景循環(huán)里面進(jìn)行,這些軟件診斷不會對實(shí)時性中斷造成影響,例如看門狗測試,內(nèi)部晶振測試,F(xiàn)LASH CRC校驗(yàn),靜態(tài)變量RAM CRC校驗(yàn),堆棧溢出判斷,以及GPIO口診斷等。另外一些破壞性的或者對實(shí)時控制有影響的診斷,可以放到主中斷中進(jìn)行,如RAM March校驗(yàn),ALU診斷以及CPU寄存器診斷等。具體流程圖如下所示:
2. RAM診斷的方法
以C2000 SafeTI 60730 SW Packages為例,主要提供了兩種RAM檢測方式。
一種是CRC檢測STL_CRC_TEST_testRam,此功能用于測試RAM的位錯誤。該測試以0和1的交替模式填充被測RAM區(qū)域,并使用PSA計算RAM的CRC。對于給定的RAM存儲器區(qū)域,如果RAM存儲器中沒有任何stuck bit,則CRC值應(yīng)始終相同。并行串行分析器(PSA)是c28x器件中的一個模塊,可用于生成40位給定存儲區(qū)域上的CRC。 PSA多項(xiàng)式為Y = x40 + x21 + x19 + x2 + 1。PSA通過監(jiān)視數(shù)據(jù)讀取數(shù)據(jù)總線(DRDB)來計算CRC值。 一旦激活就會監(jiān)控Data Read Data Bus (DRDB),當(dāng)CPU通過DRDB讀取數(shù)據(jù)時,PSA每個時鐘周期會為DRDB上的數(shù)據(jù)生成一個CRC。由于此測試具有破壞性,因此需要將要測試的RAM內(nèi)容保存到單獨(dú)的RAM位置。
當(dāng)然也可以使用軟件CRC的方式,使用起來更靈活,并且可以選擇非破壞性的方式來計算CRC,對一些靜態(tài)常量存儲的區(qū)域可以考慮這種CRC方式。另外一點(diǎn)是軟件CRC算法可以更方便的進(jìn)行代碼評估,以滿足不同安全標(biāo)準(zhǔn)的要求。
另一種是MARCH檢測STL_MARCH_TEST_testRam,此功能直接對RAM進(jìn)行32bit的讀寫測試,可以選擇進(jìn)行MarchC 13N或者M(jìn)archC-測試。由于此測試具有破壞性,因此也需要將要測試的RAM內(nèi)容保存到單獨(dú)的RAM位置。
3. RAM在線檢測的實(shí)現(xiàn)
由于需要周期性的RAM檢測,以電機(jī)控制為例,可以將RAM檢測放到主中斷里面執(zhí)行。同時關(guān)鍵是不能影響控制程序的運(yùn)行和實(shí)時性,所以主要考慮兩點(diǎn):
第一是主中斷時間有限,要盡可能減小RAM檢測的時間,所以可以將RAM分成多個小段進(jìn)行檢測,每段RAM越小,占用中斷的時間越小,但是所有RAM檢測一遍的時間會變長,這個需要綜合考慮。
第二是不能破壞RAM中的變量值,所以在檢測是之前將RAM段中的內(nèi)容保存到專門區(qū)域,戴檢測完成并且通過之后,再將保存好的數(shù)據(jù)恢復(fù)過來,使用memCopy來提高效率。
具體實(shí)現(xiàn)方法如下:
首先定義好各個RAM區(qū)間的地址范圍,可以參考具體的數(shù)據(jù)手冊,如下所示:
然后定義好檢測的范圍和每次檢測的數(shù)據(jù)長度:
注意由于STL_MARCH_TEST_testRam函數(shù)執(zhí)行32位讀/寫測試,而在測試RAM單元陣列時,由于RAM單元的16位體系結(jié)構(gòu),所以要求起始地址為偶數(shù),結(jié)束地址為奇數(shù),可以測試的最大內(nèi)存范圍限制為65535個32位字。所以要求測試長度也需要為奇數(shù)。
在主中斷里面的RAM在線檢測函數(shù)里,首先將要檢測區(qū)域的RAM值保存下來:
if ((gStructSTLMonitor.NowRamAddrStart >= MARCH_RAM_START)
&& (gStructSTLMonitor.NowRamAddrStart <= (MARCH_RAM_END-RAM_CHK_NUM)))
{
gStructSTLMonitor.NowRamAddrEnd = gStructSTLMonitor.NowRamAddrStart + RAM_CHK_NUM;
memCopy((uint16_t *)gStructSTLMonitor.NowRamAddrStart,(uint16_t *)
gStructSTLMonitor.NowRamAddrEnd,(uint16_t *)MARCH_RAM_BK);
}
然后進(jìn)行檢測:
gStructSTLMonitor.status = STL_MARCH_TEST_testRam((uint32_t *)
gStructSTLMonitor.NowRamAddrStart,(uint32_t *)gStructSTLMonitor.NowRamAddrEnd);
if(gStructSTLMonitor.status != SIG_RAM_MARCH_TEST)
{
STL_SetFail();
}
else
{
memCopy((uint16_t *)MARCH_RAM_BK,(uint16_t *)(MARCH_RAM_BK + RAM_CHK_NUM),
(uint16_t *)gStructSTLMonitor.NowRamAddrStart);
gStructSTLMonitor.NowRamAddrStart = gStructSTLMonitor.NowRamAddrEnd + 1;
gStructSTLMonitor.gTestStep++;
}
注意檢測成功之后馬上恢復(fù)當(dāng)前區(qū)域的RAM值,并為下一次檢測做好準(zhǔn)備。如果檢測發(fā)現(xiàn)故障,則進(jìn)入故障處理函數(shù)。
參考文檔:
1. IEC60730 Safety Library for TMS320F2806x USER’S GUIDE
2. Safety Manual for C2000™ MCUs in IEC60730 Safety Applications (SPRUHI3A)
推薦閱讀:
特別推薦
- 克服碳化硅制造挑戰(zhàn),助力未來電力電子應(yīng)用
- 了解交流電壓的產(chǎn)生
- 單結(jié)晶體管符號和結(jié)構(gòu)
- 英飛凌推出用于汽車應(yīng)用識別和認(rèn)證的新型指紋傳感器IC
- Vishay推出負(fù)載電壓達(dá)100 V的業(yè)內(nèi)先進(jìn)的1 Form A固態(tài)繼電器
- 康佳特推出搭載AMD 銳龍嵌入式 8000系列的COM Express緊湊型模塊
- 村田推出3225尺寸車載PoC電感器LQW32FT_8H系列
技術(shù)文章更多>>
- “扒開”超級電容的“外衣”,看看超級電容“超級”在哪兒
- DigiKey 誠邀各位參會者蒞臨SPS 2024?展會參觀交流,體驗(yàn)最新自動化產(chǎn)品
- 提前圍觀第104屆中國電子展高端元器件展區(qū)
- 高性能碳化硅隔離柵極驅(qū)動器如何選型,一文告訴您
- 貿(mào)澤電子新品推薦:2024年第三季度推出將近7000個新物料
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
濾波電感
濾波器
路由器設(shè)置
鋁電解電容
鋁殼電阻
邏輯IC
馬達(dá)控制
麥克風(fēng)
脈沖變壓器
鉚接設(shè)備
夢想電子
模擬鎖相環(huán)
耐壓測試儀
逆變器
逆導(dǎo)可控硅
鎳鎘電池
鎳氫電池
紐扣電池
歐勝
耦合技術(shù)
排電阻
排母連接器
排針連接器
片狀電感
偏光片
偏轉(zhuǎn)線圈
頻率測量儀
頻率器件
頻譜測試儀
平板電腦