曹明明 姚夕林 姜媛媛
摘 要:隨著汽車技術(shù)的不斷提高,汽車PEPS系統(tǒng)也對(duì)其診斷測(cè)試結(jié)果的速度、準(zhǔn)確性、連續(xù)性提出了更高的要求,利用Vector公司開發(fā)的CANoe總線仿真軟件,對(duì)各種車身電子模塊進(jìn)行模擬,建立具有改進(jìn)AES算法認(rèn)證加密的汽車PEPS系統(tǒng)的測(cè)試仿真環(huán)境。實(shí)際測(cè)試結(jié)果表明,該系統(tǒng)不僅可以在虛擬節(jié)點(diǎn)下進(jìn)行模擬仿真測(cè)試,也可以在真實(shí)節(jié)點(diǎn)下進(jìn)行實(shí)時(shí)測(cè)試,靈活有效地反映出汽車PEPS系統(tǒng)中各種電子模塊的總線通信情況,同時(shí)保證了故障診斷測(cè)試連續(xù)性和有效性。
關(guān)鍵詞:CANoe;PEPS系統(tǒng);實(shí)時(shí)測(cè)試;診斷測(cè)試;AES算法
中圖分類號(hào):TP206 文獻(xiàn)標(biāo)志碼: A 文章編號(hào):1005-2550(2014)02-0013-05
近年來(lái)隨著汽車電子技術(shù)迅猛發(fā)展,汽車無(wú)鑰匙進(jìn)入和啟動(dòng)(Passive Entry Passive Start)系統(tǒng)同樣得到了廣泛的應(yīng)用,PEPS系統(tǒng)作為整個(gè)汽車電子技術(shù)的核心之一,在汽車技術(shù)不斷迅速發(fā)展技術(shù)背景下,對(duì)其診斷測(cè)試系統(tǒng)提出了更高的要求,在汽車測(cè)試診斷過(guò)程中PEPS系統(tǒng)需要和汽車內(nèi)部其他電子系統(tǒng)進(jìn)行大量的數(shù)據(jù)信息交流的同時(shí)構(gòu)建出一個(gè)完整的系統(tǒng)用來(lái)模擬汽車電子單元的其他系統(tǒng),在測(cè)試過(guò)程中測(cè)試方式過(guò)于復(fù)雜,汽車電子單元的異常模擬復(fù)雜度較高,都在一定程度上限制了PEPS診斷系統(tǒng)的應(yīng)用與拓展。本文利用Vector公司開發(fā)的總線仿真工具CANoe軟件,開發(fā)出具有AES加密認(rèn)證算法的汽車PEPS系統(tǒng)的測(cè)試仿真環(huán)境,為虛擬汽車電子系統(tǒng)測(cè)試系統(tǒng)提供了一個(gè)可靠的平臺(tái),該系統(tǒng)具有極大的靈活性。
1 PEPS系統(tǒng)及CANoe開發(fā)工具
汽車PEPS系統(tǒng)即:汽車無(wú)鑰匙進(jìn)入和啟動(dòng)(Passive Entry Passive Start)系統(tǒng),是采用先進(jìn)的無(wú)線射頻識(shí)別(RFID)技術(shù),通過(guò)自動(dòng)匹配檢測(cè)車主是否攜帶相應(yīng)汽車的有效鑰匙,從而自動(dòng)完成汽車的解鎖上鎖等一系列操作流程。汽車PEPS系統(tǒng)不需要拿出車鑰匙對(duì)汽車進(jìn)行解鎖或上鎖,當(dāng)車主通過(guò)手握汽車門把手時(shí),車內(nèi)的天線會(huì)在車內(nèi)自動(dòng)搜索有效鑰匙。確認(rèn)鑰匙在車內(nèi)之后,就會(huì)對(duì)電子轉(zhuǎn)向柱鎖模塊(ESCL)及發(fā)動(dòng)機(jī)引擎控制模塊(EMS)分別進(jìn)行解鎖認(rèn)證和啟動(dòng)認(rèn)證,當(dāng)認(rèn)證通過(guò)后就可以正常啟動(dòng)車輛。
在汽車PEPS系統(tǒng)不斷完善和復(fù)雜化程度不斷加深的過(guò)程中,車身電子控制模塊本身更加精細(xì),模塊內(nèi)部之間分工愈加明確,都對(duì)汽車CAN總線通信網(wǎng)絡(luò)提出更高的要求,汽車PEPS系統(tǒng)故障診斷測(cè)試的重要性也日益凸顯。
利用CANoe軟件,對(duì)汽車PEPS系統(tǒng)的各種電子模塊進(jìn)行系統(tǒng)仿真。該仿真系統(tǒng)能準(zhǔn)確的顯示和分析汽車PEPS系統(tǒng)的通信情況,給測(cè)試人員提供很大便利。
CANoe軟件是德國(guó)Vector公司開發(fā)的一款汽車總線開發(fā)工具。它具有從功能需求分析到系統(tǒng)功能實(shí)現(xiàn)的整個(gè)系統(tǒng)的設(shè)計(jì)開發(fā)、仿真測(cè)試和評(píng)估等功能,本系統(tǒng)采用CANoe7.6,利用CANoe7.6自帶的數(shù)據(jù)庫(kù)管理功能CANdb++ editor、CAPL Browser以及Panel Designer模塊可以根據(jù)用戶需求設(shè)計(jì)出所需內(nèi)容。包括控制面板的設(shè)計(jì),報(bào)文中信號(hào)和消息的編輯、發(fā)送和接收條件等。CANoe軟件的仿真功能非常強(qiáng)大,它不僅可以對(duì)基于全部虛擬節(jié)點(diǎn)的總線仿真,真實(shí)物理節(jié)點(diǎn)與虛擬節(jié)點(diǎn)相結(jié)合的半實(shí)物通信仿真,還可以對(duì)全真實(shí)物理總線的通信進(jìn)行實(shí)時(shí)分析與監(jiān)控測(cè)試。通過(guò)CANoe軟件可以查看通信過(guò)程中的報(bào)文,而且可以對(duì)報(bào)文進(jìn)行選擇性過(guò)濾,通過(guò)查看顯示的報(bào)文信息來(lái)掌握系統(tǒng)的運(yùn)行狀況等。
2 PEPS系統(tǒng)仿真環(huán)境的建立
汽車PEPS系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)模型有很多,系統(tǒng)結(jié)構(gòu)模型拓?fù)鋱D中包括車身控制模塊(BCM),車輪防抱死模塊(ABS),電子轉(zhuǎn)向柱鎖模塊(ESCL),發(fā)動(dòng)機(jī)引擎控制模塊(EMS),儀表模塊(MIU),擋位控制模塊(TCU),安全氣囊模塊(SDM)等ECU模塊。建立的汽車PEPS系統(tǒng)拓?fù)鋱D如圖1所示。該拓?fù)鋱D的應(yīng)用是在全仿真模式下進(jìn)行的,如果需要在真實(shí)節(jié)點(diǎn)下進(jìn)行測(cè)試,將相應(yīng)的仿真模塊禁掉(Block)即可。
圖1 汽車PEPS系統(tǒng)拓?fù)鋱D
2.1 程序設(shè)計(jì)
在CANoe軟件的仿真環(huán)境中,需要用CAPL語(yǔ)言對(duì)事件的觸發(fā)和響應(yīng)進(jìn)行編程,CAPL語(yǔ)言是一種類C語(yǔ)言,在各電子模塊的編程設(shè)計(jì)過(guò)程中,它的觸發(fā)條件有很多種,包括系統(tǒng)變量改變,總線消息發(fā)送和接收,環(huán)境變量變化,鍵盤輸入或者定時(shí)器溢出等。利用CANoe軟件CAPL語(yǔ)言程序,可以對(duì)仿真系統(tǒng)中各個(gè)節(jié)點(diǎn)進(jìn)行編程設(shè)計(jì)。
電子轉(zhuǎn)向柱鎖模塊內(nèi)部的CAPL語(yǔ)言設(shè)計(jì)如圖2所示。在message 0x45消息中,如果環(huán)境變量evTEST_ESCL_Auth_EN觸發(fā)時(shí),當(dāng)message 0x45消息中的信號(hào)PEPS_SUB_ID值為0x01,獲取環(huán)境變量中evTEST_ESCL_Auth_T1的值,同時(shí)設(shè)置定時(shí)器ESCL_Auth_t1的值為環(huán)境變量evTEST_ESCL_Auth_T1的值,如果message 0x45消息中的信號(hào)PEPS_SUB_ID值為0x02,獲取環(huán)境變量evTEST_ESCL_Auth_T2的值,設(shè)置定時(shí)器ESCL_Auth_t2的值為環(huán)境變量evTEST_ESCL_Auth_T2的值。
圖2 ESCL節(jié)點(diǎn)的編程設(shè)計(jì)
2.2 面板設(shè)計(jì)
為了使仿真效果更加形象直觀,CANoe軟件的仿真環(huán)境提供了一些仿真圖形界面。如圖3所示的汽車上鎖解鎖控制面板,圖中顯示了Driver Door和Passenger Door兩側(cè)門是開狀態(tài),而Rear Left和Rear right兩側(cè)門是關(guān)閉狀態(tài),中控鎖是開狀態(tài),后備箱是關(guān)狀態(tài)。在測(cè)試過(guò)程中模擬汽車上鎖解鎖過(guò)程時(shí),利用這個(gè)控制面板可以形象的模擬出汽車中控上鎖、解鎖的過(guò)程,以及前門、后門、后備箱的開關(guān)狀態(tài)。通過(guò)改變面板界面的圖形而改變相應(yīng)面板對(duì)應(yīng)的環(huán)境變量的值,主觀地對(duì)仿真條件進(jìn)行配置,使測(cè)試人員可以靈活高效地進(jìn)行診斷測(cè)試。endprint
圖3 汽車上鎖解鎖控制面板
2.3 查看報(bào)文
除了通過(guò)操作控制面板了解車身電子模塊的狀態(tài),還可以通過(guò)接收和發(fā)送消息,根據(jù)報(bào)文的ID來(lái)查看報(bào)文,從而詳細(xì)了解車身電子模塊的狀態(tài)。不管是正常的報(bào)文還是有錯(cuò)誤故障信息的報(bào)文,都會(huì)詳細(xì)地顯示出相應(yīng)的信息,使測(cè)試人員迅速了解系統(tǒng)狀態(tài)。實(shí)際表明,測(cè)試人員在測(cè)試過(guò)程中主要是通過(guò)查看報(bào)文來(lái)進(jìn)行故障診斷測(cè)試。
3 PEPS系統(tǒng)的認(rèn)證算法
PEPS系統(tǒng)與傳統(tǒng)的啟動(dòng)系統(tǒng)不同之處主要體現(xiàn)在汽車的門把手和啟動(dòng)按鈕兩部分上。因此,PEPS系統(tǒng)的認(rèn)證算法的作用主要表現(xiàn)在汽車門把手和啟動(dòng)按鈕的觸發(fā)與響應(yīng)的過(guò)程中。PEPS系統(tǒng)的認(rèn)證算法采用的是在全世界廣泛使用的,加密安全性極高的AES算法。
3.1 改進(jìn)的AES算法
AES算法是源于Daemen和Rijmen設(shè)計(jì)的Rijndael密碼算法。AES 算法的數(shù)據(jù)分組的長(zhǎng)度為128 bit,密鑰長(zhǎng)度有三種128 bit、196 bit和256 bit。AES的加密過(guò)程可以分為3個(gè)步驟:初始密鑰加法,Nr-1 次輪變換和結(jié)尾輪變換。
本文研究的PEPS系統(tǒng)的認(rèn)證算法是一種改進(jìn)的AES算法。該算法主要應(yīng)用在PEPS系統(tǒng)的認(rèn)證過(guò)程中,主要有加密鑰和輪變換兩步,省去了算法解密的過(guò)程,采用的是隨機(jī)加密的方法,從而使算法更加快速和可靠。在認(rèn)證過(guò)程中,如果加密算法相同,所需認(rèn)證的雙方加密后的數(shù)據(jù)也是相同的,在認(rèn)證時(shí)AES加密認(rèn)證的過(guò)程如下:
第一步:加密鑰。
首先生成一個(gè)8位的隨機(jī)數(shù):
Byte0 Byte1 Byte2 Byte3
Byte4 Byte5 Byte6 Byte7
取其中的第二位到第五位四位B(x):
Byte1 Byte2 Byte3 Byte4
然后與上12位的固定指令碼,生成一個(gè)16位的密鑰,密鑰字的個(gè)數(shù)Nk=4,數(shù)據(jù)塊中字的個(gè)數(shù)Nb=4,與其對(duì)應(yīng)的算法的輪數(shù)是Nr=10。
第二步:輪變換的操作一般都比較復(fù)雜,包括以下四步。
Round ()
{
ByteSub ();
ShiftRow ();
MisColumn ();
AddRoundKey ()
}
S盒變換 (ByteSub),是對(duì)數(shù)據(jù)進(jìn)行一種不可逆的非線性置換;行移位 (ShiftRow),是以“行”為單位的線性變換,第一行不變,其它行依次進(jìn)行循環(huán)移動(dòng),位移量的大小與加密塊中字的個(gè)數(shù)Nb有關(guān),使其與一簡(jiǎn)單的矩陣相乘;列混合 (MisColumn),運(yùn)算結(jié)果相對(duì)來(lái)說(shuō)比較復(fù)雜,與一較復(fù)雜矩陣相乘得到另一矩陣;加循環(huán)密鑰 (AddRoundKey),是將循環(huán)密鑰與上層的結(jié)果進(jìn)行異或運(yùn)算,相乘得到,然后進(jìn)行128位的加密操作。
3.2 PEPS系統(tǒng)AES算法的認(rèn)證過(guò)程
圖4 PEPS系統(tǒng)中AES算法認(rèn)證過(guò)程流程圖
PEPS系統(tǒng)啟動(dòng)時(shí),需要分別與電子轉(zhuǎn)向柱鎖模塊 (ESCL) 及發(fā)動(dòng)機(jī)控制模塊 (EMS) 之間進(jìn)行認(rèn)證,而在CANoe仿真環(huán)境條件下,上述模塊間的認(rèn)證算法的編程部分都是設(shè)計(jì)在相應(yīng)模塊內(nèi)部的。當(dāng)汽車PEPS系統(tǒng)啟動(dòng)的有效鑰匙在汽車認(rèn)證范圍內(nèi)時(shí),按啟動(dòng)按鈕啟動(dòng)汽車,汽車PEPS系統(tǒng)首先需要對(duì)電子轉(zhuǎn)向柱鎖模塊(ESCL)進(jìn)行認(rèn)證,汽車PEPS系統(tǒng)首先發(fā)一幀認(rèn)證消息到汽車CAN總線上,電子轉(zhuǎn)向柱鎖模塊(ESCL)接收到這幀認(rèn)證消息后生成一幀隨機(jī)數(shù),并將這幀隨機(jī)數(shù)發(fā)到CAN總線上,汽車PEPS系統(tǒng)從CAN總線上接收這幀隨機(jī)數(shù),汽車PEPS系統(tǒng)與電子轉(zhuǎn)向柱鎖模塊(ESCL)都經(jīng)過(guò)相應(yīng)的AES加密算法加密之后,再對(duì)二者的加密結(jié)果進(jìn)行對(duì)比,如果AES加密算法相同,則計(jì)算結(jié)果相同,認(rèn)證成功;否則認(rèn)證失敗。EMS模塊認(rèn)證過(guò)程同樣如此。認(rèn)證過(guò)程的具體流程如圖4所示。
4 PEPS系統(tǒng)故障診斷測(cè)試
在測(cè)試過(guò)程中,當(dāng)有故障或錯(cuò)誤出現(xiàn)時(shí),不管是系統(tǒng)故障還是車身電子模塊的故障都會(huì)在報(bào)文中詳細(xì)地顯示出來(lái)。通過(guò)報(bào)文的ID可以查找并迅速查看相應(yīng)的報(bào)文了解診斷測(cè)試情況。
PEPS系統(tǒng)的診斷測(cè)試主要體現(xiàn)在門把手的PE(Passive Entry)和PS(Passive Start)及智能鑰匙的RKE(Remote Keyless Entry)部分的測(cè)試。PE測(cè)試的報(bào)文實(shí)例包括Lock、Unlock的報(bào)文顯示,如圖5所示。PS測(cè)試報(bào)文實(shí)例如圖6所示。RKE測(cè)試報(bào)文實(shí)例如圖7所示。如果通信過(guò)程中出現(xiàn)故障、發(fā)送請(qǐng)求錯(cuò)誤、請(qǐng)求的條件和處理的結(jié)果不正確等都會(huì)在報(bào)文中顯示,錯(cuò)誤信息在報(bào)文中會(huì)以紅色字體顯示,方便測(cè)試人員及時(shí)了解故障情況,如圖8 故障保文顯示。
a) Lock報(bào)文
b) Unlock報(bào)文
圖5 PE中Lock、Unlock報(bào)文顯示
a) Start failure: No UID Found
b) Start State
圖6 Ps的報(bào)文顯示
a) Lock Cmd
b) Unlock Cmd
c) Tailgate release Cmd
d) Panic Cmd
圖7 RKE的報(bào)文顯示
圖8 故障報(bào)文顯示
5 結(jié)論
基于CANoe軟件建立的汽車PEPS系統(tǒng)診斷測(cè)試的仿真環(huán)境,能真實(shí)有效地模擬出車載網(wǎng)絡(luò)的通信情況,對(duì)車載總線上的診斷信息進(jìn)行快速精準(zhǔn)的采集,分析和管理,不僅大大降低了測(cè)試成本,還提高了系統(tǒng)測(cè)試的準(zhǔn)確性,在汽車PEPS系統(tǒng)發(fā)展和完善過(guò)程中起到了非常重要的作用。
參考文獻(xiàn):
[1]Konrad Etschberger. Controller Area Network[M]. Weingarten: IXXAT Automation GmbH, 2000.
[2]Vector Informatik GmbH. CANoe Installation Guide,CANoe User Guide, CANdb++ User Guide[M]. Eberdingen: SATZTEAM Fotosatz & Neue Medien Gmbh, 2002.
[3]黎善斌.基于網(wǎng)絡(luò)控制系統(tǒng)的CAN實(shí)時(shí)性能研究[J].化工自動(dòng)化及儀表,2003,30(4):1-6.
[4]朱彬,劉新寧.基于AMBA總線的AES算法設(shè)計(jì)[J].信息化研究,2009(5):47-50.
[5]魏嘉銀,呂虹,秦永彬.一種基于AES算法的通信信息加密傳輸方案[J].計(jì)算機(jī)與數(shù)字工程,2011(10):121-124.endprint
圖3 汽車上鎖解鎖控制面板
2.3 查看報(bào)文
除了通過(guò)操作控制面板了解車身電子模塊的狀態(tài),還可以通過(guò)接收和發(fā)送消息,根據(jù)報(bào)文的ID來(lái)查看報(bào)文,從而詳細(xì)了解車身電子模塊的狀態(tài)。不管是正常的報(bào)文還是有錯(cuò)誤故障信息的報(bào)文,都會(huì)詳細(xì)地顯示出相應(yīng)的信息,使測(cè)試人員迅速了解系統(tǒng)狀態(tài)。實(shí)際表明,測(cè)試人員在測(cè)試過(guò)程中主要是通過(guò)查看報(bào)文來(lái)進(jìn)行故障診斷測(cè)試。
3 PEPS系統(tǒng)的認(rèn)證算法
PEPS系統(tǒng)與傳統(tǒng)的啟動(dòng)系統(tǒng)不同之處主要體現(xiàn)在汽車的門把手和啟動(dòng)按鈕兩部分上。因此,PEPS系統(tǒng)的認(rèn)證算法的作用主要表現(xiàn)在汽車門把手和啟動(dòng)按鈕的觸發(fā)與響應(yīng)的過(guò)程中。PEPS系統(tǒng)的認(rèn)證算法采用的是在全世界廣泛使用的,加密安全性極高的AES算法。
3.1 改進(jìn)的AES算法
AES算法是源于Daemen和Rijmen設(shè)計(jì)的Rijndael密碼算法。AES 算法的數(shù)據(jù)分組的長(zhǎng)度為128 bit,密鑰長(zhǎng)度有三種128 bit、196 bit和256 bit。AES的加密過(guò)程可以分為3個(gè)步驟:初始密鑰加法,Nr-1 次輪變換和結(jié)尾輪變換。
本文研究的PEPS系統(tǒng)的認(rèn)證算法是一種改進(jìn)的AES算法。該算法主要應(yīng)用在PEPS系統(tǒng)的認(rèn)證過(guò)程中,主要有加密鑰和輪變換兩步,省去了算法解密的過(guò)程,采用的是隨機(jī)加密的方法,從而使算法更加快速和可靠。在認(rèn)證過(guò)程中,如果加密算法相同,所需認(rèn)證的雙方加密后的數(shù)據(jù)也是相同的,在認(rèn)證時(shí)AES加密認(rèn)證的過(guò)程如下:
第一步:加密鑰。
首先生成一個(gè)8位的隨機(jī)數(shù):
Byte0 Byte1 Byte2 Byte3
Byte4 Byte5 Byte6 Byte7
取其中的第二位到第五位四位B(x):
Byte1 Byte2 Byte3 Byte4
然后與上12位的固定指令碼,生成一個(gè)16位的密鑰,密鑰字的個(gè)數(shù)Nk=4,數(shù)據(jù)塊中字的個(gè)數(shù)Nb=4,與其對(duì)應(yīng)的算法的輪數(shù)是Nr=10。
第二步:輪變換的操作一般都比較復(fù)雜,包括以下四步。
Round ()
{
ByteSub ();
ShiftRow ();
MisColumn ();
AddRoundKey ()
}
S盒變換 (ByteSub),是對(duì)數(shù)據(jù)進(jìn)行一種不可逆的非線性置換;行移位 (ShiftRow),是以“行”為單位的線性變換,第一行不變,其它行依次進(jìn)行循環(huán)移動(dòng),位移量的大小與加密塊中字的個(gè)數(shù)Nb有關(guān),使其與一簡(jiǎn)單的矩陣相乘;列混合 (MisColumn),運(yùn)算結(jié)果相對(duì)來(lái)說(shuō)比較復(fù)雜,與一較復(fù)雜矩陣相乘得到另一矩陣;加循環(huán)密鑰 (AddRoundKey),是將循環(huán)密鑰與上層的結(jié)果進(jìn)行異或運(yùn)算,相乘得到,然后進(jìn)行128位的加密操作。
3.2 PEPS系統(tǒng)AES算法的認(rèn)證過(guò)程
圖4 PEPS系統(tǒng)中AES算法認(rèn)證過(guò)程流程圖
PEPS系統(tǒng)啟動(dòng)時(shí),需要分別與電子轉(zhuǎn)向柱鎖模塊 (ESCL) 及發(fā)動(dòng)機(jī)控制模塊 (EMS) 之間進(jìn)行認(rèn)證,而在CANoe仿真環(huán)境條件下,上述模塊間的認(rèn)證算法的編程部分都是設(shè)計(jì)在相應(yīng)模塊內(nèi)部的。當(dāng)汽車PEPS系統(tǒng)啟動(dòng)的有效鑰匙在汽車認(rèn)證范圍內(nèi)時(shí),按啟動(dòng)按鈕啟動(dòng)汽車,汽車PEPS系統(tǒng)首先需要對(duì)電子轉(zhuǎn)向柱鎖模塊(ESCL)進(jìn)行認(rèn)證,汽車PEPS系統(tǒng)首先發(fā)一幀認(rèn)證消息到汽車CAN總線上,電子轉(zhuǎn)向柱鎖模塊(ESCL)接收到這幀認(rèn)證消息后生成一幀隨機(jī)數(shù),并將這幀隨機(jī)數(shù)發(fā)到CAN總線上,汽車PEPS系統(tǒng)從CAN總線上接收這幀隨機(jī)數(shù),汽車PEPS系統(tǒng)與電子轉(zhuǎn)向柱鎖模塊(ESCL)都經(jīng)過(guò)相應(yīng)的AES加密算法加密之后,再對(duì)二者的加密結(jié)果進(jìn)行對(duì)比,如果AES加密算法相同,則計(jì)算結(jié)果相同,認(rèn)證成功;否則認(rèn)證失敗。EMS模塊認(rèn)證過(guò)程同樣如此。認(rèn)證過(guò)程的具體流程如圖4所示。
4 PEPS系統(tǒng)故障診斷測(cè)試
在測(cè)試過(guò)程中,當(dāng)有故障或錯(cuò)誤出現(xiàn)時(shí),不管是系統(tǒng)故障還是車身電子模塊的故障都會(huì)在報(bào)文中詳細(xì)地顯示出來(lái)。通過(guò)報(bào)文的ID可以查找并迅速查看相應(yīng)的報(bào)文了解診斷測(cè)試情況。
PEPS系統(tǒng)的診斷測(cè)試主要體現(xiàn)在門把手的PE(Passive Entry)和PS(Passive Start)及智能鑰匙的RKE(Remote Keyless Entry)部分的測(cè)試。PE測(cè)試的報(bào)文實(shí)例包括Lock、Unlock的報(bào)文顯示,如圖5所示。PS測(cè)試報(bào)文實(shí)例如圖6所示。RKE測(cè)試報(bào)文實(shí)例如圖7所示。如果通信過(guò)程中出現(xiàn)故障、發(fā)送請(qǐng)求錯(cuò)誤、請(qǐng)求的條件和處理的結(jié)果不正確等都會(huì)在報(bào)文中顯示,錯(cuò)誤信息在報(bào)文中會(huì)以紅色字體顯示,方便測(cè)試人員及時(shí)了解故障情況,如圖8 故障保文顯示。
a) Lock報(bào)文
b) Unlock報(bào)文
圖5 PE中Lock、Unlock報(bào)文顯示
a) Start failure: No UID Found
b) Start State
圖6 Ps的報(bào)文顯示
a) Lock Cmd
b) Unlock Cmd
c) Tailgate release Cmd
d) Panic Cmd
圖7 RKE的報(bào)文顯示
圖8 故障報(bào)文顯示
5 結(jié)論
基于CANoe軟件建立的汽車PEPS系統(tǒng)診斷測(cè)試的仿真環(huán)境,能真實(shí)有效地模擬出車載網(wǎng)絡(luò)的通信情況,對(duì)車載總線上的診斷信息進(jìn)行快速精準(zhǔn)的采集,分析和管理,不僅大大降低了測(cè)試成本,還提高了系統(tǒng)測(cè)試的準(zhǔn)確性,在汽車PEPS系統(tǒng)發(fā)展和完善過(guò)程中起到了非常重要的作用。
參考文獻(xiàn):
[1]Konrad Etschberger. Controller Area Network[M]. Weingarten: IXXAT Automation GmbH, 2000.
[2]Vector Informatik GmbH. CANoe Installation Guide,CANoe User Guide, CANdb++ User Guide[M]. Eberdingen: SATZTEAM Fotosatz & Neue Medien Gmbh, 2002.
[3]黎善斌.基于網(wǎng)絡(luò)控制系統(tǒng)的CAN實(shí)時(shí)性能研究[J].化工自動(dòng)化及儀表,2003,30(4):1-6.
[4]朱彬,劉新寧.基于AMBA總線的AES算法設(shè)計(jì)[J].信息化研究,2009(5):47-50.
[5]魏嘉銀,呂虹,秦永彬.一種基于AES算法的通信信息加密傳輸方案[J].計(jì)算機(jī)與數(shù)字工程,2011(10):121-124.endprint
圖3 汽車上鎖解鎖控制面板
2.3 查看報(bào)文
除了通過(guò)操作控制面板了解車身電子模塊的狀態(tài),還可以通過(guò)接收和發(fā)送消息,根據(jù)報(bào)文的ID來(lái)查看報(bào)文,從而詳細(xì)了解車身電子模塊的狀態(tài)。不管是正常的報(bào)文還是有錯(cuò)誤故障信息的報(bào)文,都會(huì)詳細(xì)地顯示出相應(yīng)的信息,使測(cè)試人員迅速了解系統(tǒng)狀態(tài)。實(shí)際表明,測(cè)試人員在測(cè)試過(guò)程中主要是通過(guò)查看報(bào)文來(lái)進(jìn)行故障診斷測(cè)試。
3 PEPS系統(tǒng)的認(rèn)證算法
PEPS系統(tǒng)與傳統(tǒng)的啟動(dòng)系統(tǒng)不同之處主要體現(xiàn)在汽車的門把手和啟動(dòng)按鈕兩部分上。因此,PEPS系統(tǒng)的認(rèn)證算法的作用主要表現(xiàn)在汽車門把手和啟動(dòng)按鈕的觸發(fā)與響應(yīng)的過(guò)程中。PEPS系統(tǒng)的認(rèn)證算法采用的是在全世界廣泛使用的,加密安全性極高的AES算法。
3.1 改進(jìn)的AES算法
AES算法是源于Daemen和Rijmen設(shè)計(jì)的Rijndael密碼算法。AES 算法的數(shù)據(jù)分組的長(zhǎng)度為128 bit,密鑰長(zhǎng)度有三種128 bit、196 bit和256 bit。AES的加密過(guò)程可以分為3個(gè)步驟:初始密鑰加法,Nr-1 次輪變換和結(jié)尾輪變換。
本文研究的PEPS系統(tǒng)的認(rèn)證算法是一種改進(jìn)的AES算法。該算法主要應(yīng)用在PEPS系統(tǒng)的認(rèn)證過(guò)程中,主要有加密鑰和輪變換兩步,省去了算法解密的過(guò)程,采用的是隨機(jī)加密的方法,從而使算法更加快速和可靠。在認(rèn)證過(guò)程中,如果加密算法相同,所需認(rèn)證的雙方加密后的數(shù)據(jù)也是相同的,在認(rèn)證時(shí)AES加密認(rèn)證的過(guò)程如下:
第一步:加密鑰。
首先生成一個(gè)8位的隨機(jī)數(shù):
Byte0 Byte1 Byte2 Byte3
Byte4 Byte5 Byte6 Byte7
取其中的第二位到第五位四位B(x):
Byte1 Byte2 Byte3 Byte4
然后與上12位的固定指令碼,生成一個(gè)16位的密鑰,密鑰字的個(gè)數(shù)Nk=4,數(shù)據(jù)塊中字的個(gè)數(shù)Nb=4,與其對(duì)應(yīng)的算法的輪數(shù)是Nr=10。
第二步:輪變換的操作一般都比較復(fù)雜,包括以下四步。
Round ()
{
ByteSub ();
ShiftRow ();
MisColumn ();
AddRoundKey ()
}
S盒變換 (ByteSub),是對(duì)數(shù)據(jù)進(jìn)行一種不可逆的非線性置換;行移位 (ShiftRow),是以“行”為單位的線性變換,第一行不變,其它行依次進(jìn)行循環(huán)移動(dòng),位移量的大小與加密塊中字的個(gè)數(shù)Nb有關(guān),使其與一簡(jiǎn)單的矩陣相乘;列混合 (MisColumn),運(yùn)算結(jié)果相對(duì)來(lái)說(shuō)比較復(fù)雜,與一較復(fù)雜矩陣相乘得到另一矩陣;加循環(huán)密鑰 (AddRoundKey),是將循環(huán)密鑰與上層的結(jié)果進(jìn)行異或運(yùn)算,相乘得到,然后進(jìn)行128位的加密操作。
3.2 PEPS系統(tǒng)AES算法的認(rèn)證過(guò)程
圖4 PEPS系統(tǒng)中AES算法認(rèn)證過(guò)程流程圖
PEPS系統(tǒng)啟動(dòng)時(shí),需要分別與電子轉(zhuǎn)向柱鎖模塊 (ESCL) 及發(fā)動(dòng)機(jī)控制模塊 (EMS) 之間進(jìn)行認(rèn)證,而在CANoe仿真環(huán)境條件下,上述模塊間的認(rèn)證算法的編程部分都是設(shè)計(jì)在相應(yīng)模塊內(nèi)部的。當(dāng)汽車PEPS系統(tǒng)啟動(dòng)的有效鑰匙在汽車認(rèn)證范圍內(nèi)時(shí),按啟動(dòng)按鈕啟動(dòng)汽車,汽車PEPS系統(tǒng)首先需要對(duì)電子轉(zhuǎn)向柱鎖模塊(ESCL)進(jìn)行認(rèn)證,汽車PEPS系統(tǒng)首先發(fā)一幀認(rèn)證消息到汽車CAN總線上,電子轉(zhuǎn)向柱鎖模塊(ESCL)接收到這幀認(rèn)證消息后生成一幀隨機(jī)數(shù),并將這幀隨機(jī)數(shù)發(fā)到CAN總線上,汽車PEPS系統(tǒng)從CAN總線上接收這幀隨機(jī)數(shù),汽車PEPS系統(tǒng)與電子轉(zhuǎn)向柱鎖模塊(ESCL)都經(jīng)過(guò)相應(yīng)的AES加密算法加密之后,再對(duì)二者的加密結(jié)果進(jìn)行對(duì)比,如果AES加密算法相同,則計(jì)算結(jié)果相同,認(rèn)證成功;否則認(rèn)證失敗。EMS模塊認(rèn)證過(guò)程同樣如此。認(rèn)證過(guò)程的具體流程如圖4所示。
4 PEPS系統(tǒng)故障診斷測(cè)試
在測(cè)試過(guò)程中,當(dāng)有故障或錯(cuò)誤出現(xiàn)時(shí),不管是系統(tǒng)故障還是車身電子模塊的故障都會(huì)在報(bào)文中詳細(xì)地顯示出來(lái)。通過(guò)報(bào)文的ID可以查找并迅速查看相應(yīng)的報(bào)文了解診斷測(cè)試情況。
PEPS系統(tǒng)的診斷測(cè)試主要體現(xiàn)在門把手的PE(Passive Entry)和PS(Passive Start)及智能鑰匙的RKE(Remote Keyless Entry)部分的測(cè)試。PE測(cè)試的報(bào)文實(shí)例包括Lock、Unlock的報(bào)文顯示,如圖5所示。PS測(cè)試報(bào)文實(shí)例如圖6所示。RKE測(cè)試報(bào)文實(shí)例如圖7所示。如果通信過(guò)程中出現(xiàn)故障、發(fā)送請(qǐng)求錯(cuò)誤、請(qǐng)求的條件和處理的結(jié)果不正確等都會(huì)在報(bào)文中顯示,錯(cuò)誤信息在報(bào)文中會(huì)以紅色字體顯示,方便測(cè)試人員及時(shí)了解故障情況,如圖8 故障保文顯示。
a) Lock報(bào)文
b) Unlock報(bào)文
圖5 PE中Lock、Unlock報(bào)文顯示
a) Start failure: No UID Found
b) Start State
圖6 Ps的報(bào)文顯示
a) Lock Cmd
b) Unlock Cmd
c) Tailgate release Cmd
d) Panic Cmd
圖7 RKE的報(bào)文顯示
圖8 故障報(bào)文顯示
5 結(jié)論
基于CANoe軟件建立的汽車PEPS系統(tǒng)診斷測(cè)試的仿真環(huán)境,能真實(shí)有效地模擬出車載網(wǎng)絡(luò)的通信情況,對(duì)車載總線上的診斷信息進(jìn)行快速精準(zhǔn)的采集,分析和管理,不僅大大降低了測(cè)試成本,還提高了系統(tǒng)測(cè)試的準(zhǔn)確性,在汽車PEPS系統(tǒng)發(fā)展和完善過(guò)程中起到了非常重要的作用。
參考文獻(xiàn):
[1]Konrad Etschberger. Controller Area Network[M]. Weingarten: IXXAT Automation GmbH, 2000.
[2]Vector Informatik GmbH. CANoe Installation Guide,CANoe User Guide, CANdb++ User Guide[M]. Eberdingen: SATZTEAM Fotosatz & Neue Medien Gmbh, 2002.
[3]黎善斌.基于網(wǎng)絡(luò)控制系統(tǒng)的CAN實(shí)時(shí)性能研究[J].化工自動(dòng)化及儀表,2003,30(4):1-6.
[4]朱彬,劉新寧.基于AMBA總線的AES算法設(shè)計(jì)[J].信息化研究,2009(5):47-50.
[5]魏嘉銀,呂虹,秦永彬.一種基于AES算法的通信信息加密傳輸方案[J].計(jì)算機(jī)與數(shù)字工程,2011(10):121-124.endprint