(57)【特許請求の範囲】
【請求項１】
複数ＧＰＳ信号サンプルのストリームを受けるＦＩＦＯバッファと、
メモリと、
前記ＦＩＦＯバッファから前記メモリへ前記複数ＧＰＳ信号サンプルを伝送するＤＭＡコントローラと、
ＧＰＳ信号処理ソフトウエアを実行して、前記メモリから前記複数ＧＰＳ信号サンプルを読み出し、これらを処理して位置ｆｉｘを得るＣＰＵと、
前記ＤＭＡコントローラ及び前記ＣＰＵから独立して動作し、前記複数ＧＰＳ信号サンプルのストリームのワード境界を示すフレーム信号に応じてカウントを増やして、前記複数ＧＰＳ信号サンプルのストリーム数をカウントし続ける第一のカウンタを備え、
前記ＣＰＵは、
ＤＭＡ対象アドレスを監視して前記ＤＭＡコントローラのアイドル状態を検知し、
前記ＤＭＡコントローラのアイドル状態の検知に応じて、前記ＦＩＦＯバッファ内のＧＰＳ信号サンプル数を示すレジスタがカウントアップしてデータワードが前記ＦＩＦＯバッファに受け取られたことを示すまで、前記レジスタを読み、
前記レジスタの読みに応じて、前記第一のカウンタのカウントを読み、
前記第一のカウンタのカウントから前記ＦＩＦＯバッファのワード数と前記ＤＭＡコントローラのメモリバッファの動作開始からのオフセットである前記ＤＭＡ対象アドレスとを引いてサンプリング時間を求め、そして、
前記サンプリング時間に基づいて前記位置ｆｉｘを得ることを特徴としたソフトウエアＧＰＳ処理構成。
【請求項２】
前記複数ＧＰＳ信号サンプルのストリームをシリアルに受け、クロック信号の制御の基に前記ＧＰＳ信号サンプルのストリームを保存し、そして、前記ワード境界に応じて前記複数ＧＰＳ信号サンプルのストリームをデシリアライズして前記ＦＩＦＯバッファに供給するポートと、
前記クロック信号を受けてカウントを増やして前記フレーム信号を前記第一のカウンタに出力する第二のカウンタを備えたことを特徴とした請求項１に記載のソフトウエアＧＰＳ処理構成。
【請求項３】
前記ポートは１６ビットのデシリアライズされた複数ＧＰＳ信号サンプルのストリームを出力し、
前記第二のカウンタは前記１６ビット毎に、前記フレーム信号として用いられるキャリーアウト信号を出力することを特徴とした請求項２に記載のソフトウエアＧＰＳ処理構成。
【請求項４】
前記第一のカウンタは複数ＧＰＳ信号サンプルのストリームを示す外部カウント信号を受けることを特徴とした請求項１に記載のソフトウエアＧＰＳ処理構成。
【請求項５】
前記ＦＩＦＯバッファへ伝送される前記複数ＧＰＳ信号サンプルの各々に対してカウントを増やす第二のカウンタを備えたことを特徴とした請求項１に記載のソフトウエアＧＰＳ処理構成。
【請求項６】
前記ＣＰＵは異なるクロック速度で動作し、前記異なるクロック速度間の変遷期間中、前記ＤＭＡコントローラの動作が停止することを特徴とした請求項１に記載のソフトウエアＧＰＳ処理構成。
【請求項７】
前記ＤＭＡコントローラの動作が停止しても、前記ＦＩＦＯバッファへ伝送される前記複数ＧＰＳ信号サンプルの各々に対してカウントを増やし続ける第二のカウンタを備えたことを特徴とした請求項１に記載のソフトウエアＧＰＳ処理構成。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエアＧＰＳ、そして、特に、ＧＰＳ信号サンプルのストリームを受けるＦＩＦＯバッファと、メモリと、ＦＩＦＯバッファからメモリへＧＰＳ信号サンプルを伝送するＤＭＡコントローラと、そして、メモリからＧＰＳ信号サンプルを読み出し、これらを処理して位置ｆｉｘを得るように構成されたＧＰＳ信号処理ソフトウエアが実行されるＣＰＵとを備えたソフトウエアＧＰＳ処理構成に関する。
【０００２】
本発明は、さらに、ＧＰＳアンテナと、受信したＧＰＳ信号をサンプリングするためのアナログ・デジタル変換器とＧＰＳ信号サンプルのストリームを出力する処理構成とを含むＧＰＳ  ＲＦフロントエンドとを備えた、対応ＧＰＳ受信機に関する。
【背景技術】
【０００３】
図１は、ソフトウエアＧＰＳの従来の実施例１０を概略的に示す。ＧＰＳＲＦフロントエンド１１は、そのアンテナと、典型的には、バンド外のＲＦ障害を低減するためのパッシブ・バンドパス・フィルタリングと前置増幅と中間周波数（ＩＦ）へのダウンコンバージョンとアナログからデジタルへの変換とによる前処理とを介して、ＮＡＶＳＴＡＲ  ＳＰＳ  ＧＰＳ信号を受信する。処理結果のＧＰＳ信号サンプルは、対応サンプル・クロック信号と共に、フロントエンドからストリームとしてマイクロプロセサ１２に出力される。
【０００４】
ＧＰＳ信号サンプルは補足され、そして、ＣＰＵによる後処理のために、システムメモリ１３に記憶される。これは、典型的には、多くのマイクロプロセサに対して設けられている同期シリアルポート１４へＧＰＳ信号サンプルのストリームを送出することにより行われる。同期シリアルポート１４は、データを、例えば、典型的には、１６ビットワードのワードにデシリアライズし、このワードはファースト・イン／ファースト・アウト（ＦＩＦＯ）バッファ１５に渡される。ダイレクト・メモリ・アクセス（ＤＭＡ）コントローラ１６は、データをＦＩＦＯから取り出し、システムメモリに記憶させるように構成されており、ある数のワードが蓄積されるとＦＩＦＯからの要求信号によりトリガされる。ＤＭＡ伝送は、データ・ソース及び行き先アドレスを特定するメモリに記憶された複数ディスクリプタと、伝送されるデータ長とにより制御される。ループに複数ディスクリプタを連結させることにより、ＣＰＵの関与なしに、データをリングバッファに捕捉することが可能になり、これは、比較的リソースが少ない携帯システムにおいて効果的である。
【０００５】
ＣＰＵ１７上で実行されるソフトウエアは、ＤＭＡコントローラのステータスを読み、リングバッファにどれだけデータが有り、そして、処理可能かを判断できる。リングバッファが何度満杯になったかを監視することにより、このソフトウエアは、如何なる時にでも捕捉されたデータ量を累積して、従って、メモリ内の所定サンプルにより表される時間位置を保持することもできる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、マイクロプロセサのクロック速度が変化したときに問題が生じる。これは、携帯システムにおいて、電力を温存するために、クロック速度が現在の処理要求に合ったときに、屡々起こりうる。クロック速度変化の間、フェーズ・ロック・ループ（ＰＬＬ）が新しい周波数で安定するために、ＤＭＡ伝送を含む内部システムの活動が１００マイクロ秒以上停止することがありうる。ＳＳＰは、この時間にデータを受信し、ＦＩＦＯに記憶し続けるが、ＦＩＦＯから除かれるデータが無いので、いずれオーバフローし、データが消失する。さらには、どれだけのデータが消失したかが分からないので、サンプル蓄積量が不明となる。この場合、ＧＰＳ復号化ソフトウエアが、あたかも今立ち上がったかのように同じアルゴリズムを用いて、再スタートしなければならなくなることが起こりうるので、新たな位置Ｆｉｘを得るのに数秒かかる。
【課題を解決するための手段】
【０００７】
本発明によれば、上述のタイプのソフトウエアＧＰＳ処理構成が、ＤＭＡコントローラと、ＧＰＳ信号サンプルのストリームのサンプル数をカウントし続ける前記ＣＰＵとから独立して動作するカウンタを備える。
【０００８】
このような構成により、データ伝送中断後にサンプルの蓄積カウントが回復でき、そして、ＧＰＳ復号化アルゴリズムの本質により、すべてのデータを回復する必要がなく、利用可能なデータを用いて現在位置Ｆｉｘが決定でき、そして、復号化処理を再開する必要がない。
【発明を実施するための最良の形態】
【０００９】
図２を参照すると、本発明による、ソフトウエアＧＰＳの実施例が示され、図１に示されたソフトウエアＧＰＳの従来の実施例と比べて改良されている。
【００１０】
特に、ＧＰＳ  ＲＦフロントエンド１１からの各クロックサイクルを上げるために、４ビットカウンタ２０がＧＰＳ  ＲＦフロントエンドに接続されている。このカウンタ２０は、１６クロックサイクル毎にキャリーアウト信号を発生する一般的な論理素子である。キャリーアウト信号はＳＳＰのフレーム入力に接続される。フレーム入力はデータストリーム中のワード境界を規定し、図１の実施例では、ＳＳＰにより内部で発生されるであろう。
【００１１】
フレーム入力信号が、さらに、マイクロプロセサ周辺に一体化されている３２ビットカウンタ２１に接続される。これは、典型的には、カウンタクロック源のソフトウエア構成を用いて行われるが、フレーム信号を専用のカウンタ入力ピンに外部接続することによっても達成可能である。
【００１２】
３２ビットカウンタ２１は、ＤＭＡ伝送中断の間、動作し続け、そして、ソフトウエアにより読み出し、受信したデータ蓄積量を判定することができる。
【００１３】
３２ビットカウンタ２１のレジスタを読むことにより、ＳＳＰによりデシリアライズされたばかりのデータワードの（ワードにおける）蓄積時間が与えられる。ところが、メモリに記憶されたデータの捕捉時間を知るためには、このデータが記憶されるメモリアドレスをソフトウエアが決定する必要がある。ＤＭＡ伝送のための現在の対象アドレス、そして、これからＦＩＦＯされる伝送中のワード数によってアドレスは変わり、そして、アドレスはメモリマップ・レジスタを読むことにより決定される。ところが、これらのレジスタ値も周期的に変わり、そして、データワードが同一の場合に三値がすべて知られた時のみに正しい結果が得られる。このタイミングを一定にするのは、ソフトウエアがすべてのレジスタを連続して読んでいる時には難しく、何故ならば、それらは、ＣＰＵコアレジスタよりアクセスが遅い周辺バス上に存在するからである。この問題を解消する処理が考案された。
【００１４】
第一段階では、ＤＭＡ対象アドレスレジスタのみが監視される。このレジスタは、ＦＩＦＯからのデータ伝送のバースト中に変わり、これは、通常、ＦＩＦＯを満杯にするのに要する時間より遙かに短い。従って、ＤＭＡコントローラは、ＦＩＦＯ及びフレームカウンタに比べてアイドル状態が長くなり、両変化状態は各ワード境界にて起こる。ＤＭＡアイドル段階は決定することができ、何故ならば、これはバースト伝送段階に続くからであり、そして、アドレスは、次の段階では安定すると見なされるからである。
【００１５】
次の段階で、ＦＩＦＯ充足度を示すレジスタを、これがカウントアップするまで、ソフトウエアが繰り返し読み、データワードが今受け取られたことを示す。
【００１６】
最終段階で、一体化３２ビットカウンタ２１のレジスタからの合計ワードカウントをソフトウエアが読む。ソフトウエアはこの３２ビットカウンタ２１のラップアラウンドをチェックし、それに応じて合計を調整する。バッファ動作開始からのオフセットＮにおけるメモリ内のワードの（ワードにおける）サンプリング時間ＴｎはＴｎ＝Ｃ-Ｆ-(Ｄ-Ｎ)で与えられ、ここで、Ｃは３２ビットワードカウンタ２１の値であり、ＦはＦＩＦＯ内のワード数であり、ＤはＤＭＡコントローラの現在の対象アドレスであり、メモリバッファ動作開始からのワード内のオフセットである。
【００１７】
上記の方法においては、もし、サンプリングクロックが直接内部カウンタに接続されていた場合に比べて、大きな信頼性を持って、外部４ビットカウンタ２０が入力サンプルをカウントできる。必要なレジスタを読むためのアルゴリズムとの組み合わせで、ソフトウエアがこれに関連するハードウエア状態を読むことができるよりも、頻繁に起きる事象（サンプリングクロック）に同期してしまう問題を解消する。
【図面の簡単な説明】
【００１８】
【図１】上述の、ソフトウエアＧＰＳの従来の実施例１０を概略的に示す図である。
【図２】本発明による、ソフトウエアＧＰＳの実施例を概略的に示す図である。
【図１】
0004954986.tif 000002
【図２】
0004954986.tif 000003