利用IEEE 1588和Blackfin嵌入式處理器實(shí)現(xiàn)設(shè)備時(shí)鐘同步
分組檢測(cè)
ADSP-BF518處理器可以檢測(cè)IEEE 1588的所有事件消息,包括送入和送出的分組,并為其提供硬件時(shí)間戳。因?yàn)槭录r(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。此外,這種可編程能力還支持將來(lái)版本的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í)鐘”來(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輸出。它利用可編程“開始時(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)生具有可編程頻率和開始時(shí)間的周期性信號(hào)。
輔助快照
一些應(yīng)用可能需要按照標(biāo)志信號(hào)切換指示,給某一事件加上時(shí)間戳。ADSP-BF518的TSYNC模塊通過(guò)輔助“快照”功能,使用一個(gè)專用引腳來(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)
圖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消息,并通過(guò)硬件給事件消息加上時(shí)間戳。由IXXAT (IXXAT 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è)量的控制法則和過(guò)濾。以太網(wǎng)PHY選擇具有低抖動(dòng)延遲特性的National Semiconductor DP83848 。為簡(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í)鐘同步。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論