April 02, 2006

Open source GPS 計画編

少し前にオープンソースGPSの話を記事にしましたが、その後、日本人でオープンソースGPSの開発に関わっている海老沼さんという方からメールを戴き、色々と話を伺うことができました。その中でわかったことは、RF段から挑戦するのは少しハードルが高いということです。
ということでRF段から取り掛かるという方針を変更し、次のようなマイルストーンを考えてみました。

  1. 既存の受信機をハッキングし、RFをIFに落としA/D変換した後のデジタルデータをUSBで取り込むハードウェアを作成する
  2. そのデータをPCで信号処理できるようにし、GPSのC/Aコードマッチ、ナビゲーションデータ取得、搬送波位相や擬似距離測定などできるようにする
  3. RF段を完成させ、全て自前の機器に置き換える
そういうわけで、今は一番目と二番目の部分を同時に考えていくことにしました。

SuperStar2_hack.png海老沼さんより戴いた図。

一番目の部分については海老沼さんより、GPS受信機では有名なメーカであるNovatelSuper Star 2という製品なら簡単にデータを取り出すことができると教えていただきましたので、それでチャレンジしてみることにします。上図はSuper Star 2からデジタルデータを取り出す方法です。
またUSBの方は勿論、USB-ADC2で使用したCypress FX2LPでいきます。

二番目の部分ですが、以前ソフトウェアGPSの本としてFundamentals Of Global Positioning System Receivers: A Software Approachをこのブログで紹介しましたが、この著者の方はレーダーの専門家らしく、実際信号処理方法はFFTしまくる、これは組込みまで考えると一般的な方法ではないとのことです(PCで処理する分には問題ありません)。そこで薦めていただいたのが、精説GPSという本です。実はこの本は持っているのですが、あまり読み進めていませんでした(笑)。
あとこの本ですが、一般的な書店では取り扱っていません。入手は上記書籍のリンクの『販売』の部分を参考にしてください。

最後にですが、色々と教えてくださった海老沼さんに感謝を表したいと思います。海老沼さん自身は現在、海外製オープンソースGPSのARMへの移植をされています。詳しくはご本人のページをどうぞ。
ブログをやっていると海老沼さんのように親切に色々と教えていただける方がたくさんでき、本当に嬉しい限りです。

※その後、C/Aコードの抽出をしてみました

※※質問を戴いたので、いくつか補足をしておこうと思います。

[フロントエンド(GP2015)とベースバンド処理チップ(GP4020)の関係について]
フロントエンド(GP2015)では、GPSの電波(L1=1575.42MHz)を、低い周波数(通常数MHz)にダウンコンバート、A/D変換を行って後段の相関器やプロセッサが処理しやすい形に作り変えています。従って、その中身は局部発信器やミキサー、A/D変換機など、非常にアナログな要素で構成されています。
一方のペースバンド(GP4020)ですが、フロントエンドで処理された信号に対してまずばじめに、相関器などを用いて信号をトラッキングすることが行われています。さらに信号を絶えずトラッキングした結果を用いて、衛星からの距離(信号の到達時間を計測)や速度(ドップラー効果による信号の遷移を観測)をプロセッサが処理し出力している次第です。従ってベースバンドはデジタルな世界です。
多くのソフトウェアGPSは、ベースバンドが担当している部分(通常のベースバンドチップは、H/Wによる相関器、その他の部分を処理するためのソフトが動作する汎用プロセッサ、2つの部品で構成されている)全てを(相関器も含めて)ソフトウェアで補おうという計画で、受信する信号の形態が多少変わった際もソフトウェアの変更のみで比較的柔軟に対応しようというアイデアです。

[図にある「Super Star 2」の端子から信号を取り込む方法]
この端子から出力されるのはデジタル信号ですので、簡易的には市販のロジックアナライザなどを使って信号を取り込むことが可能です。電子工作の知識があればCypressやFTDIのチップを使ってUSB経由で取り込むというのがいいかもしれません。

[とりあえず、測位計算のみ検討してみたい場合]
測位演算部分をPC等、別のプロセッサで処理したいのであれば、ベースバンドで計算されている比較的生な情報(擬似距離、キャリアフェーズ、デルタレンジ等)がとれる受信機を利用するのがよいと思います。
多くの安価な受信機はこれらの情報が隠蔽されてしまうため、適さないのですが、僕がメインで使用しているu-bloxの受信機は比較的安価(最安モデルで100ドル程度)ながら、これらの情報を利用することができます。接続はSCI(3.3V)かUSBですので、マイコンやPCでも接続が容易です。

※※秋月で購入できるようになったGPSモジュールでも同じようなことができそうです。

23:25 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | この記事をdel.icio.usでブックマーク | トラックバック
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/476
コメント
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。