趙漫菲,姚 蕊,王浩楓+,程德玉
(1.中國航天科工集團第二研究院 七〇六所,北京 100854;2.西安云維智聯科技有限公司 研發(fā)部,陜西 西安 710000)
時間觸發(fā)以太網(time-triggered Ethernet,TTE)是一種將時間觸發(fā)協(xié)議(TTP)的實時性、確定性、容錯性與傳統(tǒng)以太網的普及型、成熟性、組網靈活性相結合,在同一網絡中高可靠、高性能地支持各種不同應用綜合傳輸的新型信息通信系統(tǒng)。傳統(tǒng)以太網的機理在文獻[1]中有較詳細的論述。時間觸發(fā)以太網創(chuàng)造性地加入了時間觸發(fā)概念,時間同步主要的功能就是能夠補償網絡中各個端系統(tǒng)本地時鐘抖動造成的時鐘差異,配合時間觸發(fā)調度算法,使節(jié)點能夠依靠調度表來完成時間觸發(fā)事務的發(fā)送與接收,最終確保時間觸發(fā)事務可以無沖突的在網絡中傳輸,保證了網絡實時性[1]。
本文針對時間觸發(fā)以太網技術的業(yè)務種類、同步通信原理等相關知識點展開論述,TTE是奧地利TTTech公司研發(fā)的時間觸發(fā)以太網,本項目中以TTTech公司出品的TTE產品結合國產自研的端系統(tǒng)、交換機為基礎搭建應用場景,在項目應用中加以實踐,最終該系統(tǒng)在滿足項目中網絡確定性通信的同時,也滿足了系統(tǒng)對于穩(wěn)定性的要求。本次工程實踐,為同類型和時間確定性相關的網絡技術應用提供有力的技術支撐及解決方案。
時間觸發(fā)以太網將內部承載的業(yè)務分為時間觸發(fā)的TT業(yè)務和事件觸發(fā)的ET業(yè)務。TT業(yè)務的傳輸由全局系統(tǒng)時間控制,周期性觸發(fā)。但ET業(yè)務的傳輸是隨機的,ET業(yè)務中又包含速率受限的RC業(yè)務和盡力投遞的BE業(yè)務。這3種業(yè)務的特點在文獻[2]中有較詳盡的論述,從論述中可以看出TT業(yè)務應用時間觸發(fā)機制,以發(fā)送時間表為依據,在特定的時間點上發(fā)送TT消息,而且在特定的時間到達接收數據端,RC業(yè)務是事件觸發(fā)業(yè)務,BE業(yè)務就是常說的傳統(tǒng)以太網業(yè)務,它也屬于事件觸發(fā)業(yè)務,其數據幀格式符合傳統(tǒng)以太網的數據標準,會利用網絡剩余的帶寬進行傳輸,它的優(yōu)先級低于TT數據和RC數據業(yè)務,而且它的可靠性等性能不能保證,這一點在文獻[2]中有較詳細的論述。
TTE技術的基本原理如圖1所示,時間軸包含了多個時分多址周期(TDMA)的簇周期,在一個簇周期內,各個同步端分別占用不同的時間槽位,時間槽在每個時分多址周期內的時間坐標是固定不變的,如圖1所示,端節(jié)點1、2、3、4在時間槽中的位置是固定的,也是提前設置好的,節(jié)點之間通過全局時鐘機制保持同步,由于每個端節(jié)點占用了不同的時間片段,所以各端節(jié)點的通信將互不沖突,文獻[3]中也有同樣的論述。
圖1 端節(jié)點在時間槽中的示意
TTE能保證設備間的同步通信,但設備間的不同步是如何產生的呢?這主要是因為各網絡設備在計時過程中,時鐘晶振震蕩從而引起了計時值的偏移,要是設備間不進行周期性的同步維護,那么每個同步時鐘的計時值偏移超出了系統(tǒng)同步精度時,網絡的同步狀態(tài)會丟失。時間觸發(fā)協(xié)議的提出為改進以太網的確定性做出了貢獻。而TTE則綜合了標準以太網和TTP的優(yōu)勢。在發(fā)布SAE AS6802同步協(xié)議前,該網絡的協(xié)議形態(tài)是由IEEE802.3標準和IEEE1588同步協(xié)議組合而成。TTE在以太網基礎上引入時鐘同步機制,建立了微秒級的網絡時鐘同步,實現了時間觸發(fā)和事件觸發(fā)混合調度機制,在文獻[4]中有具體的論述。
TTE網絡體系各傳輸層與各協(xié)議間的關系見表1[5]。
表1 傳輸層與各協(xié)議間的關系
TTE時鐘同步屬于一種內部時鐘同步方式,其方式是將同一個網絡拓撲中的各節(jié)點的本地時鐘進行同步,使得所有網絡設備的通信具備時間協(xié)調的能力。TTE時鐘同步機制不是一種典型的對稱性“主從式”的同步機制,同時也不完全屬于一種對稱式的時鐘同步機制,在該機制下的網絡設備在時鐘同步中具有不同的功能[2]。
透明時鐘傳輸機制是TTE網絡采用的時鐘同步機制。TTE網絡拓撲結構一旦設定完成,任意端到端的連接路徑就是相對固定的了,從而網絡中點到點的最大消息傳輸時延就可以確定下來。這種時延不僅包括網絡設備的收發(fā)協(xié)議處理或者數據拷貝等產生的靜態(tài)技術時延和物理鏈路傳輸時延,而且還包括信息傳輸過程中網絡動態(tài)時延。這個最大消息傳輸時延參數,經過同步機制的固化,實現在接收端協(xié)議控制幀的發(fā)送時刻點的順序,且計算發(fā)送時刻點的不同,在這個基礎之上,獲取最佳的固化時刻點或者最佳的壓縮時刻點,從而計算出同步時鐘的偏移量,最終實現網絡各節(jié)點的同步時鐘的建立和維護。
在TTE的調度方式中,最常用的是在各發(fā)送端先離線設計好任務調度表,之后根據調度表進行消息的發(fā)送和傳輸。
調度表中包含一個矩陣周期,相關內容見文獻[6]。如圖2所示,每個基本周期分為兩段,TT幀在基本周期前一段時間內發(fā)送,RC幀與BE幀在TT幀后面的一段時間內發(fā)送。在每個基本周期會預留一定長度的時間間隔,這樣可以不影響下一周期TT幀的發(fā)送,通過離線調度表,TTE內各節(jié)點在全局統(tǒng)一時間基準下,使TT消息具有完全的時間確定性[7,8]。
圖2 調度表中各業(yè)務幀的發(fā)送順序
這樣既保證了整個網絡時鐘精確同步,而且通過預先設計好的任務調度表,使交換機在接收各個端系統(tǒng)發(fā)送的TT流量過程中避免了消息的沖突,從而減少了數據的丟失。
調度表生成算法將根據網絡參數和業(yè)務參數進行調度,生成各網絡節(jié)點的時間調度表。調度表明確規(guī)劃了每條業(yè)務的源端發(fā)送時間點、交換機接收時間點、交換機接收窗、交換機轉發(fā)時間點、交換機轉發(fā)時間窗、目的端系統(tǒng)接收時間點、目的端系統(tǒng)接收時間窗等信息。615A標準協(xié)議定義了一系列規(guī)則,這些規(guī)則就是通過響應、握手和確認機制等,來完成數據在加載端和被加載端之間的傳輸,同時規(guī)定了交互的數據以及文件的格式與要求,用以確保其加卸載操作的準確性和可靠性?;贏RINC 615A的配置加載軟件用于傳輸TTE硬件所需的配置表文件(包含了調度表、同步信息等內容)和驅動所需的幀字段轉換表文件,將這些文件從加載端上傳至交換機和端系統(tǒng)。
本章節(jié)中,描述了目前工程應用中存在及出現的問題,從工程應用的實際需求出發(fā),搭建了某項目TTE傳輸的應用場景,并結合關鍵代碼及演示用例,說明了TTE在具體工程實現中的關鍵技術及應用流程。
在項目的具體應用中,傳統(tǒng)的基于UDP或TCP/IP的網絡通信方式,在處理數據量較大、通信間隔較短的大數據包通信時,經常會出現丟包或數據不完整的現象;另一方面,在某些系統(tǒng)間握手交互對實時性要求較高的應用中,除了使用網絡通信,通常也會用到串口通信或1553 B等總線通信方式,以確保傳輸的穩(wěn)定性及數據傳輸的實時性,總線的不統(tǒng)一造成了系統(tǒng)連接方式比較復雜,歸零或故障定位涉及面較多,維修及維護成本都比較高。
基于此,在某項目的具體應用中,由于系統(tǒng)對實時性、確定性、容錯性要求較高,數據傳輸中我們以時間觸發(fā)以太網為系統(tǒng)模型,從時間觸發(fā)以太網其自身的特點出發(fā),將時間觸發(fā)協(xié)議TTP的實時性、確定性、容錯性與傳統(tǒng)以太網的普及性、成熟性、組網靈活性相結合,展示能在同一網絡中高可靠、高性能地支持各種不同應用屬性業(yè)務的綜合傳輸,同時依托奧地利TTTech公司出品的端系統(tǒng)、交換機及國產的基于TTE同步技術的硬件平臺,搭建應用場景,通過國產TTE平臺與TTTech公司TTE平臺端系統(tǒng)的互聯互通,展示國產平臺目前在此項業(yè)務中的發(fā)展,及對于通用標準的融合[9]。
該項目中搭建的應用場景,在確保了網絡通信數據實時性、確定性的基礎上,用不同的端系統(tǒng)取代了原有的項目中使用的串口通信模式,經驗證完全滿足系統(tǒng)數據傳輸需求。
在此基礎上從用戶代碼開發(fā)的角度出發(fā),通過演示案例,說明TTE中TT業(yè)務、BE業(yè)務的創(chuàng)建及通信過程。
在TTTech端系統(tǒng)及國產端系統(tǒng)中安裝Ubuntu18.04操作系統(tǒng),采用Qt5.14.2作為圖形界面開發(fā)工具,開發(fā)了TTE業(yè)務的人機交互界面,通過該界面可演示TT及BE業(yè)務的收發(fā)傳輸、調度表的生成以及端系統(tǒng)間的數據交互傳輸。
圖3為平臺的網絡拓撲結構,從圖中可以看到,該項目我們使用了兩臺交換機,其中交換機1為TTTech公司的24端口的交換機產品,交換機2為國產的24端口的交換機;6個端系統(tǒng),其中端系統(tǒng)1、端系統(tǒng)2、端系統(tǒng)3以及端系統(tǒng)4為TTTech公司的端系統(tǒng)產品,其網卡為TTTech公司標準產品;端系統(tǒng)5、端系統(tǒng)6為國產的端系統(tǒng)產品,自研網卡。
圖3 演示平臺的網絡拓撲結構
該平臺共建了24條虛鏈路。其調度表映射關系由TTTech公司提供的TTE-Tools Workbench軟件配置,例如由端系統(tǒng)1生成的名為TT_VL_100的虛鏈路,其屬性設置如圖4所示;其生成的配置文件直接拷貝到各個主機端,交換機內部的配置表由TTE-Switch軟件完成配置并固化到交換機內部。
圖4 ES1中名為TT_VL_100的屬性
TTTech的端系統(tǒng)1向端系統(tǒng)2發(fā)送TT業(yè)務、向端系統(tǒng)3發(fā)送BE業(yè)務,同時端系統(tǒng)1接收來自端系統(tǒng)2的TT業(yè)務及端系統(tǒng)3的BE業(yè)務,端系統(tǒng)2接收端系統(tǒng)1的TT業(yè)務,端系統(tǒng)3接收端系統(tǒng)1的BE業(yè)務。端系統(tǒng)5(國產端系統(tǒng)1)向端系統(tǒng)6(國產端系統(tǒng)2)發(fā)送數據周期為7 ms 的TT業(yè)務;端系統(tǒng)6(國產端系統(tǒng)2)向端系統(tǒng)4(TTTech端系統(tǒng)4)發(fā)送數據周期為17 ms的TT業(yè)務;端系統(tǒng)6(國產端系統(tǒng)2)向端系統(tǒng)5(國產端系統(tǒng)1)發(fā)送數據周期為63 ms的TT業(yè)務;端系統(tǒng)4(TTTech端系統(tǒng)4)向端系統(tǒng)6(國產端系統(tǒng)2)發(fā)送數據周期為58 ms的TT業(yè)務。該項目在執(zhí)行網絡數據傳輸的過程中,可以測定出各端系統(tǒng)間的同步精度均小于100 ns。
在該項目的BE業(yè)務中,同時也通過端系統(tǒng)3向端系統(tǒng)2(國產端系統(tǒng))發(fā)送視頻流,端系統(tǒng)3作為服務器端加載最大帶寬不超過30 M的視頻流,端系統(tǒng)4(TTTech端系統(tǒng))向端系統(tǒng)2同時注入500多兆帶寬的BE流量;此時,作為視頻點播的另一端,端系統(tǒng)2(國產端系統(tǒng))作為客戶端,可以平穩(wěn)播放該視頻流,如圖5所示,端系統(tǒng)間的TT業(yè)務也穩(wěn)定運行;此時,端系統(tǒng)2接收到的網絡帶寬總和小于700 M,然后我們加大對端系統(tǒng)2的BE流量注入,從發(fā)送視頻點播業(yè)務的端系統(tǒng)3端,發(fā)送將近300 M帶寬的BE流量,端系統(tǒng)2總接收到的流量為900多兆,此時,播放的視頻流明顯出現了滯后和卡頓的現象。如圖6所示。具體的實驗數據見表2。
圖5 國產端系統(tǒng)與TTTech端系統(tǒng)融合展示
圖6 增加流量注入后BE視頻流出現卡頓后的效果
表2 TT、BE業(yè)務與干擾帶寬間的關聯情況
分析該現象可以看出,無論是國產交換機還是TTTech公司生產的交換機,交換機端口的最大帶寬為1 G,在交換機端口接收到的最大帶寬不超過該值時,BE視頻流平穩(wěn)傳輸穩(wěn)定運行,當加大交換機端口流量注入,交換機端接收到的流量超過1 G時,為了保證TT業(yè)務的穩(wěn)定運行,交換機端口會丟失部分的BE視頻流的傳輸數據,如圖6所示,端系統(tǒng)2在流量注入超過1 G的情況下,它播放的視頻出現了卡頓。而同時在端系統(tǒng)2上接收的TT端系統(tǒng)業(yè)務穩(wěn)定運行,不受影響,如圖7所示,由此可見,以太網標準中對數據包的傳輸是“盡力而為”的,不能保證關鍵控制數據傳輸的實時性和可靠性。
在硬件平臺搭建完成,軟件環(huán)境安裝到位,調度表生成完畢并已植入主機端和交換機的前提下,開發(fā)人員需要根據自身的網絡應用,開發(fā)TTE各業(yè)務的代碼實現,實現流程主要包含以下幾個方面:
2.3.1 TTE端系統(tǒng)初始化
(1)端系統(tǒng)配置文件加載
在端系統(tǒng)初始化開始,需要加載配置文件,在本項目中使用的TTTech公司提供的TTE-Tools Workbench軟件,根據系統(tǒng)架構,對.network_description文件中的虛鏈路、周期、端口名稱、最大發(fā)送字節(jié)等進行配置,編譯完成會生成各端系統(tǒng)的.bin文件,對應系統(tǒng)中不同的端系統(tǒng),需要加載其相對應的二進制配置文件。
(2)端口號、分區(qū)號、物理地址等參數的有效性判定
之后對讀入的配置文件中的端口號、分區(qū)號、物理地址等的有效性進行判定,不滿足條件的情況程序會退出。
(3)初始化端系統(tǒng)
初始化接口調用如下:
if (TTE_ES_RET_OK != ttex_es_mng_init (es_type, &es_hdl_r, &dev_hdl, es_index))
{
fprintf (stderr, PFX "INIT: Invalid Endsystem Handle or wrong type of Endsystem specified ");
return EXIT_FAILURE;
}
(4)使能系統(tǒng)IO管腳等
2.3.2 分別建立各發(fā)送及接收線程
根據系統(tǒng)中所需的虛鏈路數,建立不同的發(fā)送或者接收線程。
2.3.3 結合QT消息響應機制建立相應槽函數、顯示線程等
本項目中使用的是Ubuntu操作系統(tǒng),為了方便用戶進行人機交互控制,我們使用了QT作為圖形界面開發(fā)工具,所以本應用需要結合QT消息響應機制,關聯不同的信號及槽函數,同時要建立不同的顯示線程,將發(fā)送端發(fā)出的或接收端收到的網絡數據進行顯示。
……
thread_send = new tt_send_thread();
connect(send_button,SIGNAL(released()),this,SLOT(on_Send_Clear_released()));
connect(send_button,SIGNAL(clicked()),this,SLOT(on_send_button_clicked()));
connect(thread_send,SIGNAL(ttsend_signal(int)),this,SLOT(ttex_send_comm(int)));
……
thread_send->start();
……
在該項目的工程演示中,配置交換機的端口9為TT業(yè)務的發(fā)送端,端系統(tǒng)1與之相連,端系統(tǒng)2連接交換機的端口10,作為TT業(yè)務的接收端,交換機的端口3連接端系統(tǒng)3,作為BE業(yè)務的發(fā)送端。啟動程序界面,設定發(fā)送時間間隔,數據包大小等參數,TT業(yè)務運行開始后,按照端系統(tǒng)1的設定值,發(fā)送固定長度的數據包,同時啟動各接收線程,端系統(tǒng)2、3初始化過程同理。端系統(tǒng)1發(fā)送TT業(yè)務的同時也接收端系統(tǒng)2發(fā)來的TT業(yè)務數據及端系統(tǒng)3上發(fā)送的BE業(yè)務數據,接收情況如圖8所示;端系統(tǒng)2只發(fā)送TT業(yè)務數據包給端系統(tǒng)1,同時接收端系統(tǒng)1發(fā)來的TT數據包,接收情況如圖9所示;端系統(tǒng)3只發(fā)送BE業(yè)務包給端系統(tǒng)1,同時接收來自端系統(tǒng)1的BE業(yè)務包,
圖8 演示平臺端系統(tǒng)1演示界面
圖9 演示平臺端系統(tǒng)2演示界面
收發(fā)情況如圖10所示。該數據通信過程,是2.3節(jié)中端系統(tǒng)軟件開發(fā)中具體的工程實踐應用。圖11為該平臺中端系統(tǒng)1與端系統(tǒng)2間的同步精度,從示波器中可以看出,端系統(tǒng)間的動態(tài)同步精度小于50 ns。
圖10 演示平臺端系統(tǒng)3演示界面
圖11 演示平臺中的端系統(tǒng)1、2間的同步精度
本文圍繞著TTE時間觸發(fā)以太網的工程應用,論述了TTE的業(yè)務特點、同步控制等基本原理,以對TTTech公司的端系統(tǒng)的使用過程為主線,系統(tǒng)闡述了時間觸發(fā)以太網在某工程應用中具體的實現流程。
傳統(tǒng)以太網標準中對數據包的傳輸是不確定的,它并不能保證數據傳輸的實時性和可靠性。為了解決這一問題,相關科研工作者在傳統(tǒng)以太網的基礎上進行改進以滿足不同系統(tǒng)的應用需求。其中,時間觸發(fā)以太網是該類技術的佼佼者[8]。時間觸發(fā)以太網技術有著高容錯性、高確定性、高兼容性、高可靠性及高可測性的特點,能同時高效地支持工業(yè)數據采集、控制指令傳輸、網絡互聯互通等多種應用場景,在航天航空領域、工業(yè)自動化控制領域都有著廣泛而重要的應用。TTE網絡總線在美國龍飛船及戰(zhàn)機上已經成功應用。隨著TTE芯片化的成功和應用,TTE總線的應用和推廣會越來越廣泛[11]。
但也由于其自身組網的確定性等特點,造成了用戶使用中感覺不夠靈活,頂層設計需要修改的情況下全項目涉及改動較大,后續(xù)隨著理論研究的不斷深入,工程應用的不斷推廣,相信會產生出更完善、更靈活的TTE組網方式。