【導(dǎo)讀】IEEE 1588標(biāo)準(zhǔn)誕生于2002 年,主要定義網(wǎng)絡(luò)分布式時(shí)鐘的同步協(xié)議。測(cè)試與測(cè)量、電信和多媒體流處理等許多不同應(yīng)用,都開始首選這種時(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)用中越來越重要,因此 ADSP-BF5181 Blackfin® 嵌入式處理器中也集成專用硬件來支持IEEE 1588。本文將概要介紹其功能,并通過一個(gè)示例來展示利用ADSP-BF518 處理器解決方案獲得的時(shí)鐘同步性能結(jié)果。
現(xiàn)在幾點(diǎn)了?
大多數(shù)系統(tǒng)都需要利用本振來維護(hù)自己的時(shí)間概念。圖1顯示硬件和軟件如何組合,在系統(tǒng)內(nèi)產(chǎn)生時(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í)間通常稱為"系統(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ì)距離很近的分
● 所有設(shè)備均使用特性幾乎完全相同的振蕩器.由 于很難獲得 幾乎完全一樣的振蕩器,并確保性能不隨時(shí)間飄移,因此這 種方法不可行。更重要的是,各振蕩器的工作條件并不相
● 如果所有設(shè)備均通過一個(gè)通信網(wǎng)絡(luò)(例如以太網(wǎng))互連,則這些設(shè)備可以通過網(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é)議,適用于地理位置分 散但通過某種通信技術(shù)(例如以太網(wǎng))互連的設(shè)備。設(shè)備之間 通過交換時(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í) 間保持一致。不過,這種解決方案也有幾點(diǎn)不足:
1. 主時(shí)鐘設(shè)備無法以極短的間隔廣播時(shí)間,因此"從"時(shí)鐘設(shè)備必須使用自己獨(dú)立的"低劣"振蕩器,在主時(shí)鐘設(shè)備
2. 廣播路徑難免存在延遲,延遲幅度取決于通信技術(shù),例如物理信號(hào)沿導(dǎo)線從一臺(tái)設(shè)備傳輸至另一臺(tái)設(shè)備所需的時(shí) 間。這種延遲會(huì)進(jìn)一步擴(kuò)大主時(shí)鐘與各從時(shí)鐘之間的失
3. 主時(shí)鐘設(shè)備與各從時(shí)鐘設(shè)備之間的廣播路徑存在差異,這會(huì)進(jìn)一步降低各從時(shí)鐘設(shè)備之間的同步精度。
IEEE 1588 要求通過測(cè)量路徑延遲,解決第二個(gè)和第三個(gè)問 題。它還要求待調(diào)整的從時(shí)鐘與主時(shí)鐘保持步調(diào)一致,從而減 輕第一個(gè)問題。如果可能,使用更小的廣播間隔和更高質(zhì)量的 振蕩器,可以進(jìn)一步減輕第一個(gè)問題
IEEE 1588 如何測(cè)量通信延遲
IEEE 1588-20022 定義了四種消息 Sync、 Followup、 DelayReq和 DelayResp,用來測(cè)量前向(主時(shí)鐘至從時(shí)鐘)和后向(從 時(shí)鐘至主時(shí)鐘)路徑的通信延遲。更新版本IEEE 1588-2008,3 還提供其它機(jī)制,新增三種消息 PdelayReq、PdelayResp和PdelayRespFollowup,來測(cè)量"點(diǎn)對(duì)點(diǎn)延遲"。
這些消息中,Sync、DelayReq、PdelayReq 和PdelayResp 是所謂"事件"消息,在離開和到達(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á)或離開設(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'''' 離開主時(shí)鐘設(shè)備,該時(shí) 間點(diǎn)為硬件時(shí)間戳。該消息在時(shí)間點(diǎn) Ts1'''' (從時(shí)鐘設(shè)備本地時(shí)間)到達(dá)從時(shí)鐘硬件,從時(shí)鐘設(shè)備軟件在稍后的時(shí)間點(diǎn) Ts1 收到該消息。該軟件將讀取硬件時(shí)間戳以獲得 Ts1''''。如果沒有通 信延遲,Ts1'''' 應(yīng)等于(Tm1'''' + Tms),其中 Tms 為主時(shí)鐘與從時(shí) 鐘之間的時(shí)間差。該協(xié)議的最終目標(biāo)是補(bǔ)償此時(shí)間差.
圖 2. 測(cè)量主時(shí)鐘設(shè)備與從時(shí)鐘設(shè)備之間的通信延遲
發(fā)送 Sync 消息之后,主時(shí)鐘設(shè)備軟件通過時(shí)間戳單元讀取 Sync 消息的離開時(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 離開時(shí)間)。主從路徑延遲 Tmsd 由 公式 1 確定。
(1)
從時(shí)鐘設(shè)備到主時(shí)鐘設(shè)備的延遲ce
從時(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í) 間 (T s3) ,將其插入 DelayReq 消息中,并送出該消息。發(fā)送該 消息之后,從時(shí)鐘設(shè)備軟件讀取時(shí)間戳以獲取消息離開時(shí)間 Ts3'''' ,并等待主時(shí)鐘設(shè)備的響應(yīng)。
圖 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'''' ,并通過公式 2 計(jì)算從主通信延遲 Tsmd 。
(2)
公式 1 和公式 2 中均有一個(gè)未知變量,即主從時(shí)間差 Tms ,因 此無法單獨(dú)求得 Tmsd 或 Tsmd 。但是,如果我們合理地假設(shè) 通信路徑是對(duì)稱的,即
(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'''' ,并通過主時(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í)間差過大,例如
2. 如果時(shí)間差較小,則使從時(shí)鐘的頻率改變某一百分比.
一般而言,該系統(tǒng)會(huì)變成一個(gè)控制環(huán)路,其中主時(shí)鐘時(shí)間是參 考命令,而從時(shí)鐘時(shí)間是跟蹤主時(shí)鐘時(shí)間的輸出,二者之差驅(qū) 動(dòng)可調(diào)整時(shí)鐘??梢允褂?PID 控制來實(shí)現(xiàn)特定跟蹤性能,這 是許多 IEEE 1588 實(shí)施方案常用的方法。圖 4 顯示了這種控制環(huán)路.
圖 4. IEEE 1588 控制環(huán)路.
點(diǎn)對(duì)點(diǎn)延遲
修訂版 IEEE 1588-2008 引入了新的機(jī)制來測(cè)量路徑延遲,稱 為"點(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ì)稱性的角度看, P2P 機(jī)制可 提供更高的精度.
如上文所述, IEEE 1588-2008 新增了 PdelayReq 、 PdelayResp 和 PdelayRespFollowup 三種消息來測(cè)量 P2P 延遲。這些消息 的工作方式與上文所述方式相似,詳情請(qǐng)看參考文獻(xiàn)3。
影響同步性能的因素
精心 設(shè)計(jì)的 IEEE 1588 設(shè)備能夠?qū)崿F(xiàn)高度精確的時(shí)鐘同步,但 也必須了解直接影響同步性能的主要因素,其中包括:
1. 路徑延遲: 如上文所述, IEEE 1588 的路徑延遲測(cè)量假設(shè)通 信路徑延遲是對(duì)稱的,即前向路徑的傳輸延遲與后向傳輸 延遲相同。此外,在延遲測(cè)量期間,延遲不應(yīng)變化。測(cè)量 期間延遲變化會(huì)導(dǎo)致不對(duì)稱和延遲抖動(dòng),這將直接影響同 步精度。雖然無法在 IEEE 1588 設(shè)備的邊界之外控制延遲對(duì) 稱性和抖動(dòng),但如果測(cè)量基于硬件時(shí)間戳,則可在設(shè)備內(nèi) 改善路徑對(duì)稱性和抖動(dòng)。由于中斷延時(shí)、環(huán)境切換和線程 調(diào)度,軟件時(shí)間戳?xí)?dǎo)致明顯的抖動(dòng),而硬件時(shí)間戳則不
2. 時(shí)鐘的漂移和抖動(dòng)特性:: 主時(shí)鐘的頻率和相位代表跟蹤控 制系統(tǒng)的輸入,從時(shí)鐘則是控制對(duì)象。主時(shí)鐘的任何時(shí)變 行為都會(huì)擾動(dòng)該控制系統(tǒng),導(dǎo)致穩(wěn)態(tài)和瞬態(tài)兩種誤差。因
3. 控制法則: 從時(shí)鐘調(diào)整如何校正從時(shí)鐘設(shè)備的時(shí)間誤 差取 決于控制方法??刂品▌t參數(shù)包括建立時(shí)間、過沖和穩(wěn)態(tài)
4. 時(shí)鐘分辨率: 如圖 1 所示,本地時(shí)間的分辨率由時(shí)鐘頻率 決定;最小時(shí)間增量為時(shí)鐘信號(hào)的一個(gè)周期。 IEEE 1588- 2002 支持 1 ns 的時(shí)間分辨率, IEEE 1588-2008 則支持 2 -16 ns 的時(shí)間分辨率。 2 16 (!) 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)之間延遲沒有明顯變 化的間隔時(shí)間,定期執(zhí)行延遲測(cè)量。如果 IEEE 1588 網(wǎng)絡(luò) 的延遲變化較大,則增加延遲測(cè)量頻率可以改善時(shí)鐘同步 性能。
哪個(gè)是主時(shí)鐘?
在考慮如何精確確 定主時(shí)鐘設(shè)備與從時(shí)鐘設(shè)備之間的時(shí)間差之 后,下一個(gè)相關(guān)問題是:在成百上千臺(tái)互連設(shè)備中,如何確定 哪一臺(tái)設(shè)備充當(dāng)主時(shí)鐘。
IEEE 1588 定義了一種稱為"最佳主時(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í)鐘及其自己的未來狀態(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 -BF51 8 處理器支持 IEEE 1588
ADI 公司 Black fi n DSP 系列最近新增一款產(chǎn)品: ADSP-BF518 處理器。像前款產(chǎn)品 ADSP-BF537,4 該處理器內(nèi)置"以 太網(wǎng)媒體訪問控制器" (EMAC) 模塊。它還具有 TSYNC 模 塊,進(jìn)一步擴(kuò)展了支持 IEEE 1588 標(biāo)準(zhǔn) EMAC 功能的能力; 還提供其它額外特性,可支持以太網(wǎng)的各種 IEEE 1588 應(yīng)用。 圖 5 顯示了 TSYNC 模塊的框圖。 ADSP-BF51x Blackfin 處理 器硬件參考提供了更多信息5
圖 5. ADSP-BF518 處理器 TSYNC 模塊的框圖。
分組檢測(cè)
ADSP-BF518 處理器可以檢測(cè) IEEE 1588 的所有事件消息,包 括送入和送出的分組,并為其提供硬件時(shí)間戳。因?yàn)槭录?時(shí)間戳的精度及其提取位置會(huì)影響路徑延遲的對(duì)稱性和穩(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 。此外,這種 可編程能力還支持將來版本的 IEEE 1588 ,以及其它要求時(shí)間 戳的一般協(xié)議,包括配置為給進(jìn)出處 理器的每個(gè)以太網(wǎng)分組加 上時(shí)間戳。
靈活的時(shí)鐘源
本地時(shí)鐘的屬性對(duì)于 IEEE 1588 系統(tǒng)的性能很重要。為了滿足 各種不同應(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í)鐘"來自以太網(wǎng)線路,而且兩臺(tái)設(shè)備采用同一時(shí)鐘工 作,因此該時(shí)鐘選項(xiàng)可以提供良好的精度。一般應(yīng)用可以選擇 處理器的"系統(tǒng)時(shí)鐘"作為時(shí)鐘源。
所選源時(shí)鐘也由 TSYNC 模塊驅(qū)動(dòng),通過特定引腳 Clockout 作 為處理器輸出,系統(tǒng)的其它部分可利用該輸出提供本地時(shí)間信息。
PPS 輸出
"每秒脈沖" (PPS) 信號(hào)是時(shí)間信息的物理表示。它名義上是 一個(gè) 1-Hz 信號(hào),在每個(gè) 1 秒轉(zhuǎn)換時(shí)間發(fā)出一個(gè)脈沖。它可用 來控制本地設(shè)備,或者在發(fā)生網(wǎng)絡(luò)故障時(shí)提供輔助時(shí)間通道。 它也可以 用于測(cè)試。兩臺(tái)設(shè)備的 PPS 信號(hào)之間的相位差是二 者時(shí)間偏移的物理量度
ADSP-BF518 處理器提供靈活的 PPS 輸出。它利用可編程"開 始時(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ù)表示的將來 任一時(shí)刻,從而產(chǎn)生 PPS 信號(hào)。參考基本用法,可以利用這 種 PPS 輸出功能產(chǎn)生具有可編程頻率和開始時(shí)間的周期性信號(hào)。
輔助快照
一些應(yīng)用可能需要按照標(biāo)志信號(hào)切換指示,給某一事件加上時(shí) 間戳。 ADSP-BF518 的 TSYNC 模塊通過輔助"快照" 功能, 使用一個(gè)專用引腳來接收外部標(biāo)志,以便實(shí)現(xiàn)這種請(qǐng)求。切換 標(biāo)志將觸發(fā)該模塊捕捉時(shí)間戳寄存器中的當(dāng)前本地時(shí)間,供軟 件訪問。.
報(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)
圖 6. 基于加數(shù)的可調(diào)時(shí)鐘
采用ADSP-BF518 處理器的 IEEE 1588 實(shí)施方案
ADSP-BF518 處理器上構(gòu)建了一個(gè)完整的 IEEE 1588-2008 兼容系統(tǒng),如圖 7 所示。
圖7. 采用ADSP-BF518 的 IEEE 1588 實(shí)施方案
處理器的 TSYNC 模塊檢測(cè)送入和送出的 IEEE 1588 消息, 并通過硬件給事件消息加上時(shí)間戳。由 I X X AT ( I X X AT Automation GmbH) 提供的 IEEE 1588 協(xié)議棧軟件可實(shí)現(xiàn)標(biāo)準(zhǔn) 所要求的消息交換協(xié)議。它利用 TSYNC 驅(qū)動(dòng)程序讀取、寫 入并調(diào)整 TSYNC 時(shí)鐘,并使用 MAC 控制器驅(qū)動(dòng)程序在以太 網(wǎng) MAC 層(開放系統(tǒng)互連模型的第二層)發(fā)送和接收消息。它還可實(shí)現(xiàn) P2P 延遲測(cè)量的控制法則和過濾。以太網(wǎng) PHY 選擇具有低抖動(dòng)延遲特性的 National Semiconductor DP838486。為簡(jiǎn)明起見,TSYNC 模塊時(shí)鐘源選擇處理器的系統(tǒng)時(shí)鐘 (80 MHz)。
圖 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í)鐘同步。
參考電路
1 ADSP-BF518 數(shù)據(jù)手冊(cè)。 http://www.analog.com/en/products/processors-dsp/blackfin/adsp-bf518.html.
2IEEE Std. 1588-2002. 網(wǎng)絡(luò)測(cè)量和控制系統(tǒng)的精密時(shí)鐘同步協(xié) 議 IEEE 標(biāo)準(zhǔn)。 http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=1048550.
3IEEE Std. 1588-2008. 網(wǎng)絡(luò)測(cè)量和控制系統(tǒng)的精密時(shí)鐘同步協(xié) 議 IEEE 標(biāo)準(zhǔn)。http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=4579760.
4ADSP-BF537 數(shù)據(jù)手冊(cè)。 http://www.analog.com/en/products/processors-dsp/blackfin/adsp-bf537.html.
5ADSP-BF51x Blackfin 處理器硬件參考,0.1 版(初始版)。 2009 年 1 月。 Analog Devices, Inc.http://www.analog.com/media/en/dsp-documentation/processor-manuals/ADSP-BF51x_hwr_rev1.2.pdf.
6AN-1507 :DP83848 和 DP83849 100Mb 數(shù)據(jù)延時(shí)。 2006. National Semiconductor Corporation. http://www.ti.com/lit/an/snla084b/snla084b.pdf.
推薦閱讀: