(58)【調査した分野】(Int.Cl.,DB名)
通信フレームデータの所定の位置を特定するデータである位置特定データを含む通信フレームデータを用いて、ネットワークを介して、相手通信装置と通信する通信装置であって、
前記ネットワークを介して、前記相手通信装置に対して、通信フレームデータを送受信するためのインターフェース部と、
可変長の位置特定データである送信用可変長位置特定データを生成し、前記送信用可変長位置特定データを含む前記通信フレームデータを生成する送信部と、
前記相手通信装置から送信された通信フレームデータを受信する受信部と、
を備え、
前記受信部は、
可変長の位置特定データである受信用可変長位置特定データを生成し、次位置特定データとして保持し、前記次位置特定データを生成する1回前に生成した前記受信用可変長位置特定データを現位置特定データとして保持し、前記次位置特定データを生成する2回前に生成した前記受信用可変長位置特定データを前位置特定データとして保持し、
前記相手通信装置から受信したデータに含まれる位置特定データの種類を特定し、特定した結果に基づいて、受信処理を行うとともに、前記受信用可変長位置特定データの生成処理を実行するか否か、並びに、前記次位置特定データ、前記現位置特定データ、および、前記前位置特定データの更新処理を実行するか否かを決定し、
前記送信部は、
前記受信部が受信したデータに含まれる位置特定データの種類に応じて、前記送信用可変長位置特定データの生成処理を実行するか否かを決定する、
通信装置。
(1)前記受信部において、1回または2回実行される、前記受信用可変長位置特定データの生成処理、前記次位置特定データ、前記現位置特定データ、および、前記前位置特定データの更新処理、並びに、(2)前記送信部において、1回または2回実行される、前記送信用可変長位置特定データの生成処理は、自装置から前記相手通信装置にレスポンス信号を送信する場合に実行される、
請求項2から5のいずれかに記載の通信装置。
【発明を実施するための形態】
【0036】
[第1実施形態]
第1実施形態について、図面を参照しながら、以下、説明する。
【0037】
<1.1:通信システムの構成>
図1は、第1実施形態に係る通信システム1000の概略構成図である。
【0038】
図2は、第1実施形態に係る通信システムの通信装置10の概略構成図である。
【0039】
図3は、第1実施形態に係る通信装置10の送信部21の概略構成図である。
【0040】
図4は、第1実施形態に係る通信装置10の受信部22の概略構成図である。
【0041】
通信システム1000は、
図1に示すように、ネットワークN1に接続された複数の通信装置10(例えば、
図1に示す通信装置10A〜10E)を含む。ネットワークN1は、例えば、電力線搬送通信ネットワークである。ネットワークN1が電力線搬送通信ネットワークである場合、ネットワークN1(の通信媒体)は、電力線であり、複数の通信装置10(例えば、
図1に示す通信装置10A〜10E)は、電力線(
図1のネットワーク線N1に相当。)に接続される。
【0042】
通信装置10は、
図2に示すように、制御部1と、送受信部2と、インターフェース部3(IF部3)とを備える。なお、
図1の通信装置10A〜10Eは、それぞれ、
図2に示す通信装置10の構成と同様の構成を有する。
図2は、通信装置10において通信機能に関する部分の概略構成を示す図である。通信装置10は、
図2に示す機能部以外に、例えば、通信により取得したデータを用いた処理等(種々のアプリケーションによる処理等)を実行するための機能部を備えるものであってもよい。
【0043】
制御部1は、送受信部2の送信部21に対して、通信装置10から送信される通信フレーム(フレーム化した通信データ)のヘッダ(ヘッダ・データ)およびペイロード(ペイロード・データ)と、SFD(Start Frame Delimiter)データを生成するための演算シードについてのデータと、自装置に固有な識別番号のデータ(以下、「自固有パターンデータ」という。)と、SFD選択信号と、送信指示(送信指示信号)とを出力する。
【0044】
また、制御部1は、送受信部2の受信部22から、通信装置10が受信した通信フレームのヘッダおよびペイロードと、受信通知(受信通知信号)とを入力する。また、制御部1は、送受信部2の受信部22に対して、SFDデータ(位置特定データ)を生成するための演算シードについてのデータと、通信相手の通信装置(相手装置)に固有な識別番号のデータ(以下、「相手固有パターンデータ」という。)と、を出力する。
【0045】
送受信部2は、送信部21と、受信部22とを備える。
【0046】
送信部21は、
図3に示すように、特殊SFD生成部211と、XOR演算部212と、標準SFD出力部213と、セレクタ214と、送信制御部215と、フレーム生成部216と、を備える。
【0047】
特殊SFD生成部211は、制御部1から出力される演算シードについてのデータと、送信制御部215から出力されるSFD制御信号(SFD_CTL)と、を入力とする。特殊SFD生成部211は、入力された演算シードのデータに基づいて、特殊SFDデータを生成する(詳細については後述)。また、特殊SFD生成部211は、SFD制御信号に基づいて、特殊SFDデータを更新する(詳細については後述)。そして、特殊SFD生成部211は、生成した特殊SFDデータをXOR演算部212に出力する。
【0048】
XOR演算部212は、特殊SFD生成部211から出力される特殊SFDデータと、制御部1から出力される自固有パターンデータとを入力とする。XOR演算部212は、特殊SFDデータと自固有パターンデータとに対してXOR演算することで、可変長SFDデータを取得する。そして、XOR演算部212は、取得した可変長SFDデータをセレクタ214に出力する。
【0049】
標準SFD出力部213は、標準SFDデータを保持しており、標準SFDデータをセレクタ214に出力する。なお、「標準SFDデータ」とは、標準規格に準拠するSFDデータであり、例えば、IEEE規格等により規定されている固定のSFDデータ(ビットパターン)のことをいう。また、「標準SFDデータ」は、通信システム1000において、送信側と受信側とで予め決定した、固定ビット長の固定パターンをも含む概念である。
【0050】
セレクタ214は、XOR演算部212から出力される可変長SFDデータと、標準SFD出力部213から出力される標準SFDデータとを入力とする。セレクタ214は、制御部1から出力されるSFD選択信号に基づいて、可変長SFDデータおよび標準SFDデータのいずれか一方をフレーム生成部216に出力する。
【0051】
送信制御部215は、制御部1から出力される送信指示(送信指示信号)と、受信部22から出力されるSFD更新指示(SFD更新指示信号)とを入力とする。送信制御部215は、SFD更新指示(SFD更新指示信号)に基づいて、SFD制御信号(SFD_CTL)を生成し、生成したSFD制御信号を特殊SFD生成部211に出力する。また、送信制御部215は、送信指示(送信指示信号)に基づいて、フレーム生成部216を制御するための制御信号を生成し、当該制御信号をフレーム生成部216に出力する。
【0052】
フレーム生成部216は、セレクタ214から出力されるSFDデータと、制御部1から出力されるヘッダおよびペイロードと、送信制御部215から出力される制御信号とを入力とする。フレーム生成部216は、入力されたSFDデータと、ヘッダおよびペイロードとをフレーム化し、通信システム1000において、IF部3を介して送信されるフレームデータ(フレーム化した通信データ)を生成する。
【0053】
図5に、フレームデータの一例を示す。
図5に示すように、フレームデータは、プレアンブルと、SFDデータと、ヘッダと、ペイロードとを含む。
【0054】
プレアンブルには、通信の同期をとるための同期符号のためのフィールドである。
【0055】
SFDは、フレームの開始位置を特定できるようにするためのフィールドであり、例えば、
図5のフレームデータの場合、プレアンブルの同期符号が失われた場合であっても、SFDを検出することで、ヘッダの先頭位置等を特定することができる。
【0056】
ヘッダは、例えば、物理層に関連するパラメータを示すフィールドである。ヘッダには、例えば、送信元アドレスや送信先アドレスやフレームの長さ等のデータが含まれる。
【0057】
ペイロードは、(ヘッダ情報等の管理情報を除いた)正味のデータ(実体データ)のためのフィールドである。
【0058】
フレーム生成部216は、生成したフレームデータ(例えば、
図5に示す形式のフレームデータ)を、送信制御部215から出力される制御信号に基づいて、インターフェース部3に出力する。
【0059】
受信部22は、
図4に示すように、タイミング調整部221と、特殊SFD生成部222と、XOR演算部223と、SFD検出更新部224と、標準SFD判定部225と、第1SFD判定部226と、第2SFD判定部227と、第3SFD判定部228と、受信制御部229と、を備える。
【0060】
タイミング調整部221は、インターフェース部3により受信されたフレームデータ(受信した通信データ)と、受信制御部229から出力されるタイミング制御信号とを入力とする。タイミング調整部221は、タイミング制御信号に基づいて、入力されたフレームデータから、ヘッダとペイロードとを取得する。そして、タイミング調整部221は、取得したヘッダとペイロードとを制御部1に出力する。
【0061】
特殊SFD生成部222は、制御部1から出力される演算シードについてのデータと、受信制御部229から出力されるSFD制御信号(SFD_CTL)と、を入力とする。特殊SFD生成部222は、入力された演算シードのデータに基づいて、特殊SFDデータを生成する(詳細については後述)。また、特殊SFD生成部222は、SFD制御信号に基づいて、特殊SFDデータを更新する(詳細については後述)。そして、特殊SFD生成部222は、生成した特殊SFDデータをXOR演算部223に出力する。なお、受信部22の特殊SFD生成部222は、送信部21の特殊SFD生成部211と同様の構成を有している。したがって、通信装置10において、受信部22の特殊SFD生成部222と送信部21の特殊SFD生成部211とを共有する構成としてもよい(特殊SFD生成部を1つのみ設ける構成とし、受信時と送信時とで、その接続先を切り替えるようにしてもよい)。
【0062】
XOR演算部223は、特殊SFD生成部222から出力される特殊SFDデータを入力と、制御部1から出力される相手固有パターンデータとを入力とする。XOR演算部223は、特殊SFDデータと相手固有パターンデータとに対してXOR演算することで、可変長SFDデータを取得する。そして、XOR演算部223は、取得した可変長SFDデータをSFD検出更新部224に出力する。なお、受信部22のXOR演算部223は、送信部21のXOR演算部212と同様の構成を有している。したがって、通信装置10において、受信部22のXOR演算部223と送信部21のXOR演算部212とを共有する構成としてもよい(XOR演算部を1つのみ設ける構成とし、受信時と送信時とで、その接続先を切り替えるようにしてもよい)。
【0063】
SFD検出更新部224は、XOR演算部223から出力される可変長SFDデータと、標準SFD判定部225から出力される判定結果det0と、第1SFD判定部226から出力される判定結果det1と、第2SFD判定部227から出力される判定結果det2と、第3SFD判定部228から出力される判定結果det3と、受信制御部229から出力される制御信号(CTL)とを入力とする。SFD検出更新部224は、上記判定結果det0〜det3に基づいて、受信データのSFDを特定し、その特定した結果をDETとして、受信制御部229に出力する。なお、受信データのSFDが可変長SFDである場合、特定結果DETには、当該可変長SFDの長さ(ビット長)を含める。受信データのSFDが標準SFDである場合、特定結果DETには、当該標準SFDの長さ(ビット長)を含めてよい(受信制御部が、例えば、標準SFDデータの長さ(ビット長)を把握している場合、当該標準SFDの長さ(ビット長)を特定結果DETに含めなくてもよい)。
【0064】
また、SFD検出更新部224は、XOR演算部223から出力される可変長SFDデータを少なくとも3つ保持するためのメモリ(不図示)を有している。具体的には、SFD検出更新部224は、特殊SFD生成部222で生成された最新の特殊SFDに基づいて生成された可変長SFDデータ(XOR演算部223から出力されているSFDデータ)SFD[n](n:自然数、n≧2)と、1回前に生成(更新)された可変長SFDデータSFD[n−1]と、2回前に生成(更新)された可変長SFDデータSFD[n−2]と、の合計3つの可変長SFDデータを保持することができる。
【0065】
SFD検出更新部224は、受信制御部229からの制御信号(CTL)に従い、XOR演算部223から入力された最新の可変長SFDデータSFD[n]をSFD_nextとして第3SFD判定部228に出力し、1回前に生成(更新)された可変長SFDデータSFD[n−1]をSFD_currentとして第2SFD判定部227に出力し、2回前に生成(更新)された可変長SFDデータSFD[n−2]をSFD_beforeとして第1SFD判定部226に出力する。また、SFD検出更新部224は、受信制御部229からの制御信号(CTL)に従い、標準SFDデータをSFD_stdとして標準SFD判定部225に出力する。
【0066】
受信制御部229は、SFD検出更新部224から出力される受信データのSFDの特定結果DETを入力とする。受信制御部229は、SFD特定結果(DET)に基づいて、タイミング調整部221が受信データ(フレームデータ)から、ヘッダおよびペイロードを取得するためのタイミング制御信号を生成する。そして、受信制御部229は、生成したタイミング制御信号をタイミング調整部221に出力する。
【0067】
また、受信制御部229は、受信データのSFDの特定結果DETに基づいて、特殊SFD生成部222において、特殊SFDデータを生成(更新)させるためのSFD制御信号SFD_CTLを生成する。そして、受信制御部229は、生成したSFD制御信号SFD_CTLを特殊SFD生成部222に出力する。
【0068】
また、受信制御部229は、受信データのSFDの特定結果DETに基づいて、送信部21において、特殊SFDデータを生成(更新)させるためのSFD更新指示(SFD更新指示信号)を生成し、生成したSFD更新指示(SFD更新指示信号)を送信部21の送信制御部215に出力する。
【0069】
また、受信制御部229は、受信データのSFDの特定結果DETに基づいて、制御部1に、通信データを受信したことを示す受信通知(受信通知信号)を出力する。
【0070】
インターフェース部3(IF部3)は、ネットワークN1に接続され、通信データを送受信するためのインターフェースである。インターフェース部3は、送信部21から出力される送信データ(送信用フレームデータ)を入力とし、当該送信データに含まれる送信先アドレスに従い、当該送信データを送信先の通信装置に送信する。また、インターフェース部3は、自装置宛の通信データを、ネットワークN1を介して受信し、受信した通信データを受信部22に出力する。
【0071】
<1.2:通信システムの動作>
以上のように構成された通信システム1000の動作について、以下、説明する。
【0072】
ネットワークN1に接続されている通信装置10Aと通信装置10Bとの間でデータ通信を行う場合を一例として、以下、説明する。なお、通信装置10Aおよび通信装置10Bは、ともに、上記で説明した通信装置10と同様の構成を有している。
【0073】
(1.2.1:通常の通信シーケンス)
まず、通常の通信シーケンス(通信エラーが発生していない場合の通信シーケンス)について、説明する。
【0074】
図6は、通信装置10Aと通信10Bとの間における通信のシーケンス図である。
【0075】
≪演算シードの送受信≫
図6に示すように、通信装置10Aは、演算シードについてのデータを暗号化する。具体的には、通信装置10Aの制御部1および/またはアプリケーション部(アプリケーション層の処理を行う機能部)(不図示)により、演算シードについてのデータを、例えば、共通鍵暗号方式(AES暗号方式等)により暗号化する(ステップSA1)。そして、制御部1は、暗号化された演算シードを、ペイロードに含め、制御部1から送信部21のフレーム生成部216に出力する。また、通信装置10Aの制御部1は、送信先が通信装置10Bであることを示す送信先データを含むヘッダを作成し、作成したヘッダを送信部21のフレーム生成部216に出力する。さらに、制御部1は、セレクタ214からの標準SFDを出力させるためのSFD選択信号をセレクタ214に出力する。また、通信装置10Aの制御部1は、送信制御部215に対して、送信指示(信号)を出力する。送信制御部215は、制御部1から入力された送信指示に従い、フレーム生成部216において、上記ヘッダ、ペイロード、および、標準SFDをフレーム化して、送信データを生成するための制御信号を、フレーム生成部216に出力する。通信装置10Aのフレーム生成部216は、送信制御部215から入力された制御信号に従い、制御部1から入力されたヘッダおよびペイロード(暗号化された演算シードを含むペイロード)と、セレクタ214から入力された標準SFDとを用いて、フレームデータを生成し、生成したフレームデータ(通信データ)をインターフェース部3に出力する。
【0076】
通信装置10Aのインターフェース部3は、送信部21のフレーム生成部216から入力された通信データを、ネットワークN1を介して、送信先の通信装置10Bに送信する。
【0077】
通信装置10Bでは、通信装置10Bのインターフェース部3を介して、通信装置10Aから通信装置10Bに送信されたデータを受信する。通信装置10Bのインターフェース部3により受信したデータは、受信部22の標準SFD判定部225、第1SFD判定部226、第2SFD判定部227,第3SFD判定部228、および、タイミング調整部221に出力される。
【0078】
通信装置10Bの標準SFD判定部225は、通信装置10Bで受信したデータに、標準SFDが含まれるか否かを判定し、その判定結果det0をSFD検出更新部224に出力する。上記の場合、通信装置10Aから通信装置10Bに送信されたデータ(通信データ)は、標準SFDを含むデータであるので、通信装置10Bの標準SFD判定部225は、通信装置10Bで受信したデータに、標準SFDが含まれることを示す判定結果det0をSFD検出更新部224に出力する。以下では、説明便宜のため、標準SFD判定部225は、受信データに標準SFDが含まれていることを検出した場合、det0=1とし、それ以外の場合、det0=0とするものとする。
【0079】
なお、第1SFD判定部226、第2SFD判定部227および第3SFD判定部228は、それぞれ、受信データに、可変長SFDデータである、SFD_before、SFD_currentおよびSFD_nextが含まれているか否かを判定し、判定結果det1〜det3をSFD検出更新部224に出力する。以下では、説明便宜のため、第1SFD判定部226は、受信データに可変長SFDであるSFD_beforeが含まれていることを検出した場合、det1=1とし、それ以外の場合、det1=0とするものとする。また、同様に、第2SFD判定部227は、受信データにSFD_currentと同じ可変長SFDが含まれていることを検出した場合、det2=1とし、それ以外の場合、det2=0とするものとする。また、同様に、第3SFD判定部228は、受信データに可変長SFDであるSFD_nextが含まれていることを検出した場合、det3=1とし、それ以外の場合、det3=0とするものとする。
【0080】
上記の場合、受信データには、可変長SFDは含まれていないので、判定結果det1〜det3は、全て「0」に設定されて、SFD検出更新部224に出力される。
【0081】
SFD検出更新部224は、標準SFD判定部225から入力される判定結果det0が「1」であるので、受信データが標準SFDを含むデータであることを認識し、受信データが標準SFDを含むデータであることを示す判定結果DETを受信制御部229に出力する。
【0082】
受信制御部229は、SFD検出更新部224から入力される判定結果DETに基づいて、受信データに含まれるSFDが標準SFDであることを認識し、受信データのフレーム構造を決定する。つまり、受信データに含まれるSFDが標準SFDであることが分かれば、例えば、
図5に示すように、プレアンブル部、SFD部、ヘッダ部、ペイロード部のビット位置、ビット長が決まる。したがって、受信制御部229は、判定結果DETに基づいて、プレアンブル、SFD、ヘッダ、ペイロードを切り出す(取得する)ためのタイミング制御信号を生成することができる。受信制御部229は、生成したタイミング制御信号をタイミング調整部221に出力する。また、受信制御部229は、受信通知を制御部1に出力する。
【0083】
タイミング調整部221は、受信制御部229から入力されたタイミング制御信号に基づいて、受信データ(フレームデータ)から、ヘッダおよびペイロードを取得し、取得したヘッダおよびペイロードを制御部1に出力する。
【0084】
通信装置10Bの制御部1は、受信制御部229から受信通知を受け取ると、送信先である通信装置10Aに対してACK信号(応答信号)を送信するための処理を行う。具体的には、制御部1は、送信部21の送信制御部215に対してACK信号の送信指示を出すとともに、送信先を通信装置10Aとするヘッダを生成し、ACK信号であることを示すペイロードを生成する。例えば、IEEE802.11規格に準拠させる場合、ペイロード(MACフレーム)に含まれるIEEE802.11ヘッダのFrame Controlフィールドにおいて、フレームタイプが「制御フレーム」であることを示す値(「10」)に設定するとともに、サブタイプを「ACK」であることを示す値(「1011」)に設定することで、制御部1は、ACK信号であることを示すペイロードを生成する。
【0085】
そして、制御部1は、生成したヘッダおよびペイロードを送信部21に出力する。また、制御部1は、セレクタ214にて、標準SFDが選択されるように、SFD選択信号をセレクタ214に出力する。
【0086】
通信装置10Bの受信部21は、制御部1から出力されるACK信号の送信指示に従い、SFDを標準SFDとして、ACK信号(ACKフレーム)を生成する。そして、通信装置10Bは、生成したACK信号を、通信装置10Aに送信(返信)する。
【0087】
そして、通信装置10Aは、通信装置10Bから送信(返信)されたACK信号を受信する。具体的には、通信装置10Aは、上記で説明した、通信装置10Bにおける暗号化演算シードを標準SFDにより受信する場合の処理と同様の処理を行い、ACK信号を受信する。
【0088】
通信装置10Bの制御部1は、上記ACK送信処理を行うとともに、SFD設定処理(初期化処理)(ステップSB2)を行う。通信装置10Bの制御部1は、タイミング調整部221から入力されたペイロードにふくまれている暗号化された演算シードを取得する。制御部1(および/または、アプリケーション部)は、取得したデータを復号することで、演算シードについてのデータを取得する。そして、制御部1は、取得した演算シードを受信部22の特殊SFD生成部222に出力する。受信部22の特殊SFD生成部222は、制御部1から入力された演算シードを、特殊SFDの生成処理の初期値として設定する。
【0089】
また、制御部1は、送信部21の特殊SFD生成部211に対しても、上記と同様に、取得した演算シードを出力する。そして、送信部21の特殊SFD生成部211も、制御部1から入力された演算シードを、特殊SFDの生成処理の初期値として設定する。
【0090】
通信装置10Aにおいても、通信装置10Bから返信されたACK信号を受信すると、SFD設定処理(初期化処理)(ステップSA2)を行う。具体的には、上記と同様、通信装置10Aの送信部21の特殊SFD生成部211および受信部22の特殊SFD生成部222において、演算シードを初期値として設定する。これにより、通信装置10Aの特殊SFD生成部211、222および通信装置10Bの特殊SFD生成部211、222において、同じ値の初期値(演算シード)が設定されることになる。
【0091】
≪可変長SFDの生成方法≫
ここで、送信部21の特殊SFD生成部211およびXOR演算部212により可変長SFDを生成する処理、および、受信部22の特殊SFD生成部222およびXOR演算部223により可変長SFDを生成する処理、について、
図7を用いて説明する。可変長SFDの生成方法の一例として、特殊SFD生成部211、222において、
図7に示す循環型シフトレジスタ(線形帰還シフトレジスタ)を用いて可変長SFDを生成する場合について説明する。
【0092】
図7の上段に、循環型シフトレジスタ(線形帰還シフトレジスタ)の一例を示す。また、
図7の下段に、状態、シフトレジスタの値(特殊SFD、SFD[x])、通信装置10Aの固有パターンと特殊SFDとのXORの演算結果の値(可変長SFD、SFDA[x])、および、通信装置10Bの固有パターンと特殊SFDとのXORの演算結果の値(可変長SFD、SFDB[x])を一覧にした表を示す。なお、以下では、演算シードの値を「000110010」とし、通信装置10Aの固有パターン(例えば、固有ID)を「000001111」とし、通信装置10Bの固有パターン(例えば、固有ID)を「111110000」として説明する。
【0093】
また、以下では、通信装置10Aの送信部21で生成される可変長SFD(SFDA[x])と、通信装置10Aの受信部22で生成される可変長SFD(SFDB[x])とを生成する場合について、説明する。
(状態0):
送信部21の特殊SFD生成部211および受信部22の特殊SFD生成部222が、
図7の上段に示す線形帰還シフトレジスタにより構成される場合、送信部21の特殊SFD生成部211および受信部22の特殊SFD生成部222は、上記で説明した演算シードの値を、シフトレジスタの初期値として設定する。つまり、シフトレジスタには、演算シードの値「000110010」(9ビットデータ)が初期値として設定される。
【0094】
図7の表の「状態0」は、初期値(演算シードの値)が設定されたときのシフトレジスタの値が「0 0011 0010」に設定されていることを示している。つまり、「状態0」において、特殊SFD(SFD[0])の値は、「0 0011 0010」となる。なお、「状態x」(x:整数、x≧0)は、特殊SFD生成部211、222に入力されるSFD制御信号SFD_CTLに従い、更新処理が実行される度に、次の状態に遷移する(「x」の値がインクリメントされる)。また、状態xの特殊SFDの値をSFD[x]と表記する。
【0095】
通信装置10Aの固有パターンは、「0 0000 1111」であるので、特殊SFD(SFD[0])と通信装置10Aの固有パターンとのXOR演算の結果は、
図7に示すように、「0 0011 1101」(ビット長:6ビット)となる。つまり、この値が可変長SFDの値となり、通信装置10Aの送信部21のXOR演算部212から出力される。なお、このとき、MSBから連続する「0」については出力しない。これにより、XOR演算部212から出力されるSFDの値は、可変長となる。
【0096】
一方、通信装置10Bの固有パターンは、「1 1111 0000」であるので、特殊SFD(SFD[0])と通信装置10Bの固有パターンとのXOR演算の結果は、
図7に示すように、「1 1100 0010」(ビット長:9ビット)となる。つまり、この値が可変長SFDの値となり、通信装置10Aの受信部22のXOR演算部223から出力される。なお、このとき、MSBから連続する「0」については出力しない。これにより、XOR演算部223から出力されるSFDの値は、可変長となる。
【0097】
なお、通信装置10Aの固有パターンを用いて生成した、状態xの可変長SFDの値をSFDA[x]と表記し、通信装置10Bの固有パターンを用いて生成した、状態xの可変長SFDの値をSFDB[x]と表記する。
(状態1):
次に、送信制御部215(または受信制御部229)から出力されるSFD制御信号SFD_CTLにより、特殊SFDの更新が指示された場合(状態0から状態1に遷移させる場合)、
図7のシフトレジスタは、保持しているデータ左方向に1ビットずつシフトさせ、ビット1には、ビットシフト前のビット4の値とビット9の値とのXOR演算値が入力される。状態0において、ビット4の値は「0」であり、ビット9の値は「0」であるので、両者のXOR演算結果は「0」となる。したがって、ビット1には、「0」が入力される。つまり、シフトレジスタの値は、
図7の表の状態1に示すように、「0 0110 0100」となる。すなわち、状態1の特殊SFDの値SFD[1]は、「0 0110 0100」となる。
【0098】
通信装置10Aの固有パターンを用いて生成する可変長SFDA[1]は、特殊SFDの値SFD[1]と、通信装置10Aの固有パターンとのXOR演算により、
図7の表の状態1に示すように、「0 0110 1011」(ビット長:7ビット)となる。そして、この可変長SFDA[1]は、通信装置10Aの送信部21のXOR演算部212から出力される。
【0099】
一方、通信装置10Bの固有パターンを用いて生成する可変長SFDB[1]は、特殊SFDの値SFD[1]と、通信装置10Bの固有パターンとのXOR演算により、
図7の表の状態1に示すように、「1 1001 0100」(ビット長:9ビット)となる。そして、この可変長SFDB[1]は、通信装置10Bの送信部21のXOR演算部212から出力される。
(状態2以降):
状態2以降の処理についても、上記と同様の処理が実行されることで、
図7の表に示されるように、特殊SFD(SFD[x])、通信装置10Aの固有パターンを用いて生成される可変長SFD(SFDA[x])、および、通信装置10Bの固有パターンを用いて生成される可変長SFD(SFDB[x])が生成される。なお、
図7の表は、「状態5」までのデータを表示しているが、状態5以降も、上記と同様の処理により、特殊SFD[x]、可変長SFDA[x]およびSFDB[x]が更新される。
【0100】
なお、上記では、通信装置10Aの送信部21で生成される可変長SFD(SFDA[x])と、通信装置10Aの受信部22で生成される可変長SFD(SFDB[x])とを生成する場合について説明したが、通信装置10Bの送信部21で生成される可変長SFD(SFDB[x])と、通信装置10Bの受信部22で生成される可変長SFD(SFDA[x])の生成方法も、上記と同様である。つまり、通信装置10Bの送信部21で生成される可変長SFD(SFDB[x])の生成方法は、通信装置10Aの受信部22で生成される可変長SFD(SFDB[x])の生成方法と同様であり、通信装置10Bの受信部22で生成される可変長SFD(SFDA[x])の生成方法は、通信装置10Aの送信部21で生成される可変長SFD(SFDA[x])の生成方法と同様である。
【0101】
また、通信装置10Aの送信部21の特殊SFD生成部211と、通信装置10Aの受信部22の特殊SFD生成部222と、通信装置10Bの送信部21の特殊SFD生成部211と、通信装置10Bの受信部22の特殊SFD生成部222とは、同じ処理(上記の場合では、
図7の上段に示した循環型シフトレジスタ(線形帰還シフトレジスタ)による処理)を実行する。したがって、生成される特殊SFD[x]は同じであるが、XORをとる固有パターンが異なるために、通信装置10Aが送信するときの可変長SFDと、通信装置10Bが送信するときの可変長SFDとが異なる値となる。したがって、通信装置10Aと通信装置10Bとの通信において、常に異なる可変長SFDを用いて通信することができ、セキュリティ強度の向上させることができる。例えば、特殊SFDが更新されていない状態で、通信装置10Aから通信装置10Bに送信するときに使用される可変長SFD(SFDA[x])と、反対に、通信装置10Bから通信装置10Aに送信するときに使用される可変長SFD(SFDB[x])とが一致することがない。
【0102】
また、上記では、特殊SFD生成部に、
図7に示す循環型シフトレジスタ(線形帰還シフトレジスタ)を採用した場合について説明したが、これに限定されることはなく、例えば、異なる構成の線形帰還シフトレジスタを用いて、特殊SFDを生成するようにしてもよい。例えば、フィボナッチLFSR(linear feedback shift register)やガロアLFSRを用いるようにしてもよい。また、所定のビットデータとのXOR演算を行わず単純にビットデータを巡回させるだけのシフトレジスタを用いて特殊SFDを生成するようにしてもよい。また、上記で挙げたシフトレジスタにおいて、ビットシフト量を1ビットではないNビット(N:自然数)として、特殊SFDを生成するようにしてもよい。このとき、ビットシフト量は、通信装置10Aおよび通信装置10Bが予め設定しておいてもよいし、演算シードを暗号化通信により送信する際に、ビットシフト量のデータも送信するようにしてもよい。
【0103】
また、線形合同法により、特殊SFDを生成するようにしてもよい。この場合、特殊SFD生成部211、222は、以下の漸化式に相当する処理により、特殊SFDを算出するようにしてもよい。
【0104】
X(n+1)=mod((A×X(n)+B),M)
M>A,M>B,B≧0
A,B,M:定数
n:整数(n≧0)
mod(x,m):法mとしてxの剰余を求める関数
なお、X(0)は初期値であり、演算シードの値がX(0)に代入される。
【0105】
上記線形合同法による処理では、定数Mにより最大のビット長が決定され、SFD制御信号により、更新処理を行うことで、特殊SFDが可変長の値として取得される。
【0106】
また、疑似乱数を生成する方法や、ゴールド符号を用いた方法等を用いて特殊SFDを生成するようにしてもよい。
【0107】
以上により、送信部21の特殊SFD生成部211およびXOR演算部212、並びに、受信部22の特殊SFD生成部222およびXOR演算部223により、可変長SFDが生成される。
【0108】
≪1:1回目の通信(通信装置10Aから通信装置10Bへのデータ送信)≫
≪1A:データ送受信処理≫
次に、通信装置10Aから通信装置10Bへのデータ送信する場合の処理について説明する。
【0109】
図6に示すように、通信装置10Aの制御部1は、送信データ(伝送データ)を含むペイロードと、送信先を通信装置10Bとする送信先データを含むヘッダとを送信部21に出力する。送信部21は、特殊SFD(SFD[0])と通信装置10Aの固有パターンとをXOR演算して生成した可変長SFD(SFDA[0])をSFDとして、送信データ(フレームデータ)を生成する。そして、生成した送信データ(フレームデータ)を通信装置10Bに送信する。
【0110】
通信装置10Bの特殊SFD生成部222は、特殊SFD(SFD[0])を生成する。そして、XOR演算部223は、特殊SFD(SFD[0])と、制御部1から入力される相手固有パターンである通信装置10Aの固有パターンとのXORをとり、可変長SFD(SFDA[0])を生成する。そして、XOR演算部223は、生成した可変長SFD(SFDA[0])をSFD検出更新部224に出力する。
【0111】
SFD検出更新部224は、XOR演算部223から入力された可変長SFD(SFDA[0])をSFD_nextとして、第3SFD判定部228に出力する。第3SFD判定部228は、入力されたSFD_nextを保持する。
【0112】
なお、もう1回、上記処理を行い、特殊SFDを更新することが好ましい。つまり、通信装置10Bの特殊SFD生成部222は、特殊SFD(SFD[1])を生成し、XOR演算部223は、特殊SFD(SFD[1])と、制御部1から入力される相手固有パターンである通信装置10Aの固有パターンとのXORをとり、可変長SFD(SFDA[1])を生成する。そして、XOR演算部223は、生成した可変長SFD(SFDA[1])をSFD検出更新部224に出力する。そして、SFD検出更新部224は、XOR演算部223から入力された可変長SFD(SFDA[1])を入力し、
SFD_next=SFDA[1]
SFD_current=SFDA[0]
とする。
【0113】
そして、SFD検出更新部224は、SFD_nextを第3SFD判定部228に、SFD_currentを第2SFD判定部227に、それぞれ、出力する。そして、第3SFD判定部228は、SFD_nextを保持し、第2SFD判定部227は、SFD_currentを保持する。
【0114】
このようにすることで、SFD_currentにSFDA[0]を設定することができる。通信システム1000では、通信エラーがない場合、SFD_currentに設定されているSFDにより通信することを原則とするため、通信装置10Aと通信装置10Bとが最初に可変長SFDを用いて通信する場合に、SFD_currentにSFDA[0](あるいはSFDB[0])が設定されていることが好ましい。したがって、演算シードを初期値として、最初の特殊SFDを生成した後、さらにもう1回、特殊SFDを生成する処理を行うことが好ましい。これにより、通信装置10Bの受信部22のSFD検出更新部224において、
SFD_next=SFDA[1]
SFD_current=SFDA[0]
となり、通信装置10Aの受信部22のSFD検出更新部224において、
SFD_next=SFDB[1]
SFD_current=SFDA[0]
となる。
【0115】
なお、通信装置10Aと通信装置10Bとが最初に可変長SFDを用いて通信する場合に、(特殊SFDを2回生成することをせずに)通信装置10Bの受信部22のSFD検出更新部224において、
SFD_next=SFDA[1]
SFD_current=SFDA[0]
とし、通信装置10Aの受信部22のSFD検出更新部224において、
SFD_next=SFDB[1]
SFD_current=SFDB[0]
とするようにしてもよい。ただし、この場合、次に、特殊SFDが更新されても、通信に使用される可変長SFDが同じになってしまうため、若干セキュリティ強度が弱くなる。
【0116】
以下では、通信装置10Aと通信装置10Bとが最初に可変長SFDを用いて通信する場合において、通信装置10Bの受信部22のSFD検出更新部224において、
SFD_next=SFDA[1]
SFD_current=SFDA[0]
と設定(状態B0)されており、通信装置10Aの受信部22のSFD検出更新部224において、
SFD_next=SFDB[1]
SFD_current=SFDB[0]
と設定(状態A0)されているものとして説明する。
【0117】
通信装置10Aから送信され通信装置10Bで受信されたデータのSFDが可変長SFDであり、SFDA[0]であるので、第2SFD判定部227が保持しているSFD_current(=SFDA[0])と一致する。したがって、通信装置10Bの第2SFD判定部227は、判定結果det2=1として、det2をSFD検出更新部224に出力する。
【0118】
SFD検出更新部224は、第2SFD判定部227から入力されたdet2が「1」であるので、受信データにおいて、SFD=SFD_current(=SFDA[0])であることを示すSFD検出結果信号DETを受信制御部229に出力する。
【0119】
受信制御部229は、入力されたSFD検出結果信号DETに基づいて、タイミング制御信号を生成し、タイミング調整部221に出力するとともに、受信通知を制御部1に出力する。また、受信制御部229は、SFD更新処理を指示するSFD制御信号を特殊SFD生成部222に出力し、さらに、送信部21の送信制御部215にSFD更新指示を出力する。
【0120】
タイミング調整部221は、入力されたタイミング制御信号に基づいて、ヘッダおよびペイロードを切り出し(取得し)、制御部1に出力する。
【0121】
受信部22の特殊SFD生成部222は、入力されたSFD制御信号SFD_CTLに基づいて、特殊SFDを更新する処理を行う。これにより、通信装置10Bの受信部22の特殊SFD生成部222で生成される特殊SFDは、SFD[2]となる。
【0122】
通信装置10Bの制御部1は、受信制御部229から受信通知を受け取ると、通信装置10AにACK信号を送信するために、ACK信号の送信指示を送信制御部215に出力するとともに、セレクタ214にて可変長SFD(SFDB[0])が選択されるようにSFD選択信号をセレクタ214に出力する。
【0123】
送信制御部215は、入力されたACK信号の送信指示に従い、フレーム生成部216が可変長SFD(SFDB[0])を含む通信データ(フレームデータ)を生成し、通信装置10Aに送信するように制御信号をフレーム生成部216に出力する。そして、通信装置10Bのインターフェース部3を介して、SFDをSFDB[0]とするACK信号が通信装置10Bから通信装置10Aに送信される。
【0124】
ACK信号が送信されると、通信装置10Bの送信制御部215は、受信制御部229から入力されたSFD更新指示に基づいて、送信部21の特殊SFD生成部211に更新処理が実行されるようにSFD制御信号SFD_CTLを出力する。
【0125】
通信装置10Bの送信部21の特殊SFD生成部211は、入力されたSFD制御信号SFD_CTLに従い、特殊SFDを、SFD[0]からSFD[1]に更新する。これにより、XOR演算部212から出力される可変長SFDも、SFDB[0]からSFDB[1]へと更新される。
【0126】
また、通信装置10Bの受信部22のXOR演算部223は、特殊SFD生成部222から入力されている特殊SFD(SFD[2])と相手固有パターン(通信装置10Aの固有パターン)とのXORをとり、可変長SFD(SFDA[2])を生成し、SFD検出更新部224に出力する。
【0127】
SFD検出更新部224は、入力された可変長SFD(SFDA[2])を用いて、SFDの更新処理を行い、
SFD_before=SFDA[0]
SFD_current=SFDA[1]
SFD_next=SFDA[2]
と設定する(状態B1)。そして、SFD検出更新部224は、SFD_before(=SFDA[0])を第1SFD判定部226に出力し、第1SFD判定部226は、SFD_before(=SFDA[0])を保持する。また、SFD検出更新部224は、SFD_current(=SFDA[1])を第2SFD判定部227に出力し、第2SFD判定部227は、SFD_current(=SFDA[1])を保持する。また、SFD検出更新部224は、SFD_next(=SFDA[2])を第3SFD判定部228に出力し、第3SFD判定部228は、SFD_next(=SFDA[2])を保持する。
【0128】
この段階で、通信装置10BのSFD更新処理(ステップSB3)が終了し、通信装置10Bにおいて、SFDは以下のように設定されている。
(状態B1):
(送信用)可変長SFD=SFDB[1]
(受信用)SFD_before=SFDA[0]
(受信用)SFD_current=SFDA[1]
(受信用)SFD_next=SFDA[2]
≪1B:ACK受信処理(通信装置10A)≫
一方、通信装置10Aでは、通信装置10Bから送信されたACK信号を受信すると、通信装置10Aでは、以下の状態である。
(状態A0):
(受信用)SFD_current=SFDB[0]
(受信用)SFD_next=SFDB[1]
通信装置10Bから送信されたデータ(ACK信号)のSFDが可変長SFDであり、SFDB[0]であるので、通信装置10Aの第2SFD判定部227が保持しているSFD_current(=SFDB[0])と一致する。したがって、通信装置10Aの第2SFD判定部227は、判定結果det2=1として、det2をSFD検出更新部224に出力する。
【0129】
SFD検出更新部224は、第2SFD判定部227から入力されたdet2が「1」であるので、受信データにおいて、SFD=SFD_current(=SFDB[0])であることを示すSFD検出結果信号DETを受信制御部229に出力する。
【0130】
受信制御部229は、入力されたSFD検出結果信号DETに基づいて、タイミング制御信号を生成し、タイミング調整部221に出力するとともに、受信通知(ACKの受信通知)を制御部1に出力する。また、受信制御部229は、SFD更新処理を指示するSFD制御信号を特殊SFD生成部222に出力し、さらに、送信部21の送信制御部215にSFD更新指示を出力する。
【0131】
タイミング調整部221は、入力されたタイミング制御信号に基づいて、ヘッダおよびペイロードを切り出し(取得し)、制御部1に出力する。
【0132】
受信部22の特殊SFD生成部222は、入力されたSFD制御信号SFD_CTLに基づいて、特殊SFDを更新する処理を行う。これにより、通信装置10Bの受信部22の特殊SFD生成部222で生成される特殊SFDは、SFD[2]となる。
【0133】
通信装置10Aの送信制御部215は、受信制御部229から入力されたSFD更新指示に基づいて、送信部21の特殊SFD生成部211に更新処理が実行されるようにSFD制御信号SFD_CTLを出力する。
【0134】
通信装置10Aの送信部21の特殊SFD生成部211は、入力されたSFD制御信号SFD_CTLに従い、特殊SFDを、SFD[0]からSFD[1]に更新する。これにより、XOR演算部212から出力される可変長SFDも、SFDA[0]からSFDA[1]へと更新される。
【0135】
また、通信装置10Aの受信部22のXOR演算部223は、特殊SFD生成部222から入力されている特殊SFD(SFD[2])と相手固有パターン(通信装置10Bの固有パターン)とのXORをとり、可変長SFD(SFDB[2])を生成し、SFD検出更新部224に出力する。
【0136】
SFD検出更新部224は、入力された可変長SFD(SFDB[2])を用いて、SFDの更新処理を行い、
SFD_before=SFDB[0]
SFD_current=SFDB[1]
SFD_next=SFDB[2]
と設定する(状態A1)。そして、SFD検出更新部224は、SFD_before(=SFDB[0])を第1SFD判定部226に出力し、第1SFD判定部226は、SFD_before(=SFDB[0])を保持する。また、SFD検出更新部224は、SFD_current(=SFDB[1])を第2SFD判定部227に出力し、第2SFD判定部227は、SFD_current(=SFDB[1])を保持する。また、SFD検出更新部224は、SFD_next(=SFDB[2])を第3SFD判定部228に出力し、第3SFD判定部228は、SFD_next(=SFDB[2])を保持する。
【0137】
この段階で、通信装置10AのSFD更新処理(ステップSA3)が終了し、通信装置10Aにおいて、SFDは以下のように設定されている。
(状態A1):
(送信用)可変長SFD=SFDA[1]
(受信用)SFD_before=SFDB[0]
(受信用)SFD_current=SFDB[1]
(受信用)SFD_next=SFDB[2]
≪2:2回目の通信(通信装置10Bから通信装置10Aへのデータ送信)≫
≪2A:データ送受信処理≫
次に、
図6に示すように、通信装置10Bから通信装置10Aへのデータ送信する場合(2回目の通信)、上記の1回目の通信で説明したのと同様の処理(データ送受信時の処理)が実行される。具体的には、以下のように処理が実行される。
【0138】
通信装置10Bは、通信装置10Aに対して、SFDを可変長SFD(SFDB[1])とする通信データ(フレームデータ)を送信する。
【0139】
通信装置10Aは、通信装置10Bから、SFDを可変長SFD(SFDB[1])とする通信データを受信する。
【0140】
通信装置10Bから送信され通信装置10Aで受信されたデータのSFDは、可変長SFD(SFDB[1])であり、通信装置10Aの第2SFD判定部227で保持されているSFD_current(=SFDB[1])と一致する。したがって、第2SFD判定部227は、判定結果det2=1として、det2をSFD検出更新部224に出力する。そして、通信装置10Aでは、上記の1回目の通信で説明したのと同様に、受信処理、可変長SFDの更新処理が実行され、通信装置10Aの受信部22のXOR演算部223から出力される可変長SFDが、SFDB[2]からSFDB[3]に更新される。
【0141】
そして、SFD検出更新部224では、SFDの更新処理が実行され、
SFD_before=SFDB[1]
SFD_current=SFDB[2]
SFD_next=SFDB[3]
に設定され、上記SFDが、それぞれ、第1SFD判定部226、第2SFD判定部227および第3SFD判定部228に設定される(ステップSA4)。
【0142】
また、通信装置10Aの送信部21は、通信装置10BへACK信号を送信し、さらに、可変長SFDの更新処理を実行する。これにより、通信装置10Aの送信部21のXOR演算部212から出力される可変長SFDが、SFDA[1]からSFDA[2]に更新される(ステップSA4)。
【0143】
この段階で、通信装置10AのSFD更新処理(ステップSA4)が終了し、通信装置10Aにおいて、SFDは以下のように設定されている。
(状態A2):
(送信用)可変長SFD=SFDA[2]
(受信用)SFD_before=SFDB[1]
(受信用)SFD_current=SFDB[2]
(受信用)SFD_next=SFDB[3]
≪2B:ACK受信処理(通信装置10B)≫
通信装置10Bは、通信装置10AからのACK信号を受信すると、上記の1回目の通信と同様の処理(ACK受信時の処理)が実行される。具体的には、以下のように処理が実行される。
【0144】
通信装置10Bは、通信装置10Aから、SFDを可変長SFD(SFDA[1])とするACK信号を受信する。
【0145】
通信装置10Bで受信したACK信号のSFDは、可変長SFD(SFDA[1])であり、通信装置10Bの第2SFD判定部227で保持されているSFD_current(=SFDA[1])と一致する。したがって、第2SFD判定部227は、判定結果det2=1として、det2をSFD検出更新部224に出力する。そして、通信装置10Bでは、上記の1回目の通信で説明したのと同様に、受信処理、可変長SFDの更新処理が実行され、通信装置10Bの受信部22のXOR演算部223から出力される可変長SFDが、SFDA[2]からSFDA[3]に更新される。
【0146】
そして、SFD検出更新部224では、SFDの更新処理が実行され、
SFD_before=SFDA[1]
SFD_current=SFDA[2]
SFD_next=SFDA[3]
に設定され、上記SFDが、それぞれ、第1SFD判定部226、第2SFD判定部227および第3SFD判定部228に設定される(ステップSB4)。
【0147】
また、通信装置10Bの送信部21では、可変長SFDの更新処理が実行され、通信装置10Bの送信部21のXOR演算部212から出力される可変長SFDが、SFDB[1]からSFDB[2]に更新される(ステップSB4)。
【0148】
この段階で、通信装置10BのSFD更新処理(ステップSB4)が終了し、通信装置10Bにおいて、SFDは以下のように設定されている。
(状態B2):
(送信用)可変長SFD=SFDB[2]
(受信用)SFD_before=SFDA[1]
(受信用)SFD_current=SFDA[2]
(受信用)SFD_next=SFDA[3]
≪3:3回目の通信(通信装置10Aから通信装置10Bへのデータ送信)≫
≪3A:データ送受信処理≫
次に、
図6に示すように、通信装置10Aから通信装置10Bへのデータ送信する場合(3回目の通信)、上記の1回目の通信で説明したのと同様の処理(データ送受信時の処理)が実行される。具体的には、以下のように処理が実行される。
【0149】
通信装置10Aは、通信装置10Bに対して、SFDを可変長SFD(SFDA[2])とする通信データ(フレームデータ)を送信する。
【0150】
通信装置10Bは、通信装置10Aから、SFDを可変長SFD(SFDA[2])とする通信データを受信する。
【0151】
通信装置10Aから送信され通信装置10Bで受信されたデータのSFDは、可変長SFD(SFDA[2])であり、通信装置10Bの第2SFD判定部227で保持されているSFD_current(=SFDA[2])と一致する。したがって、第2SFD判定部227は、判定結果det2=1として、det2をSFD検出更新部224に出力する。そして、通信装置10Bでは、上記の1回目の通信で説明したのと同様に、受信処理、可変長SFDの更新処理が実行され、通信装置10Bの受信部22のXOR演算部223から出力される可変長SFDが、SFDB[3]からSFDB[4]に更新される。
【0152】
そして、SFD検出更新部224では、SFDの更新処理が実行され、
SFD_before=SFDA[2]
SFD_current=SFDA[3]
SFD_next=SFDA[4]
に設定され、上記SFDが、それぞれ、第1SFD判定部226、第2SFD判定部227および第3SFD判定部228に設定される(ステップSB5)。
【0153】
また、通信装置10Bの送信部21は、通信装置10AへACK信号を送信し、さらに、可変長SFDの更新処理を実行する。これにより、通信装置10Bの送信部21のXOR演算部212から出力される可変長SFDが、SFDB[2]からSFDB[3]に更新される(ステップSB5)。
【0154】
この段階で、通信装置10BのSFD更新処理(ステップSB5)が終了し、通信装置10Aにおいて、SFDは以下のように設定されている。
(状態B3):
(送信用)可変長SFD=SFDB[3]
(受信用)SFD_before=SFDA[2]
(受信用)SFD_current=SFDA[3]
(受信用)SFD_next=SFDA[4]
≪3B:ACK受信処理(通信装置10A)≫
通信装置10Aは、通信装置10BからのACK信号を受信すると、上記の1回目の通信と同様の処理(ACK受信時の処理)が実行される。具体的には、以下のように処理が実行される。
【0155】
通信装置10Aは、通信装置10Bから、SFDを可変長SFD(SFDB[2])とするACK信号を受信する。
【0156】
通信装置10Aで受信したACK信号のSFDは、可変長SFD(SFDB[2])であり、通信装置10Aの第2SFD判定部227で保持されているSFD_current(=SFDB[2])と一致する。したがって、第2SFD判定部227は、判定結果det2=1として、det2をSFD検出更新部224に出力する。そして、通信装置10Aでは、上記の1回目の通信で説明したのと同様に、受信処理、可変長SFDの更新処理が実行され、通信装置10Aの受信部22のXOR演算部223から出力される可変長SFDが、SFDB[3]からSFDB[4]に更新される。
【0157】
そして、SFD検出更新部224では、SFDの更新処理が実行され、
SFD_before=SFDB[2]
SFD_current=SFDB[3]
SFD_next=SFDB[4]
に設定され、上記SFDが、それぞれ、第1SFD判定部226、第2SFD判定部227および第3SFD判定部228に設定される(ステップSA5)。
【0158】
また、通信装置10Aの送信部21では、可変長SFDの更新処理が実行され、通信装置10Bの送信部21のXOR演算部212から出力される可変長SFDが、SFDA[2]からSFDA[3]に更新される(ステップSA5)。
【0159】
この段階で、通信装置10AのSFD更新処理(ステップSA5)が終了し、通信装置10Aにおいて、SFDは以下のように設定されている。
(状態A3):
(送信用)可変長SFD=SFDA[3]
(受信用)SFD_before=SFDB[2]
(受信用)SFD_current=SFDB[3]
(受信用)SFD_next=SFDB[4]
以上の処理が、通信装置間でデータ通信が実行される度に、繰り返される。つまり、通信システム1000では、送信側の通信装置および受信側の通信装置において、データ通信が実行される度にSFD更新処理が実行され、異なった可変長SFDを用いたセキュアな通信を行うことができる。
【0160】
(1.2.2:通信エラーありの場合の通信シーケンス(パターン1))
次に、通信エラーがある場合の通信シーケンス(パターン1)について、説明する。なお、SFDの更新処理については、上記の通常の通信シーケンスで説明したものと同様であるため、説明を省略する。
【0161】
図8は、通信装置10Aと通信10Bとの間における通信エラーありの場合(パターン1の場合)の通信のシーケンス図である。
【0162】
図8に示すように、
(1)1回目の通信において、通信装置10Aから通信装置10Bに対して、データ送信が行われ、通信装置10Aから通信装置10Bへデータ送信時にエラーが発生し、
(2)2回目の通信において、通信装置10Aから通信装置10Bに対して、データ送信が行われ、通信装置10Bから通信装置10AへACK信号を送信(返信)するときにエラーが発生し、
(3)3回目の通信において、通信装置10Aから通信装置10Bに対して、エラーの発生なく、データ送信が実行される、
場合について、以下、説明する。
【0163】
なお、
図8の通信が実行される前において、通信装置10Aで設定されている可変長SFDは、
(状態A10):
(送信用)可変長SFD=SFDA[1]
(受信用)SFD_before=SFDB[0]
(受信用)SFD_current=SFDB[1]
(受信用)SFD_next=SFDB[2]
であり、通信装置10Bで設定されている可変長SFDは、
(状態B10):
(送信用)可変長SFD=SFDB[1]
(受信用)SFD_before=SFDA[0]
(受信用)SFD_current=SFDA[1]
(受信用)SFD_next=SFDA[2]
であるとして、以下、説明する。
【0164】
≪P1−1:1回目の通信(通信装置10Aから通信装置10Bへのデータ送信)≫
1回目の通信では、通信装置10Aは、通信装置10Bに対して、データ送信(SFDとして、可変長SFD(SFDA[1])を用いたデータ送信)を行う。1回目の通信では、
図8に示すように、通信装置10Aから通信装置10Bへのデータ送信時にエラーが発生している。上記の通常の通信シーケンスで説明したように、データ送信側の通信装置は、データ受信側の通信装置から(正常に)ACK信号を受信した場合に、SFD更新処理を行い、一方、データ受信側の通信装置は、送信側の通信装置から送信されたデータを(正常に)受信した場合に、SFD更新処理を行う。
【0165】
したがって、通信装置10Aから通信装置10Bへのデータ送信時にエラーが発生した場合、通信装置10Aおよび10Bは、ともに、SFD更新処理を行わない(
図8のSFD更新処理SA11およびSFD更新処理SB11は、ともに実行されない)。その結果、通信装置10Aおよび10Bにおいて、設定されているSFDの状態にずれは生じない。つまり、通信装置10Aで保持(設定)されている送信用の可変長SFDおよび受信用の可変長SFD_currentと、通信装置10Bで保持(設定)されている送信用の可変長SFDおよび受信用の可変長SFD_currentとは、全て、特殊SFDであるSFD[1]を用いて生成されたものである。
【0166】
この段階で、通信装置10Aの可変長SFDの設定状況は、
(状態A11):
(送信用)可変長SFD=SFDA[1]
(受信用)SFD_before=SFDB[0]
(受信用)SFD_current=SFDB[1]
(受信用)SFD_next=SFDB[2]
であり、通信装置10Bの可変長SFDの設定状況は、
(状態B11):
(送信用)可変長SFD=SFDB[1]
(受信用)SFD_before=SFDA[0]
(受信用)SFD_current=SFDA[1]
(受信用)SFD_next=SFDA[2]
である。
【0167】
≪P1−2:2回目の通信(通信装置10Aから通信装置10Bへのデータ送信)≫
次に、2回目の通信では、通信装置10Aは、通信装置10Bに対して、データ送信(SFDとして、可変長SFD(SFDA[1])を用いたデータ送信)を行う。2回目の通信では、
図8に示すように、通信装置10Bから通信装置10AへのACK信号の送信(返信)時にエラーが発生している。したがって、通信装置10Aは、正常にデータを受信しているので、SFD更新処理(ステップSB12)を実行する。一方、通信装置10Bは、正常にACK信号を受信していないので、SFD更新処理(ステップSA12)を実行しない(実行できない)。
【0168】
この段階で、通信装置10Aの可変長SFDの設定状況は、
(状態A12):
(送信用)可変長SFD=SFDA[1]
(受信用)SFD_before=SFDB[0]
(受信用)SFD_current=SFDB[1]
(受信用)SFD_next=SFDB[2]
であり、通信装置10Bの可変長SFDの設定状況は、
(状態B12):
(送信用)可変長SFD=SFDB[2]
(受信用)SFD_before=SFDA[1]
(受信用)SFD_current=SFDA[2]
(受信用)SFD_next=SFDA[3]
である。
【0169】
≪P1−3:3回目の通信(通信装置10Aから通信装置10Bへのデータ送信)≫
次に、3回目の通信では、通信装置10Aは、通信装置10Bに対して、データ送信(SFDとして、可変長SFD(SFDA[1])を用いたデータ送信)を行う。3回目の通信では、
図8に示すように、通信エラーの発生はない。
【0170】
2回目の通信において、通信装置10Aは、ACK信号を正常に受信しておらず、SFD更新処理が実行されていないので、3回目の通信において、通信装置10Aは、可変長SFDをSFDA[1]として、データ送信を行っている。
【0171】
通信装置10Bは、通信装置10Aから可変長SFD(SFDA[1])により送信されたデータを、可変長SFD_beforeにより受信することができる。つまり、通信装置10Bでは、可変長SFD_before=SFDA[2]に設定されているので、通信装置10Bの受信部22の第1SFD判定部により、受信データのSFDが可変長SFD_before(=SFDA[2])であることを検出することできる。そして、通信装置10Bの受信部SFD検出更新部224は、受信データに含まれる可変長SFDが可変長SFD_before(=SFDA[2])であることを検出信号DETにより受信制御部229に通知する。
【0172】
通信装置10Bの受信制御部229は、受信データに含まれる可変長SFDが可変長SFD_before(=SFDA[2])であるので、通信装置10Bの受信制御部229は、受信部22の特殊SFD生成部222において更新処理を実行させないように、特殊SFD生成部222を制御する。つまり、通信装置10Bで受信したデータに含まれる可変長SFDが可変長SFD_before(=SFDA[2])であるので、送信側の通信装置10Aで実行されたSFD更新処理の回数が、受信側の通信装置10Bで実行されたSFD更新処理の回数よりも1回少ないことを、通信装置10Bにおいて認識することができる。したがって、SFD更新処理の実行回数を送信側と受信側とで一致させるために、上記のように、受信側の通信装置10Bでは、SFD更新処理を実行しない。
【0173】
また、通信装置10Bでは、受信制御部229から送信制御部215に、SFD更新処理を実行させないように指示し、通信装置10Bの送信部21においても、特殊SFD、可変長SFDの更新処理を実行させない。そして、通信装置10Bは、通信装置10Aに対して、可変長SFDをSFDB[2]として、ACK信号を送信する。
【0174】
通信装置10Aでは、通信装置10BからのACK信号を受信し、当該ACK信号に含まれる可変長SFDがSFDB[2]であり、通信装置10Aにおいて保持されているSFD_next(=SFDB[2])と一致するので、通信装置10Aでは、SFD_next(=SFDB[2])によりACK信号の受信処理を行うことで、正常にACK信号を受信することができる。
【0175】
通信装置10Aは、上記の通り、正常にACK信号を受信することができたので、SFD更新処理を行う(ステップSA13)。
【0176】
この段階で、通信装置10Aの可変長SFDの設定状況は、
(状態A13):
(送信用)可変長SFD=SFDA[2]
(受信用)SFD_before=SFDB[1]
(受信用)SFD_current=SFDB[2]
(受信用)SFD_next=SFDB[3]
であり、通信装置10Bの可変長SFDの設定状況は、
(状態B13):
(送信用)可変長SFD=SFDB[2]
(受信用)SFD_before=SFDA[1]
(受信用)SFD_current=SFDA[2]
(受信用)SFD_next=SFDA[3]
である。
【0177】
つまり、この段階で、通信装置10Aの可変長SFDの設定状況と通信装置10Bの可変長SFDの設定状況との間にずれはない。つまり、通信装置10Aで保持(設定)されている送信用の可変長SFDおよび受信用の可変長SFD_currentと、通信装置10Bで保持(設定)されている送信用の可変長SFDおよび受信用の可変長SFD_currentとは、全て、特殊SFDであるSFD[2]を用いて生成されたものである。
【0178】
(1.2.3:通信エラーありの場合の通信シーケンス(パターン2))
次に、通信エラーがある場合の通信シーケンス(パターン2)について、説明する。なお、SFDの更新処理については、上記の通常の通信シーケンスで説明したものと同様であるため、説明を省略する。
【0179】
図9は、通信装置10Aと通信10Bとの間における通信エラーありの場合(パターン2の場合)の通信のシーケンス図である。
【0180】
図9に示すように、
(1)1回目の通信において、通信装置10Aから通信装置10Bに対して、データ送信が行われ、通信装置10Bから通信装置10AへACK信号を送信(返信)するときにエラーが発生し、
(2)2回目の通信において、通信装置10Bから通信装置10Aに対して、エラーの発生なく、データ送信が実行される、
場合について、以下、説明する。
【0181】
なお、
図9の通信が実行される前において、通信装置10Aで設定されている可変長SFDは、
(状態A20):
(送信用)可変長SFD=SFDA[1]
(受信用)SFD_before=SFDB[0]
(受信用)SFD_current=SFDB[1]
(受信用)SFD_next=SFDB[2]
であり、通信装置10Bで設定されている可変長SFDは、
(状態B20):
(送信用)可変長SFD=SFDB[1]
(受信用)SFD_before=SFDA[0]
(受信用)SFD_current=SFDA[1]
(受信用)SFD_next=SFDA[2]
であるとして、以下、説明する。
【0182】
≪P2−1:1回目の通信(通信装置10Aから通信装置10Bへのデータ送信)≫
次に、1回目の通信では、通信装置10Aは、通信装置10Bに対して、データ送信(SFDとして、可変長SFD(SFDA[1])を用いたデータ送信)を行う。1回目の通信では、
図9に示すように、通信装置10Bから通信装置10AへのACK信号の送信(返信)時にエラーが発生している。したがって、通信装置10Aは、正常にデータを受信しているので、SFD更新処理(ステップSB21)を実行する。一方、通信装置10Bは、正常にACK信号を受信していないので、SFD更新処理(ステップSA21)を実行しない(実行できない)。
【0183】
この段階で、通信装置10Aの可変長SFDの設定状況は、
(状態A21):
(送信用)可変長SFD=SFDA[1]
(受信用)SFD_before=SFDB[0]
(受信用)SFD_current=SFDB[1]
(受信用)SFD_next=SFDB[2]
であり、通信装置10Bの可変長SFDの設定状況は、
(状態B21):
(送信用)可変長SFD=SFDB[2]
(受信用)SFD_before=SFDA[1]
(受信用)SFD_current=SFDA[2]
(受信用)SFD_next=SFDA[3]
である。
【0184】
≪P2−2:2回目の通信(通信装置10Bから通信装置10Aへのデータ送信)≫
次に、2回目の通信では、通信装置10Bは、通信装置10Aに対して、データ送信(SFDとして、可変長SFD(SFDB[2])を用いたデータ送信)を行う。2回目の通信では、
図9に示すように、通信エラーの発生はない。
【0185】
通信装置10Aは、通信装置10Bから可変長SFD(SFDB[2])により送信されたデータを、可変長SFD_nextにより受信することができる。つまり、通信装置10Aでは、可変長SFD_next=SFDB[2]に設定されているので、通信装置10Aの受信部22の第3SFD判定部228により、受信データのSFDが可変長SFD_next(=SFDB[2])であることを検出することできる。そして、通信装置10Aの受信部SFD検出更新部224は、受信データに含まれる可変長SFDが可変長SFD_next(=SFDB[2])であることを検出信号DETにより受信制御部229に通知する。
【0186】
通信装置10Aの受信制御部229は、受信データに含まれる可変長SFDが可変長SFD_next(=SFDB[2])であるので、通信装置10Aの受信制御部229は、受信部22の特殊SFD生成部222において更新処理を2回実行させるように、特殊SFD生成部222を制御する。つまり、通信装置10Aで受信したデータに含まれる可変長SFDが可変長SFD_next(=SFDB[2])であるので、送信側の通信装置10Bで実行されたSFD更新処理の回数が、受信側の通信装置10Aで実行されたSFD更新処理の回数よりも1回多いことを、通信装置10Aにおいて認識することができる。したがって、SFD更新処理の実行回数を送信側と受信側とで一致させるために、上記のように、受信側の通信装置10Aでは、SFD更新処理を2回実行する(ステップSA22)。
【0187】
また、通信装置10Aは、通信装置10Bに対して、可変長SFDをSFDA[1]として、ACK信号を送信する。さらに、通信装置10Aでは、受信制御部229から送信制御部215に、SFD更新処理を2回実行させるように指示し、通信装置10Aの送信部21においても、特殊SFD、可変長SFDの更新処理を2回実行させる。
【0188】
通信装置10Bでは、通信装置10AからのACK信号を受信し、当該ACK信号に含まれる可変長SFDがSFDA[1]であり、通信装置10Bにおいて保持されているSFD_before(=SFDA[1])と一致するので、通信装置10Bでは、SFD_before(=SFDA[1])によりACK信号の受信処理を行うことで、正常にACK信号を受信することができる。
【0189】
通信装置10Bは、上記の通り、正常にACK信号を受信することができたので、SFD更新処理を行う(ステップSB22)。
【0190】
この段階で、通信装置10Aの可変長SFDの設定状況は、
(状態A22):
(送信用)可変長SFD=SFDA[3]
(受信用)SFD_before=SFDB[2]
(受信用)SFD_current=SFDB[3]
(受信用)SFD_next=SFDB[4]
であり、通信装置10Bの可変長SFDの設定状況は、
(状態B22):
(送信用)可変長SFD=SFDB[3]
(受信用)SFD_before=SFDA[2]
(受信用)SFD_current=SFDA[3]
(受信用)SFD_next=SFDA[4]
である。
【0191】
つまり、この段階で、通信装置10Aの可変長SFDの設定状況と通信装置10Bの可変長SFDの設定状況との間にずれはない。つまり、通信装置10Aで保持(設定)されている送信用の可変長SFDおよび受信用の可変長SFD_currentと、通信装置10Bで保持(設定)されている送信用の可変長SFDおよび受信用の可変長SFD_currentとは、全て、特殊SFDであるSFD[3]を用いて生成されたものである。
【0192】
(1.2.4:通信エラーありの場合の通信シーケンス(パターン3))
次に、通信エラーがある場合の通信シーケンス(パターン3)について、説明する。なお、SFDの更新処理については、上記の通常の通信シーケンスで説明したものと同様であるため、説明を省略する。
【0193】
図10は、通信装置10Aと通信10Bとの間における通信エラーありの場合(パターン3の場合)の通信のシーケンス図である。
【0194】
図10に示すように、
(1)1回目の通信において、通信装置10Aから通信装置10Bに対して、データ送信が行われ、通信装置10Bから通信装置10AへACK信号を送信(返信)するときにエラーが発生し、
(2)2回目の通信において、通信装置10Bから通信装置10Aに対して、データ送信が行われ、通信装置10Aから通信装置10BへACK信号を送信(返信)するときにエラーが発生し、
(3)3回目の通信において、通信装置10Aから通信装置10Bに対して、エラーの発生なく、データ送信が実行される、
場合について、以下、説明する。
【0195】
なお、
図10の通信が実行される前において、通信装置10Aで設定されている可変長SFDは、
(状態A30):
(送信用)可変長SFD=SFDA[1]
(受信用)SFD_before=SFDB[0]
(受信用)SFD_current=SFDB[1]
(受信用)SFD_next=SFDB[2]
であり、通信装置10Bで設定されている可変長SFDは、
(状態B30):
(送信用)可変長SFD=SFDB[1]
(受信用)SFD_before=SFDA[0]
(受信用)SFD_current=SFDA[1]
(受信用)SFD_next=SFDA[2]
であるとして、以下、説明する。
【0196】
≪P3−1:1回目の通信(通信装置10Aから通信装置10Bへのデータ送信)≫
次に、1回目の通信では、通信装置10Aは、通信装置10Bに対して、データ送信(SFDとして、可変長SFD(SFDA[1])を用いたデータ送信)を行う。1回目の通信では、
図10に示すように、通信装置10Bから通信装置10AへのACK信号の送信(返信)時にエラーが発生している。したがって、通信装置10Aは、正常にデータを受信しているので、SFD更新処理(ステップSB31)を実行する。一方、通信装置10Bは、正常にACK信号を受信していないので、SFD更新処理(ステップSA31)を実行しない(実行できない)。
【0197】
この段階で、通信装置10Aの可変長SFDの設定状況は、
(状態A31):
(送信用)可変長SFD=SFDA[1]
(受信用)SFD_before=SFDB[0]
(受信用)SFD_current=SFDB[1]
(受信用)SFD_next=SFDB[2]
であり、通信装置10Bの可変長SFDの設定状況は、
(状態B31):
(送信用)可変長SFD=SFDB[2]
(受信用)SFD_before=SFDA[1]
(受信用)SFD_current=SFDA[2]
(受信用)SFD_next=SFDA[3]
である。
【0198】
≪P3−2:2回目の通信(通信装置10Bから通信装置10Aへのデータ送信)≫
次に、2回目の通信では、通信装置10Bは、通信装置10Aに対して、データ送信(SFDとして、可変長SFD(SFDB[2])を用いたデータ送信)を行う。
【0199】
通信装置10Aは、通信装置10Bから可変長SFD(SFDB[2])により送信されたデータを、可変長SFD_nextにより受信することができる。つまり、通信装置10Aでは、可変長SFD_next=SFDB[2]に設定されているので、通信装置10Aの受信部22の第3SFD判定部228により、受信データのSFDが可変長SFD_next(=SFDB[2])であることを検出することできる。そして、通信装置10Aの受信部SFD検出更新部224は、受信データに含まれる可変長SFDが可変長SFD_next(=SFDB[2])であることを検出信号DETにより受信制御部229に通知する。
【0200】
通信装置10Aの受信制御部229は、受信データに含まれる可変長SFDが可変長SFD_next(=SFDB[2])であるので、通信装置10Aの受信制御部229は、受信部22の特殊SFD生成部222において更新処理を2回実行させるように、特殊SFD生成部222を制御する。つまり、通信装置10Aで受信したデータに含まれる可変長SFDが可変長SFD_next(=SFDB[2])であるので、送信側の通信装置10Bで実行されたSFD更新処理の回数が、受信側の通信装置10Aで実行されたSFD更新処理の回数よりも1回多いことを、通信装置10Aにおいて認識することができる。したがって、SFD更新処理の実行回数を送信側と受信側とで一致させるために、上記のように、受信側の通信装置10Aでは、SFD更新処理を2回実行する(ステップSA32)。
【0201】
また、通信装置10Aは、通信装置10Bに対して、可変長SFDをSFDA[1]として、ACK信号を送信する。さらに、通信装置10Aでは、受信制御部229から送信制御部215に、SFD更新処理を2回実行させるように指示し、通信装置10Aの送信部21においても、特殊SFD、可変長SFDの更新処理を2回実行させる。
【0202】
通信装置10Aから通信装置10BへのACK信号の送信時にエラーが発生しているので、通信装置10Bでは、通信装置10AからのACK信号を正常に受信することができない。したがって、通信装置10Aでは、SFD更新処理(ステップSB32)が実行されない。
【0203】
この段階で、通信装置10Aの可変長SFDの設定状況は、
(状態A32):
(送信用)可変長SFD=SFDA[3]
(受信用)SFD_before=SFDB[2]
(受信用)SFD_current=SFDB[3]
(受信用)SFD_next=SFDB[4]
であり、通信装置10Bの可変長SFDの設定状況は、
(状態B32):
(送信用)可変長SFD=SFDB[2]
(受信用)SFD_before=SFDA[1]
(受信用)SFD_current=SFDA[2]
(受信用)SFD_next=SFDA[3]
である。
【0204】
≪P3−3:3回目の通信(通信装置10Bから通信装置10Aへのデータ送信)≫
次に、3回目の通信では、通信装置10Bは、通信装置10Aに対して、データ送信(SFDとして、可変長SFD(SFDB[2])を用いたデータ送信)を行う。
【0205】
通信装置10Aは、通信装置10Bから可変長SFD(SFDB[2])により送信されたデータを、可変長SFD_beforeにより受信することができる。つまり、通信装置10Aでは、可変長SFD_before=SFDB[2]に設定されているので、通信装置10Aの受信部22の第1SFD判定部226により、受信データのSFDが可変長SFD_before(=SFDB[2])であることを検出することできる。そして、通信装置10Aの受信部SFD検出更新部224は、受信データに含まれる可変長SFDが可変長SFD_before(=SFDB[2])であることを検出信号DETにより受信制御部229に通知する。
【0206】
通信装置10Aの受信制御部229は、受信データに含まれる可変長SFDがSFD_before(=SFDB[2])であるので、通信装置10Aの受信制御部229は、受信部22の特殊SFD生成部222において更新処理を実行しないように、特殊SFD生成部222を制御する。つまり、通信装置10Aで受信したデータに含まれる可変長SFDがSFD_before(=SFDB[2])であるので、送信側の通信装置10Bで実行されたSFD更新処理の回数が、受信側の通信装置10Aで実行されたSFD更新処理の回数よりも1回少ないことを、通信装置10Aにおいて認識することができる。したがって、SFD更新処理の実行回数を送信側と受信側とで一致させるために、上記のように、受信側の通信装置10Aでは、SFD更新処理を実行しない(ステップSA33)。
【0207】
また、通信装置10Aは、通信装置10Bに対して、可変長SFDをSFDA[3]として、ACK信号を送信する。さらに、通信装置10Aでは、受信制御部229から送信制御部215に、SFD更新処理を実行させないように指示し、通信装置10Aの送信部21においても、特殊SFD、可変長SFDの更新処理を実行させない。
【0208】
通信装置10Bでは、通信装置10AからのACK信号を受信し、当該ACK信号に含まれる可変長SFDがSFDA[3]であり、通信装置10Bにおいて保持されているSFD_next(=SFDA[3])と一致するので、通信装置10Bでは、SFD_next(=SFDA[3])によりACK信号の受信処理を行うことで、正常にACK信号を受信することができる。
【0209】
通信装置10Bは、上記の通り、正常にACK信号を受信することができたので、SFD更新処理を行う(ステップSB33)。
【0210】
この段階で、通信装置10Aの可変長SFDの設定状況は、
(状態A33):
(送信用)可変長SFD=SFDA[3]
(受信用)SFD_before=SFDB[2]
(受信用)SFD_current=SFDB[3]
(受信用)SFD_next=SFDB[4]
であり、通信装置10Bの可変長SFDの設定状況は、
(状態B33):
(送信用)可変長SFD=SFDB[3]
(受信用)SFD_before=SFDA[2]
(受信用)SFD_current=SFDA[3]
(受信用)SFD_next=SFDA[4]
である。
【0211】
つまり、この段階で、通信装置10Aの可変長SFDの設定状況と通信装置10Bの可変長SFDの設定状況との間にずれはない。つまり、通信装置10Aで保持(設定)されている送信用の可変長SFDおよび受信用の可変長SFD_currentと、通信装置10Bで保持(設定)されている送信用の可変長SFDおよび受信用の可変長SFD_currentとは、全て、特殊SFDであるSFD[3]を用いて生成されたものである。
【0212】
以上のように処理することで、通信システム1000では、高度なハードウェアリソースや複雑なソフトウェア処理を必要としない秘匿性の高い通信(セキュア通信)を行うことができ、かつ、通信エラーが発生した場合であっても、迅速かつ適切にエラー検出を行い、セキュアなデータ通信を途絶させず、維持させることができる。
【0213】
つまり、通信システム1000では、通信装置10Aおよび通信10Bにおいて、例えば、
図7に示したような巡回型のシフトレジスタとXOR演算子を用いて、特殊SFDを生成し、さらに、自装置(または通信相手装置)に固有なパターンとを用いて、例えば、XOR演算することにより生成した可変長SFDを用いて、通信データ(フレームデータ)を生成し、当該通信データを用いて通信を行う。したがって、通信システム1000を構成する通信装置において、高度なハードウェアリソースや複雑なソフトウェア処理を必要とせず、秘匿性の高い通信を行うことができる。
【0214】
また、通信システム1000では、通信装置10Aおよび通信装置10Bが、それぞれ、3つの可変長SFD(SFD_before、SFD_current、および、SFD_next)、つまり、最新の可変長SFD(SFD_next)、1回前に生成された可変長SFD(SFD_current)、および、2回前に生成された可変長SFD(SFD_before)の3つの可変長SFDを保持し、受信データに含まれるSFDを特定し、特定したSFDにより受信処理を行うことができる。通信システム1000では、通常の通信(エラーのない通信)においては、SFD_currentに一致する可変長SFDを用いて通信するので、受信データのSFDが、通信装置において保持されている、SFD_currentに一致しない場合、通信エラーが発生したことを検出することができる。
【0215】
さらに、通信システム1000では、通信装置において、以下のように処理を行うことで、セキュアなデータ通信を途絶させず、維持させることができる。
(1)受信したデータのSFDが、SFD_beforeに一致する場合、送信側の通信装置で実行されたSFD更新処理の回数が、受信側の通信装置で実行されたSFD更新処理の回数よりも1回少ないことを、受信側の通信装置において認識することができる。したがって、SFD更新処理の実行回数を送信側と受信側とで一致させるために、受信側の通信装置において、SFD更新処理を実行しないようにする。
(2)受信したデータのSFDが、SFD_nextに一致する場合、送信側の通信装置で実行されたSFD更新処理の回数が、受信側の通信装置で実行されたSFD更新処理の回数よりも1回多いことを、受信側の通信装置において認識することができる。したがって、SFD更新処理の実行回数を送信側と受信側とで一致させるために、受信側の通信装置において、SFD更新処理を2回実行する。
【0216】
このように処理することで、送信側の通信装置で設定されている可変長SFDの状況と、受信側で設定されている可変長SFDの状況とを、迅速に一致させることができ、通常の通信(通信エラーがない状態の通信)において使用されるSFD_currentに一致する可変長SFDを用いて通信する状態に復帰させることができる。その結果、通信システム1000において、通信エラーが発生した場合であっても、セキュアなデータ通信を途絶させず、維持させることができる。
【0217】
また、通信システム1000の通信装置では、いわゆる物理層での処理により、通信エラー検出、および、SFD更新処理を実行することができるため、上位層、例えば、アプリケーション層等による処理が不要であり、迅速な処理(通信エラー検出、SFD更新処理等)が可能である。
【0218】
≪第1変形例≫
次に、本実施形態の第1変形例について、説明する。
【0219】
なお、本変形例の通信システムは、第1実施形態の通信システム1000と同様の構成を有している。また、本変形例の通信システムに用いられる通信装置も、第1実施形態の通信装置10Aおよび10Bと同様の構成を有している。
【0220】
本変形例の通信システムにおいて、第1実施形態の通信システム1000と相違する点は、通信装置において、SFD更新処理を行うタイミングが異なる。それ以外については、第1実施形態と同様であるため、詳細な説明は省略する。なお、上記実施形態と同様の部分については、同一符号を付している。
【0221】
図11は、本変形例の通信システムにおける通信装置10Aと通信10Bとの間における通信のシーケンス図である。
【0222】
本変形例において、演算シードの暗号化処理(ステップSA1)から通信装置10A、10BのSFD設定処理(初期化処理)(ステップSA2、SB2)までの処理は、第1実施形態と同様である。
【0223】
図11に示すように、本変形例では、通信装置10Aは、SFD設定処理(初期化処理)後、連続して、通信装置10Bに対して、データを送信する。
【0224】
そして、通信装置10Bが、通信装置10Aに対して、ACK信号を送信すると、通信装置10Bは、SFD更新処理(ステップSB3、SB4)を行う。
【0225】
また、通信装置10Aは、通信装置10BからACK信号を受信すると、SFD更新処理を行う(ステップSA3、SA4)。
【0226】
つまり、本変形例の通信システムでは、送信側の通信装置は、受信側の通信装置に対して、連続的にデータを送信し、受信側の通信装置からACK信号を(正常に)受信すると、SFD更新処理を行う。受信側の通信装置は、送信側の通信装置に対して、ACK信号を送信すると、SFD更新処理を行う。
【0227】
この点が、本変形例の通信システムと第1実施形態の通信システム1000との相違点である。なお、送信部21においてACK信号を行ったことを示す情報は、送信制御部215から受信制御部229に送信される。
【0228】
なお、本変形例の通信システムにおいても、(1)通信エラーが発生し、受信したデータのSFDが、SFD_beforeに一致する場合のSFD更新処理、および、(2)通信エラーが発生し、受信したデータのSFDが、SFD_nextに一致する場合のSFD更新処理は、第1実施形態と同様である。
【0229】
これにより、本変形例の通信システムでは、連続的にデータを送信する場合においても、高度なハードウェアリソースや複雑なソフトウェア処理を必要としない秘匿性の高い通信(セキュア通信)を行うことができ、かつ、通信エラーが発生した場合であっても、迅速かつ適切にエラー検出を行い、セキュアなデータ通信を途絶させず、維持させることができる。
【0230】
≪第2変形例≫
次に、本実施形態の第2変形例について、説明する。
【0231】
本変形例の通信システムは、第1実施形態の通信システム1000(または第1変形例の通信システム)の通信装置10において、受信部22を、
図12に示す受信部22Aに置換した構成を有する。
【0232】
図12に示すように、受信部22Aは、受信部22における標準SFD判定部225、第1SFD判定部226、第2SFD判定部227、および、第3SFD判定部228を1つのSFD判定部230に統合した構成を有している。それ以外について、受信部22Aは、受信部22は、同様である。
【0233】
受信部22AのSFD判定部230は、ハードウェアで実現する場合、例えば、第1実施形態の標準SFD判定部225、第1SFD判定部226、第2SFD判定部227、および、第3SFD判定部228を駆動するクロック周波数を4逓倍したクロック周波数により駆動される。つまり、SFD判定部230では、第1実施形態の標準SFD判定部225、第1SFD判定部226、第2SFD判定部227、および、第3SFD判定部228の4倍の速度で処理を実行することができるため、受信データのSFDを、SFD判定部230のみで、4種類のSFD(標準SFD、SFD_before、SFD_current、および、SFD_next)でいずれであるかを検出することが可能となる。
【0234】
なお、他の処理については、第1実施形態と同様である。
【0235】
したがって、本変形例の通信システムにおいても、高度なハードウェアリソースや複雑なソフトウェア処理を必要としない秘匿性の高い通信(セキュア通信)を行うことができ、かつ、通信エラーが発生した場合であっても、迅速かつ適切にエラー検出を行い、セキュアなデータ通信を途絶させず、維持させることができる。
【0236】
[他の実施形態]
上記実施形態では、ネットワークN1として、有線ネットワーク(例えば、PLCネットワーク)を例に、説明したが、これに限定されることはなく、本発明は、例えば、無線ネットワークにも適用することができる。また、通信システムを構成する通信装置において、1対1接続による通信(ピアツーピア(Peer to Peer)による通信)できるものであれば、本発明を適用することができる。また、ネットワークのトポロジーについても、上記実施形態に限定されるものではなく、様々なトポロジーのネットワークにより、本発明を適用することができる。
【0237】
また、上記実施形態では、
図7において、9ビットのシフトレジスタを用いて、特殊SFDを生成する例について説明したが、シフトレジスタのビット数は、他のビット数でもよく、上記実施形態に限定されないことは言うまでもない。また、特殊SFDと自固有パターン(あるいは相手固有パターン)とのXOR演算を行うときに、ビット拡張を行った後、XOR演算により、可変長SFDを生成するようにしてもよい。例えば、自固有パターン(あるいは相手固有パターン)が、16ビットデータである場合、当該ビットデータをコピーして(例えば、1〜16ビット目のデータを自固有パターンとし、さらに、17〜32ビット目のデータも自固有パターンとして32ビットデータとして)、32ビットデータとして、XOR演算処理を行うようにしてもよい。また、XOR演算の結果に対して、所定のビット位置のデータを取得して、可変長SFDを生成するようにしてもよい(例えば、XOR演算結果の最大ビット数がMビット(M:自然数)となる場合、k1ビット目(k1:整数、0≦k1<M)からk2ビット目(k2:整数、0≦k2<M)までのデータを用いて、可変長SFDを生成するようにしてもよい)。
【0238】
また、上記実施形態では、通信データのペイロード部分のデータについては、暗号化されていない場合を想定しているが、これに限定されることはなく、例えば、通信データのペイロード部分のデータについて、暗号化処理(例えば、AES暗号、DES暗号、RSA暗号等による暗号化処理)を行うようにしてもよい。
【0239】
また、上記実施形態では、演算シードのデータを暗号化通信により、送信して、受信側の通信装置に特殊SFDを生成するための初期値として設定する場合について、説明したが、これに限定されず、例えば、予め通信装置内に、演算シードのデータ(特殊SFDの初期値)が設定されていてもよい。
【0240】
また、上記実施形態の動画像符号化装置の一部または全部は、集積回路(例えば、LSI、システムLSI等)として実現されるものであってもよい。
【0241】
上記実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0242】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る動画像符号化装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
【0243】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【0244】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリを挙げることができる。
【0245】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【0246】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。