劉玉升,項文蔚,王 楠,王 巍
(國核自儀系統工程有限公司,上海 200241)
電站控制系統[1]是基于工業以太網的分布式控制系統[2],系統龐大、復雜,設備分布化程度高。各設備間要協調工作,就必須有統一的時間基準,即時鐘的精確同步。所有現場設備間的精確時鐘同步是實現同步數據采集和控制的核心技術之一。基于嵌入式軟件控制方式的時間同步方案,如網絡時間協議(network timing protocol,NTP),由于其實現機理的限制,同步精度難以滿足事件順序記錄(sequence of event,SOE)為1 ms的要求。
IEEE 1588定義了一個能夠在測量和控制系統中實現高精度時鐘同步的協議。基于IEEE 1588協議,可實現微秒級的同步精度。本文提出了一種基于片上系統現場可編程門陣列[3-5](system-on-chip field-programmable gate array,SoC FPGA)的時間節點硬件實現方式,以IEEE 1588作為時鐘同步協議,以嵌入式軟件形式實現TCP/IP通信和時鐘同步,通過SoC FPGA準確捕獲報文時間戳。這種硬件抓包輔助[6]的時鐘同步方法實現了主控時鐘節點和從I/O設備節點間微秒級的精確定時同步,并提高了電站控制系統的時鐘同步精度[7]。
IEEE 1588的基本功能是使分布式網絡內的參考時鐘(reference clock,RC)與其他時鐘保持同步。它定義了一種精確時鐘協議(precision timing protocol,PTP)[8]。在采用多播技術的分布式總線系統中,使用PTP協議對各個節點設備的時鐘進行精確同步。PTP協議也適用于對標準以太網的時鐘進行精確同步。PTP技術規范中特別定義了一套基于消息的同步協議,通過周期性地發布帶有時間戳的信息包,使各個測控節點的時鐘得到校正,從而實現整個系統的同步運行。
PTP協議使用主從式的結構來組織整個時鐘同步系統。主時鐘和從時鐘是相對的。通常將能提供絕對時間基準,如全球定位系統(global positioning system,GPS)、接收機提供的協調世界時(coordinated universal time,UTC)或相對時間基準(如高精度穩定的時鐘信號源)的時鐘稱為主時鐘。系統中的全部從時鐘都要同步于同一個主時鐘。PTP協議時間同步,通過交換報文來確定主、從時鐘間的時間偏移及報文傳輸的網絡延遲。PTP時鐘誤差校正原理如圖1所示。

圖1 PTP時鐘誤差校正原理圖
IEEE 1588同步過程分為偏移測量和延遲測量兩個階段。
偏移測量階段用于修正主、從時鐘的時間差。其實現過程如下。
①主時鐘Tm采用多播方式,周期性地向網絡發出同步時間報文(Sync報文,缺省為0.5 次/s),并在報文發送過程中記錄Sync報文的發送時間戳Tm1;從時鐘Ts接收Sync報文,并在報文發送過程中記錄Sync報文的接收時間戳Ts1。
②主時鐘采用多播方式向網絡上發送Follow Up報文,其中包含主時鐘發布Sync報文的發送時間戳Tm1。
通過時鐘使用Follow Up信息中的發送時間戳Tm1和接收時間戳Ts1,可計算出從時鐘與主時鐘之間的時間偏差Toffset:
Toffset=Ts1-Tm1-Tdelay
(1)
式中:Tdelay為主、從時鐘間的網絡傳輸延遲時間,在延遲測量階段測出。偏移測量階段提供了一個校正時間,將從時鐘校正為:
Tadjust=Ts-Toffset
(2)
延遲測量階段用來測量上述網絡傳輸造成的延遲時間Tdelay。此階段實現過程如下。
①從時鐘在收到Sync報文后,在Ts2時刻采用單播方式向主時鐘發送延遲請求信息包(Delay_Req);主時鐘Tm接收Delay_Req報文,并記錄下Delay_Req報文的接收時間戳Tm2。
②主時鐘收到Delay_Req報文后,在延遲響應信息報文(Delay_Resp)加時間戳,反映準確的接收時間Tm2;然后,采用單播方式,將Delay_Resp報文發送給從時鐘。
這樣,從時鐘就可以非常準確地計算出網絡延遲時間Toffset。與偏移測量階段不同的是,延遲測量階段的延遲請求信息包是隨機發出的,沒有時間限制。
假如網絡延遲是對稱的,則在以上兩個階段,可得到以下方程組:
(3)
解得方程組如下:
(4)
這樣可得到從時鐘和主時鐘之間的時鐘偏差值。采用這個差值調整各從時鐘節點時鐘,直到與主時鐘的時間同步為止。
IEEE 1588協議通過周期性校正來實現主、從時鐘同步。同步精度取決于主、從時鐘間的偏差值。影響時鐘偏差值的主要因素有三個:一是網絡通信鏈路傳輸延遲的不確定性,二是時間戳的精度,三是主、從時鐘同步時間間隔。
①傳輸延遲。報文在協議棧中的封裝和解析過程所用的時間具有非常強的不確定性,造成了網絡傳輸延遲的不確定性。但本文所述的電站控制系統為相對本地化的局域網系統,子網或內部組件所處環境相對穩定。該系統采用交換芯片連接各I/O設備的設計,可確保報文在網絡傳輸中的固定延遲。
②時間戳精度。不同時間戳加蓋方式的時間戳精度也不同。在應用層加蓋方式中,無論是在網絡驅動層,還是在介質無關接口(media independent interface,MII)產生的時間戳都必須返回到PTP應用層并經由內核處理,才能發送到PTP終端。但協議棧的操作延遲和負載都會對同步精度造成影響,因此這種方式的同步精度最低。通過網絡驅動程序,在網絡驅動層加蓋時間戳。由于以太網自身的CSMA/CD機制、上一層通信(如TCP及UDP)的誤差檢測及翻譯障礙等,都占用以太網的時間,因此精度略低。在協議棧物理層加蓋時間戳的硬件方式中,由于時間戳的獲取點更靠近傳輸介質,大大降低了網絡傳輸延遲的不確定性,避免了協議棧上部較大的時間抖動,也消除了報文傳輸中的網絡延遲。該方式獲取的發送和接收時間戳精度最高。
③同步間隔。同步間隔決定了兩條Sync報文的間隔時間。主、從時鐘之間通過收發同步消息來獲得時間戳,進而計算出同步偏差,并對從時鐘時間進行調整。由于主、從時鐘的頻率不一致,主、從時鐘在同步間隔的時間內會產生偏差。當同步間隔變化時,從時鐘時間的調整頻率也會發生變化,從而對同步精度產生影響。根據IEEE 1588協議,建議將PTP同步間隔時間設為2 s;同時,通過同步間隔時間對從時鐘偏差的測試分析[9]可知,主、從時鐘同步時間間隔按2 s設計,可保證從時鐘時間偏差在微秒級范圍內。因此,本系統中主、從時鐘同步時間間隔也按2 s設計。
基于上述分析,本設計中的傳輸延遲和同步間隔均易于實現。為了獲得最精確時間戳,實現更精準的時間同步,本設計采用基于SoC FPGA和硬件描述語言(Verilog HDL)的時鐘同步系統,通過SoC FPGA抓包輔助技術在協議棧的物理層加蓋時間戳。
SoC FPGA是近年來的主流嵌入式控制技術。由于其具有低功耗、高性能、低成本、高集成度等特性,因而適用于網絡時間節點。為了控制成本、提高時鐘同步精度,電站控制系統采用時鐘同步設計。實時數據網采用NTP對時,控制網使用基于SoC FPGA抓包輔助實現的高精度PTP對時。時鐘同步系統結構如圖2所示。

圖2 時鐘同步系統結構示意圖
由圖2可知,時鐘同步系統包含一個主時鐘節點(NTP服務器),若干從時鐘節點。其中:主時鐘節點上帶有GPS接收機或者北斗衛星,NTP服務器發出的秒脈沖信號將主時鐘同步于UTC,實時數據網上的所有網絡從時鐘節點(主控制器時間節點里的NTP客戶端)通過以太網的通信鏈路同步于NTP服務器;通過NTP完成對時后的主控制器時間節點將作為主時鐘,控制網上的從I/O設備時鐘節點也均使用高精度IEEE 1588協議完成與主控制器的高精度對時,實現了控制器與I/O設備間微秒級的精確定時同步。
FPGA實現信號的輸入、輸出及信息處理,具有納秒級別的數據處理和運算能力。系統中的主控制器時鐘節點和從I/O設備節點均采用SoC FPGA抓包技術,輔助實現高精度IEEE 1588協議。為了充分體現SoC FPGA中的以太網時間戳獲取模塊對電站控制系統時鐘同步精度的關鍵影響,本設計中的系統時間節點均基于賽靈思的SoC FPGA。SoC FPGA內置ARM內核高性能處理器,本身又具有可編程邏輯單元。SoC FPGA具有高集成、低成本、低功耗、極速中斷反應以及高速處理效率等特點。
系統中有關抓包部分的每個時間節點都包含SoC FPGA、以太網介質訪問控制(media access control,MAC)器、以太網物理(physical,PHY)層收發器這三個主要模塊。本設計采用博通公司的以太網PHY芯片;利用SoC FPGA的可編程邏輯單元實現三個以太網MAC,并通過邏輯編程實現對MII接口上PTP網絡報文的獲取、硬件時鐘計數器等功能。PHY和MAC通過標準的媒體獨立接口MII相連,內嵌CPU通過內部級聯總線與MAC相連。PHY、MAC和內嵌CPU構成了通信協議棧,完成數據包的發送與接收。SoC FPGA的內嵌CPU主要負責驅動MAC完成相關的通信功能;作為主時鐘節點時,內嵌CPU還負責通過MAC向本地網絡廣播Sync報文。
PTP時鐘同步系統邏輯是基于IEEE 1588協議的精準對時原理設計的[10]。
SoC FPGA是實現電站控制系統高精度時鐘同步的核心器件。其實現了兩個主要邏輯功能:一是控制三個以太網MAC,并使得多網卡具有統一的時鐘源;二是在協議棧的物理層獲取精準時間戳。基于SoC FPAG的時鐘同步方案內部采用結構化的硬件描述語言,設計了MII兼容的以太網發送/接收數據提取模塊、硬件時鐘計數器FRC、雙端口RAM等模塊。其中,PTP報文時間戳獲取模塊通過監聽MII接口上的信號,抓取符合條件的PTP報文;時鐘計數器FRC值是SoC FPGA基于外部高精度時鐘源產生的,發送和接收捕獲到的PTP報文,并加蓋當前FRC時間戳;SoC FPGA通過監聽并分析MAC和PHY之間MII接口的發送和接收信號,確定數據包的發送時間戳和接收時間戳,并將每個網絡發送和接收的數據包都存放在各自的RAM中以供CPU讀寫。由于SoC FPGA內嵌CPU,CPU通過內部高速級聯總線實時讀取RAM中存放的網絡數據包,故內嵌CPU比外置CPU的架構更精簡,讀取速度更快。
網絡數據抓包的程序處理是提取網絡時間包的關鍵,既要保證符合條件的包都被抓取到,又要精確提取想要的時間域。抓包程序需要對抓取網絡數據包進行匹配,丟掉無用包。所需抓取時間包的內容包括:固定的16進制UTP特征碼(08 00 45 11 01 3F)、FRC值、sourceuuid(發送端MAC)、sourceportid(網絡序號)和幀起始精準時間戳。只要帶同步時間包的數據包中有符合條件的時間包,FPGA就負責抓取,并將所有的數據都存放在固定的寄存器中;當系統讀取時,一次性地以RAM的形式進行傳送。每個網絡發送和接收的數據包,都存放在各自的RAM中。其中:RAM0可以進行讀寫,RAM1、RAM2、RAM3和RAM4只能讀取相應的網絡數據包數據。
根據抓包數據讀寫操作處理流程,采用Verilog HDL語言開發基于SoC FPGA的以太網發送/接收數據提取模塊,采用systemverilog等語言開發以太網發送/接收數據提取模塊的測試用例并對其進行充分測試。基于SoC FPGA,采用硬件方法在MII接口處獲取時間戳,這是一般CPU無法完成的工作。由于時間戳的獲取點更靠近傳輸介質,網絡傳輸延遲的不確定性大大降低,避免了協議棧上部的較大時間抖動,也消除了報文傳輸中的網絡延遲,獲取的發送和接收時間戳的精度最高。根據同步精度的因素影響分析,采用SoC FPGA硬件技術捕獲時間戳的方法,對電站控制系統時鐘同步精度提升起到了關鍵的作用,可以避免在軟件層獲取時間戳精度時受制于操作系統任務調度的影響。
SoC FPGA抓包對電站控制系統時鐘同步精度的輔助實現效果,通過對電站控制系統平臺原理樣機的測試來顯現。將千兆NTP服務器連接到GPS或北斗接收機,主時鐘節點CPU每隔2 s向網絡發送同步時間報文。
為了充分測試SoC FPGA抓包技術對電站控制系統的時鐘同步精度輔助實現情況,從以下三個方面對本設計進行測試。
①SoC FPGA抓包數據測試。
②主控制器時間節點與UTC同步情況測試,從I/O設備時鐘節點延遲與偏移情況測試。
③從I/O設備時鐘節點間SOE事件時間偏差測試。
通過對SoC FPGA在MII接口處抓取的網絡報文測試,檢驗主、從時鐘節點之間傳輸的報文是否為IEEE 1588協議規定的報文。將主、從時鐘以及測試上位機都通過網線連接在交換機上,即可在上位機上利用Wireshark網絡包抓取軟件獲取主、從時鐘之間傳輸的網絡報文。
通過從SoC FPGA抓取到的網絡報文,可以清楚地看到發送的各個報文的情況,協議類型為PTP V1版本。通過對所抓取的同步時間報文進行解析,可以得到抓取報文的UTP特征碼(08 00 45 11 01 3F)。
主、從時鐘以及測試機都通過網線連接在交換機上。上位機可清楚地顯示主控制器時間節點通過NTP服務器與UTC時間同步的情況,從I/O設備時鐘節點與主節點間的延遲與偏移情況。
通過從主控制器時鐘節點輸出的時間值和從I/O設備時鐘節點延遲與偏移測量值可以看出,主、從時鐘節點同步完成后的某一時刻,從時鐘節點與主時鐘節點的偏移為10.403 μs,實現了主控制器時鐘節點和從I/O設備從時鐘節點間微秒級的高精度同步對時。
SOE是一種帶時間戳的數字量輸入(data input,DI)采集模塊。在發生SOE事件時,由SOE模塊記錄SOE時間戳。基于電站控制系統原理樣機的時鐘同步系統構建一個SOE最小系統:將同一SOE變位事件,同時發送給兩對不同控制器管轄下的兩個不同SOE模塊;通過對兩個SOE模塊記錄的SOE事件時標偏差,可以進一步了解整個電站控制系統的時鐘同步精度是否滿足電站控制系統需求。SOE最小系統結構如圖3所示。

圖3 SOE 最小系統結構示意圖
首先,組建一個SOE最小系統,將任意兩個SOE模塊(采樣頻率為10 kS/s)、兩對控制器以及測試上位機都通過網線連接到各自的交換機上,SOE信號發生器分別接入兩個SOE模塊的任一通道。
抓取兩個SOE模塊記錄的大量SOE點,通過分析,在測試上位機顯示兩個從時鐘節點間SOE事件的時間戳偏差,如圖4所示。

圖4 SOE事件時間戳偏差
由圖4可以看到,在電站控制系統時鐘同步穩定過程中,SOE事件時間戳偏差在±300 μs以內,滿足SOE相對時間誤差不大于1 ms的要求。由于SOE事件時間戳偏差是由電站控制系統的時間同步精度決定的,因此,SOE時間戳偏差測試結果也間接表明了整個電站控制系統時鐘達到了微秒級的時鐘同步精度。
基于SoC FPGA抓包輔助技術實現的時鐘同步系統,其所達到的時鐘同步精度指標完全滿足電站控制系統時鐘同步精度的要求,并在核電儀控系統工程樣機上得以驗證。基于本設計的電站控制系統已成功應用于國內某火力發電廠的200 MW機組,計劃進一步應用于更大功率的發電機組;驗證成熟后,將正式用于核電站控制系統中。
為了滿足電站控制系統中多網絡節點統一時鐘源和精確時鐘同步的要求,本文設計并實現了基于SoC FPGA抓包的IEEE 1588對時協議時鐘同步。該設計基于SoC FPGA 抓包,獲得了精確的時間戳,降低了電站控制系統時鐘同步設計的復雜度。硬件采用SoC FPGA實現時鐘節點,提高了電站控制系統的集成度。
通過對電站控制系統平臺原理樣機的長期系統測試和實際應用,該設計所達時鐘精度指標完全滿足電站控制系統全站時鐘節點設備同步時鐘精度的要求,從而可廣泛應用于核電、火電、燃機等各領域的電站控制系統中,保障電站控制系統的穩定、可靠、安全運行。
參考文獻:
[1] 顧軍.AP1000核電廠系統與設備[M].北京:原子能出版社,2010:465-475.
[2] 王常力,羅安.分布式控制系統(DCS)設計與應用實例[M].北京:電子工業出版社,2010:51-67.
[3] 廉玉.工業以太網時鐘同步的研究與設計[D].天津:天津工業大學,2012:21-50.
[4] 汪祺航,吳在軍,趙上林,等.IEEE 1588時鐘同步技術在數字化變電站中的應用[J].電力系統保護與控制,2010,38(19):137-141.
[5] 任愛鋒,羅豐,宋士權,等.基于FPGA的嵌入式系統設計 [M].西安:西安電子科技大學出版社,2014:179-239.
[6] 楊傳順,袁建,李國華.分布式控制系統精確時鐘同步技術[J].自動化儀表,2012,33(4):66-69.
[7] 曹禹,鄒磊,時維鐸,等.基于IEEE 1588時間同步系統的硬件實現[J].電測與儀表,2013,50(3):107-112.
[8] EIDSON J,KANG L.IEEE standard for a precision clock synchronization protocol for networked measurement and control systems[C]//IEEE,2008.
[9] 覃斌毅,陳鐵軍,邱杰,等.基于IEEE 1588協議時鐘同步精度影響因素的研究[J].計算機測量與控制,2014,22(10):3312-3315.
[10]戚明珠.基于FPGA的IEEE 1588 IP核開發[D]. 濟南:山東大學,2012:34-63.