亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        車(chē)輛控制器故障診斷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2020-07-27 16:11:35趙立超吳長(zhǎng)水
        軟件工程 2020年7期
        關(guān)鍵詞:上位機(jī)故障診斷

        趙立超 吳長(zhǎng)水

        摘? 要:故障診斷系統(tǒng)是汽車(chē)上各類(lèi)控制器的重要組成部分,本文基于ISO 14229(UDS-統(tǒng)一診斷服務(wù))和ISO 15765(DoCAN)兩種協(xié)議設(shè)計(jì)了一套基于CAN(Controller Area Network,控制器局域網(wǎng)絡(luò))總線的故障診斷系統(tǒng)。主芯片為XC2785的發(fā)動(dòng)機(jī)ECU作為試驗(yàn)平臺(tái),并開(kāi)發(fā)與之配合使用的上位機(jī),最后進(jìn)行測(cè)試,結(jié)果表明,可以實(shí)現(xiàn)CAN報(bào)文的發(fā)送及接收,診斷符合UDS的診斷流程,上位機(jī)操作簡(jiǎn)單,可以快速讀取故障碼,以及清除故障碼,滿足設(shè)計(jì)需求。

        關(guān)鍵詞:UDS;故障診斷;CAN;上位機(jī)

        中圖分類(lèi)號(hào):TP520.40? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

        Abstract: Fault diagnosis system is an important part of all kinds of controllers in automobile. This paper designs a fault diagnosis system based on CAN (Controller Area Network) communication, on the basis of ISO 14229 (UDS-Unified Diagnosis Service) and ISO 15765 (DoCAN). The main chip, the XC2785 engine ECU, is used as the test platform, and the upper computer is developed to use with it. The test results show that CAN message can be sent and received, the diagnosis is in line with the UDS diagnosis process, the upper computer is simple to operate, and the fault code can be quickly read and cleared, so as to meet the designing requirement.

        Keywords: UDS; fault diagnosis; CAN; upper computer

        1? ?引言(Introduction)

        隨著汽車(chē)電氣化的快速發(fā)展,汽車(chē)上的電氣設(shè)備不斷增加,如果沒(méi)有診斷功能和安全保護(hù)機(jī)制,在發(fā)生故障的時(shí)候是十分危險(xiǎn)的。目前,基于CAN總線的車(chē)輛故障診斷系統(tǒng)是車(chē)輛安全機(jī)制的重要要求,應(yīng)用最廣泛的故障診斷協(xié)議是UDS協(xié)議。UDS由ISO-14229系列標(biāo)準(zhǔn)定義[1]。所以開(kāi)發(fā)基于UDS協(xié)議的故障診斷系統(tǒng)是很有必要的,對(duì)提高汽車(chē)故障診斷的準(zhǔn)確性、可靠性、安全性具有重要的價(jià)值和意義[2]。

        本文按照UDS協(xié)議的要求,在主芯片為英飛凌的XC2785的發(fā)動(dòng)機(jī)控制器上,開(kāi)發(fā)出一套故障診斷的程序,并在Visual Studio上開(kāi)發(fā)與之配套的上位機(jī),對(duì)其進(jìn)行測(cè)試,可以實(shí)現(xiàn)基于UDS協(xié)議的CAN報(bào)文接收和故障碼的讀取和清除功能,滿足故障故障診斷的要求。

        2? 故障診斷系統(tǒng)總體架構(gòu)設(shè)計(jì)(Overall architecture

        design of fault diagnosis system)

        在汽車(chē)中,診斷儀器對(duì)車(chē)輛系統(tǒng)的檢測(cè)稱(chēng)之為診斷[3]。診斷分為在線模式和離線模式,在線模式指汽車(chē)儀表對(duì)汽車(chē)實(shí)時(shí)數(shù)據(jù)的一個(gè)顯示,離線模式指的是用一個(gè)外接設(shè)備,通過(guò)汽車(chē)的OBD接口,進(jìn)行一個(gè)診斷的通信,從而掌握汽車(chē)的故障信息和一些實(shí)時(shí)的數(shù)據(jù),對(duì)生產(chǎn)和售后提供一些便利,節(jié)約時(shí)間和成本。本文研究的是離線模式。

        目前,國(guó)內(nèi)外對(duì)診斷系統(tǒng)的研究主要基于故障診斷儀和基于PC平臺(tái)的故障診斷方案[4]。本文采用的是基于PC平臺(tái)的方案。如圖1所示,右邊為主芯片為英飛凌XC2785的六缸發(fā)動(dòng)機(jī)控制器,通過(guò)周立功的CAN卡連接至PC機(jī),通過(guò)PC上開(kāi)發(fā)的上位機(jī)來(lái)對(duì)發(fā)動(dòng)機(jī)控制器進(jìn)行診斷。

        3? 故障診斷系統(tǒng)設(shè)計(jì)(Design of fault diagnosis system)

        3.1? ?UDS命令解析

        UDS共包含六大類(lèi)26種服務(wù),每種服務(wù)都有自己特有的標(biāo)識(shí)符SID(Service Identifier),UDS其實(shí)是一種定向的通信,是一種交互協(xié)議(Request/Response),即診斷方(PC或診斷儀)給ECU發(fā)送指定的請(qǐng)求數(shù)據(jù),這條數(shù)據(jù)中需要包含SID。ECU對(duì)診斷方的響應(yīng)有兩種,一種是肯定的響應(yīng)(Positive Response),回復(fù)[SID+0x40],如請(qǐng)求10,響應(yīng)50;請(qǐng)求22,響應(yīng)62;一種是否定的響應(yīng)(Negative Response),回復(fù)7F+SID+NRC(否定響應(yīng)碼),回復(fù)的是一個(gè)聲明。

        本文設(shè)計(jì)的故障診斷系統(tǒng)用到的命令有:診斷會(huì)話控制(0x10),安全訪問(wèn)(0x27),讀取故障碼信息(0x19),清除故障碼(0x14)。有的命令還會(huì)有一系列子服務(wù)。

        3.2? ?故障診斷流程設(shè)計(jì)

        首先,當(dāng)發(fā)動(dòng)機(jī)控制器發(fā)生故障的時(shí)候,會(huì)將對(duì)應(yīng)的故障碼儲(chǔ)存在Flash中[5]。如圖2所示,當(dāng)我們通過(guò)CAN線連接至我們的PC時(shí),首先發(fā)送的是診斷會(huì)話控制命令(0x10),每一個(gè)會(huì)話當(dāng)中可能會(huì)支持的服務(wù)是不同的,為了做這一個(gè)區(qū)別,我們?cè)诿總€(gè)子服務(wù)中定義不同的范圍,首先ECU上電進(jìn)入的是一個(gè)默認(rèn)會(huì)話;當(dāng)我們確認(rèn)會(huì)話狀態(tài)后,會(huì)進(jìn)入安全訪問(wèn)功能(0x27),由上位機(jī)向ECU請(qǐng)求種子(seed),ECU接收到診斷命令后,根據(jù)當(dāng)前所處的診斷模式,發(fā)送相應(yīng)的seed給上位機(jī),上位機(jī)接收到seed后,通過(guò)特定的算法計(jì)算出key,然后通過(guò)安全訪問(wèn)(0x27 0x03)命令向ECU發(fā)送key,如果key能夠與ECU計(jì)算出的key匹配,那么上位機(jī)就獲得了進(jìn)入該模式的權(quán)限,如果發(fā)生錯(cuò)誤,則返回否定相應(yīng)(0x7F)。

        接下來(lái)開(kāi)始進(jìn)行診斷,這里我們用到的主要是兩條命令,(0x19讀取DTC信息)和(0x14清除診斷信息)。0x19這條命令主要用來(lái)查詢故障信息,0x14這個(gè)服務(wù)用于清除故障碼,3個(gè)ff代表清除所有DTC。如圖2所示,首先發(fā)送0x19服務(wù)的命令,去讀取故障碼,如果存在故障碼,上位機(jī)顯示出來(lái),如果不存在故障碼,上位機(jī)提示無(wú)故障后結(jié)束;如果存在故障碼,上位機(jī)顯示出來(lái),然后決定是否清除故障碼,如果要清除故障碼,發(fā)送0x14命令,在命令中調(diào)用清除故障信息的功能函數(shù),清除故障成功結(jié)束,如果不清除故障碼則等待上位機(jī)的下條命令。

        3.3? ?故障診斷軟件設(shè)計(jì)

        本文的故障診斷系統(tǒng)是基于CAN網(wǎng)絡(luò)的,在CAN的中斷函數(shù)調(diào)用UDS的函數(shù)uds_handler(M0.ubData,8),UDS的每條服務(wù)中需要發(fā)送數(shù)據(jù)時(shí)調(diào)用CAN的發(fā)送函數(shù)CAN_vTransmit()。

        在uds_handler函數(shù)中有UDS中使用到的服務(wù)的實(shí)現(xiàn),如圖3所示,首先判斷CAN幀的字節(jié)數(shù)是否在2—8,一幀CAN報(bào)文最多有8個(gè)字節(jié),而UDS中最少也要有2個(gè)字節(jié),所以不再這個(gè)范圍內(nèi)的字節(jié)數(shù)即為錯(cuò)誤。然后通過(guò)CAN報(bào)文的第一個(gè)字節(jié)來(lái)判斷CAN幀的類(lèi)型,在ISO 15765中定義的四種幀的類(lèi)型,分別為:?jiǎn)螏⊿F)、首幀(FF)、連續(xù)幀(CF)、流控制幀(FC)[6]。判斷出CAN幀的類(lèi)型后,CAN報(bào)文的第二個(gè)字節(jié)代表的是UDS的不同服務(wù)。在不同服務(wù)的case中實(shí)現(xiàn)該服務(wù)的功能,然后通過(guò)udsSend()函數(shù)發(fā)送正響應(yīng),如果出錯(cuò)則返回錯(cuò)誤信息,通過(guò)communUDS_NRC_Send(communUDS_ServiceID, 0xNRC)函數(shù)發(fā)送。

        4? ?故障碼設(shè)計(jì)(Design of fault code)

        DTC(Diagnostic Trouble Code)是診斷故障的一個(gè)縮寫(xiě),如果系統(tǒng)檢測(cè)到一個(gè)故障,它將儲(chǔ)存為一個(gè)DTC[7]。UDS協(xié)議中3個(gè)字節(jié)的長(zhǎng)度作為一個(gè)DTC。一般來(lái)說(shuō),我們會(huì)使用ISO 15031-6中的規(guī)范,前兩個(gè)字節(jié)代表一個(gè)根DTC,最后一個(gè)字節(jié)DTC狀態(tài)位。

        故障碼有四類(lèi),分別為P、C、B、U,P是動(dòng)力系統(tǒng)(Powertrain),C是底盤(pán)(Chassis),B是車(chē)身(Body),U是通信系統(tǒng)(Network)。由于是在發(fā)動(dòng)機(jī)控制器上開(kāi)發(fā)的,所以選擇動(dòng)力系統(tǒng)。人為的設(shè)置兩個(gè)故障碼,用于測(cè)試故障診斷系統(tǒng)。如下表1所示,選擇進(jìn)氣溫度傳感器來(lái)進(jìn)行測(cè)試,因?yàn)樾盘?hào)電纜上只可能存在大約0.25 V到4.75 V之間的電壓,0V和5V預(yù)留用于故障檢測(cè)[8]。使用電位器模擬進(jìn)氣溫度傳感器信號(hào),當(dāng)轉(zhuǎn)動(dòng)電位器到達(dá)0V或5V時(shí),故障診斷系統(tǒng)應(yīng)該檢測(cè)到。

        5? ?上位機(jī)設(shè)計(jì)(Upper computer design)

        上位機(jī)是在Visual Studio中開(kāi)發(fā)的。上位機(jī)設(shè)計(jì)分為兩個(gè)部分,報(bào)文顯示區(qū)域和診斷區(qū)域。如圖4所示。

        報(bào)文顯示區(qū)域負(fù)責(zé)的部分為CAN通道的打開(kāi),診斷會(huì)話的選擇,安全訪問(wèn),單條CAN報(bào)文的測(cè)試;診斷區(qū)域負(fù)責(zé)故障碼的讀取和清除,以及狀態(tài)流的顯示,狀態(tài)流即此時(shí)發(fā)動(dòng)機(jī)的信息,例如轉(zhuǎn)速,冷卻液溫度等。在每個(gè)顯示區(qū)域都有一個(gè)對(duì)應(yīng)的Clear按鈕用于清除數(shù)據(jù)。

        6? ?功能測(cè)試(Functional test)

        將建好的工程通過(guò)編譯器燒寫(xiě)進(jìn)6缸發(fā)動(dòng)機(jī)控制器中,按照?qǐng)D1的方式將電腦和6缸發(fā)動(dòng)機(jī)控制器連接好。如圖5所示,為測(cè)試的部分顯示結(jié)果。首先通過(guò)CANopen按鈕打開(kāi)CAN通道,再進(jìn)行各個(gè)功能的測(cè)試。

        對(duì)報(bào)文信息進(jìn)行分析,一幀CAN報(bào)文是8個(gè)字節(jié),上位機(jī)發(fā)送的字節(jié)中多余的字節(jié)用cc補(bǔ)齊,接受的字節(jié)中多余的字節(jié)用aa補(bǔ)齊,cc和aa可以根據(jù)需要來(lái)自定義。首先上位機(jī)發(fā)送的第一條命令是診斷會(huì)話控制,用于進(jìn)入合適的模式,如下表2所示,發(fā)送的字節(jié)中,根據(jù)UDS協(xié)議中的相關(guān)定義,02表示單幀,占2個(gè)數(shù)據(jù)字節(jié),10表示診斷會(huì)話服務(wù),01表示編程會(huì)話中的子服務(wù);接受的數(shù)據(jù)中,02代表的與發(fā)送中的字節(jié)含義相同,50表示10服務(wù)的肯定響應(yīng)(SID+0x40),01表示編程會(huì)話中的子服務(wù)。

        安全訪問(wèn)結(jié)束后,進(jìn)入診斷模式,使用自定義的兩個(gè)故障碼用于測(cè)試,P0098表示進(jìn)氣溫度傳感器電路電壓高,P0097表示進(jìn)氣溫度傳感器電路電壓低。如表4所示,前兩組用于請(qǐng)求故障信息,后一組用于清除故障碼。

        發(fā)送讀取故障碼的命令,當(dāng)轉(zhuǎn)動(dòng)電位計(jì)使其處于0V時(shí),應(yīng)該讀取到P0097這個(gè)故障碼;當(dāng)電位計(jì)處于5V狀態(tài)時(shí),應(yīng)該讀取到P0098這個(gè)故障碼。然后發(fā)送清除故障碼的命令,三個(gè)ff表示清除所有故障碼。如表4所示,為讀取和清除故障碼的報(bào)文信息,符合UDS協(xié)議中的要求。

        7? ?結(jié)論(Conclusion)

        本文設(shè)計(jì)的故障診斷系統(tǒng)成功實(shí)現(xiàn)了主芯片為XC2785的發(fā)動(dòng)機(jī)控制器的診斷功能。測(cè)試結(jié)果表明,該系統(tǒng)的通信過(guò)程與診斷結(jié)果符合ISO 14229和ISO 15765協(xié)議的規(guī)范。上位機(jī)提供簡(jiǎn)潔的界面,提供了多種數(shù)據(jù)顯示方式,以及操作方便的診斷功能,為自主開(kāi)發(fā)ECU診斷系統(tǒng)提供基礎(chǔ)的技術(shù)支持,節(jié)約成本,將故障診斷的過(guò)程大大縮短,有良好的實(shí)用性和商業(yè)價(jià)值。

        參考文獻(xiàn)(References)

        [1] ISO 14229. Road vehicles - Unified Diagnostic Services (UDS)[S]. Switzerland: International Organization for Standardization, 2006.

        [2] 沈凱.基于UDS協(xié)議的純電動(dòng)汽車(chē)整車(chē)控制器故障診斷研究[D].湖北汽車(chē)工業(yè)學(xué)院,2017.

        [3] 鄒鳳.基于ISO15765協(xié)議的汽車(chē)診斷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].中國(guó)科學(xué)院大學(xué)(中國(guó)科學(xué)院工程管理與信息技術(shù)學(xué)院),2017.

        [4] 黃悅鵬.基于CAN總線的UDS診斷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南京郵電大學(xué),2016.

        [5] Liao Y S, Lin Z Y. Design of Bootloader for air-conditioning controller based on CAN bus[J]. Mechanical & Electrical Technology, 2015 (2): 104-106.

        [6] ISO 15765. Road vehicles - Diagnostics on Controller Area Networks (CAN)[S].Switzerland:International Organization for Standardization, 2006.

        [7] 聶幸福,孟晨興.基于UDS的BootLoader上位機(jī)實(shí)現(xiàn)[J].汽車(chē)工業(yè)研究,2018(07):26-29.

        [8] 白穩(wěn)峰,汪春華,劉洪飛,等.基于獨(dú)立網(wǎng)關(guān)的UDS服務(wù)設(shè)計(jì)與實(shí)現(xiàn)[J].汽車(chē)實(shí)用技術(shù),2019(23):55-58.

        作者簡(jiǎn)介:

        趙立超(1995-),男,碩士生.研究領(lǐng)域:汽車(chē)電子控制,輔助駕駛.

        吳長(zhǎng)水(1978-),男,博士,副教授.研究領(lǐng)域:發(fā)動(dòng)機(jī)電控.

        猜你喜歡
        上位機(jī)故障診斷
        論網(wǎng)絡(luò)通信技術(shù)
        基于云的短波發(fā)射機(jī)機(jī)房中央空調(diào)自動(dòng)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        景點(diǎn)智能導(dǎo)航系統(tǒng)
        全自動(dòng)包裝及碼垛系統(tǒng)的發(fā)展與應(yīng)用
        因果圖定性分析法及其在故障診斷中的應(yīng)用
        基于LCD和排列熵的滾動(dòng)軸承故障診斷
        基于WPD-HHT的滾動(dòng)軸承故障診斷
        高速泵的故障診斷
        河南科技(2014年3期)2014-02-27 14:05:48
        亚洲一区二区三区成人网| 一区二区视频观看在线| 精品一区二区久久久久久久网站| 亚洲AV无码一区二区三区天堂网| 国产免费人成网站在线播放| 成人全部免费的a毛片在线看| 我和隔壁的少妇人妻hd| 亚洲v欧美v国产v在线观看| 含羞草亚洲AV无码久久精品| 中文字幕精品亚洲一区二区三区 | 欧美综合区自拍亚洲综合| 久青青草视频手机在线免费观看| 亚洲女同av在线观看| 色综合久久久久综合99| 国产性猛交╳xxx乱大交| 色哟哟av网站在线观看| 人妻中出中文字幕在线| 国产精品主播在线一区二区| 国产又色又爽又刺激在线播放| 国产91精选在线观看麻豆| 一级一片内射在线播放| 激情综合五月婷婷久久| 亚洲精品第一国产综合亚av| 亚洲国产精品线观看不卡| 久久中文字幕av一区二区不卡| 国产区精品一区二区不卡中文| 国产精品va在线播放我和闺蜜| 波多野无码AV中文专区| 高潮内射主播自拍一区| 凹凸在线无码免费视频| 久久久久中文字幕无码少妇| 精品国产精品久久一区免费| 狠狠色丁香婷婷综合潮喷| 东北妇女xx做爰视频| 日本丰满妇人成熟免费中文字幕| 国产精品一区区三区六区t区| 亚洲乱码中文字幕视频| 中国丰满熟妇xxxx性| 综合激情网站| 亚洲精品456在线播放狼人| 亚洲国产成人精品无码区在线秒播 |