關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 分布式數(shù)據(jù)采集系統(tǒng)中的時(shí)鐘同步

分布式數(shù)據(jù)采集系統(tǒng)中的時(shí)鐘同步

作者:重慶大學(xué) 王驥 張玲 時(shí)間:2008-07-14 來(lái)源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用 收藏

  引言

本文引用地址:http://m.butianyuan.cn/article/85655.htm

  隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,各種的網(wǎng)絡(luò)和局域網(wǎng)都得到了廣泛的應(yīng)用[1]。系統(tǒng)廣泛應(yīng)用于船舶、飛機(jī)等采集數(shù)據(jù)多、實(shí)時(shí)性要求較高的地方。同步采集是這類(lèi)系統(tǒng)的一個(gè)重要要求,的實(shí)時(shí)性、準(zhǔn)確性和系統(tǒng)的高效性都要求系統(tǒng)能進(jìn)行實(shí)時(shí)數(shù)據(jù)通信。因此,分布式數(shù)據(jù)采集系統(tǒng)中的一個(gè)關(guān)鍵技術(shù)就是實(shí)現(xiàn)數(shù)據(jù)的同步傳輸。

  由于產(chǎn)生時(shí)鐘的晶振具有頻率漂移的特性,故對(duì)于具有多個(gè)采集終端的分布式系統(tǒng),如果僅僅在系統(tǒng)啟動(dòng)時(shí)進(jìn)行一次同步,數(shù)據(jù)的同步傳輸將會(huì)隨著系統(tǒng)運(yùn)行時(shí)間的增長(zhǎng)而失步。因此時(shí)鐘的同步就是保證數(shù)據(jù)同步傳輸?shù)年P(guān)鍵所在。2002年提出的IEEE1588標(biāo)準(zhǔn)旨在解決網(wǎng)絡(luò)的問(wèn)題。它制定了將分散在測(cè)量和控制系統(tǒng)內(nèi)的分離節(jié)點(diǎn)上獨(dú)立運(yùn)行的時(shí)鐘,同步到一個(gè)高精度和高準(zhǔn)確度時(shí)鐘上的協(xié)議。

  由于分布式數(shù)據(jù)采集系統(tǒng)工作于局域網(wǎng)的環(huán)境中,于是借鑒IEEE1588標(biāo)準(zhǔn)中的思想,設(shè)計(jì)出一種針對(duì)基于局域網(wǎng)的分布式系統(tǒng)的的機(jī)制,成功地在分布式數(shù)據(jù)采集系統(tǒng)中實(shí)現(xiàn)了μs級(jí)的同步。

  1 原理及實(shí)現(xiàn)

  時(shí)鐘同步原理借鑒了IEEE1588協(xié)議中的同步原理。IEEE1588 定義了一個(gè)在工業(yè)自動(dòng)化系統(tǒng)中的精確同步時(shí)鐘協(xié)議(PTP協(xié)議),該協(xié)議與網(wǎng)絡(luò)交流、本地計(jì)算和分配對(duì)象有關(guān)。IEEE1588時(shí)鐘協(xié)議規(guī)定,在進(jìn)行時(shí)鐘同步時(shí),先由主設(shè)備通過(guò)多播形式發(fā)出時(shí)鐘同步報(bào)文,所有與主設(shè)備在同一個(gè)域中的設(shè)備都將收到該同步報(bào)文。從設(shè)備收到同步報(bào)文后,根據(jù)同步報(bào)文中的時(shí)間戳和主時(shí)鐘到從時(shí)鐘的線(xiàn)路延時(shí)計(jì)算出與主時(shí)鐘的偏差,對(duì)本地的時(shí)鐘進(jìn)行調(diào)整[2]。

  系統(tǒng)由各個(gè)單元的系統(tǒng)控制板(簡(jiǎn)稱(chēng)“系統(tǒng)板”)來(lái)完成同步的工作。同步模型與IEEE1588時(shí)鐘協(xié)議一致,采用主從結(jié)構(gòu)。主從單元采用相同頻率的晶振,此時(shí)時(shí)鐘同步的關(guān)鍵就是解決時(shí)鐘相位對(duì)準(zhǔn)問(wèn)題和時(shí)鐘漂移的問(wèn)題。

  系統(tǒng)中采用的時(shí)間同步算法,是借鑒IEEE1588的同步原理,主要是采用約定固定周期同步的算法。和IEEE1588同步算法一樣,同步過(guò)程分為兩個(gè)階段: 延遲測(cè)量階段和偏移測(cè)量階段。下面以一主一從模式為例介紹其原理。

  1.1 延遲測(cè)量

  延遲測(cè)量階段用來(lái)測(cè)量網(wǎng)絡(luò)傳輸造成的延遲時(shí)間[3]。定義一個(gè)延遲請(qǐng)求信息包(Delay Request Packet),簡(jiǎn)稱(chēng)“Delay_Req”。延遲測(cè)量示意圖如圖1所示。

圖1 延遲測(cè)量示意圖

  為了簡(jiǎn)化程序,采用固定的周期測(cè)量網(wǎng)絡(luò)延遲,一般系統(tǒng)每工作一個(gè)小時(shí)進(jìn)行一次測(cè)量。從屬時(shí)鐘TSd 時(shí)刻發(fā)出延遲請(qǐng)求信息包Delay_Req,主時(shí)鐘收到Delay_ Req 后再立刻返回一個(gè)延時(shí)響應(yīng)包delay_back發(fā)送給從屬時(shí)鐘,因此從屬時(shí)鐘就可以非常準(zhǔn)確地計(jì)算出網(wǎng)絡(luò)延時(shí):

TM2 →TS2∶Delay1 = TS2-Offset-TM2 TS3 →TM3∶Delay2 = TM3-(TS3 - Offset)

  其中的Offset為從時(shí)鐘與主時(shí)鐘之間的時(shí)間偏差。

  因?yàn)榫W(wǎng)絡(luò)延遲時(shí)間是對(duì)稱(chēng)相等的,所以:

Delay =(Delay1 + Delay2)/2=((TS2-TM2)+(TM3-TS3))/2

  需要說(shuō)明的是,在這個(gè)測(cè)量過(guò)程中,假設(shè)傳輸介質(zhì)是對(duì)稱(chēng)均勻的,且線(xiàn)路是對(duì)稱(chēng)的[4]。

  1.2 時(shí)鐘修正

  時(shí)鐘修正用來(lái)修正主時(shí)鐘和從屬時(shí)鐘的時(shí)間差。在這個(gè)時(shí)間修正過(guò)程中,IEEE1588中主時(shí)鐘周期性地發(fā)出一個(gè)確定的同步信息包(Sync) (一般為每2秒1次) ,它包含一個(gè)時(shí)間印章(time stamp),精確地描述了數(shù)據(jù)包的發(fā)出時(shí)刻[3]。本案采用的簡(jiǎn)單同步模式,主要就是約定了同步修正包的發(fā)出時(shí)刻,整秒時(shí)刻,系統(tǒng)會(huì)在整秒時(shí)刻不做其他工作,這樣就可以省掉IEEE1588中用于發(fā)送同步包預(yù)計(jì)發(fā)包時(shí)間的同步跟隨包。

  假設(shè)同步前主時(shí)鐘的時(shí)間為發(fā)出時(shí)鐘Tm1=2000 s,而從屬時(shí)鐘的接收時(shí)間為T(mén)s1=2001s。如果主從時(shí)鐘是同步的,則同步的接收時(shí)鐘是:Tm1+Delay=2 000+0.5=2 000.5。只需將時(shí)鐘調(diào)整為2000.5,即Ts′=Tm1+Delay

  簡(jiǎn)易時(shí)鐘同步的關(guān)鍵就在此。同步包內(nèi)可包含主端發(fā)出的時(shí)刻。從端收到后,即可與測(cè)得的Delay相加為自己的該時(shí)刻時(shí)鐘。

  這里要說(shuō)明的是:

 ?、?上式中的Delay 就是主時(shí)鐘與從屬時(shí)鐘之間的傳輸延遲時(shí)間,從上面的延遲測(cè)量階段得到。

 ?、?如果收到的同步包信息出錯(cuò),從單元可以根據(jù)自己的時(shí)刻,依據(jù)臨近取整原則推知主端發(fā)出的整秒時(shí)刻時(shí)間,與接收包進(jìn)行對(duì)比。因?yàn)闀r(shí)間偏移一般都在μs級(jí),如果誤差太大,則舍棄該包。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉