新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式系統中實時時問的獲取

        嵌入式系統中實時時問的獲取

        作者: 時間:2009-05-05 來源:網絡 收藏

        2 從GPS接收機
        GPS是美國開發研制的最初主要作為軍用的一種全球定位,有三個部分組成:空間部分、地面監控部分和用戶部分。一般來說,在地面上的GPS接收機能接收5~12個衛星信號,而為了獲得地面上的定位坐標,至少需要4顆衛星的信號,三個用來確定GPS接收機的緯度、經度和海拔高度,第四個則提供同步校正時間。
        GPS接收機只要處于工作狀態就會源源不斷地把計算出的GPS導航定位信息通過串口傳送到計算機中。GPS接收機送出的數據都是格式化的,NMEA一0183協議是GPS接收機應當遵循的標準協議,大多數常見的GPS接收機、GPS數據處理軟件、導航軟件都遵守或者至少兼容這個協議。下面介紹下如何從符合NMEA―0183協議的接收機接收數據中提取時間信息。
        接收機通過串口發送到計算機的數據主要由幀頭、幀尾和幀內數據組成,根據數據幀的不同,幀頭也不相同,主要有“$GPGGA”、“$GPGSA”、“$GPGSV”以及“$GPRMC”等。這些幀頭標識了后續幀內數據的組成結構,各幀均以回車符和換行符作為幀尾標識一幀的結束。對于通常的情況,我們所關心的定位數據如經緯度、速度、時間等均可以從“$GPRMC”幀中得到,該幀的結構及各字段釋義如下:
        $GPRMC,1>,2>,3>,4>,5>,6>,7>,8>,9>,10>,11>*hhCR>LF>
        1>當前位置的格林尼治時間,格式為hhmmss
        2>狀態,A為有效,V為接收警告,即當前天線視野上方的衛星個數少于3顆。
        3>緯度,格式為ddmm.mmmm
        4>標明南北半球,N為北半球、S為南半球
        5>徑度,格式為dddmm.mmmm
        6>標明東西半球,E為東半球、W為西半球
        7>地面上的速度,范圍為0.ON999.9
        8>方位角,范圍為000.O到359.9度
        9>日期,格式為ddmmyy
        lO>地磁變化,從000.0到180.O度
        ll>地磁變化方向,為E或W
        在Linux操作中,從$GPRMC數據幀中提取時間信息的代碼如下:

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


        程序首先打開串口,然后對串口參數進行配置,隨后進入無限循環主體。這段代碼是作為主進程的一個線程實現串口數據的接收,當串口接收緩沖區中無數據時,read函數阻塞。程序中只提取了時間信息,若需導航數據可以類似方法提取。


        3 結束語
        本文分別介紹了兩種間的方法:時鐘芯片方法和GPS接收機方法。時鐘芯片方法的優點是硬件連接簡單、成本低;缺點是存在積累誤差、易受環境影響、可靠性差。GPS接收機的優點:由于GPS衛星使用的是可以精確到十億分之一秒的原子鐘,所以不存在時間誤差問題。同時也應該看到,目前GPS核心技術在國外,國內GPS市場主要還是做代理或是在購買國外GPS模塊的基礎上做產品開發,這就使得開發成本偏高。GPS方法中還有一個問題就是在某些情況下接收不到GPS信號,如在高樓林立的環境下或是在地下室之類的地方。此時就應該讓GPS接收機方法與處理器內部的實鐘(RTC)配合工作,這樣在短時接收不到GPS信號的情況,仍可以從RTC讀取時間。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 泰顺县| 新巴尔虎左旗| 大港区| 嵊州市| 绩溪县| 宁蒗| 垦利县| 宝鸡市| 嘉禾县| 中宁县| 博兴县| 上蔡县| 油尖旺区| 武邑县| 瑞安市| 阳新县| 漠河县| 泗洪县| 平顶山市| 南安市| 应用必备| 运城市| 湟源县| 府谷县| 同仁县| 临沂市| 珲春市| 翁牛特旗| 页游| 应城市| 思茅市| 龙山县| 金昌市| 分宜县| 晴隆县| 响水县| 阳东县| 哈密市| 穆棱市| 珲春市| 普陀区|