專利名稱:基于can測控子系統(tǒng)可靠數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及測控技術(shù)領(lǐng)域,特指構(gòu)建在基于CAN和TCP/IP混合通信結(jié)構(gòu)之上,一種基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸方法。
背景技術(shù):
測控系統(tǒng)的發(fā)展趨勢是用企業(yè)局域網(wǎng)對測控子系統(tǒng)進行管理,通過網(wǎng)關(guān)連接到 Internet實現(xiàn)遠(yuǎn)程測控功能。測控子系統(tǒng)對抗干擾性能和實時通信性能要求較高,單次通信量較小,通信距離通常在IOkm以內(nèi)。如果測控子系統(tǒng)直接采用以太網(wǎng)組網(wǎng),測控終端的應(yīng)用層數(shù)據(jù)將不得不經(jīng)過TCP/IP協(xié)議棧的封裝,而測控終端對實時通信性能要求較高。以太網(wǎng)幀的最小長度為64字節(jié),除去以太網(wǎng)首部的18字節(jié)和TCP/IP首部的40字節(jié),可存放 6字節(jié)應(yīng)用層數(shù)據(jù)。以太網(wǎng)幀包含的控制信息太多,而測控終端單次通信量卻較小。控制器區(qū)域網(wǎng)(Control Area Network, CAN)被廣泛應(yīng)用在對抗干擾性能和實時通信性能要求較高,單次通信量較小,通信距離在3 5km以內(nèi)的一些場合,本發(fā)明的應(yīng)用領(lǐng)域是基于CAN與TCP/IP混合通信結(jié)構(gòu)的測控系統(tǒng),其測控子系統(tǒng)是基于CAN的。CAN廢除站地址編碼,數(shù)據(jù)鏈路層不使用任何關(guān)于系統(tǒng)配置的信息標(biāo)識發(fā)送節(jié)點和接收節(jié)點,由節(jié)點根據(jù)應(yīng)用層數(shù)據(jù)判斷是否接收這幀信息。因此,系統(tǒng)擴展時,不用對任何節(jié)點的軟件和硬件做修改,可以直接在CAN中增加節(jié)點,測控終端節(jié)點個數(shù)在理論上不受限制,組網(wǎng)靈活。由節(jié)點進行應(yīng)用層解碼判斷是否接收這幀信息,意味著CAN中任何節(jié)點都要接收并解碼這幀信息,勢必會造成應(yīng)用層廣播風(fēng)暴,增加其他非接收節(jié)點的CPU負(fù)荷;測控終端節(jié)點的數(shù)據(jù)傳輸是基于事件觸發(fā)機制的,在時間上是隨機的,這種不可預(yù)知的CPU負(fù)荷會造成其他非接收節(jié)點的實時性能急劇下降,整個測控子系統(tǒng)的實時性能隨之急劇下降。目前,大多數(shù)CAN控制器支持硬件過濾機制,設(shè)置測控終端應(yīng)用層地址,將其作為測控終端機號承載于CAN幀標(biāo)識符上,通過硬件過濾判斷是否接收這幀信息,在數(shù)據(jù)鏈路層實現(xiàn)點對點傳輸,不需要上傳到應(yīng)用層進行解碼,防止測控子系統(tǒng)實時性能急劇下降。CAN采用帶沖突避免的載波偵聽多址訪問(CSMA/CA)作為總線介質(zhì)訪問控制協(xié)議來解決信道沖突問題,總線空閑時(節(jié)點偵聽到總線上至少存在3個連續(xù)隱性位),所有與總線相連的節(jié)點都可以開始發(fā)送幀。兩個以上的節(jié)點同時開始發(fā)送幀時,對CAN標(biāo)識符進行逐位仲裁。仲裁獲勝(被判定為優(yōu)先級最高)的節(jié)點可繼續(xù)發(fā)送幀,仲裁失利的節(jié)點則立刻停止發(fā)送轉(zhuǎn)而進行接收。當(dāng)將測控終端機號承載于CAN幀標(biāo)識符上時,CAN幀標(biāo)識符并沒有反映出進行總線介質(zhì)訪問控制所需的優(yōu)先級信息,進行優(yōu)先級逐位仲裁的結(jié)果是不準(zhǔn)確的,反而會造成測控子系統(tǒng)實時性能急劇下降,因此,需要盡可能地避免沖突,減小優(yōu)先級逐位仲裁失利的可能性。CAN是短幀通信系統(tǒng),發(fā)送節(jié)點要將一條應(yīng)用層命令拆分成多個CAN幀進行傳輸, 接收節(jié)點要將接收到的多個CAN幀組合成一條意義明確的應(yīng)用層命令。分幀、組幀的速度CN 102164066 A
說明書
2/3頁 是制約測控子系統(tǒng)實時性能的關(guān)鍵因素。在基于CAN和TCP/IP混合通信結(jié)構(gòu)的測控系統(tǒng)中,需要通過網(wǎng)關(guān)連接到Internet 實現(xiàn)遠(yuǎn)程測控功能,Internet是一種分組交換網(wǎng)絡(luò),不可避免地存在錯包、丟包和過度時延等情況。除此之外,如果采用停等協(xié)議,將出現(xiàn)高層網(wǎng)絡(luò)協(xié)議限制底層網(wǎng)絡(luò)硬件所提供的功能,所以TCP/IP采用了流水線可靠數(shù)據(jù)傳輸協(xié)議。因此,需要實現(xiàn)測控終端與Internet遠(yuǎn)程控制端之間的對等可靠數(shù)據(jù)傳輸。
發(fā)明內(nèi)容
本發(fā)明的目的是在基于CAN和TCP/IP混合通信結(jié)構(gòu)的測控系統(tǒng)中,保證基于CAN 測控子系統(tǒng)獲得理想的實時性能和實現(xiàn)測控終端與Internet遠(yuǎn)程控制端之間的對等可靠數(shù)據(jù)傳輸。本發(fā)明的內(nèi)容是一種基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸方法,包括基于CAN測控子系統(tǒng)結(jié)構(gòu)化CAN幀標(biāo)識符1、基于CAN測控子系統(tǒng)沖突避免算法2和基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸算法3。本發(fā)明的技術(shù)方案是在基于CAN測控子系統(tǒng)結(jié)構(gòu)化CAN幀標(biāo)識符1基礎(chǔ)上,實施基于CAN測控子系統(tǒng)沖突避免算法2和基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸算法3。本發(fā)明的有益效果是保證基于CAN測控子系統(tǒng)獲得理想的實時性能和實現(xiàn)測控終端與Internet遠(yuǎn)程控制端之間的對等可靠數(shù)據(jù)傳輸。
圖1是基于CAN測控子系統(tǒng)可靠數(shù)據(jù)方法結(jié)構(gòu)示意圖;圖2是基于CAN測控子系統(tǒng)結(jié)構(gòu)化CAN幀標(biāo)識符示意圖;圖3是基于CAN測控終端發(fā)送緩存內(nèi)存空間示意圖;圖4是基于CAN測控終端接收緩存內(nèi)存空間示意圖;圖5是基于CAN測控終端發(fā)送窗口示意圖;圖6是基于CAN測控終端接收窗口示意圖。
具體實施例方式一種基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸方法結(jié)構(gòu)如圖1所示,包括基于CAN測控子系統(tǒng)結(jié)構(gòu)化CAN幀標(biāo)識符1、基于CAN測控子系統(tǒng)沖突避免算法2和基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸算法3?;贑AN測控子系統(tǒng)結(jié)構(gòu)化CAN幀標(biāo)識符如圖2所示,包括測控終端機號域4,通信控制域5,幀序號域6,第一幀信息域7。測控終端機號域4標(biāo)識CAN幀的接收節(jié)點,測控終端的CAN控制器通過硬件過濾判斷是否接收這幀信息,當(dāng)將測控終端機號域4承載于CAN幀標(biāo)識符上時,CAN幀標(biāo)識符并沒有反映出進行總線介質(zhì)訪問控制所需的優(yōu)先級信息,通過基于CAN測控子系統(tǒng)沖突避免算法2盡可能地避免沖突,減小優(yōu)先級逐位仲裁失利的可能性。假設(shè)測控終端節(jié)點有一個幀要發(fā)送,基于CAN測控子系統(tǒng)沖突避免算法2包括如下步驟一、如果初始時該節(jié)點偵聽到總線空閑,它將在一個被稱作離散幀間間隔
4(Distributed Inter-frame Space, DIFS)的短時間段后發(fā)送該幀。二、否則,該節(jié)點選取一個隨機回退計數(shù)值并在偵聽到總線空閑時遞減該值。當(dāng)偵聽到總線忙時,計數(shù)值保持不變。 三、當(dāng)計數(shù)值減為0時(只可能發(fā)生在該節(jié)點偵聽到總線空閑時),該節(jié)點發(fā)送整個CAN幀并等待確認(rèn)。四、如果收到確認(rèn),該節(jié)點知道CAN幀已被正確接收了。如果該節(jié)點要發(fā)生另一 CAN幀,它將從步驟二開始總線介質(zhì)訪問控制;如果沒有收到確認(rèn),該節(jié)點將重新進入步驟二的回退階段,并從一個更大的范圍內(nèi)選取隨機回退計數(shù)值。隨機回退計數(shù)值按照指數(shù)回退(exponential backoff)規(guī)則選取當(dāng)傳輸一個給定CAN幀時,在該幀的一行中連續(xù)經(jīng)歷了第η次發(fā)送后,隨機地從{0,1,2,…,2m_l}中選取一個值作為隨機回退計數(shù)值,這里m = min(n, 10)。為了表示CAN幀是屬于哪條命令的哪個幀,在CAN幀標(biāo)識符中設(shè)置幀序號域6和第一幀信息域7。為每一條應(yīng)用層命令分配一段連續(xù)的內(nèi)存空間作為發(fā)送緩存8和接收緩存9,當(dāng)發(fā)送時,直接將發(fā)送緩存8中的內(nèi)容從低地址起按8個字節(jié)為一段復(fù)制到各個CAN 幀的應(yīng)用層數(shù)據(jù)段10中;當(dāng)接收時,把CAN幀中的應(yīng)用層數(shù)據(jù)段10提取出來,根據(jù)幀序號域6指明的序號信息,將其復(fù)制到接收緩存9的指定地址處,由于接收緩存9中的內(nèi)容是按序復(fù)制的,因此,當(dāng)CAN幀接收完畢時,應(yīng)用層命令隨即組幀完畢?;贑AN測控子系統(tǒng)可靠數(shù)據(jù)傳輸算法3,設(shè)置窗口長度16 (N),發(fā)送節(jié)點包括如下操作步驟一、當(dāng)一條應(yīng)用層命令需要發(fā)送時,將其存放于相應(yīng)的發(fā)送緩存8中,直接將發(fā)送緩存8中的內(nèi)容從低地址起按8個字節(jié)為一段復(fù)制到各個CAN幀的應(yīng)用層數(shù)據(jù)段中 10,并緩存各個CAN幀。二、發(fā)送節(jié)點檢查下一個可用于發(fā)送的幀序號13(nextseqnUm),如果該幀序號在發(fā)送窗口 11內(nèi),則發(fā)送該CAN幀發(fā)送;否則繼續(xù)緩存該CAN幀。三、超時重傳,用定時器來防止CAN幀丟失,每個CAN幀都必須擁有獨立的邏輯定時器,使用單個硬件定時器模擬多個邏輯定時器。四、如果發(fā)送節(jié)點收到某個CAN幀的應(yīng)用層ACK,且該CAN幀的幀序號在發(fā)送窗口 11內(nèi),則將那個被確認(rèn)的CAN幀標(biāo)記為已接收。如果該CAN幀的幀序號等于發(fā)送窗口基序號12(send-base),則發(fā)送窗口基序號12向前移動到具有最小幀序號的未被確認(rèn)CAN幀處。返回步驟二直到所有的CAN幀都被發(fā)送并確認(rèn)。接收節(jié)點包括如下操作步驟一、幀序號在[rcv_base,rcv_base+N_l]內(nèi)的CAN 幀被正確接收。在此情況下,接收到的CAN幀位于接收窗口 14內(nèi),向發(fā)送節(jié)點返回應(yīng)用層 ACK ;如果該CAN幀是以前未接收到的CAN幀,則根據(jù)幀序號域指明的序號信息,將其復(fù)制到接收緩存9的指定地址處。如果該CAN幀的幀序號等于接收窗口基序號15(rCV_base),則接收窗口基序號15向前移動到具有最小幀序號的未被接收CAN幀處。二、幀序號在[rcv_ base-N,rcv_base-l]內(nèi)的CAN幀被正確接收。在此情況下,必須返回一個應(yīng)用層ACK,即使該CAN幀是接收節(jié)點已經(jīng)確認(rèn)過的CAN幀。三、其他情況,忽略該CAN幀。
權(quán)利要求
1.一種基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸方法,包括基于CAN測控子系統(tǒng)結(jié)構(gòu)化CAN 幀標(biāo)識符(1)、基于CAN測控子系統(tǒng)沖突避免算法(2)和基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸算法⑶。
2.根據(jù)權(quán)利要求1所述的一種基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸方法,其特征在于 所述的基于CAN測控子系統(tǒng)結(jié)構(gòu)化CAN幀標(biāo)識符(1)包括測控終端機號域G),通信控制域 (5),幀序號域(6),第一幀信息域(7)。
3.根據(jù)權(quán)利要求1所述的一種基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸方法,其特征在于 所述的基于CAN測控子系統(tǒng)沖突避免算法(2)包括如下步驟一、如果初始時該節(jié)點偵聽到總線空閑,它將在一個被稱作離散幀間間隔的短時間段后發(fā)送該幀。二、否則,該節(jié)點選取一個隨機回退計數(shù)值并在偵聽到總線空閑時遞減該值。當(dāng)偵聽到總線忙時,計數(shù)值保持不變。三、當(dāng)計數(shù)值減為0時(只可能發(fā)生在該節(jié)點偵聽到總線空閑時),該節(jié)點發(fā)送整個 CAN幀并等待確認(rèn)。四、如果收到確認(rèn),該節(jié)點知道CAN幀已被正確接收了。如果該節(jié)點要發(fā)生另一 CAN幀,它將從步驟二開始總線介質(zhì)訪問控制;如果沒有收到確認(rèn),該節(jié)點將重新進入步驟二的回退階段,并從一個更大的范圍內(nèi)選取隨機回退計數(shù)值。
4.根據(jù)權(quán)利要求1所述的一種基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸方法,其特征在于 所述的基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸算法(3),發(fā)送節(jié)點包括如下操作步驟一、當(dāng)一條應(yīng)用層命令需要發(fā)送時,將其存放于相應(yīng)的發(fā)送緩存(8)中,直接將發(fā)送緩存(8)中的內(nèi)容從低地址起按8個字節(jié)為一段復(fù)制到各個CAN幀的應(yīng)用層數(shù)據(jù)段中(10),并緩存各個 CAN幀。二、發(fā)送節(jié)點檢查下一個可用于發(fā)送的幀序號(13),如果該幀序號在發(fā)送窗口(11) 內(nèi),則發(fā)送該CAN幀發(fā)送;否則繼續(xù)緩存該CAN幀。三、超時重傳,用定時器來防止CAN幀丟失,每個CAN幀都必須擁有獨立的邏輯定時器,使用單個硬件定時器模擬多個邏輯定時器。 四、如果發(fā)送節(jié)點收到某個CAN幀的應(yīng)用層ACK,且該CAN幀的幀序號在發(fā)送窗口(11)內(nèi), 則將那個被確認(rèn)的CAN幀標(biāo)記為已接收。如果該CAN幀的幀序號等于發(fā)送窗口基序號(12), 則發(fā)送窗口基序號(1 向前移動到具有最小幀序號的未被確認(rèn)CAN幀處。返回步驟二直到所有的CAN幀都被發(fā)送并確認(rèn)。
5.根據(jù)權(quán)利要求1所述的一種基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸方法,其特征在于 所述的基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸算法(3),接收節(jié)點包括如下操作步驟一、幀序號在[rcv_base,rcv_base+N_l]內(nèi)的CAN幀被正確接收,rcv_base表示接收窗口基序號 (15),rcv_base表示窗口長度(16)。在此情況下,接收到的CAN幀位于接收窗口 (14)內(nèi), 向發(fā)送節(jié)點返回應(yīng)用層ACK ;如果該CAN幀是以前未接收到的CAN巾貞,則根據(jù)幀序號域指明的序號信息,將其復(fù)制到接收緩存(9)的指定地址處。如果該CAN幀的幀序號等于接收窗口基序號(15),則接收窗口基序號(15)向前移動到具有最小幀序號的未被接收CAN幀處。 二、幀序號在[rcv_base_N,rcv_base_l]內(nèi)的CAN幀被正確接收。在此情況下,必須返回一個應(yīng)用層ACK,即使該CAN幀是接收節(jié)點已經(jīng)確認(rèn)過的CAN幀。三、其他情況,忽略該CAN 幀。
全文摘要
本發(fā)明涉及測控技術(shù)領(lǐng)域,特指構(gòu)建在基于CAN和TCP/IP混合通信結(jié)構(gòu)之上,一種基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸方法,其包括基于CAN測控子系統(tǒng)結(jié)構(gòu)化CAN幀標(biāo)識符、CAN測控子系統(tǒng)沖突避免算法和基于CAN測控子系統(tǒng)可靠數(shù)據(jù)傳輸算法。在基于CAN和TCP/IP混合通信結(jié)構(gòu)的測控系統(tǒng)中,保證基于CAN測控子系統(tǒng)獲得理想的實時性能和實現(xiàn)測控終端與Internet遠(yuǎn)程控制端之間的對等可靠數(shù)據(jù)傳輸。
文檔編號H04L12/40GK102164066SQ20101011198
公開日2011年8月24日 申請日期2010年2月23日 優(yōu)先權(quán)日2010年2月23日
發(fā)明者周媛 申請人:周媛