GPS
這篇是之前做在Yahoo上面的一篇文章,把它移過來,免的忘記了,有需要的朋友可以參考看看
一般常用的衛星導航都會用到GPS,這裡說明一下GPS的通訊與資料的格式GPS也是利用Serial port的方式來傳遞資料,速率上一般是使用 4800,N,8,1傳輸上是單向的,也就是說我能夠收到衛星傳過來的訊息,但不能發送訊息給衛星..下面簡單說明一下協定的部份,如果須要更詳細的資料可以到以下網址參考http://www.gpsinformation.org/dale/nmea.htm#intro
- GPS NMEA Protocol -NMEA 是GPS用的標準通訊協定,傳回值是一串ASCII的字串,舉例來說可能會收到如下一串字$GPRMC,053322.682,A,2502.6538,N,12121.4838,E,0.00,315.00,080905,,,A*6F
053322.682:UTC Time , 格式是hhmmss.sss所以是5:33:22.682
A:代表資料是有效的,如果找不到衛星的話會是V
2502.6538:代表的是緯度,格式是degree * 100 + minutes。但是minutes是100進位,所以 要/100 * 60轉為degree,轉換後就是25'02'39.228''. 2502.6538 / 100 = 25.02 0.6538 * 60 = 39.228
N:代表緯度的資料是北緯
12121.4838:代表是經度,格式同緯度的部份一樣要經過轉換。
E:代表經度的資料是東經
0.00:代表的是速度,這裡因為天線沒有移動,所以是0
315.00:代表的是方向
080905:代表的是現在的日期,格式是ddmmyy再過來有兩個欄位沒有用到所以空著
A:不確定
*6F:代表的是CheckSum CheckSum(檢查碼)是以*號開頭,後面兩個Ascii字元算法如下 不包含開頭的'$',一直計算到'*'之前。一個byte一個byte的作XOR.
一般常用的衛星導航都會用到GPS,這裡說明一下GPS的通訊與資料的格式GPS也是利用Serial port的方式來傳遞資料,速率上一般是使用 4800,N,8,1傳輸上是單向的,也就是說我能夠收到衛星傳過來的訊息,但不能發送訊息給衛星..下面簡單說明一下協定的部份,如果須要更詳細的資料可以到以下網址參考http://www.gpsinformation.org/dale/nmea.htm#intro
- GPS NMEA Protocol -NMEA 是GPS用的標準通訊協定,傳回值是一串ASCII的字串,舉例來說可能會收到如下一串字$GPRMC,053322.682,A,2502.6538,N,12121.4838,E,0.00,315.00,080905,,,A*6F
053322.682:UTC Time , 格式是hhmmss.sss所以是5:33:22.682
A:代表資料是有效的,如果找不到衛星的話會是V
2502.6538:代表的是緯度,格式是degree * 100 + minutes。但是minutes是100進位,所以 要/100 * 60轉為degree,轉換後就是25'02'39.228''. 2502.6538 / 100 = 25.02 0.6538 * 60 = 39.228
N:代表緯度的資料是北緯
12121.4838:代表是經度,格式同緯度的部份一樣要經過轉換。
E:代表經度的資料是東經
0.00:代表的是速度,這裡因為天線沒有移動,所以是0
315.00:代表的是方向
080905:代表的是現在的日期,格式是ddmmyy再過來有兩個欄位沒有用到所以空著
A:不確定
*6F:代表的是CheckSum CheckSum(檢查碼)是以*號開頭,後面兩個Ascii字元算法如下 不包含開頭的'$',一直計算到'*'之前。一個byte一個byte的作XOR.
留言