衡阳派盒市场营销有限公司

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

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

3天內不再提示

AUTOSAR NvM Block的Native、Redundant和Dataset有什么區別?

嵌入式軟件實戰派 ? 來源:嵌入式軟件實戰派 ? 2023-04-06 10:29 ? 次閱讀

AUTOSAR的NvM Block有三種Native、Redundant和DataSet,用得最多的是Native,但你知道其他兩種是干什么的嗎?

AUTOSAR NVM(Non-Volatile Memory)是AUTOSAR標準中定義的一種用于存儲非易失性數據的機制。在AUTOSAR NVM中,數據被存儲在一個或多個NVM塊中。每個NVM塊由一個或多個NVM數據集組成,可以存儲不同類型的數據。

3088f952-d419-11ed-bfe3-dac502259ad0.png

圖見《一圖讀懂AUTOSAR NvM(附pdf版文檔資源)》

在AUTOSAR NVM塊中的三種類型,它們之間的區別如下:

Native

Native數據是NVM塊中存儲的原始數據,是應用程序需要讀寫的數據。Native數據只在NVM塊中存儲一份,如果數據損壞或丟失,將無法恢復。因此,在寫入Native數據時,需要確保數據的可靠性和一致性。

舉例說明:江湖中的《九陽神功》只有一份,弄丟了就丟了。

Redundant

Redundant數據是為了增加數據的可靠性而存儲在NVM塊中的備份數據。與Native數據不同,Redundant數據通常存儲在NVM塊中的不同位置,以增加數據的冗余度。如果Native數據損壞或丟失,可以使用Redundant數據進行恢復。在寫入Redundant數據時,需要確保數據的可靠性和一致性,以確保Redundant數據可以成功地用于數據恢復。

舉例說明:江湖中,如果你巧合得到了一份《葵花寶典》,你也很清楚這玩意的“魅力”,你不想擁有它也不希望它失傳,于是偷偷抄了一份,把原件扔到江湖中,愛咋咋地。如果江湖中的原件丟了,那你可以偷偷拿出你的手抄稿慢慢研究,咳咳~~

DataSet

DataSet數據是AUTOSAR NVM中的一個特殊數據類型,它是一組數據的集合。DataSet數據通常用于存儲應用程序的配置數據或狀態數據,例如車輛參數、故障碼等。與Native和Redundant數據不同,DataSet數據可以在應用程序運行期間進行讀寫,并且可以使用AUTOSAR配置工具進行配置和管理。

DataSet數據由一個或多個DataBlock組成,每個DataBlock由一個或多個DataElement組成。在寫入DataSet數據時,需要確保數據的可靠性和一致性,并且需要考慮到數據的版本管理和數據更新等問題。

舉例說明:江湖中的《降龍十八掌》有好多個版本,例如有洪七公版、郭靖版和喬峰版,每個版本都有點不一樣。

總之,在AUTOSAR NVM中,Native數據是應用程序需要讀寫的原始數據,Redundant數據是為了增加數據的可靠性而存儲的備份數據,DataSet數據是一組數據的集合,通常用于存儲配置數據或狀態數據,一般可以是車廠不同車型的配置數據。

理論是這個樣子,話也是這么說,但總得拿出來遛一遛,看看實際的樣子。

于是乎,上代碼、改配置,直接運行試試效果:

以下工程驗證還是基于《AUTOSAR NvM模塊配置詳解》案例來修改。

Native

這個在原來教程有展示了,也是用得比較多一種,就配置成Native就好了,在EEPROM或FLASH中存儲的數據只有一份。

它的讀寫示意圖是這樣的:

30e25e2a-d419-11ed-bfe3-dac502259ad0.png

30fdd088-d419-11ed-bfe3-dac502259ad0.png

Redundant

Redundant就是冗余、重復的意思,最直觀的理解就是有多一個備份Block。這樣可以讓數據更加可靠、容錯性更好,可用性也更好。

注意:只要數據了,備份每次都要重新同步的。

31106216-d419-11ed-bfe3-dac502259ad0.png

實際案例中的寫入過程動圖是這樣的:

3120f1ee-d419-11ed-bfe3-dac502259ad0.gif

在讀的時候,讀到其中一份是正確的就OK了

315ab884-d419-11ed-bfe3-dac502259ad0.png

真實的讀取過程也很簡單:

317506b2-d419-11ed-bfe3-dac502259ad0.gif

但是,如果從第一個Block讀取的數據是錯誤的(例如CRC校驗不正確),那么,它就會從備份Block去讀取數據。以下,我故意將CRC部分改成別的錯誤值,其讀出來后會校驗CRC,發現錯的,再嘗試讀取備份區域的數據:

319439b0-d419-11ed-bfe3-dac502259ad0.png

那么它的讀取過程是怎樣的呢?看動圖:

31ae0426-d419-11ed-bfe3-dac502259ad0.gif

這樣看來,這個非常適合用于存儲非常重要的數據,例如用于功能安全場合。

DataSet

DataSet數據是一組數據,這組數據里面有很多份相互獨立的數據。它并不像Redundant那樣,這些數據即使會有些相似性,但都是不一樣的,改動其中一份不會影響其他的。

DataSet的讀寫其實跟Native的基本一樣,只是在操作之前需要調用NvM_SetDataIndex函數來指定要操作哪一個DataSet數據塊。它的參數定義是這樣的:

Std_ReturnType NvM_SetDataIndex(NvM_BlockIdType BlockId, uint8 DataIndex)

如果不調用這個NvM_SetDataIndex函數,默認情況下,是操作最前的那個數據塊,跟Native的表現一致:

31ee02e2-d419-11ed-bfe3-dac502259ad0.gif

如果操作第二塊就是這樣(起始地址是第一塊的后面,緊挨著的):

320dee0e-d419-11ed-bfe3-dac502259ad0.gif

以上就是NvM Block的Native、Redundant和DataSet的區別了。

審核編輯 :李倩

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

    關注

    13

    文章

    4353

    瀏覽量

    86169
  • 數據集
    +關注

    關注

    4

    文章

    1209

    瀏覽量

    24833
  • DataSet
    +關注

    關注

    0

    文章

    5

    瀏覽量

    2211

原文標題:AUTOSAR NvM Block的Native、Redundant和Dataset有什么區別?

文章出處:【微信號:embedded_sw,微信公眾號:嵌入式軟件實戰派】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    分析Autosar架構下的NVM源碼

    Autosar(Automotive Open System Architecture)是一種用于汽車電子系統開發的開放式架構標準,旨在提供一種用于構建可靠、安全的分布式系統的框架。其中,NVM
    的頭像 發表于 12-08 13:56 ?1761次閱讀

    鋰亞電池 鋰電池什么區別

    鋰亞電池 鋰電池什么區別
    發表于 10-30 08:51 ?3292次閱讀

    hdmi與vga什么區別

    現在的有線連接一般都是利用HDMI和VGA這兩種接口,但HDMI和VGA接口到底什么區別呢?
    的頭像 發表于 01-24 13:58 ?3.9w次閱讀

    RTOS和 TSOS什么區別

    RTOS和TSOS什么區別
    的頭像 發表于 03-12 11:22 ?4654次閱讀

    晶體管與繼電器輸出的PLC什么區別

    晶體管與繼電器輸出的PLC什么區別
    的頭像 發表于 12-24 21:57 ?2749次閱讀

    單片機和PLC什么區別

    單片機和PLC什么區別
    發表于 11-13 19:21 ?11次下載
    單片機和PLC<b class='flag-5'>有</b><b class='flag-5'>什么區別</b>?

    單片機和PLC什么區別

    單片機和PLC什么區別
    發表于 11-23 16:21 ?79次下載
    單片機和PLC<b class='flag-5'>有</b><b class='flag-5'>什么區別</b>?

    NvMAUTOSAR中的層次結構

    AUTOSAR中的NvM看起來挺難的,特別是在配置的時候,一堆參數,都不知道是干什么用的。想去研究它,卻不知如何下手。其實吧,AUTOSAR的官方文檔講的挺詳細的,但是內容很多,網上有很多文章對其進行解讀,很多人沒時間也不想細讀
    的頭像 發表于 04-21 10:47 ?4356次閱讀

    Vivado Schematic中的實線和虛線什么區別

    Vivado Schematic中的實線和虛線什么區別
    的頭像 發表于 06-06 11:13 ?1232次閱讀
    Vivado Schematic中的實線和虛線<b class='flag-5'>有</b><b class='flag-5'>什么區別</b>?

    EML與DML:什么區別?該如何選擇?

    DML和EML什么區別?該如何選擇?本文將回答這些問題。
    的頭像 發表于 06-30 10:43 ?2522次閱讀
    EML與DML:<b class='flag-5'>有</b><b class='flag-5'>什么區別</b>?該如何選擇?

    NVM Block連續寫及Default Value問題分析

    NVM這塊還只停留在按需求配置階段,遇到問題不能深入分析。本系列文章將從遇到的問題或者提出的疑問著手,一起來更深入學習AUTOSAR架構下的存儲協議棧。
    的頭像 發表于 07-25 14:22 ?3906次閱讀
    <b class='flag-5'>NVM</b> <b class='flag-5'>Block</b>連續寫及Default Value問題分析

    FPC與傳統PCB到底什么區別.zip

    FPC與傳統PCB到底什么區別
    發表于 03-01 15:37 ?4次下載

    pcb軟板和硬板什么區別

    pcb軟板和硬板什么區別
    的頭像 發表于 12-19 10:01 ?2121次閱讀

    hdi板與普通pcb什么區別

    hdi板與普通pcb什么區別
    的頭像 發表于 12-28 10:26 ?2911次閱讀

    線路板的層和階什么區別

    線路板的層和階什么區別
    的頭像 發表于 02-23 17:27 ?865次閱讀
    百家乐官网技巧经| 百家乐官网增值公式| 上游棋牌下载| 新利百家乐官网的玩法技巧和规则 | 百家乐官网7scs娱乐场| 大发888线上娱乐城| 百家乐官网路子分| 百家乐官网喜牛| 梁河县| 威尼斯人娱乐网网上百家乐| 悦榕庄百家乐官网的玩法技巧和规则| 博彩老头排列三| 百家乐隔一数打投注法| 真钱百家乐官网五湖四海全讯网 | 哪家百家乐官网最好| 大发888注册送58| 广发百家乐的玩法技巧和规则| 什么事百家乐官网的路单| 利来娱乐网| 百家乐赌场技巧网| 高科技百家乐官网牌具| 百家乐官网在线直播| 盈丰娱乐| 榆次百家乐的玩法技巧和规则 | 百家乐官网小游戏开发| 大发888官方网站登录| 金宝博百家乐娱乐城| 百家乐官网北京| 百家乐网页游戏| 网上老虎机游戏| 网络百家乐骗局| 百家乐官网澳门技巧| 百家乐官网的方法和公式| 东方夏威夷娱乐| 大发888游戏下载平台| 大发888游戏官方| 现金百家乐人气最高| 百家乐官网庄闲和赢率| 百家乐官网游戏资料网| 黑水县| 百家乐官网庄闲几率|