999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2022-05-04 12:11:28潘文卿王飛飛宋炳雨
汽車電器 2022年4期

潘文卿,王飛飛,宋炳雨

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

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

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

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

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

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

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

圖2 單變量刷寫的流程圖

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

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

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

2.2 刷寫過程安全保證

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

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

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

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

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

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

3 結(jié)論

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

主站蜘蛛池模板: 亚洲精品人成网线在线| 国产精品吹潮在线观看中文| 欧美福利在线观看| 2020亚洲精品无码| 日韩成人免费网站| 国产精品亚洲精品爽爽| 精品夜恋影院亚洲欧洲| 国产对白刺激真实精品91| 一边摸一边做爽的视频17国产| 无码福利视频| 91视频日本| 欧美精品一二三区| 日韩天堂在线观看| 99999久久久久久亚洲| 丰满的少妇人妻无码区| 久久久久人妻一区精品| www欧美在线观看| 综合色在线| 日韩区欧美区| 国产高清在线精品一区二区三区| 国产精品一区二区在线播放| 永久免费精品视频| 日韩不卡高清视频| 精品国产美女福到在线直播| 99视频有精品视频免费观看| 国产成人91精品免费网址在线| 91成人在线免费视频| 91麻豆精品视频| 97超爽成人免费视频在线播放| 久久久久无码精品| 久久国产高清视频| 亚洲Va中文字幕久久一区| 久久国产高清视频| av在线无码浏览| 精品国产香蕉在线播出| 免费精品一区二区h| 亚洲欧美日韩色图| 2021精品国产自在现线看| 国产精品一线天| 久久99热这里只有精品免费看| 国产精品白浆在线播放| 欧美日本视频在线观看| 精品久久综合1区2区3区激情| 午夜毛片免费看| 中文无码伦av中文字幕| 九九精品在线观看| 精品一区二区三区中文字幕| 1024国产在线| 无码福利视频| 在线观看免费人成视频色快速| 国产综合另类小说色区色噜噜| 日韩在线网址| 亚洲水蜜桃久久综合网站| 色爽网免费视频| 亚洲无码高清视频在线观看 | 亚洲综合在线最大成人| 国产黄色免费看| 日韩无码黄色网站| 最新国产麻豆aⅴ精品无| 中文字幕首页系列人妻| 色综合婷婷| 国产一级毛片网站| 国产a在视频线精品视频下载| 国产精品入口麻豆| 亚洲综合经典在线一区二区| 国产亚洲美日韩AV中文字幕无码成人 | 国产亚洲精品自在久久不卡 | 国产精品刺激对白在线| 91福利片| 欧美综合区自拍亚洲综合天堂| 国产精品视频3p| 婷婷成人综合| 国产91九色在线播放| 国产精品片在线观看手机版 | 亚洲中文在线视频| 2021国产精品自产拍在线| 中文一级毛片| 午夜精品一区二区蜜桃| 在线国产综合一区二区三区| 久久久久免费精品国产| 久久精品视频一| 亚洲一区波多野结衣二区三区|