2014/06/20

u-blox NEO-M8NによるGNSS衛星の航法メッセージ出力

XBee型GPS基板の組み立てを行い、正しく動作することが確認できたので、ublox NEO-M8Nによる生データ取得を試してみました。

左からNEO-7P, NEO-M8N, NEO-6M

手始めに行ったのはTRK-SFRBX(0x030F)ページの解析です。
解析の結果は以下の通りになります。

Byte Offset Number
Format
Scaling Name Unit Description
0 U1 - reserved1 - Reserved
1 U1 - gnssId - GNSS identifier (see Satellite Numbering)
0: GPS, 1: SBAS, 2: Galileo, 3: BeiDou, 5: QZSS, 6: GLONASS
2 U1 - svid - ID of Satellite transmitting navigation message
3 U1 - reserved2 - Reserved
4 U1 - prn - PRN
5 X4 - flags? - flags?
9 U4 ? time? ? time?
13 X4[N] - dwrd - Words of Data
navigation message
(長さはGNSSにより可変
GPSの航法メッセージの格納法はRXM-SFRBと2ビットずれがあり)

少なくともGPSの航法メッセージが正しいことはNEO-7Pとの比較で確認できています。

航法メッセージが取得できたので、擬似距離・搬送波位相・ドップラーシフト等のデータがあれば測位が可能になります。
これらのデータはTRK-MEASメッセージから出力されるようなので、こちらの解析も進めたいと思います。

2 件のコメント:

  1. 非常に参考になります!ちょうどM8Nのモジュールが手に入ったので試してみました.(2ビットずれの情報がなければ相当ハマっていたと思います,ありがとうございます)無事,GPSはメッセージが一致することを確認できました.

    上記の表ですが,バイトオフセットに関してgnssID以降はすべて+2ではないでしょうか?

    メッセージの長さに関して,ヘッダーの4バイト(0xB5,0x62,0x03,0x0f)込みでGPS=61,QZS=61,BDS=61,GLO=53,SBS=37でした.デコーダをRTKLIBに組み込むところがちょっとめんどくさいかもしれません.

    ロシアのコミュニティでusm78-gisさんがTRK-MEASのデコーダ公開していたので,M8NでRTKもなんとかなっちゃいそうですね.また情報がありましたらぜひ教えて下さい!

    Taro

    返信削除
    返信
    1. コメントありがとうございます。
      また、返信が遅くなってしまい申し訳ありません。

      バイトオフセットの件ですが、モジュール生出力は、
      b562 030f 3500 01 00 02 00 01 0100ff57 10890100 3605c322a88aaf8b53383f0b362eac0c39aa0b8aa7c151bfacdb7c3d7f683f0675574103131fca88 a9d4
      等になっていますので、表のバイトオフセットは少なくとも私のモジュール出力とは合致しています。
      ファームのバージョンによって異なるということはないと思いますが、念のためバージョンの確認をお願いできないでしょうか?
      こちらのものはSoftware Version: 2.00 (74182), Hardware Version: 00080000でした。

      メッセージ長さについての情報ありがとうございます。こちらは私のモジュールでも同じ長さになることが確認できました。

      M8NでマルチGNSSのRTKができるととても楽しそうです。ロシアのコミュニティの様子を見つつ、hackを進めていこうと思っています。

      削除