基于PIC18F8520的GPS精準時(shí)鐘實(shí)現
GPS(Global Positioning System,全球定位系統)是世界上最完善的衛星導航系統。它不僅有覆蓋全球的實(shí)時(shí)、連續的高精度的三維定位能力,同時(shí)也有精準的授時(shí)功能。利用高度穩定、精確的星載原子鐘作為信號源進(jìn)行時(shí)間傳輸和比對,已成為眾多領(lǐng)域獲取時(shí)間的重要手段?;诖?,本文利用GPS所提供的精確授時(shí)功能,采用單片機技術(shù),實(shí)現了一種GPS時(shí)鐘,并將時(shí)間信息通過(guò)LCD進(jìn)行顯示。
本文引用地址:http://dyxdggzs.com/article/201706/350705.htm系統構成及硬件實(shí)現
1 系統構成
GPS時(shí)鐘系統主要由GPS接收機、單片機、LCD顯示器三部分組成,如圖1所示。
圖1 GPS時(shí)鐘系統構成框圖
GPS接收機
在本系統中,GPS接收機采用Garmin公司的GPS15XL,它是12通道的GPS接收機,體積小,重量輕,功耗低,首次定位和重捕獲時(shí)間短,有較強抗遮擋和抗干擾能力,性能極其穩定可靠,且操作簡(jiǎn)單,易于開(kāi)發(fā)??晒ぷ髟?.3~5.4V電壓范圍內,本系統采用+3.3V供電;精密授時(shí)類(lèi)型精度可達±50ns(典型值);具有串行端口,輸出為RS232,輸入可為RS232或者具有RS232極性的TTL電平,波特率從300~38 400可選,默認為4800,無(wú)奇偶校驗,8個(gè)數據位,1個(gè)起始位,1個(gè)停止位。GPS15XL輸出的數據以美國國家海洋電子協(xié)會(huì )(National Marine Electronics Association)的NMEA0183 ASCII碼接口協(xié)議為基礎,可輸出多條語(yǔ)句,內容包括經(jīng)度、緯度、速度、方位角、高度、世界時(shí)、星歷等信息。還可輸出Garmin二進(jìn)制格式信息。非常適合應用于車(chē)輛導航、海事導航、電力系統校時(shí)等。
對GPS15XL的配置,可以利用單片機通過(guò)NMEA 0183語(yǔ)句在程序中實(shí)現,也可以利用SNSRCFG軟件來(lái)進(jìn)行。配置參數將被保存在永久性存儲器中,下次加電時(shí)自動(dòng)生效。為簡(jiǎn)化設計,本文采用第二種方法,即通過(guò)SNSRCFG軟件對GPS15XL進(jìn)行初始化配置。
GPS15XL可以輸出兩種時(shí)間信號:一是包含在串口輸出信息中的UTC(Coordinated Universal Time協(xié)調世界時(shí))絕對時(shí)間(年、月、日、時(shí)、分、秒);二是間隔為1s的同步脈沖信號1PPS,其脈沖前沿與UTC的同步誤差不超過(guò)1μs。本系統主要是利用串口輸出的NMEA 0183語(yǔ)句獲取UTC時(shí)間信息。
NMEA 0183語(yǔ)句以“$”開(kāi)始,以CR>LF>,即ASCII字符“回車(chē)”(十六進(jìn)制的0D)和“換行”(十六進(jìn)制的0A)結束。下面以本文使用的GPRMC語(yǔ)句為例說(shuō)明其格式:
$GPRMC,1>,2>,3>,4>,5>,6>,7>,8>,9>,10>,11>,12>*hh CR>LF>
$GPRMC:語(yǔ)句起始標志(Recommended Minimum Specific GPS/TRANSIT Data推薦定位信息)
1> UTC時(shí)間,hhmmss(時(shí)分秒)格式
2>定位狀態(tài),A=有效定位,V=無(wú)效定位
9>UTC日期,ddmmyy(日月年)格式
最后的校驗碼*hh用于做奇偶校驗,通常不是必需的,但當周?chē)h(huán)境有較強的電磁干擾時(shí)則推薦使用校驗碼。hh代表了“$”和“*”之間所有字符的按位異或值(不包括這兩個(gè)字符)。
單片機PIC18F8520
系統采用Microchip公司生產(chǎn)的高性能RISC CPU PIC18F8520作為控制器,它內部有32KB的FLASH程序存儲器和2KB的SRAM數據存儲器、1KB的EEPROM數據存儲器;運算速度可達10MIPS;可以工作在DC~40MHz的時(shí)鐘頻率范圍之內;具有USART接口,支持RS-485和RS-232,可與GPS模塊相連,用來(lái)獲取時(shí)間信息;支持ICSP在線(xiàn)串行編程,便于軟件的升級和維護;支持ICD,可以在線(xiàn)調試,縮短開(kāi)發(fā)周期。
LCD顯示器
系統采用LCD1602作為顯示設備。LCD1602液晶顯示模塊具有體積小、功耗低、顯示內容豐富、超薄輕巧等優(yōu)點(diǎn),在袖珍式儀表和低功耗應用系統中應用廣泛。它可以顯示兩行,每行16個(gè)字符,采用單+5V電源供電,外圍電路配置簡(jiǎn)單,價(jià)格便宜,具有很高的性?xún)r(jià)比。
2 硬件電路
系統的硬件電路如圖2和圖3所示。
圖2 單片機外圍電路連接
圖3 單片機與GPS模塊的連接
電路板上有3.3V和5V兩種電壓,其中LCD采用5V供電,而單片機和MAX3232工作在3.3V電壓下。外部電源為5V,經(jīng)AS2830轉換為3.3V,給單片機和MAX3232供電。從圖2中可以看到,單片機的電源腳沒(méi)有與3.3V直接相連,而是通過(guò)J2、J3跳線(xiàn)即可連到3.3V上,也可連到VDD上。這是因為單片機在采用PIC16-MCD2編程器通過(guò)ICSP接口進(jìn)行在線(xiàn)編程時(shí)由MCD2供電,這時(shí),單片機電源腳需連接到VDD上(MCD2輸出電壓VDD為5V);而正常運行時(shí)單片機由電路板供電,J2、J3跳線(xiàn)連接到3.3V上,單片機就工作在3.3V,可以降低功耗。
PIC18F8520既有模擬電源、模擬地引腳也有數字電源、數字地引腳,在電路設計中,采用模擬電源、數字電源分離,模擬地、數字地分離,模擬電源和數字電源之間通過(guò)磁珠連接,模擬地和數字地通過(guò)0Ω電阻在單點(diǎn)連接,以避免模擬信號與數字信號之間的干擾,提高系統的可靠性。
軟件實(shí)現
軟件由主程序和中斷子程序組成,在MPLAB IDE v8.53環(huán)境下,采用MPLAB C18編譯器,用C語(yǔ)言編程實(shí)現。
在主程序中進(jìn)行系統的初始化、數據處理、LCD顯示,GPS數據的接收則通過(guò)串口中斷實(shí)現,每收到一條完整的NMEA語(yǔ)句,就設定一個(gè)標志,在主程序中通過(guò)查詢(xún)該標志進(jìn)行UTC時(shí)間的提取以及轉換成北京時(shí)間,再通過(guò)LCD顯示。由于將復雜的數據處理放到主程序中,這樣就可以使中斷程序盡量簡(jiǎn)短,在發(fā)生其他中斷時(shí),單片機可以及時(shí)做出響應,提高了系統的實(shí)時(shí)性。流程圖如圖4所示。
圖4 流程圖
由于GPS模塊輸出的時(shí)間為UTC時(shí)間,根據習慣,需轉換成本地時(shí)間(北京時(shí)間),這項工作在主程序中完成。根據本地時(shí)間=UTC時(shí)間+時(shí)區值,而北京位于第8時(shí)區,時(shí)區值為+8,故北京時(shí)間=UTC時(shí)間+8。在轉換過(guò)程中,須對16:00:00—23:59:59 UTC時(shí)間作相應的處理,+8后判斷小時(shí)是否大于24,若大于,則減去24,同時(shí)日期+1,另外,還涉及到閏年、大月、小月的處理。
中斷服務(wù)程序流程圖中,串口接收數據時(shí)判斷字頭,只判斷了“$”一個(gè)字符,這是因為之前已通過(guò)SNSRCFG軟件將GPS15XL設置為只輸出GPRMC一條NMEA語(yǔ)句。
調試及運行
首先,對GPS15XL進(jìn)行初始化。將GPS15XL通過(guò)串口與PC連接好,給GPS15XL上電,用軟件SNSRCFG設置初始化信息,波特率設為9600,只輸出一條GPRMC語(yǔ)句(要獲取UTC日期和時(shí)間,一條GPRMC語(yǔ)句就足夠了),將這些信息寫(xiě)入OEM板內的永久性存儲器中,下次上電時(shí)將會(huì )自動(dòng)生效。
然后,通過(guò)電路板上預留的ICSP接口,利用PIC16-MCD2編程器將編譯好的程序寫(xiě)入單片機。編程時(shí)不給電路板供電,單片機通過(guò)MCD2供電,須注意電路板上跳線(xiàn)的設置。
最后,將GPS15XL與電路板連接。給電路板和GPS15XL上電,授時(shí)接收系統進(jìn)入正常工作狀態(tài),單片機通過(guò)RS-232串行方式接收GPS15XL的衛星數據,獲取準確的時(shí)間信息,并轉換成北京時(shí)間,通過(guò)LCD顯示。
注意:使用時(shí),GPS授時(shí)天線(xiàn)一定要放在開(kāi)闊的室外,否則接收不到衛星信號,也就無(wú)法獲取UTC時(shí)間信息。
結語(yǔ)
本文利用PIC18F8520提取GPS高精度時(shí)鐘,并在LCD上顯示,所實(shí)現的時(shí)鐘系統是配電線(xiàn)路故障遠程監測及定位系統項目的一部分,經(jīng)測試,該設計運行穩定,能夠為整個(gè)系統提供精確的時(shí)間信息,具有較高的可靠性、準確性和實(shí)用性。此外,還可以將GPS時(shí)鐘的內核嵌入其他系統,以其時(shí)間作為系統時(shí)間,例如:金融/證券實(shí)時(shí)結算、民航/鐵路/交通調度系統、各種計算機網(wǎng)絡(luò )系統、實(shí)時(shí)通信網(wǎng)絡(luò )系統、體育彩票和福利彩票等實(shí)時(shí)銷(xiāo)售系統等,應用非常廣泛。
評論