/ «2003-09-27 (Sat) ^ 2003-09-29 (Mon)» ?
   西田 亙の本:GNU 開発ツール -- hello.c から a.out が誕生するまで --

Categories Books | Hard | Hardware | Linux | MCU | Misc | Publish | Radio | Repository | Thoughts | Time | UNIX | Writing | プロフィール


2003-09-28 (Sun)

[Time] 高度 20200km の原子時計と同期せよ

昨日の「GPS MANIAXX」に引き続き、「図解雑学 GPS のしくみ」を読む。1〜2時間でスラスラ読めるほど、分かりやすい。なるほど、概略は分かった。いや、正確には分かったような「気がする」と言うべきか。

しかし、私が知りたいのは、衛星から送られてくる航法メッセージと、C/A データを用いて、NAVSTAR 衛星の原始時計とホスト環境とを、可能な限り正確に同期させるための方法なのだ。

秒速30万kmでやってくる電波が相手ともなると、1ミリ秒の誤差は実に300kmの誤差を生む、1マイクロ秒であっても300mの誤差である。50ナノ秒の誤差でようやく15mまで収束する訳だから、GPS 内部での時間管理がいかに厳密なものであるかが良く分かる。

これに対して、有名な NTP (Network Time Protocol)が想定している時刻同期精度は何と1ミリ秒以内である。桁違いというレベルではなく、4〜5桁もの差が存在することになる。もちろん、NTP サーバー自身は原子時計や GPS 機能を用いることで、マイクロ秒以下の精度を有しているのだが、ネットワークを経由することで、精度がガタ落ちになってしまうのである。

幸い、ミリ秒オーダーの誤差は、ほとんどの UNIX サーバーにとって支障を生じる事態には至っていないが、中には「こんな好い加減な代物、到底使えんぞ!」という現場も存在するだろう。

で、調べてみた。するとあった。それも我が日本で。筑波(KEK)におけるビーム射出時間と、250km 離れたスーパーカミオカンデでの計測時間を同期させるため、GPS が使われているのである。詳細は KEK GPS Clock System に詳しい。

こうなってくると、昨日の情報検索がいかに甘ちゃんであったかが、良く分かる。「表層」しか見ていなかったのだ。これでは、GPS 携帯を手にして喜んでいるコギャル達とちっとも変わらんな・・。猛省することしきり。

で、再び本気で検索しまくる。今度はさすがに手強く、なかなか思うような情報源にヒットしない。目指すは、NAVSTAR 衛星から送られてくる「生データ」をもとに、「自力」で位置・時刻を計算すること、そのために必要な minimum なハードウェア環境は何なのかを突き止めること。おそらく「GPS プロセッサをバイパスして」、生データをリアルタイムでホスト CPU に伝達する方法が、一番のポイントになるだろう。しかも、予算は200ドル前後で実現できなくてはならない。読者が追試できるためには、この辺りの金額が限界だから。

当然のことながら、日本では見つからなかった。が、ついに私と同じことを考え、既に教育現場で実践している人を発見!場所は、当然アメリカである。これはいつも感心させられるのだが、アメリカ人というのは、本気で学生のことを考える。教材の値段は必ず100ドル前後、高くても200ドル以内だ。なぜこんなことが可能なのか?

アメリカでは企業が Educational kit を100ドル前後で提供する風土がある。アメリカの将来を担う学生達が、最小限の負担で、優秀な教材を使った学習を行うことができるよう、国全体でバックアップしていることになる。しかも、その教材は極めて優れたものが多い。

これはまた機会を改めて紹介する予定だが、アメリカで販売されている 有名な FPGA 学習キットは、日本の会社が販売しているものなど、到底勝負にならないほどの出来である。値段は100数十ドル。

日本では、この手の評価キットは5〜7万円もする。しかも、内容は貧弱。使えない。ドキュメントがなっていない。「何とかならんのか」と、いつも思うが、基本的にこの状況は私が初めてパソコンに触った20数年前と何ら変わっていないような気がする。

さて、問題の「手作り GPS」のサイトであるが、その名は「OpenSourceGPS」。副題は "A starting point for learning about GPS with Open Source Software" となっている。これぞまさしく私が求めていた情報だ。根性入れて探してみるものである。

ただ、オリジナルは ISA バス対応といささか古いので、OpenGPSRec で公開されている、PCI バス対応バージョンの方が良いだろう。こちらは、Realtime Linux kernel にも対応している。ちなみに、このプロジェクトで使われているドイツ製の PCI 評価ボードは秀逸だ。こいつを何としてでも手に入れたいなぁ・・。それと、同ボードの紹介記事が掲載されていた Elektor という雑誌も、おいでおいでをしているよなぁ。困った。

で、心臓部の Superstar ボードが欲しくなったら Navtech へどうぞ(タイトルに添えられた GPS education という文字に注目!)。昨日紹介した GPSCity.com は素人さんのお店、こちらは玄人指向である。上には上がいるものだ。井の中の蛙ではダメだね。

以上で、GPS と時刻をテーマにした場合の素材選びは、ほぼ出揃った感じ。相手にとって不足はないけれども、こいつを組み伏せるのは大変だろうなぁ・・。でも、相手は宇宙だ。高度 20200km を秒速 4km でビュンビュン飛び回っている、重量 900kg の衛星約30基だよ。Linus のおじさんも辿り着けなかった境地が、ここには確かにある。男のロマンって、奴ですか?