郭 璽
內蒙古工業大學,內蒙古 呼和浩特 010080
隨著人類在各行各業取得進步,科學技術也得到最大限度的發展,原子鐘的使用可以使時間精度達到納秒級,同時精確的時間也為科學技術的發展提供最基本的保障。GPS授時系統就是利用一定的接收設備接收衛星上的原子鐘的精確時間信號,傳送給單片機,單片機處理后并發往顯示設備,為人們的生產生活提供精確的時間。
GPS全球定位系統是通過美國通訊衛星高精度、可連續、實時定位模式下的定位系統,它可以同時向用戶發送用戶的三維坐標和精確定時。能為全球性、全能性(陸地、海洋、航空與航天)、全天候性優勢的導航定位、定時、測速系統等服務。GPS由三個系統組成:空間衛星系統、地面監控系統和用戶接收系統。
目前,單片機主要應用于工業領域,單片機除了具有數值計算能力,還有相當強大的控制功能,用于實時監測和實時控制,在各個領域具有非常重要的作用。
本文利用單片機和普通的接收機設計GPS授時系統,獲得精確的GPS時間,既可以對設備進行精確控制,也可以使系統內的所有設備時間同步,比之當前價格昂貴的授時型接收機經濟、實用,更容易使公眾接受。
GPS系統分3大部分:一是空間衛星系統,有工作衛星21顆,備用衛星3顆;二是地面監控系統,主控站1個,注入站3個,監測站5個;三是GPS用戶接收系統,包括接收機、單片機、顯示屏。
GPS系統中有工作衛星21顆,備用衛星3顆.每顆衛星上都有4臺高精度原子鐘(鉚鐘和艷鐘各2個),這也是GPS衛星的核心設備。它發射出標準頻率,為GPS定位提供精度非常高的時間信號。這些衛星都是等間隔地分布在6個軌道面上,軌道面夾角為60°,這樣分布方式可以保證了地球上的所有位置均有4顆以上的GPS衛星同時存在。 GPS衛星定位精度高,雖然在地面無線電波定位精度受到的干擾比較大,而且受電離層和對流層的影響,但是通過人們對電離層和對流層的傳播規律的認識,也找到了解決辦法,建立起了誤差修正模型,可以獲得精確的時間信息。
地面監控系統包括主控站、監測站和注入站,主控站位于加利福尼亞州科羅拉多的Falcon空軍基地聯合航天工作中心.主控站主要接收GPS衛星信號,以及協調和管理所有地面監控系統的工作。
GPS用戶接收系統主要有用戶接收機、控制部分(單片機)和顯示設備。接收機接收GPS衛星發送的星歷參數和時間信號,然后把這些數據傳送給單片機,單片機經過一定模式的分析與計算,可以得到精確的時間信息,最后通過輸出端輸出時間信號,提供給用戶。原理框圖如下圖。

GPS用戶系統中GPS信號接收、處理模塊是核心,接收機和單片機類型比較多,隨著電子技術的發展,其功能也越來越強大,接收機用于接收衛星時間信息,具有較低的功耗和較強的抗干擾能力;無論是戶外勘測,還是室內監測都可以得到有效的保障。由于GPS信號接收機與單片機的I/O的電平大多都是TTL電平,所以可直接通信。GPS接收機傳送的時間數據的波特率有多種:9600bps、4800bps、2400bps,可任意選擇,一般使用4800bps就已經足夠。其過程是,GPS接收機獲取準確的GPS衛星時間信息,通過GPS的串行通信端口發送時間數據到單片機上,單片機經過一定的處理,把時間信號發到顯示端。程序原理如圖:
顯示設備則可以選擇的是LMB102DDC液晶顯示屏。該設備不但小巧而且成本低,配合該GPS授時系統使用較好,而且適用普通用戶。LMB102DDC液晶顯示屏的內核指令比較豐富,既有初始化顯示屏的指令,也有基本功能控制指令,本系統中,主要利用其寫數據到可讀寫寄存器中,以顯示到顯示屏上。
當導航系統在工作時,單片機將時間信息按一定的模型處理后,通過P0串行端口輸出,顯示在LMB102DDC液晶屏上。
由于接收機時鐘與GPS衛星的時鐘不同步,以及GPS信號在通過電離層和對流層時,由于折射等原因,造成傳播的速度不等于真空速度,發生微小的變化,引起時間誤差。接收機的時鐘與GPS衛星時鐘之間的鐘差主要有兩個原因引起:一是信號以光速傳播到達接收機引起的時延;二是信號通過地球電離層和對流層時引起傳播速度發生變化。為了獲得真實的時間,可以用下面的方法計算GPs衛星與接收機之間的鐘差,通過接收機的坐標與GPS衛星的坐標計算接收機與GPS衛星之間真實距離,其值等于“偽距離”減去真空光速時延以及電離層和對流層速度變化引起的誤差,從而推算出鐘差,本模塊采用下面的數學模型,推算鐘差,調整接收機的時鐘,達到與GPS衛星同步的目的。其數學模型是:

其中:S真為通過坐標計算出的GPS衛星與接收機之間的距離;S偽是利用GPS衛星發出的“測距碼”信號(取真空光速),加上信號的傳輸時延計算出GPS衛星與接收機之間的“偽距離”;c為真空光速;∮為接收機與GPS衛星時鐘鐘差;△為電離層與對流層因為傳播速度發生變化而引起的誤差。其中△可根據導航電文中的修正參數進行推算,當然也可以采用高級雙頻GPS信號接收機雙頻測算精確的修正電離層和對流層的誤差。
GPS衛星時間信號不同于通常表示年月日的時間表示法,GPS時間是從1980年1月6日0點0分0秒開始的世界協調時間,主要由星期數和當前星期的日期數組成。日期數是一個用13位C/A碼或P碼表示的,每過8192個星期(157年)重置一次零,要知道準確的年月日以及時間信息,必需準確換算出GPS時間信號。主體程序流程圖。

2.2.1 年份換算
年份的處理不太復雜,主要是先利用當前星期數計算出當前時間離GPS時間原點的天數,并換算出年份,復雜的地方在于閏年的算法。主要有兩個模型:
天數:當前星期數*7
當前年份:
滿4年的天數(閏年)的年份計算:總天數減去四年的總天數,如果剩余天數仍然大于4年的天數則繼續循環減,同時年份上每次加4。
不滿4年的天數:由于起始年份(1980年)是閏年,則先去減去366(閏年的天數),年份加1,如果天數足夠則繼續減去365(普通年份的天數),如果仍足夠年份繼續加1,同時繼續減,否則轉入月份處理. 最后所得到的年份就是當前的年份。
2.2.2 月數換算
月份計算的方法是,把剩余天數逐月減去,復雜的地方在于1月和2月,1月應加上6再減去31天(時間原點1980年1月6日),2月應先確定是不是閏年,如果是則減去29天,否則減28天。其他月份按當月天數減即可。最后所得到的月數就是當前的月數。
2.2.3 日數換算
日數的計算方法是,用當前剩余總秒數減去12*3600(一天的總秒數),如果足夠減就繼續循環(再減去一天的決秒數),然后把日期數加上1。如果不夠減則退出,準備調用下一個子程序(小時數子程序)。最后所得到的日數就是當前的日數。
2.2.4 小時數換算
小時數的計算方法是,用當前總秒數減去3600(一小時的總秒數),并把小時數加上1。如果有剩余就繼續個循環,如果不足就進入下分鐘數子程序。最后所得到的小時數就是當前的小時數。
2.2.5 分鐘數換算和秒數確定
分鐘數的計算方法是,用當前總秒數減去60(即一分鐘的秒數),有剩余則把分鐘數加1,同時繼續循環。如果秒數不足就退出,運算結束后所得到的分鐘數就是當前分鐘數,而最后剩余的秒數就是當前的秒數。
通過以上換算,得到的時間是協調世界時間,由于我國采用東八區時,最后還需要在把獲得的年月日及時間信息送到顯示屏之前加上8個小時。
目前,在市場已經出現了專門用于授時的接收機,能提供ns級的精確時間,但其價格高,不適用普通用戶。本文采用通用的串口輸出進行授時,顯示時間為GPS衛星精確時間,無論是價格還是實用性上都能滿足普通用戶的要求。本系統可在戶外和室內運行,為需要精確授時的系統提供精確時間。
[1]黃正謹,徐堅,章小麗,熊明珍.CPLD系統設置技術入門與應用[M].北京:電子工業出版社,2002.
[2]馬忠梅,劉濱,戚軍,馬巖.單片機C語言Windows環境編程寶典[M].北京:北京航空航天大學出版社,2003.
[3]漆貫榮.時間科學基礎[M].北京:高等教育出版社,2006.
[4]鄒紅艷.基于GPS同步時鐘的綜合校時方案[J].大眾科技,2007,10.