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