《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于 PIC18F8520 的 GPS 精準(zhǔn)時(shí)鐘實(shí)現(xiàn)
基于 PIC18F8520 的 GPS 精準(zhǔn)時(shí)鐘實(shí)現(xiàn)
今日電子/21ic
孫曉曄
摘要: 本文利用PIC18F8520提取GPS高精度時(shí)鐘,并在LCD上顯示,所實(shí)現(xiàn)的時(shí)鐘系統(tǒng)是配電線路故障遠(yuǎn)程監(jiān)測(cè)及定位系統(tǒng)項(xiàng)目的一部分,經(jīng)測(cè)試,該設(shè)計(jì)運(yùn)行穩(wěn)定,,能夠?yàn)檎麄€(gè)系統(tǒng)提供精確的時(shí)間信息,具有較高的可靠性、準(zhǔn)確性和實(shí)用性,。此外,還可以將GPS時(shí)鐘的內(nèi)核嵌入其他系統(tǒng),,以其時(shí)間作為系統(tǒng)時(shí)間,,例如:金融/證券實(shí)時(shí)結(jié)算、民航/鐵路/交通調(diào)度系統(tǒng),、各種計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),、實(shí)時(shí)通信網(wǎng)絡(luò)系統(tǒng)、體育彩票和福利彩票等實(shí)時(shí)銷售系統(tǒng)等,,應(yīng)用非常廣泛,。
關(guān)鍵詞: PIC PIC18F8520 GPS
Abstract:
Key words :

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

系統(tǒng)構(gòu)成及硬件實(shí)現(xiàn)
1 系統(tǒng)構(gòu)成
GPS時(shí)鐘系統(tǒng)主要由GPS接收機(jī),、單片機(jī),、LCD顯示器三部分組成,如圖1所示,。

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

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

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

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

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

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

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

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


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

圖2 單片機(jī)外圍電路連接

圖3 單片機(jī)與GPS模塊的連接


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


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

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


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

圖4 流程圖

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


    中斷服務(wù)程序流程圖中,串口接收數(shù)據(jù)時(shí)判斷字頭,,只判斷了“$”一個(gè)字符,,這是因?yàn)橹耙淹ㄟ^(guò)SNSRCFG軟件將GPS15XL設(shè)置為只輸出GPRMC一條NMEA語(yǔ)句。

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

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

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

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

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