0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AUTOSAR NvM Block的Native、Redundant和Dataset有什么區(qū)別?

嵌入式軟件實(shí)戰(zhàn)派 ? 來(lái)源:嵌入式軟件實(shí)戰(zhàn)派 ? 2023-04-06 10:29 ? 次閱讀

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

AUTOSAR NVM(Non-Volatile Memory)是AUTOSAR標(biāo)準(zhǔn)中定義的一種用于存儲(chǔ)非易失性數(shù)據(jù)的機(jī)制。在AUTOSAR NVM中,數(shù)據(jù)被存儲(chǔ)在一個(gè)或多個(gè)NVM塊中。每個(gè)NVM塊由一個(gè)或多個(gè)NVM數(shù)據(jù)集組成,可以存儲(chǔ)不同類(lèi)型的數(shù)據(jù)。

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

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

在AUTOSAR NVM塊中的三種類(lèi)型,它們之間的區(qū)別如下:

Native

Native數(shù)據(jù)是NVM塊中存儲(chǔ)的原始數(shù)據(jù),是應(yīng)用程序需要讀寫(xiě)的數(shù)據(jù)。Native數(shù)據(jù)只在NVM塊中存儲(chǔ)一份,如果數(shù)據(jù)損壞或丟失,將無(wú)法恢復(fù)。因此,在寫(xiě)入Native數(shù)據(jù)時(shí),需要確保數(shù)據(jù)的可靠性和一致性。

舉例說(shuō)明:江湖中的《九陽(yáng)神功》只有一份,弄丟了就丟了。

Redundant

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

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

DataSet

DataSet數(shù)據(jù)是AUTOSAR NVM中的一個(gè)特殊數(shù)據(jù)類(lèi)型,它是一組數(shù)據(jù)的集合。DataSet數(shù)據(jù)通常用于存儲(chǔ)應(yīng)用程序的配置數(shù)據(jù)或狀態(tài)數(shù)據(jù),例如車(chē)輛參數(shù)、故障碼等。與Native和Redundant數(shù)據(jù)不同,DataSet數(shù)據(jù)可以在應(yīng)用程序運(yùn)行期間進(jìn)行讀寫(xiě),并且可以使用AUTOSAR配置工具進(jìn)行配置和管理。

DataSet數(shù)據(jù)由一個(gè)或多個(gè)DataBlock組成,每個(gè)DataBlock由一個(gè)或多個(gè)DataElement組成。在寫(xiě)入DataSet數(shù)據(jù)時(shí),需要確保數(shù)據(jù)的可靠性和一致性,并且需要考慮到數(shù)據(jù)的版本管理和數(shù)據(jù)更新等問(wèn)題。

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

總之,在AUTOSAR NVM中,Native數(shù)據(jù)是應(yīng)用程序需要讀寫(xiě)的原始數(shù)據(jù),Redundant數(shù)據(jù)是為了增加數(shù)據(jù)的可靠性而存儲(chǔ)的備份數(shù)據(jù),DataSet數(shù)據(jù)是一組數(shù)據(jù)的集合,通常用于存儲(chǔ)配置數(shù)據(jù)或狀態(tài)數(shù)據(jù),一般可以是車(chē)廠(chǎng)不同車(chē)型的配置數(shù)據(jù)。

理論是這個(gè)樣子,話(huà)也是這么說(shuō),但總得拿出來(lái)遛一遛,看看實(shí)際的樣子。

于是乎,上代碼、改配置,直接運(yùn)行試試效果:

以下工程驗(yàn)證還是基于《AUTOSAR NvM模塊配置詳解》案例來(lái)修改。

Native

這個(gè)在原來(lái)教程有展示了,也是用得比較多一種,就配置成Native就好了,在EEPROM或FLASH中存儲(chǔ)的數(shù)據(jù)只有一份。

它的讀寫(xiě)示意圖是這樣的:

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

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

Redundant

Redundant就是冗余、重復(fù)的意思,最直觀(guān)的理解就是有多一個(gè)備份Block。這樣可以讓數(shù)據(jù)更加可靠、容錯(cuò)性更好,可用性也更好。

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

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

實(shí)際案例中的寫(xiě)入過(guò)程動(dòng)圖是這樣的:

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

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

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

真實(shí)的讀取過(guò)程也很簡(jiǎn)單:

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

但是,如果從第一個(gè)Block讀取的數(shù)據(jù)是錯(cuò)誤的(例如CRC校驗(yàn)不正確),那么,它就會(huì)從備份Block去讀取數(shù)據(jù)。以下,我故意將CRC部分改成別的錯(cuò)誤值,其讀出來(lái)后會(huì)校驗(yàn)CRC,發(fā)現(xiàn)錯(cuò)的,再?lài)L試讀取備份區(qū)域的數(shù)據(jù):

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

那么它的讀取過(guò)程是怎樣的呢?看動(dòng)圖:

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

這樣看來(lái),這個(gè)非常適合用于存儲(chǔ)非常重要的數(shù)據(jù),例如用于功能安全場(chǎng)合。

DataSet

DataSet數(shù)據(jù)是一組數(shù)據(jù),這組數(shù)據(jù)里面有很多份相互獨(dú)立的數(shù)據(jù)。它并不像Redundant那樣,這些數(shù)據(jù)即使會(huì)有些相似性,但都是不一樣的,改動(dòng)其中一份不會(huì)影響其他的。

DataSet的讀寫(xiě)其實(shí)跟Native的基本一樣,只是在操作之前需要調(diào)用NvM_SetDataIndex函數(shù)來(lái)指定要操作哪一個(gè)DataSet數(shù)據(jù)塊。它的參數(shù)定義是這樣的:

Std_ReturnType NvM_SetDataIndex(NvM_BlockIdType BlockId, uint8 DataIndex)

如果不調(diào)用這個(gè)NvM_SetDataIndex函數(shù),默認(rèn)情況下,是操作最前的那個(gè)數(shù)據(jù)塊,跟Native的表現(xiàn)一致:

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

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

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

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

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4123

    瀏覽量

    85273
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1197

    瀏覽量

    24538
  • DataSet
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    2188

原文標(biāo)題:AUTOSAR NvM Block的Native、Redundant和Dataset有什么區(qū)別?

文章出處:【微信號(hào):embedded_sw,微信公眾號(hào):嵌入式軟件實(shí)戰(zhàn)派】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    分析Autosar架構(gòu)下的NVM源碼

    Autosar(Automotive Open System Architecture)是一種用于汽車(chē)電子系統(tǒng)開(kāi)發(fā)的開(kāi)放式架構(gòu)標(biāo)準(zhǔn),旨在提供一種用于構(gòu)建可靠、安全的分布式系統(tǒng)的框架。其中,NVM
    的頭像 發(fā)表于 12-08 13:56 ?1143次閱讀

    鋰亞電池 鋰電池什么區(qū)別?

    鋰亞電池 鋰電池什么區(qū)別?
    發(fā)表于 10-30 08:51 ?3174次閱讀

    hdmi與vga什么區(qū)別

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

    RTOS和 TSOS什么區(qū)別?

    RTOS和TSOS什么區(qū)別?
    的頭像 發(fā)表于 03-12 11:22 ?4399次閱讀

    榮耀50和p50什么區(qū)別

    榮耀50和p50什么區(qū)別?
    的頭像 發(fā)表于 08-26 17:54 ?1.3w次閱讀

    單片機(jī)和PLC什么區(qū)別?

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

    單片機(jī)和PLC什么區(qū)別?

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

    NvMAUTOSAR中的層次結(jié)構(gòu)

    AUTOSAR中的NvM看起來(lái)挺難的,特別是在配置的時(shí)候,一堆參數(shù),都不知道是干什么用的。想去研究它,卻不知如何下手。其實(shí)吧,AUTOSAR的官方文檔講的挺詳細(xì)的,但是內(nèi)容很多,網(wǎng)上有很多文章對(duì)其進(jìn)行解讀,很多人沒(méi)時(shí)間也不想細(xì)讀
    的頭像 發(fā)表于 04-21 10:47 ?3725次閱讀

    Vivado Schematic中的實(shí)線(xiàn)和虛線(xiàn)什么區(qū)別?

    Vivado Schematic中的實(shí)線(xiàn)和虛線(xiàn)什么區(qū)別?
    的頭像 發(fā)表于 06-16 16:53 ?1006次閱讀
    Vivado Schematic中的實(shí)線(xiàn)和虛線(xiàn)<b class='flag-5'>有</b><b class='flag-5'>什么區(qū)別</b>?

    EML與DML:什么區(qū)別?該如何選擇?

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

    NVM Block連續(xù)寫(xiě)及Default Value問(wèn)題分析

    NVM這塊還只停留在按需求配置階段,遇到問(wèn)題不能深入分析。本系列文章將從遇到的問(wèn)題或者提出的疑問(wèn)著手,一起來(lái)更深入學(xué)習(xí)AUTOSAR架構(gòu)下的存儲(chǔ)協(xié)議棧。
    的頭像 發(fā)表于 07-25 14:22 ?2846次閱讀
    <b class='flag-5'>NVM</b> <b class='flag-5'>Block</b>連續(xù)寫(xiě)及Default Value問(wèn)題分析

    FPC與傳統(tǒng)PCB到底什么區(qū)別.zip

    FPC與傳統(tǒng)PCB到底什么區(qū)別
    發(fā)表于 03-01 15:37 ?4次下載

    pcb軟板和硬板什么區(qū)別

    pcb軟板和硬板什么區(qū)別
    的頭像 發(fā)表于 12-19 10:01 ?1485次閱讀

    hdi板與普通pcb什么區(qū)別

    hdi板與普通pcb什么區(qū)別
    的頭像 發(fā)表于 12-28 10:26 ?2486次閱讀

    線(xiàn)路板的層和階什么區(qū)別?

    線(xiàn)路板的層和階什么區(qū)別?
    的頭像 發(fā)表于 02-23 17:27 ?522次閱讀