(57)【要約】  ソフトウェア無線機は、無線回路及びこの無線回路で動作するよう実行可能な無線ソフトウェアシステムを有し、無線ソフトウエアシステムは、音声およびデータを送受信するために波形アプリケーションが無線回路で動作できるようにするオペレーティング環境を定義する。フィールドプログラマブルゲートアレイ（ＦＰＧＡ）のようなプロセッサが、無線回路とともに動作可能であり、そして、プロセッサは無線回路におけるイベントのシーケンスおよびタイミングを制御するイベントシーケンサを含む。【選択図】  図４
2009528712.tif 000002
【特許請求の範囲】
【請求項１】
無線回路と、前記無線回路で動作するように実行可能であり、音声およびデータを送受信するために波形アプリケーションが前記無線回路で動作可能にするオペレーティング環境を定義する無線ソフトウェアシステムと、
前記無線回路におけるイベントのシーケンスおよびタイミングを制御するイベントシーケンサを含むプロセッサと、
を備えることを特徴とするソフトウェア無線機。
【請求項２】
前記イベントシーケンサは、任意の順序でアクセス可能であり一連のイベントを順序通りに保持するイベントキューまたはイベントを保持するイベント連想メモリ（イベントＣＡＭ）のいずれかを含み、あるいは一方が他方へ入力するように接続された前記イベントキューと前記イベントＣＡＭとの組み合わせを含むことを特徴とする請求項１に記載のソフトウェア無線機。
【請求項３】
前記イベントキューまたは前記イベントＣＡＭ内に含まれる各イベントは、実行されるイベントプログラムを特定するために用いられる値を有するイベントタグを含むことを特徴とする請求項２に記載のソフトウェア無線機。
【請求項４】
前記イベントシーケンサは、あらかじめ選択された時間にイベントを起動させる時間比較器を含むことを特徴とする請求項１に記載のソフトウェア無線機。
【請求項５】
前記イベントシーケンサは、実行されるイベントプログラムを決定するイベントプログラムプロセッサを含むことを特徴とする請求項１に記載のソフトウェア無線機。
【請求項６】
モデム制御回路をさらに備え、前記イベントシーケンサは、前記無線回路および前記モデム制御回路の環境設定を調整する動作が可能であることを特徴とする請求項１に記載のソフトウェア無線機。
【請求項７】
ソフトウェア無線機の無線回路内でのイベントのタイミングを制御する方法であって、
音声およびデータを送受信するために前記無線回路で動作する波形アプリケーションを読み込み、
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）内に含まれており前記無線回路で動作可能なイベントシーケンサによって、前記無線回路におけるイベントのタイミングおよびシーケンスを制御することを特徴とする方法。
【請求項８】
前記イベントシーケンサのイベントキュー内に一連のイベントを順序通りに保持することを特徴とする請求項７に記載の方法。
【請求項９】
前記イベントシーケンサ内のイベントタグの値を読み取ることによって、読み込まれるイベントプログラムを特定することを特徴とする請求項８に記載の方法。
【請求項１０】
前記無線回路を含んだ携帯型無線通信装置を形成することを特徴とする請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエア無線機（software defined radio）に関し、また、無線機及び他の用途のためのソフトウェア通信アーキテクチャ（Software Communications Architecture、ＳＣＡ）に関する。
【背景技術】
【０００２】
処理能力やプログラミング技術の進歩に伴って、ソフトウェア定義による移動無線通信装置（例えば無線機）の評判が高まり続けている。周波数、変調、帯域幅、セキュリティ機能、波形の要求といったタスクの実行をハードウェアや回路部品に頼るのではなく、これらの機能が、ソフトウエア無線機のソフトウェアモジュール又はソフトウェア部品によって実行される。つまり、ソフトウエア無線機ではアナログ信号がデジタルの領域へ変換され、そこでは上記の機能がデジタル信号処理を用いて実行され得るのである。
【０００３】
この無線機の大半の機能はソフトウェアで制御されるため、ソフトウエア無線機は、典型的には、比較的標準的なプロセッサ及びハードウェア部品で実装されてよい。これにより、装置のハードウェアコストが低減されるだけでなく、装置をアップグレードする際により大きな柔軟性も提供される。なぜなら、新しい通信波形モジュールが比較的容易に、また新しいハードウェア部品に交換する必要なく、装置にアップロードされ得るからである。
【０００４】
ソフトウエア無線機の特定のクラスの１つで、上記の有利な特徴を利用するのが、統合戦術無線（Joint Tactical Radio、ＪＴＲ）である。ＪＴＲ無線機は、比較的標準的な無線及び処理用ハードウェアを、無線機が用いることになる通信波形のための適切な波形ソフトウェアモジュールとともに含む。ＪＴＲは、ソフトウェア通信アーキテクチャ（ＳＣＡ）規格（www.JTRS.saalt.milを参照）に準拠するオペレーティングシステムソフトウェアも利用する。この規格は、引用することにより全体としてここに組み込まれているものとする。ＳＣＡは、どのようにハードウェア部品とソフトウェア部品とを相互運用して、異なる製造者及び開発者がそれぞれの部品を単一の装置へ容易に統合できるようにするか、を規定するオープンアーキテクチャのフレームワークである。
【０００５】
移動無線通信装置のさらに別のクラスで、異なる波形又はプロトコルで通信するためにソフトウェア部品を更に用いるようになっているのが、セルラー通信装置である。すなわち、今や多くのセルラー装置が、例えばグローバル・システム・フォー・モバイル・コミュニケーションズ（Global System for Mobile Communications、ＧＳＭ）やパーソナルコミュニケーションズサービス（Personal Communications Services、ＰＣＳ）といった、世界中で用いられる数多くのセルラー標準のうちの複数の標準で動作するように設計されている。
【０００６】
統合戦術無線システム（ＪＴＲＳ）ソフトウェアコンポーネントアーキテクチャ（ＳＣＡ）は、ソフトウエア無線機（ＳＤＲ）を実装するための一組のインターフェース及びプロトコルを、多くの場合、共通オブジェクトリクエストブローカアーキテクチャ（Common Object Request Broker Architecture、ＣＯＲＢＡ）に基づいて規定する。ＪＴＲＳ及びそのＳＣＡは、一部が、ソフトウェアの再プログラムが可能な無線機の一群で用いられる。このように、ＳＣＡは、ソフトウェアの再プログラムが可能なデジタル無線機を実装するための、規則、方法、及び設計基準の具体的なセットである。
【０００７】
ＪＴＲＳ  ＳＣＡ規格は、ＪＴＲＳジョイントプログラムオフィス（ＪＰＯ）が発行している。ＪＴＲＳ  ＳＣＡは、さまざまなＪＴＲＳ  ＳＣＡ実装間にアプリケーションソフトウェアの移植性を提供することと、商用規格を活用して開発コストを下げることと、設計モジュールの再利用可能性により新しい波形の開発時間を減らすことと、発展する商用のフレームワーク及びアーキテクチャを土台とすることとを目的に構成されてきている。
【０００８】
ＪＴＲＳ  ＳＣＡは、実装に依存しないように作成されているので、システム仕様ではなく、ＪＴＲＳの所望の目的を達成するためにシステムの設計を制約する一セットの規則である。ＪＴＲＳ  ＳＣＡのソフトウェアフレームワークは、オペレーティング環境（ＯＥ）を規定し、その環境からアプリケーションが用いるサービス及びインターフェースを指定する。ＳＣＡ  ＯＥは、コアフレームワーク（ＣＦ）と、ＣＯＲＢＡミドルウェアと、関連するボードサポートパッケージをもつポータブルオペレーティングシステムインターフェース（ＰＯＳＩＸ）に基づくオペレーティングシステム（ＯＳ）とで構成される。また、ＪＴＲＳ  ＳＣＡは、アプリケーションソフトウェア部品間のアプリケーションプログラミングインターフェース（ＡＰＩ）を定義するビルディングブロック構造（ＡＰＩ補遺にて規定されている）を提供する。
【０００９】
ＪＴＲＳ  ＳＣＡコアフレームワーク（ＣＦ）は、必須かつ「中核」となるオープンソフトウェアのインターフェース及びプロファイルのセットを規定するアーキテクチャ概念であり、これらのインターフェース及びプロファイルは、組込型分散コンピューティング通信システムにおいて、ソフトウェアアプリケーション部品の配置、管理、相互接続、及び相互通信を提供する。インターフェースは、ＪＴＲＳ  ＳＣＡ規格において定義されてよい。ただし、インターフェースのいくつかを開発業者が実装してもよいし、いくつかは非中核アプリケーション（すなわち波形など）によって実装されてもよいし、また、いくつかはハードウェア装置供給業者によって実装されてもよい。ＪＴＲＳ無線機及びＳＣＡの規格では、典型的にはコマンド及びデータ（赤及び黒）の処理システム用のインターフェースが必要とされる。無線プラットフォームは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含む多重プロセッサ組込システムを含んでよい。
【００１０】
広帯域ネットワーク波形では、イベントに対する高度の制御や、無線とモデムとの調和のとれた環境設定も必要とされる。この制御は、典型的には数マイクロ秒以内にまで同期させられなければならない。通常、この種の無線機では、無線ハードウェアおよびモデムハードウェアの環境設定および制御がソフトウェアで実現される。しかしながら、この程度の制御では、その制御のタイミングにおいて、ある程度の正確さしか得られない。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、上記背景に鑑みて、ソフトウェア無線機内のイベントをさらに正確な方法で制御し、無線回路においてイベントに対してさらに十分な制御を行って、より高いレベルのソフトウェアで処理する実時間イベントの数を減らすことである。
【課題を解決するための手段】
【００１２】
本発明のある非限定例によれば、ソフトウェア無線機は、無線回路と、該無線回路で動作可能である実行可能な無線ソフトウェアシステムとを含む。音声およびデータを送受信するために波形アプリケーションが無線回路で動作できるようにするオペレーティング環境が定義される。プロセッサは、イベントシーケンサを含み、無線回路におけるイベントのシーケンスおよびタイミングを制御する動作をする。
【００１３】
別の態様では、イベントシーケンサは、一連のイベントを保持するための、イベントキューまたはイベントＣＡＭといったイベントメモリを含む。イベントキューまたはイベントＣＡＭは、任意の順序でアクセスされ得るものであり、あるいは、一方が他方へ入力するように接続されたイベントキューとイベントＣＡＭとの組み合わせが用いられてもよい。イベントメモリ内に含まれる各イベントは、実行されるイベント動作を特定するために用いられる値を有するイベントコマンドを含むことができる。小数ビット時間値でイベントの時間を示すことができる。イベントシーケンサは、イベントを適切な時間に起動させる時間比較器を含むことができる。このイベントシーケンサは、実行されるイベントプログラムを決定するプロセッサを含むこともできる。また、イベントシーケンサは、イベントタグを保持するタグレジスタを含むこともでき、イベントタグは実行されるイベントプログラムを示すものであり、シーケンサではタグレジスタを読み取ってどのイベントプログラムが実行されるかを決定する動作をする。特定の時間に割り込みが生成されてプロセッサがタグレジスタを読み取ることができるように、メモリ、タイマ、および割り込み制御部がプロセッサとともに動作してよい。また、イベントシーケンサは、無線回路および関連するモデム制御回路の環境設定（configuration）を調整する動作も可能である。携帯型の筐体が、無線回路とプロセッサとを収容でき、手持ち用に構成され得る。
【００１４】
別の態様では、無線回路が設けられ、実行可能な無線ソフトウェアシステムが無線回路で動作し、ソフトウェア通信アーキテクチャ（software communications architecture、ＳＣＡ）規格に準拠して、音声およびデータを送受信するために波形アプリケーションが無線回路で動作できるようにするオペレーティング環境を定義する。フィールドプログラマブルゲートアレイ（ＦＰＧＡ）が、無線回路とともに動作でき、無線回路におけるイベントのシーケンスおよびタイミングを制御するイベントシーケンサを含む。このイベントシーケンサは、イベントおよびイベントタグが保持されるシーケンサ部品と、シーケンサ部品とともに動作して、イベントタグを特定しイベントタグによって特定されたイベントプログラムを実行するプロセッサ部品とを含む。
【００１５】
本発明の方法の態様についても示されているものとする。
【００１６】
本発明の他の目的、特徴および効果は、以下の本発明の詳細な説明から、添付の図面を参照して明らかとなるであろう。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の好ましい実施の形態が示される添付の図面を参照して、本発明についてさらに十分に説明する。ただし、本発明は、さまざまな形態で実施されてよく、ここで述べる実施の形態に限定されるものと解釈すべきではない。むしろそれらの実施の形態は、本開示が網羅的で完全なものとなるように、そして本開示によって本発明の範囲を当業者に十分に伝えるために、提供するものである。同じ数字は、全体を通じて同じ要素を表し、またプライム表記を用いて、代替となる実施の形態における類似の要素を示す。
【００１８】
本発明のある非限定例によるイベントシーケンサは、ソフトウェア無線機のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）処理リソースに組み込まれたハードウェア型のマイクロコード化イベントシーケンサであってよい。これにより、制御シーケンスをこのハードウェア構造に委ねることで、広帯域ネットワーク波形のソフトウェアがイベントのシーケンスおよびタイミングを制御し、無線回路および関連するモデムの制御のスケジュールを「スクリプト」にして、マイクロ秒以内の正確さが得られる。
【００１９】
本発明の非限定例によるイベントシーケンサおよび関連する方法は、多重プロセッサ組み込みシステムおよび関連する方法において用いられ得るものであり、また、メインフレームコンピュータまたは小型コンピュータで使われるような任意の種類の無線ソフトウェア通信アーキテクチャにも用いることができ、コンピュータには、例えば軍および民間の用途で用いられるようなトランシーバ付加型のラップトップを含み、または図１に示す携帯型無線通信装置２０が用いられてよい。この携帯型無線通信装置は、内部部品としてのトランシーバと、アンテナ２４および制御ノブをもつ手持ち式筐体２２とを有することができる無線機として図示されている。表示用に、液晶ディスプレー（ＬＣＤ）または類似の表示器が筐体の適切な位置に配置されてよい。赤および黒のサブシステムのための二重のプロセッサシステムやＳＣＡに準拠するソフトウェアを含むさまざまな内部部品が、図示された無線機で動作する。なお、携帯型または手持ち式の無線機が開示されてはいるが、ここに記載されるアーキテクチャは、ＳＣＡおよび本発明の非限定例によるイベントシーケンサを用いるトランシーバとともに動作する任意のプロセッサシステムにおいて用いられ得る。本発明の非限定例によるイベントシーケンサを組み込み得る通信装置の一例は、フロリダ州メルボルンのハリスコーポレーションが製造する携帯型または戦術型の無線プラットフォーム、Ｆａｌｃｏｎ（登録商標）ＩＩＩである。
【００２０】
上記のソフトウェア無線機で用いられる基本無線回路３０の概要をブロック図に示す（図２）。無線回路３０は、符号３２で概略的に示される共通無線部品、モデム３７とともに動作可能な黒処理部品３６および赤処理部品３４を含む。赤処理部品３４および黒処理部品３６はそれぞれ、フィールドプログラマブルゲートアレイ３４ａ、３６ａと、デジタルシグナルプロセッサ３４ｂ、３６ｂと、当業者に知られた他の回路部品３４ｃ、３６ｃとを含む。
【００２１】
図３は、広帯域ネットワークモデムと無線制御シーケンサとに関連付けられたイベントシーケンサのためのハードウェア部品の例を説明する高レベルブロック図であり、全体として符号５０で示してある。ネットワークにおいて必要な精度で同期およびシグナリングを行う場合に、無線プロトコルをハードウェア型イベントシーケンサと統合することが有利となる。この回路では、特定のインターバルの別個のイベントを関連する無線およびモデムの環境設定でプログラムされ得るようにするハードウェア構成が設けられている。これらのイベントは、任意の必要なタイミングに合わせてスケジュールされ得る。さらに、将来のイベントの所与のセットがイベントシーケンサ内にプログラムされれば、他の無線リソースを、他の処理動作へ振り向けるか、あるいは省電力のためスリープ状態にすることができる。さまざまなシーケンス機能が使用可能である。
【００２２】
本システムは、多次元信号処理のために他の回路とともに動作するシステム時間回路５２を含む。インターバルタイマ５４は割り込みの出力ができ、ＭＤＳＰとしてのデジタルシグナルプロセッサからインターバルタイマ（ＨＯＰＣＬＫ）とともにインターバルＩＤを受け取る。他の動作および機能としては、シーケンサ制御状態５８があり、また、イベント６３およびＡＴＴＮ６４を含んだスクリプトポインタ６２としての信号を受け取るＲＥＳシーケンサ状態機械６０がある。ＲＥＳシーケンサ状態機械６０は、インターバルタイムアウト時にバンク切り替えを受けるＲＥＳスクリプトページＲＡＭ６６と共に動作する。ＲＥＳ制御機能６８は図示のように受信ＲＥＳ６９、およびＭＤＳＰトランシーバ７０としてのデジタルシグナルプロセッサとともに動作する。ＭＤＭスクリプトページＲＡＭ７４はインターバルタイムアウト時にバンク切り替えを受け、また、ＷＤＳＰプロセッサインターフェースとともに動作する。また、ＰＤＵ７６としての受信機データユニットおよびデータベースは、ＷＤＳＰＤＭＡチャネル、送信ＰＤＵ７８、およびサービスＩＤＳＴＡＴ８０とともに動作する。
【００２３】
次に、それぞれの能動部品および他のイベントシーケンサ処理について説明する。システム時間５２は、典型的には６４ビットのインクリメント型無線システム時間であり、無線プラットフォーム、時刻（time of day、ＴＯＤ）サービスと関連付けられており、ＭＡＣ（媒体アクセス制御）によって、またイベントシーケンサおよびモデムのハードウェア的な構成によって、読み取られ得る。
【００２４】
インターバルタイマ５４は、典型的にはプログラム可能な繰り返しタイマまたは単発タイマである。ソフトウェアは、このタイマを用いて、対象とする時間間隔の範囲を示すことができる。例えば、ビーコン間隔の終了を、このタイマが切れることによって合図できる。現在のタイマが切れる前に次のインターバルタイマをソフトウェアがプログラムできるように、インターバルタイマのハードウェアはシャドウされる。ＭＤＳＰは、インターバルＩＤおよびタイマとともに動作する。
【００２５】
イベントタイマは、現在のインターバル内で用いられるプログラム可能な単発タイマであってよい。イベントタイマの正確さは、システム時間の１マイクロ秒の範囲以内である。各イベント６３は、イベント発生時の環境設定を行うために用いられるように関連するスクリプトページＲＡＭポインタを有することができる。例えば、所与のイベントがＲＥＳ周波数変更と関連付けられてよい。イベントタイマの現在のセットが終了する前にイベントタイマの次のセットをソフトウェアがプログラムできるように、イベントタイマのハードウェアはシャドウされる。
【００２６】
スクリプトポインタ６２は、典型的にはシーケンサスクリプトページＲＡＭメモリ６６へのポインタである。これらのポインタにより、イベントは一連の環境設定コマンドを起動できる。スクリプトページＲＡＭメモリ６６は、シーケンサメモリのバンク切り替えされたページのためのものであり、異なるイベント６３および６４から指示されて現在のインターバルと関連付けられる。バンク切り替えは、典型的にはインターバルタイマ終了時に行われる。コマンドの現在のインターバルが終了する前にコマンドの次のインターバルをソフトウェアがプログラムできるように、ページＲＡＭ６６はシャドウされる。
【００２７】
モデムが生成し消費する送受信データ、音声、およびビーコンを格納するため、バッファ７６、７８、８０が含まれてよい。モデムとＷＤＳＰとの間ではＤＭＡ転送が可能である。
【００２８】
イベントシーケンサに取り付けられたハードウェアモジュールからエラー通知があった場合のジャンプ先の場所として、宛先ベクトルが「ＭＤＭ／ＲＥＳ」に組み込まれ得る。発生した障害に対してソフトウェアが対処する間、無線機は修復用環境設定の状態に置かれ得る。
【００２９】
モデムは、ハードウェア型のバーストモデムとして組み込まれ得る。このモデムは、ネットワーク対応に必要なすべてのデータ、音声、およびビーコンシグナリングに対応できる。ネットワーク対応とは、帯域幅と、スペクトル効率と、存続時間との設定を意味する。モデムは、シーケンサに対して所与の動作がいつ完了するか、また、例えばアンダーフローまたはオーバーフローといったエラーが生じたかどうかを示す。
【００３０】
ＲＥＳ制御６８は、典型的には、ＳＰＩ制御バス６８ａを介して受信機および送信機へ送られる環境設定および制御のコマンドを用い、所与のコマンドシーケンスがいつ完了するか、またエラーが生じたかどうかを示す。
【００３１】
イベントシーケンサ５０は、アプリケーションプログラミングインターフェース（ＡＰＩ）を有することができる。コマンドは、ＡＰＩによってシーケンサに書き込まれ得る。コマンドは、シーケンサの別個のインスタンスを用いて、モデムまたはＲＥＳのいずれかを制御できる。シーケンサの各インスタンスは、同じインターバルシステムタイマに関係付けられ得る。それらのイベントおよびページＲＡＭは、別個であってよい。
【００３２】
さまざまな呼び出しとしては、イベントシーケンサおよび関連するイベント設定を停止するＳｔｏｐや、イベントシーケンサインターバルタイマおよびイベント処理を開始するＳｔａｒｔなどがある。Ｓｔａｒｔコマンドは、シャドウされたハードウェアの暗黙的なバンク切り替えを行って、ソフトウェアが開始前に初期設定をプログラムできるようにする。
【００３３】
Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｖａｌ  Ｔｉｍｅｒ呼び出しは、イベントシーケンサによる割り込みの生成と、シャドウされたイベントレジスタおよびページスクリプトＲＡＭのあるセットから別のセットへ切り替えとを行う時点を作成することができる。このコマンドは、イベントシーケンサが稼働している間、または停止している時に実行され得る。また、Ｉｎｔｅｒｖａｌ  Ｔｉｍｅｏｕｔは、インターバルタイマが終了した時に、コールバックルーチンを命じて実行することができる。
【００３４】
Ｓｅｔ  Ｅｖｅｎｔ呼び出しまたはコマンドは、インターバルの開始からのマイクロ秒のオフセットに対応し、スクリプトを指示して、インターバルの特定の時点でイベントを起動させる。イベント時間は、典型的にはインターバルの開始を基準とし、その正確さは典型的には１マイクロ秒以内である。イベントシーケンサが稼働している時、この呼び出しは次のインターバルのイベントをプログラムしている。イベントが終了すると、スクリプトポインタがイベントシーケンサによって用いられて、制御されたインスタンスに対して一連のシーケンサコマンドが実行される。
【００３５】
スクリプトへのポインタとしてのＳｅｔ  Ａｔｔｎコマンドは、制御されたインスタンスが宛先指定をアサートすると機能する。イベントシーケンサは、ページＲＡＭ内の該当個所を指示して、あらかじめ構成されたエラー処理コマンドのセットを実行する。
【００３６】
Ｗｒｉｔｅ  Ｓｃｒｉｐｔ  Ｍｅｍｏｒｙコマンドは、基本命令として動作し、この基本命令は、イベントシーケンサコマンドのセットを所与のイベントと関連付けることによって、制御されたインスタンスの特定の構成をソフトウェアが構成できるようにするものである。コマンドは、特定のイベントと関連付けられたポインタに基づいて、スクリプトページＲＡＭ６６から読み出され得る。
【００３７】
イベントシーケンサ５０は、ソフトウェア無線機において一般的なフィールドプログラマブルゲートアレイ（ＦＰＧＡ）の一部分であるＩＰコアとして動作可能である。イベントシーケンサはアプリケーションにおいて用いられるためのものであり、この場合に厳密なタイミング制御でイベントのタイミングを取りＦＰＧＡリソースを制御することができるような波形のＦＰＧＡ部分を有することが有利である。以下に説明するように、イベントシーケンサは、２つの主要部品、すなわちシーケンサイベントキューと、シーケンサＣＰＵとを含む。シーケンサイベントキューは、時間設定済みイベントの順序付けられたキューと、イベントが終了した時に割り込みをかける比較器とを含む。
【００３８】
イベントは、２４ビットの時間値と、８ビットのタグ値とを含むことができる。イベントは、ＷＤＳＰによってキューに書き込まれることができ、イベントが終了すると先入れ先出し（ＦＩＦＯ）方式でキューから取り出される。キューに入れられたイベントは先入れ先出し（ＦＩＦＯ）方式で処理され得るので、イベントは、典型的には時系列にキューに書き込まれる。キュー内の最も古いイベントが、保留イベントである。保留イベントの時間値がシステム時間と一致すると、ＣＰＵへ割り込みが送られ、タグ値が保存される。そのイベントはキューから取り出され、新しい保留イベントが生じる。ＣＰＵは割り込みをかけられており、保存されたタグ値を読み取って、適切なプログラムを実行してイベントを処理することができる。
【００３９】
イベントシーケンサＣＰＵは、典型的にはごく単純な８ビットのＣＰＵである。イベントシーケンサＣＰＵは、終了したイベントや、いくつかのシステム障害およびシステム状態から、割り込みを受ける。イベントシーケンサＣＰＵは、８進デジタル・アナログ変換器、モデムコア、およびキーラインレジスタを含むいくつかのデバイスに対して、読み取りおよび書き込みができる。イベントシーケンサＣＰＵは、ＷＤＳＰによって書き込まれるプログラムメモリと、内部ＲＡＭメモリとを有する。
【００４０】
図４において符号１００で示されるイベントシーケンサの非限定例は、プロセッサすなわち中央処理装置（ＣＰＵ）部品１０２と、シーケンサ部品１０４と、外部部品１０６とを含む。シーケンサ部品１０４は、イベントメモリ１１０からなるイベントキューと、例えば２４ビット比較器である時間比較器１１２と、イベントタグレジスタ１１４とを含む。図示のようにイベント連想メモリ（連想記憶装置、ＣＡＭ）１１０ａが含まれ得る。ＣＡＭ１１０ａは、イベントキューのようにイベントを保持することができ、ＣＡＭ１１０ａおよびイベントキューは、任意の順序でアドレス指定され得るものであり、また、一方が他方へ入力するように接続されたイベントキューとイベントＣＡＭとの組み合わせであってもよい。ＣＰＵ部品は、ＣＰＵ１２０と、関連するＰＲＯＭ、ＲＡＭ、タイマ、割り込み制御部、出力ビットレジスタ、および入力ビットレジスタとを含む。ＣＰＵ部品の一部としてさまざまな部品が示されており、これらは割り込みレジスタ１２２と、入力ビットレジスタ１２４と、出力ビットレジスタ１２６と、タイマ制御１２８とを含む。ＣＰＵ１２０は、イベントプログラムプロセッサとして動作可能であり、ＨＳＳＰＩ１３０、モデム制御１３２、および８進ＤＡＣ１３４といった外部部品に対して、さらなるインターフェースを有する。さらに、ＣＰＵは、ＷＤＳＰと、ＭＤＳＰと、ＢＩＯＰとに対して割り込みをかけ、キーラインを制御する。図４に外部部品システム時間カウンタ１３６およびＷＤＳＰ１３８も示す。
【００４１】
イベントキュー１１０は、順番に並べられた一連のイベントを収容する。また、各イベントは例えば２４ビットの小数秒時間および８ビットのイベントタグとして構成され得る。小数ビット時間の範囲は０から９，５９９，９９９（０ｘ０から０ｘ９２７ＢＦＦ）で、これは０秒から１秒に相当し、各カウントは１０４．１６６ナノ秒に相当する。タグは、典型的には、任意の８ビットの値であり、イベントが起動する時にＣＰＵがどのプログラムを実行するかを特定するためにプロセッサがこのタグを使用できる。
【００４２】
イベントは、典型的には発生順序でイベントキュー１１０に書き込まれる。キューに残っている最も古いイベントが、保留イベントである。保留イベントのイベント時間がシステム時間の小数秒部分と等しくなると、保留イベントは起動されるべきものとされる。起動時、イベントタグレジスタ１１４には、イベントタグと、起動されたイベントシーケンサ割り込みとが読み込まれ得る。イベントはキューから取り出され、次のイベントが保留イベントになる。さらに、先行タグがタグレジスタから読み取られないうちに新しいタグが読み込まれた場合は、イベントシーケンサオーバーフロー割り込みが起動される。
【００４３】
時間比較器１１２は、保留イベントを適切な時間に起動させる。時間比較器１１２は、保留イベントのイベント時間をシステム時間カウンタ１３６の小数秒時間と比較する。システム時間の小数秒は２５ビットを用いているので、システム時間カウンタの最下位ビットは無視され、この非限定例ではイベント時間の分解能がおよそ１０４．１６６ナノ秒となる。時間比較器１１２が起動をかけると、保留イベントのタグがタグレジスタ１１４へ読み込まれ、保留イベントがキュー１１０から取り出される。キュー内の次のイベントが新しい保留イベントになる。ＣＰＵが稼働している時に保留イベントが起動されると、オーバーランエラーが生じる。
【００４４】
保留イベントが起動されると、タグレジスタ１１４には保留イベントのイベントタグが読み込まれ得る。どのプログラムを実行するかを決定するために、ＣＰＵはタグレジスタを読み取ることができる。
【００４５】
シーケンサＣＰＵすなわちイベントプログラムプロセッサ１２０は、単純な８ビットのＣＰＵとして構成され得る。ＣＰＵは、割り込みに応じて短いイベントプログラムを実行できる。プログラムが実行された後、ＣＰＵは、スリープ状態に戻って次の割り込みを待つことができる。割り込みは、比較レジスタと、波形部品からのいくつかの障害状態とによって生成され得る。ＣＰＵは、典型的には、自身のプログラムおよびデータメモリ１２１と、割り込み制御部と、内部タイマとを有する。ＣＰＵは、ＨＳＳＰＩ１３０、８進ＤＡＣ１３４、モデム制御１３２、入力ビットレジスタ１２４、および出力ビットレジスタ１２６に対してインターフェースを有する。
【００４６】
割り込み制御部は、いくつかの割り込み発生源を有することができ、割り込み発生源としては、時間比較器１１２や、いくつかの障害信号および状態信号などがある。割り込み制御部は、マスクレジスタを用いて割り込み発生源を有効および無効にすることができる。割り込みが発生すると、ＣＰＵは、割り込みレジスタを読み取り、ビットを調べて何が割り込みを生じさせたかを明らかにして、適切な割り込み処理ルーチンを実行する。割り込みが比較器から生じた場合、ＣＰＵは、タグレジスタ１１４を読み取り、タグレジスタ１１４を用いて、どのプログラムを実行するかを決定する。
【００４７】
ＣＰＵは、ある非限定例においては２０４８ｘ８のＣＰＵ  ＰＲＯＭから符号およびデータの表を取り出す。このＰＲＯＭは、デュアルポートＲＡＭを用いて実装され得る。ＷＤＳＰは読み書きポートへ接続でき、ＣＰＵは読み取り専用ポートへ接続できる。ＣＰＵ  ＰＲＯＭは、典型的にはＣＰＵによって読み取られる。ＰＲＯＭは、ＷＤＳＰによってプログラムされることができ、ＣＰＵが能動的に稼働している間を含む任意の時にＷＤＳＰによって変更され得る。ＰＲＯＭの表は、典型的には、周波数および変調方式の変更を反映するために頻繁に更新され得る。ＣＰＵは、データを格納し取り出すために６４ｘ８のＲＡＭを有することができる。
【００４８】
ＣＰＵは、図３に示すように、波形部品からビット状態を取得するために８ビットの入力ビットレジスタ１２４を有することができる。また、ＣＰＵは、波形部品を制御するために８ビットの出力ビットレジスタを有することができる。これらの出力ビットは、さまざまなプロセッサへ通じる割り込み線（ＩＮＴ）を含み得る。ＢＩＯＰは、制御および状態がシーケンサＣＰＵ１２０へ経路制御されるようにＨＳＳＰＩマルチプレクサを設定することができる。これにより、ＣＰＵは、イベントまたは警告状態に応じて、ＨＳＳＰＩ１３０に対して読み取りおよび書き込みができる。
【００４９】
また、ＣＰＵは、８進ＤＡＣ１３４にも書き込みができる。ＣＰＵは、例えば非限定例では５つのうちの１つというように、異なる８進ＤＡＣ制御元の１つであってよく、競合する８進ＤＡＣコマンドを別々の制御元が送ることのないよう、ソフトウェアで保証する。ＣＰＵは、８進ＤＡＣの８つの出力のいずれをも制御できる。
【００５０】
ＣＰＵは、シーケンサイベントに応じて、制御語を書き込むこと、または切り替えることにより、新しいモデム設定を読み込むことができる。ＣＰＵは、プログラムの実行に遅延を挿入するために用いられ得る内蔵タイマを有することができる。ある非限定例において、タイマは、５２ナノ秒のインクリメントで０．８７２秒まで遅延できる。タイマは、典型的には最下位バイトから最上位バイトまで書き込まれる３ビットのレジスタを有することができる。指定された時間が終了した後、信号は、割り込み制御部および入力ビットレジスタ１２４の両方へ送られ得る。
【００５１】
ＷＤＳＰインターフェースは、典型的には１６ビットの非同期並列インターフェースである。このインターフェースは、およそ８単語のアドレス空間を有して、単語アクセスに対応することができる。データ転送タイミングは、波形コアによって決定される。
【００５２】
ＦＰＧＡおよびソフトウェアの両方の設計作業を容易にするため、標準化されたレジスタ命名規則を用いることができる。ＩＰコアの一部ではないＦＰＧＡレジスタは、最初の文字を用いてレジスタが存在するＦＰＧＡを示し、２番目の文字を用いてプロセッサインターフェースを示すことができる。ＩＰコアの一部であるレジスタは、最初の文字Ｉを有することができ、２番目および３番目の文字はＩＰモジュールに固有のものとすることができる。イベントシーケンサ用のレジスタは、ＩＥＳで始まり得る。レジスタ名の残りの文字は、レジスタの機能を示すことができる。
【００５３】
イベントシーケンサは、無線ＦＰＧＡ設計者ＩＰコア標準を用いて、ＩＰコアとして実装され得る。この標準では、ＩＰブロックが自身のレジスタブロックおよび割り込み生成器を有する必要がある。割り込みが重なるのを避けるため、個々の割り込み発生源を装置から出すこともできる。
【００５４】
本発明のある非限定例において、シーケンサＣＰＵは、データ操作、プログラム分岐、読み込みおよび格納のために用いられる７つの内部レジスタを有することができる。各レジスタは、レジスタを機械語命令で符号化するために用いられる３ビットのレジスタ番号を有することができる。シーケンサＣＰＵは、レジスタの位置でプログラムメモリから読み取られた８ビットのオペコードを、復号して実行する。各オペコードは、オペコードの取り出しに続いてメモリから読み取られ得る０個、１個、または２個の関係するオペランドを有することができる。
【００５５】
シーケンサＣＰＵ用のアセンブラは、イベントシーケンサのためのさまざまなプログラムの生成を容易にすることができる。このアセンブラは、８ビットマイクロコンピュータ用の市販の多くのアセンブラと同様のものであってよい。アセンブラは、ラベル、指令、コメントおよびアセンブラ命令を含むソースファイルを、生の機械語のプログラムを含む出力ファイルへと変換できる。アセンブラは、ある非限定例では言語ＲＵＢＹで書かれることができる。ＲＵＢＹは、ほとんどすべての一般的コンピューティングプラットフォームで利用可能な、無料で配布されているオープンソースの言語である。アセンブラは、無線開発環境用に、ＤＯＳで実行可能な方法で提供されてもよい。アセンブラ命令は、ＣＰＵの機械命令から導かれ得る。
【００５６】
アセンブラおよびＣＰＵは、同じ命令セットへリンクされ得るものであり、従って、ＣＰＵの変更は、アセンブラの変更を必要とする場合がある。ＣＰＵおよびアセンブラに対して命令を加え、または削除することが、ある時点では必要あるいは都合のよい場合がある。
【００５７】
ＣＰＵは、モジュールにおいてシーケンサのＶＨＤＬコードで実装され得る。モジュールは、上位ニブルを復号して命令の型を決定する。モジュールはさらに、下位ニブルのいくつかを復号して正確な命令ならびにパラメータおよびオプションを決定してよい。
【００５８】
ＣＰＵに新しい命令を加えるために、システムはその命令をどのように命令マップに入れ込むかを決定できる。これは、新しい命令型復号を新しい上位ニブル符号のために加えることによって、またはそれを現在ある命令型の部分型として加えることによって、実現され得る。命令型のリストで、ニブル復号のために定数が加えられるものとする。また、命令を実行するための実際の符号は、状態機械を定義するプロセスに置かれ得る。
【図面の簡単な説明】
【００５９】
【図１】図１は、本発明の非限定例によるイベントシーケンサを組み込むことができる手持ち式無線機としての携帯型無線通信装置の斜視図である。
【図２】図２は、ソフトウェア無線機で用いられる典型的な無線回路の高レベルブロック図である。
【図３】図３は、本発明の非限定例によるシーケンサハードウェアの高レベルブロック図である。
【図４】図４は、本発明の非限定例によるイベントシーケンサの高レベルブロック図であり、ＣＰＵ部品と、外部部品と、シーケンサ部品とを示す図である。
【図１】
2009528712.tif 000003
【図２】
2009528712.tif 000004
【図３】
2009528712.tif 000005
【図４】
2009528712.tif 000006
【手続補正書】
【提出日】平成20年5月9日(2008.5.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
無線回路と、前記無線回路で動作するように実行可能であり、音声およびデータを送受信するために波形アプリケーションが前記無線回路で動作可能にするオペレーティング環境を定義する無線ソフトウェアシステムと、
前記無線回路におけるイベントのシーケンスおよびタイミングを制御するイベントシーケンサを含むプロセッサとを備え、
前記イベントシーケンサは、任意の順序でアクセス可能であり一連のイベントを順序通りに保持するイベントキューまたはイベントを保持するイベント連想メモリ（イベントＣＡＭ）のいずれかを含み、あるいは一方が他方へ入力するように接続された前記イベントキューと前記イベントＣＡＭとの組み合わせを含み、さらに、前記イベントキューまたは前記イベントＣＡＭで動作し、イベントが終了した時に割り込みをかけて保留イベントを適切な時間に起動させる時間比較器を有することを特徴とするソフトウェア無線機。
【請求項２】
前記イベントキューまたは前記イベントＣＡＭ内に含まれる各イベントは、実行されるイベントプログラムを特定するために用いられる値を有するイベントタグを含むことを特徴とする請求項１に記載のソフトウェア無線機。
【請求項３】
前記イベントシーケンサは、あらかじめ選択された時間にイベントを起動させる時間比較器を含むことを特徴とする請求項１に記載のソフトウェア無線機。
【請求項４】
前記イベントシーケンサは、実行されるイベントプログラムを決定するイベントプログラムプロセッサを含むことを特徴とする請求項１に記載のソフトウェア無線機。
【請求項５】
モデム制御回路をさらに備え、前記イベントシーケンサは、前記無線回路および前記モデム制御回路の環境設定を調整する動作が可能であることを特徴とする請求項１に記載のソフトウェア無線機。
【請求項６】
ソフトウェア無線機の無線回路内でのイベントのタイミングを制御する方法であって、
音声およびデータを送受信するために前記無線回路で動作する波形アプリケーションを読み込み、
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）内に含まれており前記無線回路で動作可能なイベントシーケンサによって、前記無線回路におけるイベントのタイミングおよびシーケンスを制御し、
前記イベントシーケンサのイベントキュー内に一連のイベントを順序通りに保持し、
保留イベントのイベント時間を比較し、イベントが終了した時に割り込みをかけて保留イベントを適切な時間に起動させることを特徴とする方法。
【請求項７】
前記イベントシーケンサ内のイベントタグの値を読み取ることによって、読み込まれるイベントプログラムを特定することを特徴とする請求項６に記載の方法。
【請求項８】
前記無線回路を含んだ携帯型無線通信装置を形成することを特徴とする請求項６に記載の方法。
【国際調査報告】
2009528712.tif 000007