孫雪淋 秦明偉 胡貴林
(1.西南科技大學信息工程學院,四川綿陽 621010;2.重慶九洲星熠導航設備有限公司,四川綿陽 621000)
當今世界,科技快速發展,高精度授時及時間同步顯得非常重要,尤其在電力、通信以及軍事領域等等。北斗作為中國獨立研發的衛星系統,為電力全網時間同步提供了安全保障。近年來,基于北斗的授時研究也隨著北斗衛星系統不斷完善而取得了進一步突破。王東霞等人對北斗RDSS授時服務性能做出了理性評估;沈飛等人設計了基于MSP430單片機的授時系統設計;劉婭等人分析了一種基于單頻的授時方法等均達不到我國電力組網等領域的授時精度。而當前我國電力組網、信息通信組網的建設完全依賴于高精度的時間同步系統,現有的授時系統往往做不到精度與成本兼顧。針對此問題,設計了一種低功耗、低成本并能兼顧高精度的時間同步系統。以北斗時作為標準時間尺度,保障授時時間的準確性,結合STM32芯片以及TDC測量技術,并利用PID控制器對系統偏差調整完善,從而構建出高精度授時系統。
系統采用ARM的設計結構,對比標準1PPS與1PPS的相位差,結合TDC對秒脈沖相位的高精度測量,采用PID算法調整本地OCXO時鐘頻率,使OCXO的輸出穩定頻率,最終達到高精度授時目的。系統結構框圖如圖1所示。
授時系統主要包括4個模塊,分別是1PPS的生成模塊、參考捕獲時間同步模塊、鑒相模塊以及PID控制模塊。導航衛星信號接收機接收北斗衛星信號,輸出標準參考1PPS并輸入到鑒相器模塊;恒溫晶振經ARM分頻得到本地時鐘,經秒脈沖生成模塊輸出1PPS輸入到鑒相器模塊;鑒相模塊輸出的相位誤差值影響到PID控制器模塊,從而調整恒溫晶振的壓控值,進而達到設計目的。

圖1 系統總體方案框圖Fig.1 Block diagram of the overall system scheme
選用性能相對穩定的恒溫晶振OCXO為STM32芯片提供10MHz的頻率,ARM芯片內部集成了鎖相環PLL,通過軟件設置PLL將10MHz倍頻到150MHz,為整個系統提供工作時鐘,定時器TIM1和TIM2在系統時鐘下生成1PPS,同時生成與1PPS具有固定相位差的1PPS_TDC信號,如圖2所示。
在芯片內部1PPS與標準1PPS進行相位比較,得到鑒相值輸入到PID控制器調整恒溫晶振OCXO相應的壓控值進而得到相對穩定準確的OCXO輸出頻率,當OCXO的輸出頻率調整到一定范圍,即1PPS與標準1PPS相位差小于某閾值時,采用TDC對標準1PPS和1PPS_TDC進行相位差測量,并將測量值反饋到PID控制器。

圖2 硬件結構設計框圖Fig.2 Block diagram of hardware structure design
1PPS即1秒1個秒沖信號,1PPS的生成目前主要有FPGA/CPLD分頻生成方式和MCU定時器生成方式兩種,本系統采用STM32的定時器輸出捕獲功能完成1PPS的生成。1PPS生成過程如圖3所示。

圖3 1PPS生成過程圖Fig.3 Synchronous 1PPS generation
16位定時器時基時鐘頻率為150MHz,分辨率約為6.67ns,最多能計時為437μs,無法計時到1s,雖然通過提高時基時鐘頻率的方法可以增大計時范圍,但是這樣會帶來分辨率的降低,直接影響授時系統跟蹤標準1PPS的精度,故本系統采用二級定時器的方式生成1PPS,這樣既可以保證計時范圍,又能兼顧高精度。如圖3所示,采用的TIM1設為粗分辨率時鐘,時鐘頻率為150MHz,分頻系數為60 000,周期為2 500,則其每次加1表示時間增加400μs,周期時間即為1s,TIM2為細分辨率時鐘,時鐘頻率也為150MHz,分頻系數為1,周期為60 000,則TIM1每次加1表示時間增加1/150μs,周期時間為400μs。在某時刻捕獲輸出1PPS信號,由于STM32為順序運行芯片,為準確在某時刻輸出時沿,需使用輸出捕獲功能,若這里將TIM1的計數值看作小數,TIM2的計數值看作整數,則在某時刻0.0捕獲輸出高電平,在249.0時刻輸出低電平,即可捕獲輸出1PPS信號,脈沖寬度為100ms。
T
,鑒相分辨率為ps級。且TDC只能測量兩個具有相位差的信號的時間間隔近。近幾年運用最多的TDC測量技術包括基于時鐘脈沖的直接計數法的時間測量、基于抽頭延遲線法的時間測量以及基于游標法的時間測量等。其中直接計數法是利用系統時鐘對脈沖信號進行計數,當計數值達到一定值時計算出時間值,從而達到時間測量目的,測量精度往往時鐘頻率有關,測量精度很難達到ps級,因此無法應用在有精密測量要求的場合中;抽頭延時線法是由N
個具有相同傳輸延時時間t
觸發器線性連接組成,被測量的start信號在觸發器間傳輸,抽頭信號stop信號鎖定start信號時表示采樣結束,然后根據采樣結果可以知道start信號傳輸多少個觸發器,即測量時間間隔為T
=nt
,測量精度取決于觸發器的傳輸延遲時間,一般測量精度能達到(101~102)ps量級,基本適用大多數的測量要求;游標法同機械游標卡尺的測量方式相似,其原理是針對固定相位差的時鐘信號T
和T
,T
信號和T
信號同時在start信號和stop信號間傳遞,當信號重合時采樣結束,分別記錄T
信號和T
信號的計數值n
和n
,則有T
=n
T
+n
T
。基于上述分析,本設計選用基于抽頭延遲線法的TDC時間測量技術,,提供給TDC的參考時鐘為5MHz,則被測時差不能超過400ns。而1PPS和標準1PPS的相位不是固定某個超前于某個,在對齊時沿和穩定狀態下兩個1PPS信號都會交替超前,顯然不能直接將1PPS作為Start或Stop信號,必須另外生成1PPS_TDC信號作為TDC輸入Start信號,而1PPS_TDC必須超前標準1PPS,基于此,本系統設置固定超前200ns,即能滿足要求。
得到與北斗時間同步的1PPS信號是高精度授時系統的關鍵功能,這個過程通過ARM內部處理。同步的過程如圖4所示。

圖4 參考捕獲同步流程圖Fig.4 Flowchart of reference capture synchronization
由于OCXO上電需要加熱內部恒溫槽,此段時間頻率變化較大,不宜進行對準校時,因此需要預熱一段時間后再與參考源同步,所以在上電初始化后TIM1和TIM2開始計數時,需先等待預熱時間完成,而預熱時間根據本地時鐘源OCXO或原子鐘特性決定,再判斷參考是否有效,若參考有效則捕獲標準1PPS的上升沿,并讀取定時器TIM1和TIM2的計數值,然后重置放秒位置,即此時捕獲輸出高電平,在100ms后捕獲輸出低電平,此過程直接調整相位,使1PPS相位對齊標準1PPS。調相過程一般在上電第一次同步或者相位差相差過大時進行,當相位較小時通過調整OCXO頻率來調整1PPS相位,此過程為調頻過程。通過調頻和調相,使恒溫晶振輸出具有精準的1PPS和頻率信號。
當系統上電同步后由于OCXO頻率尚未調準的原因,1PPS信號和標準1PPS信號的相位還會存在小幅度變化,這時候需要利用PID算法根據相位值調整頻率使相位調準對齊。
這里的鑒相包括采用系統時鐘捕獲時標的定時器鑒相部分和TDC直接測量兩秒脈沖信號相位差的TDC鑒相部分。其中定時器鑒相的部分直接采用1PPS參考輸入捕獲的方式,獲取到1PPS參考時標,與1PPS時標基準相比較得出相差。TDC鑒相部分則由TDC測量后通過SPI傳到ARM。
由于標準1PPS來自于BD衛星導航系統,這些參考信號在傳輸到終端過程中不僅會受到電離層、對流層等外界因素影響,同時這也有可能出現跳變的情況,因此在鑒相過程中必須進行濾波,采用中位值遞推平均濾波方法,保證了相位差的純凈和準確。所以在得到相位差后,進行了濾波,具體操作步驟如下。
1)連續取N
個相位值,將其排列成一個隊列,長度固定為N,采用先進先出原則,當采樣到一個新數據時就將該數據放入隊尾,并丟掉隊首的一個數據;2)把隊列中的N
個數據按照從大到小進行排列,去掉頭尾兩數,即數據中的最大值和最小值,而后計算剩下數據的算術平均數并作為相位差值輸出。這種濾波方法優點是不僅能夠消除脈沖性偶然出現的干擾,還能抑制周期性干擾。
PID控制器是控制系統中最常用的閉環控制器,如圖5所示,PID控制器通過比例調節、積分調節、微分調節共同作用被控對象的輸入偏差,通過線性擬合輸出控制量,該控制量又反饋到被控對象輸入端,從而對輸入偏差進行修正。

圖5 PID控制器原理框圖Fig.5 Principle of PID controller
位置式PID和增量式PID算法是現今最常用的PID算法,本系統主要根據相位差Δu
來調整恒溫晶振的壓控值,進而調準1PPS和標準1PPS的相位,形成閉環控制,達到一個動態平衡狀態。由于增量式PID算法計算量較小,算法復雜更低,故系統采用該PID算法。其公式如式(1)所示Δu
=u
-u
-1
(1)
式中:u
——當前時刻的壓控值;u
-1——上一時刻的壓控值;T
——采樣周期;e
——5s前相位差均值;e
-1——10s前相位差值;K
——比例系數;T
——微分系數;T
——積分系數。其中采樣周期時間選擇5s,壓控值5s改變一次,最終得到的Δu
即為當前壓控值與上一壓控值的差值。從式(1)可以看出,確定PID參數是算法的關鍵所在。在PID算法中,比例調節的作用是對期望值與當前值的偏差做出瞬間反應,當比例系數越大時,調節力度增大,控制參數越穩定,反之比例系數越小,控制參數越容易震蕩;積分調節是用來對比例調節環節產生的余差的積累與消除,通常與比例調節共同作用;而微分部分主要是調控偏差的變化速度,進而阻止偏差的變化。確定PID參數的方法很多,本設計的參數采用經驗法和湊試法,按照比例(P)、積分(I),微分(D)的順序依次進行,步驟如下。1)先令T
和T
的值為零即控制器為純比例控制器,再逐漸調節比例系數Kp的值,當達到等幅振蕩時,記錄臨界比例系數K
和臨界振蕩周期T
值;2)根據步驟(1)中K
和T
的臨界值,采用經驗公式,計算出調節器K
,T
和T
的值;3)最后再根據實際情況進一步調整。值得注意的是,不同的OCXO如果壓控范圍不同,需要適當調整PID參數。
根據設計,在相同環境下選擇同批號硬件同批號生產的兩塊樣機板進行試驗調試。兩塊樣機通過串口連接電腦PC端,并通過串口助手顯示查看時間信息,同時利用示波器對比輸出秒脈沖與授時精度小于10ns的時標儀的相位誤差——授時精度,根據經驗調整PID參數,詳細記錄在不同PID參數下樣機輸出穩定1PPS信號的授時時間以及授時精度,記錄結果見表1。

表1 經典法控制器參數Tab.1 Controller parameters of classical method控制器類型KpTiTd1號樣機授時成功時間2號樣機授時成功時間1號樣機授時精度2號樣機授時精度P0.5Ku//6分15秒6分03秒57ns60nsPI0.55Ku0.85Tu/3分45秒3分53秒33ns30nsPID0.6Ku0.5Tu0.12Tu1分30秒1分17秒13ns15nsP0.43Ku//5分48秒6分09秒49ns51nsPI0.57Ku0.93Tu/4分13秒4分37秒26ns23nsPID0.66Ku0.47Tu0.25Tu1分07秒1分13秒19ns17ns
通過對PID參數的試湊調整,分析實驗結果數據,當3個參數均大于或者小于K
=4,T
=1,T
=0.24時,授時精度上下浮動較大,由于PID參數的不同設定,授時成功時間也在浮動,考慮授時精度小就無法兼顧授時成功時間。所以綜合考慮,當選用K
=4,T
=1,T
=0.24,此時的K
=6.67,T
=2,授時精度能達到13ns即在20ns以內,授時成功時間也較短。實驗結果符合預期設想,基本能達到設計初衷。電力、通信等領域對時間的精度有著非常高的要求,對此需要高精度授時系統。在此條件下,本文設計的基于TDC和ARM的高精度授時系統是一個低成本、實現簡單又能達到高精度授時目的系統,并詳細闡述了各個模塊設計。系統在正常工作的情況下,通過鑒相、PID控制器調整恒溫晶振時鐘頻率,進而達到高精度授時要求。從實驗結果可知,授時精度低于20ns,完全符合高精度授時標準。保障了電力、通信等系統授時要求。