本發(fā)明屬于時間觸發(fā)通信領(lǐng)域,具體涉及一種時間觸發(fā)以太網(wǎng)交換控制器及其控制方法。
背景技術(shù):
目前使用的以太網(wǎng)交換控制器,適應(yīng)通用以太網(wǎng)標準,采用事件觸發(fā)方式,不能保證數(shù)據(jù)的絕對可靠傳輸,容易出現(xiàn)網(wǎng)絡(luò)擁塞,造成數(shù)據(jù)幀丟失或者網(wǎng)絡(luò)延遲大于預(yù)期范圍。
時間觸發(fā)交換控制器采用時間觸發(fā)方式,保證網(wǎng)絡(luò)各節(jié)點的時間同步,在此基礎(chǔ)上通過合理規(guī)劃網(wǎng)絡(luò)帶寬,能夠保證數(shù)據(jù)傳輸?shù)目煽啃耘c實時性。
在已經(jīng)公開的相關(guān)專利成果中:時間觸發(fā)網(wǎng)絡(luò)中的集群耦合器(中國專利cn101512987a)從理論上介紹了一種不同集群之間進行通信的方法;網(wǎng)絡(luò)和時間觸發(fā)網(wǎng)絡(luò)中集群時鐘同步的方法(中國專利cn101512944a)提出了一種基于時隙的時間觸發(fā)協(xié)議工作網(wǎng)絡(luò);一種基于時間觸發(fā)以太網(wǎng)的數(shù)據(jù)傳輸方法及節(jié)點設(shè)備(中國專利cn103001722a)提出了一種基于時間觸發(fā)網(wǎng)絡(luò)的數(shù)據(jù)傳輸方法。目前關(guān)于時間觸發(fā)以太網(wǎng)交換控制器尚無相關(guān)的技術(shù)記載,而通用以太網(wǎng)通信和交換方式不能滿足對高可靠性、高確定性、高實時性的要求。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于針對上述現(xiàn)有技術(shù)中的問題,提供一種時間觸發(fā)以太網(wǎng)交換控制器及其控制方法,支持亞微秒級時鐘同步,通過虛擬鏈路和時槽劃分相結(jié)合,采用多優(yōu)先級調(diào)度和時槽鎖定技術(shù),保證時間觸發(fā)幀的優(yōu)先傳輸,同時支持故障隔離和恢復(fù),避免網(wǎng)絡(luò)擁塞。
為了實現(xiàn)上述目的,本發(fā)明時間觸發(fā)以太網(wǎng)交換控制器采用的技術(shù)方案為:
包括用于實現(xiàn)外部總線與片內(nèi)總線數(shù)據(jù)交換的總線接口模塊、用于進行數(shù)據(jù)調(diào)試的端口鏡像模塊、用于對所接收數(shù)據(jù)幀進行關(guān)鍵數(shù)據(jù)解析的交換端口模塊、用于還原同步數(shù)據(jù)幀時鐘固化點的時鐘固化模塊;還包括tt幀傳輸時刻計算模塊、tt交換控制模塊、be交換控制模塊以及與時鐘固化模塊相連的時鐘同步模塊;所述的總線接口模塊雙向連接端口鏡像模塊、交換端口模塊和時鐘同步模塊;交換端口模塊分別與端口鏡像模塊、tt幀傳輸時刻計算模塊、tt交換控制模塊以及be交換控制模塊進行雙向連接;時鐘固化模塊單向接收交換端口模塊的輸出信號,tt幀傳輸時刻計算模塊單向接收總線接口模塊的請求信號;所述的交換端口模塊由多個交換子端口模塊組成,be交換控制模塊包括交換仲裁和存儲控制兩部分。
交換端口模塊由12個交換子端口模塊組成,每個交換子端口均包括用于從網(wǎng)絡(luò)上接收數(shù)據(jù)或者向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的mac控制模塊,mac控制模塊雙向連接過濾模塊、流量管理模塊以及發(fā)送仲裁模塊;過濾模塊與流量管理模塊分別雙向連接轉(zhuǎn)發(fā)配置表模塊,過濾模塊收到的數(shù)據(jù)與轉(zhuǎn)發(fā)配置表模塊進行比較,發(fā)送仲裁模塊分別雙向連接pcf發(fā)送緩存模塊、be發(fā)送緩存模塊以及tt發(fā)送緩存模塊。
本發(fā)明時間觸發(fā)以太網(wǎng)交換控制器的控制方法,包括步驟:
總線接口模塊進行外部總線與控制器內(nèi)部模塊的數(shù)據(jù)交互;
交換端口模塊對端口接收到的數(shù)據(jù)幀進行關(guān)鍵數(shù)據(jù)解析,交換端口根據(jù)幀類型和虛擬鏈路號從轉(zhuǎn)發(fā)配置表查找對應(yīng)的配置信息,對當前數(shù)據(jù)幀進行過濾和流量管理,并為其他模塊提供控制信息;pcf發(fā)送緩存模塊、be發(fā)送緩存模塊及tt發(fā)送緩存模塊的數(shù)據(jù)幀發(fā)送請求通過發(fā)送仲裁模塊進行優(yōu)先級仲裁,獲得仲裁的發(fā)送緩存占據(jù)總線來發(fā)送數(shù)據(jù);
時鐘同步模塊收集時鐘固化模塊計算出的時鐘固化點,通過時鐘壓縮函數(shù)計算網(wǎng)絡(luò)的相對平均時刻,根據(jù)相對平均時刻與交換控制器本地時鐘的差異,修正交換控制器本地時鐘,并廣播含有時鐘信息的pcf幀,用于網(wǎng)絡(luò)終端設(shè)備的時鐘同步,對網(wǎng)絡(luò)進行實時同步檢測,完成同步故障的隔離與恢復(fù);在網(wǎng)絡(luò)處于時鐘同步狀態(tài)時,tt交換控制模塊響應(yīng)各端口tt幀的交換請求,判斷目標端口的tt緩存狀態(tài),給出應(yīng)答;be交換控制模塊的交換仲裁部分根據(jù)各端口的交換請求和預(yù)設(shè)的優(yōu)先級,給出應(yīng)答,將端口數(shù)據(jù)發(fā)送到輸出端口隊列,同時對各輸出隊列的輸出請求給出應(yīng)答,將數(shù)據(jù)從輸出端口隊列發(fā)送到交換端口模塊;當交換端口收到合法的tt幀時,向tt幀傳輸時刻計算模塊發(fā)出查詢請求,獲得該tt幀的接收窗口,若接收窗口有效,表示該tt幀到達交換機時刻合法,進行交換,當交換端口模塊收到tt交換控制模塊發(fā)送的數(shù)據(jù)幀時,解析出該數(shù)據(jù)幀的虛擬鏈路號,向tt幀傳輸時刻計算模塊發(fā)出查詢申請,獲得該tt幀的發(fā)送申請時刻和實際發(fā)送時刻點;
對各交換子端口模塊的故障進行錯誤計數(shù),若某交換子端口模塊的錯誤計數(shù)大于預(yù)設(shè)值,則將該交換子端口模塊屏蔽,再重新啟動,避免網(wǎng)絡(luò)擁塞。
當pcf發(fā)送緩存模塊、be發(fā)送緩存模塊及tt發(fā)送緩存模塊的數(shù)據(jù)幀發(fā)送請求進行優(yōu)先級仲裁時,pcf幀和be幀發(fā)送緩存數(shù)據(jù)有效,向發(fā)送仲裁模塊提交相應(yīng)的發(fā)送請求,tt幀發(fā)送緩存存放一幀數(shù)據(jù),首先解析出tt幀虛擬鏈路號,向tt幀傳輸時刻計算模塊發(fā)出查詢請求,得到tt幀發(fā)送申請時刻和實際發(fā)送時刻點,當tt幀發(fā)送申請時刻有效,提交tt發(fā)送請求,tt幀發(fā)送請求得到應(yīng)答后,鎖定當前時槽,等待實際發(fā)送時刻點到達后,將tt幀發(fā)送出去。tt幀發(fā)送申請時刻比實際發(fā)送時刻點提前一個最大幀長時間,保證tt幀發(fā)送申請時刻到達時,發(fā)送鏈路空閑。
所述tt交換控制模塊響應(yīng)各端口tt幀的交換請求時,若等待目標端口的tt緩存狀態(tài)為空,進行數(shù)據(jù)轉(zhuǎn)存,若等待時間超出設(shè)定最大值,則對當前數(shù)據(jù)進行棄幀處理。
所述的時鐘同步模塊采用三級流水方式實現(xiàn)時鐘壓縮函數(shù)。
所述的總線接口模塊提供wishbone總線接口,通過wishbone總線接口進行外部總線與控制器內(nèi)部模塊的數(shù)據(jù)交互。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:通過交換端口模塊對數(shù)據(jù)進行合法性判斷和流量管理,保證數(shù)據(jù)的可靠傳輸。tt幀傳輸時刻計算模塊完成tt幀傳輸時刻的硬件實時計算,簡化了數(shù)據(jù)傳輸時刻配置。通過虛擬鏈路與時槽劃分相結(jié)合的方案,采用多優(yōu)先級調(diào)度和時槽鎖定技術(shù),保證tt幀的優(yōu)先實時交換。時鐘同步模塊通過流水方式實現(xiàn)時間壓縮處理,提高了時鐘壓縮效率,并且支持故障隔離和恢復(fù),包括“同步檢測-同步故障-重啟同步-恢復(fù)同步”,以及故障端口關(guān)閉與自恢復(fù)。本發(fā)明兼容標準以太網(wǎng)數(shù)據(jù)幀交換,支持普通以太網(wǎng)設(shè)備無縫接入,時鐘同步能夠達到亞微秒級,保證時間觸發(fā)幀的優(yōu)先傳輸,具有時鐘同步的故障檢測、恢復(fù)以及交換端口的故障隔離、恢復(fù)功能,延遲低,確定性好。
附圖說明
圖1本發(fā)明交換控制器的結(jié)構(gòu)框圖;
圖2本發(fā)明交換子端口模塊的結(jié)構(gòu)框圖;
附圖中:1-總線接口模塊;2-交換端口模塊;3-時鐘固化模塊;4-時鐘同步模塊;5-tt幀傳輸時刻計算模塊;6-tt交換控制模塊;7-be交換控制模塊;8-端口鏡像模塊;9-mac控制模塊;10-轉(zhuǎn)發(fā)配置表模塊;11-過濾模塊;12-流量管理模塊;13-pcf發(fā)送緩存模塊;14-be發(fā)送緩存模塊;15-tt發(fā)送緩存模塊;16-發(fā)送仲裁模塊。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步的詳細說明。
參見圖1,本發(fā)明以太網(wǎng)交換控制器的總線接口模塊1實現(xiàn)了外部總線與片內(nèi)總線的數(shù)據(jù)交換,外部總線通過總線接口模塊1可以訪問交換端口模塊2、時鐘同步模塊4、tt幀傳輸時刻計算模塊5、端口鏡像模塊8、轉(zhuǎn)發(fā)配置表模塊10。交換端口模塊2是數(shù)據(jù)處理的核心模塊,由12個交換子端口模塊組成,每個交換子端口模塊的結(jié)構(gòu)如圖2所示。
本發(fā)明控制器主要包括八個模塊:總線接口模塊1,交換端口模塊2,tt交換控制模6塊、be交換控制模塊7、時鐘固化模塊3、時鐘同步模塊4、tt幀傳輸時刻計算模塊5、端口鏡像模塊8。be為普通以太網(wǎng)幀,tt為時間觸發(fā)以太網(wǎng)幀。
總線接口模塊1提供wishbone總線接口。wishbone總線接口主要用于外部總線與片內(nèi)總線的數(shù)據(jù)交換,實現(xiàn)控制器內(nèi)部寄存器讀寫訪問、轉(zhuǎn)發(fā)配置表讀寫訪問等。
交換端口模塊2首先對端口接收到的數(shù)據(jù)幀進行關(guān)鍵數(shù)據(jù)解析,包括幀類型和虛擬鏈路號等。交換控制器支持三種幀類型,分別是pcf(同步)幀、tt幀、be幀。交換端口根據(jù)幀類型和虛擬鏈路號,從轉(zhuǎn)發(fā)配置表查找對應(yīng)的配置信息,對當前數(shù)據(jù)幀進行過濾和流量管理,并為其他模塊提供控制信息。交換端口中的發(fā)送仲裁模塊針對三組發(fā)送緩存(pcf、tt、be)的發(fā)送請求,進行優(yōu)先級仲裁,獲得仲裁的發(fā)送緩存可以占據(jù)總線,發(fā)送數(shù)據(jù)。pcf、be幀發(fā)送緩存數(shù)據(jù)有效時,向發(fā)送仲裁模塊提交相應(yīng)發(fā)送請求。tt幀發(fā)送緩存存放一幀數(shù)據(jù)時,首先解析出tt幀虛擬鏈路號,向tt幀傳輸時刻計算模塊發(fā)出查詢請求,得到tt幀發(fā)送申請時刻和實際發(fā)送時刻點。當tt幀發(fā)送申請時刻有效,提交tt發(fā)送請求。tt發(fā)送請求得到應(yīng)答后,鎖定當前時槽,等待實際發(fā)送時刻點到達后,將tt幀發(fā)送出去。發(fā)送申請時刻比實際發(fā)送時刻點提前一個最大幀長時間,保證tt幀發(fā)送申請時刻到達時,發(fā)送鏈路空閑。提前申請發(fā)送總線在犧牲一定帶寬的情況下,保證了tt幀的實時傳輸。
時鐘固化模塊3由12個固化函數(shù)構(gòu)成,對應(yīng)各交換端口模塊,主要功能是還原各pcf幀的相對發(fā)送時刻即固化點,并提交給時鐘同步模塊4。
時鐘同步模塊4實現(xiàn)交換控制器的時鐘同步功能,主要功能是收集固化模塊3計算出的時鐘固化點,采用三級流水方式實現(xiàn)時鐘壓縮函數(shù),計算網(wǎng)絡(luò)的相對平均時刻;根據(jù)相對平均時刻與交換控制器本地時鐘的差異,修正交換控制器本地時鐘,并廣播含有時鐘信息的pcf幀,用于網(wǎng)絡(luò)終端設(shè)備的時鐘同步;對網(wǎng)絡(luò)進行實時同步檢測,完成同步故障隔離與恢復(fù),即“同步檢測-同步故障-重啟同步-恢復(fù)同步”。
tt交換控制模塊6實現(xiàn)tt幀的交換功能。在網(wǎng)絡(luò)處于時鐘同步狀態(tài)時,tt交換控制模塊6響應(yīng)各端口tt幀的交換請求,判斷目標端口的tt緩存狀態(tài),給出應(yīng)答。等待目標端口的tt緩存狀態(tài)為空時,進行數(shù)據(jù)轉(zhuǎn)存,若等待時間過長,則對當前數(shù)據(jù)做棄幀處理。
be交換控制模塊7包括交換仲裁和存儲控制兩部分。交換仲裁一方面根據(jù)各端口的交換請求和預(yù)設(shè)的優(yōu)先級,給出應(yīng)答,將端口數(shù)據(jù)發(fā)送到輸出端口隊列,另一方面對各輸出隊列的輸出請求給出應(yīng)答,將數(shù)據(jù)從輸出端口隊列發(fā)送到交換端口模塊2。由于be幀優(yōu)先級低,且為了兼容普通以太網(wǎng)交換,適應(yīng)大數(shù)據(jù)量交換場景,需要較大的be交換緩存。本發(fā)明采用外部大容量緩存芯片作為be交換的外部緩存,存儲控制接收交換仲裁的指令,實現(xiàn)外部緩存的訪問,高效的進行be數(shù)據(jù)管理。
tt幀傳輸時刻計算模塊5主要完成tt幀傳輸時刻的硬件實時計算。當交換端口收到合法的tt幀時,向tt幀傳輸時刻計算模塊發(fā)出查詢請求,獲得該tt幀的接收窗口,若接收窗口有效,表示該tt幀到達交換機時刻合法,可以進行交換。當交換端口模塊2收到tt交換控制模塊發(fā)送的數(shù)據(jù)幀時,解析出該數(shù)據(jù)幀的虛擬鏈路號,向tt幀傳輸時刻計算模塊5發(fā)出查詢申請,獲得該tt幀的發(fā)送申請時刻和實際發(fā)送時刻點。軟件只需初始化每條虛擬鏈路的通信周期和首次接收時刻點和發(fā)送時刻點,其他時刻點均由硬件自動計算,簡化了傳輸時刻點配置。端口鏡像模塊8主要用于調(diào)試,可以將輸入端口或者輸出端口映射到鏡像端口上,也可以自定義觸發(fā)條件,將符合條件的數(shù)據(jù)幀發(fā)送到鏡像端口??刂破鲗Ω鹘粨Q端口的故障進行錯誤計數(shù),若大于預(yù)設(shè)值,將該端口屏蔽一定時間,再重新啟動,避免網(wǎng)絡(luò)擁塞。
本發(fā)明交換子端口模塊通過mac控制模塊9從網(wǎng)絡(luò)上接收數(shù)據(jù)或者向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)。當從網(wǎng)絡(luò)上收到數(shù)據(jù)后,mac控制模塊9解析出幀類型以及虛鏈路號等信息,提交給過濾模塊11和流量管理模塊12。對于pcf幀,過濾模塊11將收到的數(shù)據(jù)與轉(zhuǎn)發(fā)配置表模塊10中對應(yīng)的配置轉(zhuǎn)發(fā)信息進行比較,給出過濾標識。當過濾成功后,流量管理模塊12查找轉(zhuǎn)發(fā)配置表模塊10中對應(yīng)的配置轉(zhuǎn)發(fā)信息,對當前數(shù)據(jù)幀進行流量管理,并給出流量管理標識。當過濾標識或流量管理標識為失敗時,控制器向mac控制模塊9產(chǎn)生棄包指令,清除mac控制模塊9中的當前幀。當流量管理標識為成功時,向時鐘固化模塊3提交信息,啟動時鐘固化。時鐘固化模塊3將計算出的時間固化點提交給時鐘同步模塊4。時鐘同步模塊4收集所有固化點信息,對固化點壓縮,計算出網(wǎng)絡(luò)相對平均時間,修正控制器本地時鐘,給出網(wǎng)絡(luò)的同步狀態(tài),產(chǎn)生新的帶有同步信息的pcf幀廣播給各交換子模塊的pcf發(fā)送緩存模塊13。
對于tt幀,過濾模塊11將收到的數(shù)據(jù)與轉(zhuǎn)發(fā)配置表模塊10中對應(yīng)的配置轉(zhuǎn)發(fā)信息比較,判斷時鐘同步模塊4各處的控制器狀態(tài)。當控制器處于同步態(tài)時,向tt幀傳輸時刻計算模塊5提出tt接收時刻點申請,tt幀傳輸時刻計算模塊5給出對應(yīng)接收時刻點后,過濾模塊11將接收時刻點與本地時間比較,給出過濾標識。當過濾失敗時,向mac控制模塊9產(chǎn)生棄包指令。過濾成功后,流量管理模塊12對tt幀不進行流量管理,給出流量管理成功標識,向tt交換控制模塊6發(fā)起tt交換請求。tt交換控制模塊6響應(yīng)各端口的交換請求,查詢目標端口的tt發(fā)送緩存模塊15狀態(tài),將數(shù)據(jù)發(fā)送到目標端口的tt發(fā)送緩存模塊15。
對于be幀,過濾模塊11將收到的數(shù)據(jù)與轉(zhuǎn)發(fā)配置表模塊10中對應(yīng)的配置轉(zhuǎn)發(fā)信息進行比較,給出過濾標識。當過濾成功后,流量管理模塊12進行流量管理,給出流量管理標識。當過濾或流量管理失敗時,向mac控制模塊9發(fā)出棄包指令。當流量管理標識為成功時,向be交換控制模塊7發(fā)起be交換請求。be交換控制模塊7響應(yīng)各端口請求,查詢目標端口的be發(fā)送緩存模塊14狀態(tài),將數(shù)據(jù)發(fā)送到目標端口的be發(fā)送緩存模塊14。
當pcf發(fā)送緩存模塊13存放一幀數(shù)據(jù)時,向發(fā)送仲裁模塊16發(fā)起pcf發(fā)送請求。當be發(fā)送緩存模塊14存放一幀數(shù)據(jù)時,向發(fā)送仲裁模塊16發(fā)起be發(fā)送請求。當tt發(fā)送緩存模塊15存放一幀數(shù)據(jù)時,向tt幀傳輸時刻計算模塊5查詢tt幀發(fā)送申請時刻和實際發(fā)送時刻,當本地時鐘為發(fā)送申請時刻時,向發(fā)送仲裁模塊16提出tt發(fā)送請求,獲得響應(yīng)后,鎖定時槽,等待實際發(fā)送時刻到達后,將tt幀發(fā)送出去。發(fā)送申請時刻提前于實際發(fā)送時刻,保證tt幀的實時傳輸。發(fā)送仲裁模塊16主要完成對三種發(fā)送請求的仲裁處理,保證優(yōu)先級順序從高到低為tt、pcf、be。發(fā)送仲裁模塊16將通過仲裁的數(shù)據(jù)發(fā)送到mac控制模塊9。mac控制模塊9將數(shù)據(jù)轉(zhuǎn)發(fā)給網(wǎng)絡(luò)終端,完成數(shù)據(jù)交換。
端口鏡像模塊8根據(jù)總線接口模塊1對其的讀寫配置,設(shè)置為輸入端口鏡像、輸出端口鏡像、自定義條件端口鏡像,端口鏡像模塊8根據(jù)不同的設(shè)置,將相應(yīng)的數(shù)據(jù)包轉(zhuǎn)發(fā)出去。
交換端口模塊2根據(jù)內(nèi)部錯誤計數(shù),將子端口的錯誤計數(shù)值與預(yù)設(shè)值比較,若大于預(yù)設(shè)值,將該子端口的mac控制模塊9屏蔽一定時間再恢復(fù)通信。
根據(jù)上述方案,通過veriloghdl語言對控制器的邏輯設(shè)計進行描述,并完成邏輯布線;設(shè)計一款時間觸發(fā)以太網(wǎng)交換控制器驗證板,將控制器設(shè)計映射到可編程邏輯器件中實現(xiàn),并對控制器功能進行測試,測試結(jié)果表明本發(fā)明具有很好的可實施性,且性能滿足預(yù)期要求。