一種IEEE 1588硬件的設(shè)計和實現(xiàn)
出處:戴 輝1,涂 岸2 發(fā)布于:2011-07-16 08:56:47
以太網(wǎng)技術(shù)由于其開放性好、價格低廉和使用方便等特點,已經(jīng)廣泛應(yīng)用于電信級別的網(wǎng)絡(luò)中,以太網(wǎng)的數(shù)據(jù)傳輸速度也從早期的10M提高到100M,GE,10GE.40GE,100GE正式產(chǎn)品也將于2009年推出。
以太網(wǎng)技術(shù)是"即插即用"的,也就是將以太網(wǎng)終端接到IP網(wǎng)絡(luò)上就可以隨時使用其提供的業(yè)務(wù)。但是,只有"同步的"的IP網(wǎng)絡(luò)才是一個真正的電信級網(wǎng)絡(luò),才能夠為IP網(wǎng)絡(luò)傳送各種實時業(yè)務(wù)與數(shù)據(jù)業(yè)務(wù)的多重播放業(yè)務(wù)提供保障。目前,電信級網(wǎng)絡(luò)對時間同步要求十分嚴格,對于一個全國范圍的IP網(wǎng)絡(luò)來說,骨干網(wǎng)絡(luò)時延一般要求控制在50ms之內(nèi),現(xiàn)行的互聯(lián)網(wǎng)網(wǎng)絡(luò)時間協(xié)議NTP(Network Time Protocol),簡單網(wǎng)絡(luò)時間協(xié)議SNTP(Simple Network Time Protocol)等不能達到所要求的同步或收斂速度?;谝蕴W(wǎng)的時分復(fù)用通道仿真技術(shù)(TDM over Ethernet)作為一種過渡技術(shù),具有一定的以太網(wǎng)時鐘同步概念,可以部分解決現(xiàn)有終端設(shè)備用于以太網(wǎng)的無縫連接問題。IEEE 1588標(biāo)準(zhǔn)則特別適合于以太網(wǎng),可以在一個地域分散的IP網(wǎng)絡(luò)中實現(xiàn)微秒級高的時鐘同步。
1 IEEE 1588實現(xiàn)原理
IEEE1588的全稱是"網(wǎng)絡(luò)測量和控制系統(tǒng)的精密時鐘同步協(xié)議標(biāo)準(zhǔn)",IEEE1588標(biāo)準(zhǔn)的草案基礎(chǔ)來自惠普公司的1990至1998年的有關(guān)成果,換句語說,安捷倫科技對IEEE1588標(biāo)準(zhǔn)作出重要貢獻。安捷倫實驗室的資深研究員John Eidson被網(wǎng)絡(luò)業(yè)界視為,他的"IEEE1588在測試和測量系統(tǒng)的應(yīng)用",以及"IEEE1588:在測控和通信的應(yīng)用"兩篇論文對IEEE1588協(xié)議有精辟和全面的介紹。IEEE1588協(xié)議是通用的提升網(wǎng)絡(luò)系統(tǒng)定時同步能力的規(guī)范,在起草過程中主要參考以太網(wǎng)來編制,使分布式通信網(wǎng)絡(luò)能夠具有嚴格的定時同步,并且應(yīng)用于工業(yè)自動化系統(tǒng)。網(wǎng)絡(luò)時間協(xié)議的工作原理說明如下:
(1)現(xiàn)場設(shè)備A發(fā)送一個PTP包給現(xiàn)場設(shè)備B,并記錄下數(shù)據(jù)包離開A的時間,該時間戳為t1.
?。?)當(dāng)此PTP包到達現(xiàn)場設(shè)備B時,現(xiàn)場設(shè)備B加上自己接收到該數(shù)據(jù)包的時間戳,該時間戳為TS1.
(3)現(xiàn)場設(shè)備A發(fā)送一個Follow Up消息給現(xiàn)場設(shè)備B,通知B時間t1.
?。?)當(dāng)此PTP包離開現(xiàn)場設(shè)備B時,并記錄下數(shù)據(jù)包離開B的時間t2.
?。?)當(dāng)現(xiàn)場設(shè)備A接收到該響應(yīng)包時,加上一個新的時間戳,該時間戳為Tm2,整個同步過程如圖1所示。

(6)現(xiàn)場設(shè)備A再發(fā)送Follow Up消息給現(xiàn)場設(shè)備B,通知B時間Tm2.
至此,現(xiàn)場設(shè)備B己擁有足夠的信息來計算2個重要的參數(shù):一是PTP數(shù)據(jù)包來回一個周期的時延,二是現(xiàn)場設(shè)備A和現(xiàn)場設(shè)備B的時鐘差。于是現(xiàn)場設(shè)備B能夠設(shè)定自己的時鐘與現(xiàn)場設(shè)備A同步。
可以根據(jù)下面公式算出現(xiàn)場設(shè)備A與現(xiàn)場設(shè)備B之間的時間差和延時:

2 系統(tǒng)硬件電路設(shè)計
2.1 支持PTP協(xié)議嵌入式接口板設(shè)計
根據(jù)PTP協(xié)議框架,支持PTP協(xié)議的嵌入式接口板硬件框圖如圖2所示。

DP83640高PHYTER收發(fā)器芯片內(nèi)置高IEEE 1588時鐘,并設(shè)有由硬件執(zhí)行的時間標(biāo)記功能,可為接收及發(fā)送的信息包印上時間標(biāo)記。DP83640的特色在于將IEEE 1588高時間協(xié)議(PTP)功能設(shè)于芯片的物理層之內(nèi),因此可以在靠近網(wǎng)線的位置記錄時間標(biāo)記,而且分辨度達8 ns,不但可為系統(tǒng)提供準(zhǔn)確的高控制功能,也確保采集回來的數(shù)據(jù)出現(xiàn)少的抖動。
DP83640預(yù)載4個時鐘更新算法,用戶可以利用任何一個算法調(diào)節(jié)電路板上的PTP時鐘,而且偏差率保證不超過10億分之一(即1ppb[8]的準(zhǔn)確度)。
DP83640也可與部分符合IEEE 1588規(guī)定的處理器搭配一起使用,為測試及測量儀表等設(shè)備提供更準(zhǔn)確的時鐘同步功能。其系統(tǒng)連接后時鐘關(guān)系圖如圖3所示。

2.2 具體電路設(shè)計
系統(tǒng)實際設(shè)計電路主要包含如下部分:處理器ARM9200;存儲電路,其中包含了SDRAM和ROM兩部分的電路設(shè)計;網(wǎng)絡(luò)接口電路,其中使用DP83640通過RMII接口總線與ARM9處理器相連,把PTP報文的時間戳信息和當(dāng)前時鐘讀數(shù)發(fā)送給ARM9處理器,同時接收來自ARM9處理器的時鐘調(diào)整值來調(diào)整本地時鐘。DP83640通過RMII總線來獲取以太網(wǎng)報文比特流而不是直接從物理層獲取,從而實現(xiàn)10 Mb/s和100 Mb/s兩種速率的自適應(yīng)處理。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件結(jié)構(gòu)如圖4所示。

3.1 PTP協(xié)議狀態(tài)機模塊
PTP協(xié)議狀態(tài)機主要負責(zé)管理設(shè)備上電時的初始化狀態(tài)、出現(xiàn)異常情況下的故障狀態(tài)、通常情況下的偵聽狀態(tài)、主時鐘狀態(tài)、從時鐘狀態(tài)和未校準(zhǔn)狀態(tài),以及各狀態(tài)之間的轉(zhuǎn)化。
3.2 主時鐘選擇模塊
主時鐘算法模塊主要用于選擇本地網(wǎng)絡(luò)中的時鐘作為主時鐘,同時決定本地時鐘應(yīng)處的狀態(tài)。
實現(xiàn)主時鐘的方法包括兩個步驟:(1)從本地時鐘系統(tǒng)通信端口中選出一個質(zhì)量的同步報文;(2)根據(jù)上述結(jié)果,比較此時的主時鐘和本地時鐘屬性,決定本地設(shè)備PTP協(xié)議引擎所處的狀態(tài)。步驟(1)采用數(shù)據(jù)集比較算法模塊來實現(xiàn),步驟(2)采用狀態(tài)決斷算法模塊來實現(xiàn)。該模塊定義了STATE_DECISION_ALGORITHM()函數(shù)來進行狀態(tài)的決斷和數(shù)據(jù)集的更新。在缺省數(shù)據(jù)集的層數(shù)是1或2的前提下,調(diào)用DATASET_COMPARISON_ALGORITHM模塊來判定本地時鐘缺省數(shù)據(jù)集D0和較好時鐘Erbest的數(shù)據(jù)集哪個更好。
通過比較,如果是缺省數(shù)據(jù)集D0更好,則根據(jù)狀態(tài)決斷代碼M1,調(diào)用函數(shù)CreateMasterClock()根據(jù)缺省數(shù)據(jù)集D0的屬性值來構(gòu)建主時鐘,并且將D0狀態(tài)更改為PTP_MASTER,這代表D0是目前的主時鐘;否則,調(diào)用函數(shù)CreateSlaveClock(),根據(jù)Erbest的屬性來構(gòu)建從時鐘,Erbest的狀態(tài)則是PTP_SLAVE.
在主時鐘的層數(shù)大于2的情況下,調(diào)用DATASET_COMPARISON_ALGORITHM模塊,以對本地時鐘缺省數(shù)據(jù)集D0和時鐘Ebest進行判定。通過比較,如果是缺省數(shù)據(jù)集D0更好,則調(diào)用CreateMasterClock(),根據(jù)狀態(tài)決斷代碼M2,根據(jù)缺省數(shù)據(jù)集D0的屬性值來構(gòu)建主時鐘,并且更改D0狀態(tài)為PTP_MASTER;否則,將調(diào)用DATASET_COMPARISON_ALGORITHM模塊將Ebest與Erbest進行比較,如果比較結(jié)果相同,根據(jù)狀態(tài)決斷代碼S1,根據(jù)Ebest的屬性來構(gòu)建從時鐘,更改Ebest狀態(tài)成PTP_SLAVE.如果經(jīng)過比較Ebest有更好的屬性值,則根據(jù)狀態(tài)決斷代碼M3,根據(jù)Erbest的屬性來構(gòu)建從時鐘,并設(shè)置它的狀態(tài)為PTP_SLAVE;否則,根據(jù)狀態(tài)決斷代碼P2,根據(jù)Ebest的屬性來構(gòu)建主時鐘,改變它的狀態(tài)為PTP_MASTER.
主時鐘選擇模塊示意圖如圖5所示。

3.3 時鐘調(diào)整模塊
本地時鐘同步算法是PTP協(xié)議中十分關(guān)鍵的部分,主要用來調(diào)整本地時間,與主時鐘的基準(zhǔn)時間保持一致性。主時鐘被選擇出來后,就開始調(diào)用同步報文發(fā)送函數(shù)PTP_Send_PTP_SYNC_MESSAGE(),構(gòu)造同步報文并對報文初始化,記錄發(fā)送出去的時間戳,再調(diào)用udp_send()將報文打包并加入發(fā)送緩沖區(qū)進行發(fā)送。
調(diào)用跟隨報文發(fā)送函數(shù)PTP_Send_PTP_FOLLOW_MESSAGE(),構(gòu)造跟隨報文并對報文初始化,記錄發(fā)送出去的時間戳,然后調(diào)用udp_send()將報文打包并加入發(fā)送緩沖區(qū)進行發(fā)送。
從時鐘udp_rcve()設(shè)置接收緩沖區(qū)分別先后接收了同步報文和跟隨報文,記錄下接收的時間打上時間戳,再調(diào)用函數(shù)PTP_RECV_PROCESS()判斷接收的是哪種報文,如果是同步報文,則調(diào)用函數(shù)PTP_RECV_SYNC(),然后對報文解包,取出報文從主時鐘發(fā)送過來的時間。如果是跟隨報文,則調(diào)用函數(shù)PTP_RECV_FOLLOWUP()對報文解包,取出報文從主時鐘發(fā)送過來的時間。
在這個函數(shù),調(diào)用了PTP_Send_Delay_Req()函數(shù),它構(gòu)造延遲請求報文并對報文初始化,記錄發(fā)送出去的時間戳,然后調(diào)用udp_send()將報文打包并加入發(fā)送緩沖區(qū)進行發(fā)送;而主時鐘的緩沖區(qū)一旦有報文,則主時鐘立即調(diào)用udp_rcve()記錄下接收的時間打上時間戳,再調(diào)用函數(shù)PTP_RECV_PROCESS()判斷接收的是哪種報文,如果是延遲請求報文,則函數(shù)PTP_RECV_DELAY_REQ()立即調(diào)用PTP_Send_PTP_REQ_RESP(),從時鐘根據(jù)收到的4個報文收發(fā)時間,計算出主從偏差,對自己的時間進行校正。
整個程序流程如圖6所示。

4 系統(tǒng)測試結(jié)果與結(jié)論
系統(tǒng)測試將兩片DP83640連接到1 Hz信號輸出,利用DP83640捕獲上升沿時間戳實現(xiàn),在Linux系統(tǒng)中,利用MII總線讀取DP83640時間戳寄存器,數(shù)據(jù)結(jié)果如表1所示。

實驗結(jié)果,表明利用DP83640達到了10 ns級別的同步,完成了系統(tǒng)的設(shè)計目標(biāo)。
IEEE 1588提供的時間同步在理想條件下(網(wǎng)絡(luò)完全對稱),能夠達到極高的同步,為通信系統(tǒng)同步建設(shè)提供了更完美的解決方案。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開發(fā)實踐指南2026/1/6 10:40:19
- 嵌入式實時操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計實踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識2025/7/14 16:59:04
- 高速PCB信號完整性(SI)設(shè)計核心實操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護設(shè)計
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計與干擾抑制核心實操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計要點
- 連接器結(jié)構(gòu)設(shè)計常見問題分析









