廣汽研究院 劉雙雙 陳啟達(dá) 陳敏華
汽車電子電器架構(gòu)越來越復(fù)雜,本文主要根據(jù)UDS診斷服務(wù),開發(fā)售后診斷系統(tǒng)做出簡要說明,主要說明了售后診斷系統(tǒng)的中央服務(wù)器的作用和更能要求;客戶端的簡要介紹,以及簡要介紹了客戶端的設(shè)計(jì)思路;最后本文簡說明了VCI的作用,以及目前VCI所實(shí)現(xiàn)的接口協(xié)議。
目前汽車的產(chǎn)業(yè)飛速發(fā)展,整車的電子電器架構(gòu)趨向于復(fù)雜化,集成化。一般維修技師對車輛了的維修越發(fā)困難,因此對于汽車電子電器系統(tǒng)的自動(dòng)化診斷越來越重要。OBD(車載診斷系統(tǒng))最早起源于美國,早期的功能主要用于監(jiān)控汽車排放,經(jīng)過幾十年的發(fā)展,OBD已經(jīng)成為汽車功能檢測、軟件升級和售后維修中維修不可缺少的一部分。為了方便售后維修人員對車輛的維修、各種傳感器的標(biāo)定和ECU控制器軟件升級,整車廠需要根據(jù)售后維修需求開發(fā)售后診斷系統(tǒng)?;谶B接整車OBD口的診斷系統(tǒng),主要由三部分組成:中央服務(wù)器,客戶端和VCI(車輛連接接口)硬件如圖1所示。
圖1 售后診斷系統(tǒng)結(jié)構(gòu)圖
對于服務(wù)器,主要是用來診斷數(shù)據(jù)庫的分發(fā)、車輛關(guān)鍵數(shù)據(jù)保存,客戶端使用權(quán)限管理和車輛診斷日志的保存等??蛻糁饕菍?shí)現(xiàn)對車輛的診斷功能操作、實(shí)現(xiàn)數(shù)據(jù)上傳。VCI是客戶端連接車輛的標(biāo)準(zhǔn)接口。
對于售后診斷系統(tǒng)來說,不僅僅提供給售后維修人員用于維修和維護(hù)售后車輛,同樣可以提供給車輛研發(fā)人員用于排查試制或試驗(yàn)車問題,維護(hù)試制車輛ECU控制器軟件。因此該系統(tǒng)的用戶不僅僅是售后維修技師,同樣包括汽車研發(fā)人員。對于不同類型用戶來說,診斷儀系統(tǒng)客戶端需要根據(jù)不同的用戶角色開放不同的權(quán)限。擔(dān)任劃分診斷系統(tǒng)客戶端權(quán)限的任務(wù)就是由服務(wù)器完成。中央服務(wù)器需要根據(jù)不同用戶對診斷系統(tǒng)客戶端開放不同的軟件功能。
服務(wù)器對客戶端功能權(quán)限的管理一般是通過分組來管理。首先,針對不同的用戶角色建立不同分組(例如,劃分工程師和售后維修技師分組),其次,對不同用戶分組分配不同的客戶端功能。當(dāng)有用戶名需要?jiǎng)?chuàng)建時(shí),按照使用角色分配到相應(yīng)的分組內(nèi)。在客戶端激活時(shí),服務(wù)器根據(jù)用戶名所在的組下發(fā)一個(gè)與其角色相符合的客戶端配置文件給客戶端,客戶端在激活時(shí),根據(jù)本地的配置文件配置診斷儀客戶端向用戶開發(fā)不同的功能。
為了車輛數(shù)據(jù)安全,客戶端對車輛進(jìn)行特殊操作,例如匹配車輛鑰匙,刷新ECU軟件等,需要進(jìn)行特殊授權(quán)。客戶端必須的到服務(wù)器認(rèn)證方可執(zhí)行相應(yīng)操作。一般操作如下:客戶端根據(jù)車型和ECU名稱及相應(yīng)的操作生成隨機(jī)數(shù)申請碼,通過網(wǎng)絡(luò)將申請碼上傳到服務(wù)器進(jìn)行授權(quán)算法計(jì)算得到授權(quán)碼,然后將計(jì)算結(jié)果返回到客戶端??蛻舳藢⒎祷氐檬跈?quán)碼進(jìn)行校驗(yàn),如果校驗(yàn)通過則允許客戶端進(jìn)行相關(guān)操作。在校驗(yàn)的工程中從服務(wù)器中獲取相應(yīng)的數(shù)據(jù)信息,例如PIN碼等。同時(shí)將客戶端的操作記錄到服務(wù)器中,方便后期追溯。
售后診斷服務(wù)器的數(shù)據(jù)管理主要是管理售后車輛的配置信息、車輛ECU的刷新軟件以及有關(guān)車輛防盜相關(guān)的數(shù)據(jù)等。對于車輛的配置信息和車輛防盜相關(guān)的數(shù)據(jù)是在車輛生產(chǎn)線計(jì)算產(chǎn)生并通過MES下發(fā)到售后診斷系統(tǒng)的服務(wù)器,并加以保存??蛻舳嗽趫?zhí)行操作時(shí)如需要用到相應(yīng)的數(shù)據(jù)直接從售后中央服務(wù)器下載即可。對于ECU刷新文件主要是用在客戶端對ECU進(jìn)行刷新時(shí),需要根據(jù)車型和零件號向客戶端下發(fā)相應(yīng)的刷新文件。同時(shí)服務(wù)器中還應(yīng)該保存各個(gè)車型最新發(fā)布的ECU軟件版本號。當(dāng)客戶端需要批量刷新ECU軟件時(shí)能快速對比車輛當(dāng)前ECU軟件版本號和最新軟件版本號的差異。
售后診斷服務(wù)器還需要對客戶端進(jìn)行管理,防止售后診斷客戶端被濫用,影響售后車輛的數(shù)據(jù)安全。管理售后診斷設(shè)備客戶端可以通過用戶名的方式管理。首先要在服務(wù)器上創(chuàng)建好對應(yīng)的賬號,分配不同的分組,設(shè)置不同的權(quán)限,如前文所述。用戶在激活時(shí)將本地電腦的特征碼(如,網(wǎng)卡MAC地址或硬盤序列號等)和用戶名及密碼上傳到服務(wù)器,服務(wù)器根據(jù)上傳的信息加入時(shí)間參數(shù)計(jì)算出激活碼。服務(wù)器將激活碼下發(fā)到客戶端,完成客戶端激活,并將激活記錄保存在服務(wù)器中形成便于追溯。
圖2 車輛識別示意圖
另外,軟件管理功能需要對客戶端的升級進(jìn)行管理。將客戶端軟件升級包上傳到服務(wù)器,由服務(wù)器向各個(gè)客戶端下發(fā)。當(dāng)售后診斷客戶端啟動(dòng)時(shí),對比客戶端本地軟件版本號和服務(wù)器最新版本號,如果不一致提示客戶端進(jìn)行升級并下發(fā)升級包。
售后診斷系統(tǒng)的客戶端的主要功能完成診斷操作,收集診斷信息等功能。
診斷系統(tǒng)客戶端集成了所有車型的診斷數(shù)據(jù)庫。因此,在對目標(biāo)車輛進(jìn)行診斷之前首先識別出要診斷的是哪一款車型,方可加載與其相對應(yīng)的診斷數(shù)據(jù)庫。實(shí)現(xiàn)車輛識別途徑主要有兩種途徑:人工識別和自動(dòng)識別。
對于汽車來說,VIN碼是車輛的“身份證號碼”,如果診斷系統(tǒng)的客戶端能自動(dòng)讀取車輛的VIN碼,則客戶端就能自動(dòng)識別出目前所要診斷的是哪一款車型。因此,實(shí)現(xiàn)自動(dòng)車輛識別可以通過診斷服務(wù)0x22讀取當(dāng)前車輛的VIN碼,讀到VIN碼后根據(jù)VIN碼的規(guī)則解析出車型。根據(jù)解析的車輛信息從數(shù)據(jù)庫中加載相應(yīng)的數(shù)據(jù)庫和診斷功能,如圖2所示。
在無法通過診斷服務(wù)讀到VIN碼時(shí),則可以通過人工識別的方式輔助診斷端系統(tǒng)客戶端實(shí)現(xiàn)車輛識別,加載與其對應(yīng)的診斷數(shù)據(jù)庫。
全車掃描功能的主要作用就是讀取整車ECU的零件號,軟件版本號和硬件版本號等重要的ECU信息。同時(shí)還要讀取車輛的各個(gè)ECU中所保存的故障碼。
執(zhí)行完全車掃描后,用戶可以根據(jù)需求查看車輛報(bào)告,車輛報(bào)告的主要內(nèi)容為各個(gè)ECU的零件號,軟件版本號和硬件版本號,另外還包括各個(gè)ECU所保存的故障信息和故障信息狀態(tài)。
最后,全車掃描后還需要有刪除整車故障碼的功能。選擇刪除整車故障碼功能時(shí),客戶端應(yīng)該對各個(gè)ECU進(jìn)行操作,刪除其所保存的故障碼。
故障信息的主要功能是讀取ECU中的故障信息,主要包括故障碼,故障碼的凍結(jié)幀和擴(kuò)展。
讀取故障碼:客戶端通過發(fā)送診斷指令讀取當(dāng)前ECU的故障碼,然后根據(jù)車輛識別加載的數(shù)據(jù)庫,將故障碼解析出來顯示在界面上,供車輛維修人員查看,同時(shí)客戶端顯示出故障碼狀態(tài)(如,歷史故障和當(dāng)前故障)。另外,客戶端顯示應(yīng)顯示出ECU中所保存的故障碼個(gè)數(shù)。
刪除故障碼:客戶端通過發(fā)送診斷指令使ECU執(zhí)行刪除故障碼的操作,嘗試將ECU中所保存的故障碼刪除,等到客戶端收到ECU已完成刪除故障碼的操作,再重新讀取ECU故障碼,并將其顯示,以防止有些ECU的故障未被處理。
讀取凍結(jié)幀和擴(kuò)展幀:凍結(jié)幀和擴(kuò)展幀是保存在ECU中,ECU發(fā)生故障時(shí)的車輛狀態(tài)和故障發(fā)生次數(shù)。診斷客戶端是將其通過診斷指令將其讀取出來,然后根據(jù)加載的診斷數(shù)據(jù)庫將其解析并顯示給用戶。
圖3 ECU信息示意圖
圖4 實(shí)時(shí)顯示示意圖
圖5 波形數(shù)據(jù)圖
對于ECU故障信息功能來說,客戶端需要將診斷信息以文件的形式將其保存下來,具體實(shí)現(xiàn)是將讀取的ECU的全部故障信息保存到固定格式的文件中,通過表的形式列舉出各個(gè)ECU中故障信息。
ECU信息是將當(dāng)前ECU控制單元的詳細(xì)信息讀取出來,供維修人員查看,主要包括VIN碼,供應(yīng)商名稱等等重要信息。
ECU信息中診斷系統(tǒng)客戶端需要有靈活適應(yīng)功能,根據(jù)不同的用戶需求顯示。如圖3所示。
在客戶端左面列舉出該ECU所有的ECU信息數(shù)據(jù),用戶通過復(fù)選框?qū)⑵溥x擇出來,然后通過讀取按鈕出發(fā)診斷指令的發(fā)出,所有的ECU信息數(shù)據(jù)讀取完成后,根據(jù)車型數(shù)據(jù)庫將原始數(shù)據(jù)解析出來并顯示在界面上。讀取完成后,客戶端通過查看信息報(bào)告按鈕生成測試報(bào)告,用戶可以根據(jù)需求保存或上傳到診斷系統(tǒng)服務(wù)器。
實(shí)時(shí)顯示和ECU信息顯示數(shù)據(jù)的實(shí)現(xiàn)邏輯相似,最大的不同就是實(shí)時(shí)顯示中的數(shù)據(jù)主要是動(dòng)態(tài)的,車輛不同的運(yùn)行工況所讀取到的數(shù)值是變化的,反應(yīng)的是ECU當(dāng)前的工作狀態(tài)。而ECU信息中的數(shù)據(jù)反應(yīng)的ECU當(dāng)前的軟硬件版本。為了方便管理和查看因此客戶端需要將其分開管理。如圖4所示。
客戶端界面左邊為當(dāng)前ECU所支持讀取的數(shù)據(jù),用戶可以通過復(fù)選框?qū)⑵溥x擇,選擇完想要查看的數(shù)據(jù)后,設(shè)置采樣頻率,最后通過開始按鈕觸發(fā)讀取操作,客戶端會(huì)按照預(yù)選設(shè)計(jì)好的采樣頻率輪詢讀取所選擇的項(xiàng)目。
另外客戶端可以根據(jù)自己讀到的數(shù)據(jù)繪制出相應(yīng)的圖形,方便車輛維修人員查看。如圖5所示。
動(dòng)作測試是客戶端通過診斷指令控制ECU的執(zhí)行器進(jìn)行動(dòng)作,便于維修人員快速判斷ECU執(zhí)行器是否發(fā)生故障。
具體實(shí)現(xiàn)如圖6所示。
左邊是當(dāng)前ECU所支持的所有可以通過診斷指令執(zhí)行的選項(xiàng),用戶通過復(fù)選框選擇后,在操作下來菜單中選擇所要執(zhí)行的動(dòng)作,通過開始按鈕出發(fā)診斷指令發(fā)出,使得ECU控制單元做出相應(yīng)的動(dòng)作,并將操作結(jié)果反饋到界面上。
ECU例程是內(nèi)置在車輛ECU中的一段程序,這段程序可以執(zhí)行ECU傳感的標(biāo)定,PEPS鑰匙匹配等操作。售后診斷系統(tǒng)所要做的是通過診斷指令將其啟動(dòng)并通過讀取例程執(zhí)行結(jié)果。
如圖7所示客戶端集中管理ECU的例程,用戶通過選擇進(jìn)入到相應(yīng)的操作流程里面,由于每個(gè)ECU例程的操作不一樣這里僅做簡要說明。
首先售后診斷儀中有啟動(dòng)例程按鈕,通過發(fā)送診斷指令啟動(dòng)ECU中的相關(guān)例程。例程啟動(dòng)后按照一定時(shí)間間隔輪詢讀取例程執(zhí)行結(jié)果。同時(shí),例程執(zhí)行過程中還應(yīng)該有終止例程,用戶可以隨時(shí)終止所啟動(dòng)的例程。
更換ECU主要是應(yīng)用場景是車輛ECU損壞后,維修技師需要更換新的ECU,此時(shí)該ECU中的數(shù)據(jù)不能和車輛匹配,例如配置信息。更換ECU功能,是將車輛中的數(shù)據(jù)讀出后通過算法計(jì)算出所更換的ECU中需要寫寫入的相關(guān)信息,并通過診斷數(shù)據(jù)將其寫入。
圖6 動(dòng)作測試示意圖
圖7 ECU例程管理界面
首先需要讀到車輛的主要信息,例如車輛配置特征碼,然后診斷系統(tǒng)客戶端根據(jù)特征碼計(jì)算出所更換的ECU配置信息,然后將其寫入到所更換的ECU中,實(shí)現(xiàn)ECU和車輛的匹配。
當(dāng)車輛各個(gè)ECU軟件需要更新時(shí),對于售后市場車輛需要售后維修技師將其寫入到ECU中。因此售后診斷系統(tǒng)需要開發(fā)ECU刷新功能。ECU刷新主要是同過診斷指令將軟件寫入ECU。售后診斷系統(tǒng)的ECU刷新分為在線刷新和離線刷新。
離線刷新是將刷新軟件放在客戶端本地,用戶在執(zhí)行ECU刷新時(shí)首先要從本地選擇要刷新的文件。選擇完要刷新的文件后,客戶端通過預(yù)先定義好的刷新流程通過診斷指令將刷新文件寫入ECU中。
在線刷新是將刷新文件上傳到售后診斷系統(tǒng)服務(wù)器,形成ECU軟件數(shù)據(jù)庫。用戶執(zhí)行客戶端線刷新功能時(shí),首先要讀取要刷新的ECU的車輛信息,包括車型信息,ECU名稱和ECU零件號同時(shí)用戶需要輸入所要刷新的軟件版本號。然后根據(jù)車輛的ECU信息通過網(wǎng)絡(luò)接口從服務(wù)器ECU軟件數(shù)據(jù)庫上下載相應(yīng)的ECU軟件。最后通過診斷協(xié)議將軟件發(fā)送到ECU中完成ECU刷新任務(wù)。
除上述功能外,客戶端還應(yīng)該具有將診斷信息上傳到后臺服務(wù)器以便于查詢售后車輛的診斷記錄,另外還可以通過這些數(shù)據(jù)指導(dǎo)汽車開發(fā)時(shí)所要注意的事項(xiàng)。
VCI硬件是客戶端連接車輛的通道,是售后診斷系統(tǒng)中不可缺少的一部分。為了實(shí)現(xiàn)軟硬件剝離,將硬件做成統(tǒng)一接口,每個(gè)VCI生產(chǎn)廠家在生產(chǎn)時(shí)必須提供這一接口。目前在VCI中應(yīng)用的接口主要是J2534和D-PDU。由于硬件做成了統(tǒng)一的接口,汽車制造商在設(shè)計(jì)適合自己車輛的診斷系統(tǒng)時(shí),不需要考慮硬件開發(fā),僅在軟件上投入的成本。因此,對主機(jī)廠來說能大大節(jié)省開發(fā)成本。
總結(jié):當(dāng)前的售后診斷系統(tǒng)主要是以各個(gè)ECU的自身的診斷功能為載體,通過客戶端和服務(wù)器的配合能夠快速解決車輛所存在的問題和實(shí)現(xiàn)售后的軟件升級。
目前汽車的趨向網(wǎng)聯(lián)化,電子電器架構(gòu)集成化,對于售后維修難度進(jìn)一步加大,因此對于主機(jī)廠來說對于售后服務(wù)的難度也進(jìn)一步加大。怎么能更好實(shí)現(xiàn)售后維修,為車主提供更好的服務(wù)越來越成為一個(gè)新課題。