無線ネットワークにおける動的スクランブル方法
パケットをスクランブルするのに用いるパラメータを変更する方法を開示する。最初のパケットスクランブルによってキラーパケットが生成される場合、パラメータに別の値を用いてパケットを再スクランブルすることで、キラーパケットを回避する。周波数ホッピング通信を採用するネットワークでは、スクランブルアルゴリズムの入力としてチャネル識別子を使用できる。この実施例においては、データパケットをスクランブルして、第1のビット列としてあるチャネルを介して送信すると同時に、第2のビット列として別のチャネルを介して送信する。これらのチャネルの一方を介して送信されたスクランブルパケットがキラーパケットとなった場合、他方のチャネルを介して再送した際に再びキラーパケットとなる確率は統計学的にみて非常に低い。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、無線通信ネットワークにおける安全な送信及びロバスト性の高いパケット受信に関する。ここに述べる発明は、データネットワークでの良好なデータ受信を阻害する「キラーパケット」関連の問題に対処するものである。
【背景技術】
【0002】
無線周波数(RF)データ通信システム、特に、単純で低コストなシステムにおいては、変調器と復調器の性質上、受信ノード側で確実に復号化できないビット列が送信ノードから送信される可能性がある。これは、送信されたビット列に連続して含まれる0ビット又は1ビットの数が多すぎる場合に起こりうる。
【0003】
チャネル状態の変化に対処すべく、受信機内の信号復調器は、論理1ビットと論理0ビットを区別するための閾値を動的に自己校正する。この自己校正は、直近の受信信号における受信ビットの平均値を判定することで行なうことができる。例えば、振幅変調を用いる場合は、信号の平均振幅によって、論理1ビット、すなわち高振幅と、論理0ビット、すなわち低振幅とを区別する。また、周波数偏移(Frequency shift keying)方式等の周波数変調を用いる場合は、受信信号の平均周波数を閾値として用いることで、受信信号が含む符号化された2つの異なるビット値を検出する。
【0004】
全てのビットが同じ値を有するビット列を受信した場合、信号の変調パラメータ、例えば、振幅や周波数はその列中で変化されない。従って、それらのビット値に対して、信号の平均値、すなわち閾値のドリフトが生じる。この場合、復調器は、受信したビットの1或いは0を、高い信頼性をもって検出することができない。パケットを復号化できなかった場合、受信機は送信機にエラーメッセージを送って、パケットの再送を要求する。しかし、復調器のエラーが上述したような特殊なパケットパターンによって引き起こされる以上、再送されたパケットを受信した受信機では、再び同様のエラーが発生する。こうしてパケット送信が繰り返されることになる。受信機からのエラーメッセージ送出とそれに対する送信機からのパケット再送とが繰り返されることで、解消不可能な障害がネットワーク上に生じてしまう。このようなビット列を含むパケットは、「キラーパケット」として知られる。「キラーパケット」とは、信号強度や信号対雑音比が良好であっても確実な処理を行なえないパケットのことである。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許出願第12/005,268号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
これを防止するために、それぞれのビットの送信状態を切り替えることが行なわれてきた。例えば、ビット周期半ばでローレベルからハイレベルに遷移することで「1」を表し、ハイレベルからローレベルに遷移することで「0」を表す。これは、継続的に復調器が自己校正を行なえるようになるロバスト性の高い方法である。この方法の短所は、データ転送速度が実質的に2倍になる(占有オンエア・スペクトルが2倍になる)一方で、シンボル・レートが変化しないことである。この問題は、特に、帯域幅に制限のある無線データネットワークにおいて好ましくない。
【0007】
キラーパケットの送信を回避するもう1つの方法は、データをスクランブルすることであり、データの「ホワイトニング」としても知られる。この方法では、送信データビットの順番を入れ替えるか、或いはその値を変更することで、通常のビットパターン(例えば、テキストメッセージや同一の2値ビットを多く含むデータパケット)においては、同一値を持つビットの長い列が送信されることがないようにする。
【0008】
このスクランブル方法は「単純に」、すなわち、データの事前知識なしに適用される。そのため、スクランブル処理の結果、それまで無害だったビット列が予期せずしてキラーパケットに変化してしまうことがある。統計学的に見て可能性は低いとはいえ、膨大な数のパケットを送信するネットワークではこうした状況が起こることもある。その度に、解決不可能なパケットによるネットワーク障害が生じる。この問題に対処するために、これまでは直流分再生回路等のハードウェアを受信機に内蔵することで、閾値の適正なアライメントを維持してきたが、ハードウェアの付加はコスト増につながる。
【課題を解決するための手段】
【0009】
パケットのスクランブルに使用するパラメータを変更する方法が開示されている。統計上、異なる値のパラメータを用いて同じデータパケットを2通りにスクランブルした場合、いずれのスクランブルパケットもキラーパケットとなる可能性は低い。従って、元のデータストリームが受信機でキラーパケットとなる場合は、最初のスクランブル処理でキラーパケットイベントを阻止できる可能性が高い。しかし、その最初のスクランブルでキラーパケットが生成されてしまった時には、異なる値のパラメータを用いて再スクランブルを行ない、再送されたパケットがキラーパケットになるのを防止する。
【0010】
受信機が確実にパケットを解読できるように、変更するパラメータは送受信機間で事前に知られた値を持つものでも良い。例えば、周波数ホッピング方式によるネットワークでは、通信チャネルの周波数は、既知のパターンで変化する。そのため、あるタイミングで用いられる特定の周波数チャネルは、送受信機双方にとって既知のものとなる。スクランブルアルゴリズムの入力としてはチャネル識別子を使用できる。この実現例においては、データパケットをスクランブルして、第1のビット列としてあるチャネルを介して送信すると同時に、第2のビット列として別のチャネルを介して送信する。これらのチャネルの一方を介して送信されたスクランブルパケットがキラーパケットとなった場合、他方のチャネルを介して再送した際に再びキラーパケットとなる確率は統計学的にみて非常に低い。
【0011】
その他のデータアイテムもスクランブルパラメータとして採用できる。例えば、送信機と受信機が時刻同期をとっている場合、クロック値を変更するスクランブルパラメータとして使用できる。別の例としては、送信パケットに対応付けられたシーケンス番号を利用しても良い。変更するパラメータ値が既知の曖昧性をもって送受信機双方に知られていれる限り、受信機はスクランブルデータパケットを解読できる。
【0012】
上記の例においては、送信機と受信機の双方が、あるタイミングで用いられるパラメータ値を事前に知っている。別の実現例では、送信パケットを異なるパラメータ値を用いて複数回スクランブルすることが可能であり、受信機ではそれぞれのパラメータ値を用いてデスクランブルすることができる。例えば、2つの異なる値を用いてデータをスクランブルした場合、統計学上、生成されたスクランブルデータが2つともキラーパケットを生じる可能性は非常に低い。そのため、デスクランブルされ且つ復号化された2つのパケットのうち少なくとも1つは受信機で利用可能となる。
【図面の簡単な説明】
【0013】
【図1】本発明が実現される例示的な無線通信ネットワークを示すブロック図である。
【図2】仮想的FHSSホッピングシーケンスを示す図である。
【図3】FHSSホッピングシーケンスを実現するための例示的なチャネル配列を示す図である。
【図4a】スクランブルパラメータとしてチャネル識別子を用いた送信ノード及び受信ノードそれぞれのスクランブル方法を実現するための回路を示すブロック図である。
【図4b】スクランブルパラメータとしてチャネル識別子を用いた送信ノード及び受信ノードそれぞれのスクランブル方法を実現するための回路を示すブロック図である。
【図5】例示的なスクランブラを示す概略図である。
【図6】チャネルインデックスのスクランブル方法を示すフローチャートである。
【図7】データパケットの構造を示す図である。
【図8】別の実施例における送信ノードの動作を示すフローチャートである。
【図9】別の実施例に関するデスクランブラを備えた例示的な受信機を示す概略論理図である。
【発明を実施するための形態】
【0014】
本発明の前述した態様及び付随する利点は、添付の図面とともに以下に述べる詳細な説明を参照することで更に容易に認識され、より良く理解されるであろう。
【0015】
ここに述べる発明は、無線或いは有線ネットワークで生じうるキラーパケットの連続再送を回避する手段を提供する。これは、パケット・データ・スクランブルにおける多様性により、パケットそのもののビット列を変更することで達成される。
【0016】
本発明の基礎概念を理解し易くするために、FSK変調及びFHSS(周波数ホッピング方式:Frequency-Hopping Spread Spectrum)送信技術を用いた無線ネットワークで実現される実施形態を参照してそれらの概念を説明する。しかし、これらの概念は、別の変調及び/又は送信方法を用いた他の種類のデータネットワークにおいて実現しても良いことは理解されるであろう。
【0017】
本発明の概念を実現する無線通信ネットワークの一例を図1に示す。ここに図示する特別な例は、公益企業(Utility)等のコモディティ供給業者と企業が供給するコモディティの使用量を監視する計器との間で通信が発生する自動検針・自動検針インフラ(AMR(Automated Meter Reading)/AMI(Automated Meter Infrastructure))環境に関する。この種の環境では、電気、ガス、水道等のコモディティの使用量を計測する各計器は、ローカルエリアネットワーク12等の無線ネットワーク内のノード10に対応する。個々のノードはアクセスポイント、すなわち、ゲートウェイ14と通信する。次にゲートウェイは、ワイドエリアネットワーク18、例えば、専用通信網或いはインターネット等の公衆通信網を介して公益企業16と通信する。ノード10b、10c及び10nが示すように、いくつかのノードは、無線リンクによりゲートウェイ14と直接通信することが可能である。例えば、地理上の距離や地形が原因となって、ノードとゲートウェイとが無線リンクを介して直接通信できないこともある。こうしたノードは、隣接ノードの1つと通信し、その隣接ノードはゲートウェイ14と直接、或いは更に他の隣接ノードを1つ以上介して通信する。例えば、図示の例において、計器ノード10aは、隣接ノード10bを介してゲートウェイ14と通信する。ノード10bは、実際には計器ノードとしてだけでなく中継器としても機能する。
【0018】
図1では不図示であるが、ローカルエリアネットワーク12は、計器ノード以外のノードを含むことができる。例えば、計器ノードからゲートウェイ14へ、或いはその逆方向への転送に計器とは無関係の中継ノードを用いても良い。結果として、計器ノードは、本来必要とされる電力より低い送信電力で動作できる。
【0019】
図1に例示するネットワークでは、単一のゲートウェイ14を採用している。しかし、変形例として、1つ以上の計器ノード10が複数のゲートウェイのいずれか1つを介して公益企業16と通信しても良い。この構成により、計器ノードと公益企業との間の通信路が冗長化されるため、ネットワークのロバスト性を高めることができる。更に別の変形例として、それぞれのノードを異なるゲートウェイを介して異なる公益企業或いはコモディティ供給業者に接続しても良い。
【0020】
ネットワークの一実施例において、LAN12を介した無線通信にはFHSS(周波数ホッピング方式:Frequency-Hopping Spread Spectrum)の送信を採用する。FHSSとは、広い周波数帯域においてランダムではあるが、予測可能な順序である周波数から他の周波数へと時間の関数で「ホップする」狭帯域キャリア信号を用いてデータ信号を変調する技術である。適切に同期をとることで、単一の論理チャネルが維持される。
【0021】
送信周波数は、拡散或いはホッピング符号により決定される。確実に信号を受信するために、受信機は、同一のホッピング符号に設定され、適切なタイミング及び正しい周波数の入力信号を検出する。現行の規定では、1送信チャネルあたり最長ドウェル時間(1回のホップ時に特定の周波数が維持される時間)400msで50以上の周波数の使用が求められている。
【0022】
FHSS送信では、比較的高速にチャネルが切り替わる(或いはホップする)。ノードのホッピングシーケンスにおいては、スロットタイムと呼ばれる時間の間それぞれのチャネルを占有する。スロットタイム中に受信がなければ、ノードは、自己のホッピングシーケンスにおいて、受信チャネルを次のチャネルに変更する。受信が検出されれば、受信処理を行なうためにチャネルホッピングを停止する。パケットを送信するときは、チャネルホッピングを停止し、パケットをその時間の間、特定のチャネルで送信する。トランザクションが終了すれば、(パケットの送受信が発生しなければ使用されていたであろう本来の周波数を用いて)チャネルホッピングを再開する。
【0023】
ノードのホッピングシーケンスで全チャネルを巡回することをエポックと呼ぶ。ノードのホッピングシーケンスでは、全チャネルを一巡し終えてから、2度目の巡回を開始するように関連規定で定められている。一実現例においては、エポックを繰り返す疑似ランダム(pseudo-random)ホッピングシーケンスを用いてこの結果を保証する周波数ホッパーを使用することができる。言い換えれば、エポックの特定のスロットタイムにおいては、常に同じチャネルを使用する。この概念を図示する図2は、10チャネルを使用するノードの仮想的FHSSホッピングシーケンスを示している。
【0024】
FHSS通信システムの送信ノードは、適切なチャネルを使用して所定のタイミングでデータを受信ノードに送るために、目標受信ノードがホッピングシーケンスのどこに位置するかを把握しておく必要がある。例えば、各ノードにチャネルシーケンスのテーブルを格納しておくことができる。図3に1エポックあたり83スロットを有するホッピングシーケンスのテーブルを例示する。このテーブルは配列として実現される。送信時、送信ノードは、このテーブルを使用してインデックス、すなわち、チャネル識別子を取得する。チャネルインデックスは、送信ノード及び受信ノードの双方がその値を事前に知っているパラメータであり、これにより送受信ノードは同期して通信を行なうことができる。目標受信ノードのチャネルインデックスは種々の方法で決定可能である。その1つとして、チャネルインデックスを送信時に動的に決定する方法が、2007年12月27日に出願され、その開示内容をここに取り込む特許文献1に記述されている。
【0025】
本発明の例示的な一実現例によれば、あるパケットの送信チャネルの識別子、例えば、チャネルインデックスは、そのパケットのデータをホワイトニング、すなわち、スクランブルするためのスクランブルアルゴリズムのシードとして用いることができる。従って、スクランブルシードは、ホッピングシーケンスのチャネル間で異なることになり、1つのデータパケットは、異なるチャネルで送信される際に2つの異なるビット列にスクランブルされる。スクランブルの結果、一方のチャネルにキラーパケットが生じ、もう一方のチャネルにもキラーパケットが生じる確率は低い。従って、キラーパケットの存在或いは発生により生じた問題を解消するのに必要なデータパケット再送の回数を最小限に抑えることができる。
【0026】
図4a及び図4bに、本発明の一実施例の一実施形態を示す。図4aは送信ノードの動作を示すブロック図である。クロック信号CLKをタイマー20に入力し、FHSSエポックのスロットを識別する。タイマー20は、実質的に分周器として機能し、その出力は新しいタイムスロットの開始点を示す。これらのタイムスロットの指示は、スロット・チャネル変換器22に供給され、それぞれの新しいタイムスロットに対応するチャネルインデックスが生成される。スロット・チャネル変換器22は、図3に示すような配列を用いて変換を行なっても良い。チャネル周波数変換器24は、チャネルインデックスを用いて適切なタイムスロットの送信周波数を決定する。決定した周波数は、送信機26に入力信号として供給される。
【0027】
送信するパケットデータは、スクランブラ28に入力される。スクランブラ28は、ビットの順序及び/或いは値を変更してデータをホワイトニングするように機能する。スクランブルされたデータは、周波数偏移(FSK)変調器等の変調器30に供給され、データビットをシンボルで表す変調データ信号が生成される。変調データ信号は、その後、チャネルインデックスに基づいて決定された適切なキャリア周波数を用いて、送信機26によって送信される。
【0028】
図示の実施形態においては、パケットデータのスクランブルのための開始シードは、チャネル毎に変化するので、スクランブラによるデータホワイトニングで予期せずしてキラーパケットが発生した場合であっても、迅速な回復が可能となる。このために、スロット・チャネル変換器22によって生成されたチャネルインデックスは、シード値としてスクランブラ28に入力される。説明のために、スクランブラ28を図5に示す。図示の例では、7ビット線形フィードバックシフトレジスタ32を用いる。排他的論理和ゲート34は、第4ビット及び第7ビットの値を処理してフィードバックビットを生成し、第1レジスタに入力する。第7レジスタの出力は、排他的論理和ゲート36にも供給され、パケットデータと結合されてスクランブルビットを生成する。
【0029】
典型的には、この種のスクランブラの線形フィードバックシフトレジスタ32の全てのレジスタは1で初期化される。しかし、図4aに示す実施形態では、レジスタの初期化にチャネルインデックスを用いる。チャネルインデックスは、送信チャネル毎に異なるため、スクランブラのシーディング、すなわち、初期化をチャネル毎に異なる値を用いて行なうことで、異なるスクランブル出力が得られる。
【0030】
図4bは、スクランブル動作の逆の動作を行なう受信ノードの回路を示す。同図において、チャネルインデックスは、適切な受信チャネル周波数を決定するのに使われ、受信機38に制御入力として供給される。復調器40は、受信信号を復調して受信したシンボルからデータビットを導出する。スクランブルされたデータビット列は、デスクランブラ42に供給される。デスクランブラ42は、スクランブラ28と同様である。デスクランブラもまた、チャネルインデックスによって初期化され、送信ノードのスクランブラ28が行なったスクランブルに対称的なデスクランブル動作を行なう。デスクランブラ42の出力は、元のパケットデータを含み、これは従来の方法により復号化することができる。
【0031】
図6は、図4a及び図4bの実施形態で実施される処理全体を示す。タイマー20によるチャネル切り替えタイマーイベント610により、プロセスを開始する。ステップ620で、送信ノード及び受信ノードの双方が新しいチャネルインデックスを識別し、新しいホッピングシーケンスチャネル用にスクランブル符号とパケット構成を変更する。ステップ630で、データパケットの先頭を検出する。新しいチャネルでのデータパケットのスクランブルを開始するために、ステップ640で、チャネルインデックスと同一のスクランブルシードを設定する。このシード値を用いて、受信機は、デスクランブラを初期化し、ステップ650で、パケットを受信する。ステップ660で、CRCチェックを行ない、受信機がパケットビットを解読できるか否かを判定する。チェックの結果、データデスクランブルの後で解読可能であれば、ステップ670で、受信機はデータを有効パケットとして処理する。CRCチェック660の結果がNOならば、送信ノードにメッセージを送り返してパケットエラーを通知する。送信ノードは、新しいチャネルインデックスに基づいて、次に利用可能なチャネルを異なるスクランブルシードで再構成し、パケットを再送する。受信機でのエラーがキラーパケットイベントによるものであれば、新しいチャネルで新しいスクランブルシードを用いて再送されたパケットに同様の問題は生じない。
【0032】
上述したように、所定のタイムスロットのチャネルインデックスを決定する種々の方法が知られている。これらの中には、例えば、特許文献1に開示された方法のように、送信ノード及び受信ノードのそれぞれについてチャネルインデックスを別々に決定するものがある。この場合、チャネルインデックスをパケット情報の一部として送信する必要はない。しかし、他の例では、フォールバックに備えて、パケット情報にチャネルインデックスを含めることが望ましい。これにより、データパケット送信のロバスト性を高くできる。特に、チャネルインデックスによって、受信パケットの先頭を確実に検出するための付加的なデータが得られるようになる。
【0033】
図7は、パケットのデータ構造を示す。パケットは3つの主要な構成要素、すなわち、プリアンブル44、ヘッダ46、ペイロード48からなる。ペイロードデータは、スクランブルされるが、プリアンブル及びヘッダは平文で、すなわち、スクランブルされずに送信される。プリアンブルは、交互に並んだ0ビットと1ビットとの列からなるので、受信ノードは信号を検出して、受信パケットのその他の部分との周波数・タイミング同期をとることができる。この同期領域に続いて開始フラグが配置される。開始フラグは0ビット及び1ビットの既知の列からなり、これを復号化することで、受信ノードは後続のパケットデータの復号化及び解読を開始する。開始フラグの特徴の1つに、シンボルレベルでの同期を提供し、1ビットと0ビットとが交互に並んだ先行するプリアンブルとともに自己相関特性を最適化することが挙げられる。
【0034】
本発明の一態様によれば、チャネルインデックスは、パケットのプリアンブルに含めることができる。実際には、チャネルインデックスは、開始フラグの延長として機能し、これにより、パケットの先頭検出のロバスト性を高めることができる。より詳細には、開始フラグが1バイトで構成される場合、誤検出が起こる可能性がある。このとき、あるビット列が開始フラグとして誤って解釈され、受信機回路が意味不明なデータを復号化し始める。誤検出が起こる確率を低下するために、開始フラグは好適には2バイトで構成される。しかし、この場合でもまだ誤検出が生じる可能性はある。チャネルインデックスを開始フラグの末尾に含めると、受信ノードはパケットデータの先頭を検証するための付加情報を取得できる。プリアンブル内で検出されたチャネルインデックスが、受信ノードが現在動作しているチャネルのインデックスと一致した場合のみ、パケットを処理する。これにより、誤検出が生じて、復号化回路が不要な電力を消費するのを抑制できる。
【0035】
上記の例では、チャネルインデックスは、パケットを受信した際にスクランブラを初期化するためのシードとして用いられる。チャネルインデックスは、送信ノード及び受信ノードの双方に既知であるため、高い信頼性を持ってこの目的に用いることができる。この目的のため、チャネルインデックス以外のパラメータを使用できることは理解されるであろう。例えば、ノード同士が時刻同期をとっているネットワークにおいては、時間に基づく値をスクランブルアルゴリズムのシードとして用いることができる。例えば、現在の分と秒とを表すデジタル値でシードを構成しても良い。
【0036】
上記の例では、キラーパケットの検出は受信ノードで行われる。この状態の検出に応じて、受信ノードが発信ノードにエラーメッセージを送信すると、スクランブルパラメータ、例えば、初期シード値に別の値を用いてパケットが再送される。別の実現例では、送信ノードは、キラーパケットの存在を送信前に検出して、スクランブルパラメータに別の値を用いてデータパケットを再スクランブルできる。図8及び図9は、この実現例の一実施形態を示す。図8は、送信ノードで行なわれるプロセスを示すフローチャートである。ステップ800で、送信のためのパケットを生成する。ステップ802で、例えば、図4a及び図5に示すスクランブラ28を用いて、パケットをスクランブルする。このスクランブルは、送信ノード及び受信ノード双方が知る所定のシード値Aを用いて行われる。ステップ804で、スクランブルデータを検証し、キラーパケットが生成されるか否かを判定する。例えば、スクランブルされたビット列において、連続して同じ値を持つビットの数を検出器でカウントする。カウント値が所定の数、例えば、6に達したならば、スクランブルデータはキラーパケットの可能性ありと判定する。
【0037】
スクランブルデータがキラーパケットとなる可能性がなければ、ステップ806及び808で、例えば、図4aに示すように、パケットを変調し、送信する。しかし、ステップ204で、スクランブルデータがキラーパケットとなる可能性があると判定された場合、ステップ210で、スクランブルパラメータを第2の既知の値Bに変更し、ステップ802で、値Bをスクランブルパラメータに用いて元のデータパケットを再スクランブルする。2回目のスクランブルの後、ステップ804で、スクランブルデータがキラーパケットとなる可能性があるか否かを判定するために再び評価を行なう。統計学的にみて、新しい値をスクランブルパラメータとして用いた場合に前回と同様の結果が得られる確率は低い。従って、再スクランブルしたパケットを送信できる。しかし、依然としてキラーパケットが生成されるようなら、更に他の既知の値をスクランブルパラメータに用いてパケットを再スクランブルする。
【0038】
パケットを受信した受信ノードには、受信パケットをスクランブルするのに使用したパラメータ値が分からないことがある。このため、受信ノードは、受信パケットを複数の方法でデスクランブルする。図9の概略論理図によれば、入力信号はまず、プリアンブルデコーダ50によって処理される。プリアンブルデコーダ50は、入力したプリアンブルを復号化し、受信したシンボルに開始フレームが存在するか否かを検出する。存在すれば、パケットのペイロードデータを2つのデスクランブラ52及び54にそれぞれ供給する。一方のデスクランブラ52は、既知のシード値の1つである値Aで初期化され、他方のデスクランブラ54は、他の既知のシード値Bで初期化される。受信パケットのペイロードデータのスクランブルに使用したシード値によっては、デスクランブラの一方は意味のないデータを出力する。しかし、他方のデスクランブラは正確にデスクランブルされたデータを出力する。2つのデスクランブラの内、その時点で適切なものを選択するには、それぞれのデスクランブラの出力データに対してCRCチェックを行なう。正しいCRCの結果を示す出力データを用いてセレクタを制御し、ペイロードの復号化といったその後の処理にデータを受け渡すことができる。
【0039】
図9に示す実施形態において、受信ノードは2つのデスクランブルを並行して行なう。他の実施形態では、データを次の処理に受け渡す前に、逐次処理を用いて、まず、2つのシード値の一方を使って受信データをデスクランブルする。CRCチェックの結果が正しくなければ、2つの既知のシード値の他方を使って同じデータをデスクランブルする。
【0040】
上述した説明から分かるように、本発明は、キラーパケットの送信によって生じるネットワーク障害を防止するのに有効な方法を提供するものである。データパケットのスクランブルによって、予期せぬキラーパケットの生成が起こった場合、スクランブルパラメータに異なる値を用いてデータパケットを再スクランブルする。再スクランブルされたデータパケットもまたキラーパケットとなる確率は統計学的にみて極めて低い。従って、データパケットの処理回数は、最高でも2回であり、キラーパケットの影響を受けるリソースを削減できる。
【0041】
一実施形態をFHSS送信を用いたネットワークで実現する際、チャネルインデックスをスクランブルアルゴリズムのシードとして使う。キラーパケットの影響を排除するために、本実施形態では、チャネル毎にシードを変更することの他、数多くの利点を提供する。特に、スクランブルシードをチャネル毎に変更することで、送信のセキュリティが高まる。ネットワーク上でありうる攻撃の1つに反復攻撃がある。この攻撃は、パケットを傍受して、ネットワークに再投入するものである。開示された実施形態に述べられた状況下でこの攻撃を成功させるためには、攻撃者は傍受したパケットが送信されていた特定のチャネルを把握し、同じチャネルにパケットを再投入する必要がある。もしも別のチャネルで送信したならば、パケットは受信も処理もされずに廃棄されることになる。従って、再投入されたパケットを復号化することで受信ノード回路に過負荷が生じることもない。
【0042】
盗聴者が傍受したパケットを解読するにはスクランブルシードを把握する必要があり、このことからもセキュリティを強化できる。盗聴者があるチャネルに関してシードを見つけることができたとしても、周波数ホッピング・スペクトラムにおける他のチャネルで送信されたパケットに対しては無意味である。
【0043】
上述した例では、キラーパケットの影響を抑制するために変更するパラメータとして、スクランブルアルゴリズムのシード値を使用した。しかし、同様の効果を達成するために、シード値に加えて、或いはシード値に代えてスクランブルアルゴリズムの他のパラメータを変更できることは理解されるであろう。例えば、スクランブルアルゴリズムそのものを変更しても良い。説明のために、図5に示すスクランブラは、線形シフトレジスタに格納された値の第4ビット及び第7ビットについて排他的論理和演算を行ない、フィードバック入力ビットを生成する。アルゴリズムを変更するために、排他的論理和ゲート34の入力の一方或いは双方を変更することができる。例えば、スイッチを用いることで第3ビットと第4ビットを切り替えて排他的論理和ゲート34の一方の入力に供給しても良い。これら2ビットのいずれかをチャネルインデックスの特定のビット、例えば最小有効ビットの値、或いは送信ノード及び受信ノードの双方に既知のその他の値に基づいて選択することができる。
【0044】
スクランブルアルゴリズムは、動的に変更可能なパラメータを任意の数だけ用いて駆動できる。異なるスクランブルパラメータを使用する他、こうした情報を目標受信ノードにリアルタイムで通知しても良い。例えば、ユニキャストデータパケットのパケットプリアンブルの形で送信することができる。
【0045】
従って、上述した例からも分かる通り、本発明は、その本質的特性から逸脱することなく種々の形態で具体化することが可能であり、その実施形態はもっぱら説明上のものであり、なんら制約を課すものではない。本発明の範囲は、上記の説明ではなく添付の請求の範囲によって示されるものであり、その均等物の趣旨と範囲におけるあらゆる変更は請求の範囲に包含されるものである。
【技術分野】
【0001】
本発明は、無線通信ネットワークにおける安全な送信及びロバスト性の高いパケット受信に関する。ここに述べる発明は、データネットワークでの良好なデータ受信を阻害する「キラーパケット」関連の問題に対処するものである。
【背景技術】
【0002】
無線周波数(RF)データ通信システム、特に、単純で低コストなシステムにおいては、変調器と復調器の性質上、受信ノード側で確実に復号化できないビット列が送信ノードから送信される可能性がある。これは、送信されたビット列に連続して含まれる0ビット又は1ビットの数が多すぎる場合に起こりうる。
【0003】
チャネル状態の変化に対処すべく、受信機内の信号復調器は、論理1ビットと論理0ビットを区別するための閾値を動的に自己校正する。この自己校正は、直近の受信信号における受信ビットの平均値を判定することで行なうことができる。例えば、振幅変調を用いる場合は、信号の平均振幅によって、論理1ビット、すなわち高振幅と、論理0ビット、すなわち低振幅とを区別する。また、周波数偏移(Frequency shift keying)方式等の周波数変調を用いる場合は、受信信号の平均周波数を閾値として用いることで、受信信号が含む符号化された2つの異なるビット値を検出する。
【0004】
全てのビットが同じ値を有するビット列を受信した場合、信号の変調パラメータ、例えば、振幅や周波数はその列中で変化されない。従って、それらのビット値に対して、信号の平均値、すなわち閾値のドリフトが生じる。この場合、復調器は、受信したビットの1或いは0を、高い信頼性をもって検出することができない。パケットを復号化できなかった場合、受信機は送信機にエラーメッセージを送って、パケットの再送を要求する。しかし、復調器のエラーが上述したような特殊なパケットパターンによって引き起こされる以上、再送されたパケットを受信した受信機では、再び同様のエラーが発生する。こうしてパケット送信が繰り返されることになる。受信機からのエラーメッセージ送出とそれに対する送信機からのパケット再送とが繰り返されることで、解消不可能な障害がネットワーク上に生じてしまう。このようなビット列を含むパケットは、「キラーパケット」として知られる。「キラーパケット」とは、信号強度や信号対雑音比が良好であっても確実な処理を行なえないパケットのことである。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許出願第12/005,268号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
これを防止するために、それぞれのビットの送信状態を切り替えることが行なわれてきた。例えば、ビット周期半ばでローレベルからハイレベルに遷移することで「1」を表し、ハイレベルからローレベルに遷移することで「0」を表す。これは、継続的に復調器が自己校正を行なえるようになるロバスト性の高い方法である。この方法の短所は、データ転送速度が実質的に2倍になる(占有オンエア・スペクトルが2倍になる)一方で、シンボル・レートが変化しないことである。この問題は、特に、帯域幅に制限のある無線データネットワークにおいて好ましくない。
【0007】
キラーパケットの送信を回避するもう1つの方法は、データをスクランブルすることであり、データの「ホワイトニング」としても知られる。この方法では、送信データビットの順番を入れ替えるか、或いはその値を変更することで、通常のビットパターン(例えば、テキストメッセージや同一の2値ビットを多く含むデータパケット)においては、同一値を持つビットの長い列が送信されることがないようにする。
【0008】
このスクランブル方法は「単純に」、すなわち、データの事前知識なしに適用される。そのため、スクランブル処理の結果、それまで無害だったビット列が予期せずしてキラーパケットに変化してしまうことがある。統計学的に見て可能性は低いとはいえ、膨大な数のパケットを送信するネットワークではこうした状況が起こることもある。その度に、解決不可能なパケットによるネットワーク障害が生じる。この問題に対処するために、これまでは直流分再生回路等のハードウェアを受信機に内蔵することで、閾値の適正なアライメントを維持してきたが、ハードウェアの付加はコスト増につながる。
【課題を解決するための手段】
【0009】
パケットのスクランブルに使用するパラメータを変更する方法が開示されている。統計上、異なる値のパラメータを用いて同じデータパケットを2通りにスクランブルした場合、いずれのスクランブルパケットもキラーパケットとなる可能性は低い。従って、元のデータストリームが受信機でキラーパケットとなる場合は、最初のスクランブル処理でキラーパケットイベントを阻止できる可能性が高い。しかし、その最初のスクランブルでキラーパケットが生成されてしまった時には、異なる値のパラメータを用いて再スクランブルを行ない、再送されたパケットがキラーパケットになるのを防止する。
【0010】
受信機が確実にパケットを解読できるように、変更するパラメータは送受信機間で事前に知られた値を持つものでも良い。例えば、周波数ホッピング方式によるネットワークでは、通信チャネルの周波数は、既知のパターンで変化する。そのため、あるタイミングで用いられる特定の周波数チャネルは、送受信機双方にとって既知のものとなる。スクランブルアルゴリズムの入力としてはチャネル識別子を使用できる。この実現例においては、データパケットをスクランブルして、第1のビット列としてあるチャネルを介して送信すると同時に、第2のビット列として別のチャネルを介して送信する。これらのチャネルの一方を介して送信されたスクランブルパケットがキラーパケットとなった場合、他方のチャネルを介して再送した際に再びキラーパケットとなる確率は統計学的にみて非常に低い。
【0011】
その他のデータアイテムもスクランブルパラメータとして採用できる。例えば、送信機と受信機が時刻同期をとっている場合、クロック値を変更するスクランブルパラメータとして使用できる。別の例としては、送信パケットに対応付けられたシーケンス番号を利用しても良い。変更するパラメータ値が既知の曖昧性をもって送受信機双方に知られていれる限り、受信機はスクランブルデータパケットを解読できる。
【0012】
上記の例においては、送信機と受信機の双方が、あるタイミングで用いられるパラメータ値を事前に知っている。別の実現例では、送信パケットを異なるパラメータ値を用いて複数回スクランブルすることが可能であり、受信機ではそれぞれのパラメータ値を用いてデスクランブルすることができる。例えば、2つの異なる値を用いてデータをスクランブルした場合、統計学上、生成されたスクランブルデータが2つともキラーパケットを生じる可能性は非常に低い。そのため、デスクランブルされ且つ復号化された2つのパケットのうち少なくとも1つは受信機で利用可能となる。
【図面の簡単な説明】
【0013】
【図1】本発明が実現される例示的な無線通信ネットワークを示すブロック図である。
【図2】仮想的FHSSホッピングシーケンスを示す図である。
【図3】FHSSホッピングシーケンスを実現するための例示的なチャネル配列を示す図である。
【図4a】スクランブルパラメータとしてチャネル識別子を用いた送信ノード及び受信ノードそれぞれのスクランブル方法を実現するための回路を示すブロック図である。
【図4b】スクランブルパラメータとしてチャネル識別子を用いた送信ノード及び受信ノードそれぞれのスクランブル方法を実現するための回路を示すブロック図である。
【図5】例示的なスクランブラを示す概略図である。
【図6】チャネルインデックスのスクランブル方法を示すフローチャートである。
【図7】データパケットの構造を示す図である。
【図8】別の実施例における送信ノードの動作を示すフローチャートである。
【図9】別の実施例に関するデスクランブラを備えた例示的な受信機を示す概略論理図である。
【発明を実施するための形態】
【0014】
本発明の前述した態様及び付随する利点は、添付の図面とともに以下に述べる詳細な説明を参照することで更に容易に認識され、より良く理解されるであろう。
【0015】
ここに述べる発明は、無線或いは有線ネットワークで生じうるキラーパケットの連続再送を回避する手段を提供する。これは、パケット・データ・スクランブルにおける多様性により、パケットそのもののビット列を変更することで達成される。
【0016】
本発明の基礎概念を理解し易くするために、FSK変調及びFHSS(周波数ホッピング方式:Frequency-Hopping Spread Spectrum)送信技術を用いた無線ネットワークで実現される実施形態を参照してそれらの概念を説明する。しかし、これらの概念は、別の変調及び/又は送信方法を用いた他の種類のデータネットワークにおいて実現しても良いことは理解されるであろう。
【0017】
本発明の概念を実現する無線通信ネットワークの一例を図1に示す。ここに図示する特別な例は、公益企業(Utility)等のコモディティ供給業者と企業が供給するコモディティの使用量を監視する計器との間で通信が発生する自動検針・自動検針インフラ(AMR(Automated Meter Reading)/AMI(Automated Meter Infrastructure))環境に関する。この種の環境では、電気、ガス、水道等のコモディティの使用量を計測する各計器は、ローカルエリアネットワーク12等の無線ネットワーク内のノード10に対応する。個々のノードはアクセスポイント、すなわち、ゲートウェイ14と通信する。次にゲートウェイは、ワイドエリアネットワーク18、例えば、専用通信網或いはインターネット等の公衆通信網を介して公益企業16と通信する。ノード10b、10c及び10nが示すように、いくつかのノードは、無線リンクによりゲートウェイ14と直接通信することが可能である。例えば、地理上の距離や地形が原因となって、ノードとゲートウェイとが無線リンクを介して直接通信できないこともある。こうしたノードは、隣接ノードの1つと通信し、その隣接ノードはゲートウェイ14と直接、或いは更に他の隣接ノードを1つ以上介して通信する。例えば、図示の例において、計器ノード10aは、隣接ノード10bを介してゲートウェイ14と通信する。ノード10bは、実際には計器ノードとしてだけでなく中継器としても機能する。
【0018】
図1では不図示であるが、ローカルエリアネットワーク12は、計器ノード以外のノードを含むことができる。例えば、計器ノードからゲートウェイ14へ、或いはその逆方向への転送に計器とは無関係の中継ノードを用いても良い。結果として、計器ノードは、本来必要とされる電力より低い送信電力で動作できる。
【0019】
図1に例示するネットワークでは、単一のゲートウェイ14を採用している。しかし、変形例として、1つ以上の計器ノード10が複数のゲートウェイのいずれか1つを介して公益企業16と通信しても良い。この構成により、計器ノードと公益企業との間の通信路が冗長化されるため、ネットワークのロバスト性を高めることができる。更に別の変形例として、それぞれのノードを異なるゲートウェイを介して異なる公益企業或いはコモディティ供給業者に接続しても良い。
【0020】
ネットワークの一実施例において、LAN12を介した無線通信にはFHSS(周波数ホッピング方式:Frequency-Hopping Spread Spectrum)の送信を採用する。FHSSとは、広い周波数帯域においてランダムではあるが、予測可能な順序である周波数から他の周波数へと時間の関数で「ホップする」狭帯域キャリア信号を用いてデータ信号を変調する技術である。適切に同期をとることで、単一の論理チャネルが維持される。
【0021】
送信周波数は、拡散或いはホッピング符号により決定される。確実に信号を受信するために、受信機は、同一のホッピング符号に設定され、適切なタイミング及び正しい周波数の入力信号を検出する。現行の規定では、1送信チャネルあたり最長ドウェル時間(1回のホップ時に特定の周波数が維持される時間)400msで50以上の周波数の使用が求められている。
【0022】
FHSS送信では、比較的高速にチャネルが切り替わる(或いはホップする)。ノードのホッピングシーケンスにおいては、スロットタイムと呼ばれる時間の間それぞれのチャネルを占有する。スロットタイム中に受信がなければ、ノードは、自己のホッピングシーケンスにおいて、受信チャネルを次のチャネルに変更する。受信が検出されれば、受信処理を行なうためにチャネルホッピングを停止する。パケットを送信するときは、チャネルホッピングを停止し、パケットをその時間の間、特定のチャネルで送信する。トランザクションが終了すれば、(パケットの送受信が発生しなければ使用されていたであろう本来の周波数を用いて)チャネルホッピングを再開する。
【0023】
ノードのホッピングシーケンスで全チャネルを巡回することをエポックと呼ぶ。ノードのホッピングシーケンスでは、全チャネルを一巡し終えてから、2度目の巡回を開始するように関連規定で定められている。一実現例においては、エポックを繰り返す疑似ランダム(pseudo-random)ホッピングシーケンスを用いてこの結果を保証する周波数ホッパーを使用することができる。言い換えれば、エポックの特定のスロットタイムにおいては、常に同じチャネルを使用する。この概念を図示する図2は、10チャネルを使用するノードの仮想的FHSSホッピングシーケンスを示している。
【0024】
FHSS通信システムの送信ノードは、適切なチャネルを使用して所定のタイミングでデータを受信ノードに送るために、目標受信ノードがホッピングシーケンスのどこに位置するかを把握しておく必要がある。例えば、各ノードにチャネルシーケンスのテーブルを格納しておくことができる。図3に1エポックあたり83スロットを有するホッピングシーケンスのテーブルを例示する。このテーブルは配列として実現される。送信時、送信ノードは、このテーブルを使用してインデックス、すなわち、チャネル識別子を取得する。チャネルインデックスは、送信ノード及び受信ノードの双方がその値を事前に知っているパラメータであり、これにより送受信ノードは同期して通信を行なうことができる。目標受信ノードのチャネルインデックスは種々の方法で決定可能である。その1つとして、チャネルインデックスを送信時に動的に決定する方法が、2007年12月27日に出願され、その開示内容をここに取り込む特許文献1に記述されている。
【0025】
本発明の例示的な一実現例によれば、あるパケットの送信チャネルの識別子、例えば、チャネルインデックスは、そのパケットのデータをホワイトニング、すなわち、スクランブルするためのスクランブルアルゴリズムのシードとして用いることができる。従って、スクランブルシードは、ホッピングシーケンスのチャネル間で異なることになり、1つのデータパケットは、異なるチャネルで送信される際に2つの異なるビット列にスクランブルされる。スクランブルの結果、一方のチャネルにキラーパケットが生じ、もう一方のチャネルにもキラーパケットが生じる確率は低い。従って、キラーパケットの存在或いは発生により生じた問題を解消するのに必要なデータパケット再送の回数を最小限に抑えることができる。
【0026】
図4a及び図4bに、本発明の一実施例の一実施形態を示す。図4aは送信ノードの動作を示すブロック図である。クロック信号CLKをタイマー20に入力し、FHSSエポックのスロットを識別する。タイマー20は、実質的に分周器として機能し、その出力は新しいタイムスロットの開始点を示す。これらのタイムスロットの指示は、スロット・チャネル変換器22に供給され、それぞれの新しいタイムスロットに対応するチャネルインデックスが生成される。スロット・チャネル変換器22は、図3に示すような配列を用いて変換を行なっても良い。チャネル周波数変換器24は、チャネルインデックスを用いて適切なタイムスロットの送信周波数を決定する。決定した周波数は、送信機26に入力信号として供給される。
【0027】
送信するパケットデータは、スクランブラ28に入力される。スクランブラ28は、ビットの順序及び/或いは値を変更してデータをホワイトニングするように機能する。スクランブルされたデータは、周波数偏移(FSK)変調器等の変調器30に供給され、データビットをシンボルで表す変調データ信号が生成される。変調データ信号は、その後、チャネルインデックスに基づいて決定された適切なキャリア周波数を用いて、送信機26によって送信される。
【0028】
図示の実施形態においては、パケットデータのスクランブルのための開始シードは、チャネル毎に変化するので、スクランブラによるデータホワイトニングで予期せずしてキラーパケットが発生した場合であっても、迅速な回復が可能となる。このために、スロット・チャネル変換器22によって生成されたチャネルインデックスは、シード値としてスクランブラ28に入力される。説明のために、スクランブラ28を図5に示す。図示の例では、7ビット線形フィードバックシフトレジスタ32を用いる。排他的論理和ゲート34は、第4ビット及び第7ビットの値を処理してフィードバックビットを生成し、第1レジスタに入力する。第7レジスタの出力は、排他的論理和ゲート36にも供給され、パケットデータと結合されてスクランブルビットを生成する。
【0029】
典型的には、この種のスクランブラの線形フィードバックシフトレジスタ32の全てのレジスタは1で初期化される。しかし、図4aに示す実施形態では、レジスタの初期化にチャネルインデックスを用いる。チャネルインデックスは、送信チャネル毎に異なるため、スクランブラのシーディング、すなわち、初期化をチャネル毎に異なる値を用いて行なうことで、異なるスクランブル出力が得られる。
【0030】
図4bは、スクランブル動作の逆の動作を行なう受信ノードの回路を示す。同図において、チャネルインデックスは、適切な受信チャネル周波数を決定するのに使われ、受信機38に制御入力として供給される。復調器40は、受信信号を復調して受信したシンボルからデータビットを導出する。スクランブルされたデータビット列は、デスクランブラ42に供給される。デスクランブラ42は、スクランブラ28と同様である。デスクランブラもまた、チャネルインデックスによって初期化され、送信ノードのスクランブラ28が行なったスクランブルに対称的なデスクランブル動作を行なう。デスクランブラ42の出力は、元のパケットデータを含み、これは従来の方法により復号化することができる。
【0031】
図6は、図4a及び図4bの実施形態で実施される処理全体を示す。タイマー20によるチャネル切り替えタイマーイベント610により、プロセスを開始する。ステップ620で、送信ノード及び受信ノードの双方が新しいチャネルインデックスを識別し、新しいホッピングシーケンスチャネル用にスクランブル符号とパケット構成を変更する。ステップ630で、データパケットの先頭を検出する。新しいチャネルでのデータパケットのスクランブルを開始するために、ステップ640で、チャネルインデックスと同一のスクランブルシードを設定する。このシード値を用いて、受信機は、デスクランブラを初期化し、ステップ650で、パケットを受信する。ステップ660で、CRCチェックを行ない、受信機がパケットビットを解読できるか否かを判定する。チェックの結果、データデスクランブルの後で解読可能であれば、ステップ670で、受信機はデータを有効パケットとして処理する。CRCチェック660の結果がNOならば、送信ノードにメッセージを送り返してパケットエラーを通知する。送信ノードは、新しいチャネルインデックスに基づいて、次に利用可能なチャネルを異なるスクランブルシードで再構成し、パケットを再送する。受信機でのエラーがキラーパケットイベントによるものであれば、新しいチャネルで新しいスクランブルシードを用いて再送されたパケットに同様の問題は生じない。
【0032】
上述したように、所定のタイムスロットのチャネルインデックスを決定する種々の方法が知られている。これらの中には、例えば、特許文献1に開示された方法のように、送信ノード及び受信ノードのそれぞれについてチャネルインデックスを別々に決定するものがある。この場合、チャネルインデックスをパケット情報の一部として送信する必要はない。しかし、他の例では、フォールバックに備えて、パケット情報にチャネルインデックスを含めることが望ましい。これにより、データパケット送信のロバスト性を高くできる。特に、チャネルインデックスによって、受信パケットの先頭を確実に検出するための付加的なデータが得られるようになる。
【0033】
図7は、パケットのデータ構造を示す。パケットは3つの主要な構成要素、すなわち、プリアンブル44、ヘッダ46、ペイロード48からなる。ペイロードデータは、スクランブルされるが、プリアンブル及びヘッダは平文で、すなわち、スクランブルされずに送信される。プリアンブルは、交互に並んだ0ビットと1ビットとの列からなるので、受信ノードは信号を検出して、受信パケットのその他の部分との周波数・タイミング同期をとることができる。この同期領域に続いて開始フラグが配置される。開始フラグは0ビット及び1ビットの既知の列からなり、これを復号化することで、受信ノードは後続のパケットデータの復号化及び解読を開始する。開始フラグの特徴の1つに、シンボルレベルでの同期を提供し、1ビットと0ビットとが交互に並んだ先行するプリアンブルとともに自己相関特性を最適化することが挙げられる。
【0034】
本発明の一態様によれば、チャネルインデックスは、パケットのプリアンブルに含めることができる。実際には、チャネルインデックスは、開始フラグの延長として機能し、これにより、パケットの先頭検出のロバスト性を高めることができる。より詳細には、開始フラグが1バイトで構成される場合、誤検出が起こる可能性がある。このとき、あるビット列が開始フラグとして誤って解釈され、受信機回路が意味不明なデータを復号化し始める。誤検出が起こる確率を低下するために、開始フラグは好適には2バイトで構成される。しかし、この場合でもまだ誤検出が生じる可能性はある。チャネルインデックスを開始フラグの末尾に含めると、受信ノードはパケットデータの先頭を検証するための付加情報を取得できる。プリアンブル内で検出されたチャネルインデックスが、受信ノードが現在動作しているチャネルのインデックスと一致した場合のみ、パケットを処理する。これにより、誤検出が生じて、復号化回路が不要な電力を消費するのを抑制できる。
【0035】
上記の例では、チャネルインデックスは、パケットを受信した際にスクランブラを初期化するためのシードとして用いられる。チャネルインデックスは、送信ノード及び受信ノードの双方に既知であるため、高い信頼性を持ってこの目的に用いることができる。この目的のため、チャネルインデックス以外のパラメータを使用できることは理解されるであろう。例えば、ノード同士が時刻同期をとっているネットワークにおいては、時間に基づく値をスクランブルアルゴリズムのシードとして用いることができる。例えば、現在の分と秒とを表すデジタル値でシードを構成しても良い。
【0036】
上記の例では、キラーパケットの検出は受信ノードで行われる。この状態の検出に応じて、受信ノードが発信ノードにエラーメッセージを送信すると、スクランブルパラメータ、例えば、初期シード値に別の値を用いてパケットが再送される。別の実現例では、送信ノードは、キラーパケットの存在を送信前に検出して、スクランブルパラメータに別の値を用いてデータパケットを再スクランブルできる。図8及び図9は、この実現例の一実施形態を示す。図8は、送信ノードで行なわれるプロセスを示すフローチャートである。ステップ800で、送信のためのパケットを生成する。ステップ802で、例えば、図4a及び図5に示すスクランブラ28を用いて、パケットをスクランブルする。このスクランブルは、送信ノード及び受信ノード双方が知る所定のシード値Aを用いて行われる。ステップ804で、スクランブルデータを検証し、キラーパケットが生成されるか否かを判定する。例えば、スクランブルされたビット列において、連続して同じ値を持つビットの数を検出器でカウントする。カウント値が所定の数、例えば、6に達したならば、スクランブルデータはキラーパケットの可能性ありと判定する。
【0037】
スクランブルデータがキラーパケットとなる可能性がなければ、ステップ806及び808で、例えば、図4aに示すように、パケットを変調し、送信する。しかし、ステップ204で、スクランブルデータがキラーパケットとなる可能性があると判定された場合、ステップ210で、スクランブルパラメータを第2の既知の値Bに変更し、ステップ802で、値Bをスクランブルパラメータに用いて元のデータパケットを再スクランブルする。2回目のスクランブルの後、ステップ804で、スクランブルデータがキラーパケットとなる可能性があるか否かを判定するために再び評価を行なう。統計学的にみて、新しい値をスクランブルパラメータとして用いた場合に前回と同様の結果が得られる確率は低い。従って、再スクランブルしたパケットを送信できる。しかし、依然としてキラーパケットが生成されるようなら、更に他の既知の値をスクランブルパラメータに用いてパケットを再スクランブルする。
【0038】
パケットを受信した受信ノードには、受信パケットをスクランブルするのに使用したパラメータ値が分からないことがある。このため、受信ノードは、受信パケットを複数の方法でデスクランブルする。図9の概略論理図によれば、入力信号はまず、プリアンブルデコーダ50によって処理される。プリアンブルデコーダ50は、入力したプリアンブルを復号化し、受信したシンボルに開始フレームが存在するか否かを検出する。存在すれば、パケットのペイロードデータを2つのデスクランブラ52及び54にそれぞれ供給する。一方のデスクランブラ52は、既知のシード値の1つである値Aで初期化され、他方のデスクランブラ54は、他の既知のシード値Bで初期化される。受信パケットのペイロードデータのスクランブルに使用したシード値によっては、デスクランブラの一方は意味のないデータを出力する。しかし、他方のデスクランブラは正確にデスクランブルされたデータを出力する。2つのデスクランブラの内、その時点で適切なものを選択するには、それぞれのデスクランブラの出力データに対してCRCチェックを行なう。正しいCRCの結果を示す出力データを用いてセレクタを制御し、ペイロードの復号化といったその後の処理にデータを受け渡すことができる。
【0039】
図9に示す実施形態において、受信ノードは2つのデスクランブルを並行して行なう。他の実施形態では、データを次の処理に受け渡す前に、逐次処理を用いて、まず、2つのシード値の一方を使って受信データをデスクランブルする。CRCチェックの結果が正しくなければ、2つの既知のシード値の他方を使って同じデータをデスクランブルする。
【0040】
上述した説明から分かるように、本発明は、キラーパケットの送信によって生じるネットワーク障害を防止するのに有効な方法を提供するものである。データパケットのスクランブルによって、予期せぬキラーパケットの生成が起こった場合、スクランブルパラメータに異なる値を用いてデータパケットを再スクランブルする。再スクランブルされたデータパケットもまたキラーパケットとなる確率は統計学的にみて極めて低い。従って、データパケットの処理回数は、最高でも2回であり、キラーパケットの影響を受けるリソースを削減できる。
【0041】
一実施形態をFHSS送信を用いたネットワークで実現する際、チャネルインデックスをスクランブルアルゴリズムのシードとして使う。キラーパケットの影響を排除するために、本実施形態では、チャネル毎にシードを変更することの他、数多くの利点を提供する。特に、スクランブルシードをチャネル毎に変更することで、送信のセキュリティが高まる。ネットワーク上でありうる攻撃の1つに反復攻撃がある。この攻撃は、パケットを傍受して、ネットワークに再投入するものである。開示された実施形態に述べられた状況下でこの攻撃を成功させるためには、攻撃者は傍受したパケットが送信されていた特定のチャネルを把握し、同じチャネルにパケットを再投入する必要がある。もしも別のチャネルで送信したならば、パケットは受信も処理もされずに廃棄されることになる。従って、再投入されたパケットを復号化することで受信ノード回路に過負荷が生じることもない。
【0042】
盗聴者が傍受したパケットを解読するにはスクランブルシードを把握する必要があり、このことからもセキュリティを強化できる。盗聴者があるチャネルに関してシードを見つけることができたとしても、周波数ホッピング・スペクトラムにおける他のチャネルで送信されたパケットに対しては無意味である。
【0043】
上述した例では、キラーパケットの影響を抑制するために変更するパラメータとして、スクランブルアルゴリズムのシード値を使用した。しかし、同様の効果を達成するために、シード値に加えて、或いはシード値に代えてスクランブルアルゴリズムの他のパラメータを変更できることは理解されるであろう。例えば、スクランブルアルゴリズムそのものを変更しても良い。説明のために、図5に示すスクランブラは、線形シフトレジスタに格納された値の第4ビット及び第7ビットについて排他的論理和演算を行ない、フィードバック入力ビットを生成する。アルゴリズムを変更するために、排他的論理和ゲート34の入力の一方或いは双方を変更することができる。例えば、スイッチを用いることで第3ビットと第4ビットを切り替えて排他的論理和ゲート34の一方の入力に供給しても良い。これら2ビットのいずれかをチャネルインデックスの特定のビット、例えば最小有効ビットの値、或いは送信ノード及び受信ノードの双方に既知のその他の値に基づいて選択することができる。
【0044】
スクランブルアルゴリズムは、動的に変更可能なパラメータを任意の数だけ用いて駆動できる。異なるスクランブルパラメータを使用する他、こうした情報を目標受信ノードにリアルタイムで通知しても良い。例えば、ユニキャストデータパケットのパケットプリアンブルの形で送信することができる。
【0045】
従って、上述した例からも分かる通り、本発明は、その本質的特性から逸脱することなく種々の形態で具体化することが可能であり、その実施形態はもっぱら説明上のものであり、なんら制約を課すものではない。本発明の範囲は、上記の説明ではなく添付の請求の範囲によって示されるものであり、その均等物の趣旨と範囲におけるあらゆる変更は請求の範囲に包含されるものである。
【特許請求の範囲】
【請求項1】
送信ノード及び受信ノード間でデータパケットを通信する無線通信ネットワークで使用される送信ノードであって、
パケットデータを受信するとともに、スクランブルアルゴリズムのパラメータ値に応じて当該データを変更するデータスクランブル手段と、
前記受信ノード側で事前に知られた複数の異なる値を生成し、個々の生成された値を前記パラメータ値として前記データスクランブル手段に入力するパラメータ値生成デバイスと、
前記変更されたデータを前記無線通信ネットワークを介して前記受信ノードに送信する送信手段と
を具備することを特徴とする送信ノード。
【請求項2】
前記パラメータ値は、周期的に変化する
ことを特徴とする請求項1記載の送信ノード。
【請求項3】
前記無線通信ネットワークは、周波数ホッピング通信を利用し、
前記パラメータは、送信チャネルの前記周波数に対応付けられる識別子である
ことを特徴とする請求項2記載の送信ノード。
【請求項4】
前記スクランブルのパラメータは、スクランブルアルゴリズムを初期化するシード値である
ことを特徴とする請求項2記載の送信ノード。
【請求項5】
前記スクランブルのパラメータは、時間の符号である
ことを特徴とする請求項2記載の送信ノード。
【請求項6】
連続する期間に異なる周波数チャネルを介してパケットを送信する周波数ホッピングを利用した無線通信ネットワークにおける送信ノード及び受信ノード間でデータパケットを通信するシステムであって、
各ノードは、
パケットデータを受信するとともに、入力されたシード値に応じて当該データを変更するデータスクランブル手段と、
前記無線通信ネットワークを介して通信される前記変更されたデータの送信及び受信の少なくともいずれかを行なう送受信手段と、
ある所定のタイミングでデータ通信に使用される前記周波数チャネルを示す値を生成し、当該値を前記シード値として前記データスクランブル手段に入力することで、前記データの送信に使用されるチャネルに応じて、データを種々の方法でスクランブルさせるチャネル識別手段と
を具備することを特徴とするシステム。
【請求項7】
無線通信ネットワークにおける送信ノード及び受信ノード間でデータパケットを通信する方法であって、
第1のセットのスクランブルデータを生成するために、スクランブルアルゴリズムに入力されるスクランブルパラメータ用の第1の値に応じてパケットデータをスクランブルするステップと、
前記第1のセットのスクランブルデータが前記受信ノード側で検出されないデータビット列を含むか否かを判定するステップと、
前記第1のセットのスクランブルデータが検出されないビット列を含むと判定された場合に第2のセットのスクランブルデータを生成するために、前記スクランブルパラメータ用の第2の値に応じて前記パケットデータをスクランブルするステップと、
前記第2のセットのスクランブルデータを含むパケットを前記受信ノードに送信するステップと
を含むことを特徴とする方法。
【請求項8】
前記判定するステップは、前記送信ノード側で実行される
ことを特徴とする請求項7記載の方法。
【請求項9】
前記受信ノードは、
前記受信したパケットから2つのデスクランブルパケットを生成するために、前記スクランブルパラメータ用の前記第1の値及び前記第2の値の各々に応じて受信したパケットのデータをデスクランブルするステップと、
信頼性のあるデータを含む前記2つのデスクランブルパケットのいずれかを選択するステップと、
前記選択されたパケットに含まれる前記データを復号化するために前記選択されたパケットを処理するステップと
を含むことを特徴とする請求項7記載の方法。
【請求項10】
前記第1のセットのスクランブルデータを含むパケットを前記受信ノードに送信するステップ
を更に含み、
前記受信ノードは、
前記第1のセットのスクランブルデータを含む前記パケットの受信に応答して前記判定するステップを実行する
ことを特徴とする請求項7記載の方法。
【請求項11】
データビット列が検出されないか否かの前記判定は、前記データビット列が、全てのビットが同じ値を有する所定数の連続するビットを含むか否かに基づいて行なわれる
ことを特徴とする請求項7記載の方法。
【請求項12】
前記スクランブルパラメータは、スクランブルアルゴリズムを初期化するシード値である
ことを特徴とする請求項7記載の方法。
【請求項13】
前記無線通信ネットワークは、周波数ホッピング通信を利用し、
前記パラメータは、送信チャネルの前記周波数に対応付けられる識別子である
ことを特徴とする請求項12記載の方法。
【請求項14】
前記無線通信ネットワークは、周波数ホッピング通信を利用し、
前記パラメータは、送信チャネルの前記周波数に対応付けられる識別子である
ことを特徴とする請求項7記載の方法。
【請求項1】
送信ノード及び受信ノード間でデータパケットを通信する無線通信ネットワークで使用される送信ノードであって、
パケットデータを受信するとともに、スクランブルアルゴリズムのパラメータ値に応じて当該データを変更するデータスクランブル手段と、
前記受信ノード側で事前に知られた複数の異なる値を生成し、個々の生成された値を前記パラメータ値として前記データスクランブル手段に入力するパラメータ値生成デバイスと、
前記変更されたデータを前記無線通信ネットワークを介して前記受信ノードに送信する送信手段と
を具備することを特徴とする送信ノード。
【請求項2】
前記パラメータ値は、周期的に変化する
ことを特徴とする請求項1記載の送信ノード。
【請求項3】
前記無線通信ネットワークは、周波数ホッピング通信を利用し、
前記パラメータは、送信チャネルの前記周波数に対応付けられる識別子である
ことを特徴とする請求項2記載の送信ノード。
【請求項4】
前記スクランブルのパラメータは、スクランブルアルゴリズムを初期化するシード値である
ことを特徴とする請求項2記載の送信ノード。
【請求項5】
前記スクランブルのパラメータは、時間の符号である
ことを特徴とする請求項2記載の送信ノード。
【請求項6】
連続する期間に異なる周波数チャネルを介してパケットを送信する周波数ホッピングを利用した無線通信ネットワークにおける送信ノード及び受信ノード間でデータパケットを通信するシステムであって、
各ノードは、
パケットデータを受信するとともに、入力されたシード値に応じて当該データを変更するデータスクランブル手段と、
前記無線通信ネットワークを介して通信される前記変更されたデータの送信及び受信の少なくともいずれかを行なう送受信手段と、
ある所定のタイミングでデータ通信に使用される前記周波数チャネルを示す値を生成し、当該値を前記シード値として前記データスクランブル手段に入力することで、前記データの送信に使用されるチャネルに応じて、データを種々の方法でスクランブルさせるチャネル識別手段と
を具備することを特徴とするシステム。
【請求項7】
無線通信ネットワークにおける送信ノード及び受信ノード間でデータパケットを通信する方法であって、
第1のセットのスクランブルデータを生成するために、スクランブルアルゴリズムに入力されるスクランブルパラメータ用の第1の値に応じてパケットデータをスクランブルするステップと、
前記第1のセットのスクランブルデータが前記受信ノード側で検出されないデータビット列を含むか否かを判定するステップと、
前記第1のセットのスクランブルデータが検出されないビット列を含むと判定された場合に第2のセットのスクランブルデータを生成するために、前記スクランブルパラメータ用の第2の値に応じて前記パケットデータをスクランブルするステップと、
前記第2のセットのスクランブルデータを含むパケットを前記受信ノードに送信するステップと
を含むことを特徴とする方法。
【請求項8】
前記判定するステップは、前記送信ノード側で実行される
ことを特徴とする請求項7記載の方法。
【請求項9】
前記受信ノードは、
前記受信したパケットから2つのデスクランブルパケットを生成するために、前記スクランブルパラメータ用の前記第1の値及び前記第2の値の各々に応じて受信したパケットのデータをデスクランブルするステップと、
信頼性のあるデータを含む前記2つのデスクランブルパケットのいずれかを選択するステップと、
前記選択されたパケットに含まれる前記データを復号化するために前記選択されたパケットを処理するステップと
を含むことを特徴とする請求項7記載の方法。
【請求項10】
前記第1のセットのスクランブルデータを含むパケットを前記受信ノードに送信するステップ
を更に含み、
前記受信ノードは、
前記第1のセットのスクランブルデータを含む前記パケットの受信に応答して前記判定するステップを実行する
ことを特徴とする請求項7記載の方法。
【請求項11】
データビット列が検出されないか否かの前記判定は、前記データビット列が、全てのビットが同じ値を有する所定数の連続するビットを含むか否かに基づいて行なわれる
ことを特徴とする請求項7記載の方法。
【請求項12】
前記スクランブルパラメータは、スクランブルアルゴリズムを初期化するシード値である
ことを特徴とする請求項7記載の方法。
【請求項13】
前記無線通信ネットワークは、周波数ホッピング通信を利用し、
前記パラメータは、送信チャネルの前記周波数に対応付けられる識別子である
ことを特徴とする請求項12記載の方法。
【請求項14】
前記無線通信ネットワークは、周波数ホッピング通信を利用し、
前記パラメータは、送信チャネルの前記周波数に対応付けられる識別子である
ことを特徴とする請求項7記載の方法。
【図1】
【図2】
【図3】
【図4a】
【図4b】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図3】
【図4a】
【図4b】
【図5】
【図6】
【図7】
【図8】
【図9】