(57)【要約】  マルチスレッドをサポート可能であり、かつ、同一のソースから出力されるＧＰＳ信号サンプルを処理可能なそれぞれのＧＰＳ信号処理プログラムで、少なくとも２つのスレッドに同時にプログラムされる、プロセッサを備えるコンピュータが開示される。【特許請求の範囲】
【請求項１】
マルチスレッドをサポート可能であり、かつ、同一のソースから出力されるＧＰＳ信号サンプルを処理可能なそれぞれのＧＰＳ信号処理プログラムで、少なくとも２つのスレッドに同時にプログラムされる、プロセッサを備えることを特徴とするコンピュータ。
【請求項２】
前記ソースは、
ＧＰＳアンテナと、
受信したＧＰＳ信号をサンプリングするためのアナログ−デジタル変換器およびＧＰＳ信号サンプルのストリームを前記コンピュータに出力するためのプロセッサを有するＧＰＳ  ＲＦフロントエンドと、
を備えるＧＰＳレシーバである、ことを特徴とする請求項１に記載のコンピュータ。
【請求項３】
前記ＧＰＳ信号処理プログラムは、それぞれ、前記ＧＰＳレシーバに、ＧＰＳ信号サンプルのストリームを出力するよう命令することが可能である、ことを特徴とする請求項２に記載のコンピュータ。
【請求項４】
前記ＧＰＳ信号処理プログラムからの重複する命令を合成し、単一の命令を、前記ＧＰＳレシーバに対して発行するようにさらに構成されている、ことを特徴とする請求項３に記載のコンピュータ。
【請求項５】
少なくとも１つのプログラムが、位置の測定以外の前記ＧＰＳ信号サンプルによる機能を実行する、ことを特徴とする請求項１に記載のコンピュータ。
【請求項６】
少なくとも１つのプログラムが、他のスレッドにおいて同時に実行している他のＧＰＳ信号処理プログラムによってアクセス可能である最新の軌道暦（ephemeris）データを維持する機能を実行する、ことを特徴とする請求項１に記載のコンピュータ。
【請求項７】
少なくとも１つのプログラムが、位置を測定する機能を実行し、他のプログラムが、異なる種類の位置を測定する機能を実行する、ことを特徴とする請求項１に記載のコンピュータ。
【請求項８】
少なくとも１つのプログラムが、位置を測定する前記機能を実行し、他のプログラムが、より遅いがより正確または確実（robust）な位置を測定する機能を実行する、ことを特徴とする請求項７に記載のコンピュータ。
【請求項９】
少なくとも１つのプログラムが、初期位置を測定する機能を実行し、他のプログラムが、前記初期位置および／または前記初期位置を測定する際に得られた他の情報を用いて、続く位置を測定する機能を実行する、ことを特徴とする請求項７に記載のコンピュータ。
【発明の詳細な説明】
【詳細な説明】
【０００１】
本発明は、ＧＰＳ信号サンプルを処理することが可能なＧＰＳ信号処理プログラムによりプログラムされたコンピュータに関する。
【０００２】
エイコス（Akos）らによる文献“ＧＰＳレシーバのためのリアルタイムソフトウェア無線アーキテクチャ（Real-time software radio architectures for GPS receivers）”（ＧＰＳワールド（GPS World）、２００１年７月）は、アナログまたは別個の変更不能な構成部品とは対照的な、プログラム可能なマイクロプロセッサまたはデジタル信号プロセッサによって、ほとんどのＧＰＳ信号処理を達成する、“ソフトウェアＧＰＳ”を開示している。この文献の図２に示されるように、ＧＰＳアンテナと、ＧＰＳ信号の前処理（フィルタリング、増幅および周波数のダウン変換を含む）およびアナログ−デジタル変換のためのＧＰＳ  ＲＦフロントエンドとから成る簡素化されたＧＰＳレシーバが、提供される。ＧＰＳレシーバから出力されたＧＰＳ信号サンプルは、次いで、適切なＧＰＳ信号処理ソフトウェアを実行している最新のＰＣまたはラップトップに供給されて、ＧＰＳ信号が処理され、位置が測定される。この文献の著者は、ＧＰＳレシーバを、“プラグイン”モジュール、すなわち“ドングル”型のデバイスとして考えており、ドングル型のデバイスは、その簡素なアーキテクチャにより、安価に製造可能であり、広範囲の採用を促進する。また、勿論、ＰＣ上に存在するＧＰＳ信号処理ソフトウェアは、本質的に、複製が安価である。
【０００３】
本発明によると、マルチスレッドをサポート可能であり、かつ、同一のソースから出力されるＧＰＳ信号サンプルを処理可能なそれぞれのＧＰＳ信号処理プログラムで、少なくとも２つのスレッドに同時にプログラムされる、プロセッサを備えるコンピュータが提供される。
【０００４】
本発明者は、マルチスレッドを使用して、高度な機能を効率的に実施可能にすることを実現した。例えば、マルチスレッドを用いたときに、
・少なくとも１つのプログラムが、位置の測定以外のＧＰＳ信号サンプルによる機能を実行してもよく、この機能には、他のスレッドにおいて同時に実行している他のＧＰＳ信号処理プログラムによって（直接または間接のいずれかで）アクセス可能である最新の軌道暦（ephemeris）データを維持することなどがあり、
・少なくとも１つのプログラムが、位置を測定する機能を実行してもよく、他のプログラムが、異なる種類の位置、例えばより正確または確実（robust）な位置を測定する機能を実行し、
・少なくとも１つのプログラムが、初期位置を測定する機能を実行してもよく、他のプログラムが、初期位置および／または初期位置を測定する間に得られた他の情報を用いて、続く位置を測定する機能を実行する。
【０００５】
ソースは、ＧＰＳアンテナと、受信したＧＰＳ信号をサンプリングするためのアナログ−デジタル変換器およびＧＰＳ信号サンプルのストリームをコンピュータに出力するためのプロセッサを有するＧＰＳ  ＲＦフロントエンドと、を備えるＧＰＳレシーバ（コンピュータ内部または外部のいずれか）としてもよい。このような場合、ＧＰＳ信号処理プログラムは、それぞれ、ＧＰＳレシーバに、ＧＰＳ信号サンプルのストリームを出力するよう命令することが可能であると便利である。ここで、重複する命令が発行されると、コンピュータが、このような命令を合成して、単一の命令をＧＰＳレシーバに対して発行できると便利である。
【０００６】
本発明を、これより、添付の図面を参照して、単なる例として説明し、添付の図面は、概略的に、ＧＰＳレシーバに接続されたラップトップＰＣを示しており、これら両方は、本発明に従って動作している。
【０００７】
添付の図面を参照すると、ラップトップＰＣは、ＵＳＢ  ＰＣポートおよび対応するケーブルを介して、ＧＰＳレシーバ１０に接続されており、ＧＰＳレシーバ１０は、ＧＰＳ  ＲＦフロントエンドＲｘとＧＰＳアンテナとから成る。ＧＰＳレシーバを、“ドングル”型デバイスとすることにより、ケーブルを省くことができる一方で、ケーブルは、ＧＰＳレシーバ（アンテナを含む）を目立つ位置に置くことを容易にし、これにより、ＧＰＳ信号を取得するチャンスを増加させる。例えば、屋内で動作させる際に、ＧＰＳレシーバを窓の近くに置くことができる。
【０００８】
動作中に、ＧＰＳレシーバは、そのアンテナを通してＮＡＶＳＴＡＲ  ＳＰＳ  ＧＰＳ信号を受信し、これらを、典型的には、帯域外ＲＦ干渉を最小化するためのパッシブ帯域通過フィルタリング、事前増幅、中間周波数（ＩＦ）へのダウン変換およびアナログ−デジタル変換によって前処理する。結果として生じるＧＰＳ信号サンプルは、ＩＦ信号を含み、ＩＦ信号は、変調されたままであり、なおも、利用可能な衛星からの全ての情報を含んでいる。
【０００９】
ＧＰＳ信号サンプルは、ストリーム内のいくつかのＧＰＳ信号サンプルの位置に挿入された、ＧＰＳ信号のサンプリングのタイミング（ＧＰＳ  ＲＦフロントエンドのタイムベースに相対する）を示す周期的なタイムスタンプと共に、ＧＰＳレシーバからＵＳＢリンクを介してＰＣメモリ（図示せず）に出力される。
【００１０】
ラップトップＰＣベースのＧＰＳ信号処理ソフトウェアを使用して、ＧＰＳ信号サンプルは、次いで、タイムスタンプを用いて処理され、これにより、擬似範囲情報を得ることを目的としたＧＰＳ信号を得ることが可能であり、擬似範囲情報から、従来のナビゲーションアルゴリズムを用いて、ＰＣの位置を測定することができる。ＧＰＳ信号取得および擬似範囲処理は、よく知られており、例えば、ＧＰＳ原理および適用（GPS Principles and Applications）（編集者、カプラン（Kaplan））ＩＳＢＮ０−８９００６−７９３−７、アーテックハウス（Artech House）を参照されたい。
【００１１】
このような構成を用いてＧＰＳレシーバを追跡するためには、最初の位置決定は、通常、（ＡＧＰＳデータがない状態で）３０秒を超えるＧＰＳ信号の取得および追跡を必要とし、ＧＰＳ週の時刻（ＴＯＷ：time of week）および最新の軌道暦（ephemeris）データの受信を確実にする。
【００１２】
その後、ＧＰＳレシーバは、通常、おそらく従来のハードウェアベースのＧＰＳレシーバで行なうようには、連続してＧＰＳ信号を追跡せず、むしろ、定期的にＧＰＳ信号の小ブロック（一般に“スナップショット”と呼ばれる）を再サンプリングおよびタイムスタンプ付けし、ＧＰＳ信号を各ブロックに対して再取得する。このような小さなスナップショット上の位置決定は、連続するスナップショットの時間差が（タイムスタンプを使用して）知られているため可能であり、よって、より早いスナップショットのためのＧＰＳ時刻の測定を、次いで外挿（extrapolate）して、まだ再取得がなされていない後のスナップショットのためのＧＰＳ時刻の推定を得る。加えて、軌道暦およびＧＰＳ時刻の推定を用いて、取得プロセスを簡略化することができ、これは、特定のスナップショットにおいて観測されるドップラーおよびＧＰＳ信号のコードフェイズについての推測を行なうことができるためである。
【００１３】
タイムスタンプは、ＧＰＳ信号サンプルのストリームにおいて、予測されるタイムスタンプの例を、先に識別されたタイミングデータの例に基づいて（すなわち、サンプルをカウントすることで）検索を行なうことにより、もしくは、同期コードワードが用いられている場合は、ＧＰＳ信号サンプルのストリームにおいて、このような同期コードワードを検索することにより、識別できる。理想的には、同期コードワードが用いられている場合は、ＧＰＳ信号サンプルストリームにおいて非常に低い出現の可能性を有するように、選択されている。
【００１４】
本発明によると、ＧＰＳ信号処理ソフトウェアは、それぞれのスレッドにおいて同時に実行するいくつかの個別のプログラムを備える。
【００１５】
第１のプログラムは、従来のＧＰＳの位置決定を行ない、３０秒以上のコールドスタート（ＧＰＳレシーバが最新の衛星暦（almanac）を有するが、最新ではない軌道暦データを有する）からの取得および追跡を行い、これを行なうことにより、位置の測定に必要な最新の軌道暦を得る。
【００１６】
第２のプログラムは、最新の軌道暦データを、ビュー内の全ての現在の衛星に対して維持し、このデータを、この情報を必要とするＧＰＳ信号処理プログラムによってアクセス可能なキャッシュに記憶させる。
【００１７】
第３のプログラムは、キャッシュされた軌道暦と、ＧＰＳ  ＴＯＷのより早い決定からの外挿であるＧＰＳ週の時刻（ＴＯＷ）の推定と、ＰＣの内部クロックとを用いて、最初の位置決定が行なわれた後に、周期的な、バックグラウンドの位置を（例えば１分ごとに）測定する機能を実行する。
【００１８】
第１のプログラムおよび第２のプログラムの最初の実行後、第１のプログラムは、おそらくは閉じられ、その位置で、第３のプログラムが実行される。
【００１９】
ユーザのリクエストによって実行される第４のプログラムも、キャッシュされた軌道暦およびＧＰＳ週の時刻（ＴＯＷ）の推定を用いて位置を測定する機能を行うが、これを即時に行い、ここで、擬似範囲の測定は、ＧＰＳデータの延長スナップショットを処理することによってより正確に行なわれる。
【００２０】
４つの全てのプログラムは、外部ＧＰＳレシーバに対して、ＧＰＳ信号を受信、前処理およびサンプリングしてＧＰＳ信号サンプルをＰＣに出力するように命令することができる。
【００２１】
任意の対またはそれ以上のＧＰＳ信号処理プログラムにより発行された重複する命令は、例えば、外部ＧＰＳレシーバについてのデバイスドライバ用のＰＣによって、調停される。例えば、ユーザが、第４のプログラムを用いて即時の正確な位置を測定するようＰＣに命令した場合に、軌道暦データを維持するために、第２のプログラムが、ＩＦデータの６秒記録をリクエストする場合がある。軌道暦機能を維持するために記録されたばかりのＩＦデータを、いつでも使用して、このような位置を測定することができ、よって、外部ＧＰＳレシーバは、追加のＩＦデータを出力するように、さらに命令されない。
【００２２】
本発明が、ラップトップＰＣとの関連で示された一方で、本発明は、当然ながら、ＧＰＳ信号処理ソフトウェアをサポートすることが可能な、本発明に係るＧＰＳレシーバを接続することができる他の装置に、等しく適用可能である。例えば、本発明は、ＰＤＡおよび電話などの携帯型装置、あるいはＴＶまたはＴＶセットトップボックスなどの一般的には固定された物体において、採用することができる。
【００２３】
また、ＧＰＳレシーバとＧＰＳ信号処理ソフトウェアとの接続は、上の例では完全に有線であるが、ワイヤレスリンクを使用することも考えられる。
【００２４】
最後に、本発明は、米国防総省（US Department of Defense）によって開発され現在運用されている全天候型、空間ベースのナビゲーションシステム、ＮＡＶＳＴＡＲ  ＧＰＳに関連して説明したが、本発明は、ＧＬＯＮＡＳＳおよびＧａｌｉｌｅｏならびにこれらのハイブリッド型を含む他のグローバルポジショニングシステムに等しく適用可能であることを理解すべきである。
【図面の簡単な説明】
【００２５】
【図１】図１は、本発明に従い動作するＧＰＳレシーバに接続されたラップトップＰＣを示している。
【図１】
2008510983.tif 000002
【国際調査報告】
2008510983.tif 000003
2008510983.tif 000004
2008510983.tif 000005