董昆陽,王 康,武建鋒,3
(1.中國科學(xué)院國家授時(shí)中心,陜西 西安 710600;2.中國科學(xué)院大學(xué),北京 100049;3.中國科學(xué)院大學(xué)電子電氣與通信工程學(xué)院,北京 100049)
隨著物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)等新興產(chǎn)業(yè)的不斷發(fā)展,迫切需要高精度、高穩(wěn)定性的確定性網(wǎng)絡(luò)時(shí)間服務(wù)[1]。時(shí)間敏感網(wǎng)絡(luò)(Time Scalar Network,TSN)綜合了多領(lǐng)域?qū)r(shí)間敏感通信的需求,建立了時(shí)鐘同步、數(shù)據(jù)調(diào)度和網(wǎng)絡(luò)配置等核心機(jī)制,旨在構(gòu)建一套高穩(wěn)定性、低抖動(dòng)的確定性網(wǎng)絡(luò)時(shí)間服務(wù)系統(tǒng)。TSN核心協(xié)議之一精確時(shí)間同步協(xié)議(Precision Time Protocol,PTP),該協(xié)議通過硬件標(biāo)記PTP 時(shí)間戳來降低系統(tǒng)不確定度[2],從而提供分組網(wǎng)絡(luò)納秒級(jí)別的同步精度。但目前國內(nèi)基于TSN 的PTP 交換機(jī)系統(tǒng)的相關(guān)設(shè)計(jì)成果較少。因此,為進(jìn)一步降低時(shí)間同步延遲和抖動(dòng),設(shè)計(jì)了基于TSN 的PTP 交換機(jī)的時(shí)間同步系統(tǒng)。
精確時(shí)間同步的核心原理是主從時(shí)鐘之間的報(bào)文傳輸分析與本地時(shí)鐘校正,主時(shí)鐘生成PTP 報(bào)文并傳遞至從時(shí)鐘,從時(shí)鐘提取報(bào)文時(shí)戳信息進(jìn)而進(jìn)行本地時(shí)鐘校正,主從時(shí)鐘同步交互模型如圖1所示。
主從時(shí)鐘之間的主要延時(shí)誤差來自于不確定的鏈路延遲和交換機(jī)、時(shí)鐘漂移等設(shè)備內(nèi)部的不確定性所引起的延遲[3]。其中網(wǎng)絡(luò)棧內(nèi)部延遲誤差可通過硬件輔助標(biāo)記時(shí)間戳來減小。
主從時(shí)鐘之間通過報(bào)文傳遞來實(shí)現(xiàn)兩者時(shí)間同步,主從時(shí)鐘同步算法分析如下:
1)主端發(fā)送SYNC message,同時(shí)記錄T1時(shí)刻。
2)從端收到該報(bào)文并標(biāo)記T2時(shí)刻。
3)主端延遲發(fā)送Follow_up 報(bào)文,該報(bào)文攜帶T1時(shí)戳信息。
4)從端接收Follow_up 報(bào)文并發(fā)送延遲信號(hào)報(bào)文Delay_req,同時(shí)記錄發(fā)送時(shí)間T3時(shí)刻。
5)主端接收Delay_req 報(bào)文并記錄到達(dá)時(shí)刻,同時(shí)向從端發(fā)送Pdelay_resp message 消息報(bào)文。
同步過程假設(shè)主端與從端的雙向鏈路延遲對(duì)等,因此可通過以下方法計(jì)算鏈路延遲的平均值:
式中,D為平均時(shí)延。
系統(tǒng)總體設(shè)計(jì)為時(shí)鐘同步信息分別通過基于TSN 的PTP 交換機(jī)和普通交換機(jī),OK335xS 控制PTP交換機(jī)處于目標(biāo)工作狀態(tài),系統(tǒng)對(duì)比主從時(shí)鐘接入不同交換機(jī)模式下同步誤差。系統(tǒng)整體設(shè)計(jì)如圖2所示。
圖2 系統(tǒng)整體設(shè)計(jì)圖
該設(shè)計(jì)共分為三大模塊,分別為主動(dòng)控制模塊、交換機(jī)處理模塊和GNSS 處理模塊。主動(dòng)控制模塊使用OK335xS 開發(fā)板控制,控制交換機(jī)的工作狀態(tài)。GNSS 處理模塊負(fù)責(zé)以太網(wǎng)時(shí)間同步幀的收發(fā),進(jìn)行主從時(shí)鐘之間時(shí)鐘抖動(dòng)和延遲分析處理。在工作模式下,從端根據(jù)與主端之間的時(shí)鐘差信息來進(jìn)行本地時(shí)鐘修正。交換機(jī)處理模塊分別采用普通交換機(jī)和PTP 交換機(jī)。普通交換機(jī)為常見的網(wǎng)絡(luò)交換機(jī),該交換機(jī)作為對(duì)照試驗(yàn)組。PTP 交換機(jī)為MICROCHIP 公司生產(chǎn)的EVB-KSZ9477S 系列交換機(jī),該交換機(jī)作為網(wǎng)絡(luò)通信PHY 芯片為系統(tǒng)提供硬件級(jí)時(shí)間戳標(biāo)記服務(wù)。
由于EVB-KSZ9477S 開發(fā)板自身限制不利于工程的具體設(shè)計(jì),因此該設(shè)計(jì)使用OK335xS 開發(fā)板來輔助控制KSZ9477 芯片,來提供更高的可拓展性。OK335xS 開發(fā)板通過SPI 總線進(jìn)行控制和數(shù)據(jù)交換。OK335xS 主控模塊通過控制KSZ9477 芯片的寄存器讀寫,實(shí)現(xiàn)對(duì)整個(gè)時(shí)鐘同步系統(tǒng)設(shè)計(jì)模式的控制。
在網(wǎng)絡(luò)協(xié)議棧和PTP 初始化之后,系統(tǒng)根據(jù)BMI 算法判別最佳主時(shí)鐘。主時(shí)鐘定時(shí)發(fā)送時(shí)間同步報(bào)文到從時(shí)鐘進(jìn)行本地時(shí)鐘修正。時(shí)鐘修正模型如圖3 所示。
圖3 時(shí)鐘修正模型圖
在接入普通交換機(jī)模式下,主時(shí)鐘在應(yīng)用層產(chǎn)生PTP 報(bào)文,通過網(wǎng)絡(luò)協(xié)議棧逐層封裝后與從時(shí)鐘進(jìn)行通信。該模式下PTP 報(bào)文時(shí)間戳在數(shù)據(jù)鏈路層由系統(tǒng)進(jìn)行軟件級(jí)時(shí)間戳標(biāo)記,從時(shí)鐘捕獲該報(bào)文并由報(bào)頭協(xié)議解析出該報(bào)文所攜帶的時(shí)間信息。此后,從時(shí)鐘根據(jù)時(shí)鐘校驗(yàn)信息進(jìn)行本地時(shí)鐘校正。該傳輸方式會(huì)受到網(wǎng)絡(luò)協(xié)議棧的影響,因而導(dǎo)致同步精度較低。
在主從時(shí)鐘之間接入PTP 交換機(jī)模式下,在物理層由KSZ9477 芯片將時(shí)戳信息標(biāo)記于該報(bào)文之上,該模式下交換機(jī)在物理層自動(dòng)進(jìn)行硬件級(jí)報(bào)文打戳,由于無需考慮網(wǎng)絡(luò)棧內(nèi)部的延遲與不確定性,故該模式下交換機(jī)具有極高的穩(wěn)定性和較低的時(shí)間同步誤差。
系統(tǒng)硬件設(shè)計(jì)為系統(tǒng)三個(gè)主要模塊的硬件設(shè)計(jì)分析。分別為基于OK335xS 的主動(dòng)控制模塊設(shè)計(jì)、基于KSZ9477 的PTP 交換機(jī)模塊設(shè)計(jì)、基于自研模塊的GNSS 處理器設(shè)計(jì)。
主動(dòng)控制模塊采用OK335xS 開發(fā)板,該設(shè)計(jì)使用該開發(fā)板的SPI 串行數(shù)據(jù)總線。SPI 是同步數(shù)據(jù)總線,通過時(shí)鐘信號(hào)來保證數(shù)據(jù)收發(fā)雙方實(shí)現(xiàn)數(shù)據(jù)的同步。此外,還用到包括串口、LED、復(fù)位電路、時(shí)鐘晶振等外圍電路來進(jìn)行輔助控制。SPI 接口電路如圖4 所示。
圖4 SPI接口電路圖
該設(shè)計(jì)SPI 傳輸采用SPI MODE0 模式,設(shè)置CPOL 和CPHA 均為0,該模式下時(shí)鐘空閑時(shí)為低電平,在時(shí)鐘第一個(gè)跳變沿進(jìn)行數(shù)據(jù)采樣。設(shè)置波特率為115 200 bit/s,停止位為1,數(shù)據(jù)位為8 bit,無奇偶校驗(yàn)位。
在該傳輸過程中,OK335xS 作為SPI 主機(jī),EVBKSZ9477S 作為SPI 從機(jī)之一。首先,主機(jī)將連接從機(jī)對(duì)應(yīng)SPI 接口片選信號(hào)CS 拉低,使得從機(jī)處于可接收狀態(tài);從機(jī)檢測(cè)到時(shí)鐘邊緣信號(hào)時(shí),讀取MOSI線上大小為1 bit 的數(shù)據(jù);MOSI 線根據(jù)時(shí)鐘信號(hào)將數(shù)據(jù)分位發(fā)送至從機(jī);主機(jī)傳送完畢之后,繼續(xù)發(fā)送時(shí)鐘信號(hào),以便從機(jī)可以將數(shù)據(jù)通過MISO 線發(fā)送至主機(jī)。此后,主機(jī)拉高從機(jī)對(duì)應(yīng)的片選信號(hào)CS,從機(jī)進(jìn)入停止態(tài)。至此,主機(jī)與從機(jī)完成一次數(shù)據(jù)通信。
交換機(jī)芯片分別為PTP 交換機(jī)EVB-KSZ9477S和普通交換機(jī)HELL-TEK 交換機(jī),支持自動(dòng)時(shí)差修正,支持對(duì)本地時(shí)鐘粗調(diào)或細(xì)調(diào)。同時(shí)該處理芯片具有以下特性:
1)提供IEEE 1588v2 參考時(shí)間,支持寄存器讀寫操作。
2)自動(dòng)硬件標(biāo)記PTP 時(shí)間戳。
3)支持對(duì)時(shí)鐘進(jìn)行相位和頻率同步。
實(shí)驗(yàn)測(cè)試結(jié)果分為兩種,即主從時(shí)鐘之間接入普通交換機(jī)模式和接入PTP 交換機(jī)模式,兩種模式下控制變量時(shí)鐘源、溫度、濕度、線路接頭數(shù)量和線路長短等影響因子不變,觀察兩種模式下主從時(shí)鐘同步相對(duì)誤差大小。測(cè)試主機(jī)通過串口、網(wǎng)線等與交換機(jī)模塊和主從時(shí)鐘之間相連,并通過串口助手Mobaxterm 進(jìn)行數(shù)據(jù)截留和通過WIRESHARK 進(jìn)行數(shù)據(jù)抓包分析,之后采用MATLAB 進(jìn)行數(shù)據(jù)處理分析。測(cè)試架構(gòu)圖如圖5 所示。
圖5 實(shí)驗(yàn)測(cè)試架構(gòu)圖
在該模式下,時(shí)鐘同步周期設(shè)置為1 s,主時(shí)鐘定時(shí)(1 s/次)發(fā)送同步報(bào)文至從時(shí)鐘。測(cè)試結(jié)果如圖6 所示。
圖6 普通交換機(jī)抖動(dòng)數(shù)據(jù)圖
如圖6 所示,在主從時(shí)鐘之間接入普通交換機(jī)時(shí),同步抖動(dòng)均值為-9.16 ns,標(biāo)準(zhǔn)差為139 ns,RMS為140 ns。
在該模式下,主從時(shí)鐘之間接入PTP 交換機(jī),時(shí)間同步周期設(shè)置為1 s,實(shí)驗(yàn)結(jié)果如圖7 所示。
圖7 基于TSN的PTP交換機(jī)抖動(dòng)數(shù)據(jù)圖
如圖7 所示,在主從時(shí)鐘之間接入基于TSN 的PTP 交換機(jī),主從時(shí)鐘同步偏差均值為-0.081 4 ns,標(biāo)準(zhǔn)差為3.33 ns,RMS 為3.33 ns。
實(shí)驗(yàn)數(shù)據(jù)表明,在主從時(shí)鐘之間接入基于TSN的PTP 交換機(jī)相較于接入普通交換機(jī),同步偏差大幅減小,抖動(dòng)大幅降低。
該文設(shè)計(jì)了時(shí)間同步測(cè)試平臺(tái),分為兩種模式測(cè)試,分別為主從時(shí)鐘之間接入普通交換機(jī)模式和接入基于TSN 的PTP 交換機(jī)模式。實(shí)驗(yàn)結(jié)果表明,相對(duì)于接入普通交換機(jī),在主從時(shí)鐘之間接入基于TSN 的PTP 交換機(jī),在經(jīng)過一定量級(jí)測(cè)試之后,時(shí)間同步抖動(dòng)有較大提升,為提高系統(tǒng)時(shí)間同步精度提供了一種解決方案,為交換機(jī)主動(dòng)控制提供了一種較為便捷的方案。