基于Submerge Frame方法的CAN-以太網網關
以太網憑借其成本低、開放性強以及具有廣泛的開發、應用軟硬件支持等明顯優勢,已經成為目前應用最為廣泛的局域網絡技術之一,而can總線也以星火燎原之勢成為應用最普遍的現場總線之一[1]。由于can總線的傳輸速率受到傳輸距離的限制,在應用中往往以can總線作為現場控制局部網絡,連接現場監控設備和高級智能設備,而將以太網作為企業信息傳輸主干網,連接各個現場控制局部網絡,傳統的can-以太網網關往往無法適應較大規模和重網絡負荷環境,本文對在不改變操作系統、網絡協議且不增加硬件成本的基礎上實現高效的can總線的以太網接入問題的研究具有一定參考價值。
1 嵌入式can-以太網網關
網關是一種網絡互聯設備,一般分為協議網關,安全網關和應用網關,對于嵌入式can-以太網網關,由于can總線連接的嵌入式節點和智能儀表等與pc機和服務器相比功能較弱,嵌入式節點不直接支持tcp/ic等網絡協議,而由網關進行網絡協議的轉換,所以嵌入式can-以太網網關主要作為協議網關。
1.1 嵌入式can-以太網網關性能要求
對can網關的具體性能要求是與應用類型相關的,不同應用的側重點及其指標也不一樣,一般來說,對can網關都有以下要求:
1)實時性。網關的響應要快,不能影響系統的實時性。
2)可靠性。網關須具有高可靠性,能滿足工控系統要求,這包括兩方面內容:一方面,網關要能夠穩定運行;另一方面,在自身出現故障時不影響所在的網絡。
3)開放性。由于can協議本身并沒有對應用層作出規定,在應用中存在各種互不兼容的應用層協議,因此網關需要解決用層協議的兼容性問題。
4)通用性。網關要能直接應用于can總線的以太網接入,而無須進行復雜的二次開發。
5)高效性。網關要高效實現網絡的無縫互聯,而不能構成系統的瓶頸。
1.2 can-以太網網關結構
以太網作為企業信息傳輸主干網接入internet,can總線作為現場控制網絡實現服務器與嵌入式控制器之間的信息傳輸,網關實現二者之間的無縫轉換,圖1為一種can-以太網網關的結構框圖。

本方案以philips公司的基于arm7tdmi內核的芯片lpc2294為cpu構建網關,lpc2249支持實時仿真和跟蹤,帶有256kb高速flash存儲器,采用lqfp144封裝,功耗極低,并帶有32位定時器,8路10位adc,pwm通道,9個外部中斷以及112個gpio口(不使用外部存儲器時);特別是它帶有4路獨立的can控制器,使得它非常適合于構建can網關,由于lpc2294支持內部總線,因此cpu與以太網控制芯片rtl8019之間的硬件連接以及驅動程序的編寫都比較簡單,但相對于使用帶有內置以太網控制器的arm芯片的網關方案,其抗干擾能力相對較弱,在硬件布線時須充分考慮抗電磁干擾問題。
2 以太網幀與can幀分析
在網關效率的研究中,對以太網和can總線,特別是對其幀結構的深入理解是必需的。
2.1 以太網網絡
以太網是一個局部區域多計算機通信系統,是符合ieee802.3、iso/iec8802-3或ieee802.12iso/iec8802-12標準的,采用沖突檢測的載波監聽多點接入(csma/cd)機制的計算機局域網[2]。
以太網幀是以太網網絡通信信號的基本單元,是對其進行網絡性能分析的基礎。以太網發展時間較長,衍生出的相應規范較多,如10mbps-10baset ethernet(802.3)、100mbps-fast ethernet(802.3u)、1000mbps-gigabit ethernet(802.3z))和10 gigabit ethernet(ieee 802.3ae)等,一般將以太網幀分為數據幀和管理幀。其中數據幀又分為以太網基本幀和vlan采用的擴展幀等。以太網基本幀和vlan采用的一種擴展幀結構如圖2所示。

圖2中:
◇幀前導。0、1交錯的56位圖形。
◇幀起始符(sof)。占8位,表示一幀的開始。
◇目的地址與源地址。各占8字節,表示目的和源的mac地址。
◇幀長度/幀類型(l/t)。2字節,mac幀內不包括任何填充的數據字段長度或類型。
◇數據。占用的字節數a由數據量決定,須滿足a≤1500字節。
◇填充。占用字節數b根據需要而定,須滿足a+b≥46字節。
◇幀校驗區(fcs)。占4字節,用于幀的差錯校驗。
需要注意的是,對于基本幀,mac客戶數據區數據最低不能少于46節,最高不能多于1500字節,網絡mac幀的尺寸不能小于64字節,最大不能超過1518字節。這里不包括幀前導和幀起始符兩個區域,共計18字節。
2.2 can總線
can是一種采用多主工作方式、非破壞仲裁技術和接收濾波工作方法的數據通信協議,按照iso有關標準,can的拓撲結構為總線式,因此也稱為can總線[3]。
can協議中每幀的數據量都不超過8字節,以短幀多發的方式實現數據的高實時性,糾錯能力非常強,傳輸數據的準確性高,真正的高速網絡,傳輸速率可以達到1mbit/s。它的通信介質可以是雙絞線、同軸電纜或光導纖維[4]。
can2.0b中存在兩種不同的幀結構,其區別在于標識符場的長度。具有11位標識符場的稱為“標準幀”,具有29位標識符場的稱為“擴展幀”[5]。can2.0b協議規定的兩種幀結構如圖3所示。

圖3中:
◇sof幀起始,由一個顯性位構成,占1位寬度;
◇替代遠程請求srr(substitute remote request),占1位寬度;
◇遠程發送請求rtr(remote transmission request),占1位寬度;
◇ide(identifier extension),占1位寬度;
◇數據長度碼dlc,表示數據場的長度,占4位;
◇r1、r0為保留位,各占1位寬度;
◇幀結束,為7個隱性位。
從上述分析中可以看出,can協議為了提高實時性采用了短幀結構,而以太網幀相對要長得多,can協議采用載波偵聽多路存取/消息優先仲裁(csma/amp)機制解決沖突,而以太網幀采用csma/cd機制,這兩點構成了can與以太網之間的主要差異,也是傳統can-ethernet網關效率底下的主要原因。
3 submerge frame方法研究
3.1 submerge frame方法介紹
為了討論方便,我們稱為以太網發往can總線的數據幀為“下行的”,而can總線發往以太網的幀為“上行的”。
submerge frame方法是一種基于隧道技術的處理方法,它包括上行和下行兩部分,對于下行數據,以太網中的服務器將即將傳輸的can幀中的前k個作為傳輸的數據一起打包送入以太網中;嵌入式網關根據規定對以太網幀解包,將恢復的can幀按照優先級依次傳輸。對于上行數據,嵌入式網關將收到的幀按照優先級排隊,然后將前k個can幀作為傳輸數據打包送入以太網中,基于submerge frame方法的以太網幀結構圖4所示,其中1#-k#為k個完整的can幀。

submerge frame方法的實現過程很簡單,它基于優先級對等待服務的需can幀進行排隊 ,當可以使用媒體時,將隊列中的前k個幀合并作為上層數據打包送入以太網。從幀格式可以看出,將can幀打包以太網幀和can幀數據恢復都非常簡單。
submerge frame方法并不主動等待k個幀的到來,它總是盡可能地將can幀送出,以縮短信息傳輸延時。
3.2 submerge frame方法效率研究
submerge frame方法效率包括下行數據效率和上行數據效率兩部分。
下行數據效率的關鍵在于以太網的傳輸等待時間長短,以太網采用1-堅持csma/cd動態信道分配方式。當網絡上的任何一個節點需要傳遞數據時,它首先偵聽信道,看其他站點是否有數據傳送,如果信道忙,則它就繼續等待,直到信道空閑再進行發送嘗試,為了方便計算,可以假設在穩定的重負載情況下每幀數據平均發送時間為p,則信道效率η滿足[6]:

式中,:2τ為每個競爭時槽的時間長度;a為在某個時間槽內一個工作站獲得傳輸媒體的概率。
設以太網各節點發送數據幀的平均幀長為f,網絡帶寬為b,則上式可以變為:

從式(2)中可以看出,信道效率η由決定,在具體應用環境中以太網中工作站的數目一般是固定的,因此,τ、a、b都是定值。此時,網絡的效率幀長f決定,f越大,局域網的效率越高。
從上述分析中已經得知,can的幀長為:60-124位(擴展幀),40-104位(標準幀)。若簡單采用隧道技術,需將其補足46位,在最差情況下,有信息只占信息總量的10%;即使在最好情況下,有效信息也只占信息總量的33.6%,而此時,由于幀長f=64字節,η僅為幀長1518字節時的,可得,在一個有20個節點的100m赫茲交換以太網中,з約為50%。
在實際應用中,由于網絡負載隨具體情況變化較大,實際應用中submerge frame方法處理下行數據的效率也隨之變化。總體來說,網絡負載越重,傳輸等待時間就越長,submerge frame方法的效率也就越高。
上行數據的討論集中在網關對接收到的can幀的處理上,設can總線上由7個發送節點,不妨設這些節點所發送的信息幀的標識符為1,…,n。其中:1#節點所發送的信息幀具有最小標識符,從而具有最高優先級,n#節點具有最低優先級。由于can到主發送機制,所以i節點發送信息幀是參數為λi的poisson過程[7]。就網關內部而言,排隊過程是非搶占的。若一次對k個幀進行打包,整個傳輸過程就形成了一個具有n個優先級的m/g/k隊列。
這樣,信息幀i的排隊時間分為4部分:1)先于i到達且優先級高于i的、還未獲得服務的信息幀的服務時間;2)后于i到達、優先級高于i的信息幀的服務時間;3)正在接受服務的信息幀的剩余傳送時間;4)以太網阻塞延時。這樣,即可得到信息幀i的平均等待時間:

式中:λi為信息幀i的到達率,i=1,…,n;μi為信息幀i的服務率,i=1,…,n;ρi為信息幀i的使用率,ρi=(i=1,…,n)即服務強度;wi為信息幀i的等待時間,i=1,…,n;xi為在總線上的傳送信息幀i的時間,即占用服務臺的時間。
采用常規can時的最大排隊時間可由非搶占式任務的調度理論獲得,這里不再贅述。
從式(3)中可以看出submerge frame方法在處理上行數據時可以明顯提高傳輸效率;
◇整個系統的平均服務時間由;
◇服務強度變為原來的1/k,系統穩定的概率更高;
◇縮短了后續幀的等待時間、以太網的阻塞時間以及高優先級can幀的傳輸延時。
3.3 submerge frame 方法中的關鍵問題
submerge frame方法實現簡單,其效率在于隊列k的選擇,對于下行數據,k值可以相對固定。下行數據一般由服務器根據控制條件發出,因為可以對發出的can幀的數目和目的網絡進行充分優化,k值就可以通過對應用的分析得出,對于上行數據,k值的大小與can網絡節點數量,以太網網絡規模、負載以及控制域的條件密切相關,也就是說,can總線網絡規模越大,以太網負載越重,控制域上報信息和突發事件頻度越高,k值也就越大,一般而言,以太網網絡實際可用帶寬要比can帶寬大,所以在輕載情況下k值一般不會太大,當發生網絡阻塞時,k值會急劇上升,在一定規模的網絡中,k值可以得出一個統計學量,在此不做討論。
由于submerge frame 方法中k值和服務等待時間緊密相連,這就形成了網絡效率和服務時間之間的矛盾。k值越大,網絡效率提高就越多,但也就意味著服務等待時間越長,實時性相對較差,k值越小,服務時間越短,同時伴隨著網絡效率的下降,在極限情況下就退化成了m/g/1隊列,submerge frame方法的效率降至最低。
4 結論
submerge frame方法是一種被動的狀態,即在網絡服務時間長時將等待服務隊列中的前k個幀合并,使平均服務時間從,從而提高了服務強度,增強了系統穩定性,由于網絡實時性更為重要,submerge
frame方法并不主動等待若干個幀的到來。在實際應用中,網絡周期流量構成網絡負載的主要部分之一,而這種周期流量的周期往往是可以控制的。基于submerge
frame方法的can-以太網網關已經在安徽省“十五”二期科技攻關項目——井下安全生產數字化平臺中得到應用。在應用中通過對周期流量產生時間的充分優化,網關在重網絡負載環境中運行穩定,安全達到了預期目標。
評論