亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于CAN總線的車載VCU在線程序升級(jí)設(shè)計(jì)

        2019-02-26 00:37:38馮海明李海海黃玉鵬
        客車技術(shù)與研究 2019年1期
        關(guān)鍵詞:程序

        馮海明, 王 波, 張 健, 陳 強(qiáng), 李海海, 黃玉鵬

        (中通客車控股股份有限公司,山東 聊城 252000)

        整車控制器VCU是電動(dòng)客車的核心零部件之一,其可以根據(jù)駕駛員的加速踏板、制動(dòng)踏板和方向盤等信號(hào)實(shí)現(xiàn)整車的驅(qū)動(dòng)控制,還可以進(jìn)行制動(dòng)能量回收及對(duì)各子系統(tǒng)進(jìn)行故障診斷管理等[1-2]。在以TriCore1872微控制器作為載體設(shè)計(jì)VCU過(guò)程中,由于邏輯策略需要不斷修改,因此需要進(jìn)行反復(fù)的程序燒寫及更新。一般升級(jí)過(guò)程中,開發(fā)人員需要通過(guò)攜帶串口線及頻繁的上下電才能完成對(duì)整車控制器程序的下載及升級(jí)。刷寫燒寫過(guò)程比較繁瑣,降低了程序升級(jí)的效率。因此,本文開發(fā)一種基于CAN在線程序刷寫的方法,利用VCU現(xiàn)有的CAN通訊方式對(duì)其進(jìn)行在線編程升級(jí),通過(guò)開發(fā)BootLoader的程序引導(dǎo)與終端PC相結(jié)合,即可實(shí)現(xiàn)控制器程序在線更新。

        1 BootLoader原理簡(jiǎn)介及系統(tǒng)組成

        1.1 BootLoader原理簡(jiǎn)介

        BootLoader是VCU系統(tǒng)上電后應(yīng)用程序執(zhí)行前最早運(yùn)行的一段引導(dǎo)代碼程序[3-4]。其主要作用是硬件設(shè)備初始化及內(nèi)存映射等。以某款自主開發(fā)的VCU為例,在進(jìn)行CAN在線程序升級(jí)時(shí),首先需要在線更新BootLoader,然后等待BootLoader進(jìn)入下載模式,最后再通過(guò)CAN網(wǎng)絡(luò)從上位機(jī)中下載應(yīng)用程序。

        1.2 系統(tǒng)組成

        基于英飛凌32位TC1872內(nèi)核微控制器的VCU作為下位機(jī),基于VS開發(fā)工具的PC為上位機(jī)。目標(biāo)VCU是英飛凌汽車級(jí)單片機(jī),時(shí)鐘頻率為180 MHz,具有3路完全獨(dú)立的高速CAN驅(qū)動(dòng),支持CAN下載及在線調(diào)試模式。上位機(jī)PC與下位機(jī)的數(shù)據(jù)通訊選用USB CAN卡實(shí)現(xiàn)。

        整個(gè)CAN在線刷寫系統(tǒng)主要由VCU端、USB CAN卡、PC上位機(jī)3部分組成。其中,CAN卡實(shí)現(xiàn)PC上位機(jī)與VCU端之間的通信連接,用來(lái)傳輸指令與數(shù)據(jù);PC上位機(jī)是基于VS工具的MFC框架進(jìn)行開發(fā)。

        2 軟件升級(jí)設(shè)計(jì)及驗(yàn)證

        2.1 VCU端代碼設(shè)計(jì)與實(shí)現(xiàn)

        VCU端系統(tǒng)上電或復(fù)位后,應(yīng)用層程序在main函數(shù)中會(huì)周期性地調(diào)用底層can_prog_ack()函數(shù)。該函數(shù)主要用于內(nèi)存地址的跳轉(zhuǎn)、握手密鑰的解析及密鑰接收超時(shí)處理。當(dāng)VCU解析到密鑰報(bào)文數(shù)據(jù)域中第五個(gè)字節(jié)為0x38時(shí),即進(jìn)入在線程序升級(jí)模式;若不進(jìn)行應(yīng)用程序的升級(jí),則跳轉(zhuǎn)到0x0E00000處。在上位機(jī)發(fā)送BootLoader的長(zhǎng)度后,VCU返回握手成功,在BootLoader升級(jí)完成后,VCU會(huì)立即返回該BootLoader的版本號(hào),通過(guò)該版本號(hào)進(jìn)行BootLoader升級(jí)是否成功的校驗(yàn)判據(jù)。BootLoader升級(jí)成功后,VCU發(fā)送請(qǐng)求用戶代碼信號(hào),上位機(jī)接收到該信號(hào)后,開始下發(fā)應(yīng)用程序代碼長(zhǎng)度。VCU接收到上位機(jī)下發(fā)應(yīng)用程序代碼長(zhǎng)度數(shù)據(jù)幀后,調(diào)用Flash擦除函數(shù)進(jìn)行扇區(qū)的擦除并返回相應(yīng)的數(shù)據(jù)幀報(bào)文。擦除完畢后,PC上位機(jī)正式進(jìn)入應(yīng)用程序數(shù)據(jù)域的下發(fā),VCU接收到數(shù)據(jù)幀后由CAN命令函數(shù)處理解析各個(gè)數(shù)據(jù)包,并將數(shù)據(jù)寫入到相應(yīng)的Flash扇區(qū)中,同時(shí)VCU會(huì)返回剩余扇區(qū)數(shù),VCU每接收到32幀數(shù)據(jù),就進(jìn)行一次數(shù)據(jù)校驗(yàn)。直至最后接收全部數(shù)據(jù)后再進(jìn)行應(yīng)用程序數(shù)據(jù)總和的校驗(yàn),校驗(yàn)結(jié)束無(wú)誤后上位機(jī)會(huì)發(fā)送VCU重啟指令,VCU接收到該P(yáng)C下發(fā)的重啟指令后,自動(dòng)跳轉(zhuǎn)執(zhí)行新的應(yīng)用程序。

        2.2 PC端上位機(jī)軟件設(shè)計(jì)

        2.2.1 HEX文件轉(zhuǎn)Bin文件

        在Tasking中經(jīng)過(guò)編譯生成的是HEX文件,PC端上位機(jī)主要為VCU提供加載該升級(jí)程序代碼。HEX文件是ASCII的記錄文本文件,在HEX文件中,每一行是一個(gè)HEX記錄,包括數(shù)據(jù)長(zhǎng)度域、地址域、記錄類型域、數(shù)據(jù)域及校驗(yàn)和域[5-7]。上位機(jī)在發(fā)送應(yīng)用程序時(shí)為了保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,需要按照地址高低順序進(jìn)行傳輸,但是HEX文件中數(shù)據(jù)記錄并不是按照起始地址到終止地址的順序進(jìn)行排列的,由于每行數(shù)據(jù)都包含起始地址和數(shù)據(jù)長(zhǎng)度,所以HEX文件中數(shù)據(jù)不需要按照地址順序從低到高進(jìn)行排列;而Bin文件中的數(shù)據(jù)則是嚴(yán)格按照地址順序進(jìn)行排列。因此,需要將HEX文件的內(nèi)容轉(zhuǎn)換成按地址順序從低到高排列的二進(jìn)制數(shù)據(jù)Bin文件[8-10]。

        轉(zhuǎn)換過(guò)程主要分為4步:第一,打開HEX文件后通過(guò)遍歷整個(gè)HEX文件,找出起始地址和終止地址,然后根據(jù)終止地址和起始地址相減算出數(shù)據(jù)長(zhǎng)度,用得到的數(shù)據(jù)長(zhǎng)度開辟相應(yīng)的數(shù)組進(jìn)行內(nèi)存的分配[11-12];第二,再次遍歷整個(gè)HEX文件,計(jì)算每條數(shù)據(jù)記錄中的起始地址與HEX文件起始地址的偏移量,按照偏移量將該條數(shù)據(jù)記錄中的數(shù)據(jù)部分寫入剛開辟的數(shù)組中;第三,遍歷保存完的數(shù)組,判定是否與目標(biāo)VCU程序相匹配;第四,將該數(shù)組寫到文件中。

        2.2.2 主從機(jī)通信協(xié)議

        主從機(jī)數(shù)據(jù)傳輸與命令交互采用自定義的CAN通信協(xié)議,協(xié)議具體內(nèi)容見表1。

        表1 主從機(jī)通信協(xié)議

        2.2.3 功能設(shè)計(jì)需求

        PC端上位機(jī)界面的具體功能需求如下:

        1) 設(shè)置CAN波特率、CAN通道、報(bào)文間隔發(fā)送周期。

        2) 打開CAN設(shè)備并能正常接收CAN報(bào)文數(shù)據(jù),能根據(jù)路徑打開需要發(fā)送的HEX文件,并將文件自動(dòng)轉(zhuǎn)換成Bin文件,發(fā)送完成后發(fā)送重啟VCU指令。

        3) 數(shù)據(jù)通信相關(guān)信息顯示在編輯框中,并實(shí)時(shí)顯示程序更新狀態(tài)。

        4) 具備重刷及設(shè)備重啟功能。

        2.2.4 關(guān)鍵功能模塊設(shè)計(jì)

        1) 數(shù)據(jù)發(fā)送、校驗(yàn)。CAN報(bào)文的發(fā)送通過(guò)CAN卡提供的庫(kù)函數(shù)實(shí)現(xiàn)。由于HEX文件的下發(fā)需要通過(guò)路徑打開并進(jìn)行讀取和轉(zhuǎn)換才能進(jìn)行發(fā)送,所以報(bào)文數(shù)據(jù)的發(fā)送分為報(bào)文的填充和報(bào)文的發(fā)送。32位程序燒寫,每發(fā)送32幀數(shù)據(jù)校驗(yàn)一次,全部發(fā)送完畢后再進(jìn)行總和校驗(yàn),由于VCU會(huì)返回剩余的扇區(qū)數(shù),所以數(shù)據(jù)發(fā)送完后,程序會(huì)自動(dòng)停止。

        2) 數(shù)據(jù)的接收。CAN報(bào)文的接收通過(guò)接收數(shù)據(jù)線程,在線程中調(diào)用自定義的接收函數(shù),該接收函數(shù)會(huì)校驗(yàn)接收ID并返回相應(yīng)狀態(tài)值。

        3) 數(shù)據(jù)收發(fā)信息顯示。數(shù)據(jù)發(fā)送、接收時(shí)會(huì)觸發(fā)設(shè)定的data_show_add函數(shù),在該函數(shù)中,數(shù)據(jù)會(huì)被加載及顯示在編輯框中。

        2.2.5 PC端上位機(jī)界面及發(fā)送流程

        打開通過(guò)VS開發(fā)設(shè)計(jì)的PC端上位機(jī)軟件后,在界面上選擇相應(yīng)的CAN通道及波特率,點(diǎn)擊“連接”按鈕,此時(shí)編輯框會(huì)顯示設(shè)備開啟成功信息,通過(guò)“文件路徑”按鈕加載生成HEX文件,然后會(huì)彈出是否刷寫該HEX文件的提示框,點(diǎn)擊“確定”按鈕,開始進(jìn)行BootLoader的燒寫,燒寫完后自動(dòng)進(jìn)行應(yīng)用程序的燒寫,燒寫過(guò)程中,VCU會(huì)返回校驗(yàn)數(shù)據(jù),確保傳輸數(shù)據(jù)的真實(shí)性與完整性。當(dāng)全部應(yīng)用程序下載完后,進(jìn)度條會(huì)顯示100%,VCU自動(dòng)進(jìn)入重啟,編輯框顯示程序刷寫成功及當(dāng)前程序版本,整個(gè)應(yīng)用程序更新過(guò)程完成。

        2.3 實(shí)車驗(yàn)證

        本文設(shè)計(jì)的基于CAN在線VCU程序升級(jí)系統(tǒng)在某8 m純電動(dòng)客車上進(jìn)行實(shí)車驗(yàn)證。首先系統(tǒng)上電后用CAN卡設(shè)備連接VCU與PC上位機(jī),然后上位機(jī)進(jìn)行相關(guān)操作,經(jīng)過(guò)約20 s完成對(duì)VCU程序的升級(jí),升級(jí)后VCU自動(dòng)重啟,程序運(yùn)行正常。

        運(yùn)行結(jié)果表明,該系統(tǒng)進(jìn)行VCU程序升級(jí)時(shí),整個(gè)過(guò)程快速穩(wěn)定,更新升級(jí)后VCU程序運(yùn)行正常。

        3 結(jié)束語(yǔ)

        本文設(shè)計(jì)的基于CAN總線的VCU程序升級(jí)系統(tǒng)實(shí)現(xiàn)了VCU程序升級(jí)的快速性、準(zhǔn)確性及便捷性,提高了VCU程序更新效率。經(jīng)實(shí)車驗(yàn)證,該系統(tǒng)擦除Flash過(guò)程穩(wěn)定,CAN通信實(shí)時(shí)性高。該方法極大地方便了VCU程序的后期更新和維護(hù)。

        猜你喜歡
        程序
        給Windows添加程序快速切換欄
        電腦愛好者(2020年6期)2020-05-26 09:27:33
        試論我國(guó)未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        基于VMM的程序行為異常檢測(cè)
        偵查實(shí)驗(yàn)批準(zhǔn)程序初探
        我國(guó)刑事速裁程序的構(gòu)建
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        恐怖犯罪刑事訴訟程序的完善
        国产精品三级在线专区1 | 男女视频在线一区二区| 一区二区三区在线观看精品视频| 少妇免费av一区二区三区久久| 无码视频在线观看| 国产精品99久久精品爆乳| 国产男女乱婬真视频免费| 91久久香蕉国产熟女线看| 国产乱人对白| 乱人伦中文字幕成人网站在线| 国产自精品在线| 韩国一区二区三区黄色录像| 亚洲精品成人网站在线播放| 无码专区久久综合久中文字幕| 亚洲一区二区精品久久岳| 全部亚洲国产一区二区| 人妻少妇精品视频三区二区一区| 亚洲日韩乱码中文无码蜜桃臀| 美女视频永久黄网站免费观看国产| 一区二区在线观看日本视频| 国产乡下三级全黄三级| 成人无码午夜在线观看| 一级做a爱视频在线播放| 偷拍一区二区三区四区| 无码人妻av一二区二区三区| 国产精品久久久久尤物| 国产av精品久久一区二区| 日韩性爱视频| 五十路熟妇高熟无码视频| 伊在人亚洲香蕉精品区麻豆| 青青草手机免费播放视频| 久久综合丝袜日本网| 亚洲综合自拍| 亚洲一区二区三区亚洲| 成 人色 网 站 欧美大片在线观看| www国产精品内射熟女| 欧美人与动牲交片免费| 中文字幕av永久免费在线| 亚洲av永久精品爱情岛论坛| 无码av免费永久免费永久专区| 日韩人妻美乳中文字幕在线|