本發(fā)明涉及通信協(xié)議領(lǐng)域,尤其涉及車載can總線協(xié)議,tcp/ip協(xié)議棧tcp、udp通信。
背景技術(shù):
在現(xiàn)行車載網(wǎng)絡(luò)中,較為通用的是can總線網(wǎng)絡(luò)。但是速度較慢,理論通信速度僅為以太網(wǎng)通信速率的百分之一。隨著物聯(lián)網(wǎng)的興起和輔助駕駛的興起,車載傳感器的數(shù)量顯著增加。整車電控系統(tǒng)日趨復(fù)雜,整車上越來越多的電控系統(tǒng)采用ecu刷新的方式進行軟件、標定等的更新,刷新總數(shù)據(jù)量增大;此外,隨著人們對車輛舒適性,便利性及用戶體驗的要求越來越高,車載導(dǎo)航、娛樂等系統(tǒng)的應(yīng)用數(shù)據(jù)量也正在變得愈來愈大,特別是當(dāng)引入攝像頭等圖像采集設(shè)備進行圖像分析處理時,對總線的速率要求較高?;赾an網(wǎng)絡(luò)的傳統(tǒng)方式因受can總線傳輸速率的限制已經(jīng)難以滿足高效率刷新要求。
以太網(wǎng)的速率可以達到要求。但是將整個車載網(wǎng)絡(luò)替換成以太網(wǎng),需要完全替代掉原有的傳感器設(shè)備。同時傳統(tǒng)的以太網(wǎng)總線rj45成本高、橫截面大,不適合做車載總線。
為了克服現(xiàn)有技術(shù)中的上述缺陷,本發(fā)明提出了一種車身結(jié)合can和ethernet的混合網(wǎng)絡(luò)網(wǎng)關(guān)及其數(shù)據(jù)交換方法。本發(fā)明通過建立can和ethernet的混合網(wǎng)關(guān)的辦法,實現(xiàn)can總線網(wǎng)絡(luò)和ethernet網(wǎng)絡(luò)的融合,提出了協(xié)議轉(zhuǎn)換的方法。同時提出了采用雙絞線代替rj45線作為以太網(wǎng)通信線路的方法,對于雙絞線具有較高的穩(wěn)定性和靈活性,因此在車載can網(wǎng)絡(luò)中廣泛使用。
技術(shù)實現(xiàn)要素:
本發(fā)明提出了一種車身結(jié)合can和ethernet的混合網(wǎng)絡(luò)網(wǎng)關(guān)裝置,包括如下模塊:can報文收發(fā)模塊,其用于捕捉can報文、在can網(wǎng)絡(luò)上發(fā)送報文和監(jiān)聽can總線狀態(tài);ethernet報文收發(fā)模塊,其用于接收和發(fā)送ethernet報文,通過適配網(wǎng)絡(luò)協(xié)議、實現(xiàn)協(xié)議棧,可直接接入包括wifi、4g的通用以太網(wǎng)絡(luò);信息處理轉(zhuǎn)換模塊,其與所述can報文收發(fā)模塊及所述ethernet報文收發(fā)模塊通信,用于處理所述can報文收發(fā)模塊和所述ethernet報文收發(fā)模塊接收到的消息,同時可以使用所述can報文收發(fā)模塊和所述ethernet報文收發(fā)模塊發(fā)送報文;邏輯主控模塊,其與所述信息處理轉(zhuǎn)換模塊通信,用于維護網(wǎng)絡(luò)狀態(tài),響應(yīng)經(jīng)過所述信息處理轉(zhuǎn)換模塊轉(zhuǎn)換識別的指令,同時確定轉(zhuǎn)發(fā)方向以及關(guān)系,識別刷新指令,實現(xiàn)車載設(shè)備和本網(wǎng)絡(luò)可通過以太網(wǎng)絡(luò)刷新,即在線升級應(yīng)用程序。
本發(fā)明提出的所述車身結(jié)合can和ethernet的混合網(wǎng)絡(luò)網(wǎng)關(guān)裝置中,所述ethernet報文收發(fā)模塊采用broadr-reach雙絞線,雙端接口采用server和master的非對稱設(shè)計。
本發(fā)明提出的所述車身結(jié)合can和ethernet的混合網(wǎng)絡(luò)網(wǎng)關(guān)裝置中,所述ethernet報文收發(fā)模塊移植實現(xiàn)了通用以太網(wǎng)協(xié)議棧,支持應(yīng)用層的tcp、udp、http等多種連接協(xié)議。
本發(fā)明提出的所述車身結(jié)合can和ethernet的混合網(wǎng)絡(luò)網(wǎng)關(guān)裝置中,所述can報文收發(fā)模塊網(wǎng)絡(luò)實現(xiàn)了can報文收發(fā)的通信時序的封裝;對數(shù)據(jù)的拆包和打包方面在整個協(xié)議的傳輸層進行。
本發(fā)明還提出了一種基于所述的混合網(wǎng)關(guān)網(wǎng)管裝置的數(shù)據(jù)交換方法,包括如下步驟:
步驟一:掛載在所述can報文收發(fā)模塊上的所有設(shè)備設(shè)置特殊標志,當(dāng)收到ethernet和can消息時,若對應(yīng)設(shè)備的id在消息的記錄項中,則所述設(shè)備的特殊標志被轉(zhuǎn)發(fā)到can網(wǎng)絡(luò)上;
步驟二:所有非本機ip地址的ethernet報文將會被轉(zhuǎn)發(fā)到其余掛載在本ethernet報文收發(fā)模塊上的ethernet網(wǎng)絡(luò)上;
步驟三:所有目標地址是本網(wǎng)關(guān)的ethernet報文將會被封裝成can報文通過can報文收發(fā)模塊發(fā)送到對應(yīng)can網(wǎng)絡(luò)上。
本發(fā)明利用can和ethernet混合網(wǎng)關(guān)等方法,在原有車載網(wǎng)絡(luò)基礎(chǔ)上集成更快速度的傳感網(wǎng)絡(luò),其有益效果是,可以傳輸更高精度的數(shù)據(jù),實現(xiàn)更復(fù)雜的邏輯,且不影響原來的功能,同時兼容了目前常見的以太網(wǎng)絡(luò)和舊的can設(shè)備。
附圖說明
圖1是本發(fā)明車身結(jié)合can和ethernet的混合網(wǎng)絡(luò)網(wǎng)關(guān)的示意圖。
圖2是本發(fā)明使用和拓展接線示意圖。
圖3是在原有車載網(wǎng)絡(luò)中接入示意圖
圖4是實施例1拓撲結(jié)構(gòu)示意圖。
圖5是實施例2拓撲結(jié)構(gòu)示意圖。
圖6是實施例3拓撲結(jié)構(gòu)示意圖。
圖7是實施例4拓撲結(jié)構(gòu)示意圖。
圖8是實施例5拓撲結(jié)構(gòu)示意圖。
圖9是實施例6拓撲結(jié)構(gòu)示意圖。
圖10是在網(wǎng)關(guān)和上位機端都接入了額外的無線收發(fā)裝置的拓撲結(jié)構(gòu)示意圖。
具體實施方式
結(jié)合以下具體實施例和附圖,對本發(fā)明作進一步的詳細說明。實施本發(fā)明的過程、條件、實驗方法等,除以下專門提及的內(nèi)容之外,均為本領(lǐng)域的普遍知識和公知常識,本發(fā)明沒有特別限制內(nèi)容。
本發(fā)明通過轉(zhuǎn)發(fā)can報文到ethernet網(wǎng)絡(luò)上和將ethernet報文轉(zhuǎn)發(fā)到can網(wǎng)絡(luò)上實現(xiàn)了can和ethernet網(wǎng)絡(luò)的融合。同時可以將多路can網(wǎng)絡(luò)和多路ethernet網(wǎng)絡(luò)連接到一起。從而滿足對于新一代汽車以太網(wǎng)總線在診斷應(yīng)用、以太網(wǎng)刷新車載控制單元應(yīng)用、大數(shù)據(jù)傳輸驗證等方面的網(wǎng)關(guān)控制器驗證。
本發(fā)明公開了一種車身結(jié)合can和ethernet的混合網(wǎng)絡(luò)網(wǎng)關(guān)及其數(shù)據(jù)交換方法,包括:can報文收發(fā)模塊,用于和車上的can總線上的設(shè)備進行通信;ethernet報文收發(fā)模塊,用于與以太網(wǎng)上的設(shè)備進行通信,包括上位機和新型的ethernet車載設(shè)備;信號處理轉(zhuǎn)換模塊,用于解析、封裝、轉(zhuǎn)發(fā)can報文和ethernet報文,并使其符合要求的協(xié)議;邏輯主控模塊,用于確定報文分發(fā)方向,響應(yīng)ethernet診斷口發(fā)來的相關(guān)診斷指令,控制板載外設(shè)獲取數(shù)據(jù)信息。現(xiàn)在的大多數(shù)網(wǎng)關(guān)的做法都是在應(yīng)用層進行報文解析和轉(zhuǎn)發(fā),本發(fā)明涉及的can報文和以太網(wǎng)報文的轉(zhuǎn)換機制主要工作在傳輸層,因此不需要理解數(shù)據(jù)的具體語義。由于車載設(shè)備的對安全性的要求較高,這種做法可以使得轉(zhuǎn)發(fā)過程中不查看、修改數(shù)據(jù)內(nèi)容,從而不影響can報文的中的加密、解密算法。使得車載網(wǎng)絡(luò)中各個設(shè)備可以設(shè)計使用不同的加密、解密算法而不受影響。由于轉(zhuǎn)發(fā)協(xié)議棧實現(xiàn)中少了一層處理時間,使得本發(fā)明報文轉(zhuǎn)發(fā)傳輸時延小、丟包率低,可以建立較穩(wěn)定、實時的鏈接。基于此實現(xiàn)的can網(wǎng)絡(luò)和以太網(wǎng)的融合,使得can網(wǎng)絡(luò)和以太網(wǎng)網(wǎng)絡(luò)內(nèi)設(shè)備可以流暢通信。
本發(fā)明設(shè)計的can報文和以太網(wǎng)報文的轉(zhuǎn)換,是在傳輸層進行拆包分析再裝包的。對于數(shù)據(jù)的理解只到報文層面,免去了引入上層邏輯協(xié)議的數(shù)據(jù)語義理解。節(jié)省設(shè)備運算能力,提供轉(zhuǎn)換效率。專注轉(zhuǎn)發(fā),減少丟包率和轉(zhuǎn)發(fā)時延。本發(fā)明在以太網(wǎng)上設(shè)備之間實現(xiàn)互聯(lián)和can網(wǎng)絡(luò)設(shè)備之間實現(xiàn)互聯(lián)的基礎(chǔ)上,實現(xiàn)了can設(shè)備和以太網(wǎng)設(shè)備之間的互通互聯(lián)。在汽車網(wǎng)絡(luò)升級換代的進程中,本發(fā)明為兼容舊的can設(shè)備提供了一個有效的解決方案。
本發(fā)明提出的can報文收發(fā)模塊,主要用于監(jiān)控車載can網(wǎng)絡(luò)上的報文以及往can總線上發(fā)送報文,監(jiān)聽總線忙等狀態(tài),可以單路或多路can。且可以在代碼中選擇具體某個can進行異步發(fā)送,從而達到并行效果。
本發(fā)明提出的ethernet報文收發(fā)模塊,可以監(jiān)聽多路ethernet鏈路,截取發(fā)送給自己的ethernet報文,同時將別目的地址的報文轉(zhuǎn)發(fā)到其他ethernet鏈路上,不需要做多余的轉(zhuǎn)發(fā)操作。
本發(fā)明提出的信號處理轉(zhuǎn)換模塊,可以操作can報文,即可以解析can報文中數(shù)據(jù),也具備將信息封裝成can報文的能力??梢圆僮鱡thernet報文,即可以將信息封裝成ethernet報文,也可以將ethernet報文中數(shù)據(jù)解析、讀取出來。
本發(fā)明提出了一種can和ethernet報文互轉(zhuǎn)方法,包括如下步驟:
can消息處理步驟,在接收到can消息后將信息按照要求的封裝方法分裝成ethernet報文,放到ethernet網(wǎng)絡(luò)上。封裝方法可以按照doip協(xié)議進行一對一分裝,或者為了提高速度可以用多對一的封裝。
ethernet消息收發(fā)步驟,在將ethernet相關(guān)參數(shù)設(shè)置好后,便可以參照tcp/ip協(xié)議棧進行socket通信。包括了tcp報文、udp報文在內(nèi)全套建立連接等傳輸步驟的實現(xiàn)和封裝。
ethernet消息處理步驟,在接收到ethernet消息之后,按照發(fā)送方使用的封裝規(guī)則,解析拆包,封裝成多個can報文,并發(fā)送到對應(yīng)的can總線上。
消息隊列緩沖步驟,由于ethernet傳輸速率更高,但是建立連接時間較長。本發(fā)明實現(xiàn)了在收到can報文和ethernet報文進行緩存,采用先入先出規(guī)則,通過緩存協(xié)調(diào)解決兩種報文收發(fā)時的速率不統(tǒng)一的問題。
本發(fā)明還使用了一種用雙絞線代替rj45作為ethernet傳輸數(shù)據(jù)線的做法。用broadr-reach口作為數(shù)據(jù)接口。設(shè)置成slaver和master作為一對雙絞線的兩端,在此兩個接口之間傳輸數(shù)據(jù)。
圖1所示系統(tǒng)組成圖顯示了本發(fā)明網(wǎng)關(guān)既可以用于can通信,也可以用于ethernet網(wǎng)絡(luò)通信。還具備了多個can和ethernet網(wǎng)絡(luò)報文依據(jù)裝換協(xié)議互聯(lián)互通的功能。在收到報文之后,處于中央位置的信號處理轉(zhuǎn)換模塊(3)會處理得到實質(zhì)內(nèi)容的消息,可以再分裝成can或者ethernet報文,放到can或ethernet網(wǎng)絡(luò)上,從而達到can和ethernet互通的效果。本系統(tǒng)對can報文和以太網(wǎng)報文的處理,處在連接層之上,應(yīng)用層之下。對于報文的具體語義,如連續(xù)幀、維持幀不做理解區(qū)分,可以簡化網(wǎng)管程序邏輯只做轉(zhuǎn)發(fā),降低轉(zhuǎn)發(fā)時延、最小化丟包率和保證發(fā)送順序。這些措施使得報文實時性提高,從而不影響設(shè)備間通信的正常時序邏輯。當(dāng)前以太網(wǎng)做車載物聯(lián)網(wǎng)的理論已經(jīng)比較成熟,本系統(tǒng)做轉(zhuǎn)發(fā)的網(wǎng)關(guān)提供一種使現(xiàn)有以太網(wǎng)兼容can設(shè)備的實現(xiàn)方案,降低車承載以太網(wǎng)總線應(yīng)用成本。
邏輯主控模塊實現(xiàn)了基于車用以太網(wǎng)的診斷服務(wù):基本診斷服務(wù)是基于doip基礎(chǔ)上實現(xiàn)最基本的診斷服務(wù),包括診斷會話服務(wù)控制車載設(shè)備重置服務(wù),通訊控制服務(wù)診斷存在服務(wù)。作為網(wǎng)關(guān),對普通車載設(shè)備的can數(shù)據(jù)轉(zhuǎn)發(fā)功能:包括跨越以太網(wǎng)網(wǎng)關(guān)的can數(shù)據(jù)轉(zhuǎn)發(fā),以太網(wǎng)診斷轉(zhuǎn)入can車載設(shè)備等。針對can轉(zhuǎn)ethernet轉(zhuǎn)can網(wǎng)關(guān)的時間約束:網(wǎng)關(guān)以太網(wǎng)轉(zhuǎn)以太網(wǎng),以太網(wǎng)轉(zhuǎn)can等收發(fā)的時間約束情況可以得到有效的控制?;谲囉靡蕴W(wǎng)的刷新:通過以太網(wǎng)接口,運行在計算機上的上位刷新工具軟件可以對本項目研發(fā)輸出的以太網(wǎng)網(wǎng)關(guān)原型車載設(shè)備進行軟件刷新。基于車用以太網(wǎng),使用ethernet轉(zhuǎn)can網(wǎng)關(guān)轉(zhuǎn)換后,傳統(tǒng)can車載設(shè)備的刷新通過以太網(wǎng)接口,運行在計算機上的上位刷新工具軟件可以通過以太網(wǎng)網(wǎng)關(guān)車載設(shè)備轉(zhuǎn)入can信號,然后對傳統(tǒng)can車載設(shè)備進行軟件刷新。
本網(wǎng)關(guān)可以和同種設(shè)備疊加組成復(fù)雜的網(wǎng)絡(luò),可以接入一個或多個can網(wǎng)絡(luò),或者一個或多個ethernet網(wǎng)絡(luò),如圖2所示的各個can網(wǎng)絡(luò)之間可以正常通信:can網(wǎng)絡(luò)1發(fā)往can網(wǎng)絡(luò)2的數(shù)據(jù)報文將會經(jīng)過網(wǎng)關(guān)2進行轉(zhuǎn)發(fā),網(wǎng)關(guān)2在對設(shè)備id進行判斷后將會轉(zhuǎn)發(fā)至can網(wǎng)絡(luò)2而不會轉(zhuǎn)發(fā)到網(wǎng)關(guān)1。can網(wǎng)絡(luò)1發(fā)往can網(wǎng)絡(luò)3的網(wǎng)絡(luò)報文將會經(jīng)過網(wǎng)關(guān)2進行轉(zhuǎn)發(fā),網(wǎng)關(guān)2將會通過網(wǎng)關(guān)1和網(wǎng)關(guān)3轉(zhuǎn)發(fā)到can網(wǎng)絡(luò)3。
本網(wǎng)關(guān)可以在與can網(wǎng)絡(luò)不沖突的基礎(chǔ)上添加ethernet網(wǎng)絡(luò)。如圖2所示的ethernet設(shè)備也可以相互通信,也可以和can網(wǎng)絡(luò)中的設(shè)備通信。上位機也可以和接入網(wǎng)絡(luò)中的任何一個設(shè)備進行診斷通信、刷新操作。
如圖3所示的是將車載can設(shè)備組成的網(wǎng)絡(luò)分成兩部分,中間用ethernet透傳的拓撲連接示意圖。兩端的車載設(shè)備可以正常的用can報文通信,且具有穩(wěn)定性。can報文在被網(wǎng)關(guān)收到之后被打包成ethernet報文發(fā)布到示意圖中間的ethernet網(wǎng)絡(luò)之中。使得數(shù)據(jù)處理無需理解上層語義,在提升效率同時維持了信息安全的保護,這對于一些保密性要求較高的車載設(shè)備非常有幫助。豐富完備的標準協(xié)議的支持和封裝使得上位機應(yīng)用的編寫十分方便,讓車載網(wǎng)絡(luò)和通用以太網(wǎng)的連接成為可能,極大地拓展了應(yīng)用場景。對應(yīng)的網(wǎng)關(guān)接收到ethernet報文之后再轉(zhuǎn)換成can報文放到另一端的can網(wǎng)絡(luò)上。從而使得原來的車載設(shè)備can通信不受影響。
實施例:
圖4顯示的診斷用上位機連接網(wǎng)關(guān)以測試ethernet診斷傳輸測試。通過上位機診斷程序發(fā)送多種診斷服務(wù)請求,檢查網(wǎng)關(guān)對診斷服務(wù)的響應(yīng)。根據(jù)診斷標準發(fā)送診斷服務(wù),ecu將會正確響應(yīng),可以通過ethernet上的上位機程序?qū)Ρ揪W(wǎng)關(guān)的程序動態(tài)升級和刷新。
圖5顯示的是網(wǎng)關(guān)的can診斷測試。通過網(wǎng)關(guān)發(fā)送can診斷服務(wù),can設(shè)備將會收到診斷報文,且正確響應(yīng)。從can分析儀中可以觀察到數(shù)據(jù)流過程。
圖6顯示的是網(wǎng)關(guān)的ethernet診斷測試。網(wǎng)關(guān)通過ethernet發(fā)送診斷報文,ethernet設(shè)備將會收到診斷請求報文,并做出正確診斷響應(yīng)。從ethernet分析儀觀察到數(shù)據(jù)流過程。
圖7是診斷上位機透傳網(wǎng)關(guān)診斷can設(shè)備診斷測試以及通過網(wǎng)關(guān)刷新can設(shè)備測試。通過can設(shè)備發(fā)送診斷服務(wù)請求,上位機程序做出正確響應(yīng)。上位機導(dǎo)入被測設(shè)備刷新目標文件,指令被透傳到can網(wǎng)絡(luò)上。從而實現(xiàn)了接入網(wǎng)絡(luò)的車載設(shè)備,通過接入ethernet網(wǎng)絡(luò)的上位機程序來高效刷新固件。
圖8是can設(shè)備透過ethernet網(wǎng)絡(luò)通信連通性測試以及網(wǎng)關(guān)透傳can報文的實車負載測試。can1設(shè)備發(fā)送診斷服務(wù)請求,can2接收到正確的指令,并做出正確回應(yīng)。將車上一個can鏈路斷開,將本發(fā)明網(wǎng)關(guān)系統(tǒng)接入,測試實車運行情況。車輛在兩個can網(wǎng)絡(luò)的設(shè)備正常通信,沒有故障報告。
圖9是測試上位機通過網(wǎng)關(guān)刷新ethernet設(shè)備。上位機導(dǎo)入被測設(shè)備刷新目標文件。目標設(shè)備在接收到刷新ethernet報文后,開始刷新固件,完成后重啟并進入應(yīng)用模式。
圖10是在網(wǎng)關(guān)和上位機端都接入了額外的無線收發(fā)裝置。因為本網(wǎng)關(guān)對于tcp\ip協(xié)議的支持,上位機可以在當(dāng)前常見的ethernet網(wǎng)絡(luò)環(huán)境中使用。所以當(dāng)前市面常見無線收發(fā)裝置都可以使用。如無線路由器時間接入wifi,3g、4g上網(wǎng)卡實現(xiàn)接入3g、4g。從而使得前面提到的所有刷新操作都可以在通用以太網(wǎng)絡(luò)(包括無線環(huán)境)下使用。
本發(fā)明的保護內(nèi)容不局限于以上實施例。在不背離發(fā)明構(gòu)思的精神和范圍下,本領(lǐng)域技術(shù)人員能夠想到的變化和優(yōu)點都被包括在本發(fā)明中,并且以所附的權(quán)利要求書為保護范圍。