(57)【要約】衛星測位システムからの信号を処理する制御および機能システムは、エキスパートシステム受信機マネジャ、合同検出、搬送波センタリングおよびビット同期捕捉サブシステム、ピーク検出、多次元測定値補間サブシステム、ナビゲーション信号間でのモード切り替えのサブシステム、および受信機のための電力制御モジュールを含む。【選択図】なし
2007505292.tif 000002
【特許請求の範囲】
【請求項１】
衛星測位受信機用装置内の第１サブシステムと、
衛星測位受信機用装置内の第２サブシステムと、
第１サブシステムに関連付けられた第１組のビット群と第２サブシステムに関連付けられた第２組のビット群を含むセマフォビット群を備えており、
第１サブシステムと第２サブシステムは、セマフォビット群に含まれる第１組のビット群と第２組のビット群を使用して通信する衛星測位受信機用装置。
【請求項２】
第１サブシステムに関連付けられており、第１サブシステムによってセマフォビット群内で設定される一のビットと、
第２サブシステムに関連付けられており、第１サブシステムによって設定された前記一のビットに応答して第２サブシステムによって設定される、セマフォビット群内の別の一のビットをさらに備える請求項１の衛星測位受信機。
【請求項３】
前記別の一のビットは、第１サブシステムによって設定された前記一のビットに応答して第２サブシステムが動作した後に第２サブシステムによって設定される請求項２の衛星測位受信機。
【請求項４】
第１サブシステムは、信号処理サブシステムである請求項１の衛星測位受信機。
【請求項５】
第１サブシステムは、ＦＦＴサブシステムである請求項１の衛星測位受信機。
【請求項６】
第１サブシステムに関連付けられた第１組のビット群は、第１サブシステムによってのみ変更される請求項１の衛星測位受信機。
【請求項７】
第２サブシステムに関連付けられた第２組のビット群は、第２サブシステムによってのみ変更される請求項６の衛星測位受信機。
【請求項８】
ソフトウエアに関連付けられている、セマフォビット群内の第３組のビット群をさらに備える請求項１の衛星測位受信機。
【請求項９】
セマフォビット群内の第３組のビット群は、前記ソフトウエアによってのみ変更可能である請求項８の衛星測位受信機。
【請求項１０】
セマフォ内の第１組のビット群を、衛星測位受信機内の第１サブシステムに関連付けること、
セマフォ内の第２組のビット群を、衛星測位受信機内の第２サブシステムに関連付けること、
前記セマフォビット群を用いて第１サブシステムと第２サブシステムの間で通信することを備える衛星測位受信機用装置内のサブシステム間で通信する方法。
【請求項１１】
第１サブシステムによって第１組のビット群内の一のビットを設定すること、
第２サブシステムが第２組のビット群内の別の一のビットを設定することによって前記一のビットに応答することをさらに備える請求項１０の方法。
【請求項１２】
第１サブシステムは、信号処理サブシステムである請求項１０の方法。
【請求項１３】
前記セマフォビット群内の第３組のビット群をソフトウエアに関連付けることをさらに備える請求項１０の方法。
【請求項１４】
前記ソフトウエアに関連付けられたセマフォビット群内の一のビットを設定することによって、前記ソフトウエアと第１サブシステムの間で通信すること、
第１サブシステムによって設定された別の一のビットを用いて前記セマフォビット群内の一のビットに応答することをさらに備える請求項１３の方法。
【請求項１５】
第３組のビット群を変更することは、前記ソフトウエアによってのみ実行される請求項１３の方法。
【請求項１６】
衛星測位受信機内のサブシステム間で通信するための機械読取可能な命令群を有する信号搬送媒体であって、前記命令群は、
セマフォ内の第１組のビットを衛星測位受信機内の第１サブシステムに関連付けるための命令群と、
セマフォ内の第２組のビットを衛星測位受信機内の第２サブシステムに関連付けるための命令群と、
前記セマフォビット群を用いて第１サブシステムと第２サブシステムの間で通信するための命令群を備える信号搬送媒体。
【請求項１７】
前記命令群はさらに、
第１サブシステムによって第１組のビット群内の一のビットを設定するための命令群と、
第２サブシステムが第２組のビット群内の別の一のビットを設定することによって前記一のビットに応答するための命令群を備える請求項１６の信号搬送媒体。
【請求項１８】
前記命令群はさらに、
セマフォビット群内の第３組のビット群をソフトウエアに関連付けるための命令を備える請求項１６の信号搬送媒体。
【請求項１９】
前記命令群はさらに、
前記ソフトウエアに関連付けられた前記セマフォビット群内の一のビットを設定することによって前記ソフトウエアと第１サブシステムの間で通信し、
第１サブシステムによって設定される別のビットを用いてセマフォ内の前記一のビットに応答するための命令群を備える請求項１８の信号搬送媒体。
【請求項２０】
第３組のビット群を変更することは前記ソフトウエアによってのみ実行される請求項１８の信号搬送媒体。
【請求項２１】
衛星測位受信機内に存しており、衛星測位信号を処理された衛星信号へと処理する第１サブシステムと、
前記処理された衛星測位信号を受信する第２サブシステムと、
前記処理された衛星測位信号が前記第１サブシステムから前記第２サブシステムへと受け渡されることを可能にする構造を備えており、
前記データ構造は、前記処理された衛星信号を受信する第１環状データ構造と、前記処理された衛星信号を第２サブシステムに利用可能にさせる第２環状データ構造を有する衛星測位受信機。
【請求項２２】
第１データ構造と第２データ構造は複数の対応するデータ記憶場所を有しており、データ記憶場所の各対はチャンネルを形成している請求項２１の衛星測位受信機。
【請求項２３】
第１サブシステムは、第２サブシステムがチャンネルを終了するのを待ってから、第２サブシステムによってアクセスされたばかりのそのチャンネルに処理された衛星測位信号データを配置する請求項２２の衛星測位受信機。
【請求項２４】
第１サブシステムと第２サブシステムは、第１サブシステムがチャンネルのうちの別の１つにアクセスするまでは、チャンネルのうちの１つに同時にアクセスする請求項２１の衛星測位受信機。
【請求項２５】
信号入力を有する信号処理サブシステムと、
高速フーリエ変換（ＦＦＴ）サブシステムと、
ＦＦＴサブシステムからパラメータを受信し、信号入力を信号処理サブシステムに対して調整し、発振器によって制御され、ソフトウエア追跡ループによって補強される信号追跡ループを備える衛星測位受信機。
【請求項２６】
前記ソフトウエア追跡ループが、信号処理システムの信号入力の調整を達成するために前記パラメータを用いるアルゴリズムを備える請求項２５の衛星測位受信機。
【請求項２７】
信号処理システムの前記入力の前記調整は、ソフトウエア追跡ループがハードウエア追跡ループを制御する前記ＮＣＯの動作を調整することによって達成される請求項２６の衛星測位受信機。
【請求項２８】
入力サブシステムと、
高速フーリエ変換（ＦＦＴ）サブシステムと、
信号処理サブシステムと、
入力サブシステム、高速フーリエ変換サブシステム及び信号処理サブシステムのうち少なくとも１つを低電力状態にしながら、その他のサブシステムは通常電力で動作することを可能にする電力制御手段を備える衛星測位受信機。
【請求項２９】
前記電力制御手段はさらに、
ＦＦＴサブシステムに関連付けられた低電力状態を通知する第１信号ビットと、
信号処理サブシステムに関連付けられた低電力状態を通知する第２信号ビットを備える請求項２８の衛星測位受信機。
【請求項３０】
衛星測位信号を捕捉するための探索ストラテジを決定すること、
探索ストラテジに従って衛星測位受信機を設定すること、
衛星測位信号を処理すること、
衛星測位信号の前記処理に対応付けられた複数のデータをメモリに周期的に格納すること、
衛星測位信号の前記処理と前記メモリ内の前記複数のデータに基づいて、衛星受信機の電力制御を有効化することを備える衛星測位信号を受信している衛星測位受信機を制御する方法。
【請求項３１】
格納することは、衛星測位受信機に対応付けられた動作データを１００ミリ秒ごとに格納することをさらに備える請求項３０の方法。
【請求項３２】
受信機で測位信号を受信すること、
衛星測位受信機で受信された測位信号のサンプルを予め選択された範囲内で予め選択された長さの移動ウインドウに亘って合算し、複数の異なる仮値を得ること、
各ビンが前記複数の異なる仮値のうちの１つに対応付けられている複数のビンを、連続したデータビットに亘る線形包絡線の合算値で満たすこと、
大きさが最大であるビンを決定すること、
受信機が衛星測位信号と同期化することを可能にする同期化のためのビット位置を出力することを備える衛星測位受信機における同期化方法。
【請求項３３】
前記サンプルは多点高速フーリエ変換からの入力である請求項３２の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、２００３年９月２日に出願された、シリアル番号６０／４９９，９６１、「ＧＰＳシステム」という題名の米国特許仮出願の優先権を米国特許法（Ｕ．Ｓ．Ｃ  ３５）第１１９条（ｅ）に基づき主張し、その出願は、参照によりこの出願に組み込まれる。
【０００２】
２００４年２月２３日に出願された、「衛星測位システム受信機の制御と機能」という題名の、マンゲシュ・チャンサカー、サンダー・ラマン、ジェームズ・ブラウン、ロバート・ハーベイ、ピーター・ミカエリ、ビル・ヒギンス、ポール・アンダーブリンク、ヘンリー・フォーク、チャールズ・ノーマン（Mangesh Chansarkar, Sundar Raman, James Brown, Robert Harvey, Peter Michali, Bill Higgins, Paul Underbrink, Henry Falk, Charles Norman）によるシリアル番号６０／５４６，８１６の米国特許仮出願には優先権が主張され、その出願は、参照によりこの出願に組み込まれる。
【０００３】
２００４年９月２日に出願された、「衛星測位信号の信号処理システム」という題名の、ポール・アンダーブリンク、ヘンリー・フォーク、スティーブン・グロネメーヤー、チタランジャン・ダサナチャーヤ、チャールズ・ノーマン、ロバート・ソー、ニコラス・ヴァントロン、ヴォヤ・プロティク（Paul Underbrink, Henry Falk, Steven Gronemeyer, Chittharanjan Dasannacharya, Charles Norman, Robert Tso, Nicolas Vantolon, Voya Protic）によるＰＣＴ特許出願第＿＿＿号は、参照によりこの出願に組み込まれる。
【０００４】
２００４年２月２３日に出願された、「全体的なシステムアーキテクチャ及び関連する機能」という題名の、ポール・アンダーブリンク、ヘンリー・フォーク、チャールズ・ノーマン、スティーブン・グロネメーヤー、（Paul Underbrink, Henry Falk, Charles Norman, Steven A. Gronemeyer）によるシリアル番号６０／５４７，３８５の米国特許仮出願には優先権が主張され、その出願は、参照によりこの出願に組み込まれる。
【０００５】
本出願はさらに以下にも関連している。
【０００６】
２００３年１０月２８日に出願された、「電子システムにおけるメモリ再配置と共有」という題名の、ニコラス・ヴァンタロン、スティーブン・グロネメーヤー、ヴォジスラブ・プロティク（Nicolas P. Vantalon, Steven A. Gronemeyer and Vojislav Protic）によるシリアル番号１０／６９６，５２２の米国特許出願は優先権が主張され、その出願は、参照によりこの出願に組み込まれる。
【０００７】
１９９６年４月２５日に出願された、「三重化スペクトラム拡散受信機」という題名の、サンジャイ・コーリおよびスティーブン・チェン（Sanjai Kohli and Steven Chen）による米国特許番号第５，９０１，１７１号の米国特許は、参照によりこの出願に組み込まれる。
【０００８】
他の、参照によりこの出願に組み込まれるおよび／または優先権が主張される特許は、全て係属中の以下の米国特許出願である。
１９９８年９月１日に最初に出願されて２０００年３月２８日に発行された第６，０４４，１０５号の一部継続出願として２０００年２月７日に出願されたシリアル番号０９／４９８，８９３。
１９９８年９月１日に最初に出願されて２０００年３月２８日に発行された第６，０４４，１０５号の一部継続出願として２０００年２月７日に出願されたシリアル番号０９／４９８，８９３の一部継続出願として２０００年６月２７日に出願されたシリアル番号０９／６０４，５９５。
２００３年２月２０に出願されたシリアル番号１０／３６９,８５３。
２００３年２月２０に出願されたシリアル番号１０／３６９,８５３の一部継続出願として２００３年７月３０日に出願されたシリアル番号１０／６３２,０５１。
２０００年８月２４日に出願された、グレゴリー・Ｂ・タレツキー、チャールズ・ノーマン、ヘンリー・フォーク（Gregory B. Turestsky, Charles Norman and Henry Falk）による、「微弱ＣＤＭＡ信号内の自己相関または相互相関を除去する方法および装置」という題名の、米国特許仮出願シリアル番号６０／２２７,６７４に対して優先権を主張した、２００１年７月２０日に出願され２００４年１月２０日に発行された、グレゴリー・Ｂ・タレツキー、チャールズ・ノーマン、ヘンリー・フォークによる米国特許第６，６８０，６９５号に対して優先権を主張する、グレゴリー・Ｂ・タレツキー、チャールズ・ノーマン、ヘンリー・フォークによる、「微弱信号内の自己相関または相互相関を低減する通信システム」という題名の、２００３年１１月１２日に出願されたシリアル番号１０／７１２，７８９。
２０００年８月２４日に出願された、グレゴリー・Ｂ・タレツキー、チャールズ・ノーマン、ヘンリー・フォークによる、「微弱ＣＤＭＡ信号内の自己相関または相互相関を除去する方法および装置」という題名の、米国特許仮出願シリアル番号６０／２２７,６７４に対して優先権を主張している、２００１年７月２０日に出願された、グレゴリー・Ｂ・タレツキー、チャールズ・ノーマン、ヘンリー・フォークによる「微弱信号内の自己相関または相互相関を低減する位置サービス」という題名の米国特許第６,４４６，１６１に対して優先権を主張する、グレゴリー・Ｂ・タレツキー、チャールズ・ノーマン、ヘンリー・フォークによる「微弱信号内の自己相関または相互相関を低減する位置サービス」という題名の米国特許出願シリアル番号１０／２４４，２９３に対して優先権を主張する、グレゴリー・Ｂ・タレツキー、チャールズ・ノーマン、ヘンリー・フォークによる、「微弱信号内の自己相関または相互相関を低減する位置サービスシステム」という題名の２００４年２月１０日に出願された米国特許出願シリアル番号１０／７７５，８７０。
２０００年８月１４日に出願された米国特許仮出願シリアル番号６０／２５５,０７６に対して優先権を主張した、２００１年２月８日に出願された米国特許第６，３８９，２９１号の継続出願である、２００２年２月５日に出願された１０／０６８，７５１の継続出願である、アシュトシュ・パンデ、ライオネル・Ｊ・ガリン、カンワー・チャダ、グレゴリーＢ．Ｇ．ツレツキー（Ashutosh Pande, Lionel J. Garin, Kanwar Chadha & Gregory B. G Turestsky）による「無線ネットワークで使用するためのマルチモードＧＰＳ」という題名の２００２年７月１２日に出願されたシリアル番号１０／１９４，６２７。
２０００年８月１４日に出願された米国特許仮出願シリアル番号６０／２５５,０７６に対して優先権を主張した、２００１年２月２８日に出願された米国特許第６，４２７，１２０号の継続出願である、２００２年４月１９日に出願された米国特許第６，５４２，８２３号の継続出願として２００２年３月１０日に出願されたシリアル番号１０／３８５，１９８。
【０００９】
すべて現在出願係属中である以下の米国特許出願。
２００２年５月２２日に出願された１０/１５５，６１４；２００１年７月２０日に出願された０９/９１０，０９２；２００１年７月２０日に出願された０９/９１０，４０４；
２００１年７月２０日に出願された０９/９０９，７１６；２００２年９月１６日に出願された１０/２４４，２９３；２００３年１１月１２日に出願された１０/７１２，７８９；２００３年９月１８日に出願された１０/６６６，５５１；２００２年４月１８日に出願された０９/５５１，０４７；２００２年４月１８日に出願された０９/５５１，２７６；２００２年４月１８日に出願された０９/５５１，８０２；２０００年４月１８日に出願された０９/５５２，４６９；２０００年４月１８日に出願された０９/５５２，７５９；２０００年１２月７日に出願された０９/７５２，９５６；２０００年１２月１１日に出願された０９/７３５，２４９；２００１年６月２０日に出願された０９/８８６，４２７；２００２年３月１３日に出願された１０/０９９，４９７；２００２年３月１８日に出願された１０/１０１，１３８；２００２年９月１８日に出願された１０/２４６，５８４；２００２年１０月２日に出願された１０/２６３，３３３；２００２年１２月４日に出願された１０/３０９，６４７；２００２年１２月１６日に出願された１０/３２０，９３２；２００３年４月１１日に出願された１０/４１２，１４６；２００３年４月２５日に出願された１０/４２３，１３７；２００３年６月２０日に出願された１０/６００，１７４；２００３年６月２０日に出願された１０/６００，１９０；２００３年８月１９日に出願された１０/６４４，３１１；２００３年９月９日に出願された１０/６５８，１８５；２００３年１０月２８日に出願された１０/６９６，５２２；２００３年１１月１２日に出願された１０/７０６，１６７；２００３年１１月１８日に出願された１０/７１５，６５６；２００３年１１月２４日に出願された１０/７２２，６９４；２００４年１月２２日に出願された１０/７６２，８５２；２００４年２月２３日に出願された、「衛星測位信号のための信号処理システム」（アトーニー・ドケット番号SIRF. P281. US. U2、出願番号未割当）。
【００１０】
本発明は測位システムに広く関する。より詳細には、本発明は衛星測位システムにおける制御と機能を実装するための方法およびシステムに関する。
【背景技術】
【００１１】
双方向無線、携帯用小型無線呼出し機、携帯型テレビ、携帯通信システム（ＰＣＳ）、携帯情報端末（ＰＤＡ）、携帯電話（「移動電話」としても知られている）、ブルートゥース対応装置、衛星ラジオ受信機および、ＮＡＶＳＴＡＲとしても知られる米国の全地球的測位システム（ＧＰＳ）などの衛星測位システム（ＳＰＳ）といった、無線装置の世界的な利用は急速に拡大している。ＳＰＳサービスを携帯情報端末（ＰＤＡ）、携帯電話、携帯型コンピュータ、自動車などを含む広範な電子装置およびシステムへ組み込むことへの要望が、現在の傾向となっている。製造業者は常に、コストを削減し、消費者にとって可能な最もコスト的魅力のある製品を製造する努力をしている。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
同時に製造業者は、機能豊富で、可能な限り堅牢及び高信頼性の製品を提供することを試みている。技術および利用可能な開発時間・場所が、どのような機能を任意の所与の装置に実装できるかということに、ある程度の制約を与える。したがってこれまで、従来のＳＰＳ装置は、例えば、受信機管理、信号測定、ビット同期化技法、保全性監視、動作モード切り替え、測定値補間、ハードウエアおよびソフトウエア衛星信号追跡ループ、および電力制御を含む領域での困難と制限を受けてきた。そのような困難は、売上げおよび消費者の要望への影響に加えて、ＧＰＳ対応電子機器の性能、使いやすさおよび堅牢さを制限する。
【００１３】
従って、上述した課題、また、過去に受けてきた他の課題を克服する必要性が存在する。
【課題を解決するための手段】
【００１４】
ＳＰＳ受信機の機能は、例えば、無線通信機器、追跡装置及び緊急時位置特定ビーコンといった付加的な機能を有した装置にあるといえる。該装置でのＳＰＳ機能は、ＳＰＳ機能の動作を初期化し、制御し、監視する複数のサブシステムを含み得る。サブシステムは、所望のＳＰＳの目的を達成するいくつかのソフトウエア・モジュールとハードウエア部品／回路から構成されてよい。サブシステムは、入力サンプルサブシステム、信号処理サブシステム、ＦＦＴサブシステム、メモリ・サブシステム、シーケンサ・サブシステムおよびその他のサブシステムを含んでいてよい。サブシステム同士は、ＳＰＳ受信機機能の環境設定、位置特定、電力制御、サブシステム間での通信、及び付加的な機能との通信を実現するために協働することができる。ＳＰＳ受信機機能が実装された一例はＧＰＳ受信機であり、ＳＰＳおよびＧＰＳという用語は互換的に使われてよい。
【００１５】
ＳＰＳ受信機機能のソフトウエア態様は、例えばＲＯＭの類（すなわち、ＰＲＯＭ、ＥＰＲＯＭ、ＡＳＩＣおよびコントローラ内）、磁気記録媒体（ハードディスク／フレキシブルディスク）、および光学記録媒体（ＣＤ、ＤＶＤ、レーザーディスク）といった、機械で読取可能な装置に格納された機械語命令の群としてのソフトウエアで実現されてよい。機械語命令が実行されると、ＧＰＳ受信機の制御と機能が達成される。
【００１６】
以下の図面と詳細な説明を検討すれば、本発明の別のシステム、方法、機能および利点が、当業者には明らかであるか、あるいは明らかになるであろう。そのような付加的なシステム、方法、機能および利点は、本明細書内に含まれており、本発明の範囲内にあり、付随する請求項によって保護されるものであることが意図されている。
【発明を実施するための最良の形態】
【００１７】
図面中の構成要素は必ずしも正確な縮尺ではなく、代わりに本発明の原理を明示するために強調が用いられている。図面中では、同様の参照符合は異なる図面を通じて対応する部分を示す。
【００１８】
以下の論考は、通常ＧＰＳシステムと称される米国全地球的測位衛星システムなどの衛星測位システム（ＳＰＳ）に制御と機能を提供するハードウエアおよびソフトウエア・アーキテクチャに向けられる。そのアーキテクチャに特有の機能は、例えば、メモリのＳＰＳ初期化、データ処理の制御、サブシステムの通信、電力制御管理、及びエキスパート・システム受信機管理を含む。以下に述べるアーキテクチャや制御および機能システムは、説明されたものの正確な実現に限られず、それらのシステムに特有の要求や設計上の制約に従ってシステムごとに違いがあってよい。
【００１９】
図１は、無線周波数（ＲＦ）コンポーネント１０２とベースバンド・コンポーネント１０４を含むＧＰＳ受信機１００の実施例のブロック図である。ひとつの実施例では、ＲＦコンポーネント１０２およびベースバンド・コンポーネント１０４は、相手先商標製品製造会社（ＯＥＭ）サブシステムによって提供される付加的な機能、すなわち、「ホスト」プロセッサ１０６とＯＥＭメモリ１０８と、バス１１０を介してインターフェース接続されていてもよい。以下に追って説明するように、ベースバンド・コンポーネント１０４はメモリ・コンポーネント１１２と通信してもよい。メモリ・コンポーネント１１２は、ベースバンド・コンポーネント１０４とは別個であってよい。別の具現化では、メモリ・コンポーネント１１２はベースバンド・コンポーネント１０４内に実装されてもよい。ＲＦコンポーネント１０２は、ＲＦコンポーネント１０２専用であるアンテナ１１４に直接結合されていてよい。別の具現化では、アンテナ１１４は、ＲＦコンポーネント１０２とＯＥＭ受信機（不図示）によって共有されてよい。任意選択で、ＯＥＭメモリ１０８はメモリ・コンポーネント１１２とは別個であって、ベースバンド・コンポーネント１０４から独立していてよい。別の実現可能な構成では、ＧＰＳ機能を実行するために要求されるメモリおよび処理能力を全て備えた１つまたは複数のチップ上にある１つまたは複数のＲＦコンポーネント、および１つまたは複数のベースバンド・コンポーネントを含み得る。さらに別の具現化では、複数のチップを用いてＧＰＳ受信機１００を実現し、フリップ・チップ・パッケージングなどの技術と組み合わせてもよい。
【００２０】
ＧＰＳ受信機１００は、時間／周波数コンポーネント１１６をも有していてよい。時間／周波数コンポーネント１１６は、追跡ループのためのタイミングを提供し、電力制御状態の間に機能するリアルタイムのクロックを提供する。時間／周波数コンポーネントは、リアルタイムのクロックおよび／または数値制御型発振器として実現されてよい。時間／周波数コンポーネント１１６は、ベースバンド・コンポーネント１０４と直接または間接に通信してよい。
【００２１】
ＧＰＳ受信機１００は支援情報なしで動作してよい。また代替的には、ＧＰＳ受信機１００は、種々の情報源から支援情報を受け、ネットワークと通信したりＯＥＭプロセッサ１０６を介して他の通信ネットワークと通信するための付加的ハードウエア回路やソフトウエアを有して動作してよい。通信は、電気電子技術者協会（ＩＥＥＥ；Institute of Electrical and Electrical Engineers）、国際標準化機構（International Standards Organization)、またはセルラ通信規格（Cellular communication standards）などで採用されている規格を用いて実現されてもよいし、または、独自開発の通信手法を用いて実現されてもよい。さらに、ベースバンド・コンポーネント１０４は、デジタル信号プロセッサ（ＤＳＰ）、ＡＲＭプロセッサ、クロック・コンポーネント、種々のメモリ・コンポーネント、外部通信および内部通信のための種々のインターフェース・コンポーネントその他の回路構成を含んでいてよい。
【００２２】
図２のブロック図は、入力サンプル・サブシステム２０２、信号プロセッサ・サブシステム２０４、ＦＦＴサブシステム２０６、メモリ・サブシステム２０８、シーケンサ・サブシステム２１０、および別の「その他の」サブシステム２１２を含むベースバンド・コンポーネント１０４の実施例のサブシステムを示す。本明細書においては便宜上、サブシステムとは、対応付けられたハードウエアとともに実現されるプロセスまたはタスクのグループを示すことがある。サブシステム間でのタスクまたは機能の分配は、通常は設計上の選択によって決定される。
【００２３】
異なる具現化では、異なるサブシステムが異なる方式で機能群を共有し、より多くの、又はより少ないサブシステムが存在し得る。例えばある種の具現化においては、シーケンサ・サブシステム２１０は独立したサブシステムではないことがある。むしろ、シーケンサ機能の一部がひとつのサブシステムに属し、残りの機能は別のサブシステムに属するということがある。
【００２４】
入力サンプル・サブシステム２０２は、図１のＲＦコンポーネント１０２から信号データを受信し、図２のメモリ・サブシステム２０８の一部であるＲＡＭ内にその信号データを格納する。生のデジタル化された信号データ、又は最小限に処理した間引き信号データがＲＡＭに格納される。デジタル化されたＲＦ信号を格納する能力は、次の２つの方法のうちの１つで達成し得る。第１は、データは入力サンプル・サブシステム２０２により２０msecの増分で収集されてＲＡＭに格納され、このプロセスが何度も繰り返される。他方の手法は、入力サンプル・サブシステム２０２がＲＡＭ内の環状バッファを用いる。例えば入力サンプル・サブシステム２０２は、ＲＡＭの所定の領域を埋めていき、次いでバッファを巡回しながらデータを上書きする。そのような動作手法は、信号データが環状バッファで上書きされる前に十分速く信号データを処理するような方式の信号処理サブシステム２０４およびＦＦＴサブシステム２０６を構成するソフトウエアを有することになる。この動作手法は、ユーザと、ＧＰＳシステム１００が起動されるＲＦ環境の要求に最も適合した手法を構成するソフトウエアとともに選択可能である。別の実施例では、入力サンプル・サブシステム２０２によって用いられる動作手法は、ＧＰＳ受信機１００の動作中に変更されてもよい。
【００２５】
メモリ・サブシステム２０８は、ＧＰＳ受信機１００のメモリ・リソースを管理する。ひとつのメモリ領域は異なる種類のメモリ領域に細分化されてよい。細分化されたメモリ領域の例は、入力サンプルメモリ、コヒーレント・バッファ、相互相関メモリ、非コヒーレント・バッファ、チャンネル状態、追跡履歴およびレポート・メモリを含む。入力サンプルメモリは、さらにチャンネル群へと細部化されよい。信号処理サブシステム２０４およびＦＦＴサブシステム２０６は、チャンネル間でコンテキストを切り替えながら異なるチャンネルにアクセスするものでよい。
【００２６】
その他のサブシステム２１２は、ＷＡＡＳ支援データのための畳み込み復号器を実現するためのハードウエアとソフトウエアを含んでいてよい。その他のサブシステム２１２はメモリ・サブシステム２０８からのデータを使用してよい。その他のサブシステム２１２は、チャンネル状態ＲＡＭ領域またはメモリ・サブシステム２０８内の別の制御／ステータス領域へ書き込むことによって別のサブシステムへ情報を提供してもよい。
【００２７】
図３には、図１に示すＧＰＳ受信機１００のサブシステム間の信号フロー図が示されている。ＣＤＭＡ ＧＰＳ衛星信号のようなＲＦ信号が図１のＲＦコンポーネント１０２で受信され、図３の入力サンプル処理サブシステム２０２へ伝達される。入力サンプル処理サブシステム２０２は、入力サンプル処理ブロック３０２およびタイマ／自動利得制御（ＡＧＣ）ブロック３０３を含んでいる。タイマ／ＡＧＣブロック３０３は、入力信号の入力パルスをサンプリングするためのカウンタ群、タイマ群およびアラーム発生器から構成される。タイマ／ＡＧＣブロック３０３は割り込みを発生し、指定の時間に、同期化や周波数と位相の測定などのソフトウエアおよびハードウエア機能を開始する。タイマ／ＡＧＣブロック３０３は、周波数と位相の測定に加えて、精密時間調整パルスを発生するか、または別のシステムからの入力パルスを受け入れることによって、２つのシステムまたはサブシステムを同期化する能力を提供してもよい。例えば、低コスト時計タイプ結晶の低電力型リアルタイムクロック（ＲＴＣ）を有するシステムでは、時計タイプ結晶は、電力制御状態中に低コスト低電力ＲＴＣを用いるために、タイマ／ＡＧＣブロック３０３によってＧＰＳ時間に較正される。
【００２８】
入力信号は、入力サンプル処理サブシステム２０２でデジタル・サンプルへと分割され、その出力はランダム・アクセス・メモリ（ＲＡＭ）３０４に格納される。そのＲＡＭは、入力サンプル・サブシステム２０２と信号処理サブシステム２０４の間のデータフローを維持する速度で書き込みと読み出しができる任意の種類のリード／ライト・メモリであってよい。信号処理サブシステム２０４は、ＲＡＭ３０４から受信した信号を補間し循環させる信号プロセッサ３０６を有する。
【００２９】
信号プロセッサ３０６は、受信した信号がさらに処理されフィルタリングされる前に、受信した信号から搬送波ドップラーおよびコード・ドップラーを除去するために用いられる。信号プロセッサ３０６は、種々の異なるサンプリングおよび間引きモードで動作可能に再設定可能である。最高性能モードでは、例えば、信号プロセッサ３０６はチップ入力ごとに１６のサンプルを使うことができ、１チップ出力につき８位相８サンプル出力を生成する。別のモードでは、信号プロセッサ３０６は、低サンプリングレートで典型的に発生する損失を低減しつつ、１チップ入力につき４サンプルを有し、その４サンプルは反復サンプリングとフィルタリングによって１チップにつき１６サンプルへと補間され、より良好なコード位相出力を生成する。信号プロセッサ３０６のモードは、チャンネルＲＡＭを介して信号プロセッサに受け渡されるパラメータを介してソフトウエア制御される。
【００３０】
こうして、信号プロセッサ３０６は、入力サンプルをＲＡＭ３０４から抽出し、整合フィルタ３０８による使用のために入力サンプルを調整する。整合フィルタ３０８のモードに応じて、入力サンプルは補間および／または間引きの処理を施され、整合フィルタ３０８にとって適正なサンプリングレートにされる。例えば、入力サンプルが８ｆ０で格納されていて、整合フィルタ・モードがサンプルを２ｆ０で使用することを保証する場合、信号プロセッサ３０６は入力サンプル列を２ｆ０へ間引く。このことは、種々のチャンネル／衛星機処理のための種々の整合フィルタ・モードの使用においてさらなる融通性をもたらす。信号プロセッサ３０６は複雑な入力サンプルを循環させて、信号から残留搬送波ドップラーを除去してもよい。信号プロセッサ３０６は、入力サンプル列とともに搬送波ＮＣＯとコードＮＣＯ出力を使用して目的を達成してよい。
【００３１】
信号プロセッサ・サブシステム２０４は、整合フィルタ３０８、符号器３１０、搬送波およびコードの数値制御型発振器（ＮＣＯ）３１２、相互相関ブロック３１４、相互相関除去ブロック３１６およびコヒーレント合算ブロック３１８をも含んでいてよい。信号は処理され、特定の衛星信号が同定される。搬送波およびコードＮＣＯ３１２は、信号プロセッサ３０６によって使われる均質な搬送波およびコード信号を生成する。搬送波およびコードＮＣＯ３１２は、実装においてはカウンタを用いるプログラム可能な発振器であってよい。種々のチャンネル／衛星機処理のための独立した搬送波およびコードＮＣＯを用いることは、ＧＰＳ受信機において異なる種類の処理モードを支援するための融通性をもたらす。
【００３２】
搬送波およびコードＮＣＯ３１２は、搬送波に、乗算ステップを必要としないコード転送を可能にする。典型的には搬送波からのコード支援は、限定された分解乗数で行われる。搬送波およびコード位相の転送は、搬送波とコード位相間に誤差が全くない累積された残分を用いて達成される。それは、限定された分解乗数を用いる実装で見られる、搬送波とコード位相の間の遅延またはドリフトのない非常に狭域のコードループ帯域幅を可能にする。コード位相は搬送波にロックされるが、コード位相に対して搬送波に相対した微調整がなされてもよい。調整の経過を保持することによって、最大分解能の搬送波およびコード位相が、別の既知の方法よりも少ないビットおよびフリップ・フロップで再構築され得る。
【００３３】
整合フィルタ３０８は、種々の精密さのレベルおよびコード位相細分に対して設定可能である。ＧＰＳコードは１０２３チップ長さであり、整合フィルタ３０８はフルモードで動作しているときはＧＰＳコードの全ミリ秒を処理または逆拡散する。別のモードでは、相関ごとに探索された周波数域または帯域幅を改善するために４つに細分されたものがＦＦＴに供給されてよい。さらに別のモードでは、チップを分割することによってチップの数を倍増してもよい。このように、相関されるデータの精度を倍増するために、細分区分間でのトレードオフがなされることがある。整合フィルタ３０８のモードは、ＧＰＳ受信機１００の動作モードおよび電力制御の設定に応じてソフトウエアにより制御および設定されてよい。
【００３４】
例えば、ＧＰＳ受信機１００が、コード・チップの細分のみが探索または追跡される必要があるという情報を持っている場合には、整合フィルタ３０８はハーフ・モードまたはより小さいモードに設定される。そのような設定はメモリの使用量を低減することができ、整合フィルタ３０８とその出力の低スループット・データ・レートをもたらす。他方、全コード位相の探索が必要な場合には、整合フィルタ３０８はフルモードに設定されて、処理能力をフルに利用してもよい。プログラム可能なＴ１エポックを使用することは、種々のチャンネル／衛星機の種々のコヒーレント積分時間を許容し、それにより探索に対して異なる周波数分解能を提供する。
【００３５】
信号プロセッサ・サブシステム２０４によって処理された後の信号はＲＡＭ（コヒーレントバッファ３２０および相互相関３１４）を介してＦＦＴサブシステム２０６に受け渡される。相互相関３１４は、弱い衛星からの逆拡散信号を識別するために用いられる。このソフトウエアは信号処理サブシステム２０４の出力を保存し、それをさらなる相互相関処理のためにＦＦＴサブシステム２０６に対して利用可能にする。
【００３６】
相互相関３１４は、整合フィルタ３０８の出力を相互相関除去処理による使用に備えて複合形式（Ｉ，Ｑ）で保持する。相互相関除去処理では、過去の弱い信号データが要求される。強い信号の処理は通常、弱い信号の処理が開始する前に完了する。この相互相関３１４は、強い信号の処理において、別の既知の手法よりも多くの遅延を許容する融通性を提供する。
【００３７】
コヒーレント・バッファ３２０は、コヒーレント加算器の出力からＦＦＴ３３２の入力へデータのブロックを受け渡す先入れ先出し（ｆｉｆｏ）バッファであってよい。コヒーレント・バッファ３２０内のデータの各ブロックは、システムの最小積分時間を表し、ＦＩＦＯ１内に格納された８ビット（指数表示の場合もある）の数値内に留めるための倍率因子と対応付けられている。ＦＦＴ３３２に供給されるデータ間で共通の倍率を持つために、コヒーレント・バッファ３２０内に格納されたデータ間で正規化が行なわれてもよい。ロック・モードで動作しているときには、整合フィルタ３０８からのデータはＦＦＴ２０６に直接供給されてよい。
【００３８】
コヒーレント・バッファ３２０は、整合フィルタ３０８の出力を複合した数値（Ｉ，Ｑ）として保持する。コヒーレント・バッファ３０８は、チャンネル間で共有されてもよいし、ソフトウエア制御の基で専用であってもよい。このことが、メモリ・リソースの最適利用のための融通性をもたらす。例えば受信機が、ＮＣＳバッファまたはピーク・バッファのみの処理を許容する情報を有している場合には、コヒーレント・バッファ３２０はチャンネル間で共有となり、メモリ・リソースの節約をもたらす。
【００３９】
ＦＦＴサブシステム２０６は、マルチプレクサ３２１を含んでいて良い。マルチプレクサ３２１は、整合フィルタ３０８の出力およびコヒーレント・バッファ３２０からのデータを多重化する。マルチプレクサ３２１は、高速フーリエ変換（ＦＦＴ）ブロック３２２に結合されていてもよい。ＦＦＴサブシステム２０６は、第２マルチプレクサ３２３、フィルタ・ブロック３２４および分類器ブロック３２６をも含んでいてよい。ＦＦＴサブシステム２０６の出力は、分類器３２６から検出器ブロック３２８への出力であり、信号の大きさ３２４の非コヒーレント加算から非コヒーレントＲＡＭ３３２への出力であり、また、ＦＦＴ３３２からＲＡＭ３３４の追跡履歴への出力であってよい。
【００４０】
ＲＡＭ３３４内の追跡履歴は、各チャンネルに対して生成されるチャンネル依存型バッファである。それはハードウエア追跡ループに関する情報を含んでおり、その入力は時間履歴である。このチャンネル依存型バッファは、ＣＮＯ、ロックの損失および測定値を計算するためのソフトウエア追跡ループ・アルゴリズムを実行するためにソフトウエアによって用いられてよい。この情報は、システムが保証する場合には、ソフトウエア追跡ループを動作させるために用いられてもよい。こうして、ＲＡＭ３３４の追跡履歴は融通性をもたらし、異なるチャンネルのためのハードウエアおよびソフトウエア処理間のトレードオフを可能にする。追跡履歴バッファは、種々のチャンネルごとに独立して有効化または無効化されてよい。
【００４１】
ＦＦＴサブシステム２０６は、短いコヒーレント積分を可能にし、それらを結合して異なるオフセット周波数で相関を何度も実行した如くの効果をもたらすように構成される。それゆえ、信号処理サブシステムに戻る必要がなくなるので、省力化につながる。ＦＦＴ３２２は、例えば追跡ループが使用するための周波数区別子の生成やビット同期などの、ＧＰＳレシーバ１００による使用のための別の種類のデータをも生成してよい。
【００４２】
検出器３２８は、非コヒーレントＲＡＭ３３２とインターフェースを取り、抽出されたデータをＲＡＭ３３０に書き込む。非コヒーレントＲＡＭ３３２は、非コヒーレントＲＡＭ３３２内の最大ピークを選択することによって解かれるコードオフセットの三次元ヒストグラム、ミリ秒オフセットおよび周波数オフセットを収容したバッファである。バイアス除去およびスケーリングも、非コヒーレントＲＡＭ３３２のデータ内で行なわれてよい。
【００４３】
最大ピークの選択を支援するために、上位８つの最大ピークのリストがメモリに格納されていてもよい。別の具現化では、異なる数のピークが保存されていてよい。このリストは、リンクされたリストまたは別の検索可能なデータ構造として実装されてよい。
【００４４】
ひとつの具現化において、このアーキテクチャは信号のデータビット同期化を２１ｄＢ Ｈｚ以下の搬送波対雑音比（Ｃ／Ｎ０）で得る。所与の衛星によって送信された信号内における２０ミリ秒データビット内で約１ミリ秒のあいまいさを分解するための２つの異なる手法が以下に説明される。換言すると、この手法は送信された信号におけるビット遷移を正確に特定するために、データビット遷移が発生した時間を２０ミリ秒のウインドウ内で正確に割り出す。この手法は、時間領域ヒストグラム手法と周波数領域ヒストグラム手法を含む。
【００４５】
時間領域ヒストグラム手法では、アーキテクチャは所与の衛星によって送信された信号の時間領域サンプルから時間領域ヒストグラムを形成する。要約すると、アーキテクチャは、予め選択された長さ（例えば２０ミリ秒）の移動ウインドウにわたって、予め選択されたレート（例えば、１ミリ秒サンプル）で採取されたサンプルを合算する。続いて、２０の異なる仮値が設定される。夫々の仮値は、移動ウインドウで１ミリ秒ずつずれている。２０のビン（それぞれが異なる仮値に対応している）を持つヒストグラムが、線形包絡線の和を、（√Ｉ２＋Ｑ２）、連続したデータビットに亘って累積することによって構築される。その累積値は、ヒストグラム内で異なる大きさのビンとなる。最大のビンは、真のデータビット遷移に最も近い仮値に対応する。
【００４６】
ひとつの具現化において、次にアーキテクチャは、ビンに多点補間を実行することによって、精緻化した推定値を得ることができる。例えば、アーキテクチャは、最大のビンと、最大のビンの両側の計２つの隣接したビンを用いて３点補間を実行すればよい。
【００４７】
周波数領域ヒストグラム手法では、アーキテクチャは予め選択された長さ（例えば２０ミリ秒）の移動ウインドウを選定する。そのウインドウは２０個の１ミリ秒ごとのサンプルを含む。アーキテクチャは、サンプルを多点高速フーリエ変換（ＦＦＴ）回路の２０個の入力それぞれに供給する。一例としてＦＦＴサブシステムは、３２点のＦＦＴを決定することができる。続いて、予め選択された数（例えば２０個の）異なる仮値が推定される。例えば、移動ウインドウの１ミリ秒ごとの仮値に対して、２０個の対応するＦＦＴ演算が一意的な仮値に対応する。
【００４８】
アーキテクチャは次いで二次元ヒストグラムを構築する。ヒストグラムの１つの軸または次元は、３２個のＦＦＴ出力ビンに対応し、他の軸は２０個の仮値に対応する。ヒストグラムは、連続したデータビットに亘って線形包絡線（√Ｉ２＋Ｑ２）を累積することにより構築される。その累積は、ヒストグラム中の異なる大きさのビンに対応する。ビンは、ハードウエアとソフトウエアのいずれかで実現されるカウンタまたはより複雑な構造であってよい。最大のビンは、真のデータビット遷移に最も近い仮値、および、周波数に関しては入力搬送周波数に最も近いものに対応する。したがって、周波数次元に亘る探索は、最も近い周波数をアーキテクチャに与える。次いでアーキテクチャは、その周波数において、最良のビット同期化（ビット遷移）仮値のために仮値軸を探索する。
【００４９】
上述した二つの手法を強調するために、シミュレーション結果を以下に提示する。シミュレーションは、同程度に確からしい＋１／−１のランダムなデータビットを仮定する。シミュレーションは約２５，０００回にわたる試行を、以下に説明する統計的分析を伴って実行する。各試行につき停止条件が設定されている。それは、信号が弱く、遷移の数が少ないときは累積が長期間に亘って生じるように選択されている。
【００５０】
時間に基づく停止条件は現在のデータビットと前のデータビットの間の誤差の包絡線を累積し、（√｛（Ｉ１２−Ｉ２２）＋（Ｑ１２−Ｑ２２）｝）、すべての仮値を合算することにより決定される。誤差は、実際のビット遷移がない場合はノイズのみであり、遷移がある場合は信号振幅の２倍に比例することに留意されたい。累積は、累積誤差が予め設定されたしきい値に達したときに終了する。信号の強度が弱い場合、信号振幅は小さく、しきい値に達するまでの時間が長引くので、シミュレーションは長引く。
【００５１】
周波数に基づく停止条件は、上述したように包絡線を累積することにより決定されるが、周波数領域のヒストグラムの出力に対して累積を実行させることを含む。つまり、アーキテクチャは、現在のデータビットと前のデータビット（すべての周波数ビンにわたる）の間の誤差の包絡線を累積し、すべての仮値を合算する。
【００５２】
以下に実証する結果について、時間に基づく停止条件が、時間ヒストグラム手法および周波数ヒストグラム手法の双方に対して使用される。シミュレーションにおいて、０から２０ミリ秒の範囲ではどこでも真のビット遷移がランダムに生成される。推定値と真の遷移の間の誤差が０.５ミリ秒以上であれば、エラーとする。エラーの統計値は、予め選択された数（例えば、２５,０００）の試行から得られる。遷移の数（およびビット同期化を得る時間）も特定される。さらに、ループが無期限に繰り返されることを防止するために、タイムアウト・カウンタによって監視される予め選択された継続時間（例えば８秒）というタイムアウト条件が採用される。
【００５３】
下の表１は、既知の搬送波周波数を仮定した場合の、時間領域ヒストグラム手法と周波数領域ヒストグラム手法の比較を示す。如何なる特定の具体例においても、２つのアルゴリズムの間で比較し選択するために、ビット遷移の誤検出の確率が使われて良い。
【００５４】
【表１】
2007505292.tif 000003
【００５５】
表２は、２つのアルゴリズムのビン内の周波数誤差の検出エラーを示す。
【００５６】
【表２】
2007505292.tif 000004
【００５７】
表１からわかるように、搬送波周波数が既知の場合には、２つのアルゴリズムの性能は同等である。表２からも、ビン内の周波数誤差では２つのアルゴリズムの性能は同等である。０Ｈｚではビン０が中心となり、３１.２５Ｈｚではビン１が中心となることに留意されたい。２４Ｈｚと３２Ｈｚの差異は、周波数領域ヒストグラムにおいては、これらの周波数は隣接するビンの近傍に区分されるという事実によるものである。
【００５８】
周波数領域手法の１つの利点は、そのアーキテクチャが、周波数同期化とビット同期化の共通のものとして使用できるということである。つまり周波数領域アルゴリズムは、時間領域手法の利点を提供しながら、さらに並列的に複数の周波数試行にわたり動作するということである。停止の基準が時間領域に基づくしきい値カウント数である場合、周波数領域ヒストグラム手法の性能曲線は、小さな周波数オフセット（２Ｈｚ）に向かう。同じしきい値は、表２にプロットしたすべてのＣ／Ｎ０およびすべての周波数オフセットに使われた。
【００５９】
性能曲線とは、小さな周波数誤差がある場合のＣ／Ｎ０にわたるビット同期化を得る時間である。２２ｄＢでは、２５，０００回の試行から１つエラーのみが観測された。このように、同じ停止基準を用いた場合の小さな周波数オフセットに対するＣ／Ｎ０にわたって、周波数領域ヒストグラム手法の性能は時間領域手法と同等である。
【００６０】
停止基準が周波数領域ヒストグラムの出力に基づいている場合のＣ／Ｎ０にわたるビット同期化を得る時間は、２Ｈｚという小さな周波数誤差がある場合のＣ／Ｎ０にわたるビット同期化を得る時間の曲線として示される。ビット同期化の曲線は、周波数推定とビット同期化を同時に実行するという利点がある。時間領域手法は、信頼性の高いビット同期化を（シリアル方式で）正確に提供するために、周波数誤差に関する一定量の情報を利用することに留意されたい。しかし共用化する手法においては、アーキテクチャは搬送波周波数の推定を、ビット境界とともに並列方式で取得する。
【００６１】
このアーキテクチャはさらに、弱い状態で届くＳＰＳ衛星によって伝送された測距信号の搬送波周波数およびコード位相推定の分解能を改善する補間および平滑化回路構成および方法を含む。ひとつの具体例において、このアーキテクチャは搬送波ドップラーおよびコード位相の離散値を使用し、その離散値を改善するために補間および平滑化技法を使用する。例えば、補間および平滑化技法は、搬送波周波数決定および時間決定を改善するために、ビット同期化および取得に関して上述したように準備された時間と周波数のビンを処理してよい。
【００６２】
このアーキテクチャは、搬送波周波数補間を異なる方法で実行してよい。例えば、７つの１ミリ秒のコヒーレント・サンプルが８点ＦＦＴ（残りの入力には１つのゼロ）に入力されたと仮定する。３４２６（６×５７１）回の非コヒーレント積分が総時間２４秒に行なわれ、ＦＦＴはそれぞれ分解能１２５Ｈｚの８つのビンの大きさを演算する。補間がない場合、大きさが最大のビンが通常選択され、初期誤差がない場合は−６２．５から６２．５Ｈｚの範囲で誤差を生じる可能性がある。低Ｃ／Ｎ０で発生する初期誤差は、より大きい誤差につながる。
【００６３】
周波数補間技法を選択することに帰結する分析では、周波数誤差は1つのビンに亘って掃引され、各周波数誤差の推定値は、大きさが最大のビンとして得られる。次いでこのアーキテクチャは、例えば多点（例えば３点）放物線補間などの、推定値を改善する補間を用いて周波数推定値を調整する。この補間は大きさが最大のビンと、その最大ビンの両側にある隣接したビンの大きさを使用する。
【００６４】
サンプリングされた二次式のピーク位置は、サンプリングされたピークとその２つの隣接したピークを用いて特定できる。サンプリングされたピークがｙｍで、ｍからサンプリングされた真のピークがδである、サンプリングされた二次関数ｙに関して、ピーク付近の３つのサンプルは次式で関連付けられる。
【００６５】
【数１】
2007505292.tif 000005
【００６６】
ｍ＝０と置いてδを解くと次式となる。
【００６７】
【数２】
2007505292.tif 000006
【００６８】
ｍ−δはサンプリングされた二次式の正確なピークを与える。
【００６９】
コード位相補間の評価は、ゼロ周波数誤差と±１チップの総範囲を仮定して一度で行われてもよい。こうして０．５チップの相関間隔では、それぞれ０．５チップ分の間隔、すなわち、（−１，０．５，０，０．５，１）の５つのコード位相ビンがある。別の相関間隔に、同じ分析が行われてよい。
【００７０】
各５つの仮定された時間仮値に対するＩサンプルとＱサンプルが次式により生成されてよい。
【００７１】
【数３】
2007505292.tif 000007
【００７２】
評価シミュレーションにおいて、コード位相誤差τ０は、ひとつのビン、例えば−０．２５チップから０．２５チップにわたって掃引されてよい。各誤差に対する推定値は、大きさが最大であるビンを識別することによって得られる。
【００７３】
アーキテクチャは次いで、上に説明した３点放物線補間を用い、大きさが最大であるコード位相ビン（上に説明した５つのビンのうちのひとつ）および該最大ビンの両側に隣接したビンの大きさを用いてコード位相誤差を改善してよい。１チップ未満の間隔であるビンのノイズサンプル間の相関を考慮に入れてよい。
【００７４】
補間の他の方法は、図１０および図１１に示す結果を与える。この「他の方法」では、アーキテクチャはコード位相探索空間の５つのビンから４つのビンを選択し、次いでその４つのビンを用いて４点ＦＦＴを実行する。サイズを倍化するためにＦＦＴ出力にはゼロが付加される。次いで８点ＦＦＴを用いた逆ＦＦＴが実行される。ピークは８点逆ＦＦＴの出力から推定される。ひとつの具体化において、アーキテクチャは５つのビンから４つのビンを選んで、これらの４つのビン選抜の中心を、最大ビンと、これに隣接したビンのうち高い方のビンが占めるようにする。それらのビンは、ハードウエアにおける、またはソフトウエアにおける配列として実装されてよい。
【００７５】
上記の技法はいかなる所望の相関間隔に対しても一般化できる。例えば、１／Ｎチップの相関間隔に関しては、［−１：１］チップ範囲をカバーするためには合計で２Ｎ＋１のビンが必要となる。このアーキテクチャは、上述したように、これらの２Ｎ＋１ビンから、２Ｎビンを選択する。次いでアーキテクチャはこれらの２Ｎビンに２ＮのＦＦＴを実行し（ステップ１２０８）、続いてＦＦＴ出力へ２Ｎのゼロを付加して４Ｎサイズの逆ＦＦＴを実行する。
【００７６】
下記の表３は、上に考察したケースの初期誤差の影響を示す（再び、１０００回の試行を仮定している）。表３は、周波数／コード位相がビンの端部にある場合における、若干悪い範囲を提供している。実際これらのシナリオは、隣接したビン内の有用なエネルギーに帰結するからである。
【００７７】
【表３】
2007505292.tif 000008
【００７８】
相関関数における限定された帯域幅の影響は、コード位相放物線補間に関して推定され得る。例えば、１／８チップのチップ間隔、初期誤差なし、放物線補間、６ＭＨｚの帯域幅フィルタでフィルタリングされる相関三角、１／８チップのチップ間隔用の非同期化の間引きを仮定する。相関三角のピーク付近で、フィルタリングされた相関三角からの分散は、該三角内での平坦化によって高くなる。
【００７９】
ひとつの具体化において、ドップラー周波数補間を採用すると、ゼロを９個付加した放物線補間は弱い信号レベルにおいて改善をもたらす。コード位相補間では、ゼロを付加するＦＦＴアルゴリズムは、放物線補間に比べてビンの中心で誤差を小さくすることができ、平均値に大きめの変動をもたらす。
【００８０】
アーキテクチャはピーク割り当ても実行する。例えば、正しい組のピーク（各衛星に対してひとつ）を、衛星群の複数のピークの組から選択する。ピーク割り当ての技法は、仮定した参照位置（例えば、不確定の領域の中心にある参照位置）に対する支援情報を含む入力データに対して行なわれる。その支援情報は例として、可視衛星（擬似ランダム雑音（ＰＲＮ）ＩＤ）のリスト、各衛星（例えば、１チップ分解能）のコード位相指標（１０２３を法とする）、ドップラー値、衛星への視線方向（ＬＯＳ）ベクトル、最大水平位置誤差（メートル）および最大速度誤差（ｍ／ｓで）を含んでいてよい。
【００８１】
式１は、測定されたデータを示す。
【００８２】
【数４】
2007505292.tif 000009
【００８３】
ここで、Ｍ個の衛星群が存在して、各衛星に対して一組のＮ個ピークが存在する。各ピークは、１０２３を法とする（すなわち、０≦ｐｙ≦１０２２）対応するコードオフセット、搬送波周波数および振幅によって特徴付けられる。換言すると、上記｛Ｍ，Ｎ｝マトリクスの各成分は、コードオフセット、周波数および振幅パラメータによって特徴付けられる。こうして、成分ｐｙは３つのパラメータ｛ｃｐｙ，ｄｐｙ，ａｐｙ｝によって特徴付けられる。ここで、ｃｐｙはＰｙのコード位相指標であり、ｄｐｙはＰｙのドップラーであり、aｐｙはＰｙの振幅である。
【００８４】
ピーク割り当てを実行するにあたり、このアーキテクチャは、ピークは所与の衛星の振幅の降順に配列されていると仮定する。衛星群は、（例えば、各衛星（すなわち各列）の最初の要素に基づいて）強さの降順に配列されていると仮定する。測定データ（式１）内のＰＲＮに対して支援情報が利用可能であると仮定する。
【００８５】
最初の２つの仮定が相まって、第１列が最も強い衛星に対応しており、第１列内においては、ピークは振幅の降順に配列されているということを示唆する。データがこのように配列されていることは、アーキテクチャがすべての可能な組合せの包括的な探索を実行しない場合に、真のピークの組を発見する可能性を高めるとともに、探索速度が向上する。
【００８６】
ピーク指標とピーク・ドップラー値は捕捉処理（支援されている可能性がある）によって取得される。したがって、式１で測定されたピーク指標とドップラー値は、位置不確定性、速度不確定性、時間不確定性および周波数不確定性という制約の中で、ウインドウ内に存在する可能性がある。
【００８７】
ひとつの具体例において、アーキテクチャは、以下に説明する基準に従って一組の正確なピークを割り出す。その割り出された組のピーク（［ｐ１ｌ、ｐ２ｌ、・・・ｐＭｌ］によって与えられる）は、各要素が一意的な衛星に対応しているＭ要素の配列であってよい。Ｍ要素の配列は、配列、リンクリストまたは配列要素の関係性を維持する別の構造などのデータ構造として、ハードウエアまたはソフトウエアで具体化されてよい。
【００８８】
正確なピークの組を決定するにあたり、アーキテクチャは、決定技法に準じて処理を進めてよい。その技法は概ね、「枝刈り（pruning）」、「上限」、および「決断技法の適用」のステップを含む。「枝刈り」は計測データを前処理してデータセットのサイズ（ピークの数）を縮小する。「上限」ステップでは、アーキテクチャは、計測された指標（ドップラー）値と参照指標（ドップラー）値の間の不確定性の制限を得るために、不確定情報（位置および時間）およびＬＯＳベクトルを使用する。「決定技法適用」では、アーキテクチャは、不確定性制限と測定データを用いる決定技法を適用して、決定された組のピークを得る。
【００８９】
以下の論考では、一重差への参照は、衛星ｉと衛星ｊの間の差への参照である一方、二重差は、ユーザの受信機と参照データ（例えば、支援情報）との間の一重差である。
【００９０】
「枝刈り」ステップにおいて、アーキテクチャは、少量のあるいは最低限の処理を用いながら計測データのサイズを縮小する。ひとつの具体化において、アーキテクチャは、振幅情報（ピークは振幅の降順に配列されていることに留意されたい）を用いて枝刈りを実行する。
【００９１】
例えば、アーキテクチャは次式を満たす全てのピークを放棄してよい。
【００９２】
【数５】
2007505292.tif 000010
【００９３】
ただし、上記の式においてｉは衛星番号であり、ｊ＝２、３、・・・、８はセット内の位置を示す。
【００９４】
ｋ１、（０＜ｋ１＜１）は、しきい値定数である。それ故、ｋ１＝０．５ならば、アーキテクチャは、最強ピークのサイズの半分未満であるピークを放棄する。支配的なピークが顕著である、強度の強い信号の衛星群については、その衛星ごとに１つの要素を持つセットが得られる。
【００９５】
「上限」を適用するステップにおいて、アーキテクチャは、参照で与えられる値と、真の位置で計測された値の間の予測コード位相指標（ドップラー）差の上限を得るために、アプリオリな不確定性の情報を位置および速度に用いる。
【００９６】
ユーザによって計測された時間ｔにおける真の位置から衛星ｉまでの距離は次式によって与えられる。
【００９７】
【数６】
2007505292.tif 000011
【００９８】
ここで、ｃは光の速度（ｍ／ｓ）であり、ｂｕは受信機クロック（ｓ）内のバイアス値であり、νｉ（ｔ）項は計測ノイズ（ｍ）を表す。「＾」が付された項は（参照値における）推定値を表す。視線方向ベクトルの直線は次式により与えられる。
【００９９】
【数７】
2007505292.tif 000012
【０１００】
上記の式２において、ｒｉ（ｔ）は真のユーザ位置uにおける計測距離を表すことに留意されたい。右辺第１項ｒ＾ｉ（ｔ）は、不確定性（参照位置）の中心における計測距離を表す。第２項は真の受信機位置の不確定性による誤差を示し、第３項は受信機時間のバイアス値を示す。
【０１０１】
二つの異なる衛星ｉとｊからの一重差を次式により計算する。
【０１０２】
【数８】
2007505292.tif 000013
【０１０３】
式３において、左辺は真のユーザ位置ｕにおいて参照される衛星ｉとｊの距離の一重差を表す。右辺の第１の差分項は、不確定性の中心における衛星ｉとｊの距離差を表す。第２項はユーザ位置の不確定性による誤差を表す。これは、衛星の幾何的配置の関数であることに留意されたい。
【０１０４】
二重差を表すように式３を変形し、計測ノイズ項を省略すると次式が得られる。
【０１０５】
【数９】
2007505292.tif 000014
【０１０６】
ドップラーに関しても同様に次式が得られる。
【０１０７】
【数１０】
2007505292.tif 000015
【０１０８】
ここで、ｄｉおよびｄ＾ｉはそれぞれ、衛星ｉによる真のユーザ位置で計測されたドップラー、および参照位置で計測されたドップラーを示し、Δｕはユーザ速度の不確定性を示す。
【０１０９】
式４および式５は、参照位置における値と真の位置で計測された値の間のコード位相指標（ドップラー）の（衛星ｉと衛星ｊの間の）二重差上の上限をアーキテクチャに与える。
【０１１０】
次に、アーキテクチャは上述した如く得られたピークの組から各衛星に関して選択されたピークを決定するために決定技法を適用する。ひとつの具体化においては、アーキテクチャは、決定した組のピークを得るためにコストベクトルを用いる。こうして、例えば、アーキテクチャは、列ベクトル（一列）を形成することにより、式１のマトリクスから一組のピークを選択してよい。ここで列ベクトルは、列ベクトル内の各要素が一意的な衛星に対応するベクトルである。
【０１１１】
例えば、各衛星に対して第１の要素を選択すると以下のベクトルとなる。
【０１１２】
【数１１】
2007505292.tif 000016
【０１１３】
選択された列ベクトルに対して、次のステップではそれらのコード位相指標とドップラーの一重差を形成する。振幅に関しては、アーキテクチャは対応する対に関する振幅の積を形成してよい。その積は、次式で表される。
【０１１４】
【数１２】
2007505292.tif 000017
【０１１５】
アーキテクチャは、これらの項の絶対値を用いることができる。コード位相指標に関しては、アーキテクチャは次式を用いる。
【０１１６】
【数１３】
2007505292.tif 000018
【０１１７】
上記の一重差ベクトルのサイズＭはＭ＝２であることに留意されたい。したがってＭ＝５の場合は、上記の各ベクトルは全体で１０の要素となる。アーキテクチャは参照位置における推定値のために上記のステップを繰り返す。したがって参照位置（サイズＭのベクトル）での所与のコード位相指標（ドップラー）に関して、アーキテクチャは一重差を形成する。加えて、アーキテクチャは視線方向ベクトルの直線に関する一重差の大きさも形成する。結果として得られたすべてのベクトルは本例ではサイズＭ＝２である。
【０１１８】
次いでアーキテクチャは、制限ステップの結果を用いて、真の位置と参照位置（式４および式５の右辺）との間の値の誤差差異（二重差）における上限を得る。
【０１１９】
コード位相指標に関して、制限は、［位置不確定性（チップ）×ＬＯＳベクトル（一重差の大きさ）］である。
【０１２０】
ドップラー値に関して、制限は、［（速度＋位置）不確定性（Ｈｚ）×ＬＯＳベクトル（一重差の大きさ）］である。
【０１２１】
アーキテクチャは、コード位相指標およびドップラーの（二重差）誤差項も取得する。誤差項は、（上記に説明した）真の位置の一重差と、（上記に説明した）参照位置の一重差の間の差異である。誤差項ベクトルもサイズＭ＝２であることに留意されたい。
【０１２２】
次に、アーキテクチャはその誤差項を、要素ごとへの制限に対して比較する。誤差項の要素が、対応する制限要素よりも大ならば、アーキテクチャは、コストベクトルを増加させる。コストベクトルは、上に説明したように形成されたピーク振幅対に対応する積の逆数に比例して、かつ、エラー項（二重差）と上限との間の差に比例して増加される。この重み値は、一重差を形成するために用いられた両方の要素（すなわちピーク）に対して割り当てられることに留意されたい。次に、誤差項が対応する制限未満ならば、コストベクトルは変更されない。アーキテクチャはすべてのＭに対して２要素を選択するというこの手順を繰り返す。このステップの終わりに、アーキテクチャはサイズＭのコストベクトルを取得する。
【０１２３】
アーキテクチャは、コストベクトルをリセットせずにドップラー項に対して同じ手順を繰り返す。コストベクトルがゼロに等しくなったとき（すべてのＭ要素が同じようにゼロである）、アーキテクチャはそれが最適ピークベクトルに対応すると決定して探索を停止する。さもなければ、アーキテクチャはコストベクトルを保存し、それをリセットして、列ベクトル形成に関して上述したピークの新規の組の選択に戻る。
【０１２４】
ピークのすべての組合せを探索してゼロコストベクトルが得られない場合には、アーキテクチャは、コストベクトルの大きさが最も小さいピークの組を選択してよい。同順位の場合は、アーキテクチャは例えば探索処理で最初に得られたピークの組を選択してよい。
【０１２５】
以下の論考では強度の強い信号および強度が中間の信号のためのアーキテクチャ用の追跡システムについて詳述する。次の略語が以下で使われる。アルファ、ベータは、異なる場合に異なる値を取ることがある一般的な総称フィルタ係数を表す。ＦＦＴは高速フーリエ変換を表す。ＳＰＳは衛星測位システムを表す。ＨＷＴＬは、ハードウエア追跡ループを表す。ＮＣＯは数値制御型発振器を表す。ＰＤＩは、予備検出積分を表す。ＲＡＭはランダム・アクセス・メモリを表す。Ｓ＿Ｇａｉｎは、追跡ループを正規化するために用いられるフィルタ処理された信号振幅推定を表す。ＳＷＴＬは、ソフトウエア追跡ループを表す。Ｔｌは、サブシステム２のための基本時間エポックを表す。しきい値、しきい値１、しきい値２は、異なる時間では異なる値を取ることがある一般的なしきい値を表す。
【０１２６】
ハードウエア及びソフトウエア追跡ループと捕捉計画３３５は、追跡履歴、ビット同期、Ｉ／Ｑ位相およびＲＡＭ３０４、３１４、３２０、３３２、３３４内のそれぞれの１００ミリ秒レポート・データと同様にメモリ・サブシステム２０８に属している。ハードウエア追跡ループは、ハードウエア内で単純な追跡ループ方程式を実行し、チャンネル記録に種々のパラメータを設定するソフトウエアによって制御される。一部の極端な信号状態の場合（非常に弱い信号の場合、または動的条件が大幅に変動するような場合）は、単純な追跡ループとは対照的に、より複雑な信号追跡アルゴリズムを実行することが好ましい。そのような場合には、ハードウエア追跡ループは、機能強化のためにソフトウエア追跡ループに支援される。ハードウエアとソフトウエア両方の追跡ループを有することのできる能力が、この融通性を与える。
【０１２７】
コヒーレント・データは、ソフトウエアにより、ハードウエアおよびソフトウエア追跡ループ内にパラメータ変更を決定するために用いられる。従来技術に対する優位性は、時間に対してコヒーレント・データと位相履歴データの両方にアクセスできることである。このデータを用いることは、ＧＰＳ受信機１００がデータ信号の処理を調整することを可能にし、このデータは、ＧＰＳ受信機１００の動作の品質の指標としても機能する。
【０１２８】
追跡ループは、２つのコンポーネントに分割されることができる。最初のコンポーネントはハードウエア追跡ループであり、別のコンポーネントはソフトウエア追跡ループである。ハードウエア追跡ループは高速で動作する。ハードウエア追跡ループはＮＣＯとカウンタによって部分的に制御される。ソフトウエア追跡ループは低速で動作し、ハードウエア追跡ループよりも複雑なアルゴリズムを使用する。ハードウエア追跡ループおよびソフトウエア追跡ループはメモリ・サブシステム２０８に格納されているパラメータを利用する。２種類の追跡ループを使用することは、ソフトウエア追跡ループによって用いられるアルゴリズムに基づくハードウエア追跡ループの効率を向上させながら冗長さのレベルとハードウエアの動作の監視を可能にする。
【０１２９】
前述したように、メモリの領域は入力信号データのグループであるチャンネルに分割される。チャンネルは次いで、信号処理サブシステム２０４によって処理され、次にＦＦＴサブシステム２０６によって逐次処理される。信号データはメモリ・サブシステム２０８を介してサブシステム間で受け渡される。異なるチャンネルの状態はチャンネル状態ＲＡＭ３３８に格納されている。
【０１３０】
メモリ・サブシステム２０８は、機械で読取可能な符号化された命令を格納するために、ＲＡＭのように書き換え可能な、または、ＲＯＭのように不変のメモリをさらに有している。ＲＡＭおよびＲＯＭという用語は、例えば、ＳＤＲＡＭ、ＤＤＲ、ＰＲＯＭ、ＥＰＲＯＭ、またはＥＥＰＲＯＭメモリなどの特定の種類のメモリを用いて実装されるメモリの動作タイプを説明するために用いられる。機械で読取可能な命令は、実行時に図１のＧＰＳ受信機１００の多数の機能を制御するモジュールとして典型的に符号化されている。そのようなモジュールの例は、制御ループ、エキスパート・システム、電力制御、追跡ループおよび捕捉などである。同様に、別のモジュールが、内部および外部の異なるインターフェースを制御し、サブシステム間のメッセージ交換やＧＰＳ受信機とＯＥＭ装置の間のメッセージ交換を制御する。
【０１３１】
シーケンサ・サブシステム２１０は、信号処理サブシステム２０４の動作を管理するシーケンサおよびＦＦＴサブシステム２０６の動作を管理する別のシーケンサを制御するシーケンサ・コントローラ３３６を有している。２つのシーケンサを同期させるルールが実装される。そのルールは一般に重複ルールと呼ばれ、現行のシーケンサがあるチャンネルのデータを処理し終わるまで、あるシーケンサがそのチャンネルへ進むことを防止する。別の具体化では、単一のシーケンサが別個のサブシステムを制御するために実装されてよい。
【０１３２】
図４は、図１のＧＰＳ受信機１００内の、データ信号のハードウエア処理とソフトウエア処理の間の分割の図４００を示す。図４００は、ハードウエア側４０２とソフトウエア側４０４に分かれている。ハードウエア側４０２には、信号処理サブシステム２０４、ＦＦＴサブシステム２０６、非コヒーレント加算および追跡履歴バッファ（ＲＡＭ）３３４、およびハードウエア追跡ループ４０６がある。ソフトウエア側には、ソフトウエア追跡ループ４０８がある。別の実現化では、図４などの図に示されるブロックよりも多いブロック或いは少ないブロックで構成されてもよい。図４の目的は、ハードウエアがひとたび設定されると、ソフトウエアからの直接の相互作用はどれほど限られたものになるかということの概念的説明を示すことにある。例えば、エキスパート・システムや電力制御などの、図４には示していない多くの別のソフトウエア処理やタスクがあり得る。
【０１３３】
ＧＰＳデータ信号は信号処理サブシステム２０４によって処理されて、ＦＦＴサブシステム２０６にＴ１間隔で受け渡される。ＦＦＴサブシステム２０６の出力は、ＩデータとＱデータ、および、ＰＤＩ（ＦＦＴが演算するために必要とするコヒーレント・バッファからのデータ量）が利用可能であるレートでの時間指標である。データはＮＣＳ／ＴＨバッファ３３４に格納され、ハードウエア追跡ループを実行するハードウエア追跡層４０６に送信される。ハードウエア追跡層４０６は次いでハードウエアＮＣＯ補正値をフィードバックする。ハードウエアＮＣＯ補正値は、図３の搬送波およびコードＮＣＯ３１２によって用いられることができる。
【０１３４】
図４のハードウエア側４０２は、例えば、ＮＣＳ／ＴＨバッファ３３４がソフトウエア追跡ループ４０８によってアクセスされたときに、メモリを介してソフトウエア側４０４と通信する。ソフトウエア追跡ループ４０８はハードウエア追跡ループよりも低速で動作し、ＮＣＯ補正値と１００ｍｓ支援情報を得るために、メモリに格納されたデータの処理に多くの時間を費やす。そのような情報は、ハードウエア追跡層４０６によってアクセスされるメモリに配置され、次いで信号処理サブシステム２０４によって、コンテキスト変更（メモリ内でチャンネルを切り替えること）の間などの適切な時点に取り出される。
【０１３５】
図５は、図１のＧＰＳ受信機１００のモジュール相互作用の図５００を示す。ＧＰＳ受信機１００の制御モジュールは、ＧＰＳ受信機制御モジュール５０２と称される。ＧＰＳ受信機制御モジュール５０２は、リセット・モジュール５０４、ＱｏＳモジュール５０６、可視衛星機（ＳＶ）リスト５０８、ＳＶデータ５１０、支援モジュール５１２、ナビゲーション（ＮＡＶ）モジュール５１４、ＤＧＰＳモジュール５１６、捕捉追跡クロス・コーディネータ（ＡＴＸ）制御管理モジュール５１８、電力管理モジュール５２０、データ制御モジュール５２２、最適推定（ＢＥＰ）モジュール５２４、ＵＩＧＰＳモジュール５２６、モジュール・インターフェース（ＭＩ）・モジュール５２８、およびバックグランド／周期的タスク・モジュール５３０を含む多くの別のモジュールと通信する。
【０１３６】
ＧＰＳ受信機制御モジュール５０２は、別のモジュールとの通信を処理するために持続的に繰り返し動作する処理ループとして実装される。別の具体化では、別のモジュールおよび／またはハードウエアコンポーネントと通信するために割り込み手段が用いられてもよい。さらに、異なるサブシステムを構成する別のモジュールやハードウエアと通信するために、処理ループと割り込みを併用してもよい。
【０１３７】
リセット・モジュール５０４は、ＧＰＳ受信機１００が適切に初期状態にリセットされるための処理を受け持つ。リセット・モジュール５０４は、リセット・イベントの発生または最初の起動に際して、メモリ・サブシステム２０８を含むすべてのサブシステムを初期化する。リセット・モジュール５０４はＧＰＳ受信機制御モジュール５０２からの命令に従う。ＧＰＳ受信機制御モジュール５０２からリセット・モジュール５０４に対して発せられる命令は、リセット・モジュール５０４に、選択されたメモリ位置とバッファをクリアさせ、それらを既知の値で初期化させる。リセット命令は、ＵＩＧＰＳモジュール５２６を介してユーザ・インターフェースからＧＰＳ受信機制御モジュール５０２で受け取られる。または、ＧＰＳ受信機１００への最初の電力供給によってＧＰＳ受信機制御モジュール５０２で受け取られる。リセット・モジュール５０４はＧＰＳ受信機１００の部分的リセットまたは全体リセットを起動する。部分的リセットでは、ＳＶデータ・モジュール５１０、ＤＧＰＳモジュール５１６およびＢＥＰモジュール５２４は動作を継続し、外部ソースから更新データを受け取ることができる。
【０１３８】
ＱｏＳモジュール５０６は、ＧＰＳ受信機１００で利用可能なサービスの質を決定する処理を受け持つ。ＱｏＳモジュール５０６には、可視ＳＶリスト５０８からの情報などの、別のモジュールからの情報が与えられる。位置特定が現在の環境では利用できない場合、ＱｏＳモジュール５０６は、支援モジュール５１２から提供される情報などの付加的情報を利用することを指示する。可視ＳＶリスト・モジュール５０８は、ＧＰＳ受信機１００によって追跡されるＳＶのリストを維持する。ＡＴＸ制御管理モジュール５１８はこれらのＳＶからの信号を追跡し、別のサブシステムと協働する。
【０１３９】
ＧＰＳ受信機制御モジュール５０２は、ＧＰＳ受信機制御モジュール５０２を介して衛星機から受信されたアルマナックデータを格納するＳＶデータ・モジュール５１０を更新する。アルマナックデータは、衛星機群を構成する衛星機に関する情報を含んでよい。衛星機データ・モジュール５１０は衛星機または衛星機の捕捉に関連する付加的なデータを含んでよい。別の具体化では、可視ＳＶリスト・モジュール５０８と衛星機データ・モジュール５１０が、単一のモジュール内で単一のデータ構造へ統合されていてもよい。
【０１４０】
支援モジュール５１２は、別のネットワークを介して通信できる位置サーバまたは別の無線装置／ＧＰＳ装置などの装置から受信される位置データを有している。支援データの例は、予め定められた位置、クロック周波数、ＳＶ位置情報、アルマナックデータを含むがそれらに限定されない。ＧＰＳ受信機制御モジュール５０２は支援モジュール５１２にアクセスして支援情報を取り出し、または格納する。支援モジュール５１２はＧＰＳ受信機１００によって継続的に更新されて、ナビゲーション・データに織り込まれてよい。別の具体化では、ＧＰＳ受信機１００のＯＥＭ部分が、支援モジュール５１２のための通信接続とデータを提供してもよい。
【０１４１】
ＮＡＶモジュール５１４は、別のモジュールおよびシステムによる使用のために、ナビゲーション・データをフォーマットする。ＮＡＶモジュール５１４は別のモジュールからの測定データを用いてＮＡＶ状態を決定する。ＮＡＶ状態は、ユーザ位置、ユーザ・クロック・バイアス、ユーザ速度、ユーザ・クロック・ドリフト、ユーザ位置不確定性、ユーザ・クロック不確定性、ユーザ速不確定性、ユーザ・クロック・ドリフト不確定性を含むがそれらに限定されない。擬似コード内の、そのような測定データのフォーマットの例を以下に示す。
NAV Measurement Structure
｛
UINT32 Timetag ; //捕捉クロックlsw（Acquisition Clock lsw）
UINT32 Timetag2 ; //捕捉クロックmsw（Acquisition Clock msw）
double measTOW ; //ユーザタイム（User time）
UBYTE SVID ; //各チャンネルの衛星ID （Sat ID for each channel）
double Pseuodorange; //メートルでの擬似距離（Pseudorange in meters）
float CarrierFreq ; //メートル／秒での擬似距離レート（Pseudorange rate in meters/seconds）
double CarrierPhase ; //メートルでの積分搬送波位相（Integrated Carrier Phase in meters）
short TimeIn Track ;  //ミリ秒でカウント、ＳＶがトラック内にある長さ（Count, in millisecondss how long SV is in track）
UBYTE SyncFlags ; //このバイトは、チャンネルに関して達成された積分間隔と同期化を報告する２つのビットフィールドを格納している（This byte contains two bit-fields which report the integration interval and sync achieved for the channnel）
ビット0: コヒーレント積分：間隔(0=2ms, 1=10ms)
（Bit 0: Coherent Integ. Interval (0=2ms, 1=10ms)）
ビット１,２：同期
（Bit 1,2 : sync ）
UBYTE CtoN [10] // db-Hz単位の各１００mzの平均信号電力（Average signal power in db-Hz for each 100mz）
UINT16 DeltaRangeInterval; //先行秒の間隔。ゼロの値は、このチャンネルの搬送波周波数フィールドにはＡＦＣ測定または測定値の欠如を示す。（Interval for the preceding second. A value of zero indicates that an AFC measurement or no measurement in the CarrierFreq field for this channel）
INT16 MeanDeltaRangeTime;// 間隔の最後から逆向きにミリ秒で計測されたデルタ擬似距離の平均時間（Mean time of the delta-pseudo range interval in milliseconds measured from the end of the interval backwards）
INT16 Extrapolation Time ;// 共通の時間タグ値に到達するためのミリ秒での擬似距離外挿時間（The pseudo range extrapolation time in milliseconds, to reach a common time tag value）
UBYTE PhaseErrorCount ;// 先行秒で測定された６０度を越える位相エラーのカウント（チャンネルごとに規定される）（The Count of Phase Errors greater than 60 degrees measured in the preceding second (as defined for each channel)）
UBYTE LowPowerCount ;// 先行秒における、２８ｄＢ−ＨＺ未満の電力測定値のカウントである （チャンネルごとに規定される）（This is the Count of power measurement less than 28 dB-HZ in the preceding second (as defined for each channel)）
#ifdef FALSE_LOC
double TruRange ;//* 真の距離（true range） *//
long GPSsecond//*整数ＧＰＳ秒（Integer GPS seconds） *//
long ClockOffset ;//* Ｈｚでのクロックオフセット（clock offset in Hz） *//
#endif
char measurementConsistency ;// 測定が合致することを示すフラグ（Flag to indicate measurement are consistent）//
double ValidityTime ;// 受信機の有効時間（Receiver Time to Validity）//
short PRQuality ;// 擬似品質（Pseudo Quality）//
float PRnoise ;// メートルでの1シグマ予想ＰＲノイズ（1 sigma expected PR noise in meters）//
float PRRnoise ; //メートル／秒での1シグマ予想ＰＲＲノイズ（1 sigma expected PRR noise in meters/sec）
short PRRQuality;// ＰＲＲの品質測定（Quality measurement of the PRR）//
float CarrierPhasenoise ;// メートルでの1シグマ予想搬送波位相ノイズ（1 sigma expected Carrier Phase noise in meters）//
short PowerLockCount //１秒０−５０のパワーロックロスカウント（Count of Power Lock Loss in 1 second 0-50）//
short CarrierLockCount//１秒０−５０の搬送波ロック損失カウント（Count Phase Lock Loss in 1 second 0- 50）//
short msAmbiguity//測定のミリ秒単位のあいまいさ（milliseconds Ambiguity on measurement）//
｝tNavMeas.
ＤＧＰＳおよびＷＡＡＳ位置特定データのための付加的なフォーマットが含まれていてよい。ＮＡＶモジュール５１４は、ＦＦＴサブシステム２０６からデータを受け取ってＧＰＳ受信機１００の位置を特定する。
【０１４２】
ＧＰＳ受信機制御モジュール５０２はＤＧＰＳモジュール５１６とも通信してよい。ＤＧＰＳアプリケーション・モジュール５１６は、ＤＧＰＳ信号を受信するためにハードウエア受信機とともに機能する。ＤＧＰＳ信号は、ＧＰＳ受信機１００が一層精密にその位置を特定することを可能にするＧＰＳ補正データを含む。ＤＧＰＳモジュール５１６は、
セレクティブ・アベイラビリティが機能している際に、より良好な位置特定を支援することもできる。ＤＧＰＳモジュール５１６で用いられるＤＧＰＳ補正値は、ＲＴＣＭまたはＲＴＣＡフォーマットのような特定のフォーマットを有していてもよい。
【０１４３】
ＡＴＸ制御管理モジュール５１８は、選択された衛星機から受信された信号を処理するハードウエアとのインターフェースを有する。ほとんどのモジュールはハードウエアと直接のインターフェースを有することはなく、むしろモジュールは、ハードウエアがアクセスする共有メモリにアクセスする。ＡＴＸ制御管理モジュール５１８は例外であり、信号処理サブシステム２０４およびＦＦＴサブシステム２０６のハードウエアと直接のインターフェースを有するサブ・モジュールを用いる。別の具体化では、多数のモジュールがハードウエアと直接のインターフェースを有してもよい。
【０１４４】
ＧＰＳ受信機制御モジュール５０２は電力管理モジュール５２０と通信する。電力管理モジュール５２０は、バッテリの電力レベルなどの情報を、メモリを介して電力供給ハードウエアから受け取る。電力管理モジュール５２０は、エネルギーを節約するために、受信したＧＰＳ信号の品質、ＵＩＧＰＳモジュール、処理状態または電力レベルに基づいて、異なるサブシステムをオンにしたりオフにする機能を有してよい。電力管理モジュール５２０は、ＲＦブロック１０２を含めてＧＰＳ受信機１００をスリープ状態にする機能も有してよい。リアルタイム・クロックは、ＧＰＳ受信機を迅速に動作可能状態にすることを可能にするとともに、位置データの処理を続行するように設定されることを可能にするタイミング信号を供給する。
【０１４５】
電力管理モジュール５２０は、バッテリの電力レベルなどの電力情報を追跡し、その情報がＧＰＳ受信機制御モジュール５０２によってアクセスされることを可能にする。その情報は、電力管理モジュール５２０がＧＰＳ受信機制御モジュール５０２にメッセージを送るとアクセスされる。別の具体化では、ＧＰＳ受信機制御５０２が電力管理モジュール５２０に要求を出す。するとＧＰＳ受信機制御モジュール５０２はＧＰＳ受信機１００の動作モードを変更するか、または利用可能な電力量に基づいて別の処理を行う。
【０１４６】
インターフェースは、ＲＦサブシステムやクロックといったサブシステムの電力制御を可能にする。ベースバンド処理に関連する種々のサブシステムは、ソフトウエア制御の基でアイドル状態にされる。例えば５つを越えるチャンネルに処理すべきデータがない場合、電力管理モジュール５２０を実装するソフトウエアは、チャンネル記録に５つのチャンネルのみを設定する。ハードウエアはこれら５つのチャンネルのみを逐次実行する。こうしてメモリ・アクセスを減らす。シーケンサはソフトウエア制御の基でシャットダウンされることができ、ベースバンド処理を完全に停止する。ＲＴＣは、起動動作に備えて、ＲＴＣカウンタを動作させ、ＲＴＣクロックを使用できる状態にさせるための独立した電源を有する。この電力制御手法は、電力管理モジュール５２０内での電力制御を実行する際に融通性を持たせる。こうして電力利用は、ＧＰＳ受信機１００で利用可能な情報に基づき、位置特定のために必要な電力を最小限にするべく最適化される。
【０１４７】
データ制御モジュール５２２は、不揮発性メモリ（ＮＶＭ）に格納された不揮発性データへのアクセスを、リセットまたは電源オフに関わらず制御する。データ制御モジュール５２２は、ＧＰＳ受信機１００の電源オン時／起動時のメモリの検証および、格納されたデータの保全（すなわち、チェックサム）をも提供する。
【０１４８】
ＢＥＰモジュール５１４は、ＧＰＳ受信機１００によって現在使われている情報のデータ構造によって形成されたデータベースである。異なるサブシステムのタイミング制御に影響を与える、ＧＰＳ受信機１００で受信された情報は、ＢＥＰモジュール５２４で保持される。
【０１４９】
ＧＰＳ受信機１００は、ボタン、タッチスクリーン、マウスまたはキーボードなどの外部機器からの入力を受信するユーザ・インターフェースを有する。ユーザ・インターフェースは、ユーザからの外部入力を最初に受け取るＵＩＧＰＳモジュール５２６を介して通信する。入力は処理され、ＧＰＳ受信機制御モジュール５０２は適切な処理を実行する。ＧＰＳ受信機制御モジュール５０２は、ＵＩＧＰＳモジュール５２６の設定したイベント・フラグによってユーザ入力データを受信し、別のイベント・フラグを設定することによって情報を送信してもよい。別の具体化では、ＧＰＳ受信機制御モジュール５０２はＵＩＧＰＳモジュール５２６からユーザ・インターフェース・データとともにメッセージを受信してもよい。
【０１５０】
ＭＩモジュール５２８は、別のモジュールのＧＰＳ機能をカプセル化して、そのＧＰＳ機能を外界および外のリソースから隔離する。外界とは、ＧＰＳ受信機１００内に配置されたＯＥＭ装置または、ＧＰＳ受信機１００と接続された装置である。
【０１５１】
別のモジュールに加えて、多数のバックグランドモジュール５３０またはタスクが随時実行されてよい。そのようなバックグランドモジュールの例としては、ごみ収集（使用済みリソースの再生）、監視タイマ、割り込みハンドラ、ハードウエア監視などがある。
【０１５２】
次に図６に、図５のＡＴＸ制御管理モジュール５１８内のＡＴＸ制御サブ・モジュール６０２の説明図６００を示す。ＡＴＸ制御管理モジュール５１８は、ＡＴＸ制御サブ・モジュール６０２と通信する。ＡＴＸ制御サブ・モジュール６０２は、ＡＴＸタスク６０４、例えばデジタル信号プロセッサやマイクロプロセッサやステートマシンを実行するデジタル論理回路などのコントローラ６０６、相互相関タスク６０８、追跡タスク６１０、捕捉タスク６１２、リセット・タスク６１４およびスタートアップ・タスク６１６と付加的に通信する。タスクは、ＡＴＸ制御管理モジュール５１８内のサブ・モジュールとして、コントローラ６０６や相互相関６０８などのハードウエアとインターフェースを取るものであってよい。または、タスクは、リセット・タスク６１０およびスタートアップ・タスク６１６などのように、特定の条件が発生したときに実行されるソフトウエアとして実装されてもよい。
【０１５３】
ＧＰＳ受信機１００の起動においては、ＡＴＸ制御管理モジュール５１８は、ＡＴＸ制御サブ・モジュール６０２を介してスタートアップ・タスク６１６を動作または実行する。スタートアップ・タスク６１６は他のタスクを既知の状態に初期化する。ＡＴＸタスク６０４は次いで、コントローラ６０６、相互相関タスク６０８、追跡タスク６１０および捕捉タスク６１２、信号処理サブシステム２０４内のハードウエアなどとインターフェースを取る処理を実行し、受信した測位信号の処理に備える。他の具体例では、ＡＴＸ制御管理モジュール５１８内には、より多くの、または少ないタスクがあってもよく、いくつかのタスクが統合されたり、またはひとつのタスクが細分割されていてよい。
【０１５４】
図７は、図１のＧＰＳ受信機１００の実装層の説明図７００を示す図である。アプリケーション層７０２は典型的には、ＧＰＳ受信機１００の動作と対応付けられたモジュールまたはタスクにグループ化されるソフトウエア４０４である。ソフトウエア・モジュールの例は、ＡＴＸ制御管理モジュール５１８である。ＡＴＸ制御管理モジュールは、プラットフォーム層７０４に属するＡＴＸ制御サブ・モジュール６０２と通信する。プラットフォーム層７０４は、アプリケーション層７０２とハードウエア層７０６の間に位置する層である。
【０１５５】
プラットフォーム層７０４は、ＡＴＸ機能の大部分が属する層である。ＡＴＸ制御サブ・モジュール６０２は、アプリケーション層７０２に属するＡＴＸ制御管理５１８、プラットフォーム層７０４に属するリセット・タスク６１４およびスタートアップ・タスク６１６からメッセージを受信することができる。ＡＴＸ制御サブ・モジュール６０２は、相互相関タスク６０８、追跡タスク６１０および捕捉タスク６１２とも通信する。ＡＴＸ制御サブ・モジュール６０２は、ハードウエア層７０６に属するコントローラ６０６およびＨＷタイマ３０３などのハードウエアとも通信する。
【０１５６】
図８には、図５のＧＰＳ受信機制御モジュール５０２の処理フローチャート８００が示されている。処理フローチャート８００は、ＧＰＳ受信機制御モジュール５０２内で受信機コントローラ・タスクが８０２で起動したときに開始する。受信機コントローラ・タスクはブロック８０４で、局所パラメータの初期化と受信機制御イベント・キューの処理に加えてＵＩＧＰＳモジュール５２６からのエラー状況とバックグランドタスク５３０に応じる。
【０１５７】
ステップ８０６では、ＡＴＸ制御管理モジュール５１８は、ＡＴＸ制御管理モジュール５１８が提供するインターフェースを用いて、追跡ハードウエアからの測定値、ＷＡＡＳ補強データおよびステータス情報を、ＧＰＳ受信機制御モジュール５０２へ転送する。測定状況に基づき、ＡＴＸ制御管理モジュール５１８は復旧情報が生成されるかどうか、また、復旧状況が識別されたかどうかを決定する。
【０１５８】
ステップ８０８では、次いでＧＰＳ受信機制御モジュール５０２は、電力管理モジュール５２０にアクセスする。ＧＰＳ受信機１００のＧＰＳ部分がオフのときの電力管理および細流電力型の電力管理のためである。電力管理・モジュール５２０は、現在の測定情報がＡＴＸ制御管理モジュール５１８から取得された後にアクセスされる。
【０１５９】
ステップ８１０では、ＡＴＸ制御管理モジュール５１８によって復旧状況が示された場合に、ＧＰＳ受信機制御モジュール５０２は、ＡＴＸ制御管理モジュール５１８から受信したデータに基づき内部支援を実行する。ＢＥＰモジュール５２４、ＳＶデータ・モジュール５１０および可視ＳＶリスト・モジュール５０８内の可視衛星が、復旧に必要なものとしてアクセスされ更新される。
【０１６０】
ステップ８１２では、予め規定されたイベントに基づき、ＡＴＸ制御管理モジュール５１８の使用に供するための新たな予備測位データがＧＰＳ受信機制御モジュール５０２によって生成される。ＡＴＸ制御モジュール５１８は、予備測位データを得るために強制更新モジュール５２４にアクセスしてもよい。
【０１６１】
ステップ８１４では、ＧＰＳ受信機制御モジュール５０２は、ＮＡＶモジュール５１４を実行させ、利用可能ならばナビゲーション・データを出力させる。このことはＵＩＧＰＳモジュール５２６と支援モジュール５１２を起動し、ナビゲーション・データをフォーマットする。支援モジュール５１２はＱｏＳモジュール５０６を実行させ、他のモジュールやサブシステムに対して適切なデータを利用可能にさせる。ＮＡＶモジュール５１４によって生成された結果は、受信機コントローラ・タスクが次回実行するときに用いられてもよい。一般に、ＮＡＶモジュール５１４は次のイベントに際して実行される。次のイベントとは、細流電力オン期間の後、ＮＡＶモジュール５１４の最初の実行前（受信機が十分な測定値を取得すると直ちに実行される）、ＮＡＶモジュール５１４の初回実行後の１０００ｍｓハードウエア・タイマー境界、である。
次にステップ８１６では、ＧＰＳ受信機制御モジュール５０２は、電力管理モジュール５２０を高性能電力管理型の電力制御にする。細流電力制御の「オン状態」の処理を行うバックグランドモジュールやタスク５３０を有する。
【０１６２】
ステップ８２０では、ＧＰＳ受信機制御モジュール５０２は、イベント・キューにイベントがあればそれに応じ、ＮＡＶモジュール５１４に属するナビゲーション処理を、予め定めた期間（１０００ミリ秒単位など）で実行するようにスケジューリングする。処理はステップ８２２で完了するように示されているが、実際には処理は連続して実行してもよいし、初期化に際して、および／または、リセット状況中に実行してもよい。
【０１６３】
図９に、位置測定値を取得するための、図５に示す異なるモジュール間での通信のシーケンス図９００を示す。ＧＰＳ受信機制御モジュール５０２はＡＴＸ制御モジュール５１８に生の位置測定値の更新を要求する（９０２）。ＡＴＸ制御管理モジュール５１８は、ＡＴＸ制御サブ・モジュール６０２にアクセスし、ＡＴＸ制御サブ・モジュール６０２はハードウエアにアクセスして生の位置測定値を取得する。ＡＴＸ制御サブ・モジュール６０２は更新を返し（９０６）、ＡＴＸ制御管理モジュール５１８は、更新ステータスをＧＰＳ受信機制御モジュール５０２に送信する（９０８）。ＧＰＳ受信機は１００ｍｓおきに更新を求めるように設定されている。ＧＰＳ受信機制御モジュール５０２は次いで、「生の測定値要求（Req Raw Meas）」メッセージをＡＴＸ制御管理モジュール５１８に送信して生の位置測定値を要求する。ＡＴＸ制御管理モジュール５１８は次いで、生の位置測定値を「生の測定値返答（Return Raw Meas）」メッセージ９１０で返す。ＧＰＳ受信機制御モジュール５０２は次いで、「生の測定値返答（Return Raw Meas）」９１２で示されるＡＴＸ追跡ステータスに基づいて復旧状況を処理する。ＧＰＳ受信機制御モジュール５０２は次いで、生の位置測定値が利用可能である旨を、ＵＩＧＰＳモジュール５２６に対して「ＯＫを押して送信（Push OK TO Send）」メッセージ９１４で指示する。
【０１６４】
新たな衛星機データが利用可能であることがＡＴＸ制御管理モジュール５１８から示された場合には、ＧＰＳ受信機制御モジュール５０２は衛星機データ・モジュール５１０に対し「ＳＶデータ更新（Update SVData）」メッセージ９１６を送信する。衛星機データ・モジュール５１０は次いで、「ＳＶデータ要求（Req SVData）」メッセージ９１８をＡＴＸ制御管理モジュール５１８に送信することによってＳＶデータを要求する。ＡＴＸ制御管理モジュール５１８はＳＶデータ・モジュール５１０に対し、「ＳＶデータ返答（Return SVData）」メッセージ９２０を送信することによってＳＶデータを返す。ＳＶデータ・モジュール５１０は次いで、更新ステータスメッセージ９２２をＧＰＳ受信機制御モジュール５０２に対して送信する。ＳＶデータ・モジュール５１０からのステータスメッセージ９２２は、イベントを発生させる。そのイベントは、ユーザ・インターフェースＧＰＳモジュール５２８によって処理されるものであり、新規エフェメリスデータが利用可能であることを識別するイベント９２４及び新規アルマナックデータが利用可能であることを識別するイベント９２６である。
【０１６５】
新たな静止衛星型衛星航法補強システム（ＳＢＡＳ）データが利用可能であれば、ＧＰＳ受信機制御モジュール５０２は「ＳＢＡＳ更新（Update SBAS）」メッセージ９２６をＤＧＰＳモジュール５１６に対して送信する。するとＤＧＰＳモジュール５１６は「ＳＢＡＳデータ要求（Req SBASdata）」メッセージ９３０をＡＴＸ制御管理モジュール５１８に対して送信する。ＡＴＸ制御管理モジュール５１８は「ＳＢＡＳデータ要求（Req SBASdata）」９３０を処理する。そしてＡＴＸ制御管理モジュール５１８は、ＤＧＰＳモジュール５１６に対して「ＳＢＡＳデータ返答（Return SBASdata）メッセージ９３２で応答する。
【０１６６】
図１０は、図５のモジュール間での復旧状況のシーケン図１０００を示す。復旧に先立って支援ソースに対する一連のテストが実行され、支援ソースに基づいて状況が設定される。現行の具体例では、すべてのテストが完了してからそれぞれのモジュールが呼び出される。復旧状況が存在すれば、ＧＰＳ受信機制御モジュール５０２は「ＢＥＰ復旧（BEP Recovery）」メッセージ１００２をＢＥＰモジュール５１４に送信する。ＢＥＰモジュール５１４は、ＧＰＳ受信機制御モジュール５０２に送信される「復旧ステータス（recovery status）」メッセージ１００４で応答する。ＧＰＳ受信機制御モジュール５０２は、「ＢＥＰ更新（BEP Update）」メッセージ１００６がＢＥＰモジュール５１４に送信されたときにＢＥＰモジュール５１４を更新する。強制更新モジュール５１４は次いで、「ＢＥＰ更新応答（BEP update Response）」メッセージ１００８を送信することによりＧＰＳ受信機制御モジュール５０２に応答する。同様に、ＧＰＳ受信機制御モジュール５０２は、「ＶＬ更新（VL Update）」メッセージ１０１４を送信して可視ＳＶリスト・モジュール５０８を更新する。すると可視ＳＶリスト・モジュール５０８は更新され、肯定応答１０１６がＧＰＳ受信機制御モジュール５０２に返される。データ保全状況のいくつかの例には、ＧＰＳ受信機コントローラによって起動される復旧状況、外部支援利用可能、内部支援利用可能、および周波数クロック要更新、などがある。
【０１６７】
図１１には、図５のＡＴＸ制御モジュール５１８の捕捉および追跡予備測位設定のシーケンス図１１００が示されている。ＧＰＳ受信機制御モジュール５０２は「シーケンス番号取得（get sequence number）」メッセージ１１０２、１１０４および１１０６をＢＥＰモジュール５２４、ＳＶデータ・モジュール５１０および可視リスト・モジュール５０８に送信する。ＢＥＰモジュール４２４、ＳＶデータ・モジュール５１０および可視ＳＶリスト・モジュール５０８はそれぞれ、ＧＰＳ受信機制御モジュール５０２に対して「シーケンス応答メッセージ（sequence response message）」１１０８、１１１０および１１１２で確実に応答する。
【０１６８】
ＧＰＳ受信機制御モジュール５０２は、他のモジュールから受信したシーケンス番号のいずれかに変更があるかどうかを判定する。シーケンス番号のいずれかに変更がある場合、または、５秒が経過した場合は、「予備測位更新（update prepositioning）」メッセージ１１１４がＢＥＰモジュール５２４に送信される。ＢＥＰモジュール５２４は肯定応答メッセージ９１６で応答する。
【０１６９】
ＧＰＳ受信機制御モジュール５０２は「ＡＴＸ予備測位実行（do ATX prepositioning）」メッセージ１１１８をＡＴＸ制御モジュール５１８に送信する。ＡＴＸ制御モジュール５１８は、「ＡＴＸ予備測位実行（do ATX prepositioning）」メッセージ１１１８に応答して、「可視リスト取得（get visible list）」メッセージ１１２０を可視ＳＶリスト・モジュール５０８に対して送信する。可視ＳＶリスト・モジュール５０８は、可視衛星のリストを含む応答メッセージ１１２２をＡＴＸ制御モジュール５１８に送信する。ＡＴＸ制御モジュール５１８は次いで「取得／消去（get/clear）」メッセージ１１２４をＳＶデータ・モジュール５１０に送信することにより、ＳＶデータ・モジュール５１０内の新たなエフェメリス・データのビットマップを取得または消去する。ＳＶデータ・モジュール５１０は次いで「肯定応答（acknowledge）」メッセージ１１２６をＡＴＸ制御管理モジュール５１８に返信する。
【０１７０】
ＡＴＸ制御モジュール５１８はまた、ＢＥＰモジュール５２４に「予備測位時間取得（get preposition time）」メッセージ１１２８でアクセスし、「予備測位時間応答（preposition time response）」メッセージ１１３０で予備測位時間を受け取る。ＡＴＸ制御管理モジュール５１８が「メモリ・モード取得（get memory mode）」メッセージ１１３２をデータ制御モジュール５２２に送信し、「メモリ・モード応答（memory mode response）」メッセージ１１３４を受け取ることによって、メモリ・モードが決定される。ＡＴＸ制御管理モジュール５１８はまた「ＳＢＡＳ  ＰＲＮ番号取得（get SBAS PRN number）」メッセージ１１３６（静止衛星型衛星航法補強システム擬似乱数を取得するものである）を介してＤＧＰＳモジュール５１６にアクセスしてもよく、そのＤＧＰＳデータは、ＡＴＸ制御管理モジュール５１８によって、「ＳＢＡＳ  ＰＲＮ応答（SBAS PRN response）」メッセージ１１３８で受け取られる。ＡＴＸ制御管理モジュール５１８による他のモジュールからの予備測位データのアクセスは、同時に起こってもよいし如何なる順番で起こってもよい。予備測位データがＡＴＸ制御管理モジュール５１８によって一旦取得されると、ＡＴＸ制御管理モジュール５１８は、ＡＴＸ命令１１４０によってＡＴＸ制御サブ・モジュール６０２にアクセスする。
【０１７１】
次に図１２に、図５のナビゲーション・モジュールとサービス品質モジュール５０６のシーケンス図１２００を示す。ＧＰＳ受信機制御モジュール５０２は「ＮＡＶ測定値状況（condition NAV meas）」メッセージ１２０２をＡＴＸ制御管理モジュール５１８に送信して、ＧＰＳ受信機１００の最初の位置固定およびその後１秒おきのナビゲーション測定値を取得する。他の具体化では、ナビゲーション測定値は他のイベントによって、または他の間隔で発生してよい。ＡＴＸ制御管理モジュール５１８はナビゲーション測定値１２０４で応答する。ＧＰＳ受信機制御モジュール５０２は次いで、ＵＩＧＰＳモジュール５２６によって実行される測定値更新（MEASUPDATE）イベント１２０６を発生する。ＧＰＳ受信機制御モジュール５０２はまた、ＤＧＰＳ／ＳＢＡＳ一秒処理（DGPS/SBAS One Second Processing）メッセージ１２０８をＤＧＰＳモジュール５１６に対し送信する。ＤＧＰＳモジュール５１６はＳＢＡＳデータ１２１０によってＧＰＳ受信機制御モジュール５０２に応答する。ＧＰＳ受信機制御モジュールは次いでＮＡＶ条件とＳＢＡＳデータをナビゲーション・モジュール５１４に対し「ＮＬメイン（NL_Main）」メッセージ１２１２で送信する。
【０１７２】
ＮＡＶモジュール５１４は次いで受信情報に基づいて動作し、「ナビゲーション測定値取得（Get Navigation Measurement）」メッセージ１２１４を送信することによりナビゲーション・データをＡＴＸ制御管理モジュール５１８から取得する。ＡＴＸ制御管理モジュール５１８は共有メモリにアクセスしてナビゲーション・データを取り出す。ＡＴＸ制御管理モジュール５１８は次いでＮＡＶモジュール５１４に応答する（１２１６）。ＮＡＶモジュール５１４は次いでＧＰＳ受信機制御モジュール５０２に通知１２１８を送信する。
【０１７３】
ＧＰＳ受信機制御モジュール５０２は次いで「ＮＬステータス取得（NL get Status）」メッセージ１２２０をＮＡＶモジュール５１４に送信する。ＮＡＶモジュール５１４は、ＮＡＶモジュール５１４のステータスを含むメッセージ１２２２で応答する。ＧＰＳ受信機制御モジュール５０２はまた、「ステータス取得（Get Status）」メッセージ１２２４をＮＡＶモジュール５１４に送信し、ＮＡＶモジュール５１４は「Ｎａｖ状態（NavState）」メッセージ１２２６で応答する。
【０１７４】
ＧＰＳ受信機制御モジュール５０２は支援情報を、そのようなデータが利用可能な場合は３０秒おきに（別の実施例ではこれは非同期または可変速度でよい）受け取ることができる。ＧＰＳ受信機制御モジュール５０２は、「支援（Aiding）」メッセージ１２２８を支援モジュール５１２に送信し、ＢＥＰモジュール５２４に対する「ＢＥＰ位置更新（BEP update position）」メッセージ１２３０によって位置データを更新する。ＧＰＳ受信機制御モジュール５０２はまた、メッセージ１２３２を支援モジュール５１２に対して送信してＢＥＰモジュール５２４内の周波数データを更新する。同様に、支援メッセージ１２３４が支援モジュール５１２に送信されて、ＢＥＰ５２４内の時間を「ＢＥＰ時間更新（BEP update time）」メッセージ１２３６によって更新する。
【０１７５】
ＧＰＳ受信機制御モジュール５０２はまた、「システムからＲＴＣ設定（RTC Set from system）」メッセージ１２３８をリアルタイム・クロック（ＲＴＣ）１１６に対して送信してもよい。好適な方法は、ＢＥＰモジュール５２４が、更新が発生したときにＲＴＣ１１６を呼び出すことである。ＲＴＣ１１６は次いで、「時間、クロック取得（Get Time, Clock）」メッセージ１２４０をＢＥＰモジュール５２４に対して送信して時間情報を要求する。ＢＥＰモジュール５２４はＲＴＣ１１６に対して時間調整値１２４２で応答する。
【０１７６】
ナビゲーション処理が完了すると、ＧＰＳ受信機制御モジュール５０２は「ＮＡＶ完了（NAV COMPLETE）」イベント１２４４を発生して、ＵＩＧＰＳ５２６に対しナビゲーション処理が完了したことを通知する。さらに、ＧＰＳ受信機制御モジュール５０２は「ＱｏＳサービス（QoS Service）」メッセージをＱｏＳモジュール５０６に送信してＧＰＳ受信機１００のためのサービス・パラメータを更新する。ＱｏＳモジュール５０６は「ＮＬステータス取得（NL GetState）」メッセージ１２４６をナビゲーション・モジュール５１４に送信する。ＮＡＶモジュール５１４は、ＱｏＳモジュール５０６に対してステータス情報を含む１２４８で応答する。ナビゲーションステータス情報を取得すると、ＱｏＳモジュール５０６は「ＮＡＶ測定値取得（Get NAV Meas）」メッセージ１２５０をＡＴＸ制御管理モジュール５１８に対して送信する。ＡＴＸ制御管理モジュール５１８はＱｏＳモジュール５０６に対しナビゲーション測定値１２５２で応答し、次いで支援において利用する可能性のある情報１２５４を支援モジュール５１２に対し送信する。
【０１７７】
図１３には、図４の電力管理モジュール４２０での電力管理のシーケンス図１３００が示されている。ＧＰＳ受信機制御モジュール５０２は「PＭ＿ＡＰＭ」メッセージ１３０２を電力管理モジュール５２０に送信して、高性能電力管理（ＡＰＭ）を起動する。ＡＰＭ電力制御と細流電力制御メンテナンスは現行の具体例では毎秒発生するが、他の具体化ではメンテナンスの期間は異なる期間であってよい。電力管理モジュール５２０は「捕捉ステータス取得（Get Acq Status）」メッセージ１３０４をＡＴＸ制御管理モジュール５１８に送信する。ＡＴＸ制御管理モジュール５１８は捕捉ステータス１３０６で応答する。返信されるステータスは、ＡＰＭ  直ちに電力を下げる（APM power down now）、ＴＰ  直ちに電力を下げる（TP power down now）または、ＴＰオン状態（TP stay awake）である。ステータスは、電力管理モジュール５２０からＧＰＳ受信機制御モジュール５０２へ、「ステータスを返答（Return Status）」メッセージ１３０８で受け継がれる。ＧＰＳ受信機制御モジュール５０２は「ＯＫを押して確定（偽）（PushOKtoFix（偽））」イベント１３１０で電力管理モジュール５２０に通知する。
【０１７８】
ＧＰＳ受信機制御モジュール５０２は次いで「ＬＰサイクル終了（LP Cycle Finished）」メッセージ１３１２および「ＬＰスリープＯＫ（LP OKToSleep）」メッセージ１３１４を電力管理モジュール５２０に送信して、ＧＰＳ受信機１００が電力制御を読み取ったことを電力管理モジュール５２０に対して通知する。電力管理モジュール５２０は次いで、１３１６でＧＰＳ受信機制御モジュール５０２に対し応答する。ＧＰＳ受信機制御モジュール５０２は次いで「ＬＰ  プロセッサをスリープに設定（LP Set Processor Sleep）」メッセージ１３１８を電力管理モジュール５２０に送信し、電力制御が起動したことを通知する。
【０１７９】
図１４には、図５のバックグランドタスク・モジュール５３０のシーケンス図１４００が示されている。ＧＰＳ受信機制御モジュール５０２は「Ｏｓスケジュールタスク（Os Schedule Task）」メッセージ１４０２をオペレーティング・システム（ＯＳ）サービス・モジュール１４０２に送信する。現行の具体化では、「Ｏｓスケジュールタスク」メッセージ１４０２は毎秒送信されてよい。ＯＳサービス・モジュール１４０２は次いで「タスク起動（Activate Task）」メッセージ１４０４をＢＧタスク・モジュール５３０に送信する。ＢＧタスク・モジュール５３０は次いで「ＳＶＳＣメンテナンス（SVSC Maintenance）」メッセージ１４０６をＳＶデータ・モジュール５１０に送信する。「ＳＶＳＣメンテナンス」メッセージ１４０６はＳＶデータ・モジュール５１０を更新させる／削除させる。応答１４０８がＳＶデータ５１０からＢＧタスク・モジュール５３０に送信される。ＢＧタスク・モジュール５３０は次いで「ＶＬメンテナンス（VL Maintenance）」メッセージ１４１０を可視ＳＶリスト・モジュール５０８に送信する。可視ＳＶリスト・モジュール５０８は次いで応答１４１２をＢＧタスク・モジュール５３０に送信する。同様に、ＢＧタスク・モジュール５３０は、位置、時間およびクロック情報を含む「バッテリバックアップ（Battery Backup）」メッセージ１４１４を不揮発性メモリ（ＮＶＭ）１４０４に送信する。ＮＶＭ１４０４は「位置、時間、クロック取得（Get Pos, Time, Clock）」メッセージ１４１６をＢＥＰモジュール５２４に送信し、ＢＥＰモジュール５２４はメッセージ１４１８でＮＶＭ１４０４に応答する。ＮＶＭ１４０４は、ＧＰＳ受信機１００の電力が下げられたとき、または、サブシステムがすべてあるいは部分的にオフにされている省電力状態にあるときにデータを保存するために用いられる種類のメモリである。ＢＧタスク・モジュール５３０はまた、ＵＩＧＰＳモジュール５２０を、毎秒などの周期的な間隔で「ＵＩ１秒タスク（UI Once Sec Task）」メッセージ１４２０で更新し、ＵＩＧＰＳモジュールは更新１４２２を肯定応答する。
【０１８０】
図１５は、図２の信号処理サブシステム２０４のフロー図１５００である。信号処理サブシステム２０４は、信号処理サブシステム２０４内でマスタ制御ステートマシン１５０６を有効化するバッファｓｓ２０n１５０４にラッチされるｓｅｑ＿ＳＳ２ＯＮ信号１５０２を受信する。マスタ制御ステートマシン１５０６は、信号処理サブシステム・ハードウエアからの現在情報と、チャンネル・ランダム・アクセス・メモリ（ＲＡＭ）からの命令を受信する。マスタ制御ステートマシン１５０６はまた、ハードウエアが現チャンネルの処理を終了した際に信号「ｓｓ２終了（ss2 done）」を受信する。
【０１８１】
マスタ制御ステートマシン１５０６は、ハードウエアをオンにしてチャンネルＲＡＭへのアクセスを要求してもよい。ＲＡＭ内のチャンネルは、６４ビットメモリの１２８ワードと、ひとつのチャンネルから次にリンクする複数チャンネルへのポインタである。チャンネルはリンクされたリストとして構成されていてもよいし、環状でもよい。チャンネルＲＡＭからのデータは、信号処理サブシステム２０４によって、入力レジスタ１５０８において受信される。
【０１８２】
信号処理サブシステム２０４、ＦＦＴサブシステム２０４およびソフトウエアの動作を制御するセマフォ・ワード１５１０は更新され、予め定められたビットがセマフォ・ワード１５１０内に設定されている場合には、信号処理サブシステム２０４内で信号処理が開始する。セマフォ・ワードは、サブシステム間でのイベントや他の事象を通知するために用いられるビット群である。データ処理の休止を要求するイベントが発生した場合、休止レジスタ１５１２にビットが設定される。休止レジスタ１５１２は、信号処理サブシステム２０４をデバッグするために用いることができ、また、ソフトウエアによって、信号処理サブシステム２０４を既知の状態に更新するために用いることができる。
【０１８３】
図１６は、図１５のマスタ制御ステートマシン１５０６の説明図である。マスタ制御ステートマシン１５０６は、マスタ制御ステートマシンがオン状態１６０２であるときに開始する。１６０２でオンならば、１６０４でチャンネル重複が発生していないか確認される。チャンネル重複確認１６０４では、ＦＦＴサブシステム２０６によって用いられるチャンネルＲＡＭのコンテキストを信号処理サブシステム２０４が上書きしていないことを確認する。１６０４で重複が発生していなければ、１６０６でセマフォ・ワードが確認される。そうでなければ、信号処理サブシステム２０４はＦＦＴサブシステム２０６がコンテキスト内にある状態になるまで停止する。
【０１８４】
セマフォ値は１６０８で確認され、チャンネル休止ビットが設定されていれば、１６１０で休止フラグがセットされ、１６０６でセマフォ・ワードが再び読み出される。チャンネル休止は、ソフトウエアが再始動するまで信号処理サブシステム２０４の動作を静止させるために用いられる。休止は、信号処理サブシステム２０４をデバッグするときに用いられることができ、または、信号処理サブシステム２０４を既知の状態に更新するために用いられることができる。１６０８で、セマフォ値がチャンネルオフ状態を示す場合は、１６１２でチャンネルベースを更新することによって新たなチャンネルが選択される。セマフォ値が、信号処理サブシステムが停止されておらず、かつ休止されていないことを示す場合には、１６１４で動作状態のチャンネルが設定またはクリアされる。
【０１８５】
１６１６では、信号処理サブシステム２０４がオンにされるべきか否かを決定するための確認が行われる。オンにされるべきでない場合には、１６１８で、チャンネルＲＡＭにオーバーフローが発生したか否かの確認が行われる。１６１８でオーバーフローが発生していない場合には、１６２０で、現在のチャンネルが停止状態にされる。一方、１６１８でオーバーフロー状態が確認された場合には、セマフォ・ワード内のビットが設定されて、１６２２で割り込みが有効化される。信号処理サブシステム２０４がオンにされるべき場合には、選択されたチャンネルに対して処理を実行するために、１６２４で入力バッファ（ｆｉｆｏ１およびｆｉｆｏ２）と信号処理サブシステムが初期化される。信号処理サブシステム２０４は、１６２６で、所定量の時間（典型的には、選択されたチャンネルを処理するに十分な長さである）にわたり実行される。所定量の時間はソフトウエアによって調整されてよく、また、ＧＰＳ受信機１００の動作モードに依存する。
【０１８６】
１６２８では、相互相関を実行する必要があるか否かの決定が行なわれる。相互相関は最初の偶数の実行の後に一度実行する。１６２８で、相互相関の実行が必要の場合には、１６３０で、信号処理サブシステム２０４とｆｉｆｏ２が、相互相関のために初期化される。相互相関は１６３２で実行され、次いで１６３４で、さらなる衛星機が処理されるべきか否かの決定が行なわれる。処理されるべき場合には、ステップ１６３０が再び実行される。そうでない場合には、１６３６で、処理された信号が有効であることを示すようにセマフォが更新される。
【０１８７】
相互相関が１６３６で完了するか、１６２８で既に実行し終えている場合には、１６３８で、処理すべきさらなる周波数の確認（ｌｓｂ／ｍｓｂ、奇数、偶数）が行なわれる。１６３８で、処理すべき他の周波数がある場合には、１６４０で、位置ポインタが、処理を必要とする周波数に合わされ、１６２４で、未処理のチャンネルに対して信号処理サブシステム２０４とｆｉｆｏ１とｆｉｆｏ２が初期化される。他方、１６３８で処理すべき周波数がない場合には、１６２４でシャットダウン状態情報が保存され、１６２２でセマフォ・ワードが更新されて割り込みが有効化される。１６０２で信号処理システム２０４がオン状態にない場合は、信号処理システム２０４は１６４４でリセットされる。
【０１８８】
図１７は、図２のＦＦＴサブシステム２０６に対するマスタ制御ステートマシン１７００の説明図である。１７０２でＧＰＳ受信機がオン状態の場合は、セマフォ・ワードが１７０４で読み出される。他方、ＧＰＳ受信機がオン状態でない場合は、１７０６でリセットが発生する。１７０８で、セマフォ値がチャンネル休止を示している場合には、１７１０でＦＦＴサブシステム２０６に対して休止フラグが設定され、１７０４でセマフォ・ワードが再び読み出される。１７０８で、セマフォ値が、チャンネルがオンでないことを示す場合には、１７１２で、信号処理サブシステム２０４内でチャンネルが停止しているか否かの判断が行なわれる。１７１２では、チャンネルが停止していない状態となるまで再度判断され、１７１４でチャンネル・ポインタが更新される。
【０１８９】
１７０８で、セマフォ値が、チャンネルはオンでありかつ休止していないことを示す場合には、オンであるチャンネルが１７１６で起動され、そのチャンネルのためにｆｉｆｏ２とＦＦＴサブシステム２０６が１７１８で初期化される。１７２０では、ｆｉｆｏ２において（信号処理サブシステム２０４からの）データが利用可能かどうかの判断が行なわれる。１７２０でデータが利用可能でない場合は、信号処理サブシステム２０４内のチャンネルが停止しているか否かの確認が１７２２で行われ、データが利用可能になるまで１７２０で再確認が行なわれる。１７２２で、信号処理サブシステム２０４内のチャンネルが停止していないことが確認された場合には、レポート・コンテキストが有効化されていること、及び、ＮＣＯが補正値で更新されていることの検証の確認が１７２４で行なわれる。有効化されている場合には、次いでレポート「コンテキスト」が１７２６で生成される。そして、１７２８で、チャンネルＲＡＭ内のＮＣＯ値を更新するためにハードウエア追跡ループとソフトウエア支援が用いられる。１７２４で、レポート・コンテキストが有効化されていない場合、または、補正値で更新されたＮＣＯの場合には、１００ミリ秒レポートの生成が必要か否か判断するための確認が１７３０で行なわれる。１７３０でレポートが生成される必要があると確認された場合には、１７３２でレポートが生成され、１７２８でハードウエア追跡ループおよびソフトウエア支援が更新される。１７３４でシャットダウン状態情報が保存され、１７３６でセマフォ・ワードが更新され割り込みが有効化される。次いで１７３８で現在のチャンネルを終了し、１７１４でチャンネル・ポインタが更新される。
【０１９０】
１７２０でｆｉｆｏ２データが利用可能であり、１７４０で相互相関がオンの場合には、１７４２で相互相関データに対して確認が行われる。１７４２で相互相関データが利用可能の場合には、１７４４で相互相関とＦＦＴ３３２が有効化され、１７４６で次の相互相関データポインタが読み出される。次いで１７４８で、ＦＦＴ３３２が終了したか否かの確認が行われる。同様に、１７４０で相互相関がオンでない場合には、１７５０でＦＦＴ３３２が１つのＰＤＩ（ＦＦＴ実行のために必要とされるデータの単位）に対して有効化される。また、１７４２で相互相関のデータが利用可能でない場合にも、１７５０でＦＦＴ３３２が１つのＰＤＩに対して有効化される。
【０１９１】
１７４８でＦＦＴが終了していない場合には、それが終了するまで確認が繰り返される。１７４８でＦＦＴがひとたび終了すると、１７５２で、ＰＤＩデータを持つｆｉｆｏが処理されたことの検証の確認が行われる。ＰＤＩデータのｆｉｆｏが完全に処理されていない場合は、１７５４で終了コードが確認される。終了コードが存在しない場合には、１７５６で信号処理サブシステム２０４とＦＦＴサブシステム２０６のターンオフ・フラグが設定され、ｆｉｆｏ２データが利用可能であるか否かを判断するための別の確認が１７２０で行われる。他方、１７５６で終了コードが存在する場合には、ｆｉｆｏ２データが利用可能であるか否かを判断するための別の確認が１７２０で行われる。
【０１９２】
ＰＤＩデータのｆｉｆｏが処理された場合には、１７５８で非コヒーレント合算（ＮＣＳ）が終了したか否かの確認が行わる。この確認は、ＰＤＩデータのＮＣＳが完了するまで繰り返される。１７５８でＮＣＳがひとたび完了すると、ＰＤＩの数と奇数／偶数の周波数カウンタが１７６０で更新される。次いで１７６２でハードウエア追跡ループが更新され、ＰＤＩデータが休止されたか否かの確認が１７６４で行なわれる。ＰＤＩデータが休止の場合には、１７６６で休止フラグが設定される。ひとたび休止フラグがクリアされるか、または１７６４でＰＤＩが休止でないことが確認された場合には、１７６８で終了コードの確認が行われる。１７６８で終了コードが存在しない場合には、ｆｉｆｏ２データが利用可能であるか否かの確認が１７２０で行われる。他方、１７６８で終了コードが検出された場合には、信号処理サブシステム２０４とＦＦＴサブシステム２０６に対してターンオフ・フラグが１７７０で設定され、続いてｆｉｆｏ２データが利用可能であるか否かの確認が行われる。
【０１９３】
図１８は、図２のメモリ・サブシステム２０８を用いた、図２の信号処理サブシステム２０４と図２のＦＦＴサブシステム２０６との間の通信を説明するチャンネルシーケンシング制御図１８００である。信号処理サブシステム２０４が、チャンネル１８０２、１８０４、１８０６、１８０８、１８１０および１８１２の環状リンクリストで示されている。「ＦＩＦＯゾーン」は、メモリ・サブシステム２０８内の領域である。この領域は、信号処理サブシステム２０４およびＦＦＴサブシステム２０４がデータを処理するために用いるレジスタ１８１６およびポインタ１８１８に加えてバッファ・ポインタ１８１４を含んでいる。メモリ内の一領域が、異なるチャンネルに対応付けられたセマフォを含むチャンネル記録１８２０に対して割り当てられている。同様に、ＦＦＴサブシステム２０６は、同じ複数のチャンネル１８０２、1８０４、１８０６、１８０８、１８１０および１８１２に対して処理を実行する。「ＦＩＦＯゾーン」２０８は、バッファ１８２２、ポインタ１８２４およびレジスタ１８２６も有している。
【０１９４】
信号処理サブシステム２０４は、ＦＦＴサブシステム２０６とは独立して、その対応付けられたチャンネル１８０２、1８０４、１８０６、１８０８、１８１０および１８１２を処理する。唯一の要件は、チャンネルは、ＦＦＴ２０６サブシステムによって処理される前に信号処理サブシステム２０４によって処理されなければならないということである。信号処理サブシステム２０４がＦＦＴサブシステム２０６より先んじた場合、ＦＦＴサブシステム２０６のチャンネル内のデータは、処理される前に上書きされる。従って、重複状態の発生を防止する重複ルールが確立されソフトウエア内で実施される。
【０１９５】
図１９は、図１５のＦＦＴサブシステムによって用いられるメモリを信号処理サブシステムが上書きすること防止する重複ルールのリスト１９００を示す図である。重複ルールのリストはソフトウエアで実装される。第１のルール１９０２は、信号処理サブシステム２０４とＦＦＴサブシステム２０６は互いに重複してはいけないということである。
【０１９６】
第２のルール１９０４は、ＦＦＴサブシステム２０６が現在あるチャンネルに対して動作中の場合には、信号処理サブシステム２０４はそのチャンネルに入る（すなわち動作する）ことはできないということである。このルールは、信号処理サブシステム２０４がＦＦＴサブシステム２０６と重複することを防止する。
【０１９７】
第３のルール１９０６は、信号処理サブシステムが現在あるチャンネルに対して動作中の場合には、ＦＦＴサブシステム２０６はそのチャンネルから出ることはできないということである。このルールは、ＦＦＴサブシステム２０６が信号処理サブシステム２０４と重複することを防止し、信号処理サブシステム２０４が動作中の場合には、データが利用可能になってからそのデータを処理することをＦＦＴサブシステム２０６に対して可能にする。
【０１９８】
第４のルール１９０８は、信号処理サブシステム２０４は、ソフトウエア補正時間を含めて、処理するようにプログラムされたミリ秒数を処理するということである。このルールは、処理が完了するまで信号処理サブシステム２０４をチャンネルに維持する。
【０１９９】
第５のルール１９１０は、ＦＦＴサブシステム２０６はそのバッファ内で利用可能である限りの数のデータを処理するということである。このルールは、信号処理サブシステム２０４が動作中でない場合には格納されたバッファ・ポインタまで、または、信号処理サブシステム２０４が完了している場合には信号処理サブシステム２０４のポイントまで、ＦＦＴバッファ内のデータをＦＦＴサブシステム２０６に処理させる。
【０２００】
第６のルール１９１２は、信号処理サブシステム２０４およびＦＦＴサブシステム２０６は、休止セマフォまたは休止フラグによって処理継続を止められるということである。このことは、信号処理サブシステム２０４が、実行されているＦＦＴサブシステム２０６のコンテキスト（チャンネル）によって停止される、または、実行されているＦＦＴサブシステム２０６のＰＤＩデータによって停止されることを可能にする。ＦＦＴサブシステム２０６はまた、ＦＦＴサブシステム２０６のＰＤＩデータが終了すれば停止されることもある。
【０２０１】
チャンネル・ポインタは、異なるサブシステムによってアクセスされる両方のチャンネルが同一であるか否かを判断するために利用されることができる。さらに、コヒーレント・バッファ・ポインタと動作中のフラグを用いて、信号処理サブシステム２０４とＦＦＴサブシステム２０６が同一のバッファにあるか否かを判断してもよい。共有バッファの使用は、２つの異なるチャンネルが同一のバッファで動作中であることを意味してよく、「ＦＩＦＯの観点」からは、同一のチャンネルがそこにアクセスを試みたかのように扱われてよいことを意味してよい。
【０２０２】
図２０は、図２のサブシステム間の通信とソフトウエアのためのセマフォと割り込みの構造ウエアの説明図２０００である。メモリ内の位置が、有効化休止ビット２００２のために特定されている。ビット数はサブシステムの数に基づいている。すなわち、信号処理サブシステム２０４に対して一のビットが関連付けられており、ＦＦＴサブシステム２０６に対して別の一のビットが関連付けられている。
【０２０３】
３つの３２ビットワード２００４、２００６および２００８が、セマフォおよび割り込み通信のために特定されている。ワード／ビットは、上位にアドレスされた３２ビットワード２００４が２つの１６ビットサブワードに分割された状態で予め定められた順序に整列されている。第１のサブワード２０１０は、ＦＦＴサブシステム２０６を制御するソフトウエアのためのセマフォおよび割り込みビットを備えており、第２のサブワード２０１２は、信号処理サブシステム２０４のためのセマフォおよび割り込みを制御するソフトウエアに関連付けられている。次の３２ビットワード２００６は、ソフトウエアのためのセマフォと割り込みを備える。別の３２ビットワード２００８は割り込みマスクのためのものである。選択されたビットをメモリ２００４、２００６にわたって設定し、マスク２００８を用いることにより、メモリ間での２値の「論理積（and）」および「論理和（or）」演算で通信が可能となる。
【０２０４】
図２１は、図２０の割り込み構造の割り込みマスクとセマフォのビットレベル説明図２１００である。ビットはサブシステムまたはウエアソフトウエアと関連付けられており、その実体によってのみ書き込み可能である。換言すると、ＦＦＴサブシステム２０６のみがＳＳ３ビットに書き込むことができ、信号処理サブシステム２０４のみがＳＳ２ビットに書き込むことができる。例えば、ＦＦＴサブシステム２０６のハードウエア内にエラーが発生した場合、セマフォ２００６内のビット５９（２１０２）は「１」に設定される。ＦＦＴサブシステム２０６内のソフトウエアに関連付けられたセマフォ２０１０のビット２７（２１０４）は「０」のままであり、それらのビットへの「論理和（or）」演算は「１」となる。すなわち、エラー状態が通知される。割り込み許可ビット２７（２１０６）が「１」に設定されると、割り込みパルスが送信される。ソフトウエアによるエラー状態の肯定応答は、ソフトウエアがワード２０１０内のビット２７（２１０４）に「１」を設定し、それらのビットの「排他的論理和」がゼロであるときに発生する。こうして、サブシステム間の通信の手法が、最低限の通信オーバーヘッドと少ないメモリ使用で達成される。
【０２０５】
信号処理サブシステム２０４とＦＦＴサブシステム２０６を制御するソフトウエアは、ＧＰＳ受信機１００が追跡モードにあるときにハードウエア追跡に対してソフトウエア支援を提供してもよい。ソフトウエア支援は、衛星の探索を支援するために、図３のＮＣＯ３１２を向上させる。ソフトウエア支援は、値の差分を格納してセマフォ通信を介してその変化を備えさせることによって、クロックを進めたり遅らせたりする。差分はチャンネル記録に格納され、チャンネルまたはコンテキストが処理されるときに用いられる。
【０２０６】
図２２は、Ｔ１位相にある図２の信号処理サブシステム２０４の時間調整のフローチャート２２００である。時間調整は２２０２で、チャンネル記録に格納された現在時間への変更分（差分時間値）を備えて開始する。信号処理サブシステム２０４は、時間が直接調整されることはできないような速度で動作している。２２０４で、ソフトウエアは、信号処理のサブシステムのセマフォビットを用いて、Ｔ１位相調整の準備ができていることを通知する命令を送信する。信号処理サブシステム２０６に対するソフトウエアビットが設定される。信号処理サブシステム２０６により差分時間値が取得され、図３のＮＣＯ３１２を調整するために用いられる。信号処理サブシステム２０６のハードウエアは、２２０８で、調整が実行されたコンテキストの最後で、ハードウエア信号処理サブシステムのセマフォビットを設定することによってソフトウエアに応答する。フローチャート２２００は２２１０で終了するものとして示されているが、実際には、フローは付加的なステップを有してよく、または、繰り返されてもよい。
【０２０７】
図２３は、Ｔｌ位相にある、図２のＦＦＴサブシステム２０６の時間調整のフローチャート２３００である。ＦＦＴサブシステム２０６も、単純に時間を変更することは実用的ではないような速度で動作している。時間変更のための差分時間値はメモリに格納された図４のソフトウエア追跡ループ４０８によって生成される。フローチャート２３００は２３０２で開始する。２３０４でソフトウエアが、ＦＦＴサブシステムのソフトウエア・セマフォビットを用いてＴ1／ＰＤＩ位相調整を起動する。２３０６で、ＦＦＴサブシステムのハードウエアは、ＦＦＴサブシステムによって処理された最初のＰＤＩの最後に位相調整を実行する。２３０８で、ハードウエアはＴ１の１回使用により位相調整を実行し、アドレス・ポインタがインクリメントされる。２３１０で、ＦＦＴサブシステム２０６のハードウエアは、現在のコンテキストの最後にサブシステムのハードウエア・セマフォビットを設定することによって位相調整命令に対して応答する。２３１２でコンテキスト・レポートが許可されると、ＦＦＴサブシステム２０６のハードウエアは２３１４でコンテキスト・レポートに「調整実行済」ビットを設定し、処理は２３１６で停止する。他方、２３１２でコンテキスト・レポートが許可されない場合、処理は２３１６で停止する。実際には、処理は付加的ステップを続行するか、またはフローチャート２３００が再度実行されてよい。
【０２０８】
図２４は、ソフトウエアで設定可能な図３の整合フィルタ３０８の説明図である。整合フィルタは、単一のフィルタとして設定されてよく、または、複数の小規模な整合フィルタに細分割されてよい。整合フィルタ３０８は、１０２４ビット長であり得るサンプルに対して、３２組の３２ビットサンプルレジスタ２４０２、２４０４、２４０６、２４０８、２４１０、・・・、２４１２、２４１４で示されている。３２ビット・サンプル・レジスタの各組は、対応する３２ビット・コード・レジスタ２４１６、２４１８、２４２０、２４２２、・・・、２４２４、２４２６を有する。ＧＰＳ信号データは、データを補間し循環させる信号プロセッサ３０６から整合フィルタ３０８に到達する。レジスタの組はサブグループに分割されてよく、各サブグループがチャンネルまたはコンテキストを処理してよい。
【０２０９】
整合フィルタ３０８の設定は、整合フィルタ３０８のハードウエア・リソースに対する設定を含むマップ群によって達成される。マップは、ＧＰＳ受信機１００のモードの種類によって選択されてよい。ロック・モードは、すべてのコード空間をスキャンするために３２のサンプル・レジスタすべてを用いるマップを使用する。位置支援が利用可能の場合には、信号を構築するためにコヒーレント累積を用いながら、サンプル・レジスタの１／８をチャンネルに割り当てるマップが用いられてよい。マップ群が、ハードウエア設定ならびに、入力サンプルサブシステム２０２、信号処理サブシステム２０４およびＦＦＴサブシステム２０６によるアクセスのためのメモリ設定を最終的に制御する。
【０２１０】
マップ群は整合フィルタ３０８だけでなくベースバンド・ハードウエアを設定するものであってよい。マップ群は、チャンネル配置が時間またはメモリに対して任意に定められるのではないような、予め定められたチャンネル割り当ての基準を提供する。各マップは特定の動作に対して特定のチャンネル数を規定する。例えば、マップは、捕捉、追跡およびバックグランドチャンネルの許容数を規定する。このことは、システム内の現在の捕捉および追跡の必要性に対してハードウエアを設定するという、ソフトウエアに必要とされる融通性を提供する。例えば捕捉が重要である初期化に際しては、捕捉マップは捕捉チャンネルを多く提供して追跡チャンネルは少なく提供し、追跡が通常動作モードである定常状態の通常動作中は、追跡マップは追跡チャンネルを多く提供して捕捉チャンネルは少なく提供する。マップ群は、受信機の種々の動作シナリオに対して、区分的に最適化されたメモリおよび処理能力割り当てを提供する。
【０２１１】
図２４の整合フィルタ３０８が、１／４ミリ秒総和に対するマップによって区分されている場合は、整合性フィルタは、８個のサンプルレジスタの８組に分割される。入力信号は３２ビット・シフト・レジスタ２４２８へ移動され、３２ビット・シフト・レジスタ２４０２に読み込まれる。「排他的論理和」演算（２４３０、２４３２、２４３４、２４３６）が８個のサンプル・レジスタとコード・レジスタのそれぞれの間で実行される。それら結果は、コヒーレント累算器２４３８により１／４ミリ秒累積へと合算される。１／４ｍｓｅｃ累積の対（すなわち、コヒーレント累算器２４３８と２４４０から）は、コヒーレント累算器２４４２により１／２ミリ秒累積へと結合されてよい。同様に、２つの１／２ミリ秒累積（すなわち、２４４２および２４４４）は、別のコヒーレント累算器２４４６により全ミリ秒累積へと結合されてよい。
【０２１２】
図２５は、図５のＧＰＳ受信機コントローラ５０２に属するエキスパートＧＰＳ制御システムのフローチャート２５００である。ステップは２５０２から開始し、２５０４で、捕捉および追跡モジュールからの探索方法での使用のためのデータの処理を行う。インターフェースは次いで２５０６で、捕捉のステータスを確認する。２５０８で、データ取得のための適正な時間が経過した場合に、出力メッセージが作成される。２５１０で、１００ｍｓの境界に達したか、または測定値が利用可能であるか、受信機が確認される。そして、エキスパートシステムによって、リソースが再割り当てされる。２５１２で、衛星機（ＳＶ）に関連したインターフェースに対し発せられた命令が確認される。次いでエキスパートシステムは、探索方法を決定するために、新規及び更新されたＳＶ記録の処理に関する情報を受け取る。２５１６で、ハードウエアステータス（メモリ、実行、バッファ、タイマ、フィルタ、クロック、相関）が確認され、エキスパートシステムに報告される。処理ステップは次いで繰り返される。処理は簡略化された制御ループとして示されているが、他の具体化では、より発展した適応的な制御ループが用いられてよい。
【０２１３】
探索方法を決定するに際して、エキスパートシステムの別の特徴が電力制御を考慮している。ＱｏＳモジュール５０６にアクセスすることにより、エキスパートシステムはＧＰＳ信号を捕捉するために必要なリソースの量を決定できる。さらに、エキスパートシステムは、電力消費を低減するためにどのサブシステムの電力を下げるか、また、ＧＰＳ受信機１００全体の電力を下げるべきかの決定を行うことができる。
【０２１４】
前述したモジュールやフローチャートは、ハードウエア、ソフトウエア、またハードウエアとソフトウエアの併用で選択的に実装されてよいことが、当業者には理解できるであろう。フローチャートのステップの一実施例は、少なくとも1つの、機械で読取可能な信号搬送媒体を用いてよい。機械で読取可能な信号搬送媒体の例は、磁気記録媒体（すなわち、フレキシブル・ディスク、はコンパクト・ディスク（ＣＤ）やデジタル・ビデオ・ディスク（ＤＶＤ）などの光学記録媒体）、生物学的記録媒体、原子記録媒体、データ信号に対して論理によって論理命令を実行する論理ゲートを備える離散論理回路、適切な論理ゲートを備える特定用途向け集積回路、プログラマブル・ゲート・アレイ（ＰＧＡ）、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、ランダム・アクセス・メモリ・デバイス（ＲＡＭ）、リード・オンリー・メモリ・デバイス（ＲＯＭ）、電子プログラム可能なランダム・アクセス・メモリ（ＥＰＲＯＭ）、またはそれらの均等物などのコンピュータで読取可能な媒体を含む。コンピュータで読取可能な媒体は、その上にコンピュータ命令を印刷することができる紙または別の適切な媒体でさえあってよいことに留意されたい。それは、プログラムは例えば紙または別の媒体の光学スキャンを介して電子的に収集されることができ、次いでコンパイルされて解釈されるか或いは必要に応じて適切な方式で処理され、次いでコンピュータ・メモリに格納される。
さらに、機械で読取可能な信号搬送媒体は、コンピュータで読取可能な信号搬送保持媒体を含む。コンピュータで読取可能な信号搬送媒体は、１つまたは複数の有線ベース、無線または光ファイバー・ネットワークを介して、またはシステム内で伝送される変調搬送波信号を有する。例えば、電話ネットワーク、ローカル・エリア・ネットワーク、インターネット、ブルートゥースまたネットワークに属する或いはネットワークを通過するコンピュータで読取可能な信号成分を有する無線ネットワークなどの、１つまたは複数の有線ベース、無線または光ファイバー・ネットワークである。コンピュータで読取可能な信号は、任意の数のプログラム言語で書かれる、或いは実行される１つまたは複数の機械語命令の表現である。
さらに、論理機能を実行するための実行可能命令の順序付きリストを備えるプログラム言語で実行される複数のステップは、コンピュータベースのシステム、演算装置、マイクロプロセッサ、デジタル信号プロセッサ、コントローラとして機能する離散論理回路を有するコントローラを含むシステム、または、命令実行システム、装置または装置から命令をフェッチしてその命令を実行することができる別のシステムなどの、命令実行システム、装置または装置によって使用される、或いはそれらと接続状態にある任意の機械で読取可能な信号搬送媒体で実現されることができる。
【図面の簡単な説明】
【０２１５】
【図１】図１は、ＧＰＳ受信機の一実施例のブロック図を示す図である。
【図２】図２は、図１のＧＰＳ受信機のベースバンド・チップのサブシステムを示すブロック図である。
【図３】図３は、図１のＧＰＳ受信機のサブシステム間の全般的なデータの流れを示すブロック図である。
【図４】図４は、図１のＧＰＳ受信機内のソフトウエアとハードウエアの間の分割の図である。
【図５】図５は、図１のＧＰＳ受信機のモジュール相互作用の図である。
【図６】図６は、図５のＡＴＸ制御管理モジュール内のタスクを示す図である。
【図７】図７は、図１のＧＰＳ受信機内の実装層を示す図である。
【図８】図８は、図５のＧＰＳ受信機制御モジュールのフローチャート図である。
【図９】図９は、位置測定値を取得するための、図５の異なるモジュール間での通信のシーケンス図である。
【図１０】図１０は、図５のモジュール間での復旧状況のシーケンス図である。
【図１１】図１１は、図５のＡＴＸ制御モジュールの捕捉および追跡予備測位設定のシーケンス図である。
【図１２】図１２は、図５のナビゲーションモジュールとサービス品質モジュールの間の通信のシーケンス図である。
【図１３】図１３は、図５の電力管理モジュールを介した電力管理のシーケンス図である。
【図１４】図１４は、図５のバックグランドタスクモジュールのシーケンス図である。
【図１５】図１５は、図２の信号処理サブシステムのフロー図である。
【図１６】図１６は、図１５のマスタ制御ステートマシンの説明図である。
【図１７】図１７は、図２のＦＦＴサブシステムのためのマスタ制御ステートマシンの説明図である。
【図１８】図１８は、メモリサブシステムを用いた、信号処理サブシステムとＦＦＴサブシステムの間の通信を説明するチャンネルシーケンシング制御図である。
【図１９】図１９は、図１８のＦＦＴサブシステムによって使用されるメモリを信号処理サブシステムが上書きすることを防止する重複ルールのリストを示す図である。
【図２０】図２０は、図２のサブシステム間の通信とソフトウエアのためのセマフォと割り込みの構造を説明するウエアウエア図である。
【図２１】図２１は、図２０の割り込み構造のセマフォと割り込みマスクのビットレベル説明図である。
【図２２】図２２は、Ｔ１位相にある図２の信号処理サブシステムの時間調整のフローチャートである。
【図２３】図２３は、Ｔ１位相にある図２のＦＦＴサブシステムの時間調整のフローチャートである。
【図２４】図２４は、ソフトウエアによって設定可能な図３の整合フィルタを説明する図である。
【図２５】図２５は、図５のＧＰＳ受信機コントローラに属するエキスパートＧＰＳ制御システムのフローチャートである。
【符号の説明】
【０２１６】
１０２  無線周波数（ＲＦ）コンポーネント
１０４  ベースバンドコンポーネント
１０６  ＯＥＭプロセッサ
１０８  ＯＥＭメモリ
１１２  メモリコンポーネント
１１６  時間／周波数ブロック
２０２  入力サンプルサブシステム
２０４  信号プロセッササブシステム
２０６  ＦＦＴサブシステム
２０８  メモリサブシステム
２１０  シーケンササブシステム
２１２  その他のサブシステム
３０２  入力サンプル処理ブロック
３０３  タイマ／自動利得制御（ＡＧＣ）ブロック
３０４  ＲＡＭ
３０６  信号プロセッサ
３０８  整合フィルタ
３１０  符号器
３１２  数値制御型発振器（ＮＣＯ）
３１４  相互相関ブロック、
３１６  相互相関除去ブロック
３１８  整合性加算ブロック
３２３  第２の乗算器
３２４  フィルタ・ブロック
３２８  検出器ブロック
３３２  ＦＦＴ
３３４  ＲＡＭ
５０２  ＧＰＳ受信機制御モジュール
５０４  リセットモジュール
５０６  ＱｏＳモジュール
５０８  可視衛星機（ＳＶ）リスト
５１０  ＳＶデータ
５１２  支援モジュール
５１４  ナビゲーション（ＮＡＶ）モジュール
５１６  ＤＧＰＳモジュール
５１８  ＡＴＸ制御管理モジュール
５２０  電力管理モジュール
５２２  データ制御モジュール
５２４  最適推定（ＢＥＰ）モジュール
５２６  ＵＩＧＰＳモジュール
５２８  モジュールインターフェース（ＭＩ）モジュール
【図１】
2007505292.tif 000019
【図２】
2007505292.tif 000020
【図３】
2007505292.tif 000021
【図４】
2007505292.tif 000022
【図５】
2007505292.tif 000023
【図６】
2007505292.tif 000024
【図７】
2007505292.tif 000025
【図８】
2007505292.tif 000026
【図９】
2007505292.tif 000027
【図１０】
2007505292.tif 000028
【図１１】
2007505292.tif 000029
【図１２】
2007505292.tif 000030
【図１３】
2007505292.tif 000031
【図１４】
2007505292.tif 000032
【図１５】
2007505292.tif 000033
【図１６】
2007505292.tif 000034
【図１７】
2007505292.tif 000035
【図１８】
2007505292.tif 000036
【図１９】
2007505292.tif 000037
【図２０】
2007505292.tif 000038
【図２１】
2007505292.tif 000039
【図２２】
2007505292.tif 000040
【図２３】
2007505292.tif 000041
【図２４】
2007505292.tif 000042
【図２５】
2007505292.tif 000043
【国際調査報告】
2007505292.tif 000044
2007505292.tif 000045
2007505292.tif 000046
2007505292.tif 000047