新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Submerge Frame方法的CAN-以太網(wǎng)網(wǎng)關(guān)

基于Submerge Frame方法的CAN-以太網(wǎng)網(wǎng)關(guān)

——
作者:合肥工業(yè)大學(xué) 韓江洪 李陽銘 時間:2007-01-26 來源:《單片機與嵌入式系統(tǒng)應(yīng)用》 收藏


以太網(wǎng)憑借其成本低、開放性強以及具有廣泛的開發(fā)、應(yīng)用軟硬件支持等明顯優(yōu)勢,已經(jīng)成為目前應(yīng)用最為廣泛的局域網(wǎng)絡(luò)技術(shù)之一,而can總線也以星火燎原之勢成為應(yīng)用最普遍的現(xiàn)場總線之一[1]。由于can總線的傳輸速率受到傳輸距離的限制,在應(yīng)用中往往以can總線作為現(xiàn)場控制局部網(wǎng)絡(luò),連接現(xiàn)場監(jiān)控設(shè)備和高級智能設(shè)備,而將以太網(wǎng)作為企業(yè)信息傳輸主干網(wǎng),連接各個現(xiàn)場控制局部網(wǎng)絡(luò),傳統(tǒng)的can-以太網(wǎng)網(wǎng)關(guān)往往無法適應(yīng)較大規(guī)模和重網(wǎng)絡(luò)負荷環(huán)境,本文對在不改變操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議且不增加硬件成本的基礎(chǔ)上實現(xiàn)高效的can總線的以太網(wǎng)接入問題的研究具有一定參考價值。

本文引用地址:http://www.butianyuan.cn/article/21194.htm

1 嵌入式can-以太網(wǎng)網(wǎng)關(guān)

網(wǎng)關(guān)是一種網(wǎng)絡(luò)互聯(lián)設(shè)備,一般分為協(xié)議網(wǎng)關(guān),安全網(wǎng)關(guān)和應(yīng)用網(wǎng)關(guān),對于嵌入式can-以太網(wǎng)網(wǎng)關(guān),由于can總線連接的嵌入式節(jié)點和智能儀表等與pc機和服務(wù)器相比功能較弱,嵌入式節(jié)點不直接支持tcp/ic等網(wǎng)絡(luò)協(xié)議,而由網(wǎng)關(guān)進行網(wǎng)絡(luò)協(xié)議的轉(zhuǎn)換,所以嵌入式can-以太網(wǎng)網(wǎng)關(guān)主要作為協(xié)議網(wǎng)關(guān)。

1.1 嵌入式can-以太網(wǎng)網(wǎng)關(guān)性能要求

對can網(wǎng)關(guān)的具體性能要求是與應(yīng)用類型相關(guān)的,不同應(yīng)用的側(cè)重點及其指標也不一樣,一般來說,對can網(wǎng)關(guān)都有以下要求:

1)實時性。網(wǎng)關(guān)的響應(yīng)要快,不能影響系統(tǒng)的實時性。

2)可靠性。網(wǎng)關(guān)須具有高可靠性,能滿足工控系統(tǒng)要求,這包括兩方面內(nèi)容:一方面,網(wǎng)關(guān)要能夠穩(wěn)定運行;另一方面,在自身出現(xiàn)故障時不影響所在的網(wǎng)絡(luò)。

3)開放性。由于can協(xié)議本身并沒有對應(yīng)用層作出規(guī)定,在應(yīng)用中存在各種互不兼容的應(yīng)用層協(xié)議,因此網(wǎng)關(guān)需要解決用層協(xié)議的兼容性問題。

4)通用性。網(wǎng)關(guān)要能直接應(yīng)用于can總線的以太網(wǎng)接入,而無須進行復(fù)雜的二次開發(fā)。

5)高效性。網(wǎng)關(guān)要高效實現(xiàn)網(wǎng)絡(luò)的無縫互聯(lián),而不能構(gòu)成系統(tǒng)的瓶頸。

1.2 can-以太網(wǎng)網(wǎng)關(guān)結(jié)構(gòu)

以太網(wǎng)作為企業(yè)信息傳輸主干網(wǎng)接入internet,can總線作為現(xiàn)場控制網(wǎng)絡(luò)實現(xiàn)服務(wù)器與嵌入式控制器之間的信息傳輸,網(wǎng)關(guān)實現(xiàn)二者之間的無縫轉(zhuǎn)換,圖1為一種can-以太網(wǎng)網(wǎng)關(guān)的結(jié)構(gòu)框圖。

本方案以philips公司的基于arm7tdmi內(nèi)核的芯片lpc2294為cpu構(gòu)建網(wǎng)關(guān),lpc2249支持實時仿真和跟蹤,帶有256kb高速flash,采用lqfp144封裝,功耗極低,并帶有32位定時器,8路10位adc,pwm通道,9個外部中斷以及112個gpio口(不使用外部時);特別是它帶有4路獨立的can控制器,使得它非常適合于構(gòu)建can網(wǎng)關(guān),由于lpc2294支持內(nèi)部總線,因此cpu與以太網(wǎng)控制芯片rtl8019之間的硬件連接以及驅(qū)動程序的編寫都比較簡單,但相對于使用帶有內(nèi)置以太網(wǎng)控制器的arm芯片的網(wǎng)關(guān)方案,其抗干擾能力相對較弱,在硬件布線時須充分考慮抗電磁干擾問題。

2 以太網(wǎng)幀與can幀分析

在網(wǎng)關(guān)效率的研究中,對以太網(wǎng)和can總線,特別是對其幀結(jié)構(gòu)的深入理解是必需的。

2.1 以太網(wǎng)網(wǎng)絡(luò)

以太網(wǎng)是一個局部區(qū)域多計算機通信系統(tǒng),是符合ieee802.3、iso/iec8802-3或ieee802.12iso/iec8802-12標準的,采用沖突檢測的載波監(jiān)聽多點接入(csma/cd)機制的計算機局域網(wǎng)[2]。

以太網(wǎng)幀是以太網(wǎng)網(wǎng)絡(luò)通信信號的基本單元,是對其進行網(wǎng)絡(luò)性能分析的基礎(chǔ)。以太網(wǎng)發(fā)展時間較長,衍生出的相應(yīng)規(guī)范較多,如10mbps-10baset ethernet(802.3)、100mbps-fast ethernet(802.3u)、1000mbps-gigabit ethernet(802.3z))和10 gigabit ethernet(ieee 802.3ae)等,一般將以太網(wǎng)幀分為數(shù)據(jù)幀和管理幀。其中數(shù)據(jù)幀又分為以太網(wǎng)基本幀和vlan采用的擴展幀等。以太網(wǎng)基本幀和vlan采用的一種擴展幀結(jié)構(gòu)如圖2所示。

圖2中:

◇幀前導(dǎo)。0、1交錯的56位圖形。

◇幀起始符(sof)。占8位,表示一幀的開始。

◇目的地址與源地址。各占8字節(jié),表示目的和源的mac地址。

◇幀長度/幀類型(l/t)。2字節(jié),mac幀內(nèi)不包括任何填充的數(shù)據(jù)字段長度或類型。

◇數(shù)據(jù)。占用的字節(jié)數(shù)a由數(shù)據(jù)量決定,須滿足a≤1500字節(jié)。

◇填充。占用字節(jié)數(shù)b根據(jù)需要而定,須滿足a+b≥46字節(jié)。

◇幀校驗區(qū)(fcs)。占4字節(jié),用于幀的差錯校驗。

需要注意的是,對于基本幀,mac客戶數(shù)據(jù)區(qū)數(shù)據(jù)最低不能少于46節(jié),最高不能多于1500字節(jié),網(wǎng)絡(luò)mac幀的尺寸不能小于64字節(jié),最大不能超過1518字節(jié)。這里不包括幀前導(dǎo)和幀起始符兩個區(qū)域,共計18字節(jié)。

2.2 can總線

can是一種采用多主工作方式、非破壞仲裁技術(shù)和接收濾波工作方法的數(shù)據(jù)通信協(xié)議,按照iso有關(guān)標準,can的拓撲結(jié)構(gòu)為總線式,因此也稱為can總線[3]。

can協(xié)議中每幀的數(shù)據(jù)量都不超過8字節(jié),以短幀多發(fā)的方式實現(xiàn)數(shù)據(jù)的高實時性,糾錯能力非常強,傳輸數(shù)據(jù)的準確性高,真正的高速網(wǎng)絡(luò),傳輸速率可以達到1mbit/s。它的通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維[4]。

can2.0b中存在兩種不同的幀結(jié)構(gòu),其區(qū)別在于標識符場的長度。具有11位標識符場的稱為“標準幀”,具有29位標識符場的稱為“擴展幀”[5]。can2.0b協(xié)議規(guī)定的兩種幀結(jié)構(gòu)如圖3所示。

圖3中:

◇sof幀起始,由一個顯性位構(gòu)成,占1位寬度;

◇替代遠程請求srr(substitute remote request),占1位寬度;

◇遠程發(fā)送請求rtr(remote transmission request),占1位寬度;

◇ide(identifier extension),占1位寬度;

◇數(shù)據(jù)長度碼dlc,表示數(shù)據(jù)場的長度,占4位;

◇r1、r0為保留位,各占1位寬度;

◇幀結(jié)束,為7個隱性位。

從上述分析中可以看出,can協(xié)議為了提高實時性采用了短幀結(jié)構(gòu),而以太網(wǎng)幀相對要長得多,can協(xié)議采用載波偵聽多路存取/消息優(yōu)先仲裁(csma/amp)機制解決沖突,而以太網(wǎng)幀采用csma/cd機制,這兩點構(gòu)成了can與以太網(wǎng)之間的主要差異,也是傳統(tǒng)can-ethernet網(wǎng)關(guān)效率底下的主要原因。

3 submerge frame方法研究

3.1 submerge frame方法介紹

為了討論方便,我們稱為以太網(wǎng)發(fā)往can總線的數(shù)據(jù)幀為“下行的”,而can總線發(fā)往以太網(wǎng)的幀為“上行的”。

submerge frame方法是一種基于隧道技術(shù)的處理方法,它包括上行和下行兩部分,對于下行數(shù)據(jù),以太網(wǎng)中的服務(wù)器將即將傳輸?shù)腸an幀中的前k個作為傳輸?shù)臄?shù)據(jù)一起打包送入以太網(wǎng)中;嵌入式網(wǎng)關(guān)根據(jù)規(guī)定對以太網(wǎng)幀解包,將恢復(fù)的can幀按照優(yōu)先級依次傳輸。對于上行數(shù)據(jù),嵌入式網(wǎng)關(guān)將收到的幀按照優(yōu)先級排隊,然后將前k個can幀作為傳輸數(shù)據(jù)打包送入以太網(wǎng)中,基于submerge frame方法的以太網(wǎng)幀結(jié)構(gòu)圖4所示,其中1#-k#為k個完整的can幀。

submerge frame方法的實現(xiàn)過程很簡單,它基于優(yōu)先級對等待服務(wù)的需can幀進行排隊 ,當(dāng)可以使用媒體時,將隊列中的前k個幀合并作為上層數(shù)據(jù)打包送入以太網(wǎng)。從幀格式可以看出,將can幀打包以太網(wǎng)幀和can幀數(shù)據(jù)恢復(fù)都非常簡單。

submerge frame方法并不主動等待k個幀的到來,它總是盡可能地將can幀送出,以縮短信息傳輸延時。

3.2 submerge frame方法效率研究

submerge frame方法效率包括下行數(shù)據(jù)效率和上行數(shù)據(jù)效率兩部分。

下行數(shù)據(jù)效率的關(guān)鍵在于以太網(wǎng)的傳輸?shù)却龝r間長短,以太網(wǎng)采用1-堅持csma/cd動態(tài)信道分配方式。當(dāng)網(wǎng)絡(luò)上的任何一個節(jié)點需要傳遞數(shù)據(jù)時,它首先偵聽信道,看其他站點是否有數(shù)據(jù)傳送,如果信道忙,則它就繼續(xù)等待,直到信道空閑再進行發(fā)送嘗試,為了方便計算,可以假設(shè)在穩(wěn)定的重負載情況下每幀數(shù)據(jù)平均發(fā)送時間為p,則信道效率η滿足[6]:

式中,:2τ為每個競爭時槽的時間長度;a為在某個時間槽內(nèi)一個工作站獲得傳輸媒體的概率。

設(shè)以太網(wǎng)各節(jié)點發(fā)送數(shù)據(jù)幀的平均幀長為f,網(wǎng)絡(luò)帶寬為b,則上式可以變?yōu)椋?/p>

從式(2)中可以看出,信道效率η由決定,在具體應(yīng)用環(huán)境中以太網(wǎng)中工作站的數(shù)目一般是固定的,因此,τ、a、b都是定值。此時,網(wǎng)絡(luò)的效率幀長f決定,f越大,局域網(wǎng)的效率越高。

從上述分析中已經(jīng)得知,can的幀長為:60-124位(擴展幀),40-104位(標準幀)。若簡單采用隧道技術(shù),需將其補足46位,在最差情況下,有信息只占信息總量的10%;即使在最好情況下,有效信息也只占信息總量的33.6%,而此時,由于幀長f=64字節(jié),η僅為幀長1518字節(jié)時的,可得,在一個有20個節(jié)點的100m赫茲交換以太網(wǎng)中,з約為50%。

在實際應(yīng)用中,由于網(wǎng)絡(luò)負載隨具體情況變化較大,實際應(yīng)用中submerge frame方法處理下行數(shù)據(jù)的效率也隨之變化??傮w來說,網(wǎng)絡(luò)負載越重,傳輸?shù)却龝r間就越長,submerge frame方法的效率也就越高。

上行數(shù)據(jù)的討論集中在網(wǎng)關(guān)對接收到的can幀的處理上,設(shè)can總線上由7個發(fā)送節(jié)點,不妨設(shè)這些節(jié)點所發(fā)送的信息幀的標識符為1,…,n。其中:1#節(jié)點所發(fā)送的信息幀具有最小標識符,從而具有最高優(yōu)先級,n#節(jié)點具有最低優(yōu)先級。由于can到主發(fā)送機制,所以i節(jié)點發(fā)送信息幀是參數(shù)為λi的poisson過程[7]。就網(wǎng)關(guān)內(nèi)部而言,排隊過程是非搶占的。若一次對k個幀進行打包,整個傳輸過程就形成了一個具有n個優(yōu)先級的m/g/k隊列。

這樣,信息幀i的排隊時間分為4部分:1)先于i到達且優(yōu)先級高于i的、還未獲得服務(wù)的信息幀的服務(wù)時間;2)后于i到達、優(yōu)先級高于i的信息幀的服務(wù)時間;3)正在接受服務(wù)的信息幀的剩余傳送時間;4)以太網(wǎng)阻塞延時。這樣,即可得到信息幀i的平均等待時間:

式中:λi為信息幀i的到達率,i=1,…,n;μi為信息幀i的服務(wù)率,i=1,…,n;ρi為信息幀i的使用率,ρi=(i=1,…,n)即服務(wù)強度;wi為信息幀i的等待時間,i=1,…,n;xi為在總線上的傳送信息幀i的時間,即占用服務(wù)臺的時間。

采用常規(guī)can時的最大排隊時間可由非搶占式任務(wù)的調(diào)度理論獲得,這里不再贅述。

從式(3)中可以看出submerge frame方法在處理上行數(shù)據(jù)時可以明顯提高傳輸效率;

◇整個系統(tǒng)的平均服務(wù)時間由;

◇服務(wù)強度變?yōu)樵瓉淼?/k,系統(tǒng)穩(wěn)定的概率更高;

◇縮短了后續(xù)幀的等待時間、以太網(wǎng)的阻塞時間以及高優(yōu)先級can幀的傳輸延時。

3.3 submerge frame 方法中的關(guān)鍵問題

submerge frame方法實現(xiàn)簡單,其效率在于隊列k的選擇,對于下行數(shù)據(jù),k值可以相對固定。下行數(shù)據(jù)一般由服務(wù)器根據(jù)控制條件發(fā)出,因為可以對發(fā)出的can幀的數(shù)目和目的網(wǎng)絡(luò)進行充分優(yōu)化,k值就可以通過對應(yīng)用的分析得出,對于上行數(shù)據(jù),k值的大小與can網(wǎng)絡(luò)節(jié)點數(shù)量,以太網(wǎng)網(wǎng)絡(luò)規(guī)模、負載以及控制域的條件密切相關(guān),也就是說,can總線網(wǎng)絡(luò)規(guī)模越大,以太網(wǎng)負載越重,控制域上報信息和突發(fā)事件頻度越高,k值也就越大,一般而言,以太網(wǎng)網(wǎng)絡(luò)實際可用帶寬要比can帶寬大,所以在輕載情況下k值一般不會太大,當(dāng)發(fā)生網(wǎng)絡(luò)阻塞時,k值會急劇上升,在一定規(guī)模的網(wǎng)絡(luò)中,k值可以得出一個統(tǒng)計學(xué)量,在此不做討論。

由于submerge frame 方法中k值和服務(wù)等待時間緊密相連,這就形成了網(wǎng)絡(luò)效率和服務(wù)時間之間的矛盾。k值越大,網(wǎng)絡(luò)效率提高就越多,但也就意味著服務(wù)等待時間越長,實時性相對較差,k值越小,服務(wù)時間越短,同時伴隨著網(wǎng)絡(luò)效率的下降,在極限情況下就退化成了m/g/1隊列,submerge frame方法的效率降至最低。

4 結(jié)論

submerge frame方法是一種被動的狀態(tài),即在網(wǎng)絡(luò)服務(wù)時間長時將等待服務(wù)隊列中的前k個幀合并,使平均服務(wù)時間從,從而提高了服務(wù)強度,增強了系統(tǒng)穩(wěn)定性,由于網(wǎng)絡(luò)實時性更為重要,submerge frame方法并不主動等待若干個幀的到來。在實際應(yīng)用中,網(wǎng)絡(luò)周期流量構(gòu)成網(wǎng)絡(luò)負載的主要部分之一,而這種周期流量的周期往往是可以控制的?;趕ubmerge frame方法的can-以太網(wǎng)網(wǎng)關(guān)已經(jīng)在安徽省“十五”二期科技攻關(guān)項目——井下安全生產(chǎn)數(shù)字化平臺中得到應(yīng)用。在應(yīng)用中通過對周期流量產(chǎn)生時間的充分優(yōu)化,網(wǎng)關(guān)在重網(wǎng)絡(luò)負載環(huán)境中運行穩(wěn)定,安全達到了預(yù)期目標。



關(guān)鍵詞: 存儲器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉