CLASでUART接続

このページの内容

NEO-D9Cが出力するCLAS補正データをUART2経由でZED-F9Pへ渡す実用的な方法を説明します。
配線の作業とu-centerによる設定作業があります。

UART同士の接続について

本来のUART同士の通信をするには、それぞれのTXとRXを交互に配線します。
TXとTX、RXとRXではありませんので気を付けてください。
TXは送信(Transmitter)、RXは受信(Receiver)の意味です。
また、お互いの通信速度(ボーレート)を同じ値にしておく必要があります。


UART1とかUART2とかはモジュールが複数個のUARTポートを持っていることが多いのでそれを区別する番号です。
ZED-F9PやNEO-D9CはUARTを2つ持っています。そのうちの1個を補正データ転送専用に使う訳です。

UART2による補正データ転送

u-centerを経由せずに、NEO-D9CのUART2送信とZED-F9PのUART2受信を直接電線で配線してCLAS補正データを送ります。


ジオセンスさんの「D9CX1使用説明書」の「3.ZED-F9Pモジュールとの接続」の「UARTによる転送」を参考にしてください。
https://www.geosense.co.jp/d9cx1_manual/
記事にも書かれていますが、一番簡単で効率的な補正データ転送方法です。
ただ、配線が必要になります。

配線は3ヶ所です。(電源を切る意味で)USBケーブルはPCから抜いておいてください。
最初にGND同士を繋ぎます。(黒色の線)
次にNEO-D9CのUART2の送信(TX2)とZED-F9PのUART2の受信(RX2)同士を繋ぎます。(黄色の線)
最後に、電源V5V同士を繋ぎます。(赤色の線)

赤色の線は(NEO-D9CのUSBケーブルは使わないので)電気をZED-F9Pからもらう為です。
黒色の線は2つのモジュールを電気的に同じレベルにするために接続します。GNDは0Vになります。
それぞれのモジュールの回路図もジオセンスさんのページから見られますので参考にして下さい。



ジオセンスさんの「D9CX1ボード」と「F9PX1ボード」は上下に重ねるとそのまま同じ位置で接続できるように設計されています。
私は実験の為にブレッドボードを使用しています。

u-centerでZED-F9PとNEO-D9Cを設定

ジオセンスさんの記事によると
ZED-F9Pの設定でUART2入力にUBXを加える、出力をUBXのみにする。
NEO-D9Cの設定でUART2出力にUBXの出力を加える、ボーレートを38400にする。

変更する箇所を明確にしておきましょう。
念のために初期の値も掲載しておきます。


USBケーブルを1本だけ用意してください。
もし、USBケーブル2本から同時に電源がモジュールに供給されると、モジュールが壊れる可能性があります。

先ず、ZED-F9Pから設定します。
USBケーブルをZED-F9Pに接続し、PCの付箋のZED-F9P側のUSBソケットに差し込みます。
u-centerを起動します。
メニューからReceiver->Connection->COM3(ZED-F9P) をクリック
u-centerとZED-F9Pの通信が開始される。
メニューからView->Message View->UBX->CGF(Config)->PRT(Ports)
と展開していきます。

プルダウンメニューからTarget UART2を選択
Protocol outからUBXを選択



ここまでが、設定の表示と変更でした。

ここからは、この設定をメモリーに記憶させます。ここからがややこしくて失敗する事が多い。

変更後の画面の値を確認したら、
ウィンドウ左下のSendボタンをクリックします。
さらにこのウィンドウを閉じると、


警告のメッセージ表示されます。
このまま記憶するので「はい」をクリックします。
すると、UBX-CFG(Config)-CFG(Configuration)のメモリ選択画面に切り替わります。



Save…を確認して、ウィンドウ左下のSendボタンをクリックします。
カウントが始まるとこの設定が有効になったことを示しています。
ウィンドウを閉じます。

まとめると
1.変更したい設定画面を表示する。
2.設定を変更する。
  同画面のSendボタンをクリックする。
  同画面を閉じる。
3.警告メッセージで「はい」をクリック
4.メモリー選択画面で再びSendボタンをクリック
  カウントを確認
  閉じる

ZED-F9Pとの通信を切断する。
u-centerを閉じます。
USBケーブルをPCから引き抜きます。
USBケーブルをZED-F9PからNEO-D9Cに付け替えてください。

同様にしてNEO-D9Cの設定も変更してください。

ややこしいのは、設定画面のSendボタンと、メモリ選択画面でもSendボタンがあることです。
なお「メモリ選択画面」は筆者が勝手にそう呼んでいます。

ついでに、「メモリ選択画面」では設定のSaveだけでなく、設定を工場出荷状態にすることもできます。
Revert to default…を選んでSendすると初期化できます。

プロトコルについて

UARTを設定する時にUBX,NMEA,RTCM2,RTCM3といった文字が見られました。これについて簡単に説明します。
UBXはユーブロックス社の独自の通信手順で、u-centerから各モジュールへの設定情報や、NEO-D9Cが出力するCLAS補正データもUBXを使用してるようです。
そのため、NEO-D9CのUART2の出力にUBXを指定して、ZED-F9PのUART2の入力にUBXがある事を確認した訳です。
NMEAは衛星からの文字列データでアスキーコード(数字、アルファベット、改行等の制御文字等)です。
RTCMはRTK方式でのデータをやり取りするプロトコルで多分ここでは不要と思われるのですが、そのまま残しています。

FLOATとFIXED

カーナビ等で使用される一般的な(数mの誤差)のGPSはある時刻t1の衛星の位置とその衛星からの電波を受信した時刻t2から、(t2-t1)×光速から距離が求まります。
つまり、時計の精度のみで瞬間で距離が決まってしまいます。
しかし、高精度(数cmの誤差)なGPSは搬送波を直接観測して波長×波の数から距離を求めています。
つまり衛星と観測地点の距離を求める方法が違うそうです。
私は原理は分かりませんが、この波の数を推定して徐々に正しい数に収束させているそうです。この収束が完了するまでがFLOATで、完了するとFIXEDの状態になります。
屋外で上空が開けた場所では1~3分ほどでFIXEDしますが、室内や樹木等の障害物が多い場所ではなかなかFIXEDしません。