專利名稱:一種用于混合動(dòng)力汽車整車控制軟件的實(shí)時(shí)校驗(yàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用在混合動(dòng)力汽車上的代碼安全校驗(yàn)方法,用來(lái) 提高混合動(dòng)力汽車整車控制軟件代碼的安全性,從而提高混合動(dòng)力汽 車的安全性。
背景技術(shù):
隨著汽車產(chǎn)品質(zhì)量的不斷提高,越來(lái)越多的汽車電子被應(yīng)用到汽 車領(lǐng)域,隨著大量的可編程控制電子器件在汽車和混合動(dòng)力汽車上的 廣泛應(yīng)用??刂栖浖a的安全一直以來(lái)成為影響整車安全的重要因 素之一。為此,從事相關(guān)方面的工程師對(duì)此進(jìn)行了探索,先后提出一
些用于整車通訊和內(nèi)存檢查的校驗(yàn)方法,如CRC,奇偶校驗(yàn),格雷碼 校驗(yàn)等等。但是這些校驗(yàn)方法都有其局限性,不能滿足大內(nèi)存容量的 閃存執(zhí)行代碼的實(shí)時(shí)校驗(yàn)要求。而且傳統(tǒng)的校驗(yàn)方法執(zhí)行需要的時(shí)間 長(zhǎng),不能滿足校驗(yàn)的要求。
發(fā)明內(nèi)容
由于存儲(chǔ)在閃存中的是執(zhí)行代碼,為了確保執(zhí)行代碼的安全需要 對(duì)內(nèi)存區(qū)中代碼進(jìn)行實(shí)時(shí)校驗(yàn),同時(shí)不能夠占用混合動(dòng)力汽車控制軟 件過(guò)多的執(zhí)行時(shí)間,而且保障該程序代碼在執(zhí)行之前,該段執(zhí)行碼已 經(jīng)被校驗(yàn)。本發(fā)明在結(jié)合大容量的閃存的實(shí)時(shí)校驗(yàn)的要求,采用分任 務(wù)實(shí)時(shí)校驗(yàn)的方法有效的解決這個(gè)問(wèn)題。具體技術(shù)方案如下。
一種用于混合動(dòng)力汽車整車控制軟件的實(shí)時(shí)校驗(yàn)方法,將閃存的 內(nèi)存分成不同的存儲(chǔ)區(qū),每一個(gè)存儲(chǔ)區(qū)的校驗(yàn)作為一個(gè)任務(wù),在每一
3個(gè)循環(huán)中只執(zhí)行一個(gè)任務(wù),對(duì)一個(gè)相應(yīng)的存儲(chǔ)區(qū)進(jìn)行校驗(yàn),只有存儲(chǔ)區(qū) 的每一行校驗(yàn)都通過(guò)的時(shí)候,該段存儲(chǔ)區(qū)校驗(yàn)才是通過(guò)的,每個(gè)任務(wù) 都可以根據(jù)主循環(huán)時(shí)間的許可情況,完成該任務(wù)的執(zhí)行。每一個(gè)校驗(yàn)
任務(wù)的執(zhí)行時(shí)間小于主循環(huán)時(shí)間的30%。
進(jìn)一步,對(duì)每一個(gè)校驗(yàn)任務(wù)都通過(guò)任務(wù)校驗(yàn)處理函數(shù)進(jìn)行處理, 在任務(wù)校驗(yàn)處理函數(shù)中,實(shí)時(shí)行掃描需要校驗(yàn)的閃存內(nèi)存區(qū),通過(guò)計(jì) 算查看每一行的計(jì)算數(shù)值是否與存儲(chǔ)在該行結(jié)尾的校驗(yàn)碼相等,來(lái)判 斷該行執(zhí)行代碼是否在執(zhí)行以前遭到破壞。如果判斷該行執(zhí)行代碼沒 有遭到破壞,退出該任務(wù),繼續(xù)執(zhí)行主循環(huán);如果判斷該行執(zhí)行代碼 遭到破壞,將禁用混合動(dòng)力的所有功能,進(jìn)入刷新模式。
對(duì)非摩托羅拉數(shù)據(jù)格式的二進(jìn)制文件需要首先通過(guò)轉(zhuǎn)換文件轉(zhuǎn)換 成摩托羅拉數(shù)據(jù)格式的二進(jìn)制文件。
本發(fā)明采用分任務(wù)校驗(yàn)的方法,將需要校驗(yàn)的閃存按不同的存儲(chǔ) 頁(yè)分解成不同的任務(wù),在每一個(gè)時(shí)間片許可的情況下,執(zhí)行一個(gè)校驗(yàn) 任務(wù),在該校驗(yàn)任務(wù)中實(shí)時(shí)的讀取每一行可執(zhí)行代碼的數(shù)值并且與行 尾的校驗(yàn)碼進(jìn)行比對(duì),檢查該行代碼是否正確。
本發(fā)明在通過(guò)實(shí)時(shí)的行掃描計(jì)算,驗(yàn)證執(zhí)行代碼的可靠性。符合 汽車或者混合動(dòng)力汽車控制軟件代碼安全的要求。
圖1 :文件格式轉(zhuǎn)換;
圖2 :校驗(yàn)任務(wù)占用的主循環(huán)時(shí)間片的數(shù)值; 圖3 :校-驗(yàn)任務(wù)的處理流程圖。
具體實(shí)施例方式
下面結(jié)合附圖介紹本發(fā)明的具體實(shí)施方式
。
本發(fā)明僅適用于執(zhí)行文件為摩托羅拉數(shù)據(jù)格式的二進(jìn)制文件。因 此,如圖l所示,對(duì)非摩托羅拉數(shù)據(jù)格式的二進(jìn)制文件H12文件通過(guò)轉(zhuǎn)換文件SRecCvt. exe轉(zhuǎn)換成摩托羅拉數(shù)據(jù)格式的二進(jìn)制文件S19文 件。該文件行數(shù)據(jù)格式固定,且行寬字節(jié)數(shù)固定,為后續(xù)的行掃描處 理提供定義規(guī)范,同時(shí)方便后面的程序處理。
在S19文件中,將每一個(gè)行執(zhí)行代碼的數(shù)值進(jìn)行校驗(yàn)計(jì)算,并且 將計(jì)算的結(jié)果放在該行結(jié)尾的最后一個(gè)字節(jié),作為后面內(nèi)存中執(zhí)行代 碼校驗(yàn)計(jì)算的校驗(yàn)碼。
這樣處理的好處
可以到每一行固定的地址上,掃描查詢到具有特定含義的數(shù)據(jù), 比如校驗(yàn)值,方便后續(xù)程序處理。
本發(fā)明主要是針對(duì)大容量的存儲(chǔ)介質(zhì)進(jìn)行校驗(yàn)檢查。如對(duì)256k 的閃存一次性檢查需要的時(shí)間大于25ms,該段程序的執(zhí)行時(shí)間將會(huì)超 過(guò)基本時(shí)間片的執(zhí)行時(shí)間,為此,根據(jù)motorola芯片閃存的特點(diǎn),將 閃存的內(nèi)存分成不同的存儲(chǔ)區(qū),每一個(gè)存儲(chǔ)區(qū)的校驗(yàn)作為 一個(gè)任務(wù), 在每一個(gè)循環(huán)中只執(zhí)行一個(gè)任務(wù)對(duì)一個(gè)相應(yīng)的存儲(chǔ)區(qū)進(jìn)行校驗(yàn),只有 每一行校驗(yàn)都通過(guò)時(shí)候,該段存儲(chǔ)區(qū)校驗(yàn)才是通過(guò)的,每個(gè)任務(wù)都可 以根據(jù)主循環(huán)時(shí)間的許可情況,完成該任務(wù)的執(zhí)行。這樣既然能夠?qū)?br>
閃存所有的存儲(chǔ)介質(zhì)進(jìn)行檢查,同時(shí)又能夠滿足程序代碼執(zhí)行時(shí)間的 限制要求。
如圖2所示,同時(shí)考慮整車控制軟件主程序時(shí)間片執(zhí)行時(shí)間的限 制要求,將閃存按照可許可執(zhí)行時(shí)間劃分為不同的任務(wù),每一主時(shí)間 片只執(zhí)行其中 一個(gè)任務(wù),每一個(gè)校驗(yàn)任務(wù)的執(zhí)行時(shí)間小于主時(shí)間片的 30%。
如圖3所示,本發(fā)明根據(jù)不同閃存容量大小的不同,將閃存分解 成不同大小的任務(wù)單元。然后,多個(gè)不同的任務(wù)將由任務(wù)校驗(yàn)分配管 理函數(shù)進(jìn)行該任務(wù)的管理和分配;對(duì)每一個(gè)校驗(yàn)任務(wù)都可以通過(guò)任務(wù) 校驗(yàn)處理函數(shù)進(jìn)行處理,在任務(wù)校驗(yàn)處理函數(shù)中,實(shí)時(shí)行掃描需要校 驗(yàn)的閃存內(nèi)存區(qū),通過(guò)計(jì)算查看每一行的計(jì)算數(shù)值是否與存儲(chǔ)在該行 結(jié)尾的校驗(yàn)碼是否相等,來(lái)判斷該行執(zhí)行代碼是否在執(zhí)行以前遭到破壞。如果沒有遭到破壞,退出該任務(wù),繼續(xù)執(zhí)行主循環(huán),如果遭到破 壞,程序?qū)⒔没旌蟿?dòng)力的所有功能,進(jìn)入刷新模式,保護(hù)混合動(dòng)力 汽車的安全。
權(quán)利要求
1、一種用于混合動(dòng)力汽車整車控制軟件的實(shí)時(shí)校驗(yàn)方法,將閃存的內(nèi)存分成不同的存儲(chǔ)區(qū),每一個(gè)存儲(chǔ)區(qū)的校驗(yàn)作為一個(gè)任務(wù),在每一個(gè)循環(huán)中只執(zhí)行一個(gè)任務(wù),對(duì)一個(gè)相應(yīng)的存儲(chǔ)區(qū)進(jìn)行校驗(yàn),只有存儲(chǔ)區(qū)的每一行校驗(yàn)都通過(guò)的時(shí)候,該段存儲(chǔ)區(qū)校驗(yàn)才是通過(guò)的,每個(gè)任務(wù)都根據(jù)主循環(huán)時(shí)間的許可情況,完成該任務(wù)的執(zhí)行。
2、 如權(quán)利要求1所述的實(shí)時(shí)校驗(yàn)方法,其特征在于每一個(gè)校驗(yàn) 任務(wù)的執(zhí)行時(shí)間小于主循環(huán)時(shí)間的30%。
3、 如權(quán)利要求1或2所述的實(shí)時(shí)校驗(yàn)方法,其特征在于對(duì)每一 個(gè)校驗(yàn)任務(wù)都通過(guò)任務(wù)校驗(yàn)處理函數(shù)進(jìn)行處理,在任務(wù)校驗(yàn)處理函數(shù) 中,實(shí)時(shí)行掃描需要校驗(yàn)的閃存內(nèi)存區(qū),通過(guò)計(jì)算查看每一行的計(jì)算 數(shù)值是否與存儲(chǔ)在該行結(jié)尾的校驗(yàn)碼相等,來(lái)判斷該行執(zhí)行代碼是否 在執(zhí)行以前遭到破壞。
4、 如權(quán)利要求1或2所述的實(shí)時(shí)校驗(yàn)方法,其特征在于如果判 斷該行執(zhí)行代碼沒有遭到破壞,退出該任務(wù),繼續(xù)執(zhí)行主循環(huán);如果 判斷該行執(zhí)行代碼遭到破壞,將禁用混合動(dòng)力的所有功能,進(jìn)入刷新 模式。
5、 如權(quán)利要求l-4任一項(xiàng)所述的實(shí)時(shí)校驗(yàn)方法,其特征在于 對(duì)非摩托羅拉數(shù)據(jù)格式的二進(jìn)制文件需要首先通過(guò)轉(zhuǎn)換文件轉(zhuǎn)換成摩 托羅拉數(shù)據(jù)格式的二進(jìn)制文件。
全文摘要
本發(fā)明公開了一種用于混合動(dòng)力汽車整車控制軟件的實(shí)時(shí)校驗(yàn)方法,將閃存的內(nèi)存分成不同的存儲(chǔ)區(qū),每一個(gè)存儲(chǔ)區(qū)的校驗(yàn)作為一個(gè)任務(wù),在每一個(gè)循環(huán)中只執(zhí)行一個(gè)任務(wù),對(duì)一個(gè)相應(yīng)的存儲(chǔ)區(qū)進(jìn)行校驗(yàn),只有存儲(chǔ)區(qū)的每一行校驗(yàn)都通過(guò)的時(shí)候,該段存儲(chǔ)區(qū)校驗(yàn)才是通過(guò)的,如果校驗(yàn)到某行執(zhí)行代碼遭到破壞,將禁用混合動(dòng)力的所有功能,進(jìn)入刷新模式。本發(fā)明采用分任務(wù)校驗(yàn)的方法,通過(guò)實(shí)時(shí)的行掃描計(jì)算,驗(yàn)證執(zhí)行代碼的可靠性,這樣既能夠?qū)﹂W存所有的存儲(chǔ)介質(zhì)進(jìn)行檢查,同時(shí)又能夠滿足程序代碼執(zhí)行時(shí)間的限制要求,符合混合動(dòng)力汽車控制軟件代碼安全的要求。
文檔編號(hào)G05B19/048GK101441453SQ20081018626
公開日2009年5月27日 申請(qǐng)日期2008年12月22日 優(yōu)先權(quán)日2008年12月22日
發(fā)明者柳士江 申請(qǐng)人:奇瑞汽車股份有限公司