專利名稱:車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法。
背景技術(shù):
非易失存儲(chǔ)器是混合動(dòng)カ整車控制器的核心単元,用于存儲(chǔ)控制器程序運(yùn)行所需的執(zhí)行代碼。由于非易失存儲(chǔ)器的物理特性及汽車控制器所處的嚴(yán)酷的工作環(huán)境,其存儲(chǔ)的內(nèi)容有可能出現(xiàn)錯(cuò)誤,導(dǎo)致控制器不能正常運(yùn)行,可能使車輛在行駛過程中造成嚴(yán)重的損失。因此,對(duì)非易失存儲(chǔ)器內(nèi)容的正確性進(jìn)行檢測(cè)是十分必要的。
現(xiàn)有技術(shù)中,對(duì)非易失存儲(chǔ)器內(nèi)容的校驗(yàn)是在毎次車輛啟動(dòng)時(shí)進(jìn)行全部?jī)?nèi)容的校驗(yàn),校驗(yàn)方法包括校驗(yàn)和、循環(huán)冗余校驗(yàn)等,消耗大量的時(shí)間,嚴(yán)重影響車輛的啟動(dòng)時(shí)間,對(duì)車輛使用的舒適性能造成極大的影響。
發(fā)明內(nèi)容
本發(fā)明的發(fā)明目的在于提供一種車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法,能夠在不影響車輛使用性能的同時(shí)進(jìn)行存儲(chǔ)內(nèi)容的檢驗(yàn)。實(shí)現(xiàn)本發(fā)明的技術(shù)方案一種車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法,控制器程序運(yùn)行的執(zhí)行代碼存儲(chǔ)在非易失存儲(chǔ)器內(nèi),執(zhí)行代碼按存儲(chǔ)地址劃分成多個(gè)數(shù)據(jù)段,其特征在于對(duì)燒寫入存儲(chǔ)器的執(zhí)行代碼預(yù)先進(jìn)行處理,計(jì)算每ー個(gè)數(shù)據(jù)段的校驗(yàn)和,所有數(shù)據(jù)段的校驗(yàn)和構(gòu)成校驗(yàn)數(shù)據(jù)存放在非易失存儲(chǔ)器的指定位置;校驗(yàn)時(shí),利用控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間,計(jì)算數(shù)據(jù)段的校驗(yàn)和,將校驗(yàn)和與存放在非易失存儲(chǔ)器指定位置的校驗(yàn)數(shù)據(jù)進(jìn)行比較。完成一個(gè)數(shù)據(jù)段的校驗(yàn)后,再進(jìn)行下一數(shù)據(jù)段的校驗(yàn),在所有數(shù)據(jù)段完成校驗(yàn)后,再次循環(huán)進(jìn)行校驗(yàn)。校驗(yàn)時(shí),若數(shù)據(jù)段的校驗(yàn)和與存放在非易失存儲(chǔ)器指定位置的校驗(yàn)數(shù)據(jù)不一致,則對(duì)該數(shù)據(jù)段設(shè)置標(biāo)志位。校驗(yàn)時(shí),將每個(gè)數(shù)據(jù)段劃分成多個(gè)數(shù)據(jù)塊,利用控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間計(jì)算ー個(gè)數(shù)據(jù)塊的校驗(yàn)和,直至計(jì)算出一個(gè)數(shù)據(jù)段的校驗(yàn)和。利用控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間計(jì)算出數(shù)據(jù)塊的校驗(yàn)和后,判斷是否已完成數(shù)據(jù)段的計(jì)算,若未完成,則保留計(jì)算結(jié)果,待下一個(gè)控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間繼續(xù)計(jì)算校驗(yàn)和。 數(shù)據(jù)塊的長(zhǎng)度設(shè)置有最大值。確定每次計(jì)算的數(shù)據(jù)塊長(zhǎng)度吋,應(yīng)使該數(shù)據(jù)塊位于存儲(chǔ)器的同一頁面空間本發(fā)明具有的有益效果本發(fā)明首先對(duì)燒寫入存儲(chǔ)器的執(zhí)行代碼預(yù)先進(jìn)行處理,計(jì)算每ー個(gè)數(shù)據(jù)段的校驗(yàn)和,所有數(shù)據(jù)段的校驗(yàn)和構(gòu)成校驗(yàn)數(shù)據(jù)存放在非易失存儲(chǔ)器的指定位置;校驗(yàn)時(shí),利用控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間,計(jì)算數(shù)據(jù)段的校驗(yàn)和,將校驗(yàn)和與存放在非易失存儲(chǔ)器指定位置的校驗(yàn)數(shù)據(jù)進(jìn)行比較,從而在不影響車輛使用性能的情況下,完成對(duì)存儲(chǔ)內(nèi)容的檢驗(yàn)。
圖I為將各數(shù)據(jù)段校驗(yàn)和存放到存儲(chǔ)器指定位置的示意圖;圖2為控制器程序運(yùn)行時(shí)對(duì)非易失存儲(chǔ)器內(nèi)容進(jìn)行校驗(yàn)的流程圖;
圖3為對(duì)存儲(chǔ)器內(nèi)容進(jìn)行校驗(yàn)的流程圖;圖4為校驗(yàn)時(shí)計(jì)算校驗(yàn)和的流程圖。
具體實(shí)施例方式如圖I所示,控制器程序運(yùn)行的執(zhí)行代碼存儲(chǔ)在非易失存儲(chǔ)器內(nèi),執(zhí)行代碼按存儲(chǔ)地址劃分成多個(gè)數(shù)據(jù)段,此為現(xiàn)有技術(shù)。對(duì)燒寫入存儲(chǔ)器的執(zhí)行代碼預(yù)先進(jìn)行處理,完成對(duì)執(zhí)行代碼的編譯之后,對(duì)生成的代碼文件將通過上位機(jī)程序進(jìn)行解析計(jì)算,計(jì)算每ー個(gè)數(shù)據(jù)段的校驗(yàn)和,校驗(yàn)和為該數(shù)據(jù)段所有值的和的低16 (或32)位值,所有數(shù)據(jù)段的校驗(yàn)和構(gòu)成校驗(yàn)數(shù)據(jù)存放在非易失存儲(chǔ)器的指定位置,該位置獨(dú)立于各數(shù)據(jù)段的存放位置,從而生成最終的執(zhí)行文件。如圖2、圖3所示,校驗(yàn)時(shí),利用控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間,計(jì)算數(shù)據(jù)段的校驗(yàn)和,將校驗(yàn)和與存放在非易失存儲(chǔ)器指定位置的校驗(yàn)數(shù)據(jù)進(jìn)行比較,完成一個(gè)數(shù)據(jù)段的校驗(yàn)后,再進(jìn)行下一數(shù)據(jù)段的校驗(yàn),在所有數(shù)據(jù)段完成校驗(yàn)后,再次循環(huán)進(jìn)行校驗(yàn)。校驗(yàn)時(shí),若數(shù)據(jù)段的校驗(yàn)和與存放在非易失存儲(chǔ)器指定位置的校驗(yàn)數(shù)據(jù)不一致,則對(duì)該數(shù)據(jù)段設(shè)置標(biāo)志位。如圖4所示,校驗(yàn)時(shí),將每個(gè)數(shù)據(jù)段劃分成多個(gè)數(shù)據(jù)塊,利用控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間計(jì)算ー個(gè)數(shù)據(jù)塊的校驗(yàn)和,直至計(jì)算出一個(gè)數(shù)據(jù)段的校驗(yàn)和。利用控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間計(jì)算出數(shù)據(jù)塊的校驗(yàn)和后,判斷是否已完成數(shù)據(jù)段的計(jì)算,若未完成,則保留計(jì)算結(jié)果,待下一個(gè)控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間繼續(xù)計(jì)算校驗(yàn)和。數(shù)據(jù)塊的長(zhǎng)度設(shè)置有最大值,考慮到某些控制器處理器存在分頁存儲(chǔ)器物理地址和處理器尋址空間存在映射情況(如ー些16位的處理器),為避免頁面切換帶來的程序復(fù)雜度的提升,在確定每次計(jì)算的數(shù)據(jù)快的大小吋,應(yīng)使該數(shù)據(jù)塊位于存儲(chǔ)器的同一頁面空間。
權(quán)利要求
1.一種車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法,控制器程序運(yùn)行的執(zhí)行代碼存儲(chǔ)在非易失存儲(chǔ)器內(nèi),執(zhí)行代碼按存儲(chǔ)地址劃分成多個(gè)數(shù)據(jù)段,其特征在于對(duì)燒寫入存儲(chǔ)器的執(zhí)行代碼預(yù)先進(jìn)行處理,計(jì)算每ー個(gè)數(shù)據(jù)段的校驗(yàn)和,所有數(shù)據(jù)段的校驗(yàn)和構(gòu)成校驗(yàn)數(shù)據(jù)存放在非易失存儲(chǔ)器的指定位置;校驗(yàn)時(shí),利用控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間,計(jì)算數(shù)據(jù)段的校驗(yàn)和,將校驗(yàn)和與存放在非易失存儲(chǔ)器指定位置的校驗(yàn)數(shù)據(jù)進(jìn)行比較。
2.根據(jù)權(quán)利要求I所述的車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法,其特征在于完成一個(gè)數(shù)據(jù)段的校驗(yàn)后,再進(jìn)行下一數(shù)據(jù)段的校驗(yàn),在所有數(shù)據(jù)段完成校驗(yàn)后,再次循環(huán)進(jìn)行校驗(yàn)。
3.根據(jù)權(quán)利要求2所述的車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法,其特征在于校驗(yàn)時(shí),若數(shù)據(jù)段的校驗(yàn)和與存放在非易失存儲(chǔ)器指定位置的校驗(yàn)數(shù)據(jù)不一致,則對(duì)該數(shù)據(jù)段設(shè)置標(biāo)志位。
4.根據(jù)權(quán)利要求3所述的車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法,其特征在于校驗(yàn)時(shí),將每個(gè)數(shù)據(jù)段劃分成多個(gè)數(shù)據(jù)塊,利用控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間計(jì)算ー個(gè)數(shù)據(jù)塊的校驗(yàn)和,直至計(jì)算出一個(gè)數(shù)據(jù)段的校驗(yàn)和。
5.根據(jù)權(quán)利要求4所述的車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法,其特征在于利用控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間計(jì)算出數(shù)據(jù)塊的校驗(yàn)和后,判斷是否已完成數(shù)據(jù)段的計(jì)算,若未完成,則保留計(jì)算結(jié)果,待下一個(gè)控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間繼續(xù)計(jì)算校驗(yàn)和。
6.根據(jù)權(quán)利要求5所述的車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法,其特征在于數(shù)據(jù)塊的長(zhǎng)度設(shè)置有最大值。
7.根據(jù)權(quán)利要求6所述的車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法,其特征在于確定每次計(jì)算的數(shù)據(jù)塊長(zhǎng)度吋,應(yīng)使該數(shù)據(jù)塊位于存儲(chǔ)器的同一頁面空間。
全文摘要
本發(fā)明涉及一種車用控制器非易失存儲(chǔ)器內(nèi)容的校驗(yàn)方法,控制器程序運(yùn)行的執(zhí)行代碼存儲(chǔ)在非易失存儲(chǔ)器內(nèi),執(zhí)行代碼按存儲(chǔ)地址劃分成多個(gè)數(shù)據(jù)段,其特征在于對(duì)燒寫入存儲(chǔ)器的執(zhí)行代碼預(yù)先進(jìn)行處理,計(jì)算每一個(gè)數(shù)據(jù)段的校驗(yàn)和,所有數(shù)據(jù)段的校驗(yàn)和構(gòu)成校驗(yàn)數(shù)據(jù)存放在非易失存儲(chǔ)器的指定位置;校驗(yàn)時(shí),利用控制器程序兩個(gè)運(yùn)行周期之間的空閑時(shí)間,計(jì)算數(shù)據(jù)段的校驗(yàn)和,將校驗(yàn)和與存放在非易失存儲(chǔ)器指定位置的校驗(yàn)數(shù)據(jù)進(jìn)行比較。本發(fā)明能夠在不影響車輛使用性能的同時(shí)進(jìn)行存儲(chǔ)內(nèi)容的檢驗(yàn)。
文檔編號(hào)G06F11/10GK102722421SQ20101059316
公開日2012年10月10日 申請(qǐng)日期2010年12月17日 優(yōu)先權(quán)日2010年12月17日
發(fā)明者徐國(guó)棟, 李軍華 申請(qǐng)人:奇瑞汽車股份有限公司