《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 利用IEEE 1588和Blackfin嵌入式處理器實(shí)現(xiàn)設(shè)備時(shí)鐘同步
利用IEEE 1588和Blackfin嵌入式處理器實(shí)現(xiàn)設(shè)備時(shí)鐘同步
中電網(wǎng)
摘要: 本文介紹原版IEEE1588-2002標(biāo)準(zhǔn)以及更新版本IEEE1588-2008中的改進(jìn)內(nèi)容,。由于IEEE1588在一些目標(biāo)應(yīng)用中越來(lái)越重要,,因此ADSP-BF518Blackfin®嵌入式處理器中也集成專(zhuān)用硬件來(lái)支持IEEE1588。本文將概要介紹其功能,,并通過(guò)一個(gè)示例來(lái)展示利用ADSP-BF518處理器解決方案獲得的時(shí)鐘同步性能結(jié)果
Abstract:
Key words :

 

簡(jiǎn)介

IEEE 1588標(biāo)準(zhǔn)誕生于2002年,,主要定義網(wǎng)絡(luò)分布式時(shí)鐘的同步協(xié)議。測(cè)試與測(cè)量,、電信和多媒體流處理等許多不同應(yīng)用,,都開(kāi)始首選這種時(shí)鐘同步方法。這種標(biāo)準(zhǔn)化時(shí)鐘同步法成本效益高,,支持異構(gòu)系統(tǒng),,并可提供納秒級(jí)同步精度。

本文介紹原版IEEE 1588-2002標(biāo)準(zhǔn)以及更新版本IEEE 1588-2008中的改進(jìn)內(nèi)容,。由于IEEE 1588在一些目標(biāo)應(yīng)用中越來(lái)越重要,,因此ADSP-BF518 Blackfin嵌入式處理器中也集成專(zhuān)用硬件來(lái)支持IEEE 1588。本文將概要介紹其功能,,并通過(guò)一個(gè)示例來(lái)展示利用ADSP-BF518處理器解決方案獲得的時(shí)鐘同步性能結(jié)果,。

現(xiàn)在幾點(diǎn)了?

大多數(shù)系統(tǒng)都需要利用本振來(lái)維護(hù)自己的時(shí)間概念,。圖1顯示硬件和軟件如何組合,,在系統(tǒng)內(nèi)產(chǎn)生時(shí)間信息。

本地計(jì)時(shí)

圖1. 本地計(jì)時(shí)

系統(tǒng)內(nèi)的硬件和軟件資源均可使用此時(shí)間信息。對(duì)于硬件,,振蕩器時(shí)鐘會(huì)產(chǎn)生一個(gè)或多個(gè)物理時(shí)鐘信號(hào)(時(shí)鐘輸出),,并可利用這些時(shí)鐘信號(hào)驅(qū)動(dòng)或觸發(fā)系統(tǒng)的其它部分。軟件中維護(hù)的時(shí)間通常稱(chēng)為“系統(tǒng)時(shí)間”,。系統(tǒng)時(shí)間可以用時(shí)鐘脈沖數(shù)或秒/納秒的形式表示,。系統(tǒng)軟件利用振蕩器時(shí)鐘脈沖數(shù)及其頻率信息得出時(shí)間,并提供“應(yīng)用程序編程接口”(API)函數(shù),,軟件的其它部分可以使用這些函數(shù)檢索并設(shè)置時(shí)間,。如果需要絕對(duì)時(shí)間,則所提供的時(shí)間將與預(yù)定義時(shí)間點(diǎn),,即基準(zhǔn)時(shí)間點(diǎn)相關(guān)聯(lián),。

時(shí)鐘同步

許多應(yīng)用要求兩臺(tái)獨(dú)立的設(shè)備以同步方式工作。如果每臺(tái)設(shè)備僅依靠自己的振蕩器,,則各振蕩器的特性與工作條件差異將會(huì)限制時(shí)鐘同步工作的能力,。一些簡(jiǎn)單可行的解決方案可以克服這些限制,包括:

●所有設(shè)備共用一個(gè)物理振蕩器,。這種方法僅對(duì)距離很近的分布式系統(tǒng)可行,;高頻時(shí)鐘信號(hào)無(wú)法實(shí)現(xiàn)長(zhǎng)距離可靠傳輸。

●所有設(shè)備均使用特性幾乎完全相同的振蕩器,。由于很難獲得幾乎完全一樣的振蕩器,,并確保性能不隨時(shí)間飄移,因此這種方法不可行,。更重要的是,,各振蕩器的工作條件并不相同。

●如果所有設(shè)備均通過(guò)一個(gè)通信網(wǎng)絡(luò)(例如以太網(wǎng))互連,,則這些設(shè)備可以通過(guò)網(wǎng)絡(luò)交換時(shí)間消息,,根據(jù)單個(gè)“主”時(shí)鐘動(dòng)態(tài)調(diào)整各自的時(shí)鐘。利用傳統(tǒng)的時(shí)間同步協(xié)議——“網(wǎng)絡(luò)時(shí)間協(xié)議”(NTP),,系統(tǒng)中的每臺(tái)設(shè)備根據(jù)它從NTP時(shí)間服務(wù)器獲取的時(shí)間信息調(diào)整其時(shí)鐘,。然而,該協(xié)議只能實(shí)現(xiàn)毫秒級(jí)同步精度,。

IEEE 1588定義了一個(gè)新協(xié)議,,能夠?qū)崿F(xiàn)納秒級(jí)同步精度。下面討論該標(biāo)準(zhǔn)如何實(shí)現(xiàn)這種水平的時(shí)鐘同步,。

IEEE 1588有何作用

IEEE 1588標(biāo)準(zhǔn)定義了一種時(shí)間同步協(xié)議,,適用于地理位置分散但通過(guò)某種通信技術(shù)(例如以太網(wǎng))互連的設(shè)備。設(shè)備之間通過(guò)交換時(shí)序消息,,從而保持相同的絕對(duì)系統(tǒng)時(shí)間(用秒和納秒表示),。

要實(shí)現(xiàn)此目標(biāo),,一個(gè)直觀的方法是將一臺(tái)具有“最佳”(最精確)時(shí)鐘的設(shè)備指定為“主時(shí)鐘”設(shè)備,讓它向其它設(shè)備廣播其時(shí)間,。其它設(shè)備將會(huì)調(diào)整各自的時(shí)間,,與主時(shí)鐘所發(fā)送的時(shí)間保持一致。不過(guò),,這種解決方案也有幾點(diǎn)不足:

主時(shí)鐘設(shè)備無(wú)法以極短的間隔廣播時(shí)間,,因此“從”時(shí)鐘設(shè)備必須使用自己獨(dú)立的“低劣”振蕩器,在主時(shí)鐘設(shè)備的兩次廣播之間插入時(shí)間點(diǎn),。這將導(dǎo)致主時(shí)鐘更新周期之間的同步精度下降,。

廣播路徑難免存在延遲,延遲幅度取決于通信技術(shù),,例如物理信號(hào)沿導(dǎo)線從一臺(tái)設(shè)備傳輸至另一臺(tái)設(shè)備所需的時(shí)間,。這種延遲會(huì)進(jìn)一步擴(kuò)大主時(shí)鐘與各從時(shí)鐘之間的失調(diào)。

主時(shí)鐘設(shè)備與各從時(shí)鐘設(shè)備之間的廣播路徑存在差異,,這會(huì)進(jìn)一步降低各從時(shí)鐘設(shè)備之間的同步精度,。

IEEE 1588要求通過(guò)測(cè)量路徑延遲,解決第二個(gè)和第三個(gè)問(wèn)題,。它還要求待調(diào)整的從時(shí)鐘與主時(shí)鐘保持步調(diào)一致,,從而減輕第一個(gè)問(wèn)題。如果可能,,使用更小的廣播間隔和更高質(zhì)量的振蕩器,,可以進(jìn)一步減輕第一個(gè)問(wèn)題,。

IEEE 1588如何測(cè)量通信延遲

IEEE 1588-2002定義了四種消息Sync,、Followup、DelayReq和DelayResp,,用來(lái)測(cè)量前向(主時(shí)鐘至從時(shí)鐘)和后向(從時(shí)鐘至主時(shí)鐘)路徑的通信延遲,。更新版本IEEE 1588-2008還提供其它機(jī)制,新增三種消息:PdelayReq,、PdelayResp和 PdelayRespFollowup來(lái)測(cè)量“點(diǎn)對(duì)點(diǎn)延遲”,。

這些消息中,Sync,、DelayReq,、PdelayReq和PdelayResp是所謂“事件”消息,在離開(kāi)和到達(dá)一臺(tái)設(shè)備時(shí)必須加上“時(shí)間戳”(記錄本地時(shí)間),。給分組加上時(shí)間戳的方法有兩種:

1.消息由軟件處理時(shí)出現(xiàn)軟件時(shí)間戳,。通常出現(xiàn)在消息的接收/發(fā)送“中斷服務(wù)程序”(ISR)中,該時(shí)間戳為系統(tǒng)時(shí)間的當(dāng)前值,。

2.消息實(shí)際到達(dá)或離開(kāi)設(shè)備時(shí)出現(xiàn)硬件時(shí)間戳,。該時(shí)間戳操作由硬件執(zhí)行,硬件會(huì)維護(hù)自己的連續(xù)時(shí)間信息。

兩種時(shí)間戳方法均為IEEE 1588所接受,,但硬件時(shí)間戳的精度明顯更高,,如下文所述。

主時(shí)鐘設(shè)備到從時(shí)鐘設(shè)備的延遲

消息Sync和Followup由主時(shí)鐘設(shè)備發(fā)送,,從時(shí)鐘設(shè)備負(fù)責(zé)接收這些消息,,并計(jì)算主時(shí)鐘設(shè)備到從時(shí)鐘設(shè)備的通信路徑延遲。

圖2中,,在時(shí)間點(diǎn)Tm1,,主時(shí)鐘設(shè)備軟件讀取當(dāng)前本地系統(tǒng)時(shí)間(Tm1,軟件時(shí)間戳),,將其插入Sync消息中,,并送出該消息。該消息在稍后的時(shí)間點(diǎn)Tm1'離開(kāi)主時(shí)鐘設(shè)備,,該時(shí)間點(diǎn)為硬件時(shí)間戳,。該消息在時(shí)間點(diǎn)Ts1'(從時(shí)鐘設(shè)備本地時(shí)間)到達(dá)從時(shí)鐘硬件,從時(shí)鐘設(shè)備軟件在稍后的時(shí)間點(diǎn)Ts1收到該消息,。該軟件將讀取硬件時(shí)間戳以獲得Ts1',。如果沒(méi)有通信延遲,Ts1'應(yīng)等于(Tm1' + Tms),,其中Tms為主時(shí)鐘與從時(shí)鐘之間的時(shí)間差,。該協(xié)議的最終目標(biāo)是補(bǔ)償此時(shí)間差。

測(cè)量主時(shí)鐘設(shè)備與從時(shí)鐘設(shè)備之間的通信延遲

 圖2. 測(cè)量主時(shí)鐘設(shè)備與從時(shí)鐘設(shè)備之間的通信延遲

發(fā)送Sync消息之后,,主時(shí)鐘設(shè)備軟件通過(guò)時(shí)間戳單元讀取Sync消息的離開(kāi)時(shí)間Tm1',,將其插入Followup消息中,然后在時(shí)間點(diǎn)Tm2發(fā)送該消息,。從時(shí)鐘設(shè)備軟件在時(shí)間點(diǎn)Ts2收到此消息,。此時(shí),從時(shí)鐘設(shè)備軟件有兩個(gè)時(shí)間:Ts1'(Sync到達(dá)時(shí)間)和Tm1'(Sync離開(kāi)時(shí)間),。主從路徑延遲Tmsd由公式1確定,。

(1)

從時(shí)鐘設(shè)備到主時(shí)鐘設(shè)備的延遲

從時(shí)鐘設(shè)備發(fā)送DelayReq消息,主時(shí)鐘設(shè)備予以響應(yīng)發(fā)送DelayResp消息,。利用這些消息,,從時(shí)鐘設(shè)備可以計(jì)算從時(shí)鐘設(shè)備到主時(shí)鐘設(shè)備的通信路徑延遲。

在時(shí)間點(diǎn)Ts3(圖3),,從時(shí)鐘設(shè)備軟件讀取當(dāng)前本地系統(tǒng)時(shí)間(Ts3),,將其插入DelayReq消息中,并送出該消息,。

 測(cè)量從主通信延遲

圖3. 測(cè)量從主通信延遲

DelayReq消息在稍后的時(shí)間點(diǎn)Tm3'到達(dá)主時(shí)鐘設(shè)備,,由主時(shí)鐘設(shè)備軟件在時(shí)間點(diǎn)Tm3處理,。然后,該軟件讀取時(shí)間戳以獲取到達(dá)時(shí)間Tm3',,將其插入DelayResp消息中,,并在時(shí)間點(diǎn)Tm4發(fā)送至從時(shí)鐘設(shè)備。當(dāng)從時(shí)鐘設(shè)備軟件在時(shí)間點(diǎn)Ts4收到DelayResp消息時(shí),,它可以提取時(shí)間Tm3',,并通過(guò)公式2計(jì)算從主通信延遲Tsmd。

(2)

公式1和公式2中均有一個(gè)未知變量,,即主從時(shí)間差Tms,,因此無(wú)法單獨(dú)求得Tmsd或Tsmd。但是,,如果我們合理地假設(shè)通信路徑是對(duì)稱(chēng)的,,即

(3)

——這是IEEE 1588成立的關(guān)鍵假設(shè)——那么,將公式1與公式2相加可以得出:

 (4)

由于從時(shí)鐘設(shè)備尋求與主時(shí)鐘設(shè)備同步,,因此所有這些計(jì)算均由這些設(shè)備執(zhí)行,。從時(shí)鐘設(shè)備從主時(shí)鐘設(shè)備的Followup消息獲得Tm1',從其Rx(接收)時(shí)間戳獲得Ts1',,從其Tx(發(fā)送)時(shí)間戳獲得Ts3',,并通過(guò)主時(shí)鐘設(shè)備的DelayResp消息獲得Tm3'。

如何計(jì)算從時(shí)鐘與主時(shí)鐘的時(shí)間差

一旦獲得通信路徑延遲Td,,便可利用公式1或公式2輕松計(jì)算從時(shí)鐘與主時(shí)鐘的時(shí)間差,,如公式5和公式6所示。

 (5)

 (6)

如何調(diào)整從時(shí)鐘設(shè)備的時(shí)間

知道與主時(shí)鐘的時(shí)間差之后,,各從時(shí)鐘需要調(diào)整自己的本地時(shí)間,,與主時(shí)鐘保持一致。該任務(wù)包括兩方面,。第一,,從時(shí)鐘設(shè)備需要加上時(shí)間差以調(diào)整絕對(duì)時(shí)間,,使其時(shí)間在此刻與主時(shí)鐘時(shí)間完全一致,。第二,從時(shí)鐘設(shè)備需要調(diào)整各自的時(shí)鐘頻率,,與主時(shí)鐘的頻率保持一致,。我們不能單靠絕對(duì)時(shí)間,因?yàn)闀r(shí)間差僅在一定期間內(nèi)應(yīng)用,,可能是正值,,也可能是負(fù)值;調(diào)整的結(jié)果是從時(shí)鐘時(shí)間向前跳躍或向后倒退,。因此,,在實(shí)際操作中,,調(diào)整分兩步執(zhí)行:

1.如果時(shí)間差過(guò)大,例如1秒以上,,則應(yīng)用絕對(duì)時(shí)間調(diào)整,。

2.I如果時(shí)間差較小,則使從時(shí)鐘的頻率改變某一百分比,。

一般而言,,該系統(tǒng)會(huì)變成一個(gè)控制環(huán)路,其中主時(shí)鐘時(shí)間是參考命令,,而從時(shí)鐘時(shí)間是跟蹤主時(shí)鐘時(shí)間的輸出,,二者之差驅(qū)動(dòng)可調(diào)整時(shí)鐘??梢允褂肞ID控制來(lái)實(shí)現(xiàn)特定跟蹤性能,,這是許多IEEE 1588實(shí)施方案常用的方法。圖4顯示了這種控制環(huán)路,。

IEEE 1588控制環(huán)路

圖4. IEEE 1588控制環(huán)路

點(diǎn)對(duì)點(diǎn)延遲

修訂版IEEE 1588-2008引入了新的機(jī)制來(lái)測(cè)量路徑延遲,,稱(chēng)為“點(diǎn)對(duì)點(diǎn)”(P2P)延遲。與之相比,,上文討論的主從機(jī)制則是“端對(duì)端”(E2E)延遲,。在支持IEEE 1588-2008的網(wǎng)絡(luò)中,主時(shí)鐘設(shè)備可以與從時(shí)鐘設(shè)備直接相連,,或者隔幾個(gè)中繼站(級(jí))相連,。E2E延遲實(shí)際上是主時(shí)鐘設(shè)備到從時(shí)鐘設(shè)備的“總”延遲,包括其間的所有中繼站在內(nèi),。但是,,P2P延遲則僅限于兩個(gè)直接相連的設(shè)備。通信路徑的總延遲等于所有中繼站的P2P延遲之和,。從確保路徑對(duì)稱(chēng)性的角度看,,P2P機(jī)制可提供更高的精度。

如上文所述,,IEEE 1588-2008新增了PdelayReq,、PdelayResp和PdelayRespFollowup三種消息來(lái)測(cè)量P2P延遲。這些消息的工作方式與上文所述方式相似,,詳情請(qǐng)看參考文獻(xiàn)3,。

影響同步性能的因素

精心設(shè)計(jì)的IEEE 1588設(shè)備能夠?qū)崿F(xiàn)高度精確的時(shí)鐘同步,但也必須了解直接影響同步性能的主要因素,,其中包括:

1.路徑延遲:如上文所述,,IEEE 1588的路徑延遲測(cè)量假設(shè)通信路徑延遲是對(duì)稱(chēng)的,即前向路徑的傳輸延遲與后向傳輸延遲相同,。此外,,在延遲測(cè)量期間,,延遲不應(yīng)變化。測(cè)量期間延遲變化會(huì)導(dǎo)致不對(duì)稱(chēng)和延遲抖動(dòng),,這將直接影響同步精度,。雖然無(wú)法在IEEE 1588設(shè)備的邊界之外控制延遲對(duì)稱(chēng)性和抖動(dòng),但如果測(cè)量基于硬件時(shí)間戳,,則可在設(shè)備內(nèi)改善路徑對(duì)稱(chēng)性和抖動(dòng),。由于中斷延時(shí)、環(huán)境切換和線程調(diào)度,,軟件時(shí)間戳?xí)?dǎo)致明顯的抖動(dòng),,而硬件時(shí)間戳則不存在這一問(wèn)題。

2.時(shí)鐘的漂移和抖動(dòng)特性:主時(shí)鐘的頻率和相位代表跟蹤控制系統(tǒng)的輸入,,從時(shí)鐘則是控制對(duì)象,。主時(shí)鐘的任何時(shí)變行為都會(huì)擾動(dòng)該控制系統(tǒng),導(dǎo)致穩(wěn)態(tài)和瞬態(tài)兩種誤差,。因此,,時(shí)鐘的漂移和抖動(dòng)越低,則同步精度越高,。

3.控制法則:從時(shí)鐘調(diào)整如何校正從時(shí)鐘設(shè)備的時(shí)間誤差取決于控制方法,。控制法則參數(shù)包括建立時(shí)間,、過(guò)沖和穩(wěn)態(tài)誤差,,都將直接影響時(shí)鐘同步性能。

4.時(shí)鐘分辨率:如圖1所示,,本地時(shí)間的分辨率由時(shí)鐘頻率決定,;最小時(shí)間增量為時(shí)鐘信號(hào)的一個(gè)周期。IEEE 1588-2002支持1 ns的時(shí)間分辨率,,IEEE 1588-2008則支持2–16 ns的時(shí)間分辨率,。216 (!) GHz(甚至1 GHz)的時(shí)鐘是不現(xiàn)實(shí)的。本地時(shí)鐘的量化會(huì)影響本地時(shí)間測(cè)量和控制的精度,。

5.Sync消息的發(fā)送周期:從時(shí)鐘的更新頻率最終會(huì)影響同步精度,。因?yàn)闀r(shí)間誤差是從時(shí)鐘頻率誤差的整體累積值,所以發(fā)送周期越長(zhǎng),,下一個(gè)Sync所觀察到的時(shí)間誤差一般會(huì)越大,。

6.延遲測(cè)量的頻率:以預(yù)期相鄰采樣點(diǎn)之間延遲沒(méi)有明顯變化的間隔時(shí)間,定期執(zhí)行延遲測(cè)量,。如果IEEE 1588網(wǎng)絡(luò)的延遲變化較大,則增加延遲測(cè)量頻率可以改善時(shí)鐘同步性能,。

哪個(gè)是主時(shí)鐘,?

在考慮如何精確確定主時(shí)鐘設(shè)備與從時(shí)鐘設(shè)備之間的時(shí)間差之后,,下一個(gè)相關(guān)問(wèn)題是:在成百上千臺(tái)互連設(shè)備中,如何確定哪一臺(tái)設(shè)備充當(dāng)主時(shí)鐘,。

IEEE 1588定義了一種稱(chēng)為“最佳主時(shí)鐘”(BMC)算法的方法,,用于選擇主時(shí)鐘設(shè)備。這種方法要求IEEE 1588網(wǎng)絡(luò)的每臺(tái)設(shè)備均提供一個(gè)數(shù)據(jù)集,,描述其本地時(shí)鐘的性質(zhì),、質(zhì)量、穩(wěn)定性,、唯一識(shí)別符和首選設(shè)置,。當(dāng)一臺(tái)設(shè)備加入IEEE 1588網(wǎng)絡(luò)時(shí),它會(huì)廣播其時(shí)鐘的數(shù)據(jù)集,,并接收所有其它設(shè)備的數(shù)據(jù)集,。利用所有參與設(shè)備的數(shù)據(jù)集,每臺(tái)設(shè)備均運(yùn)行同一BMC算法,,以確定主時(shí)鐘及其自己的未來(lái)狀態(tài)(主時(shí)鐘或從時(shí)鐘),。由于所有設(shè)備均采用同樣的數(shù)據(jù)獨(dú)立執(zhí)行同一算法,因此結(jié)論將會(huì)相同,,設(shè)備之間不需要進(jìn)行任何協(xié)商,。有關(guān)BMC算法的更多詳細(xì)信息,請(qǐng)看參考文獻(xiàn)2和3,。

ADSP-BF518處理器支持IEEE 1588

ADI公司Blackfin DSP系列最近新增一款產(chǎn)品:ADSP-BF518處理器,。像前款產(chǎn)品ADSP-BF537,4一樣,該處理器內(nèi)置“以太網(wǎng)媒體訪問(wèn)控制器”(EMAC)模塊,。它還具有TSYNC模塊,,進(jìn)一步擴(kuò)展了支持IEEE 1588標(biāo)準(zhǔn)EMAC功能的能力;還提供其它額外特性,,可支持以太網(wǎng)的各種IEEE 1588應(yīng)用,。圖5顯示了TSYNC模塊的框圖。 ADSP-BF51x Blackfin處理器硬件參考提供了更多信息,。

ADSP-BF518處理器TSYNC模塊的框圖

圖5. ADSP-BF518處理器TSYNC模塊的框圖

分組檢測(cè)

ADSP-BF518處理器可以檢測(cè)IEEE 1588的所有事件消息,,包括送入和送出的分組,并為其提供硬件時(shí)間戳,。因?yàn)槭录r(shí)間戳的精度及其提取位置會(huì)影響路徑延遲的對(duì)稱(chēng)性和穩(wěn)定性要求,,所以IEEE 1588系統(tǒng)的精度在很大程度上取決于這二者。ADSP-BF518的TSYNC模塊持續(xù)監(jiān)控MAC控制器與以太網(wǎng)“物理接口收發(fā)器”(PHY)之間的硬件接口,,即“媒體獨(dú)立接口”(MII),,并且只要檢測(cè)到事件消息,就會(huì)產(chǎn)生硬件時(shí)間戳,,這一功能可提高ADSP-BF518的同步精度,。

事件消息檢測(cè)功能是可編程的,,基本配置有兩種:支持IEEE 1588-2002(默認(rèn)狀態(tài))或支持IEEE 1588-2008。此外,,這種可編程能力還支持將來(lái)版本的IEEE 1588,,以及其它要求時(shí)間戳的一般協(xié)議,包括配置為給進(jìn)出處理器的每個(gè)以太網(wǎng)分組加上時(shí)間戳,。

靈活的時(shí)鐘源

本地時(shí)鐘的屬性對(duì)于IEEE 1588系統(tǒng)的性能很重要,。為了滿(mǎn)足各種不同應(yīng)用的要求,ADSP-BF518處理器可提供三種本地時(shí)鐘源選項(xiàng):系統(tǒng)時(shí)鐘,、外部時(shí)鐘或以太網(wǎng)時(shí)鐘,。如果應(yīng)用具有特定時(shí)鐘要求,則可以選擇“外部時(shí)鐘”,,并提供定制時(shí)鐘源,。如果主時(shí)鐘設(shè)備與從時(shí)鐘設(shè)備“背靠背”連接,由于“以太網(wǎng)時(shí)鐘”來(lái)自以太網(wǎng)線路,,而且兩臺(tái)設(shè)備采用同一時(shí)鐘工作,,因此該時(shí)鐘選項(xiàng)可以提供良好的精度。一般應(yīng)用可以選擇處理器的“系統(tǒng)時(shí)鐘”作為時(shí)鐘源,。

所選源時(shí)鐘也由TSYNC模塊驅(qū)動(dòng),,通過(guò)特定引腳Clockout作為處理器輸出,系統(tǒng)的其它部分可利用該輸出提供本地時(shí)間信息,。

PPS輸出

“每秒脈沖”(PPS)信號(hào)是時(shí)間信息的物理表示,。它名義上是一個(gè)1-Hz信號(hào),在每個(gè)1秒轉(zhuǎn)換時(shí)間發(fā)出一個(gè)脈沖,。它可用來(lái)控制本地設(shè)備,,或者在發(fā)生網(wǎng)絡(luò)故障時(shí)提供輔助時(shí)間通道。它也可以用于測(cè)試,。兩臺(tái)設(shè)備的PPS信號(hào)之間的相位差是二者時(shí)間偏移的物理量度,。

ADSP-BF518處理器提供靈活的PPS輸出。它利用可編程“開(kāi)始時(shí)間”(PPS_ST)和周期(PPS_P)產(chǎn)生一個(gè)在時(shí)間(PPS_ST + n × PPS_P)發(fā)出脈沖的信號(hào),,其中n = 1, 2, 3…,。基本用法是將PPS_P設(shè)置為1秒,,并將PPS_ST設(shè)置為用秒數(shù)表示的將來(lái)任一時(shí)刻,,從而產(chǎn)生PPS信號(hào)。參考基本用法,,可以利用這種PPS輸出功能產(chǎn)生具有可編程頻率和開(kāi)始時(shí)間的周期性信號(hào),。

輔助快照

一些應(yīng)用可能需要按照標(biāo)志信號(hào)切換指示,給某一事件加上時(shí)間戳。ADSP-BF518的TSYNC模塊通過(guò)輔助“快照”功能,,使用一個(gè)專(zhuān)用引腳來(lái)接收外部標(biāo)志,,以便實(shí)現(xiàn)這種請(qǐng)求,。切換標(biāo)志將觸發(fā)該模塊捕捉時(shí)間戳寄存器中的當(dāng)前本地時(shí)間,,供軟件訪問(wèn)。

報(bào)警

如果應(yīng)用需在特定時(shí)間執(zhí)行一項(xiàng)任務(wù),,則可以用TSYNC模塊的“報(bào)警”功能,。這項(xiàng)功能可以設(shè)置本地絕對(duì)時(shí)間,到達(dá)該時(shí)間時(shí),,就會(huì)觸發(fā)處理器中斷,。然后,軟件便可利用中斷執(zhí)行任務(wù),。

可調(diào)時(shí)鐘

TSYNC模塊的可調(diào)時(shí)鐘是一種“基于加數(shù)”的時(shí)鐘,。如圖6所示,它獲得一個(gè)固定輸入時(shí)鐘信號(hào),,并輸出該輸入的“盜取脈沖”版本信號(hào):對(duì)于每個(gè)輸入時(shí)鐘,,“加數(shù)”的值增加到累加器中,并且每次累加器溢出時(shí),,進(jìn)位位就會(huì)驅(qū)動(dòng)“本地時(shí)間計(jì)數(shù)器”,,從而產(chǎn)生以脈沖計(jì)數(shù)值表示的本地時(shí)間。更改加數(shù)可以調(diào)整本地時(shí)鐘的頻率,,因?yàn)榧訑?shù)決定累加器溢出的頻率,,從而決定本地時(shí)間計(jì)數(shù)器遞增的頻率。如果輸入時(shí)鐘的頻率為Fin,,且加數(shù)的值為A,,則本地時(shí)鐘頻率為:

(7)

基于加數(shù)的可調(diào)時(shí)鐘

圖6. 基于加數(shù)的可調(diào)時(shí)鐘

采用ADSP-BF518處理器的IEEE 1588實(shí)施方案

ADSP-BF518處理器上構(gòu)建了一個(gè)完整的IEEE 1588-2008兼容系統(tǒng),如圖7所示,。

采用ADSP-BF518的IEEE 1588實(shí)施方案

圖7. 采用ADSP-BF518的IEEE 1588實(shí)施方案

處理器的TSYNC模塊檢測(cè)送入和送出的IEEE 1588消息,,并通過(guò)硬件給事件消息加上時(shí)間戳。由IXXAT (IXXAT Automation GmbH)提供的IEEE 1588協(xié)議棧軟件可實(shí)現(xiàn)標(biāo)準(zhǔn)所要求的消息交換協(xié)議,。它利用TSYNC驅(qū)動(dòng)程序讀取,、寫(xiě)入并調(diào)整TSYNC時(shí)鐘,并使用MAC控制器驅(qū)動(dòng)程序在以太網(wǎng)MAC層(開(kāi)放系統(tǒng)互連模型的第二層)發(fā)送和接收消息,。它還可實(shí)現(xiàn)P2P延遲測(cè)量的控制法則和過(guò)濾,。以太網(wǎng)PHY選擇具有低抖動(dòng)延遲特性的National Semiconductor DP83848 。為簡(jiǎn)明起見(jiàn),,TSYNC模塊時(shí)鐘源選擇處理器的系統(tǒng)時(shí)鐘(80 MHz),。

ADSP-BF518上IEEE 1588系統(tǒng)的從時(shí)鐘誤差直方圖

圖8. ADSP-BF518上IEEE 1588系統(tǒng)的從時(shí)鐘誤差直方圖

圖8是兩個(gè)完全相同的ADSP-BF518 IEEE 1588系統(tǒng)之間的測(cè)量誤差直方圖,由此可看出該器件的時(shí)鐘同步性能。在約1700秒的時(shí)間內(nèi)共進(jìn)行了6938次測(cè)量,。最終平均誤差為0.015 ns,,標(biāo)準(zhǔn)差為12.96 ns。該測(cè)試所用的Sync消息間隔為0.25秒,。

結(jié)論

IEEE 1588標(biāo)準(zhǔn)提供了一種高精度,、低成本的分布式時(shí)鐘同步方法。雖然IEEE 1588并未明文要求硬件支持,,但硬件輔助消息檢測(cè)和時(shí)間戳對(duì)于實(shí)現(xiàn)極高同步精度至關(guān)重要,。ADSP-BF518為IEEE 1588-2002和IEEE 1588-2008提供硬件支持,包括各種應(yīng)用的支持功能,。利用ADSP-BF518處理器和IXXAT IEEE 1588-2008協(xié)議軟件實(shí)施IEEE 1588技術(shù),,已證明可以實(shí)現(xiàn)高精度時(shí)鐘同步。

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。