• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于CAN總線的車載VCU在線程序升級設計

      2019-02-26 00:37:38馮海明李海海黃玉鵬
      客車技術與研究 2019年1期
      關鍵詞:校驗上位報文

      馮海明, 王 波, 張 健, 陳 強, 李海海, 黃玉鵬

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

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

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

      1.1 BootLoader原理簡介

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

      1.2 系統(tǒng)組成

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

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

      2 軟件升級設計及驗證

      2.1 VCU端代碼設計與實現(xiàn)

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

      2.2 PC端上位機軟件設計

      2.2.1 HEX文件轉Bin文件

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

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

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

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

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

      2.2.3 功能設計需求

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

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

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

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

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

      2.2.4 關鍵功能模塊設計

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

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

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

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

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

      2.3 實車驗證

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

      運行結果表明,該系統(tǒng)進行VCU程序升級時,整個過程快速穩(wěn)定,更新升級后VCU程序運行正常。

      3 結束語

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

      猜你喜歡
      校驗上位報文
      基于J1939 協(xié)議多包報文的時序研究及應用
      汽車電器(2022年9期)2022-11-07 02:16:24
      CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
      淺析反駁類報文要點
      中國外匯(2019年11期)2019-08-27 02:06:30
      特斯拉 風云之老阿姨上位
      車迷(2018年12期)2018-07-26 00:42:22
      爐溫均勻性校驗在鑄鍛企業(yè)的應用
      “三扶”齊上位 決戰(zhàn)必打贏
      基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
      ATS與列車通信報文分析
      以新思路促推現(xiàn)代農(nóng)業(yè)上位
      學習月刊(2015年3期)2015-07-09 03:51:04
      大型電動機高阻抗差動保護穩(wěn)定校驗研究
      電測與儀表(2015年1期)2015-04-09 12:03:02
      霍州市| 丹棱县| 苍溪县| 宜兰县| 甘南县| 濮阳县| 长白| 舟曲县| 北宁市| 通渭县| 文昌市| 交城县| 容城县| 延庆县| 奉节县| 获嘉县| 扎赉特旗| 绥芬河市| 天台县| 武邑县| 阿勒泰市| 西藏| 田林县| 旌德县| 隆尧县| 彭州市| 兴化市| 泽普县| 济南市| 宝山区| 海晏县| 高唐县| 礼泉县| 色达县| 集安市| 麻江县| 兴义市| 安图县| 吉林市| 禄劝| 余江县|