• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于CAN FD網(wǎng)絡(luò)的UDS診斷開(kāi)發(fā)測(cè)試

      2022-05-04 12:11:26施春華
      汽車電器 2022年4期
      關(guān)鍵詞:服務(wù)器端字節(jié)報(bào)文

      施春華

      (同濟(jì)大學(xué),上海 200092)

      汽車作為一款機(jī)電一體化的設(shè)備,目前正在向智能化、網(wǎng)聯(lián)化快速發(fā)展,而其中汽車網(wǎng)絡(luò)的發(fā)展也是越來(lái)越快。其中CAN總線是被最廣泛使用的汽車總線,近幾十年來(lái)市場(chǎng)的占有率越來(lái)越高,但是因?yàn)镃AN協(xié)議的特性,最多只能達(dá)到500kbit/s,限制了網(wǎng)絡(luò)通信速度的進(jìn)一步提高,這一情況催生出了在CAN總線物理設(shè)備的基礎(chǔ)上,使用可變速率CAN通信的方式即CAN FD(CAN With Flexible Data-Rate)的出現(xiàn)。

      汽車診斷的協(xié)議可以在不同的總線技術(shù)上實(shí)現(xiàn),每一次汽車總線變革都會(huì)要求診斷協(xié)議進(jìn)行相應(yīng)的匹配。雖然支持CAN FD的車型以及產(chǎn)品越來(lái)越多,但是對(duì)于診斷在CAN FD總線上的實(shí)際使用,目前的研究還比較少。如:劉樂(lè)樂(lè)研究了在CAN FD總線的基礎(chǔ)上,通過(guò)使用CANoe軟件設(shè)計(jì)基于UDS協(xié)議的刷新系統(tǒng),實(shí)現(xiàn)Bootloader的刷寫過(guò)程;PARK P Y開(kāi)發(fā)了一套基于CAN FD的刷新設(shè)備以及網(wǎng)關(guān),可實(shí)現(xiàn)CAN FD總線與CAN總線的切換,提高數(shù)據(jù)刷寫效率;TH Nguyen研究了CAN FD網(wǎng)絡(luò)的數(shù)據(jù)場(chǎng)結(jié)構(gòu),通過(guò)CANoe的模擬實(shí)現(xiàn)了CAN FD和CAN網(wǎng)絡(luò)的ECU刷新時(shí)間比較,說(shuō)明支持CAN FD總線的優(yōu)勢(shì)。

      本文介紹在CAN FD網(wǎng)絡(luò)的基礎(chǔ)上,實(shí)現(xiàn)通用的UDS診斷協(xié)議,開(kāi)發(fā)部分相關(guān)的測(cè)試功能,并在試驗(yàn)臺(tái)架上進(jìn)行通信診斷功能的驗(yàn)證。

      1 CAN FD總線報(bào)文結(jié)構(gòu)解析

      1.1 CAN FD總線特性

      CAN FD為BOSCH公司在2012年推出的基于原有CAN總線物理層的高速通信技術(shù)。CAN FD在基本不改變物理設(shè)備硬件要求的基礎(chǔ)上實(shí)現(xiàn)部分?jǐn)?shù)據(jù)的可變速率傳輸。通過(guò)CAN FD網(wǎng)絡(luò)傳輸?shù)乃俾士蛇_(dá)5Mbit/s,CAN FD總線與其他總線比較,在實(shí)現(xiàn)高速通信的前提下,可以運(yùn)行在現(xiàn)有的CAN總線物理設(shè)備上,降低了硬件更新?lián)Q代的費(fèi)用,并適配目前大量使用的CAN總線物理設(shè)備場(chǎng)景,是下一代汽車總線技術(shù)的有力競(jìng)爭(zhēng)者。

      1.2 CAN FD總線報(bào)文結(jié)構(gòu)

      CAN FD實(shí)現(xiàn)可變速率傳輸?shù)年P(guān)鍵,在于數(shù)據(jù)幀中的不同部分實(shí)行兩種傳輸速度。與CAN一樣,CAN FD數(shù)據(jù)幀包括7個(gè)部分:幀起始、仲裁域、控制域、數(shù)據(jù)域、檢驗(yàn)域、應(yīng)答域、幀結(jié)束。以CAN擴(kuò)展幀為例,圖1比較了CAN FD與CAN擴(kuò)展幀的區(qū)別,CAN標(biāo)準(zhǔn)幀也是同樣的情況,CAN FD增加了一些標(biāo)志位、更大數(shù)據(jù)域和校驗(yàn)位。

      圖1 CAN FD與CAN擴(kuò)展幀報(bào)文結(jié)構(gòu)比較

      CAN FD幀結(jié)構(gòu)與CAN比較,區(qū)別在以下幾個(gè)方面。

      1)CAN FD替換增加了新的標(biāo)志位。CAN FD幀起始和CAN一樣為一個(gè)顯性位(0),之后仲裁場(chǎng)中的Identifier和擴(kuò)展ID保持不變,RTR位變更為RRS位(遠(yuǎn)程請(qǐng)求取代位),總是顯性,因?yàn)镃AN FD不支持remote frame遠(yuǎn)程幀。控制場(chǎng)中,F(xiàn)DF(FD Format Indicator)位用于標(biāo)識(shí)幀類型,F(xiàn)DF隱性標(biāo)識(shí)幀為CAN FD幀;顯性則標(biāo)識(shí)為CAN幀。增加了BRS(位速率轉(zhuǎn)換位),用于標(biāo)識(shí)CAN FD的速率切換,只有在隱性時(shí)進(jìn)行切換,顯性保持原有速率;ESI(錯(cuò)誤狀態(tài)知識(shí))位,主動(dòng)錯(cuò)誤節(jié)點(diǎn)為顯性,被動(dòng)錯(cuò)誤節(jié)點(diǎn)為隱性。

      2)CAN FD支持兩種速率傳輸。當(dāng)BRS位為1(隱性)時(shí),從BRS位后到CRC界定符為止,采取數(shù)據(jù)段速率;其余位仍采取標(biāo)準(zhǔn)速率。兩種速率采取不同的時(shí)間定義寄存器,時(shí)間定義tQ。

      3)CAN FD支持更高的帶寬。CAN FD數(shù)據(jù)域擴(kuò)充到了64個(gè)字節(jié),與CAN的8字節(jié)比較擴(kuò)大了8倍,通過(guò)控制域中的DLC(數(shù)據(jù)長(zhǎng)度控制)編碼方式的擴(kuò)展實(shí)現(xiàn)。DLC的編碼方式1~8個(gè)字節(jié)同CAN,出現(xiàn)大于8個(gè)字節(jié)的數(shù)據(jù)場(chǎng)即9~64字節(jié),編碼方式為非線性增長(zhǎng),見(jiàn)表1。對(duì)于CAN FD擴(kuò)展的字節(jié)容量,分別為8,12,16,20,24,32,48以及64。

      表1 CAN FD DLC編碼

      4)檢驗(yàn)域CRC計(jì)算方式擴(kuò)展。CAN總線CRC檢驗(yàn)域采用CRC_15,CAN FD增加了CRC_17,用于小于等于16字節(jié)的數(shù)據(jù)長(zhǎng)度;CRC_21用于小于等于64的數(shù)據(jù)長(zhǎng)度。其多項(xiàng)式定義見(jiàn)表2。

      表2 CRC校驗(yàn)多項(xiàng)式定義

      1.3 CAN FD總線報(bào)文發(fā)送方式

      對(duì)于診斷,CAN FD同CAN總線,在傳輸層定義了4種幀格式,即Single Frame、First Frame、Consecutive Frame、Flow Control。數(shù)據(jù)發(fā)送方式也與CAN類似,對(duì)于數(shù)據(jù)容量滿足單幀的數(shù)據(jù)直接發(fā)送;對(duì)于數(shù)據(jù)容量超過(guò)單幀承載能力的數(shù)據(jù),按照協(xié)議進(jìn)行分割重組,然后進(jìn)行多幀的傳遞方式。CAN FD數(shù)據(jù)傳輸方式見(jiàn)圖2。

      圖2 CAN FD數(shù)據(jù)傳輸方式

      與CAN總線不同的是因?yàn)镃AN FD幀數(shù)據(jù)承載量變大,對(duì)于Single Frame和First Frame的SF_DL和FF_DL進(jìn)行了擴(kuò)展,見(jiàn)表3。為了適應(yīng)數(shù)據(jù)容量的增加,紅色圈出部分為CAN FD新增加的PCI定義。

      表3 CAN FD N PCI信息

      2 UDS診斷協(xié)議研究

      2.1 UDS診斷協(xié)議介紹

      2006年ISO組織發(fā)布了ISO 14229標(biāo)準(zhǔn)UDS(Unified Diagnostic Services),不依賴于任何實(shí)際的總線技術(shù),單獨(dú)定義的通用診斷服務(wù)標(biāo)準(zhǔn)。此協(xié)議獨(dú)立于具體的汽車總線之外,構(gòu)建了應(yīng)用層的診斷服務(wù)和標(biāo)準(zhǔn)。ISO 14229-1描述應(yīng)用層的服務(wù)內(nèi)容;ISO 14229-2描述會(huì)話層,對(duì)于診斷時(shí)間參數(shù)進(jìn)行定義;其余部分為UDS協(xié)議在不同總線上的使用。針對(duì)于診斷在CAN上的使用,ISO發(fā)布了ISO 15765,其中ISO 15765-2在2015年增加CAN FD的網(wǎng)絡(luò)和傳輸層的內(nèi)容,ISO 15765-3為UDS在CAN網(wǎng)絡(luò)上的使用。UDS診斷可以實(shí)現(xiàn)如下功能:模塊故障碼DTC讀??;模塊存儲(chǔ)信息(Data ID)讀取;模塊內(nèi)存數(shù)據(jù)的上傳下載;模塊安全等級(jí)切換,I/O功能激活;診斷路由控制以及刷新模塊軟件或軟件下載等。

      2.2 UDS診斷協(xié)議內(nèi)容

      UDS協(xié)議通過(guò)請(qǐng)求-響應(yīng)(C-S)模式實(shí)現(xiàn)診斷過(guò)程。外接測(cè)試設(shè)備作為客戶端對(duì)于服務(wù)器端模塊提出請(qǐng)求Request,模塊根據(jù)服務(wù)請(qǐng)求情況給出響應(yīng)Response,見(jiàn)圖3。一般情況下請(qǐng)求響應(yīng)應(yīng)當(dāng)成對(duì)出現(xiàn),即客戶端提出請(qǐng)求時(shí),服務(wù)器端應(yīng)該給出回應(yīng),但UDS為了提高網(wǎng)絡(luò)傳輸效率,還定義了一種特殊情況,即服務(wù)Service ID的子服務(wù)最高位為響應(yīng)抑制位(suppressPosRspMsgIndicationBit),當(dāng)其值為1時(shí),則服務(wù)器端無(wú)需給出響應(yīng)答復(fù)。

      圖3 UDS請(qǐng)求-響應(yīng)模式

      在CAN或者CAN FD總線上,總線的模塊都可以收到客戶端外接檢測(cè)設(shè)備發(fā)出的診斷報(bào)文。對(duì)于目標(biāo)診斷模塊,UDS定義了兩種尋址方式,功能尋址和物理尋址。功能尋址為服務(wù)器端設(shè)備在總線上發(fā)出尋址ID,總線上一個(gè)或者多個(gè)模塊給出響應(yīng);物理尋址為服務(wù)器端設(shè)備對(duì)于某個(gè)固定的ECU ID請(qǐng)求診斷,固定模塊給出響應(yīng)。兩種尋址幀的報(bào)文結(jié)構(gòu)見(jiàn)圖4。

      圖4 UDS服務(wù)請(qǐng)求、響應(yīng)格式

      UDS的 診 斷 報(bào) 文 請(qǐng) 求 格 式 為SID (+Sub function)+Parameter,SID為UDS定義的26種功能服務(wù);Sub function為服務(wù)子功能,作為報(bào)文的可選項(xiàng)補(bǔ)充說(shuō)明診斷服務(wù)的內(nèi)容;Parameter為診斷參數(shù)。其中子服務(wù)的響應(yīng)抑制位可以定義服務(wù)是否請(qǐng)求服務(wù)器端的反饋?lái)憫?yīng)。

      響應(yīng)分為兩種情況,第1種為肯定響應(yīng)即服務(wù)器端接受了服務(wù)內(nèi)容,標(biāo)志為請(qǐng)求服務(wù)Service ID+0x40以及診斷反饋參數(shù);第2種為否定響應(yīng),否定響應(yīng)服務(wù)的Service ID為0x7F,標(biāo)識(shí)服務(wù)器端拒絕了響應(yīng)請(qǐng)求,并給出否定響應(yīng)的原因即反饋碼。

      UDS協(xié)議定義的26種服務(wù)SID見(jiàn)表4:可以分為6個(gè)大類,分別為數(shù)據(jù)上傳下載、模塊內(nèi)置程序函數(shù)調(diào)用、總線通信管理、輸入輸出信號(hào)控制、DTC處理、數(shù)據(jù)傳輸。

      表4 ISO 14229 UDS服務(wù)Service ID

      3 系統(tǒng)功能開(kāi)發(fā)

      CAN FD部分診斷系統(tǒng)主要由3部分組成,分別為診斷應(yīng)用模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)通信模塊。使用Microsoft Visual Studio作為IDE,通過(guò)C++進(jìn)行編寫,支持常用的部分診斷功能。

      3.1 診斷應(yīng)用模塊

      診斷應(yīng)用模塊按照UDS協(xié)議應(yīng)用層的定義,生成診斷報(bào)文,并解析響應(yīng)服務(wù)內(nèi)容,診斷應(yīng)用模塊邏輯見(jiàn)圖5,系統(tǒng)定義結(jié)構(gòu)體UDSSrvTx_SIDXX,通過(guò)請(qǐng)求-響應(yīng)的流程實(shí)現(xiàn)診斷應(yīng)用層的通信。

      圖5 診斷應(yīng)用模塊邏輯圖

      3.2 數(shù)據(jù)處理模塊

      數(shù)據(jù)處理模塊用于生成組織數(shù)據(jù)報(bào)文,對(duì)于從診斷模塊收集到的數(shù)據(jù)進(jìn)行分段重組,以及對(duì)于收到的響應(yīng)數(shù)據(jù)報(bào)文進(jìn)行解析。發(fā)送流程邏輯見(jiàn)圖6,本模塊通過(guò)結(jié)構(gòu)體CANFD_REQUEST_STRUCT定義實(shí)現(xiàn)。

      圖6 數(shù)據(jù)處理模塊發(fā)送流程邏輯圖

      數(shù)據(jù)處理模塊接收流程見(jiàn)圖7,通過(guò)函數(shù)CANFD_DATA_CONSTRUCTION實(shí)現(xiàn)診斷報(bào)文的重組構(gòu)建。

      圖7 數(shù)據(jù)處理模塊接收流程邏輯圖

      3.3 通信模塊

      通信模塊由兩個(gè)數(shù)據(jù)存儲(chǔ)隊(duì)列組成,分別為發(fā)送隊(duì)列和存儲(chǔ)隊(duì)列。工作時(shí)通過(guò)兩個(gè)線程完成數(shù)據(jù)的發(fā)送和接收工作。通信模塊發(fā)送接收進(jìn)程邏輯見(jiàn)圖8,發(fā)送線程為主線程,接收線程為次線程。發(fā)送線程根據(jù)發(fā)送隊(duì)列中的數(shù)據(jù)幀PCI信息處理數(shù)據(jù)幀的發(fā)送工作,即單幀直接發(fā)送,多幀根據(jù)流控幀的要求分步發(fā)送。接收線程處理從總線上收到的存儲(chǔ)隊(duì)列數(shù)據(jù)幀,首先判斷是否是反饋給測(cè)試設(shè)備地址的有效數(shù)據(jù),再根據(jù)數(shù)據(jù)幀的類型,把幀信息傳遞給發(fā)送線程或者是數(shù)據(jù)處理模塊。

      圖8 通信模塊發(fā)送接收進(jìn)程邏輯圖

      4 臺(tái)架測(cè)試驗(yàn)證

      4.1 測(cè)試方案

      檢測(cè)系統(tǒng)在為某款車型搭建的測(cè)試臺(tái)架上進(jìn)行驗(yàn)證,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)見(jiàn)圖9,其中,有部分模塊ECU支持CAN FD通信診斷。

      圖9 某款車型支持CAN FD的網(wǎng)絡(luò)拓?fù)鋱D

      測(cè)試檢測(cè)設(shè)備上位機(jī)電腦通過(guò)VCI卡與車載DLC口相互連接。DLC口定義了支持CAN總線的報(bào)文發(fā)送針腳等物理媒介,作為整車系統(tǒng)對(duì)外通信的媒介,所有的物理信號(hào)都會(huì)匯集到車輛的中央網(wǎng)關(guān)。診斷報(bào)文就經(jīng)由中央網(wǎng)關(guān)模塊路由至相應(yīng)的CAN FD模塊。

      4.2 測(cè)試內(nèi)容

      測(cè)試時(shí),通過(guò)第三方軟件記錄總線上的報(bào)文,驗(yàn)證系統(tǒng)的診斷功能。部分測(cè)試報(bào)文如圖10所示。

      圖10 部分測(cè)試報(bào)文

      1)診斷系統(tǒng)通過(guò)SID 0x22命令,讀取CAN ID:94DA58F1,DID為0xF0 CD的數(shù)據(jù)。以0x03標(biāo)識(shí)CAN FD單幀,封裝3個(gè)字節(jié)的診斷指令,其余部分以0x55填充。

      2)模塊反饋時(shí)因?yàn)閿?shù)據(jù)量較大,首先反饋First Frame,以0x10標(biāo)識(shí),0xED標(biāo)識(shí)傳遞的數(shù)據(jù)總長(zhǎng)度為237。數(shù)據(jù)起始為SID的肯定響應(yīng)0x22+0x40=0x62,DID的echo 0xF0 CD以及DID部分?jǐn)?shù)據(jù)信息。

      3)診斷系統(tǒng)發(fā)送流控幀0x30 00 00,F(xiàn)S為0x00同意接收連續(xù)幀,并以STmin 0x00標(biāo)識(shí)以默認(rèn)的時(shí)間間隔接收連續(xù)幀。

      4)連續(xù)幀的第1幀以0x21標(biāo)識(shí),后接部分DID數(shù)據(jù)內(nèi)容。

      5)連續(xù)幀第2幀以0x22標(biāo)識(shí),后接部分DID數(shù)據(jù)內(nèi)容。

      6)連續(xù)幀第3幀以0x23標(biāo)識(shí),后接部分DID數(shù)據(jù)內(nèi)容。雖然連續(xù)第3幀中不需要占滿64字節(jié)的數(shù)據(jù)量就可以傳遞完237字節(jié)的全部數(shù)據(jù),但因?yàn)镃AN FD數(shù)據(jù)場(chǎng)的大小為固定的幾個(gè)可選值,所以64字節(jié)的數(shù)據(jù)場(chǎng)多余部分填充0x00組成完整的CAN FD數(shù)據(jù)幀。

      測(cè)試驗(yàn)證了CAN FD系統(tǒng)的部分診斷功能,按照預(yù)先設(shè)計(jì)的流程,從支持CAN FD功能的模塊上讀取了相關(guān)診斷參數(shù),實(shí)現(xiàn)了基于CAN FD的UDS診斷通信。

      5 結(jié)論

      CAN FD網(wǎng)絡(luò)實(shí)現(xiàn)了在原有CAN物理設(shè)備基礎(chǔ)上,進(jìn)行更高速的數(shù)據(jù)通信,而CAN FD結(jié)合ISO標(biāo)準(zhǔn)的通用診斷協(xié)議UDS的使用,是汽車診斷領(lǐng)域重要的研究課題。本文以CAN FD網(wǎng)絡(luò)通信以及UDS診斷協(xié)議為理論基礎(chǔ),比較了CAN FD為實(shí)現(xiàn)高速診斷的幀結(jié)構(gòu)變更內(nèi)容以及編碼形式的更新;同時(shí)對(duì)UDS診斷實(shí)現(xiàn)的流程進(jìn)行了闡述,并對(duì)診斷服務(wù)進(jìn)行了說(shuō)明。本文開(kāi)發(fā)了一套在CAN FD網(wǎng)絡(luò)中,使用UDS診斷協(xié)議進(jìn)行診斷通信的系統(tǒng),支持部分常用的診斷功能,使用時(shí)結(jié)合系統(tǒng)的其他硬件,對(duì)診斷功能進(jìn)行了臺(tái)架測(cè)試驗(yàn)證。系統(tǒng)也為支持CAN FD完整UDS診斷的開(kāi)發(fā)提供了擴(kuò)展可能,可以在工程實(shí)踐中進(jìn)一步完善更新。

      猜你喜歡
      服務(wù)器端字節(jié)報(bào)文
      基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
      CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
      淺析反駁類報(bào)文要點(diǎn)
      No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      簡(jiǎn)談MC7字節(jié)碼
      ATS與列車通信報(bào)文分析
      在Windows中安裝OpenVPN
      網(wǎng)頁(yè)防篡改中分布式文件同步復(fù)制系統(tǒng)
      南投县| 崇义县| 仪陇县| 合作市| 林西县| 亚东县| 宿迁市| 全椒县| 辉县市| 阳新县| 年辖:市辖区| 泰安市| 叙永县| 五家渠市| 新疆| 旬邑县| 扎鲁特旗| 朝阳县| 运城市| 沙田区| 泾川县| 金堂县| 白水县| 皮山县| 华坪县| 禄丰县| 汶川县| 喜德县| 达孜县| 弥勒县| 芦山县| 大英县| 靖西县| 定安县| 凌海市| 江达县| 西林县| 库伦旗| 洪江市| 涿鹿县| 铅山县|