郭超一,袁平路
(北京中水科水電科技開發(fā)有限公司,北京 100038)
隨著自動控制系統(tǒng)在各行各業(yè)的應用越來越廣,為各個系統(tǒng)中運行的自動化裝置進行統(tǒng)一的對時也成為一種必須的要求,目前應用比較多的對時系統(tǒng)是衛(wèi)星同步時鐘對時系統(tǒng)。為保證時鐘對時系統(tǒng)的穩(wěn)定、高可靠性,電力系統(tǒng)的時間同步系統(tǒng)技術規(guī)范規(guī)定,主時鐘的輸入時源信號主要包括獨立時間源基準信號和關聯(lián)時間源基準信號。為實現(xiàn)多源判決機制,需要對時間源的有效性進行檢測。在時間源的可用有效性檢測中主要是檢測多時間源之間以及與內部時鐘的一致性和秒沿互差是否小于某一閾值(如1 μs)。
為實現(xiàn)檢測兩個時間源的秒沿互差,需要設計硬件電路提取兩個秒沿互差,然后通過軟件對差值進行測量,從而判斷時間源的可用有效性,選取滿足精度要求的時間源進行跟隨。
硬件電路的作用主要是用比較的方式,將兩個脈沖前沿的差值提取出來,便于后續(xù)的測量。在實際測試中,使用“異或門”進行兩個秒沿互差的提取比較簡單[1]。電路如圖1 所示。
圖1 秒沿互差提取電路
在電路中,分別將時間源A 的秒脈沖和時間源B 的秒脈沖接入到“異或門”的兩個輸入端,在輸出端會將A 與B 的差值(A-B)以脈沖的形式表現(xiàn)出來,脈沖的高電平寬度即是兩個時間源的秒沿互差。
因為時間源A 和時間源B 的秒脈沖在前沿和后沿都可能會存在差值,所以圖中的電路在輸出端(A-B)可能會產(chǎn)生前后兩個脈沖。如圖2 所示。
圖2 秒沿互差提取電路的輸出結果
輸出結果顯示的兩個脈沖,即為兩個時間源脈沖前沿的差值和脈沖后沿的差值。在時間源可用性分析時所測量的秒沿互差為脈沖前沿的差值,因此秒沿互差 (A-B) 不能直接輸出到CPU 的測量IO 口,需要在硬件電路的輸出端加入一個“與門”控制端“Ctrl”,通過CPU 的IO 口來控制秒沿互差的輸出結果,將脈沖前沿的差值 (PPSX) 輸入到CPU 的測量端口,從而正確的測量秒沿互差。圖3 即為通過IO口進行控制后,CPU 測量IO 口的輸入波形。
圖3 CPU 測量IO 口的輸入波形電路的輸出結果
脈沖寬度測量軟件程序主要包括主程序[2],定時器中斷子程序,外部中斷子程序,計算子程序,信息輸出子程序等部分。
主程序是進行整個系統(tǒng)的初始化,按照既定的任務調取各個子程序進行各自相應的功能;定時器中斷子程序是用于計算秒沿互差的值;外部中斷子程序是標定基準秒脈沖的測算時刻;計算子程序是對測量到的秒沿互差值進行處理,得到標準規(guī)定的差值格式;信息輸出子程序是將測量的秒沿互差信息按照約定格式進行輸出。
主程序需要進行系統(tǒng)參數(shù)、定時器中斷參數(shù)、外部中斷參數(shù),計算單元參數(shù)的初始化,通過IO 口控制秒沿互差PPSX 輸出到測量IO 口,調用計算子程序進行計算并將計算結果輸出等工作(圖4)。
圖4 主程序流程圖
外部中斷子工作流程如圖5 所示。在A 或B秒脈沖到來時,記錄下此時的時刻,重置啟動定時器的初值。以便在下一次A 和B 脈沖前沿的秒沿互差到來之前,打開輸出到CPU 測量IO 口的PPSX信號,并在A 和B 脈沖后沿的秒沿互差到來之前關閉PPSX 信號的輸出,從而將后沿秒沿互差屏蔽掉,防止CPU 測量到秒脈沖后沿的秒沿互差,對前沿差的測量造成干擾或產(chǎn)生錯誤值。
圖5 外部中斷處理流程
定時器中斷子程序用于測量CPU 的IO 口輸入的秒沿互差脈沖的寬度,其工作流程如圖6 所示。
圖6 定時器中斷處理流程
在定時器初始化時,應該將工作模式設置為從模式中的門控模式[3]。當秒沿互差的脈沖前沿到來時,定時器會捕獲當前定時器的計數(shù)值,當秒沿互差的脈沖后沿到來時,定時器會停止計數(shù)。當定時器產(chǎn)生中斷時,表明定時器已經(jīng)完成了一個計時周期,計時周期數(shù)加1。
當秒沿互差的后沿到來后,將定時器的捕獲初值,定時器的終值和定時器的溢出周期數(shù)進行保存,以便在計算和處理子程序中對秒沿互差進行計算和處理。
本文使用硬件電路將兩個時間源的秒沿互差提取成一個單脈沖,利用單片機定時器的門控模式功能進行單脈沖的寬度測量,再通過計算得出兩個時間源的秒沿互差值,并通過串口的方式將差值進行輸出。
根據(jù)本文介紹的秒沿互差的測量方法,通過在BSS-3 型衛(wèi)星同步時鐘上,對北斗衛(wèi)星信號時間源、GPS 衛(wèi)星信號時間源和其他關聯(lián)信號時間源進行測試,能夠將測量精度精確到100 ns 的級別,滿足了時鐘系統(tǒng)在多時間源可用有效性檢測中的應用,符合相關標準的要求。