新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > GPS衛星定位模塊使用及感受

        GPS衛星定位模塊使用及感受

        作者: 時間:2016-11-29 來源:網絡 收藏
        一直以來都以為GPS模塊使用比較麻煩,覺得那是高科技的東東,接收衛星信號啊~~神秘。直到最近有朋友在項目中詢問這方面的事,正好手頭上沒有其它事項要忙,就決心要把GPS模塊搞搞,以前Cpeark論壇上有做過一款GPS接收板的,當時沒有參加這個活動,后來東東把他手上的送給我(謝謝東東),于是找出板板,又在論壇上下載了一些軟件,折騰了一外晚上未果,一點數據都沒有,開始以為GPS模塊需要初始化之類的,查找了資料發現,只要加電就可以工作,連續輸出數據,無論是否有信號。果斷判斷模塊已壞,郁悶~~
        在淘寶上下手買了新的回來,嚴格來說應該是全新的舊貨,三十多元,05年產的模塊,采用的是臺灣旺玖PROLIFIC公司的PL-6313芯片,這間公司比較陌生,但它的一款PL2303的芯片,相信多數搞電子的都知道吧。賣家說測試信號接收速度和靈敏度比SIRF3芯片稍弱,但是遠強于使用SIRF2或是2E芯片,自帶陶瓷天線和外接天線接口,自帶鋰電池存儲數據,可惜我實測電池已經沒電了,估計是存放太久的緣故。選擇這款主要是看中它本身自帶了天線,使用起來不用這么麻煩。下面看看我怎么折騰這塊模塊吧。
        一、硬件結構
        Cepark第一代的實驗板,這塊板用了好多年,比較簡單好用,用得也順手,LCD12864液晶屏做顯示,因為考慮到要顯示比較多的信息,比如經緯度、時間等等。模塊串行輸出直接接到MCU的RXD上,因為模塊的工作電壓是3.3V的,懶得搭板做穩壓電路了,直接在實驗板的5V上串三只二極管得到約 3.2V的電壓。在用單片機解碼前,先是接入到PC上用軟件測試了模塊是否能工作,通電后是每隔1秒輸出一組數據,通信速率9600bps,以ASCII 格式傳送,不需要任何初始指令,驗證了之前的板板模塊是壞的。
        二、編程思路
        一般GPS模塊都支持NMEA0183協議,j這款也是,看廠家資料說是V3.01版本,不知道具體有什么不同,在網上找了一堆協議研究,NMEA0183協議的指令比較多,經過測試我手上這款是輸出四種指令:$GPRMC、$GPGGA、$GPGSA、$GPGSV。通過單片機來讀取指令數據,然后取出其中有用的數據,考慮到一些參數沒什么用途,這次主要獲取日期、時間、經度、緯度、可見衛星數、當前使用衛星數等較常用數據。這些信息分別包含在不同的指令中,$GPRMC是推薦使用定位信息語句,包了日期、時間、經緯度、定位成功標志,而可見衛星數則包含在$GPGSV中,當前定位使用衛星數包含在$GPGGA中,$GPGSA則包含有當前可見衛星的每一顆衛星的信息。、
        語句的格式一般如下:
        $GPRMC,060815.00,A,3956.64797,N,11618.02077,E,000.0,000.0,251006,05.9,W,A*1E
        $GPGSV,2,1,06,19,75,039,38,03,43,052,37,27,60,290,38,08,35,313,38*77
        $GPGGA,060815.00,3956.64797,N,11618.02077,E,1,06,1.26,00113,M,-006,M,,*42
        $GPGSA,A,3,19,03,27,08,11,16,,,,,,,2.50,1.26,2.16*04
        每一語句以“$”符號開頭,然后跟著指令類型,如“GPRMC”,后面的數據以“,”號進行區分,每一數據長度固定,不足數在前面加0補足,沒有數據時是連續的逗號分隔,每一語句數據總長度不固定,最長可達二百多字節,最短也有幾十字節,由于51單片機的RAM一般只有一百多字節,去除系統使用留給用戶僅有一百不到,而采用外部存儲的話,程序通用性又大打折扣,而且也會增加硬件成本,所以在進行接收數據處理時,不能采用一次性全部接收再進行處理,而要邊收邊處理數據。主要編程思路如下:
        1、程序以$判斷數據列開始。
        2、設定全局變量數組,記錄開始的5個數據類型數據:GPRMC、GPGSV、GPGGA等。
        3、設定全局變量數組,記錄兩個,號間的數據,以數據類型和,號個數來判斷當前接收到的數據,然后進行處理。
        用這個方法處理,接收數據只占用不到20個字節的RAM空間,算是較為節約的方法。剩下的就是程序上處理數據和顯示了。需要注意的是GPS接收到的時間是 UTC時間(協調世界時,又稱世界統一時間、世界標準時間、國際協調時間),北京是在+8時區,所以接收到的時間是要比北京時間慢8小時,如果在程序中需要用到GPS的時間,需要做數據處理。

         
        三、總結和感受。
        這個模塊的信號還可以,在窗邊一般能見到10顆星,有時能定位成功,伸出窗外能見12顆星,定位4-5顆左右,靈敏度基本上和手上幾年前的手機相當,估計是和SIRF Ⅱ級別相當,不知道使用外接天線效果會如何,因為手上沒有接口符合的天線,也就沒有測試。靈敏度比現在手上的MOTO里程碑2手機要差多,里2在室內可以隨時定位并且有四五顆星。模塊使用相當方便,標準速率串行數據的輸出也很方便與電腦或單片機連接,由于不需要任何控制指令,大大方便了程序編寫,而且價格便宜,淘寶上單獨的模塊(SIRF Ⅲ級別)基本是在三十多元的價格但不帶天線,配上轉USB的線或轉藍牙模塊的線,可以很方便的應用到各種設備。

         

         



        這是模塊的元件一面,大的IC是PL-6313芯片,采用簡化型32位CPU,內建韌體版本為LQFP64,面積僅7x7mm。小的一塊是SiGE公司的 SE4100L芯片,面積4x4mm,這個芯片內集成了IF濾波器、帶儲備電路的電壓控制振蕩器 (VCO),以及高性能低噪聲放大器 (LNA)。



        這是連接實驗板解碼成功的圖片,圖片是放在靠窗的電腦桌上拍的,顯示的時間是UTC時間、經緯度數據都是直接顯示,位置數據上圖片處理了,不然要泄漏自己的位置了,呵呵,要知道這個可是只有幾米的誤差。右上角的A表示定位成功,V則表示未定位,下面的03/09表示當前可見衛星數9顆,當前使用定位衛星數 3顆。


        關鍵詞: GPS衛星定位模

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 江都市| 山西省| 肇州县| 莎车县| 无极县| 澎湖县| 青川县| 台湾省| 康平县| 林口县| 华安县| 绥芬河市| 威远县| 灌阳县| 望谟县| 弋阳县| 宁津县| 壶关县| 花莲市| 宜章县| 明光市| 凤山市| 峡江县| 海淀区| 宕昌县| 蒙阴县| 连南| 如东县| 仁布县| 哈尔滨市| 江达县| 乡宁县| 青浦区| 防城港市| 同仁县| 武邑县| 融水| 中宁县| 彭阳县| 个旧市| 方城县|