2. 無線ネットワークを利用した GPS テレメトリ観測システムの開発
2.8. ソフトウェア設計
2.8.5. 時刻同期
44
45
2.8.5.3. 一般的な時刻同期方法
一般的なGPS受信機は1PPS(1 Pulse Per Second)と呼ばれる矩形信号を出力
する。この1PPS信号はGPS受信機が4つ以上の衛星を測位に利用しているとき(以 下、3D 測位)に UTC に同期している。通常、マイコン等のハードウェアが時刻を 同期する場合、この信号の立ち上がりエッジを割り込み要因とし、内部タイマのレジ ストリをリセットする。図2-24に3D測位状態のGPS受信機が出力している1PPS
とNMEA 0183の出力の関係を示す。図中の黄線が1PPS信号を表しており、青線
がシリアル信号の様子を表している。
図2-24 1PPSとシリアル信号の関係
2.8.5.4. NMEA 0183 シリアル出力を利用した時刻同期
本研究で使用するGPS-72Dは1PPS信号を出力しない。そこで、図2-25に示す
様にNMEA 0183センテンスがUTCに同期して出力されることを利用して、最後の
センテンスが出力された直後の’$’文字をトリガとして時刻同期を行い、1PPSの有無 を問わない時刻同期を実現した。
図2-25 NMEA 0183センテンスと時刻(UTC)の関係
46
2.8.5.5. NMEA 0183 センテンスの出力順序の認識
実験のタイプによって必要となる NMEA 0183 センテンスの種類が異なる上に、
NMEA 0183センテンスの出力順序は規定されていない。そこで、NMEA 0183を利
用した時刻同期のために、まずは NMEA 0183 センテンスの出力順を認識する必要 がある。
終端文字のLFを受信してから次のLFを受信するまでに要する時間を∆𝑡とした場 合、一般的には図2-26に示すように最後のセンテンスが出力されてから次のエポッ ク6におけるセンテンスが出力されるまでが最大となる。そこで本研究では、∆𝑡が最 大となった区間を1セットのセンテンスの区切りと認識した。
一度 NMEA 0183 センテンスの出力順を認識すれば、以後センテンスの種類を変
更しない限り再認識は不要である。本研究では、GPS 首輪の電源を入れた直後に認 識するものとした。
なお、本処理はクロックの遅いマイコンでも十分に機能し、かつ処理中の関連フラ グの変化を回避するために、割り込みを利用せずにセンテンスを処理する方法で実装 した。
図2-26 NMEA 0183センテンスと時刻(UTC)の関係
Δtの一番大きい区間がセンテンスの区切りを表している。
2.8.5.6. 最初のシリアル受信割り込みを利用した時刻同期
最初に出力されるセンテンスの‘$’による割り込みをトリガとして内部タイマを リセットし、時刻を同期させた。時刻同期精度は、NMEA 0183センテンスの出力タ イミングにおけるオフセットとジッタにより、約10 msである。
なお、時刻同期後はGPS首輪に実装した水晶発振子のクロックドリフトの影響を 受け、内部時計は1日で1~2秒ほどずれる可能性がある。そのため、GPS受信機に よる測位が完了する度に時刻同期を取るようにした。
6 ここでは、測位情報の表している時刻(タイムスタンプ)をエポックと呼ぶ。
47