技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 在線編程技術(shù)在車身控制系統(tǒng)中的應(yīng)用

在線編程技術(shù)在車身控制系統(tǒng)中的應(yīng)用

時間:2006-08-09 11:20:00來源:wangsl

導(dǎo)語:?隨著flash存儲器件的普遍使用,在線編程IAP的下載方式得到廣泛的推廣與應(yīng)用。
1.引言 隨著flash存儲器件的普遍使用,在線編程IAP(In Application Programming)的下載方式得到廣泛的推廣與應(yīng)用。flash在線編程技術(shù)是指ECU的flash存儲器具有電可擦除、可寫入的特點,可以實現(xiàn)MCU代碼的在線更新。傳統(tǒng)的在線編程應(yīng)用系統(tǒng)采用PC機并行口或串行口實現(xiàn)數(shù)據(jù)通信,需要專用的硬件設(shè)備支持,開發(fā)成本較高,且編程操作不方便。 汽車車身控制系統(tǒng)的控制對象比較多而且分布于整個車體,系統(tǒng)應(yīng)用的電子控制單元ECU(Electronic Control Unit)節(jié)點安裝位置分散,如前節(jié)點和儀表節(jié)點在駕駛臺部位,后節(jié)點在車尾部位,左、右門節(jié)點則在左、右門部位等。車身控制系統(tǒng)采用的是分布式控制方式,但基于分布式系統(tǒng)的編程應(yīng)用工具比較少,難以實現(xiàn)系統(tǒng)在線編程應(yīng)用和代碼升級。 控制器局域網(wǎng)CAN(Controller Area Network)總線屬于現(xiàn)場總線范疇,是一種有效支持分布式控制和實時控制的串行通訊網(wǎng)絡(luò),目前已經(jīng)在汽車電子應(yīng)用系統(tǒng)中得到了廣泛的應(yīng)用。將CAN總線在線編程技術(shù)應(yīng)用到汽車車身控制系統(tǒng)中,完成ECU節(jié)點的代碼下載功能,既可以實現(xiàn)控制系統(tǒng)的在線編程應(yīng)用與升級,又能充分利用現(xiàn)場總線的應(yīng)用特點。 2.系統(tǒng)分析與設(shè)計 2.1系統(tǒng)整體設(shè)計分析 車身控制系統(tǒng)由若干ECU節(jié)點組成,每個節(jié)點采用Freescale處理器MC68HC908GZ系列單片機作為MCU,能夠支持flash在線應(yīng)用編程。PC機通過USBCAN接口卡接入CAN總線網(wǎng)絡(luò),當(dāng)系統(tǒng)處于在線編程狀態(tài)時,PC機通過CAN總線網(wǎng)絡(luò)可以方便的與ECU節(jié)點通信,車身控制系統(tǒng)軟、硬件設(shè)計無需做任何改動,就能夠利用已有的硬件應(yīng)用系統(tǒng)平臺實現(xiàn)代碼下載、系統(tǒng)在應(yīng)用升級。如圖1所示在線編程系統(tǒng)包括三部分:PC機節(jié)點、CAN總線通信網(wǎng)絡(luò)和ECU節(jié)點。 圖1 在線編程系統(tǒng)結(jié)構(gòu)框圖 在線編程軟件體系分為三層結(jié)構(gòu):控制層、通信層和實現(xiàn)層,在線編程功能通過軟件設(shè)計實現(xiàn)。最高層為控制層,運行在上位機PC計算機中,主要負責(zé)代碼生成和ECU節(jié)點在線編程的啟停;中間層為通信層,運行在CAN總線設(shè)備上,實現(xiàn)CAN總線鏈路層和部分應(yīng)用層功能,如報文發(fā)送、接收及濾波;底層為實現(xiàn)層,運行在ECU節(jié)點,實現(xiàn)對嵌入式節(jié)點的編程操作,具體結(jié)構(gòu)見圖2。通信層處理的數(shù)據(jù)有三種:控制命令、代碼數(shù)據(jù)和反饋信息,其中控制命令和代碼數(shù)據(jù)由控制層向?qū)崿F(xiàn)層傳遞,反饋信息則是由實現(xiàn)層向控制層傳遞,所有數(shù)據(jù)傳輸遵循系統(tǒng)定制的CAN總線應(yīng)用層協(xié)議,該協(xié)議在分布式控制系統(tǒng)中CAN總線協(xié)議應(yīng)用層的基礎(chǔ)上,重新劃分報文標(biāo)志符空間,并定義相應(yīng)的含義和可執(zhí)行操作。本文主要探討系統(tǒng)的具體實現(xiàn),總線協(xié)議的擴展定義不作詳細介紹。 圖2 系統(tǒng)軟件體系結(jié)構(gòu)示意圖 2.2PC機控制層軟件的設(shè)計 整個控制系統(tǒng)中,控制層軟件位于PC機節(jié)點,通過與實現(xiàn)層軟件通信來控制編程操作的啟停和代碼的總線數(shù)據(jù)傳輸,不直接參與對ECU節(jié)點的控制功能操作。 控制層軟件的功能主要包括兩部分:首先是生成下載到flash中的最終代碼數(shù)據(jù),PC機軟件不參與flash編程,但必須為ECU節(jié)點提供編程所需要的信息,因此,PC機軟件對生成的二進制代碼進行分析,獲取flash編程的必要信息,如代碼長度、寫入flash的地址、校驗字等;其次是控制在線編程的啟動和停止,控制層維護一個稱為反饋信息表格的數(shù)據(jù)結(jié)構(gòu),表格中的信息表明哪些節(jié)點編程結(jié)束、哪些節(jié)點需要重新啟動在線編程,根據(jù)表格內(nèi)容的含義,對不同ECU節(jié)點發(fā)送不同的命令報文,啟動相應(yīng)操作。 控制層軟件完全由PC機實現(xiàn),但系統(tǒng)中PC機不僅僅完成控制層功能,還包括通信層的部分功能。PC機通過轉(zhuǎn)換模塊接入CAN總線網(wǎng)絡(luò),除了完成接收發(fā)送CAN總線報文的基本功能外,更重要的是實現(xiàn)系統(tǒng)定制的CAN通信協(xié)議。 2.3ECU節(jié)點軟件的分析 實現(xiàn)層位于ECU節(jié)點,直接完成flash編程操作,是整個在線編程系統(tǒng)的核心部分。按系統(tǒng)運行流程,實現(xiàn)層軟件可以分為三部分:首先,完成狀態(tài)切換,進入在線編程狀態(tài);其次,接收代碼報文,并進行校驗;最后,將接收到的代碼寫入flash空間,驗證無誤后,結(jié)束在線編程。同通信層類似,實現(xiàn)層需要定義ECU節(jié)點在線編程協(xié)議。在線編程技術(shù)的基本原理:從結(jié)構(gòu)上將Flash存儲器映射為兩個存儲空間,運行一個存儲體上的程序,打開flash高壓編程開關(guān)對另一個存儲體進行編程操作。MC08HC908GZ60的內(nèi)部flash存儲器具有保護功能,可以設(shè)置flash寫保護空間,將flash空間分為兩段,一段為系統(tǒng)區(qū),存儲系統(tǒng)代碼,另一段為保護區(qū),存儲實現(xiàn)層代碼,對系統(tǒng)區(qū)編程時,保護BootLoader代碼,兩個代碼段共存于一個系統(tǒng),又不會相互干擾。系統(tǒng)打開高壓開關(guān)后,任何讀flash操作都是非法的,系統(tǒng)進入在線編程狀態(tài)后,需要將flash編程代碼拷貝到RAM中,再運行相關(guān)代碼。在線編程時,RAM空間需要劃分出兩段專用空間,一段為CAN接收緩沖區(qū),一段為代碼空間,是在線編程時代碼存放和運行空間。 同樣的,ECU節(jié)點不僅運行實現(xiàn)層軟件,同時完成了通信層的部分功能,本質(zhì)上通信層是對系統(tǒng)定制的CAN通信協(xié)議的具體實現(xiàn),由PC機節(jié)點和ECU節(jié)點代碼共同完成,兩者通過CAN總線實現(xiàn)通信的過程就是通信層的工作過程。 3.ECU節(jié)點的軟件設(shè)計 在線編程系統(tǒng)中,ECU節(jié)點的代碼即為保護區(qū)的代碼,可以分為兩部分:通信層部分代碼和實現(xiàn)層代碼。通信層代碼主要由CAN報文接收中斷函數(shù)和報文發(fā)送函數(shù)組成,兩函數(shù)都是不允許在線更新,因此代碼必須位于flash保護區(qū)中。 圖3 實現(xiàn)層軟件流程 保護區(qū)除了存儲通信層部分代碼外,還包括實現(xiàn)層的全部代碼。實現(xiàn)層的主要功能是flash編程操作,將接收緩沖區(qū)的代碼數(shù)據(jù)寫入flash的確定地址空間內(nèi),在flash編程操作前需要完成節(jié)點的狀態(tài)遷移,即ECU節(jié)點必須進入在線編程狀態(tài)。本系統(tǒng)采用的方式是在啟動過程中檢測啟動報文,若檢測到有啟動報文到達,則跳入特定的地址,進入在線編程狀態(tài)。具體流程圖3所示: 系統(tǒng)啟動后,先檢測是否收到啟動報文,然后轉(zhuǎn)入相應(yīng)的狀態(tài),省略了啟動后的初始化操作。由圖可知,有兩處跳轉(zhuǎn)可以進入正常運行狀態(tài),這可以通過“JMP Main”匯編指令完成,保護區(qū)地址不變,那么啟動向量就不需要改變。MC08HC908GZ60共有26個中斷源,中斷向量位于(0xFFCC-0xFFFF)空間內(nèi),內(nèi)容是支持在線更新的,如何實現(xiàn)更新呢?有兩種解決方法:第一種, MC08HC908GZ60的中斷向量表固定在(0xFFCC-0xFFFF)之間的52個字節(jié)內(nèi),對中斷向量表空間的內(nèi)容進行單獨編程寫入。注意,不是整頁寫入,中斷向量表所在頁空間中部分地址是保留空間,部分地址是寄存器地址,不可能用圖3編程流程對向量表空間編程,只能對頁內(nèi)部分空間執(zhí)行在線編程操作。第二種解決方法:通過輔助表格實現(xiàn)中斷向量表的在線更新,如圖4所示。 圖4 輔助表格示意圖 所謂輔助表格是一個存放指令的數(shù)據(jù)結(jié)構(gòu),表格內(nèi)存放跳轉(zhuǎn)到中斷入口的指令,中斷向量則對應(yīng)輔助表格中的單元格地址,輔助表格的地址是用戶定義的,位于支持在線編程的系統(tǒng)區(qū)空間。輔助表格中所有指令均采用擴展尋址,指令長3個字節(jié),設(shè)輔助表格地址Tbl_Start,則表格中第N單元格的地址為Tbl_Start+(26-N)*3,輔助表格代碼如下: ORG Tbl_Start ;輔助表格的起始地址 JMP Address_ISR24 ;跳轉(zhuǎn)到24號中斷處理程序入口 JMP Address_ISR23 ;跳轉(zhuǎn)到23號中斷處理程序入口 ―――――――――― JMP Main ;跳轉(zhuǎn)到Main主函數(shù)入口 上面的代碼屬于系統(tǒng)區(qū)代碼,除首地址外,其他地址均根據(jù)需要隨時改變的。中斷向量表中內(nèi)容則可以保持不變,代碼如下: ORG $FFCC ;中斷向量表的地址空間0xFFCC-0xFFFF Vectors FDB Tbl_Start, Tbl_Start+3, Tbl_Start+6―――― ;向量表的內(nèi)容 這樣,中斷向量表代碼可以在保護區(qū)內(nèi)保持不變,不需要對表內(nèi)容直接進行更新。 4.結(jié)束語 利用CAN總線完成對汽車電子控制系統(tǒng)節(jié)點的在線編程,利用了已有的硬件條件解決了車身分布式控制系統(tǒng)的現(xiàn)場升級問題。系統(tǒng)主要通過軟件方式實現(xiàn),不需要進行單獨硬件開發(fā),開發(fā)過程易于掌握。在線編程時,只需要將PC機節(jié)點接入車身控制系統(tǒng)預(yù)留的CAN總線接口即可,操作方便,本技術(shù)模型不僅可以應(yīng)用于汽車電子領(lǐng)域,還可以推廣到其他分布式控制系統(tǒng),應(yīng)用前景看好。

標(biāo)簽:

點贊

分享到:

上一篇:變頻器在化纖行業(yè)中的詳細介紹

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號