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