新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于 PIC18F8520 的 GPS 精準時鐘實現

        基于 PIC18F8520 的 GPS 精準時鐘實現

        作者: 時間:2011-01-02 來源:網絡 收藏

        GPS(Global Positioning System,全球定位系統)是世界上最完善的衛星導航系統。它不僅有覆蓋全球的實時、連續的高精度的三維定位能力,同時也有精準的授時功能。利用高度穩定、精確的星載原子鐘作為信號源進行時間傳輸和比對,已成為眾多領域獲取時間的重要手段。基于此,本文利用GPS所提供的精確授時功能,采用單片機技術,實現了一種GPS時鐘,并將時間信息通過LCD進行顯示。

        本文引用地址:http://www.104case.com/article/151136.htm

        系統構成及硬件實現
        1 系統構成
        GPS時鐘系統主要由GPS接收機、單片機、LCD顯示器三部分組成,如圖1所示。

        圖1 GPS時鐘系統構成框圖


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


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


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


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


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


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


        上一頁 1 2 3 下一頁

        關鍵詞: 收發器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 太仓市| 米林县| 祁东县| 中卫市| 汕头市| 波密县| 偏关县| 乐业县| 且末县| 太湖县| 丹阳市| 武安市| 萨嘎县| 澄城县| 延川县| 小金县| 望谟县| 宁武县| 濉溪县| 镇宁| 永宁县| 徐州市| 阳东县| 瑞金市| 霍山县| 双柏县| 云阳县| 沽源县| 平乐县| 突泉县| 定安县| 肥西县| 张家界市| 涞源县| 慈溪市| 上高县| 蒙山县| 平塘县| 如皋市| 安阳市| 弥勒县|