王樂(lè)
(北方自動(dòng)控制技術(shù)研究所 山西省太原市 030006)
以太網(wǎng)開(kāi)放性以及萬(wàn)物互聯(lián)的特性使其成為近幾十年最為流行的網(wǎng)絡(luò),以太網(wǎng)一個(gè)非常顯著的特點(diǎn)就是該網(wǎng)絡(luò)是事件觸發(fā)機(jī)制。而時(shí)間觸發(fā)機(jī)制就意味著網(wǎng)絡(luò)中難以避免就存在時(shí)延的問(wèn)題。如何升級(jí)以太網(wǎng),使其適應(yīng)航空電子等高可靠性和安全性的應(yīng)用場(chǎng)景學(xué)術(shù)界和工業(yè)界都是非期待的問(wèn)題?;诖?,時(shí)間觸發(fā)以太網(wǎng)(Time-Triggered Ethernet)[1-3]應(yīng)運(yùn)而生。
在TTE 中,在實(shí)時(shí)信息、控制信息、圖像視頻音頻等不同類別信息之間進(jìn)行時(shí)鐘同步和任務(wù)調(diào)度是至關(guān)重要的環(huán)節(jié)[4-5]。由于任務(wù)調(diào)度是在保證全網(wǎng)各個(gè)設(shè)備間本地時(shí)鐘與全局時(shí)鐘同步的基礎(chǔ)上進(jìn)行的,所以時(shí)鐘同步的確立從根本上影響著整個(gè)網(wǎng)絡(luò)的通信速率[6-10]。因此,開(kāi)展針對(duì)TTE 端系統(tǒng)的時(shí)間同步算法研究就具有非常重要的意義。
基于上述情況,結(jié)合航空電子系統(tǒng)通信的實(shí)際需求,文章提出一種適合于TTE 終端系統(tǒng)之間進(jìn)行時(shí)鐘同步的算法。具體地,文章首先對(duì)TTE 的同步過(guò)程進(jìn)行了介紹,然后詳細(xì)闡述了文章所提的TTE 端系統(tǒng)同步算法,進(jìn)一步利用Verilog-HDL 語(yǔ)言建立一定的算法模型,可以滿足各個(gè)端系統(tǒng)與客戶端實(shí)現(xiàn)通信同步功能,從而通過(guò)建立好的離線調(diào)度表進(jìn)行數(shù)據(jù)任務(wù)調(diào)度。最后文章通過(guò)仿真驗(yàn)證了分析的正確性。
典型的TTE 協(xié)議同步主要分為三種角色,首先是同步控制器(Synchronization Master,SM)[11];其次是同步客戶端(Synchronization Client,SC)[11],部分文獻(xiàn)中也將其稱為端系統(tǒng);最后就是壓縮控制器(Compression Master,CM)[11]。典型的TTE 同步過(guò)程如圖1所示。全局時(shí)鐘的建立是時(shí)鐘同步算法的核心,在整個(gè)TTE 網(wǎng)絡(luò)中需要有一個(gè)介質(zhì)能夠與網(wǎng)絡(luò)內(nèi)各個(gè)終端之間的時(shí)鐘聯(lián)系在一起,協(xié)議控制幀(PCF)就是這么出現(xiàn)的。利用協(xié)議控制幀中Payload 字段中所攜帶的信息可以得知各個(gè)終端的本地時(shí)鐘以及時(shí)間差,進(jìn)而得到新的同一時(shí)鐘,并建立新的PCF 幀,將新的時(shí)鐘信息放入其中,并送回各個(gè)終端系統(tǒng)中實(shí)現(xiàn)各自本地時(shí)鐘的自我修正。
總體來(lái)講,TTE 時(shí)鐘同步可以分為兩大步驟。第一步為同步控制器發(fā)起同步過(guò)程,同步控制器向TTE 網(wǎng)絡(luò)中發(fā)送自身的本地時(shí)鐘信息。第二步為壓縮控制器收到同步控制器發(fā)送的消息之后,壓縮控制器計(jì)算同步控制器的時(shí)鐘信息,之后將計(jì)算之后的平均時(shí)鐘信息向整個(gè)網(wǎng)絡(luò)廣播。最后,網(wǎng)絡(luò)中所有的端系統(tǒng)和交換機(jī)收到平均時(shí)鐘信息之后,以該時(shí)鐘為基準(zhǔn)對(duì)本地的時(shí)鐘進(jìn)行調(diào)節(jié),從而實(shí)現(xiàn)網(wǎng)絡(luò)中所有設(shè)備的同步。
圖1:TTE 同步過(guò)程示意圖
圖2:TTE 端系統(tǒng)時(shí)序保持矯正同步算法
需要指出的是,圖1中同步控制器是整個(gè)TTE 同步過(guò)程的發(fā)起者,整個(gè)TTE 的同步就是從同步控制器發(fā)送PCF 開(kāi)始的。如果同步控制器有關(guān)時(shí)間的數(shù)值滿足之前預(yù)定的數(shù)值后,PCF 就會(huì)被激活發(fā)送。如果同步客戶端收到PCF,他會(huì)將該信息直接中繼給壓縮控制器。壓縮控制器的主要任務(wù)就是負(fù)責(zé)對(duì)各個(gè)終端發(fā)送過(guò)來(lái)的PCF 進(jìn)行收集,進(jìn)一步結(jié)合PCF 到達(dá)的時(shí)間以及PCF 中包含的同步信息計(jì)算出同步控制器和同步客戶端之間的時(shí)間差,由該差值可以得到TTE 網(wǎng)絡(luò)的全網(wǎng)基準(zhǔn)時(shí)間。
關(guān)于最后的同步過(guò)程。壓縮控制器在同一時(shí)間內(nèi)向同步控制器發(fā)送控制幀,此時(shí)如果同步客戶端接收來(lái)自壓縮控制器的特殊幀,他會(huì)將該特殊幀透明轉(zhuǎn)發(fā)給同步控制器。同時(shí)同步客戶端會(huì)利用該特殊幀完成自身的同步。同步控制器在接收到此特殊幀之后,同樣也會(huì)更新自身的時(shí)間,通過(guò)上述步驟便實(shí)現(xiàn)了同步控制器、壓縮控制器以及同步客戶端三者的時(shí)鐘同步。
圖3:冷啟動(dòng)原理圖
圖4:TTE 端系統(tǒng)時(shí)鐘同步精度圖
基于上述的分析,文章提出一種TTE 端系統(tǒng)時(shí)序保持矯正同步算法,算法的流程結(jié)構(gòu)圖如2 所示。該TTE 網(wǎng)絡(luò)采用SAE AS6802 協(xié)議建立全局時(shí)鐘實(shí)現(xiàn)全網(wǎng)時(shí)鐘同步[12-13]。觀察圖2不難發(fā)現(xiàn),在TTE 端系統(tǒng)中,三個(gè)模塊主要的就是同步控制器(SM),同步客戶端(SC)以及壓縮控制器(CM)。要在網(wǎng)絡(luò)中完成上述三個(gè)模塊同步的關(guān)鍵就是特殊控制幀PCF[14-15]。PCF 控制幀將三個(gè)之間的時(shí)間聯(lián)系起來(lái),利用文章所提的算法便可以實(shí)現(xiàn)整個(gè)TTE網(wǎng)絡(luò)的同步。
該算法的核心思想為:首先同步控制器向網(wǎng)絡(luò)中傳播PCF,壓縮控制器接收到PCF 之后利用時(shí)序保持算法消除網(wǎng)絡(luò)中不確定因素引起的時(shí)間偏差問(wèn)題。然后壓縮控制器利用集中壓縮算法對(duì)網(wǎng)絡(luò)中不能進(jìn)行同步的節(jié)點(diǎn)進(jìn)行集中處理,之后會(huì)通過(guò)時(shí)鐘矯正算法對(duì)PCF 幀的信道進(jìn)行選擇,從而得到最優(yōu)的信道發(fā)送PCF 幀。進(jìn)一步壓縮控制器在網(wǎng)絡(luò)中發(fā)送新的PCF 幀,同步控制器和同步客戶端在接收到新的PCF 幀之后進(jìn)行同/異步檢測(cè),成功的話將會(huì)更新本地的時(shí)間,失敗的話將會(huì)進(jìn)行時(shí)鐘的矯正。不滿足時(shí)鐘條件的,將會(huì)重復(fù)上述的步驟,進(jìn)行重新同步,直到同/異步檢測(cè)通過(guò)為止。
首先,對(duì)文章所提的TTE 時(shí)序保持算法進(jìn)行介紹。TTE 時(shí)序保持算法主要是為了解決網(wǎng)絡(luò)中不同節(jié)點(diǎn)的時(shí)鐘抖動(dòng)性問(wèn)題以及PCF 幀透明時(shí)域值之間的差異問(wèn)題。具體地,TTE 網(wǎng)絡(luò)中不同的終端上的時(shí)鐘是有不同程度的抖動(dòng)性的,進(jìn)一步網(wǎng)絡(luò)中不同的通信發(fā)起者到達(dá)接收者之間的網(wǎng)絡(luò)時(shí)間延遲也是不同的。因此,不同接受者在接收到PCF 幀的時(shí)間序列和發(fā)送PCF 幀的時(shí)間序列就會(huì)不同。TTE 時(shí)序保持算法主要就是為了解決該問(wèn)題。
文章定義接收者在獲取特殊PCF 幀的時(shí)刻為接收時(shí)間點(diǎn)用receive_pit 表示,根據(jù)該時(shí)間點(diǎn)就可以利用時(shí)序保持算法對(duì)該點(diǎn)進(jìn)行計(jì)算,計(jì)算的結(jié)果用result_pit 表示。TTE 端系統(tǒng)為了維持時(shí)序所要設(shè)置的自身時(shí)延用self_dely 表示。首先,TTE 端系統(tǒng)網(wǎng)絡(luò)中的同步控制器(SM),同步客戶端(SC)以及壓縮控制器(CM)在接收到PCF 特殊幀的時(shí)候,獲取本地的時(shí)鐘信息,也就是receive_pit,然后激活文章所提的時(shí)序保持算法。然后,獲取特殊幀PCF中的透明時(shí)鐘,也就是pcf_clock,該值表示的是該特殊幀PCF 在整個(gè)網(wǎng)絡(luò)中的真實(shí)的總體時(shí)延。進(jìn)一步,我們計(jì)算self_dely,計(jì)算公式如下:
進(jìn)一步,計(jì)算,計(jì)算公式如下
值得注意的是,該算法的精確度是和特殊透明幀的精確度密切相關(guān)的。特殊透明幀的精確度對(duì)同步時(shí)鐘的影響是致命的,并且與算法的關(guān)系不是很大。故若要進(jìn)一步提高TTE時(shí)序保持算法的精度,需要較高的特殊透明幀精確度支撐。
然后,對(duì)文章所提的TTE 時(shí)序修正算法進(jìn)行介紹。TTE 端系統(tǒng)中的同步控制器(SM)和同步客戶端(SC)會(huì)對(duì)接收到的PCF的信道進(jìn)行選擇,進(jìn)而選擇最優(yōu)的的信道。文章定義某信道接收到的PCF 幀的個(gè)數(shù)為k 個(gè),因此,便可以計(jì)算得到對(duì)應(yīng)的時(shí)鐘矯正參數(shù),計(jì)算公式如下:
同理,TTE 端系統(tǒng)中的壓縮控制器(CM)同樣會(huì)對(duì)接收到的PCF 的信道進(jìn)行選擇,因此,同樣可以計(jì)算得到其對(duì)應(yīng)的時(shí)鐘矯正參數(shù),計(jì)算公式如下:
首先對(duì)TTE 端系統(tǒng)的啟動(dòng)以及重新啟動(dòng)原理進(jìn)行介紹。TTE端系統(tǒng)的啟動(dòng)以及重啟動(dòng)都是要遵循嚴(yán)格的協(xié)議狀態(tài)機(jī)[16]。具體來(lái)說(shuō),用到的協(xié)議狀態(tài)機(jī)可以分為兩種,第一種是工程中使用較多的同步操作態(tài),另一種則是工程中使用較少的異步操作態(tài)。一種標(biāo)準(zhǔn)的冷啟動(dòng)原理圖如圖3所示。觀察圖3不難發(fā)現(xiàn),同步控制器(SM)以及壓縮控制器(CM)之間會(huì)交換冷啟動(dòng)幀(Cold Start Frame,CS),確認(rèn)幀(Cold Start Acknowledge Frame,CA),在此過(guò)程中,同步控制器(SM)和壓縮控制器(CM)還會(huì)完成握手協(xié)議。最后,同步控制器(SM)會(huì)進(jìn)入到同步狀態(tài),進(jìn)而啟動(dòng)合成幀的發(fā)送。
然后對(duì)TTE 端系統(tǒng)的數(shù)據(jù)處理模型進(jìn)行介紹。數(shù)據(jù)處理模塊的功能主要是涉及PCF 數(shù)據(jù)幀的產(chǎn)生、發(fā)送、接收、固化等。根據(jù)字面意思可以知道,產(chǎn)生主要是構(gòu)建滿足這個(gè)協(xié)議的PCF 數(shù)據(jù)幀。再者就是發(fā)送和接收,這個(gè)功能主要是對(duì)PCF 數(shù)據(jù)幀進(jìn)行首發(fā)處理。固化則是基于PCF 數(shù)據(jù)幀的時(shí)間序列以及相應(yīng)的算法,計(jì)算得到該P(yáng)CF 數(shù)據(jù)戰(zhàn)的固化時(shí)間點(diǎn)。
最后對(duì)TTE 端系統(tǒng)的時(shí)鐘修正模型進(jìn)行介紹。時(shí)鐘修正模型的功能主要是完成對(duì)PCF 數(shù)據(jù)幀的篩選、修正以及執(zhí)行。首先是對(duì)數(shù)據(jù)幀的篩選,該功能主要是對(duì)最優(yōu)信道的選擇。再者是修正,修正主要是對(duì)當(dāng)前周期的時(shí)鐘修正值進(jìn)行計(jì)算。執(zhí)行則是將上一步計(jì)算得到的修正值應(yīng)用到修正環(huán)節(jié)。
表1:TTE 端系統(tǒng)同步仿真結(jié)果
為驗(yàn)證文章理論分析的正確性與有效性,文章進(jìn)行了仿真。文章利用Verilog-HDL 進(jìn)行仿真,Verilog-HDL 集成了各種函數(shù),通過(guò)該軟件可以大大提高學(xué)者的仿真效率。如果沒(méi)有特殊說(shuō)明,文章的仿真參數(shù)如下:對(duì)于圖3中的同步控制器(SM),同步客戶端(SC)以及壓縮控制器(CM),其數(shù)量分別設(shè)置為3 個(gè),1 個(gè),1 個(gè)。網(wǎng)絡(luò)帶寬十分豐富,達(dá)到了百兆的級(jí)別。數(shù)據(jù)在傳輸過(guò)程中的延時(shí)按照微秒級(jí)別。
文章首先仿真集成周期的長(zhǎng)度對(duì)同步時(shí)間精度,建立、維持同步的時(shí)間以及設(shè)備時(shí)鐘偏差進(jìn)行了分析,仿真結(jié)果如表1所示。
在表1中,所有的長(zhǎng)度,精度以及時(shí)間長(zhǎng)度的單位均為微秒。觀察表1不難發(fā)現(xiàn),當(dāng)集成周期的長(zhǎng)度小于等于2000 的時(shí)候,其時(shí)鐘同步精度是沒(méi)有變化的,而建立同步的時(shí)間隨著集成周期的變大而不斷變大,三者的維持同步時(shí)間是相同的,但是設(shè)備的時(shí)鐘偏差是隨著集成周期長(zhǎng)度的增長(zhǎng)而增長(zhǎng)的。進(jìn)一步,當(dāng)集成周期長(zhǎng)度為10000 以及100000 的時(shí)候,TTE 端系統(tǒng)沒(méi)有進(jìn)入到穩(wěn)定的同步狀態(tài),這兩種情況可以歸為極端性問(wèn)題。
文章進(jìn)一步仿真時(shí)鐘同步精度以及其收斂的速度問(wèn)題,仿真結(jié)果如圖4所示。
觀察圖4不難發(fā)現(xiàn),TTE 端系統(tǒng)的本地時(shí)鐘是向著標(biāo)準(zhǔn)時(shí)鐘進(jìn)行收斂的。
文章提出一種基于TTE 端系統(tǒng)的時(shí)間同步算法。首先對(duì)TTE同步過(guò)程進(jìn)行了介紹,然后詳細(xì)闡述了文章所提的TTE 端系統(tǒng)的同步算法,再者對(duì)TTE 端系統(tǒng)進(jìn)行了建模,最后理論分析和仿真都驗(yàn)證了文章分析的正確性。