蔣增文,田 煒,盛四華,吳 善
(中電工業(yè)互聯(lián)網(wǎng)有限公司,湖南 長(zhǎng)沙 410000)
隨著物聯(lián)網(wǎng)技術(shù)的深入發(fā)展及工業(yè)互聯(lián)網(wǎng)的興起,無(wú)線網(wǎng)絡(luò)因其成本低、擴(kuò)展性好、靈活度高、移動(dòng)性好、容易安裝等優(yōu)勢(shì)成為工控領(lǐng)域研究的熱點(diǎn)之一,也是工業(yè)自動(dòng)化產(chǎn)品未來(lái)新的增長(zhǎng)點(diǎn)。
工業(yè)無(wú)線傳輸對(duì)數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性和可靠性有較為嚴(yán)格的要求。行業(yè)現(xiàn)狀多基于無(wú)線傳感網(wǎng)絡(luò)對(duì)通信協(xié)議進(jìn)行優(yōu)化與設(shè)計(jì)后應(yīng)用于工業(yè)場(chǎng)合。但對(duì)于一些工業(yè)現(xiàn)場(chǎng)設(shè)備和大型工程裝備的無(wú)線控制,通常只需要點(diǎn)對(duì)點(diǎn)實(shí)時(shí)傳輸控制指令,實(shí)現(xiàn)人機(jī)分離的現(xiàn)場(chǎng)控制,以保障操作人員的安全。
工業(yè)、科學(xué)和醫(yī)用(Industrial Scientific Medical,ISM)頻段是工業(yè)無(wú)線傳輸采用的主要頻段,如何實(shí)現(xiàn)信道資源合理有效分配是該頻段通信設(shè)備面臨的一個(gè)至關(guān)重要的問(wèn)題?;诟?jìng)爭(zhēng)機(jī)制的信道接入(Contention-Based Access)[1]和基于預(yù)留機(jī)制的信道接入(Reservation-Based Access)[2]是工業(yè)無(wú)線傳輸?shù)膬纱笾饕诺澜尤霗C(jī)制?;诟?jìng)爭(zhēng)的信道接入常見(jiàn)方法是載波偵聽(tīng)多路訪問(wèn)(Carrier Sense Multiple Acess)[3],該方法由于存在競(jìng)爭(zhēng)延時(shí),在工業(yè)控制無(wú)線傳輸中使用很少。基于預(yù)留機(jī)制的信道接入通常有時(shí)分多址、頻分多址和碼分多址三種主流技術(shù)。時(shí)分多址由于其實(shí)現(xiàn)簡(jiǎn)單、資源占用少等優(yōu)點(diǎn)而成為工業(yè)無(wú)線傳輸?shù)氖走x技術(shù)。時(shí)分多址(Time Division Multiple Access,TDMA)就是采用時(shí)隙的方式來(lái)解決無(wú)線接入沖突問(wèn)題,實(shí)現(xiàn)可靠有效的傳輸。時(shí)間同步和資源分配是實(shí)現(xiàn)TDMA 傳輸所面臨的關(guān)鍵挑戰(zhàn)[4-5]。
針對(duì)工業(yè)現(xiàn)場(chǎng)設(shè)備點(diǎn)對(duì)點(diǎn)無(wú)線控制應(yīng)用場(chǎng)景,通過(guò)對(duì)TDMA 時(shí)隙同步的研究,設(shè)計(jì)了一種基于相關(guān)度的自適應(yīng)時(shí)隙同步工業(yè)傳輸策略。該策略要求采用TMDA 方式,實(shí)現(xiàn)主從端快速同步建立及自適應(yīng)同步調(diào)整,實(shí)現(xiàn)實(shí)時(shí)穩(wěn)定可靠的雙向工業(yè)控制數(shù)據(jù)傳輸。
基于TDMA 的工業(yè)無(wú)線傳輸系統(tǒng)存在兩個(gè)及以上的通信節(jié)點(diǎn),具備獨(dú)立的時(shí)鐘。在復(fù)雜的工業(yè)環(huán)境下,由于受溫度、中斷處理、信號(hào)傳播、信息編解碼等諸多因素的影響,各節(jié)點(diǎn)的本地時(shí)鐘并不同步。對(duì)于具備收發(fā)功能的節(jié)點(diǎn),可能存在同時(shí)發(fā)送或同時(shí)接收的沖突問(wèn)題,從而導(dǎo)致無(wú)線通信中斷,可靠性受到極大的影響。解決TDMA 系統(tǒng)的同步問(wèn)題是無(wú)線可靠傳輸?shù)年P(guān)鍵,也是TDMA 工業(yè)傳輸研究的重點(diǎn)。
時(shí)鐘同步主要有外同步和內(nèi)同步[6]兩種方式。外同步依賴(lài)于第三方時(shí)鐘系統(tǒng),如全球定位系統(tǒng)(Global Positioning System,GPS)、網(wǎng)絡(luò)時(shí)間協(xié)議(Network Time Protocol,NTP)等,由于依賴(lài)第三方時(shí)鐘,對(duì)工業(yè)點(diǎn)對(duì)點(diǎn)無(wú)線傳輸系統(tǒng)并不適用。在基于晶振時(shí)鐘的內(nèi)部同步算法方面,業(yè)界基于無(wú)線傳感網(wǎng)有大量的確究。文獻(xiàn)[7]提供了一種基于“接收者—接收者”的時(shí)隙同步機(jī)制參考廣播同步(References Broadcast Synchronization,RBS)算法,單跳時(shí)該算法比較簡(jiǎn)單,但同步需要依賴(lài)第三方節(jié)點(diǎn)的時(shí)鐘和信標(biāo),消息需要多次交換。文獻(xiàn)[8]提出了一種基于網(wǎng)絡(luò)的分層多跳無(wú)線傳感網(wǎng)時(shí)間同步協(xié)議(Time-sync Protocal for Sensor Network,TPSN),該協(xié)議采用雙向消息交換機(jī)制實(shí)現(xiàn)同步,但存在同步維持時(shí)間短等問(wèn)題。文獻(xiàn)[9]基于“送發(fā)者—接收者”單向同步機(jī)制提出了一種泛洪時(shí)間同步協(xié)議(Flooding Time Synchronization Protocol,F(xiàn)TSP)時(shí)鐘同步算法,該算法需要廣播同步幀且需要攜帶時(shí)間戳,節(jié)點(diǎn)同步算法比較復(fù)雜;文獻(xiàn)[10]提出了一種較為簡(jiǎn)單的基于本地時(shí)鐘的單向同步算法時(shí)延測(cè)量時(shí)間同步算法(Delay Measurement Time Synchronization,DMTS),該算法考慮到了發(fā)送時(shí)延的影響,比較簡(jiǎn)單,便于實(shí)現(xiàn),通信開(kāi)銷(xiāo)小。但DMTS 協(xié)議并未給出因節(jié)點(diǎn)時(shí)鐘偏差而帶來(lái)的影響。在實(shí)際應(yīng)用中存在因時(shí)鐘偏差引起通信中斷的問(wèn)題。
從工業(yè)現(xiàn)場(chǎng)點(diǎn)對(duì)點(diǎn)控制的實(shí)際需求出發(fā),現(xiàn)有時(shí)鐘同步策略存在以下幾個(gè)問(wèn)題:
(1)現(xiàn)有策略多基于無(wú)線傳感網(wǎng)絡(luò),兼顧了網(wǎng)絡(luò)時(shí)隙同步,協(xié)議相對(duì)龐大,實(shí)現(xiàn)復(fù)雜,延時(shí)相對(duì)較大,不適應(yīng)工業(yè)現(xiàn)場(chǎng)控制場(chǎng)景下的點(diǎn)對(duì)點(diǎn)通信時(shí)隙同步。
(2)RBS、RPSN 和FTSP 協(xié)議采用了公共節(jié)點(diǎn)作為時(shí)間參考,在同步建立上需要在幀中攜帶時(shí)間信息,幀數(shù)據(jù)利用率相對(duì)較低。
(3)DMTS 協(xié)議采用本地時(shí)鐘同步,實(shí)現(xiàn)較為簡(jiǎn)單,比較適用于本文所述場(chǎng)景的同步要求,但缺少對(duì)時(shí)鐘偏移影響的考慮,存在同步不穩(wěn)定問(wèn)題而導(dǎo)致通信中斷。
為解決上述問(wèn)題,基于DMTS 提出了一種基于相關(guān)度的自適應(yīng)時(shí)隙同步策略(Correlation Based Adaptive Slot Time Synchronization,CA-STS),實(shí)現(xiàn)工業(yè)點(diǎn)對(duì)點(diǎn)控制數(shù)據(jù)可靠長(zhǎng)期穩(wěn)定傳輸。
CA-STS同步的建立分預(yù)同步和同步兩個(gè)階段。建立同步以后才能進(jìn)行控制數(shù)據(jù)的傳輸,通信幀分為控制幀CCH 和數(shù)據(jù)幀TCH 兩類(lèi)。在同步建立階段,每幀包含了前導(dǎo)字和同步字,同步建立以后,每幀只攜帶前導(dǎo)字。為實(shí)現(xiàn)同步建立,將時(shí)鐘參考節(jié)點(diǎn)稱(chēng)為Master,將同步建立節(jié)點(diǎn)稱(chēng)為Slaver。在同步建立過(guò)程中,Slaver 與Master 保持同步。兩節(jié)點(diǎn)采用相同收發(fā)占空比通信。同步建立的模型如圖1 所示。
圖1 同步建立模型
設(shè)模型中一個(gè)時(shí)隙的時(shí)間為T(mén)slot,則有:
式中:Tframe為時(shí)隙中數(shù)據(jù)發(fā)送的時(shí)間,Tdelay為數(shù)據(jù)準(zhǔn)備所占用的時(shí)間,Tresv為數(shù)據(jù)接收處理所占用的時(shí)間。根據(jù)數(shù)據(jù)幀的組成,則有:
式中:Tpremble為發(fā)送前導(dǎo)字的時(shí)間,Tsyncword為同步字的時(shí)間,Tothers為幀中其他數(shù)據(jù)所占的時(shí)間。由于溫度、調(diào)制解調(diào)、中斷、數(shù)據(jù)處理等因素的影響,導(dǎo)致Master 啟動(dòng)發(fā)送時(shí)會(huì)產(chǎn)生一個(gè)時(shí)延Tdelay,該時(shí)延主要包括調(diào)制解調(diào)時(shí)延Tmodule、中斷所占時(shí)延Tinterrupt及其他因素帶來(lái)的時(shí)延Tdelayother。
在同步建立時(shí),Master 端按Tslot時(shí)隙交替發(fā)送與接收,Slaver 端在沒(méi)有建立同步時(shí),一直處于接收狀態(tài),Slaver 的定時(shí)器處于禁用狀態(tài),Slaver 在接到空口數(shù)據(jù)位后,按相關(guān)度確定同步是否建立。
給定一個(gè)同步字時(shí)長(zhǎng)為T(mén)syncword,將同步字分離成一組二進(jìn)制的同步序列并進(jìn)行反序計(jì)算得到相關(guān)序列。Slaver 按接收的次序依次進(jìn)行相關(guān)度計(jì)算,根據(jù)理論可知,若完全相關(guān),則相關(guān)值為同步字位長(zhǎng),相關(guān)度為1。相關(guān)度計(jì)算原理如圖2所示。
圖2 相關(guān)度計(jì)算模型
第i位數(shù)據(jù)的相關(guān)度為:
式中:Covi表示輸入序列Seq(i) 與相關(guān)序列SeqCov(i)的相關(guān)值,若全部相關(guān),則Covi為相關(guān)序列字長(zhǎng)Covlen。
Slaver 按位接收空口數(shù)據(jù),每接收一位,進(jìn)行一次相關(guān)度計(jì)算,當(dāng)全相關(guān)時(shí),即Covi=Covlen,表示Slaver 與Master 完全匹配。達(dá)到相關(guān)度閾值時(shí)需要啟動(dòng)Slaver 的定時(shí)器進(jìn)行同步,首次啟動(dòng)定時(shí)器的時(shí)間為
式中:Tfixcnt為正常接收數(shù)據(jù)的起始時(shí)間。Slaver 第一次正常接收到同步數(shù)據(jù)后,定時(shí)器啟動(dòng),實(shí)現(xiàn)與Master 的預(yù)同步,同時(shí)按發(fā)送時(shí)隙發(fā)送帶同步字的數(shù)據(jù),Master 按Tfixcnt接收,完成預(yù)同步的正式建立。正式建立后,Master 和Slaver 在規(guī)定的時(shí)隙內(nèi)收發(fā),在接收時(shí)按Tfixcnt時(shí)間作為數(shù)據(jù)的起始時(shí)間進(jìn)行數(shù)據(jù)接收和處理。
在同步建立以后,可以實(shí)現(xiàn)Master 和Slaver 按正常的收發(fā)時(shí)隙進(jìn)行有序通信。Slaver 與參考時(shí)鐘的Master 進(jìn)行同步。Master 和Slaver 使用獨(dú)立的時(shí)鐘系統(tǒng),由于溫度、調(diào)制解碼、數(shù)據(jù)處理等因素的影響,導(dǎo)致Master 和Slaver 在建立完同步一段時(shí)間后產(chǎn)生一定的偏差,從而導(dǎo)致收發(fā)數(shù)據(jù)時(shí)隙不對(duì)齊而產(chǎn)生失步。為保持長(zhǎng)期穩(wěn)定同步,需要建立一套有效的自適應(yīng)時(shí)隙補(bǔ)償策略,以保障時(shí)隙有效調(diào)整而保持穩(wěn)定同步。
晶振的波動(dòng)是引起失步的主要因素。按同步原理可知,失步后會(huì)直接引起在同步時(shí)約定的Tfixcnt位置接收不到正確的數(shù)據(jù),而會(huì)導(dǎo)致通信中斷。為實(shí)現(xiàn)自適應(yīng)同步補(bǔ)償,設(shè)定一個(gè)窗口時(shí)間Twindow,假設(shè)空口發(fā)送一位數(shù)據(jù)的時(shí)間為T(mén)bit,則一個(gè)補(bǔ)償窗口中能容忍的最大數(shù)位數(shù)Ntolerate與Twindow的關(guān)系為:
為了補(bǔ)償計(jì)算的方便,Ntolerate取大于1 的奇數(shù)。
同步建立后,Master 和Slaver 正常取到數(shù)據(jù)的起始時(shí)間為T(mén)fix0,但由于Master 和Slaver 受晶振頻飄等影響,Master 和Slaver 接收數(shù)據(jù)的起始時(shí)間Tfix出現(xiàn)左右偏移,需要進(jìn)行時(shí)間調(diào)整。自適應(yīng)時(shí)隙調(diào)整原理如圖3 所示。
圖3 自適應(yīng)同步模型
自適應(yīng)時(shí)間調(diào)整以Tbit為最小單位,設(shè)最大偏差為Nmd,則有:
設(shè)Slaver 接收時(shí)間偏差為T(mén)offset,則有:
自適應(yīng)時(shí)隙調(diào)整的策略如下:
(1)當(dāng)Toffset=0 時(shí),表示未產(chǎn)生偏差,不需要進(jìn)行時(shí)隙補(bǔ)償。
(2)當(dāng)|Toffset|<(Tmd×Tbit)時(shí),Slaver 的 偏差還在調(diào)整窗口以?xún)?nèi),不需要進(jìn)行時(shí)隙補(bǔ)償。
(3)當(dāng)|Toffset|=(Tmd×Tbit) 且Toffset<0 時(shí),Slaver的偏移到達(dá)了調(diào)整窗口左側(cè)邊界,需要進(jìn)行調(diào)整,定時(shí)器的定時(shí)時(shí)間調(diào)整為:
(4)當(dāng)|Toffset|=(Tmd×Tbit) 且Toffset>0 時(shí),Slaver的偏移到達(dá)了調(diào)整窗口右側(cè)邊界,需要進(jìn)行調(diào)整,定時(shí)器的定時(shí)時(shí)間調(diào)整為:
針對(duì)本文提出的基于相關(guān)度自適應(yīng)時(shí)隙同步策略,基于ADI 公司的ADF7030 芯片設(shè)計(jì)了一套適用于工業(yè)現(xiàn)場(chǎng)控制的無(wú)線傳輸系統(tǒng),用于驗(yàn)證同步策略的可行性。
同步策略硬件射頻部分采用2GFSK 調(diào)制,數(shù)據(jù)采用RS 前向糾錯(cuò)碼和信息加擾技術(shù),空口數(shù)據(jù)通過(guò)ADF7030 的CLK 和DATA 接入到LPC1754 中進(jìn)行數(shù)據(jù)的編解碼處理。LPC1754 通過(guò)SPI 接口對(duì)ADF7030 進(jìn)行配置,包括調(diào)制方式、空口速率、端口映射、發(fā)送功率、IF 和LNA 等射頻參數(shù)。硬件原理框圖如圖4 所示。
圖4 基于ADF7030 的硬件原理
Master 和Slaver 帶有獨(dú)立的時(shí)鐘系統(tǒng),支持?jǐn)?shù)據(jù)發(fā)送和接收,空口的發(fā)送和接收通過(guò)一個(gè)電子開(kāi)關(guān)進(jìn)行切換,電子開(kāi)關(guān)由LPC1754 的I/O 根據(jù)時(shí)隙同步要求進(jìn)行控制。
時(shí)隙同步系統(tǒng)有預(yù)同步PSYNC、同步SYNC、連接CONC 三種狀態(tài),構(gòu)成同步系統(tǒng)的狀態(tài)機(jī),狀態(tài)機(jī)的切換邏輯如圖5 所示。
圖5 時(shí)隙同步狀態(tài)機(jī)
PSYNC 為同步系統(tǒng)的初始狀態(tài),在接收到同步字后,從PSYNC 狀態(tài)切換到SYNC 狀態(tài),SYNC 握手成功則可以切換到CONC 狀態(tài)。CONC 狀態(tài)為連接成功的最終狀態(tài),若失步或同步握手失敗,會(huì)切換到PSYNC 狀態(tài)。CONC 狀態(tài)下不能切換到SYNC 狀態(tài)。
設(shè)置時(shí)隙為60 ms,Master 在完成初始化后,按正常時(shí)隙進(jìn)行數(shù)據(jù)的接收與發(fā)送。Master 采用定時(shí)器中斷對(duì)收發(fā)標(biāo)識(shí)進(jìn)行置位,約定0 表示發(fā)送數(shù)據(jù),1 表示接收數(shù)據(jù)。每產(chǎn)生一次定時(shí)中斷,標(biāo)識(shí)改變一次。時(shí)隙分配邏輯如圖6 所示。
圖6 時(shí)隙分配邏輯
Slaver 在初始狀態(tài)時(shí),定時(shí)器處于禁用狀態(tài),接收數(shù)據(jù)并計(jì)算相關(guān)度,根據(jù)相關(guān)度閾值,達(dá)到閾值后啟動(dòng)Slaver 定時(shí)器,按時(shí)隙發(fā)起預(yù)同步確認(rèn)并進(jìn)入同步狀態(tài)。此時(shí)Master 和Slaver 都按時(shí)隙進(jìn)行收發(fā)。Slaver 在啟動(dòng)定時(shí)器后,通過(guò)定時(shí)器中斷產(chǎn)生時(shí)隙標(biāo)識(shí),約定當(dāng)標(biāo)識(shí)為1 時(shí)表示發(fā)送數(shù)據(jù),標(biāo)識(shí)為0 時(shí)表示接收數(shù)據(jù)。在SYNC 階段進(jìn)行4 個(gè)時(shí)隙的同步確定后進(jìn)入連接狀態(tài)CONC,CONC 時(shí)Slaver 和Master 都通過(guò)定時(shí)器中斷按約定的時(shí)隙進(jìn)行數(shù)據(jù)收發(fā)。從而解決了Master 和Slaver 因時(shí)隙不同步問(wèn)題而導(dǎo)致通信沖突。在進(jìn)入SYNC 和CONC時(shí)隙后,Slaver 啟動(dòng)與Master 的自適應(yīng)同步補(bǔ)償調(diào)整,避免失步問(wèn)題出現(xiàn)。
同步系統(tǒng)的幀分為控制幀和數(shù)據(jù)幀兩類(lèi),由1位幀標(biāo)識(shí)進(jìn)行區(qū)分。在PSYNC 狀態(tài)和SYNC 狀態(tài)下傳輸?shù)氖强刂茙ㄓ? 標(biāo)識(shí)),在CONC 狀態(tài)下傳輸?shù)氖菙?shù)據(jù)幀(用0 標(biāo)識(shí))。
本系統(tǒng)設(shè)計(jì)的原始數(shù)據(jù)長(zhǎng)度為65 位,包括56位數(shù)據(jù)、8 位校驗(yàn)和1 位幀標(biāo)識(shí)。如圖7 所示,在PSYNC 和SYNC 階段,56 位數(shù)據(jù)中包含了32 位的同步字、16 位的系統(tǒng)ID 和8 位的序列種子。
圖7 時(shí)隙同步幀設(shè)計(jì)
在PSYNC 階段,65 位的原始數(shù)據(jù)進(jìn)行前向糾錯(cuò)編碼,采用RS(31,13)碼,通過(guò)編碼后的數(shù)據(jù)從65 位增加到155 位,由于程序按字節(jié)處理數(shù)據(jù),需要將155 位補(bǔ)齊到160 位,即20 字節(jié)的編碼數(shù)據(jù)??湛诎l(fā)送時(shí),為了能快速時(shí)鐘恢復(fù),按ADF7030 芯片手冊(cè),增加24 位01 交替的前導(dǎo)碼。為此,一個(gè)時(shí)隙需要發(fā)送或者接收的數(shù)據(jù)長(zhǎng)度為184 位,即23 個(gè)字節(jié)。
在預(yù)同步完成進(jìn)入SYNC 和CONC 狀態(tài)后,為保證數(shù)據(jù)安全,增加了擾碼。擾碼采用偽隨機(jī)序列,Slaver 根據(jù)存儲(chǔ)器中的ID 與運(yùn)行計(jì)算器相加取低8位作為種子,在PSYNC 階段的預(yù)同步確認(rèn)時(shí)發(fā)送給Master,并同步生成長(zhǎng)度為160 位的偽隨機(jī)序列。Master 在收到種子以后也同步生成偽隨機(jī)序列。為此在進(jìn)入SYNC 和CONC 階段,RS 編碼補(bǔ)齊后的數(shù)據(jù)采用偽隨機(jī)序列進(jìn)行加擾后再發(fā)送,對(duì)端則采用相同的偽隨機(jī)序列進(jìn)行解擾和解碼,得到原始數(shù)據(jù)。加解擾設(shè)計(jì)原理如圖8 所示。
Master 和Slaver 都依賴(lài)于定時(shí)器中斷產(chǎn)生時(shí)隙,在工程實(shí)現(xiàn)時(shí),需要將接收起始時(shí)間Tfixcnt換算成接收數(shù)據(jù)起始位置fixrevcnt。同步時(shí)Master 作為參考時(shí)鐘,Slaver 根據(jù)接收到的同步字的相關(guān)度進(jìn)行預(yù)同步定位,并根據(jù)同步定位的位置設(shè)置Slaver 的定時(shí)器值,實(shí)現(xiàn)與Master 的同步。在完成預(yù)同步以后,Master 和Slaver 已建立了同步的時(shí)隙,可以按時(shí)隙正常收發(fā)數(shù)據(jù),避免了通信沖突。Slaver 根據(jù)接收位置的偏差自適應(yīng)調(diào)整定時(shí)器值,以維持正常的同步時(shí)隙。
本文設(shè)計(jì)將最大的調(diào)節(jié)窗口Ntolerate設(shè)置為5,就是當(dāng)偏差為2 個(gè)位時(shí),即當(dāng)Nmd=2 時(shí),進(jìn)行一次時(shí)隙調(diào)整。本文使用的LPC1754 外設(shè)頻率為fpclk=24 000 000 Hz,Master 端定時(shí)器時(shí)間為:
設(shè)置ADF7030 的空口發(fā)送速度為Vradio=4 100 bit/s,則每發(fā)送1 位對(duì)應(yīng)的定時(shí)器值為:
根據(jù)發(fā)送空口速率與時(shí)隙可以計(jì)算得到一個(gè)時(shí)隙最多可以發(fā)送的數(shù)據(jù)為246 位。
通過(guò)對(duì)收發(fā)系統(tǒng)的調(diào)試,測(cè)得初始同步時(shí)接收位置fixrevcnt0=29。
Slaver 在接收到fixrevcnt0后,啟動(dòng)定時(shí)器,設(shè)Slaver 端第一次啟動(dòng)定時(shí)器的計(jì)數(shù)值為T(mén)0MR0st0,則有:
通過(guò)對(duì)Slaver 初始定時(shí)器值的調(diào)整,使Slaver與Master 建立同步關(guān)系。
隨著通信時(shí)間的推移,由于Master 和Slaver 時(shí)鐘系統(tǒng)的偏差,導(dǎo)致接收起始位置fixrevcnt與fixrevcnt0產(chǎn)生一個(gè)偏差。設(shè)Slaver端的位置偏差為Noffset,則有:
根據(jù)上節(jié)自適應(yīng)原理可知,當(dāng)且僅當(dāng)|Noffset|=2時(shí)需要進(jìn)行時(shí)隙補(bǔ)償,即調(diào)整Slaver定時(shí)器計(jì)算器值。
(1)當(dāng)Noffset>0 時(shí),Slaver 時(shí)隙相對(duì)Master 時(shí)隙超前了Nmd,即2 bit。此時(shí)Slaver 定時(shí)器修正為:
(2)當(dāng)Noffset<0 時(shí),Slaver 時(shí)隙相對(duì)Master 時(shí)隙滯后了Nmd,即2 bit。此時(shí)Slaver 定時(shí)器修正為:
使用ADF7030 芯片搭建同步系統(tǒng)測(cè)試環(huán)境對(duì)基于相關(guān)度的自適應(yīng)時(shí)隙同步策略進(jìn)行測(cè)試驗(yàn)證,評(píng)估相關(guān)度與同步建立速度和自適應(yīng)同步的有效性,測(cè)試環(huán)境的基本參數(shù)如表1 所示。
表1 環(huán)境參數(shù)配置
同步建立速度及失步率是時(shí)隙同步系統(tǒng)評(píng)估的一個(gè)重要指標(biāo)。基于ADF7030 的實(shí)物硬件環(huán)境,對(duì)CA-STS 同步策略的同步時(shí)間及失步率進(jìn)行評(píng)估。Master 端采用LPC1754 定時(shí)器統(tǒng)計(jì)Master 從發(fā)送第一幀到獲取預(yù)同步確認(rèn)所需要的時(shí)間,定義該時(shí)間為同步建立時(shí)間,即建立同步所需要的時(shí)間。在建立同步后,若1 分鐘內(nèi)快速斷開(kāi),則為同步失敗,測(cè)試過(guò)程中失敗次數(shù)與同步測(cè)試次數(shù)的比值稱(chēng)為失步率。根據(jù)同步建立時(shí)相關(guān)度的取值測(cè)試同步時(shí)間和失步率。每個(gè)相關(guān)度測(cè)試50 個(gè)點(diǎn),指定相關(guān)度下同步時(shí)間為50 個(gè)測(cè)試點(diǎn)的平均值。通過(guò)串口打印記錄數(shù)據(jù),借助Python 的Matplotlib 庫(kù)統(tǒng)計(jì)分析,得到圖9 所示的曲線。
圖9 相關(guān)度與同步建立時(shí)間及失步率評(píng)估
從曲線分析可知,建立同步時(shí)同步字的相關(guān)度越高,同步時(shí)間越短,失步率越低。從測(cè)試可知,當(dāng)相關(guān)度大于0.95 時(shí),同步可以在0.3 s 內(nèi)建立,失步率接近0。結(jié)合工程實(shí)際應(yīng)用經(jīng)驗(yàn),推薦在建立同步時(shí)同步字相關(guān)度取值大于或等于95%。
DMTS 提出了一種基于本地時(shí)鐘的較為簡(jiǎn)單的同步方法,本文在DMTS 的基礎(chǔ)上提出了一種基于相關(guān)度的自適應(yīng)同步的策略CA-STS,以解決DMTS 不能長(zhǎng)期維持同步問(wèn)題,為此CA-STS 自適應(yīng)同步的性能直接關(guān)系到策略的優(yōu)劣。本文先根據(jù)DMTS 的原理在基于ADF7030 的同步系統(tǒng)中實(shí)現(xiàn)了DMTS 算法并建立了同步。使用串口將起始位置fixrevcnt記錄下來(lái),通過(guò)Python 的Matplotlib 庫(kù)進(jìn)行了分析。
然后基于ADF7030 同步系統(tǒng)實(shí)現(xiàn)了CA-STS 策略,在建立同步后,測(cè)試了Ntolerate=5 時(shí)的自適應(yīng)同步性能,并通過(guò)串口記錄Master 和Slaver 各自取數(shù)的起始位置。通過(guò)Matplotlib 進(jìn)行分析,結(jié)果如圖10 所示。
圖10 自適應(yīng)同步曲線
測(cè)試表明,DMTS 算法能建立有效的時(shí)隙同步,并在建立初期保持一段時(shí)間的同步,但隨著時(shí)間的推移,Master 和Slaver 收數(shù)起始位置fixrevcnt離同步時(shí)的位置偏差越來(lái)越大,持續(xù)約500 個(gè)時(shí)隙后出現(xiàn)失步,Master 和Slaver 的通信受到影響而斷開(kāi)。CA-STS 同步策略由于引入了基于位的時(shí)隙補(bǔ)償自適應(yīng)同步機(jī)制,從測(cè)試結(jié)果可以看出,建立同步以后,Master 和Slaver 隨時(shí)間推移發(fā)生了偏差,當(dāng)fixrevcnt偏差為2 時(shí),Slaver 進(jìn)行了時(shí)隙補(bǔ)償,Master和Slaver 的采數(shù)位置自動(dòng)恢復(fù)到初始定位狀態(tài),保持了較好的同步。從測(cè)試的2 100 個(gè)時(shí)隙來(lái)看,CA-STS 同步策略可以自適應(yīng)地修正時(shí)鐘偏差,保持有效的同步。
為測(cè)試CA-STS 同步的持續(xù)性,修改狀態(tài)機(jī),在進(jìn)入CONC 狀態(tài)后,若出現(xiàn)失步斷開(kāi),進(jìn)入IDEL 狀態(tài)并通過(guò)串口打印出該狀態(tài),此時(shí)Master和Slaver 不再進(jìn)入PSYNC 狀態(tài)。連續(xù)測(cè)試72 h,未見(jiàn)Master 和Slaver 進(jìn)入IDEL 狀態(tài),串口無(wú)異常打印。
在工業(yè)現(xiàn)場(chǎng)及工程裝備的點(diǎn)對(duì)點(diǎn)無(wú)線控制中,TDMA 可以很好地解決無(wú)線信道接入沖突問(wèn)題,但必須建立時(shí)隙同步。本文在研究分析了基于無(wú)線傳感網(wǎng)的網(wǎng)絡(luò)同步算法后,提出了一種基于相關(guān)度的自適應(yīng)時(shí)隙同步策略CA-STS,并通過(guò)ADF7030芯片實(shí)現(xiàn)了該同步算法。工程實(shí)地測(cè)試表明,該CA-STS 時(shí)隙同步策略算法簡(jiǎn)單,有較快的同步建立速度(相關(guān)度大于95%時(shí),同步建立時(shí)間小于0.3 s)。通過(guò)自適應(yīng)時(shí)隙同步算法,在修正時(shí)間窗口可以有效地修正時(shí)隙偏移而保持穩(wěn)定的時(shí)隙同步(工程測(cè)試72 h,無(wú)失步),控制指令響應(yīng)時(shí)間小于100 ms。測(cè)試表明,CS-STS 同步策略適用于點(diǎn)對(duì)點(diǎn)工業(yè)控制場(chǎng)景,有較大的應(yīng)用價(jià)值。