国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

單變量刷寫的研究與應(yīng)用

2022-05-04 12:11潘文卿王飛飛宋炳雨
汽車電器 2022年4期
關(guān)鍵詞:校驗備份變量

潘文卿,王飛飛,宋炳雨

(濰柴動力股份有限公司,山東 濰坊 261061)

在發(fā)動機下線的時候,會根據(jù)發(fā)動機的型號、適配領(lǐng)域等對于一些特殊變量進行現(xiàn)場標(biāo)定,數(shù)據(jù)標(biāo)定完成后,如果統(tǒng)一按照傳統(tǒng)的UDS(UDS-Unified Diagnostic Services,統(tǒng)一診斷服務(wù))刷寫流程進行數(shù)據(jù)的整區(qū)刷寫會耗費較多的時間,操作步驟也相對專業(yè)化,不利于不同層級的客戶進行操作,所以我們需要研究一種簡單、快捷的操作方法,只需知道要更新變量的地址、變量的長度,輸入后就可以完成單個變量的數(shù)據(jù)固化,方便操作,同時節(jié)約時間。

1 傳統(tǒng)UDS刷寫流程

傳統(tǒng)UDS刷寫流程如圖1所示,在刷寫流程中擦除時,是根據(jù)整個單片機的Block分區(qū)決定的,Block分區(qū)有256k、128k、64k等整塊大小,每當(dāng)擦除的時候都會整塊擦除,寫數(shù)據(jù)的時候也是整區(qū)寫入新的數(shù)據(jù)。請求下載過程中,上位機會傳輸要下載的起始地址、地址范圍等信息與下位機進行校驗,校驗通過后再進一步傳輸數(shù)據(jù),如果跨區(qū)了或者范圍不對,就會報錯,不再進行會話流程。在新的數(shù)據(jù)刷寫完畢后,會對刷寫的新數(shù)據(jù)進行校驗,上位機計算一個傳輸數(shù)據(jù)的校驗和,下位機根據(jù)刷寫的范圍和長度計算一個校驗和,兩個對比,如果一致則認(rèn)為此次刷寫是成功的,可以退出刷寫流程。在此過程中的計算、校驗、傳輸?shù)淖钚挝皇菍?yīng)單片機Flash分區(qū)的Block塊。

圖1 傳統(tǒng)UDS刷寫流程圖

2 單變量刷寫的設(shè)計

單變量刷寫的流程設(shè)計是在標(biāo)準(zhǔn)UDS刷寫流程中加入特殊的流程。如圖2所示,增加數(shù)據(jù)的上載查看功能,當(dāng)要更新數(shù)據(jù)時可以先將該權(quán)限范圍的數(shù)據(jù)上載上來查看是否需要更新,如果需要變更,根據(jù)下載流程,請求擦除,在擦除之前將對應(yīng)Flash中的數(shù)據(jù)先備份對應(yīng)大小的Flash備份區(qū)和一個對應(yīng)大小的RAM區(qū)中,然后再擦除,以保證在后續(xù)的操作過程中出現(xiàn)異常后數(shù)據(jù)的完整。在請求下載的過程中會將數(shù)據(jù)的起始地址和長度傳遞給下位機,下位機會根據(jù)安全校驗的權(quán)限進行判斷收到的地址范圍是否在權(quán)限范圍內(nèi),如果在權(quán)限范圍內(nèi)會繼續(xù)傳輸數(shù)據(jù),如果不在范圍內(nèi)存在跨權(quán)限的情況,會給出否定響應(yīng)并聲明權(quán)限不對。如果權(quán)限范圍正確,會校驗傳輸?shù)刂肥欠翊嬖诳鐓^(qū)的問題,如果存在跨區(qū)的問題時同樣會做出否定響應(yīng)提示上位機,單次傳輸數(shù)據(jù)必須傳輸同一個區(qū)的數(shù)據(jù),不能跨區(qū)、跨權(quán)限。在傳輸數(shù)據(jù)時,將收到的新數(shù)據(jù)在對應(yīng)的RAM中找到相對位置更新數(shù)據(jù),傳輸完畢后,如果本區(qū)域內(nèi)還有新的數(shù)據(jù)要傳輸,則繼續(xù)接收,繼續(xù)放到RAM中對應(yīng)的位置上,如果沒有數(shù)據(jù)傳輸了,就計算RAM中的校驗和與上位機計算的傳輸數(shù)據(jù)的校驗和作對比,如果一致,則將RAM中的數(shù)據(jù)寫到對應(yīng)的Flash中,結(jié)束會話流程。如果不一致則反饋否定響應(yīng)告知上位機傳輸過程有問題,需要進一步校驗傳輸。

圖2 單變量刷寫的流程圖

2.1 權(quán)限設(shè)置

下線數(shù)據(jù)權(quán)限分為發(fā)動機廠權(quán)限、整車廠權(quán)限、服務(wù)站權(quán)限、用戶權(quán)限,權(quán)限大小依次降低,并采用向下級聯(lián)的方式。發(fā)動機廠權(quán)限可以刷寫所有區(qū)的數(shù)據(jù),整車廠權(quán)限除了發(fā)動機廠權(quán)限區(qū)域的數(shù)據(jù)不能刷寫,其他權(quán)限范圍的數(shù)據(jù)都可以刷寫,服務(wù)站權(quán)限只能刷寫服務(wù)站和用戶權(quán)限范圍的數(shù)據(jù),用戶權(quán)限只能刷寫用戶權(quán)限范圍內(nèi)的數(shù)據(jù)。在安全校驗和請求下載步驟中都會按照權(quán)限的設(shè)置進行校驗,如果是采用整車廠進行安全校驗,在請求下載時傳輸?shù)氖前l(fā)動機廠數(shù)據(jù)域的起始地址和長度則會報出權(quán)限錯誤,不能往下進行刷寫,如果重新傳輸一個整車廠權(quán)限范圍內(nèi)的起始地址和長度,會繼續(xù)會話刷寫流程。權(quán)限級聯(lián)圖如圖3所示。

圖3 下線數(shù)據(jù)刷寫權(quán)限級聯(lián)結(jié)構(gòu)圖

2.2 刷寫過程安全保證

為了避免刷寫異常還需要開發(fā)一個Flash備份區(qū),當(dāng)數(shù)據(jù)請求在例程控制訪問時需要將對應(yīng)區(qū)域的原數(shù)據(jù)備份到Flash備份區(qū),以免在刷寫的過程中出現(xiàn)異常,導(dǎo)致新的數(shù)據(jù)沒有更新成功,原Flash區(qū)的數(shù)據(jù)又被擦掉了,導(dǎo)致控制器被刷死。在每個下線數(shù)據(jù)的Flash區(qū)的開頭都預(yù)留4字節(jié),分別存放單變量刷寫的標(biāo)志位和校驗和結(jié)果。如果對應(yīng)的下線數(shù)據(jù)區(qū)域進行過單變量刷寫,則在開頭2字節(jié)設(shè)定一個標(biāo)志位,在數(shù)據(jù)傳輸完畢后,例程控制-校驗和計算環(huán)節(jié)計算出校驗和后將檢驗和以及單變量刷寫的標(biāo)志位一起存放在RAM區(qū)的開頭最開始4個字節(jié),最后將RAM中的數(shù)據(jù)一起寫到對應(yīng)的Flash中。

在控制器重新上電的時候會對下線數(shù)據(jù)存放的Flash區(qū)域進行校驗,如果校驗異常,則進行回滾操作。單變量刷寫的異常斷電存在兩種情況:第1種是將原數(shù)據(jù)備份到備份區(qū)后,原來的數(shù)據(jù)已經(jīng)擦除掉了,新數(shù)據(jù)還沒有在Flash中寫的時候,此時Flash中是空的,檢測到這種結(jié)果的時候?qū)浞輩^(qū)的數(shù)據(jù)回滾到Flash中保證控制器是可以運行起來的;第2種情況是原數(shù)據(jù)備份到備份區(qū),擦除了Flash區(qū),新的數(shù)據(jù)開始往Flash區(qū)寫的過程中異常斷電了,這樣Flash區(qū)的開頭4個字節(jié)是有數(shù)據(jù)標(biāo)識的,校驗一下校驗和與Flash區(qū)的數(shù)據(jù)是否一致,如果不一致同樣將備份區(qū)的數(shù)據(jù)回滾到Flash區(qū)中以保證控制器能夠正常運行。

2.3 單變量刷寫的應(yīng)用

如圖4所示,通過上位機傳遞一個12字節(jié)的數(shù)據(jù),完成刷寫流程后我們用調(diào)試器查看對應(yīng)的Flash區(qū)數(shù)據(jù)就是傳輸?shù)臄?shù)據(jù)。

圖4 單變量刷寫的應(yīng)用

在實際的刷寫過程中通過實際測試,單個變量刷寫的流程大約在3s左右時間即可完成,可以大大提升發(fā)動機下線的速率。

3 結(jié)論

本文設(shè)計了一種單個變量刷寫的方案,單個變量是從上位機只傳輸要更新數(shù)值的單個或者幾個變量的地址和數(shù)據(jù)長度,按照刷寫權(quán)限進行區(qū)分,最高權(quán)限的可以對所有的下級變量進行刷寫,采用向下級聯(lián)的方式,最低權(quán)限的只能刷寫權(quán)限分區(qū)范圍內(nèi)的數(shù)據(jù)。在下位機中開發(fā)一塊對應(yīng)大小的RAM分區(qū),將要刷寫的變量所在的分區(qū)提前備份,新的數(shù)據(jù)傳輸過來后更新對應(yīng)位置的數(shù)據(jù),傳輸完成后將RAM中的數(shù)據(jù)統(tǒng)一寫到Flash中,同時需要一個Flash備份區(qū),將原有數(shù)據(jù)備份到Flash備份區(qū),以免刷寫過程中出現(xiàn)異常導(dǎo)致控制器無法使用。這種方法既可以大大減少刷寫數(shù)據(jù)的時間,提升發(fā)動機下線的速率,又能保證下線操作的安全性。

猜你喜歡
校驗備份變量
使用Excel朗讀功能校驗工作表中的數(shù)據(jù)
利用云備份微信聊天記錄
電能表在線不停電校驗技術(shù)
如何只備份有用數(shù)據(jù)而不備份垃圾數(shù)據(jù)
全方位備份,就用Acronis True Image
Windows10應(yīng)用信息備份與恢復(fù)
精通文件校驗的“門道”
多種方法快速校驗文件
分離變量法:常見的通性通法
不可忽視變量的離散與連續(xù)
册亨县| 繁峙县| 新乡市| 嘉鱼县| 崇明县| 山西省| 渝北区| 景泰县| 林口县| 雷山县| 武川县| 都昌县| 仙桃市| 田东县| 安顺市| 民和| 剑河县| 伊春市| 翼城县| 武清区| 定西市| 祁连县| 凭祥市| 辽源市| 柏乡县| 六枝特区| 江油市| 黄山市| 玛曲县| 安乡县| 柏乡县| 石城县| 红原县| 庄浪县| 广平县| 崇明县| 隆回县| 古蔺县| 湖北省| 淳安县| 浦城县|