?

基于CAN域地址的網關路由設計

2017-11-07 01:13方偉家
汽車電器 2017年10期
關鍵詞:子網網關報文

方偉家,衛 威,左 政

(一汽轎車股份有限公司產品部,吉林 長春 130012)

基于CAN域地址的網關路由設計

方偉家,衛 威,左 政

(一汽轎車股份有限公司產品部,吉林 長春 130012)

提出一種基于CAN域地址的網關路由算法設計。采用此方法設計網關,可以提高網關的通用化率。

報文標識符;域;路由;子網掩碼

隨著整車電子電氣化的發展,車輛電氣裝備越來越豐富,越來越多的電子控制單元裝備在汽車中。為了方便電子控制單元間的信息共享,并且降低成本和減少線束質量,電控單元大多支持CAN總線通信。網關是連接多個子網的節點,是分隔網絡降低網絡負載的工具。不論集成式網關還是獨立式網關,信息路由都是網關的最主要功能。通常網關路由設計基于現有的路由表進行定制化開發,而后續整車裝備升級常常變更路由表信息,使得網關頻繁升級。本文提出了一種基于總線域地址的網關路由算法設計,采用此方法可以使路由表自動生成,避免網關頻繁升級,達到通用化設計的目的。文章首先對域和子網結構等相關信息進行定義,接下來介紹網關端口和設計路由表,最后給出路由算法和實例分析。

1 域定義和子網結構

CAN網絡中的節點可以通信,需要定義節點通信地址。各個節點都具有一個唯一的通信地址,不同的節點有不同的通信地址。多個節點連接在同一條CAN網絡上組成域。域指向一個子網,域地址指向一個子網地址。子網中的所有節點有相同的域地址。不同的域間,地址不相同。

在CAN報文標識符的表現上,域地址代表標識符的前面若干連續位,而子網中的各個節點地址通過標識符的后續比特位體現。將域地址所占用的連續位均置為1,后續位置均置為0形成的地址稱作子網掩碼。子網中的所有節點有相同的子網掩碼。子網掩碼用于判斷一個子網所包含的全部節點地址的范圍。

圖1展示了一種4路子網的網絡結構。其中3個子網通過網關1連接,網關2連接第4個子網。子網結構中標注了所有節點和域的地址信息。將域地址所占用的連續位長度通過“/”放在節點地址或域地址后面,體現子網掩碼信息。

如表1所示的0x500/5子網表明:使用報文標識符前5個位表示域地址,子網掩碼為0x7C0。當前子網中有3個節點分別為0x51A/5、0x51B/5、0x51C/5。

表1 地址和掩碼

2 網關端口和路由

端口是網關對一個子網的物理連接。作為網關,至少要有2個端口。每一個端口分配一個節點地址和子網掩碼。端口分本地端口和路由端端口。

網關連接多個子網,從一個子網向另一個子網發送報文。路由方式可分一對一路由和廣播路由。當選擇廣播路由時,報文被復制發送至所有其他端口。

路由表用來決定一個報文是否需要路由。路由表產生和存儲在網關的存儲器中。網關基于路由表分析域地址、子網掩碼和路由端口號,進行路由操作。待路由的報文,可以指向另一個子網的控制單元,也可以指向網關端口。當指向另一個子網的控制單元時,網關將該報文發送至目標子網中。當指向網關端口時,不路由,而上傳至網關控制器應用層進行數據處理。

圖1的網絡結構中包括2個網關。網關1有3個端口,網關2有2個端口。對于網關1的端口3,滿足子網640/6和650/6的報文都需要路由,因此端口3子網的域地址和子網掩碼可以定義為640/5,見表2。

表2 端口3域地址選擇

將圖1各子網的域地址、子網掩碼和端口確認后,形成路由表,見表3。

表3 路由表

3 路由算法

網關收到發至不同子網端口的所有報文。如果目標地址是0x7FF,則報文被廣播路由。正常路由算法被跳過。在端口接收到報文后,路由算法見圖2。

1)將目標地址和本地端口的子網掩碼進行按位與操作形成結果1。

2)將結果1與本地域地址相比較。域地址可存儲在節點的存儲器中,也可通過節點地址和子網掩碼計算獲得。如果結果等于域地址,接收到的報文是端口子網內的本地報文,不路由,判斷結束。如果結果不等于域地址,進入下一步路由分析。

圖1 4路子網的網絡結構

圖2 路由算法

3)將目標地址和路由端端口的子網掩碼進行按位與操作形成結果2。

4)將結果2與路由端端口的域地址進行比較,如果相等,算法跳至第7步,否則算法至第5步。

5)如果存在其他可路由端口,算法進入下一步。否則不路由,判斷結束。

6)選擇下一個可路由端口,算法跳回第3步。

7)報文目標地址與網關當前路由端端口地址相比較。如果目標地址是 網關當前路由端端口的地址,算法至第9步。如果目標地址不是網關當前路由端端口的地址,算法至第8步。

8)從端口向子網發出報文。

9)指向網關的報文,網關在應用層進行處理。

4 實例

如0x51A節點發送出目標地址為0x642的報文。網關接收到報文后的處理步驟見下。

4.1 網關1

1)分析報文標識符0x642。

2)網關路由決策,見表4。640不等于500,0x642不屬于本地報文,需要路由。

表4 網關1路由決策

3)網關路由分析,見表5。640不等于600,0x642不路由至端口2,而路由至端口3。4)檢測報文是否發送到網關:0x642!=0x654。5)路由報文至端口3。

表5 網關1路由分析

4.2 網關2

1)分析報文標識符0x642。

2)網關路由決策,見表6。640不等于650,0x642不屬于本地報文,需要路由。

表6 網關2路由決策

3)網關路由分析,見表7。0x642路由至端口2。

表7 網關2路由分析

4)檢測報文是否被網關路由:0x642!=0x641。

5)路由報文至端口2。

5 結論

采用本文所述的路由設計方法,將網絡按照域定義,網關根據不同的標識符路由至不同的域。提高了網關的兼容性和自動適配性,有利于網關通用化的開發。

(編輯 楊 景)

Gateway Routing Design Based on CAN Domain

FANG Wei-jia,WEI Wei,ZUO Zheng

(Products Development Department,FAW Car Co.,Ltd.,Changchun 130012,China)

This article introduces a gateway routing design method based on CAN domain. Using this method,the gateway universality may be increased.

message identifier;domain;routing;subnet mask

U463.6

A

1003-8639(2017)10-0038-03

2017-03-01

方偉家(1985-),男,碩士,工程師,從事總線設計、診斷設計、網關開發等工作;衛威(1982-),男,碩士,工程師,從事總線設計、診斷設計、網關開發、項目管理等工作;左政(1985-),男,碩士,工程師,從事總線設計、診斷設計等工作。

猜你喜歡
子網網關報文
基于J1939 協議多包報文的時序研究及應用
以太網QoS技術研究及實踐
智能燃氣表物聯網運行體系網關技術研究
基于FPGA的工業TSN融合網關設計
大規模低軌衛星網絡移動性管理方案
一種主從冗余網關的故障模式分析與處理
淺析反駁類報文要點
計算機網絡課程中網絡測試命令的應用
子網劃分問題研究及應用
一種基于FPGA的網絡串口管理系統的設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合