《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于PIC18F8520的GPS精準(zhǔn)時鐘
基于PIC18F8520的GPS精準(zhǔn)時鐘
摘要: GPS(Global Positioning System,全球定位系統(tǒng))是世界上最完善的衛(wèi)星導(dǎo)航系統(tǒng),。它不僅有覆蓋全球的實時,、連續(xù)的高精度的三維定位能力,,同時也有精準(zhǔn)的授時功能,。利用高度穩(wěn)定,、精確的星載原子鐘作為信號源進(jìn)行時間傳輸和比對,,已成為眾多領(lǐng)域獲取時間的重要手段,。基于此,,本文利用GPS所提供的精確授時功能,,采用單片機技術(shù),實現(xiàn)了一種GPS時鐘,,并將時間信息通過LCD進(jìn)行顯示,。
關(guān)鍵詞: 51單片機 PIC18F8520 GPS 時鐘
Abstract:
Key words :

 GPS(Global Positioning System,全球定位系統(tǒng))是世界上最完善的衛(wèi)星導(dǎo)航系統(tǒng),。它不僅有覆蓋全球的實時,、連續(xù)的高精度的三維定位能力,同時也有精準(zhǔn)的授時功能,。利用高度穩(wěn)定,、精確的星載原子鐘作為信號源進(jìn)行時間傳輸和比對,已成為眾多領(lǐng)域獲取時間的重要手段,?;诖耍疚睦肎PS所提供的精確授時功能,,采用單片機技術(shù),,實現(xiàn)了一種GPS時鐘,并將時間信息通過LCD進(jìn)行顯示,。

系統(tǒng)構(gòu)成及硬件實現(xiàn)

1 系統(tǒng)構(gòu)成

GPS時鐘系統(tǒng)主要由GPS接收機、單片機,、LCD顯示器三部分組成,,如圖1所示,。

圖1 GPS時鐘系統(tǒng)構(gòu)成框圖

GPS接收機

在本系統(tǒng)中,GPS接收機采用Garmin公司的GPS15XL,,它是12通道的GPS接收機,,體積小,重量輕,,功耗低,,首次定位和重捕獲時間短,有較強抗遮擋和抗干擾能力,,性能極其穩(wěn)定可靠,,且操作簡單,易于開發(fā),??晒ぷ髟?.3~5.4V電壓范圍內(nèi),本系統(tǒng)采用+3.3V供電,;精密授時類型精度可達(dá)±50ns(典型值),;具有串行端口,輸出為RS232,,輸入可為RS232或者具有RS232極性的TTL電平,,波特率從300~38 400可選,默認(rèn)為4800,,無奇偶校驗,,8個數(shù)據(jù)位,1個起始位,,1個停止位,。GPS15XL輸出的數(shù)據(jù)以美國國家海洋電子協(xié)會(National Marine Electronics Association)的NMEA0183 ASCII碼接口協(xié)議為基礎(chǔ),可輸出多條語句,,內(nèi)容包括經(jīng)度,、緯度、速度,、方位角,、高度、世界時,、星歷等信息,。還可輸出Garmin二進(jìn)制格式信息。非常適合應(yīng)用于車輛導(dǎo)航,、海事導(dǎo)航,、電力系統(tǒng)校時等。

對GPS15XL的配置,,可以利用單片機通過NMEA 0183語句在程序中實現(xiàn),,也可以利用SNSRCFG軟件來進(jìn)行,。配置參數(shù)將被保存在永久性存儲器中,下次加電時自動生效,。為簡化設(shè)計,,本文采用第二種方法,即通過SNSRCFG軟件對GPS15XL進(jìn)行初始化配置,。

GPS15XL可以輸出兩種時間信號:一是包含在串口輸出信息中的UTC(Coordinated Universal Time協(xié)調(diào)世界時)絕對時間(年,、月、日,、時,、分、秒),;二是間隔為1s的同步脈沖信號1PPS,,其脈沖前沿與UTC的同步誤差不超過1μs。本系統(tǒng)主要是利用串口輸出的NMEA 0183語句獲取UTC時間信息,。

NMEA 0183語句以“$”開始,,以,即ASCII字符“回車”(十六進(jìn)制的0D)和“換行”(十六進(jìn)制的0A)結(jié)束,。下面以本文使用的GPRMC語句為例說明其格式:

$GPRMC,,<1>,<2>,,<3>,,<4>,<5>,,<6>,,<7>,<8>,,<9>,,<10>,<11>,,<12>*hh
$GPRMC:語句起始標(biāo)志(Recommended Minimum Specific GPS/TRANSIT Data推薦定位信息)
<1> UTC時間,,hhmmss(時分秒)格式
<2>定位狀態(tài),A=有效定位,,V=無效定位
<9>UTC日期,,ddmmyy(日月年)格式
最后的校驗碼*hh用于做奇偶校驗,通常不是必需的,,但當(dāng)周圍環(huán)境有較強的電磁干擾時則推薦使用校驗碼,。hh代表了“$”和“*”之間所有字符的按位異或值(不包括這兩個字符)。

單片機PIC18F8520

系統(tǒng)采用Microchip公司生產(chǎn)的高性能RISC CPU PIC18F8520作為控制器,它內(nèi)部有32KB的FLASH程序存儲器和2KB的SRAM數(shù)據(jù)存儲器,、1KB的EEPROM數(shù)據(jù)存儲器,;運算速度可達(dá)10MIPS;可以工作在DC~40MHz的時鐘頻率范圍之內(nèi),;具有USART接口,支持RS-485和RS-232,,可與GPS模塊相連,,用來獲取時間信息;支持ICSP在線串行編程,,便于軟件的升級和維護(hù),;支持ICD,可以在線調(diào)試,,縮短開發(fā)周期,。

LCD顯示器
系統(tǒng)采用LCD1602作為顯示設(shè)備。LCD1602液晶顯示模塊具有體積小,、功耗低,、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點,,在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中應(yīng)用廣泛,。它可以顯示兩行,每行16個字符,,采用單+5V電源供電,,外圍電路配置簡單,價格便宜,,具有很高的性價比,。

2 硬件電路

系統(tǒng)的硬件電路如圖2和圖3所示。

圖2 單片機外圍電路連接

圖3 單片機與GPS模塊的連接

電路板上有3.3V和5V兩種電壓,,其中LCD采用5V供電,,而單片機和MAX3232工作在3.3V電壓下。外部電源為5V,,經(jīng)AS2830轉(zhuǎn)換為3.3V,,給單片機和MAX3232供電。從圖2中可以看到,,單片機的電源腳沒有與3.3V直接相連,,而是通過J2、J3跳線即可連到3.3V上,,也可連到VDD上,。這是因為單片機在采用PIC16-MCD2編程器通過ICSP接口進(jìn)行在線編程時由MCD2供電,這時,,單片機電源腳需連接到VDD上(MCD2輸出電壓VDD為5V),;而正常運行時單片機由電路板供電,,J2、J3跳線連接到3.3V上,,單片機就工作在3.3V,,可以降低功耗。

PIC18F8520既有模擬電源,、模擬地引腳也有數(shù)字電源,、數(shù)字地引腳,在電路設(shè)計中,,采用模擬電源,、數(shù)字電源分離,模擬地,、數(shù)字地分離,,模擬電源和數(shù)字電源之間通過磁珠連接,模擬地和數(shù)字地通過0Ω電阻在單點連接,,以避免模擬信號與數(shù)字信號之間的干擾,,提高系統(tǒng)的可靠性。

軟件實現(xiàn)

軟件由主程序和中斷子程序組成,,在MPLAB IDE v8.53環(huán)境下,,采用MPLAB C18編譯器,用C語言編程實現(xiàn),。

在主程序中進(jìn)行系統(tǒng)的初始化,、數(shù)據(jù)處理、LCD顯示,,GPS數(shù)據(jù)的接收則通過串口中斷實現(xiàn),,每收到一條完整的NMEA語句,就設(shè)定一個標(biāo)志,,在主程序中通過查詢該標(biāo)志進(jìn)行UTC時間的提取以及轉(zhuǎn)換成北京時間,,再通過LCD顯示。由于將復(fù)雜的數(shù)據(jù)處理放到主程序中,,這樣就可以使中斷程序盡量簡短,,在發(fā)生其他中斷時,單片機可以及時做出響應(yīng),,提高了系統(tǒng)的實時性,。流程圖如圖4所示。

圖4 流程圖

由于GPS模塊輸出的時間為UTC時間,,根據(jù)習(xí)慣,,需轉(zhuǎn)換成本地時間(北京時間),這項工作在主程序中完成。根據(jù)本地時間=UTC時間+時區(qū)值,,而北京位于第8時區(qū),,時區(qū)值為+8,故北京時間=UTC時間+8,。在轉(zhuǎn)換過程中,,須對16:00:00—23:59:59 UTC時間作相應(yīng)的處理,+8后判斷小時是否大于24,,若大于,,則減去24,同時日期+1,,另外,還涉及到閏年,、大月,、小月的處理。

中斷服務(wù)程序流程圖中,,串口接收數(shù)據(jù)時判斷字頭,,只判斷了“$”一個字符,這是因為之前已通過SNSRCFG軟件將GPS15XL設(shè)置為只輸出GPRMC一條NMEA語句,。

調(diào)試及運行

首先,,對GPS15XL進(jìn)行初始化。將GPS15XL通過串口與PC連接好,,給GPS15XL上電,,用軟件SNSRCFG設(shè)置初始化信息,波特率設(shè)為9600,,只輸出一條GPRMC語句(要獲取UTC日期和時間,,一條GPRMC語句就足夠了),將這些信息寫入OEM板內(nèi)的永久性存儲器中,,下次上電時將會自動生效,。

然后,通過電路板上預(yù)留的ICSP接口,,利用PIC16-MCD2編程器將編譯好的程序?qū)懭雴纹瑱C,。編程時不給電路板供電,單片機通過MCD2供電,,須注意電路板上跳線的設(shè)置,。

最后,將GPS15XL與電路板連接,。給電路板和GPS15XL上電,,授時接收系統(tǒng)進(jìn)入正常工作狀態(tài),單片機通過RS-232串行方式接收GPS15XL的衛(wèi)星數(shù)據(jù),獲取準(zhǔn)確的時間信息,,并轉(zhuǎn)換成北京時間,,通過LCD顯示。
注意:使用時,,GPS授時天線一定要放在開闊的室外,,否則接收不到衛(wèi)星信號,也就無法獲取UTC時間信息,。

結(jié)語

本文利用PIC18F8520提取GPS高精度時鐘,,并在LCD上顯示,所實現(xiàn)的時鐘系統(tǒng)是配電線路故障遠(yuǎn)程監(jiān)測及定位系統(tǒng)項目的一部分,,經(jīng)測試,,該設(shè)計運行穩(wěn)定,能夠為整個系統(tǒng)提供精確的時間信息,,具有較高的可靠性,、準(zhǔn)確性和實用性。此外,,還可以將GPS時鐘的內(nèi)核嵌入其他系統(tǒng),,以其時間作為系統(tǒng)時間,例如:金融/證券實時結(jié)算,、民航/鐵路/交通調(diào)度系統(tǒng),、各種計算機網(wǎng)絡(luò)系統(tǒng)、實時通信網(wǎng)絡(luò)系統(tǒng),、體育彩票和福利彩票等實時銷售系統(tǒng)等,,應(yīng)用非常廣泛。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。