丁櫟力
(中車青島四方機(jī)車車輛股份有限公司,山東 青島 266111)
隨著國家排放標(biāo)準(zhǔn)的逐步提高,電控發(fā)動機(jī)的數(shù)量越來越多,電控系統(tǒng)的核心-電子控制單元 (ECU)已經(jīng)成為柴油機(jī)不可或缺的組成部分。ECU與傳統(tǒng)柴油機(jī)零部件的區(qū)別是它除了擁有硬件實(shí)體部分還有數(shù)據(jù)內(nèi)容部分。ECU要想正常工作,必須刷寫相應(yīng)的程序和數(shù)據(jù),目前能進(jìn)行數(shù)據(jù)刷寫的系統(tǒng)有EOL、INCA、CANape等。生產(chǎn)過程中多使用EOL系統(tǒng),而在開發(fā)和售后支持的時候會使用INCA或CANape進(jìn)行數(shù)據(jù)的刷寫以及上傳下載操作。對于ECU的售后服務(wù)來講不僅僅是更換零件本身,它同時還需要相應(yīng)的數(shù)據(jù)支持,因電控燃油系統(tǒng)的特殊性,給ECU刷寫不同的數(shù)據(jù)可能會實(shí)現(xiàn)不同的控制功能,數(shù)據(jù)與電控燃油系統(tǒng)不匹配可能會導(dǎo)致部件的損害,由此造成發(fā)動機(jī)無法正常工作。以上的種種使得發(fā)動機(jī)電控?cái)?shù)據(jù)的安全性問題越來越凸顯。
無論是整個整車行業(yè),還是單獨(dú)的發(fā)動機(jī)廠商,都面臨電控發(fā)動機(jī)數(shù)據(jù)二次刷寫不可控的情況。本文的研究旨在建立一套基于INCA刷寫ECU的保密管理系統(tǒng),通過硬件和軟件相結(jié)合的方法,在刷寫ECU數(shù)據(jù)的同時,增加審批授權(quán),用戶管理以及記錄的追溯查詢等模塊,保證數(shù)據(jù)傳遞過程的安全性。主要是限制工程師尤其是廠外工程師在使用INCA時對ECU的數(shù)據(jù)刷寫操作,做到使用INCA數(shù)據(jù)刷寫的過程可控,并記錄刷寫的信息,防止已出廠電控發(fā)動機(jī)的ECU數(shù)據(jù)的隨意修改,保證數(shù)據(jù)的安全性。
NCA是ETAS公司推出的通用標(biāo)定工具,軟件全稱為Integrated Calibration and Acquisition System,可以使用它來進(jìn)行ECU數(shù)據(jù)的測量標(biāo)定以及數(shù)據(jù)刷寫,其工程的組成如圖1所示。
圖1 INCA工程
就數(shù)據(jù)的刷寫而言,其實(shí)質(zhì)就是通過通信協(xié)議,將數(shù)據(jù)文件下載到ECU存儲區(qū)中的過程,這個過程除了需要INCA軟件本身外,至少還要包含以下幾個要素。
1)硬件設(shè)備。通過以太網(wǎng)或USB等方式連接電腦,K線或CAN線方式連接ECU,通常需支持?jǐn)?shù)據(jù)刷寫所需的協(xié)議,如KWP2000、UDS等,是電腦上INCA軟件與ECU的連接橋梁,主要是進(jìn)行協(xié)議轉(zhuǎn)換。
2)數(shù)據(jù)文件。包含編譯后生成的程序及數(shù)據(jù)的原始文件 (HEX或S19格式)以及A2L文件等,符合芯片廠商定義及相應(yīng)的ASAM標(biāo)準(zhǔn)。
3)配置文件。即Prof文件,由ECU的廠商提供,定義整個數(shù)據(jù)刷寫流程的細(xì)節(jié),包括刷寫區(qū)域、數(shù)據(jù)交換格式、安全校驗(yàn)算法等,是INCA數(shù)據(jù)刷寫過程的關(guān)鍵控制文件。
Prof文件,即數(shù)據(jù)刷寫配置文件,是與ECU的版本及對應(yīng)的軟件版本息息相關(guān)的。一般說來,不同的ECU使用不同的Prof文件,同一ECU的不同軟件版本使用不同的Prof文件,即使是同一版本的ECU軟件 (如V720)針對不同的終端廠商(如濰柴和玉柴),也會使用不同的Prof文件加以區(qū)分。下面以濰柴EDC17 V720的Prof為例,進(jìn)行說明。
Prof文件解壓后是一個文件夾,其中包含一系列文件,如圖2所示,按照功能可以分為4部分。
圖2 Prof文件
1)prof文件夾。其中包含數(shù)據(jù)刷寫時的安全校驗(yàn)算法dll文件,即平時我們常說的seed&key文件,用來控制數(shù)據(jù)刷寫的權(quán)限。
2)profe文件夾。包含多個互相調(diào)用的“*.pri”、“*.prm”文件以及“*.cnf”配置文件,用來定義整個數(shù)據(jù)刷寫的過程。其中“*.cnf”文件用來說明所使用的通信介質(zhì)、通信協(xié)議、地址區(qū)間等,還包含對刷寫CAN協(xié)議的各種參數(shù)描述,如時間參數(shù)、例程設(shè)置、ECU ID、波特率等信息;“*.prm”文件是腳本語言文件,規(guī)定刷寫的整體流程,并通過調(diào)用具體的pri文件將其具體化;“*.pri”文件也是腳本語言文件,記錄了執(zhí)行刷寫各個子功能的詳細(xì)過程。
3)info文件。為說明文檔,其中.bak文件為其備份。
4)install文件。初始化文件,在Prof文件被導(dǎo)入INCA軟件時使用,同樣的.bak文件為其備份。
原有刷寫流程見圖3。根據(jù)對INCA數(shù)據(jù)刷寫過程的分析,采用控制Prof文件調(diào)用的方式實(shí)現(xiàn)對數(shù)據(jù)刷寫過程的控制。具體如圖4所示,在原有刷寫流程中,將調(diào)用Prof文件實(shí)體隱藏,用我們稱之為“虛擬接口”的文件取代,這樣當(dāng)INCA數(shù)據(jù)刷寫時,由“虛擬接口”負(fù)責(zé)引導(dǎo),獲取真正的Prof文件并進(jìn)行控制。在實(shí)際的系統(tǒng)開發(fā)過程中,又主要是虛擬化Prof文件中seed&key文件的接口。
圖3 原有刷寫流程
圖4 INCA保密系統(tǒng)方案
在這種思路的前提下,根據(jù)具體使用對象和環(huán)境的不同,可以將真實(shí)的Prof文件 (主要是seed&key文件)置于網(wǎng)絡(luò)服務(wù)器中管理或保密介質(zhì)中管理,由此又可以分為網(wǎng)絡(luò)方式和U盾方式兩種實(shí)現(xiàn)形式,其系統(tǒng)的整體架構(gòu)見圖5。
圖5 INCA保密系統(tǒng)架構(gòu)
本地客戶端軟件是本次INCA保密系統(tǒng)的關(guān)鍵部分,它被安裝在INCA軟件所在的電腦上,作為INCA的插件形式存在。它是整個保密系統(tǒng)實(shí)現(xiàn)的前端,也是與最終INCA用戶交互的部分,客戶端軟件主要實(shí)現(xiàn)以下功能。
1)用戶權(quán)限控制,用戶如果要進(jìn)行數(shù)據(jù)刷寫操作,必須使用用戶名和密碼登陸,根據(jù)早已賦予的刷寫權(quán)限和次數(shù)進(jìn)行操作,不登陸無法進(jìn)行。
2)與INCA關(guān)聯(lián),釋放"虛擬接口"文件,并在INCA啟動后監(jiān)控?cái)?shù)據(jù)刷寫過程,一旦需要,調(diào)用網(wǎng)絡(luò)或U盾方式獲取數(shù)據(jù)。
3)與網(wǎng)絡(luò)服務(wù)器或U盾連接,傳遞seed,在網(wǎng)絡(luò)服務(wù)器或U盾中計(jì)算后返回key,供數(shù)據(jù)刷寫安全訪問中使用。
4)簡單的用戶信息獲取,如獲取用戶當(dāng)前權(quán)限,當(dāng)前可用的刷寫次數(shù)等,相關(guān)的信息都需在用戶登陸后才能獲得。另外還能實(shí)現(xiàn)用戶刷寫過程信息的上傳。
網(wǎng)絡(luò)方式適用于當(dāng)客戶端電腦連接于局域網(wǎng)時使用,例如試驗(yàn)臺架所使用的電腦。
在網(wǎng)絡(luò)連接的方式下,用戶通過客戶端軟件登陸后,便建立了客戶端電腦 (安裝有INCA軟件)與服務(wù)器的連接,真實(shí)的seed&key算法置于服務(wù)器中,當(dāng)用INCA進(jìn)行刷寫操作時,客戶端軟件會根據(jù)具體的需求,向服務(wù)器發(fā)送請求及seed,服務(wù)器計(jì)算對應(yīng)的key并根據(jù)用戶的授權(quán)次數(shù)判斷是否是被授權(quán)的刷寫操作,如果是則返回key至客戶端軟件至INCA,完成刷寫過程并記錄;如果刷寫未被授權(quán),則拒絕,INCA的數(shù)據(jù)刷寫過程會終止。
U盾方式在技術(shù)人員攜帶安裝INCA的電腦外出,脫離網(wǎng)絡(luò)時使用,如出差人員等。在本次的INCA保密系統(tǒng)開發(fā)中,我們使用了更改特殊文件系統(tǒng)的普通U盤作為U盾的載體,當(dāng)然也可以使用專用的U盾硬件實(shí)現(xiàn),其作用和效果應(yīng)該是一致的。
U盾的存在主要是應(yīng)對無網(wǎng)絡(luò)連接環(huán)境下保密系統(tǒng)的使用。首先U盾的授權(quán)是必須連接網(wǎng)絡(luò)進(jìn)行的,在這時會根據(jù)U盾的ID號關(guān)聯(lián)特定的用戶,事先根據(jù)申請授權(quán)當(dāng)前U盾某個具體用戶特定的刷寫次數(shù)權(quán)限;這樣用戶離線使用INCA時,只需要插上U盾,輸入相應(yīng)的用戶名及密碼,就可以進(jìn)行數(shù)據(jù)刷寫。U盾的刷寫次數(shù)及時間都受一定限制,如果長時間不用會自動鎖定,默認(rèn)為30天,再次使用需重新激活,這樣即使U盾丟失也可確保數(shù)據(jù)的安全。
U盾方式與網(wǎng)絡(luò)方式的區(qū)別就在于,網(wǎng)絡(luò)方式向網(wǎng)絡(luò)服務(wù)器請求,而U盾方式向U盾請求,在使用時終端用戶并沒有明顯的感受。
服務(wù)器是整個INCA保密系統(tǒng)的中樞,其中保存了不同種類的安全校驗(yàn)算法,并在接收到客戶端請求時承擔(dān)判斷權(quán)限、計(jì)算key、記錄過程的工作,根據(jù)使用用戶的數(shù)量不同,對其的性能要求也不同。
服務(wù)器上安裝數(shù)據(jù)庫,用來記錄用戶信息,保留刷寫記錄,權(quán)限分配控制等,同時服務(wù)器也對外提供Web服務(wù),實(shí)現(xiàn)用戶登錄,安全訪問計(jì)算等工作。
另外,INCA保密的管理平臺也是系統(tǒng)的重要組成部分,除了提供基本的用戶管理、權(quán)限分配、刷寫記錄查詢等功能外,它還承擔(dān)著管理制作U盾的工作,在U盾連接到網(wǎng)絡(luò)上時,通過管理程序的控制,可以增加刪除U盾中的用戶,賦予用戶刷寫權(quán)限等工作。
本次的INCA保密系統(tǒng),在不改變現(xiàn)有的INCA軟件的情況下,通過網(wǎng)絡(luò)及U盾與管理平臺結(jié)合的方式,可以實(shí)現(xiàn)數(shù)據(jù)刷寫的事先授權(quán)及過程可控,能夠很大程度上限制未經(jīng)許可的隨意刷寫改變ECU數(shù)據(jù)。同時,刷寫的過程信息能夠?qū)崿F(xiàn)追溯,也利于監(jiān)控發(fā)現(xiàn)不良端倪。