国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺述一種C2000系列芯片的RAM在線診斷實現方法

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2022-01-19 13:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

China Central FAE Sam Zhang

隨著越來越多的工業應用對產品的可靠性和安全性要求越來越高,我們在做產品設計的時候不僅要正確的實現產品功能,同時也需要通過一些功能安全認證,比如家電行業的IEC60730等或者ISO13849等。一般的系統故障可以通過設計的迭代和嚴格測試來避免,但是硬件的隨機失效理論上是無法完全消除的,所以要想提高硬件隨機失效的診斷覆蓋率,就需要軟硬件診斷機制來保障。

作為系統的核心控制部分,MCU主平臺的診斷機制就是最關鍵的部分。針對一般通用的MCU,以Piccolo C2000系列為例,硬件上提供了一些診斷或者校驗機制,如下所示:

同時TI也提供了一些軟件診斷方案,如MSP430 IEC60730 Software Package和C2000 SafeTI 60730 SW Packages軟件庫等,可以提供很多的診斷測試功能,例如CPU時鐘、外設、RAM等的診斷,已經可以滿足一部分的需求。如下圖所示為C2000 SafeTI 60730 SW Packages中的功能和資源消耗。

然而在實際的應用中,有些安全標準要求對RAM進行周期性的在線診斷,同時不能影響程序的正常運行。但是程序在運行過程中存儲在RAM中的數據會實時的變化,而RAM的診斷往往會破壞這些存儲的數據,比如電機控制類的實時性要求較高的場合。所以在沒有ECC的情況下,如何對RAM進行實時在線的診斷是一個值得討論的問題。

poYBAGGKTR2AVE71AAKtsU8a1cY622.png

下面以電機控制為例,討論硬件校驗的實現,尤其是RAM在線檢測的過程。

1. 系統軟件流程

非破壞性的診斷可以放在背景循環里面進行,這些軟件診斷不會對實時性中斷造成影響,例如看門狗測試,內部晶振測試,FLASH CRC校驗,靜態變量RAM CRC校驗,堆棧溢出判斷,以及GPIO口診斷等。另外一些破壞性的或者對實時控制有影響的診斷,可以放到主中斷中進行,如RAM March校驗,ALU診斷以及CPU寄存器診斷等。具體流程圖如下所示:

pYYBAGGKTR-AOry2AAC7xhJr73U548.png

2. RAM診斷的方法

以C2000 SafeTI 60730 SW Packages為例,主要提供了兩種RAM檢測方式。

一種是CRC檢測STL_CRC_TEST_testRam,此功能用于測試RAM的位錯誤。該測試以0和1的交替模式填充被測RAM區域,并使用PSA計算RAM的CRC。對于給定的RAM存儲器區域,如果RAM存儲器中沒有任何stuck bit,則CRC值應始終相同。并行串行分析器(PSA)是c28x器件中的一個模塊,可用于生成40位給定存儲區域上的CRC。 PSA多項式為Y = x40 + x21 + x19 + x2 + 1。PSA通過監視數據讀取數據總線(DRDB)來計算CRC值。 一旦激活就會監控Data Read Data Bus (DRDB),當CPU通過DRDB讀取數據時,PSA每個時鐘周期會為DRDB上的數據生成一個CRC。由于此測試具有破壞性,因此需要將要測試的RAM內容保存到單獨的RAM位置。

poYBAGGKTSGAB4yNAACVuv_rh3k488.png

當然也可以使用軟件CRC的方式,使用起來更靈活,并且可以選擇非破壞性的方式來計算CRC,對一些靜態常量存儲的區域可以考慮這種CRC方式。另外一點是軟件CRC算法可以更方便的進行代碼評估,以滿足不同安全標準的要求。

另一種是MARCH檢測STL_MARCH_TEST_testRam,此功能直接對RAM進行32bit的讀寫測試,可以選擇進行MarchC 13N或者MarchC-測試。由于此測試具有破壞性,因此也需要將要測試的RAM內容保存到單獨的RAM位置。

poYBAGGKTSOAC4pwAACUzrHQ3Go179.png

3. RAM在線檢測的實現

由于需要周期性的RAM檢測,以電機控制為例,可以將RAM檢測放到主中斷里面執行。同時關鍵是不能影響控制程序的運行和實時性,所以主要考慮兩點:

第一是主中斷時間有限,要盡可能減小RAM檢測的時間,所以可以將RAM分成多個小段進行檢測,每段RAM越小,占用中斷的時間越小,但是所有RAM檢測一遍的時間會變長,這個需要綜合考慮。

第二是不能破壞RAM中的變量值,所以在檢測是之前將RAM段中的內容保存到專門區域,戴檢測完成并且通過之后,再將保存好的數據恢復過來,使用memCopy來提高效率。

具體實現方法如下:

首先定義好各個RAM區間的地址范圍,可以參考具體的數據手冊,如下所示:

pYYBAGGKTSWAT4O2AAE0l6_nqmM375.png

然后定義好檢測的范圍和每次檢測的數據長度:

pYYBAGGKTSeASDRWAAA0Xf8wx2U393.png

注意由于STL_MARCH_TEST_testRam函數執行32位讀/寫測試,而在測試RAM單元陣列時,由于RAM單元的16位體系結構,所以要求起始地址為偶數,結束地址為奇數,可以測試的最大內存范圍限制為65535個32位字。所以要求測試長度也需要為奇數。

在主中斷里面的RAM在線檢測函數里,首先將要檢測區域的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);

}

然后進行檢測:

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++;

}

注意檢測成功之后馬上恢復當前區域的RAM值,并為下一次檢測做好準備。如果檢測發現故障,則進入故障處理函數。

審核編輯:金巧

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式處理
    +關注

    關注

    0

    文章

    341

    瀏覽量

    10515
  • crc
    crc
    +關注

    關注

    0

    文章

    205

    瀏覽量

    30841
  • 分析器
    +關注

    關注

    0

    文章

    93

    瀏覽量

    12917
  • PSA
    PSA
    +關注

    關注

    0

    文章

    52

    瀏覽量

    14893
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    FZH120 一種存儲器交換LED顯示控制的驅動芯片

    型號:FZH120 廠商:深圳市方中禾科技有限公司(Premier Chip Limited)FZH120是一種存儲器交換LED顯示控制的驅動芯片,可以選擇多重的ROW/COM模式(32ROW
    發表于 11-20 11:40

    電能質量在線監測裝置的自診斷功能是如何實現的?

    電能質量在線監測裝置的自診斷功能,核心是通過 硬件層實時監測 + 軟件層智能校驗 + 冗余層故障備份 的三層協同機制實現,從信號采集、數據處理到故障響應全鏈路覆蓋,確保故障精準識別、快速告警與可靠
    的頭像 發表于 11-06 10:35 ?723次閱讀

    德州儀器推出超低成本實時微控制器 (MCU),助力家用電器和電動工具實現高端電機控制

    扭矩 前沿動態 德州儀器 (TI) 于近日推出了款高性價比C2000? 系列實時微控制器 (MCU),助力工程師以更低成本設計出行業性能領先的產品。新推出的F28E120SC 和 F28E120SB
    的頭像 發表于 09-19 17:17 ?3.9w次閱讀
    德州儀器推出超低成本實時微控制器 (MCU),助力家用電器和電動工具<b class='flag-5'>實現</b>高端電機控制

    谷東智能C2000 AR智能眼鏡推動航空航天行業數字化轉型

    在航空航天領域,安全、效率與精準性是永恒的追求。谷東智能推出的 C2000 AR 智能眼鏡,憑借其卓越的性能與廣泛的應用,已成為眾多頭部航司的得力助手,并獲得了某民航局局長的高度認可。
    的頭像 發表于 06-20 15:14 ?1254次閱讀

    納芯微NSSine? NS800RT正面硬剛TI C2000,國產替代“芯”戰事, 工業控制MCU市場迎來變局?

    而言,C2000不僅僅是芯片,它是一種技術慣性,個龐大而成熟的生態,套經過千錘百煉的開發
    的頭像 發表于 06-20 12:45 ?1605次閱讀
    納芯微NSSine? NS800RT正面硬剛TI <b class='flag-5'>C2000</b>,國產替代“芯”戰事, 工業控制MCU市場迎來變局?

    16 位 ADC 的 汽車類與非汽車類C2000? 32 位 MCU(TMS320F28377DPTPS TMS320F28377SPTPQ)微控制器

    ADC 的 C2000? 32 位 MCU 說明 TMS320F28377DPTPS是款功能強大的 32 位浮點微控制器單元 (MCU),專為工業電機驅動器、光伏逆變器和數字電源、電動汽車和運輸以及
    發表于 04-30 14:11

    TMS320F2800155 C2000? 32 位 MCU 120MHz 128KB 閃存數據手冊

    TMS320F280015x (F280015x) 是成本優化的 C2000 實時微控制器系列的成員,該系列可擴展、超低延遲器件專為提高電力電子的效率而設計。
    的頭像 發表于 04-15 15:08 ?1369次閱讀
    TMS320F2800155 <b class='flag-5'>C2000</b>? 32 位 MCU 120MHz 128KB 閃存數據手冊

    TMS320F280034-Q1 汽車級 C2000? 32 位 MCU 120MHz 128KB 閃存數據手冊

    TMS320F28003x (F28003x) 是 C2000? 實時微控制器系列的成員,該系列可擴展、超低延遲器件專為提高電力電子效率而設計,包括但不限于:高功率密度、高開關頻率,并支持使用 GaN 和 SiC 技術。
    的頭像 發表于 04-15 14:59 ?1002次閱讀
    TMS320F280034-Q1 汽車級 <b class='flag-5'>C2000</b>? 32 位 MCU 120MHz 128KB 閃存數據手冊

    TMS320F2800133 C2000? 32 位 MCU,具有 120 MHz、64 KB 閃存、FPU 和 TMU數據手冊

    TMS320F280013x (F280013x) 是 C2000? 實時微控制器系列的成員,該系列可擴展、超低延遲器件專為提高電力電子效率而設計。
    的頭像 發表于 04-15 14:46 ?1529次閱讀
    TMS320F2800133 <b class='flag-5'>C2000</b>? 32 位 MCU,具有 120 MHz、64 KB 閃存、FPU 和 TMU數據手冊

    TMS320F2800152-Q1 具有 CAN-FD、鎖步 ASIL B 的汽車級 C2000? 32 位 MCU 100MHz 64KB 閃存數據手冊

    TMS320F280015x (F280015x) 是成本優化的 C2000 實時微控制器系列的成員,該系列可擴展、超低延遲器件專為提高電力電子的效率而設計。
    的頭像 發表于 04-15 14:32 ?1111次閱讀
    TMS320F2800152-Q1 具有 CAN-FD、鎖步 ASIL B 的汽車級 <b class='flag-5'>C2000</b>? 32 位 MCU 100MHz 64KB 閃存數據手冊

    TMS320F2800153-Q1 具有 HRPWM、CAN-FD、鎖步 ASIL B 的汽車類 C2000? 32位MCU 120MHz 64KB 閃存數據手冊

    TMS320F280015x (F280015x) 是成本優化的 C2000 實時微控制器系列的成員,該系列可擴展、超低延遲器件專為提高電力電子的效率而設計。
    的頭像 發表于 04-15 13:46 ?1144次閱讀
    TMS320F2800153-Q1 具有 HRPWM、CAN-FD、鎖步 ASIL B 的汽車類 <b class='flag-5'>C2000</b>? 32位MCU 120MHz 64KB 閃存數據手冊

    TMS320F28P659DH-Q1 汽車級 C2000 32 位 MCU,600MIPS,2xC28x + 1xCLA + 鎖步技術手冊

    TMS320F28P65x (F28P65x) 是 C2000? 實時微控制器系列員,該系列可擴展、超低延遲器件專為提高電力電子器件的效率而設計,包括但不限于:高功率密度、高開關頻
    的頭像 發表于 04-15 10:22 ?1164次閱讀
    TMS320F28P659DH-Q1 汽車級 <b class='flag-5'>C2000</b> 32 位 MCU,600MIPS,2xC28x + 1xCLA + 鎖步技術手冊

    F29H850TU C2000? 64 位 MCU,帶 C29x 200MHz 三核技術手冊

    F29H85x 和 F29P58x 是 C2000? 實時微控制器系列的成員,該系列是可擴展、超低延遲的器件,旨在提高電力電子器件的效率,包括但不限于:高功率密度、高開關頻率,并支持使用 GaN 和 SiC 技術。
    的頭像 發表于 04-14 14:10 ?1732次閱讀
    F29H850TU <b class='flag-5'>C2000</b>? 64 位 MCU,帶 <b class='flag-5'>C</b>29x 200MHz 三核技術手冊

    TMS320F28P550SG C2000? 32 位 MCU技術手冊

    TMS320F28P55x (F28P55x) 是 C2000? 實時微控制器系列的成員,該系列可擴展、超低延遲器件旨在提高電力電子器件的效率,包括但不限于:高功率密度、高開關頻率,并支持使用 GaN 和 SiC 技術。
    的頭像 發表于 04-14 10:35 ?2415次閱讀
    TMS320F28P550SG <b class='flag-5'>C2000</b>? 32 位 MCU技術手冊

    F29H859TU-Q1 汽車級 C2000? 64 位 MCU數據手冊

    F29H85x 和 F29P58x 是 C2000? 實時微控制器系列的成員,該系列是可擴展、超低延遲的器件,旨在提高電力電子器件的效率,包括但不限于:高功率密度、高開關頻率,并支持使用 GaN 和 SiC 技術。
    的頭像 發表于 04-14 09:44 ?1592次閱讀
    F29H859TU-Q1 汽車級 <b class='flag-5'>C2000</b>? 64 位 MCU數據手冊