ノートブックPCでソフトウェアによるベースバンド処理を可能にする汎用GPSレシーバ
要約
このアプリケーションノートは、L1帯の民生用GPSアプリケーション向けのソフトウェアベースのレシーバにおける信号の捕捉とトラッキング、レシーバでのビット同期などの基本的理論を検討します。また、汎用GPSレシーバのMAX2769とUSBドングルを用いてラップトップPCにGPS機能を低コストで追加する方法が解説されています。
このアーティクルはマキシムの「エンジニアリングジャーナルvol. 63」(PDF、906KB)にも掲載されています。
概要
通信分野やナビゲーション分野では、GPS (Global Positioning System)用ソフトウェアの利用に対する関心が広がっています1、2。VLSI (大規模集積回路)の開発が可能になった結果、パワフルなCPUとDSPを使って、GPS信号の検出とデコードをソフトウェアでリアルタイムに行えるようになったからです。生成されるソフトウェアベースのGPSレシーバはIF周波数の変更などの設定変更により、ハードウェアの設計をやりなおさなくても、新しいアプリケーションに対応したり、将来的なアップグレードが可能であるなど、高い柔軟性を持ちます。
GPSレシーバ用RFフロントエンドのMAX2769を利用すれば、シンプルなUSBドングルやPCI Express® (PCIe®) Mini Cardといった形でGPS機能をノートブックPCへ低コストに追加することができます。MAX2769は取り込んだ生データをPCホストへ送り、ホスト側でソフトウェアによるベースバンド復調処理を行えば、スタンドアロンのGPSシステムで用いられているベースバンドASICのコストは不要になります。つまり、MAX2769を使うことによって、GPS信号とGalileo信号をシングルチップで処理するアダプタ機能が実現します。
このアプリケーションノートでは、まずGPSシステムの動作を概観し、その後、マキシムが提供するソフトウェアベースのGPSレシーバソリューションについて解説します。
GPSの基本
GPSシステムを構築するには、24基の衛星(各衛星は一意の擬似乱数雑音コードで特定)、地上の基準局、およびユーザ機器(レシーバ)が必要となります。民生用GPSとGalileoアプリケーションでは、1.57542GHzのL1帯で衛星との通信が行われます³。GPSレシーバで信頼性のある測位を行うには、少なくとも4つの衛星が見通し線上になければなりません。信号は時間とレシーバ位置によって変化するため、その捕捉とトラッキングは非常に複雑です。
図1. 民生用GPS信号の信号生成ブロックでは、スペクトル拡散方式で信号を送出します。
GPSシグナリング
GPSシステム自体は、スペクトラム拡散型のシンプルな通信システムです4。図1に示しているのが、民生用アプリケーションの信号生成ブロックです。まず、50bpsの航法メッセージを20回繰り返し、1000bpsのビットストリームとします。これを1023チップ長のC/A (coarse/acquisition)コードでスペクトラム拡散させます(チップとは擬似乱数雑音(PRN)コードを適用するレート)。これで1.023Mcpsのベースバンド信号が得られます。このような処理をしておくと、GPSシステムが持つ43dBの処理利得(G)によって、サーマルノイズレベルを下回る信号を十分に復調することができます。
各衛星には一意のC/Aコード(ゴールドコードとも呼ばれる)が割り当てられています5。C/Aコードは自己相関特性と相互相関特性に優れていることから、WCDMAやcdma2000®などのCDMA通信システムでも広く使用されています。ベースバンド信号には2位相偏移変調(BPSK)をかけ、L1帯にアップコンバートして送信します。
信号捕捉方法の検討
GPSはCDMA情報通信システムであるため、データを復調するためには、まず、PRNコードに同期する必要があります。これは、通常2段階で行います。まずコードを捕捉して大まかにアライメントを取り、その後、コード位相トラッキングによって微調整を行います6。具体的には、まず、GPSレシーバから衛星へ見通し線が通っているかどうかを確認する必要があります。前述したように、各衛星には一意のC/Aコードが割り振られています。そのため、衛星を見通し線で捉えることができれば、コードの捕捉によって信号の周波数とコード位相を求め、そこから復調パラメータを得ることができます。ただし、レシーバと衛星の相対速度に応じ、受信する信号の周波数にはドップラー効果7による5kHzから10kHz程度のずれが生じます。
レシーバ側では、受信したGPS信号をまずダウンコンバートし、同相成分と直交成分(IとQ)に変換します。その後、ベースバンド信号から得たこのIおよびQとローカルに生成したPRNシーケンスとの相関を、I/Q相関器のペアを用いて取ります。これを1ビット分積分したあと、I/Q相関器の出力を合計して出力決定変数とします。
決定変数があるスレッショルド値を超えると捕捉が成功したと判断し、トラッキングモードへ移行します。超えない場合はローカルに生成したPRNシーケンスとオシレータ周波数の相対的位相を調整して決定変数を更新し、上記プロセスを繰り返します。
これはシリアル探索で、ロジック構造がシンプルとなることからASICによる実装が可能である半面、探索空間が巨大となるためソフトウェアによる実装は非現実的です。キャリア周波数のオフセットを500Hzまで許容し、ドップラー効果による周波数のずれが10kHzまであるとすると、ソフトウェアで実装しなければならない探索空間は2 x (10,000/500) x 1023 = 40,920程度となります。このようにシリアル探索による捕捉をソフトウェアで実現するのは困難です。
ソフトウェアでの実装が容易な捕捉方法としては、周波数領域によるパラレルコード位相捕捉が考えられます。この場合、PRNコードを高速フーリエ変換(FFT)してからドップラー周波数の探索とコード位相の探索をまとめて行い、コード位相情報のすべてを周波数領域に移します。こうすれば、ドップラー周波数オフセットの部分だけを探索するだけでよくなるため、ソフトウェアによって高速かつ効果的な探索が実現します。
実際のシステムでは、まず、ローカルに生成したサイン波とコサイン波によるキャリアを受信した信号にかけ合わせます(それぞれ、信号のI成分とQ成分)。その後、このI成分とQ成分を合成してFFTブロックへの複素入力とします。フーリエ変換の出力にPRNコードをFFT変換した共役数をかけます(PRN発生器で生成されるコードの位相はゼロ)。実装する際には、FFT操作とPRNコード生成の部分はテーブル化し、計算を簡略化することができます。
ローカルに生成したコードと受信信号の積は受信周波数とキャリア周波数との補正を表すため、これを逆フーリエ変換し、その二乗出力を決定ロジックへフィードバックします。このFFTによる周波数領域処理は、計算リソースの消費が少ないという特長を持ち、前述と同じ例で考えると、20,000/500 = 40回程度のFFT操作で済みます。
シリアル探索は、便利なASICによる実装で必要とされるシンプルなロジックと制御アーキテクチャを持っています。しかし探索空間が巨大で、ソフトウェアアルゴリズムでの実現は困難です。つまり、ソフトウェアをベースとしたGPSレシーバには不向きです。これに対し、パラレルコード捕捉方式はソフトウェアによる実装に適しています。しかしそのロジックアーキテクチャはシリアル探索法と比較してはるかに複雑で、ASICによる実装は困難です。
トラッキングによるアライメントの微調整
捕捉により、GPS信号の周波数とコード位相パラメータとの大まかなアライメントが実現されます。トラッキングはそのアライメントを微調整し、正確なコード位相情報と周波数情報を元にデータの復調が行えるようにするものです。トラッキングにはコード位相のトラッキングとキャリア周波数のトラッキングがあります。
コードのトラッキングは、図2に示す遅延ロックループ(DLL)で行います。DLL回路では、ローカルに複製したPRNコードのレプリカ、3種類(±0.5チップにおけるコード)を受信信号に対して積算します。3種類のレプリカは、受信信号に対して早め、同時、遅めに到着したものを表します。これを積分すると、各信号は受信信号とローカルレプリカとの相関関係を表すものとなります。そのうち相関値が最も高いものを選んで保持します(図3)。
図2. コードのトラッキングでは遅延ロックループを用いてアライメントを微調整し、正確なコード位相情報と周波数情報をもとにデータの復調が行えるようにします。
図3. DLL回路では、ローカルに複製したPRNコードのレプリカ、3種類(±0.5チップにおけるコード)を受信信号に対して積算します。3種類のレプリカは、受信信号に対して早め、同時、遅めに到着したものを表します。そのうち相関値が最も高いものを選んで保持します。
キャリア周波数のトラッキングは位相ロックループ(PLL)かコスタスループで行います8。ローカルに生成する周波数を受信信号の周波数にぴったり合わせることがキャリアトラッキングの目的だからです。
捕捉とトラッキングによって初期同期を実現したら、航法ビットのデコードを行います。まず、.023Mcpsの入力信号を逆拡散させ、1000bpsのビットストリームにします。次にビット同期を行い、1000bpsのビットストリームから50bpsの情報を取得します。ビット同期を行うためには、まず、零交差エッジ(ゼロボルトとなる点)を見つけてビットの開始点を特定します。航法データのメッセージは50ビットで時間にすると20msを占めるとわかっているので、エッジが特定できたら1000bpsの入力ストリームを20ms間隔に分割します。20ms間隔のビットサンプルを合計し、平均値を取るとデコードが完了し、航法データが得られます。
ソフトウェアベースのGPSレシーバ
従来のGPSレシーバでは、捕捉、トラッキング、ビット同期をASICで実装していますが、ソフトウェアベースのGPSレシーバではこれらの機能をソフトウェアで実装することにより高い柔軟性を実現します。ソフトウェアを活用すればハードウェア側のアーキテクチャをシンプルにできるため、コストを削減しつつレシーバの小型化と効率化を行うことができます。ソフトウェアはC/C++、MATLAB®などさまざまな言語で作成可能で、組込みOS、PC、Linux、DSPプラットフォームなど、どのようなオペレーティングシステムへもポーティングすることができます。このようにソフトウェア型GPSレシーバは携帯電話、PDAなどのモバイルアプリケーションに適した高い柔軟性を持ちます。
USBポートがあるノートブックコンピュータに対しては、USBドングルの形で設計することができます。新しいノートブックでPCIe Mini Cardのコネクタを持つ場合は、RFフロントエンドをPCIe Mini Cardに組み込んでPCに装着する形を採ることができます(図4a、4b)。PCIe Mini CardインタフェースにはUSBポートも搭載されているため、USB用でもPCIe Mini Card用でも同じようにフロントエンドアダプタを設計することができます。違いは、PCIeをサポートするためにはある種の電源管理ロジックが必要になる点とDC電圧の違いくらいです(PCIeは3.3Vであるのに対し、外付けUSBポートは5V)。
図4. USBドングル用アダプタ構成(a)とPCIe Mini Card用アダプタ構成(b)。いずれの場合もシンプルで低コストな設計となります。
図5bに示すUSBドングルのブロックダイアグラムを見れば、このソリューションがどれほどシンプルであるのかがわかります。この回路では、汎用GPSレシーバのMAX2769のほか、カウンタとUSBインタフェースコントローラを使うだけで信号の捕捉からディジタル変換、ホストPCへの転送を実現します。ベースバンド機能の処理からPC画面への現在位置の表示まで、残りのすべてはソフトウェアで行います。これでノートブックPCはパワフルなGPSデバイスとなり、ナビゲーションから位置情報をベースとした各種サービスまでを利用できるようになります。
ディジタル化されたIFデータは、GPSフロントエンドから業界標準のUSB 2.0インタフェース経由でノートブックにストリーミングされます。これを入力としてベースバンドソフトウェアが位置決定計算からトラッキングまでを行います(このようなソフトウェアは、Geotateなどが提供しています。詳しい情報はhttps://www.u-blox.com/en/product-resourcesを参考にしてください) 。
ソフトウェアで仮想COMポートを構築すれば、汎用インタフェースとしてさまざまなナビゲーションアプリケーションや位置情報アプリケーションとリンクすることができます。GPSソフトウェアパッケージの多くはNMEA 0183に準拠したインタフェースを持っていますし、オペレーティングシステムとしてはMicrosoftのWindows® XPやWindows Vista®に対応しています。また、業界標準のプロトコルあるいは独自インタフェースを通じて支援データが得られる場合、ソフトウェアであれば、その処理も行うことができます。
最近のノートブックコンピュータであれば、ソフトウェアGPSレシーバが必要とするリアルタイムデコーディングを十分に行えるだけの性能を持つCPUを搭載しています。トラッキング中の平均プロセッサ負荷は、1秒ごとにアップデートを行う場合でも、1GHz Pentium® Mで6%程度、2.18GHzのCore™ Duoプロセッサであれば5%以下となります。アルゴリズムを改良すれば、2%以下のCPU使用率とすることも可能です。
図5. ソフトウェアGPSレシーバでは、捕捉したRF信号を増幅し、ミキシングによって周波数を下げた上でディジタル化する必要があります(a)。実際のレシーバでは、低ノイズアンプによってRF信号の増幅を行います。次にMAX2769で周波数の引き下げから信号のディジタル化を行います。こうして得られたデータは、カウンタとUSBインタフェースコントローラを経由し、USBプロトコルに乗せてホストPCに送ります(b)。
回路の動作と性能
ソフトウェアベースのGPSレシーバのRFフロントエンドでは、受信した弱い信号を低ノイズアンプ(LNA)で増幅した後、約4MHz (図5a)という低IF (中間周波数)へとダウンコンバートします。ダウンコンバージョンは、1つあるいは2つのミキサを使用し、ローカルオシレータ信号を入力RF信号へミキシングすることによって実現します。得られたアナログIF信号はアナログ-ディジタルコンバータ(ADC)によってディジタルIF信号に変換します。
MAX2769であれば、LNA、ミキサ、およびADCの3つの機能を集積しているため、アプリケーションの開発期間を大幅に短縮することができます。またMAX2769では、2種類のLNAが利用できます。1つはパッシブアンテナ用で雑音指数が0.9dBと非常に低く、利得は19dB、IP3は-1dBmとなっています。もう1つはアクティブアンテナ用で、雑音指数は1.5dB、利得と消費電力は若干低め、IP3は若干高めとなっています。電源電圧は2.8Vで、消費電流は構成にもよりますが、13mAから18mAと非常に少なくなっています。
増幅後、外部フィルタでRFのフィルタリングを行う方法もあります。この場合、内蔵の20ビットシグマ-デルタフラクショナルN周波数シンセサイザと15ビットの整数分周器を用いることによって、IFを0から12MHzの間で自由に選び、その周波数へフィルタリングした信号を直接ダウンコンバートすることができます。このようにIFフィルタリングを自由に選ぶことができれば、Galileoなど、別の構成にも対応できます。
RF入力からIF出力までの総合利得は、60dBから115dBの範囲で自由に設定でき、また自動的に制御することもできます。出力は、アナログ、CMOSロジックレベル、制限差動ロジックレベルから選ぶことができます。内蔵ADCも、1ビットから3ビットの範囲で出力を選ぶことができます。基準発振回路も内蔵されており、水晶振動子あるいは温度補償水晶発振器(TCXO)による動作が可能です。入力基準周波数は8MHzから44MHzまで対応します。
USBドングルのシンプルなリファレンスデザインとして、基準周波数24MHzから動作するCypress Semiconductor社のUSBコントローラとMAX2769を使用したものが用意されています(図5b)。このドングルでは、LDO MAX8510を用いてDC電源を安定化しています。MAX2769のレジスタのプログラミングは、3線(SPI™)ディジタルバス経由で行います。それとは別に、3端子をハード的に設定することにより、SPI制御なしに8通りの構成の中から1つの構成を選択して動作させることもできます。
このほか、アクティブアンテナにバイアスを供給するとともに、USB規格に準拠するように、シャットダウンモードに入ったらアンテナをオフにする回路も内蔵しています。MAX2769は、アンテナ電源から流れる電流の有無を検出し、LNA1とLNA2を自動的に切り替えることができます。この機能は、内蔵パッシブアンテナの代わりに感度の高いアクティブアンテナを外付けできるようにしたい場合などに便利です。その場合は、外部アンテナポートをLNA2に、内蔵ポートをLNA1につなぐだけです。外部アンテナを接続すると、その消費電流をMAX2769が検出し、LNA1からLNA2へ自動的に切り替えます。
MAX2769は、ノートブック、携帯電話、PDA、および車載アプリケーションなどに適した高性能でコンパクトなソリューションです。総定格電圧利得は最大で115dB、モジュールの雑音指数は1.4dBであり、一般的なGPSソフトウェアパッケージを用いた場合で感度は捕捉時-143dBm、トラッキング時-154dBmとなります。
まとめ
ソフトウェアGPS技術は、多くのアプリケーションに高レベルの柔軟性と簡素性を提供します。 そのような可能性を追求するため、MAX2769は、従来のハードウェア式GPSレシーバと同等の周波数柔軟性をソフトウェアGPSレシーバに対して提供します。もちろん、どのようなソリューションにもメリットとデメリットがあります。ソフトウェアGPSレシーバを実現するためには、高性能なプロセッサとそれなりの容量のメモリが必要です。しかし、ソフトウェアを工夫し、クロックとデータ更新速度を適切に選択することによって、メモリの使用は最小限に抑えることができます。
リファレンス
- Kaplan, E., Understanding GPS: Principles and Applications, 2nd ed. (Norwood, MA: Artech House Publishers, 1996).
- Bao-Yen Tsui, J., Fundamentals of Global Positioning System Receivers: A Software Approach, 2nd ed. (New York: John Wiley & Sons, Inc., 2004).
- For the decoding of navigation messages and position calculations, refer to Bao-Yen Tsui, Fundamentals of Global Positioning System Receivers.
- Viterbi, A., CDMA: Principles of Spread Spectrum Communications (Reading, MA: Addison Wesley Longman Publishing Co., Inc., 1995).
- Gold, R., "Co-optimal binary sequences for spread spectrum multiplexing," IEEE Transactions on Information Theory, Vol. 13:4 (October 1967). pp. 619–621.
- Ziemer, R.E., and Peterson, R.L., Digital Communications and Spread Spectrum Systems (New York: Macmillan Publishing Company, 1985).
- Proakis, J. G., Digital Communications, 4th ed. (New York: McGraw-Hill, 2000).
- Ibid.
著者について
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}