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