標(biāo)注:本文來(lái)自本實(shí)驗(yàn)室杜興華的研究成果。
2 構(gòu)建車(chē)載以太網(wǎng)數(shù)字孿生模型客戶端
在車(chē)載以太網(wǎng)數(shù)組孿生模型中,AddEthernetType 表示引入以太網(wǎng)的類(lèi)型。本文中以太網(wǎng)類(lèi)型為車(chē)載以太網(wǎng)。
在該模型中,引用 MDD 的Blocks 功能,將車(chē)載以太網(wǎng)加入到模型中,表示我們本次要做的仿真模型為車(chē)載以太網(wǎng)的模型。AddEthernetType 模型如圖 2-1 所示。
圖 2-1: AddEthernetType 模型
2.2 GetEthernetType
在車(chē)載以太網(wǎng)數(shù)字孿生模型中,GetEthernetType 可以識(shí)別引入的以太網(wǎng)的類(lèi)型,從而建立通信。本文中以太網(wǎng)類(lèi)型為車(chē)載以太網(wǎng)。
在該模型中,引用 MDD 的Blocks 功能,識(shí)別引入的車(chē)載以太網(wǎng),與引入的車(chē)載以太網(wǎng)建立通信,從而建立 GetEthernetType 模型。GetEthernetType 如圖 2-2 所示。
圖 2-2: GetEthernetType 模型
2.3 AddMAC
車(chē)載以太網(wǎng)數(shù)字孿生模型中,AddMAC 表示在引入以太網(wǎng)的 MAC 地址。
用長(zhǎng)度為 255 的char 類(lèi)型數(shù)組來(lái)表示 MAC 地址,引用 MDD 的Blocks 功能,引入以太網(wǎng)的 MAC 地址。模型見(jiàn)圖 2-3。
圖 2-3: AddMAC 模型
2.4 GetMAC
車(chē)載以太網(wǎng)數(shù)字孿生模型中,GetMAC 表示得到以太網(wǎng)的 MAC 地址。
在該模型中,同樣使用長(zhǎng)度為 255 的 char 類(lèi)型數(shù)組來(lái)表示 MAC 地址,引用 MDD的Blocks 功能,該模型可以在數(shù)據(jù)包中解析到 MAC 地址。GetMAC 模型如圖 2-4 所示。
圖 2-4: GetMAC 模型
2.5 Test01
在車(chē)載以太網(wǎng)數(shù)字孿生模型中,Test01 表示使用TCP/IP 協(xié)議、UDP 協(xié)議、MAC 協(xié)議等模擬出車(chē)載以太網(wǎng)的模型。
在該模型中,將TCP/IP 協(xié)議和 SerialPackger 塊連接起來(lái),建立車(chē)載以太網(wǎng)的網(wǎng)絡(luò), 車(chē)載以太網(wǎng)客戶端徹底組建完成,待與后端建立網(wǎng)絡(luò)連接之后,便可以進(jìn)行車(chē)載以太網(wǎng)和車(chē)載網(wǎng)絡(luò)之間的通信。Test01 模型如圖 2-5 所示。
2-5: Test01 模型
3 建立車(chē)載以太網(wǎng)后端服務(wù)器
在本文的車(chē)載以太網(wǎng)數(shù)字孿生模型中,后端服務(wù)器用 python 代碼實(shí)現(xiàn),使用 python模擬 TCP/IP 服務(wù)器,輸入和輸出的數(shù)據(jù)形式為以太網(wǎng)第二層數(shù)據(jù)幀。
3.1 設(shè)置 HOST 地址和 MAC 地址
我們首先設(shè)置一個(gè)給車(chē)載以太網(wǎng) HOST 地址和 MAC 地址,如圖 3-1 所示。
圖 3-1: HOST 地址和 MAC 地址
3.2 設(shè)置以太網(wǎng) IEEE 802.3 接口的全局定義
在車(chē)載以太網(wǎng)網(wǎng)址中定義 ETH_ALEN,占據(jù)八個(gè)字節(jié),在車(chē)載以太網(wǎng)類(lèi)型字段中定義 ETH_TLEN,占據(jù)八個(gè)字節(jié),設(shè)置 ETH_DATA_LEN = 2,表示車(chē)載以太網(wǎng)報(bào)文有效載荷長(zhǎng)度為 2,設(shè)置 ETH_FRAME_LEN = 1514,表示在 FCS 中的八位字節(jié)中最大值為 1514。代碼如圖 3-2 所示。
圖 3-2: 車(chē)載以太網(wǎng)全局設(shè)置
3.3 以太網(wǎng)可聯(lián)通性檢查工具
可連通性測(cè)試可以讓我們知道服務(wù)器訪問(wèn)互聯(lián)網(wǎng)的狀況??蛇B通性測(cè)試提供了一種可靠的方式,使外部來(lái)源檢查以太網(wǎng)網(wǎng)絡(luò)連接。當(dāng)我們認(rèn)為一切都正確配置,但無(wú)法測(cè)試連接時(shí),該測(cè)試會(huì)提供即時(shí)反饋,讓我們明白我們的配置是否可以真正進(jìn)行外部訪問(wèn)??蛇B通性測(cè)試代碼如圖 3-3 所示。
圖 3-3: 以太網(wǎng)可聯(lián)通性檢查工具
3.4 生成一個(gè)隨機(jī)的 MAC 地址及其原始字符
首先生成一個(gè)隨機(jī)的 MAC 地址,讓以太網(wǎng)服務(wù)器擁有物理地址。代碼如圖 3-4 所示。
圖 3-4: MAC 地址隨機(jī)生成函數(shù)
3.5 建立服務(wù)器與車(chē)載以太網(wǎng)模型的通信
首先服務(wù)器在端口上監(jiān)聽(tīng)車(chē)載以太網(wǎng)模型發(fā)出的數(shù)據(jù)包,監(jiān)聽(tīng)到數(shù)據(jù)包之后進(jìn)行解析,并且獲得通信目標(biāo)的 MAC 地址。獲得地址之后進(jìn)行數(shù)據(jù)的偏移,檢測(cè)獲得目標(biāo)的MAC 地址是否和機(jī)器的 MAC 地址一致,如果不一致,返回一條錯(cuò)誤信息,如果一致, 則建立通信連接,在給目標(biāo)發(fā)送數(shù)據(jù)包時(shí)需要交換源地址和目標(biāo)地址。通信代碼如圖 3-5 所示。
圖 3-5: 建立通信
首先我們運(yùn)行python 的服務(wù)器代碼,讓服務(wù)器處于監(jiān)聽(tīng)狀態(tài),之后在 OpenModelica里面運(yùn)行車(chē)載以太網(wǎng)的仿真模型,讓兩者建立通信,并且查看建模仿真結(jié)果。運(yùn)行服務(wù)器代碼結(jié)果如圖 4-1 所示。
圖 4-1: python 代碼運(yùn)行結(jié)果
由此圖可以看出服務(wù)器正在監(jiān)聽(tīng),暫時(shí)還沒(méi)有收到數(shù)據(jù)包。
接下來(lái)運(yùn)行 OpenModelica 里面的車(chē)載以太網(wǎng)模型,結(jié)果如圖 4-2 所示。
4-2: 模型運(yùn)行結(jié)果
此時(shí)我們回看服務(wù)器運(yùn)行結(jié)果,可以看到服務(wù)器與車(chē)載以太網(wǎng)模型已經(jīng)建立通信連接。結(jié)果如圖 4-3 所示。
圖 4-3: 通信連接
編輯:jq
-
Mac
+關(guān)注
關(guān)注
0文章
1124瀏覽量
54392 -
車(chē)載以太網(wǎng)
+關(guān)注
關(guān)注
19文章
246瀏覽量
23816 -
TCP/IP
+關(guān)注
關(guān)注
0文章
15瀏覽量
10820
發(fā)布評(píng)論請(qǐng)先 登錄
車(chē)載以太網(wǎng)技術(shù)的深度解析與核心應(yīng)用

如何確保自動(dòng)駕駛汽車(chē)感知的準(zhǔn)確性?

自動(dòng)駕駛汽車(chē)是如何準(zhǔn)確定位的?



劉強(qiáng)東,進(jìn)軍汽車(chē)領(lǐng)域# 京東# 自動(dòng)駕駛# 自動(dòng)駕駛出租車(chē)# 京東自動(dòng)駕駛快遞車(chē)
泰克示波器MDO3024在車(chē)載以太網(wǎng)測(cè)試中的應(yīng)用

NVIDIA Halos自動(dòng)駕駛汽車(chē)安全系統(tǒng)發(fā)布
理想汽車(chē)推出全新自動(dòng)駕駛架構(gòu)
汽車(chē)以太網(wǎng)ESD保護(hù)

汽車(chē)以太網(wǎng)的演化進(jìn)程

汽車(chē)以太網(wǎng)發(fā)明人領(lǐng)銜出席,2025 AES第六屆中國(guó)國(guó)際汽車(chē)以太網(wǎng)峰會(huì)啟動(dòng)報(bào)名!
TOSUN 車(chē)載以太網(wǎng)仿真測(cè)試解決方案

MEMS技術(shù)在自動(dòng)駕駛汽車(chē)中的應(yīng)用
工業(yè)以太網(wǎng)的應(yīng)用場(chǎng)景分析
自動(dòng)駕駛汽車(chē)安全嗎?

評(píng)論