<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 解析基于JP7-T的GPS接收機和定位系統(tǒng)設計

          解析基于JP7-T的GPS接收機和定位系統(tǒng)設計

          作者: 時間:2013-03-13 來源:網絡 收藏

            3.2定位信息系統(tǒng)設計流程

            手冊中提示該GPS的NMEA要使用的波特率為4800,所以,在軟件中可以將串口波特率設置成4800定值。

            (1)時間轉換

            GPS接收到的時間是UTC制時間,故應將它轉換為北京時間。其核心算法為:hour+8;year+2000;設計時,如hour大于24,則dav+1,hour-24;接著根據月份和是否閏年來判斷day處理后是否有相應月份要相繼處理;然后根據處理后的月份判斷年份是否要相繼處理等等。需要注意的是:不要忘記判斷平年和閏年。

            (2)WGS-84經緯度單位轉換

            本設計選用的電子地圖采用的是WGS84坐標系,而GPS測量得到的是WGS-84中的地心空間直角坐標系下的數據,所以,不用坐標轉換。但由于GPS接收到的經緯度是以度和分為單位的,而我們日常生活中都是以度為計量單位,所以要進行單位轉換。單位轉換的算法(以緯度為例)是將接收到的緯度格式(ddmm.mmmm)除以100,以得到dd.mmmmmm,然后再調用modf函數分離出度和分,最后將分乘100并除以60,從而將分化成度。

            (3)速度單位轉換

            本GPS獲得的速度是以knot為單位的。而通常除了航海采用knot單位之外,陸空一般都是采用km/h為單位(1knot=1.8519km/h),所以,設計時還要將獲得的速度乘以該單位轉換參數。

            本系統(tǒng)的軟件設計流程圖如圖6所示。

            3.3測試

            軟件編寫完后,應先在PC機上用gcc編譯,編譯過程一般沒有什么大問題。然后,可以將做好的通過串口接在PC機上進行軟件和硬件的調試。本設計的GPS機經過連續(xù)幾天運行都沒有什么問題,非常穩(wěn)定。但是,做這個demo板的最終目的是為設計一款基于ARM9處理器的手持機。所以,筆者又將該軟件交叉編譯。采用的編譯器是3.3.2版本的arm-linux-gcc。為了驗證測試板和軟件在嵌入式系統(tǒng)下的可行性,筆者還將其與廣州Friendly-arm生產的S3C2410實驗箱相連并進行了測試。測試結果十分穩(wěn)定,定位非常精確。

            4結束語

            設計本硬件和軟件的主要目的是為一款手持導航儀的GPS選型作準備的。結果表明,選用該型號的GPS和本軟件設計的系統(tǒng)十分穩(wěn)定.定位快,熱啟動條件下首次定位只要8s;冷啟動時。首次定位時間也只要45s,定位精度為10m,是目前民用GPS中精度較高的了;而且可以在不影響功能的條件下設計出外觀精美的產品。設計的軟件可以將GPS定位信息通過完整接收,而且靈活性較大。如果換用其它坐標系的電子地圖,則可以在描點前一步加坐標系轉換模塊。所處理的數據對于高層決策且有重要作用,可廣泛用于導航、軌跡回放、中心車輛監(jiān)控與調度等。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();