專利名稱:一種基于gps秒脈沖的時鐘源裝置及其控制方法
技術領域:
本發明涉及一種基于GPS秒脈沖的長時間工作無累計誤差的高精度時鐘源裝置 及其控制方法。
背景技術:
隨著電子技術的發展,人們對儀器測量的精度和同步性要求也越來越高,尤其是 在大地電磁測量中或者在電力系統的測量中,往往要求分布在不同區域的儀器能夠實現同 步采集,并且在相當長的時間內保證采樣的同步性,這便對時鐘系統的穩定性提出了非常 高的要求。不僅要求每個儀器的時鐘要穩定,而且各個儀器之間的時鐘也要匹配。而目前 市場上的晶振短時穩定性非常高,但長時間工作后存在很大的累計誤差。此外,不同晶振之 間即使是同一批生產的晶振,個體間也是有一定的差異的,應用在高精密的儀器中將會帶 來嚴重的累計誤差。而高精度的晶振,價格昂貴,比如穩定度為0. 035ppb(ppb為十億分之 一)的晶振,價格要7000元以上,同樣也存在累計誤差。
發明內容
本發明針對目前高精度時鐘源存在的上述缺點,提供了一種基于GPS秒脈沖的高 精度時鐘源裝置,該時鐘源裝置運用閉環負反饋控制的原理,具有很高的精度和穩定性,且 無累計誤差。本發明時鐘源的輸出頻率穩定在壓控晶振標頻率上,便于多臺設備間的同步 工作。為達到以上目的,本發明是采取如下技術方案予以實現一種基于GPS秒脈沖的時鐘源裝置,包括GPS模塊、壓控晶振模塊、時鐘分配芯片、 單片機模塊,所述單片機模塊包括集成在單片機內部的A計數器和B計數器、一個數模轉換 器DAC和一個I/O接口 ;所述時鐘分配芯片有兩路時鐘通道,均具有輸入口和控制使能端; 壓控晶振模塊的時鐘輸出除了可以連接到使用設備上作為設備的時鐘源外,還連接在兩路 時鐘通道的輸入口,其中第二路時鐘通道的使能端接地,輸出端連接至單片機模塊的A計 數器;第一路時鐘通道的使能端則受GPS模塊輸出的秒脈沖控制,輸出端連接至單片機模 塊的B計數器.GPS模塊輸出的秒脈沖還連接至單片機模塊的I/O接口 ;單片機模塊的數模 轉換器DAC的電壓輸出連接至壓控晶振模塊的壓控端。一種前述基于GPS秒脈沖的時鐘源裝置的控制方法,包括下述步驟(1)將單片機模塊初始化,包括的A計數器、B計數器、數模轉換器DAC和I/O接口 的初始化;(2)對壓控晶振進行定標首先,根據模數轉換公式^·χ212 =ZMCjato計算,即
將給壓控晶振的控制電壓轉換為相應的給數模轉換器DAC數量值,記為DAC_data ;在0到 3. 3V內將控制電壓分為j組電壓值,這j組電壓值根據上述模數轉換公式轉換為j組數模 轉換器DAC數量值記為DAC_data[i] (i = 0,1,2……j-2, j_l),其中j的值根據實際需要
4而定.其次,單片機模塊每秒依次賦予數模轉換器DAC —個數量值DAC_data [i],數模轉換 器相應的輸出一個控制電壓給壓控晶振模塊的壓控端,根據雙計數器計頻法,計算出DAC_ data[i]對應壓控晶振模塊輸出的頻率,記為bia0ding[i] (i = 0,1,2……j~2, j_l);(3)閉環負反饋控制首先,單片機模塊檢測到GPS秒脈沖高電平到來后,計算壓 控晶振模塊前N(N = 0,1,2,3……)秒的實際累計輸出頻率,即將前N秒每秒計得壓控晶振 實際輸出頻率data累加起來,記為zonghe,計算data的方法用雙計數器計頻法;計算前N 秒的理想累計輸出頻率,即將前N秒每秒的理想頻率32768000Hz累加起來,記為zongnum =32768000*N ;計算前N秒累計誤差記為error = (zonghe-zongnum).為了抵消當前存在 的累計誤差,計算第(N+1)秒的期望頻率記為xin = 32768000-error ;其次,根據步驟(2) 得到壓控晶振的定標值進行計算,得出第(N+1)秒的期望頻率xin對應給數模轉換器DAC 的數量值;(4)循環重復步驟(3)的閉環控制。上述控制方法中,步驟(2)、(3)所述的雙計數器計頻法包括下述步驟a.單片機模塊的1/0接口 P2. 1檢測到第K秒(K = 1,2,3……)秒脈沖高電平的 到來,B計數器由于第一時鐘通道被截止而停止計數,單片機模塊將此時B計數器的計數值 保存在變量tempi中。當GPS秒脈沖高電平過去后,將A計數器的計數值與B計數器的計 數值設置為相等;當第(K+1)秒秒脈沖高電平到來時,單片機模塊再將B計數器的計數值保 存在temp2中οb.在第K秒內,每當A計數器計數值計值到65535時,單片機模塊會產生一次中 斷。單片機模塊記錄第K秒內A計數器的中斷次數,記為num。c.計算第K秒壓控晶振輸出的頻率記為data = 65536氺num+temp2_templ。本發明基于GPS的精確秒脈沖校準的時鐘源裝置,利用閉環負反饋控制原理,將 壓控晶振的輸出頻率控制在其標稱頻率上,供測量系統多臺設備同步使用。實驗結果表明, 壓控晶振受閉環控制之后,其累計誤差能控制在幾個脈沖之內。
圖1為本發明裝置的結構框圖。圖2為本發明單片機模塊中16位A計數器和B計數器的工作模式圖。圖3為本發明控制流程圖。圖4根據標定值計算期望頻率xin對應給數模轉換器DAC數量值示意圖。
具體實施例方式以下結合附圖及具體實施例對本發明作進一步的詳細說明。一種基于GPS秒脈沖的時鐘源裝置,如圖1所示包括GPS模塊、壓控晶振模塊、時 鐘分配芯片、單片機模塊,單片機模塊包括單片機內部集成的A計數器和B計數器、一個數 模轉換器DAC和一個1/0接口 ;時鐘分配芯片有兩路時鐘通道,均具有輸入口和控制使能 端;壓控晶振模塊的時鐘輸出除了可以連接到使用設備上作為設備的時鐘源外,還連接在 兩路時鐘通道的輸入口,其中第二路時鐘通道的使能端接地,輸出端連接至單片機模塊的A計數器;第一路時鐘通道的使能端則受GPS模塊輸出的秒脈沖控制,輸出端連接至單片機 模塊的B計數器.GPS模塊輸出的秒脈沖還連接至單片機模塊的I/O接口 P2. 1 ;單片機模 塊的數模轉換器DAC的電壓輸出連接至壓控晶振模塊的壓控端。下面對該裝置的各個模塊的工作原理作一詳細描述GPS模塊本發明使用Trimble (天寶)系列的成品GPS模塊,該模塊可恒定輸出 秒脈沖。在搜到衛星并獲得星歷、年歷、經緯度后可以提供精確的秒脈沖(PPS——pulse per-second)。該秒脈沖具有1毫秒高電平脈寬,剩余的999毫秒為低電平。該秒脈沖統計 精度為15納秒(1 σ ),即GPS時鐘誤差落在1 σ范圍內的概率為0. 6828,但其不存在累計 誤差。本發明中,使用該秒脈沖作為時間基準,按照秒脈沖的節拍每秒對壓控晶振進行一次 控制。壓控晶振模塊本發明使用標稱頻率為32768000Hz的壓控晶振,該壓控晶振 的線性度為2. 6%即理想情況下隨著壓控晶振的壓控端的電壓線性單調遞增,壓控晶 振輸出的頻率也是線性單調遞增的。壓控端電壓在0-3. 3V變化時,壓控晶振輸出頻率 在-83. 98ppm 114. 44ppm(ppm為百萬分之一)變化,也就是說壓控端電壓在0-3. 3V變化 時,壓控晶振輸出頻率波動就應為32768000*(83. 98+114. 44)ppm = 6501. 83個頻率。即使 給壓控晶振電壓控制端給一個固定的控制電壓,壓控晶振每秒輸出的頻率也不可能穩定不 變,壓控晶振輸頻率出會隨時間的變化而變化,如果不對其予以控制,長時間工作后壓控晶 振的累計誤差將非常大。本發明通過在GPS標準秒脈沖的節拍下實施每秒調節該壓控晶振 控制端的控制電壓,從而控制其輸出頻率,來完成壓控晶振的高精度且無累計誤差的工作。時鐘分配芯片本發明中使用IDT49FC3805芯片作為時鐘分配芯片,該芯片有兩 路時鐘通道,且均具有控制使能端,低電平使能。壓控晶振的時鐘輸出都接在兩路時鐘通道 的輸入口,其中一路通道的使能端恒有效,該路時鐘輸出至單片機的A計數器,作為對壓控 晶振模塊輸出脈沖的恒定計數源;另一路通道的輸出至單片機的B計數器,該通道的使能 端則受GPS模塊秒脈沖的控制,秒脈沖為低電平的時候,時鐘可以無阻的通過;當秒脈沖為 高電平的時候,由于通道使能端為高電平,通道被截止,壓控晶振模塊輸出的脈沖也就不能 到達B計數器,B計數器暫停計數,B計數器的計數值供單片機讀數。單片機模塊本發明使用TI公司的單片機MSP430F169作為主控單元。本方案使 用到單片機模塊的資源有集成在單片機內部的16位的A計數器(簡稱TA)、16位的B計數 器(簡稱TB)、12位數模轉換器DAC和一個I/O 口 P2. 1。其中兩個16位A計數器、B計數 器均對通過時鐘分配芯片的脈沖進行計數,兩個計數器的計數模式是一模一樣的,計數模 式為連續模式(Continuous Mode),在這個計數模式下,計數周期為65536個時鐘周期即計 數器從0計到FFFFH(65535),又回到0重新計數,如圖2所示。當計數器計數從65535到0 時,設置中斷標志位.這樣,如果計數器允許中斷,計數器計數值計值到65535時,單片機便 產生一次中斷。在本方案中,A計數器允許中斷,B計數器是不允許中斷的,也就是說只有A 計數器計數到65535時,引發單片機的中斷,但B計數器計數到65535時,B計數器計數值 歸0單片機不產生中斷。此外,A計數器和B計數器都有一個執行計數的單元分別為TAR 寄存器和TBR寄存器,這兩個寄存器都是可讀的,它們記錄了進入計數器的脈沖個數。如果 要讀取TAR寄存器或TBR寄存器的值,必須是將計數器停止后才能準確讀出當前計得的脈 沖數,否則,如果計數器處于高速計數的狀態,讀取TAR寄存器或TBR寄存器的值將是無法預計的,所以本發明使用兩個計數器配合計算壓控晶振模塊的輸出頻率,即下述的雙計數 器計頻法。12位的數模轉換器DAC的內部電壓參考源為4. 5V,因此數字量與模擬量之間的
Γ ΑΓ data
相互轉換公式為^X4.5 = Foai,其中DAC_data為給數模轉換器DAC的數字量。Vout
是給壓控晶振模塊壓控端的控制電壓。I/O 口 P2. 1處于掃描狀態,不斷地檢測是否有IPPS 的高電平的到來。在介紹控制步驟之前,首先說明一下計算壓控晶振模塊的輸出頻率的雙計數器計 頻法a.單片機模塊的I/O接口 P2. 1檢測到第K秒(K = 1,2,3……)秒脈沖高電平的 到來,B計數器由于第一時鐘通道被截止而停止計數,單片機模塊將此時B計數器的計數值 保存在變量tempi中。當GPS秒脈沖高電平過去后,將A計數器的計數值與B計數器的計 數值設置為相等。當第(K+1)秒秒脈沖高電平到來時,單片機模塊再將B計數器的計數值 保存在temp2中。b.在第K秒內,每當A計數器計數值計值到65535時,單片機模塊會產生一次中 斷。單片機模塊記錄第K秒內A計數器的中斷次數記為num。c.計算第K秒壓控晶振輸出的頻率記為data = 65536氺num+temp2_templ。如圖3所示,一種基于圖1的GPS秒脈沖的時鐘源裝置的具體控制方法如下述步 驟(1)將單片機模塊初始化,包括的A計數器、B計數器、數模轉換器DAC和I/O接口 等的初始化。(2)對壓控晶振進行定標。首先,根據模數轉換公式^·χ212 =ZMCjato計算,即
將給壓控晶振的控制電壓轉換為相應的給數模轉換器DAC數量值,記為DAC_data。在0到 3. 3V內將控制電壓分為j組電壓值,這j組電壓值根據上述模數轉換公式轉換為j組數模 轉換器DAC數量值記為數組DAC_data[i] (i = 0,1,2……j-2, j_l),其中j的值根據實際 需要而定.其次,單片機模塊每秒依次賦予數模轉換器DAC—個數量值DAC_data[i],數模 轉換器相應的輸出一個控制電壓給壓控晶振模塊的壓控端,根據上述雙計數器計頻法,計 算出DAC_data[i]對應壓控晶振模塊輸出的頻率,記為biaoding[i] (i = 0,1,2……j-2, j-1)。(3)閉環負反饋控制首先,單片機模塊檢測到GPS秒脈沖高電平到來后,計算壓 控晶振模塊前N(N = 0,1,2,3……)秒的實際累計輸出頻率即將前N秒每秒計得壓控晶振 實際輸出頻率data累加起來,記為zonghe,計算data的方法用前述雙計數器計頻法;計 算前N秒的理想累計輸出頻率即將每秒的理想頻率32768000Hz累加起來記為zongnum = 32768000*N ;計算前N秒累計誤差記為error = (zonghe-zongnum).為了抵消當前存在的 累計誤差,計算第(N+1)秒的期望頻率記為xin = 32768000-erroro其次,根據第二步得到 壓控晶振的定標值進行計算,計算出第(N+1)秒的期望頻率xin對應給數模轉換器DAC的 數量值。計算方法如下由于本方案用的壓控晶振控制電壓與輸出頻率之間關系是正向線性單調的,在相
7鄰的兩個定標點之間可認為壓控晶振模塊的壓頻特性曲線是直線,那么如圖4所示單片 機模塊判斷出期望頻率xin介于biaodingfc]和biaodingfc-l]之間,其中η e
。 根據相似三角形原理計算xin所對應的數模轉換器數量值DAC_data的公式如下 最后,給數模轉換器DAC的數量值DAC_data之后,數模轉換器DAC可以輸出對應 的控制電壓V。ut來控制壓控晶振。這樣,如果error大于0,說明實際累計頻率比期望的累 計頻率大,所以減小(N+1)秒給壓控晶振的控制電壓,這樣(N+1)秒的壓控晶振輸出頻率就 會減小;反之,增大(N+1)秒壓控晶振的控制電壓,這樣(N+1)秒的壓控晶振輸出頻率就會 增大,從而能抵消累計誤差。通過這種方法,我們可以將控制壓控晶振輸出頻率長時間精確 穩定在壓控晶振的標稱頻率上。由于GPS秒脈沖與晶振時鐘不可能完全同步,計數器在對 晶振頻率計數時,會引入1個計數值的測量誤差,則測量壓控晶振模塊頻率存在士 1個脈沖 的誤差。此外,由于實驗采用12位數模轉換器DAC精度有限,因此實驗結果得出的累計誤 差控制在幾個脈沖范圍內。(4)循環重復第三步的閉環控制。
權利要求
一種基于GPS秒脈沖的時鐘源裝置,其特征在于,包括GPS模塊、壓控晶振模塊、時鐘分配芯片、單片機模塊,所述單片機模塊包括集成在單片機內部的A計數器和B計數器、一個數模轉換器DAC和一個I/O接口;所述時鐘分配芯片有兩路時鐘通道,均具有輸入口和控制使能端;壓控晶振模塊的時鐘輸出除了可以連接到使用設備上作為設備的時鐘源外,還連接在兩路時鐘通道的輸入口,其中第二路時鐘通道的使能端接地,輸出端連接至單片機模塊的A計數器;第一路時鐘通道的使能端則受GPS模塊輸出的秒脈沖控制,輸出端連接至單片機模塊的B計數器,GPS模塊輸出的秒脈沖還連接至單片機模塊的I/O接口;單片機模塊的數模轉換器DAC的電壓輸出連接至壓控晶振模塊的壓控端。
2.—種權利要求1所述基于GPS秒脈沖的時鐘源裝置的控制方法,其特征在于,包括下 述步驟(1)將單片機模塊初始化,包括的A計數器、B計數器、數模轉換器DAC和I/O接口的初 始化;(2)對壓控晶振進行定標首先,根據模數轉換公式^"X212—力to將給壓控晶振模塊的控制電壓V。ut轉換為相應的給數模轉換器DAC的數量值DAC_data ;在0到3. 3V 內將控制電壓分為j組電壓值,這j組電壓值根據上述模數轉換公式轉換為j組數模轉換 器DAC的數量值記為DAC_data[i]i = 0,1,2……j_2,j_l,其中j的值根據實際需要而定; 其次,單片機模塊每秒依次賦予數模轉換器DAC —個數量值DAC_data [i],數模轉換器相應 的輸出一個控制電壓給壓控晶振模塊的壓控端,根據雙計數器計頻法,計算出DAC_data[i] 對應壓控晶振模塊輸出的頻率,記為bia0ding[i],i = 0,1,2……j-2,j-1 ;最后得到定標 值 DAC_data[i]、biaoding[i];(3)閉環負反饋控制首先,單片機模塊檢測到GPS模塊秒脈沖高電平到來后,計算壓 控晶振模塊前N秒的實際累計輸出頻率,N = 0,1,2,3……,即將前N秒每秒計得壓控晶振 實際輸出頻率data累加起來,記為zonghe,計算data的方法用雙計數器計頻法;計算前N 秒的理想累計輸出頻率,即將前N秒每秒的理想頻率32768000Hz累加起來,記為zongnum =32768000*N ;計算前N秒累計誤差記為error = (zonghe-zongnum).為了抵消當前存在 的累計誤差,計算第(N+1)秒的期望頻率記為xin = 32768000-error ;其次,根據步驟(2) 得到壓控晶振模塊的定標值進行計算,得出第(N+1)秒的期望頻率xin對應給數模轉換器 DAC的數量值;(4)循環重復步驟(3)的閉環控制。
3.如權利要求2所述的基于GPS秒脈沖的時鐘源裝置的控制方法,其特征在于,步驟 (2)、(3)所述的雙計數器計頻法包括下述步驟a.單片機模塊的1/0接口P2. 1檢測到第K秒秒脈沖高電平的到來,K = 1,2,3……,B 計數器由于第一時鐘通道被截止而停止計數,單片機模塊將此時B計數器的計數值保存在 變量tempi中;當GPS秒脈沖高電平過去后,將A計數器的計數值與B計數器的計數值設 置為相等;當第(K+1)秒秒脈沖高電平到來時,單片機模塊再將B計數器的計數值保存在 temp2 中;b.在第K秒內,每當A計數器計數值計值到65535時,單片機模塊會產生一次中斷,單 片機模塊記錄第K秒內A計數器的中斷次數,記為num ;c.計算第K秒壓控晶振輸出的頻率記為 data = 65536氺num+temp2-templ0
全文摘要
本發明公開了一種基于GPS秒脈沖的時鐘源裝置及控制方法,利用閉環負反饋控制原理,將壓控晶振的輸出頻率控制在其標稱頻率上,供測量系統多臺設備同步使用。實驗結果表明,壓控晶振受閉環控制之后,其累計誤差能控制在幾個脈沖之內。
文檔編號G04G7/00GK101930211SQ20101026134
公開日2010年12月29日 申請日期2010年8月24日 優先權日2010年8月24日
發明者周旺, 楊建國, 賴淋香 申請人:西安交通大學