一種參數存儲方法、裝置及汽車控制器的制造方法
【技術領域】
[0001]本發明屬于汽車控制技術領域,尤其涉及一種參數存儲方法、裝置及汽車控制器。
【背景技術】
[0002]隨著新能源的發展,新能源汽車在近兩年也得到了快速的發展,在新能源汽車領域,純電動汽車占據了主導地位,它完全依靠電力作為車的驅動能源。純電動車控制器工作環境為高壓或者大電流,或者兩者都存在,工作環境比較惡劣,同時控制器里面存儲了很多系統的標定參數。
[0003]目前,純電動車控制器剛上電時,將標定參數從系統存儲器中讀取到主控芯片中,然后按照主控芯片中的數據進行運行;如果在運行的過程中主控芯片中數據有修改,則將修改內容存儲到系統存儲器中,其操作過程參見圖1,具體的,系統存儲器的存儲空間是按照每16個字節一頁,每次要修改標定參數的時候,是分成三步進行的:第一步,將要修改的標定參數所在頁的16個字節全部擦除;第二步,將要保存的數據通過總線傳輸到系統存儲器內;第三步,開始將數據寫入。由于主控芯片是RAM類型,掉電之后,數據會丟失;而系統存儲器為FLASH或者EEPR0M,掉電之后,數據不會丟失。如果存儲數據的時候,按照以上步驟存儲,在操作的過程中,如果系統掉電,那么數據被擦除,則對應系統存儲器的數據既不是以前的數據,也不是新的數據,導致參數和實際需求偏差會很大,造成系統運行故障,同時,從系統存儲器中向主控芯片讀取標定參數時,只是做簡單的數據處理和判斷,沒有糾錯功能,上述幾點都有可能導致純電動車控制器使用過程中的潛在風險加大,一旦發生,就會導致機毀人亡。
【發明內容】
[0004]本發明實施例提供了一種參數存儲方法、裝置及汽車控制器,旨在解決現有技術在標定參數向系統存儲器保存過程中和從系統存儲器向外讀取的過程中會存在數據錯誤風險的問題。
[0005]—方面,提供一種參數存儲方法,所述參數保存于系統存儲器中,主控芯片從系統存儲器中讀寫所述參數,所述方法包括:
[0006]將系統存儲器劃分為若干個N個字節的存儲頁,對存儲頁進行編組,每三存儲頁為一分組,所述N為大于等于16的正整數;
[0007]同一個參數分別存儲在同一分組的三個不同存儲頁的相同地址。
[0008]進一步地,所述方法還包括:
[0009]當系統存儲器和主控芯片之間不存在高壓頻繁切換和大電流時,從系統存儲器中將所述參數所在分組的所有存儲頁讀取到主控芯片中,將同一分組同一地址不同存儲頁的所述參數進行仲裁比較。
[0010]進一步地,所述從系統存儲器中將所述參數所在分組的所有存儲頁讀取到主控芯片中,將同一分組同一地址不同存儲頁的所述參數進行仲裁比較具體:
[0011]如果同一分組同一地址不同存儲頁的所述參數都一致,則所述參數直接采用;
[0012]如果同一分組同一地址不同存儲頁的所述參數只有兩個一致,將兩個一致的所述參數作為正確值采用,并以所述正確值修正同一分組其它存儲頁中所述參數;
[0013]如果同一分組同一地址不同存儲頁的所述參數都不一致,以地址優先原則,將同一分組各個存儲頁中地址小的所述參數為正確值采用,并以所述正確值修正同一分組其它存儲頁中所述參數。
[0014]進一步地,所述方法還包括:
[0015]接收主控芯片中被修改或修正后的所述參數作為寫入數據依次更新于對應同一分組同一地址不同存儲頁中。
[0016]進一步地,所述接收主控芯片中被修改或修正后的所述參數作為寫入數據依次更新于對應同一分組同一地址不同存儲頁中之后還包括:
[0017]從系統存儲器中回讀同一分組同一地址不同存儲頁中更新完成所述參數,并與所述寫入數據進行校驗,如果兩者不符,進行二次所述寫入數據的存儲。
[0018]另一方面,提供一種參數存儲裝置,所述參數保存于系統存儲器中,主控芯片從系統存儲器中讀寫所述參數,所述裝置包括:
[0019]存儲分組單元,用于將系統存儲器劃分為若干個N個字節的存儲頁,對存儲頁進行編組,每三存儲頁為一分組,所述N為大于等于16的正整數;
[0020]參數存儲單元,用于同一個參數分別存儲在同一分組的三個不同存儲頁的相同地址。
[0021]進一步地,所述裝置還包括:
[0022]參數仲裁單元,用于當系統存儲器和主控芯片之間不存在高壓頻繁切換和大電流時,從系統存儲器中將所述參數所在分組的所有存儲頁讀取到主控芯片中,將同一分組同一地址不同存儲頁的所述參數進行仲裁比較。
[0023]進一步地,所述參數仲裁單元具體用于如果同一分組同一地址不同存儲頁的所述參數都一致,則所述參數直接采用;
[0024]如果同一分組同一地址不同存儲頁的所述參數只有兩個一致,將兩個一致的所述參數作為正確值采用,并以所述正確值修正同一分組其它存儲頁中所述參數;
[0025]如果同一分組同一地址不同存儲頁的所述參數都不一致,以地址優先原則,將同一分組各個存儲頁中地址小的所述參數為正確值采用,并以所述正確值修正同一分組其它存儲頁中所述參數。
[0026]進一步地,所述裝置還包括:
[0027]參數更新單元,用于接收主控芯片中被修改或修正后的所述參數作為寫入數據對應同一分組同一地址不同存儲頁中。
[0028]進一步地,所述裝置還包括:
[0029]參數校驗單元,用于從系統存儲器中回讀同一分組同一地址不同存儲頁中更新完成所述參數,并與所述寫入數據進行校驗,如果兩者不符,進行二次所述寫入數據的存儲。
[0030]再一方面,提供一種汽車控制器,由系統存儲器和主控芯片組成,所述系統存儲器包括上述參數存儲裝置。
[0031]在本發明實施例,將系統存儲器劃分為若干個N個字節的存儲頁,對存儲頁進行編組,每三存儲頁為一分組;同一個參數分別存儲在同一分組的三個不同存儲頁的相同地址,當系統存儲器和主控芯片之間不存在高壓頻繁切換和大電流時,從系統存儲器中將所述參數所在分組的所有存儲頁讀取到主控芯片中,將同一分組同一地址不同存儲頁的所述參數進行仲裁比較。本發明,通過存儲動作錯開工作時間,采用單個數據多地址存儲的方式,降低了參數存儲的出錯率,分頁存儲消除了保存數據時控制器掉電帶來的掉電數據丟失的盲區,采用少數服從多數、地址優先原則仲裁數據,增強了數據糾錯能力,以及通過糾錯后的數據回寫,消除了數據錯誤的累積效應。
【附圖說明】
[0032]圖1是本發明【背景技術】提供的現有參數存儲流程圖;
[0033]圖2是本發明實施例一提供的參數存儲方法的實現流程圖;
[0034]圖3是本發明實施例一提供的參數存儲結構示意框圖;
[0035]圖4是本發明實施例二提供的參數存儲裝置的具體結構框圖。
【具體實施方式】
[0036]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0037]在本發明實施例中,將系統存儲器劃分為若干個N個字節的存儲頁,對存儲頁進行編組,每三存儲頁為一分組,所述N為大于等于16的正整數;同一個參數分別存儲在同一分組的三個不同存儲頁的相同地址。
[0038]以下結合具體實施例對本發明的實現進行詳細描述:
[0039]實施例一
[0040]圖2示出了本發明實施例一提供的參數存儲方法的實現流程,所述參數保存于系統存儲器中,在汽車控制器中具體為標定參數,主控芯片從系統存儲器中讀寫所述參數,詳述如下:
[0041]在步驟S201中,將系統存儲器劃分為若干個N個字節的存儲頁,對存儲頁進行編組,每三存儲頁為一分組,所述N為大于等于16的正整數。
[0042]在本實施例中,將系統存儲器劃分為若干個16個字節的存儲頁,對存儲頁進行編組,每三存儲頁為一分組,每個存儲頁大小相同,同一地址存儲相同的參數。
[0043]在步驟S202中,同一個參數分別存儲在同一分組的三個不同存儲頁的相同地址。
[0044]在本實施例中,同一個參數分別存在三個不同存儲頁的相同地址里面,相當于每一個參數都有一個正式數據,兩個影子數據,如圖3所示,對于數據a?h來講,它們是一組數據,但是分別存儲在三個不同的頁碼的相同地址中,比如數據a分別存儲在頁碼1?3的地址0中,正常情況下這三個數據是一樣的,如果對其進行修改,只能一個一個的修改,即使有一個數據出現問題,也會有另外兩個合理的數據推算出來數據的合理值,由于主控芯片在向系統存儲器中存儲數據的時候約定要求以單存儲頁為單位進行操作,不會發生三個頁同時擦除的情況,那么至少有兩個存儲頁的數據是合理的。
[0045]作為一個優選方案,當系統存儲器和主控芯片之間不存在高壓頻繁切換和大電流時,從系統存儲器中將所述參數所在分組的所有存儲頁讀取到主控芯片中,將同一分組同一地址不同存儲頁的所述參數進行仲裁比較。
[0046]在本實施例中,在汽車控制系統剛上電時,處于初始化階段,汽車控制器對外輸出為零時,或者行駛停止,汽車控制器對外輸出為零時,這兩種情況下,主控芯片和系統內存工作環境不存在高壓頻繁切換和大電流,從系統存儲器中將所述參數所在分組的所有存儲頁讀取到主控芯片中,將同一分組同一地址不同存儲頁的所述參數進行仲裁比較,其中,仲裁比較有三種情況:
[0047]第一種情況是,如果同一分組同一地址不同存儲頁的所述參數都一致,則所述參數直接采用;
[0048]第二種情況是,如果同一分組同一地址不同存儲頁的所述參數只有兩個一致,將兩個一致的所述參數作為正確值采用,并