(57)【要約】  【課題】パケットの先頭位置を示す識別子の通信エラーによるパケットロストを防ぐ。  【解決手段】  パケットの先頭位置を示す識別子を複数使用し、識別子が所定の条件を満たす場合には、パケットの受け付けを開始することが可能な通信装置１０を提供する。通信装置１０は、リンクパケットに複数の制御キャラクタからなるプリヘッダを付与するためのプリヘッダ生成部３３２と、受信したプリヘッダを構成する各制御キャラクタの示す先頭位置を照合し、同じ位置を示す制御キャラクタを検出する位置照合部３３３と、リンクパケットの先頭位置について、同じ位置を示す制御キャラクタの数が所定の閾値を満たす場合には、リンクパケットの受信を開始することが可能なプリヘッダ解析部３３４と、を備える。【選択図】図１
2009177347.tif 000002
【特許請求の範囲】
【請求項１】
情報をパケットとして送受信する通信装置であって、
前記パケットの前に、特定の位置から前記パケットの先頭位置までの情報量を示す識別子を複数付与する識別子生成手段を有すること、
を特徴とする通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記識別子は、前記パケットの先頭位置を示すことを識別するための第一の識別子と、特定の位置から前記パケットの先頭位置までの情報量を示す第二の識別子と、を備えること、
を特徴とする通信装置。
【請求項３】
請求項１に記載の通信装置であって、
前記識別子は、Ｋコードによって定義される制御キャラクタであること、
を特徴とする通信装置。
【請求項４】
請求項２に記載の通信装置であって、
前記第一の識別子は、Ｋコードによって定義される制御キャラクタであり、前記第二の識別子は、Ｄコードによって定義されるデータキャラクタであること、
を特徴とする通信装置。
【請求項５】
特定の位置からパケットの先頭位置までの情報量を示す識別子を複数有する通信情報を受信する通信手段と、
前記パケットの先頭位置として、同じ先頭位置を示す前記識別子の数が、予め定められた数以上である場合に、前記先頭位置から前記パケットを受信する処理を行う識別子解析手段と、を備えること、
を特徴とする通信装置。
【請求項６】
請求項５に記載の通信装置であって、
前記識別子解析手段は、
前記パケットの先頭位置として、同じ先頭位置を示す前記識別子が、予め定められた数連続して受信された場合に、前記先頭位置から前記パケットを受信する処理を行うこと、
を特徴とする通信装置。
【請求項７】
請求項５又は６に記載の通信装置であって、
前記識別子は、Ｋコードによって定義される制御キャラクタであること、
を特徴とする通信装置。
【請求項８】
請求項５又は６に記載の通信装置であって、
前記識別子は、前記パケットの先頭位置を示すことを識別するための第一の識別子と、特定の位置から前記パケットの先頭位置までの情報量を示す第二の識別子と、を備え、
前記第一の識別子は、Ｋコードによって定義される制御キャラクタであり、前記第二の識別子は、Ｄコードによって定義されるデータキャラクタであること、
を特徴とする通信装置。
【請求項９】
情報をパケットとして送受信する通信手段を備える通信装置であって、
前記パケットの前に、特定の位置から前記パケットの先頭位置までの情報量を示す識別子を複数付与する識別子生成手段と、
前記パケットの先頭位置として、同じ先頭位置を示す前記識別子の数が、予め定められた数以上である場合に、前記先頭位置から前記パケットを受信する処理を行う識別子解析手段と、を備えること、
を特徴とする通信装置。
【請求項１０】
情報をパケットとして送受信する通信方法であって、
前記パケットの前に、特定の位置から前記パケットの先頭位置までの情報量を示す識別子を複数付与する過程を有すること、
を特徴とする通信方法。
【請求項１１】
情報をパケットとして送受信する通信方法であって、
特定の位置からパケットの先頭位置までの情報量を示す識別子を複数有する通信情報を受信する過程と、
前記パケットの先頭位置として、同じ先頭位置を示す前記識別子の数が、予め定められた数以上である場合に、前記先頭位置から前記パケットを受信する処理を行う過程と、を有すること、
を特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを利用した通信装置および通信方法に関する。
【背景技術】
【０００２】
従来、パケット単位でデータを送受信し、エラーの検出や、再送の制御を実行することが可能なパケット交換方式の通信技術が知られている。このような通信技術においては、パケットの開始、初期化、終了を示すような、特殊な制御符号が使用されている（例えば、特許文献１参照）。
【特許文献１】特開２００４−７２２８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に記載の技術では、サブパケットの先頭位置を示す制御符号は一つしかないため、この制御符号が読み取れない場合や、通信中に変化した場合には、パケットの先頭位置を取得することが出来ないために、パケットの受信が開始されず、すなわち、パケットロストが引き起こされる問題があった。また、先頭位置を示す制御符号が他のパケットの先頭位置を示すものに変化した場合には、間違った位置からパケットを受信してしまう可能性もある。
【０００４】
そこで、本発明は、一部の識別子にエラーが発生しても、所定のパケットの受信を実行することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
前記課題を解決するための本発明の通信装置は、複数の制御符号をパケットの先頭位置を示す識別子として使用することにより、一部の識別子にエラーが発生しても、他の識別子が所定の条件を満たす場合には、それらの識別子が示す位置に存在するパケットの受信を実行することが可能な技術を提供する。
例えば、情報をパケットとして送受信する通信手段を備える通信装置であって、前記パケットの前に、特定の位置から前記パケットの先頭位置までの情報量を示す識別子を複数付与する識別子生成手段と、前記パケットの先頭位置として、同じ先頭位置を示す前記識別子の数が、予め定められた数以上である場合に、前記先頭位置から前記パケットを受信する処理を行う識別子解析手段と、を備えることを特徴とする。
【発明の効果】
【０００６】
以上のように、本発明によれば、一部の識別子にエラーが発生しても、パケットロストを防ぐことが可能な技術を提供することができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。
【０００８】
図１は、本発明の第一の実施形態に係る通信装置１０の機能構成を示すブロック図である。図２、図３は、本発明の第一の実施形態に係る通信装置１０において生成される通信データ３０１の構成を示す概略図である。
【０００９】
通信装置１０は、パケット交換方式によりデータの送受信を好適に行うことが可能な装置である。ここでは通信装置１０は、高速シリアル転送方式の一つである、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）のアーキテクチャを、概念的に引用して説明する。もちろん、通信には、他の既存のプロトコルや、独自のものを用いることが可能である。
【００１０】
ＰＣＩ  Ｅｘｐｒｅｓｓとは、コンピュータ全般に通用する規格化バスであり、データの送受信を実行するトランザクション層、通信管理を行うデータリンク層、電気的な通信を行う物理層の、３層構造と定義されている。各層で生成されるパケットは、下位の層においてその前後に情報を付加され、最終的には伝送路に送信される。また、伝送路から受信されたパケットは、各層において前後の情報を削除されて、上位の層に送られる。
【００１１】
通信装置１０は、記憶部２００と、トランザクション層処理部３１０と、データリンク層処理部３２０と、物理層処理部３３０と、通信部４００と、を備える。
【００１２】
トランザクション層処理部３１０は、トランザクション層における処理を実行する。具体的に、トランザクション層処理部３１０は、上位のソフトウェア層（例えば、ＢＩＯＳ、ＯＳ、ドライバ、アプリケーション等）からの読み出し・書き込み要求を受け付けて、下位のデータリンク層へ出力するためのトランザクションレイヤパケット（ＴＬＰ：Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｃｋｅｔ）を生成する。例えば、図２に示すように、トランザクションレイヤパケット（以下、ＴＬＰと称する）３０１１は、フォーマット、種類、ＩＤ、アドレス等の情報を含むヘッダ３０１ｃと、データ３０１ｄと、ＴＬＰ３０１１にエラーがあるかをチェックするための任意のＥＣＲＣ（Ｅｎｄ-ｔｏ-ｅｎｄ  ＣＲＣ）３０１ｅからなる。さらに、トランザクション層処理部３１０は、データリンク層からのＴＬＰ３０１１を受け付けると、これを元のソフトウェア層からの要求と照合し、正しい発信元へと出力する。
【００１３】
データリンク層処理部３２０は、データリンク層における処理を実行する。具体的に、データリンク層処理部３２０は、図２に示すように、上位のトランザクション層処理部３１０から出力されるＴＬＰ３０１１を受け付けて、通し番号であるシーケンス番号３０１ｂと、ＬＣＲＣ（Ｌｉｎｋ  ＣＲＣ）３０１ｆと、を付与して、リンクパケット３０１０を生成し、物理層処理部３３０へと出力する。また、物理層処理部３３０より、リンクパケット３０１０を受け付けると、ＬＣＲＣの値から、シーケンス番号３０１ｂと、ＴＬＰ３０１１と、にエラーがあるかどうかを確認した後、シーケンス番号３０１ｂと、ＬＣＲＣ３０１ｆと、を削除し、ＴＬＰ３０１１をトランザクション層処理部３１０に出力する。さらに、リンク管理のためのデータリンク層パケット（ＤＬＬＰ：Ｄａｔａ  Ｌｉｎｋ  Ｌａｙｅｒ  Ｐａｃｋｅｔ、図示しない）の生成、送信、および受信処理を実行する。
【００１４】
物理層処理部３３０は、物理層における処理を実行する。物理層処理部３３０は、プリヘッダ処理部３３１と、パケット情報合成部３３５と、８ｂ／１０ｂ変換部３３６と、パラレル−シリアル変換部３３７と、を備える。
【００１５】
プリヘッダ処理部３３１は、プリヘッダ生成部３３２と、位置照合部３３３と、プリヘッダ解析部３３４と、を備える。
【００１６】
プリヘッダ生成部３３２は、データリンク層処理部３２０より出力されるリンクパケット３０１０を受け付けると、図３に示すように、リンクパケット３０１０の前に、識別子として複数の制御キャラクタを付与する。制御キャラクタとは、主にプロトコル管理に関係する制御信号に対応する特殊な制御符号である。８ｂ／１０ｂの高速シリアル転送方式においては、Ｄコードと呼ばれるデータを示すデータキャラクタの他に、Ｋコードと呼ばれる１バイト制御キャラクタが定義されている。
【００１７】
ＰＣＩ  Ｅｘｐｒｅｓｓでは、リンクパケット３０１０の開始を示す制御キャラクタには、Ｋ２８．２（ＳＤＰ）が単一で使用され、リザーブの制御キャラクタとしては、Ｋ２８．４、Ｋ２８．６、Ｋ２８．７が用意されている。本実施形態によれば、各制御キャラクタは、記憶部２００のキャラクタ情報テーブル２０１（図４参照）に記憶され、リザーブの３つの制御キャラクタは、リンクパケット３０１０の先頭位置を、各々から先頭位置までの情報量（ここでは、バイト数）で示すものとして定義される。ここでは、このような制御キャラクタ群を、プリヘッダと称する。
【００１８】
具体的に、プリヘッダ生成部３３２は、図４に示すようなキャラクタ情報テーブル２０１を参照して、制御キャラクタの示すリンクパケット３０１０の先頭位置までの情報量と、実際のリンクパケット３０１０の先頭位置までの情報量と、が合致するように、複数の制御キャラクタを配置する処理を実行する。
【００１９】
例えば、図３に示すように、Ｋ２８．７は、１バイト先からリンクパケット３０１０が開始することを示す制御キャラクタである。従って、Ｋ２８．７は、リンクパケット３０１０の１バイト前である直前の位置に配置される。さらに、２バイト先からリンクパケット３０１０が開始することを示すＫ２８．６、続いて、３バイト先からリンクパケット３０１０が開始することを示すＫ２８．４が配置される。
【００２０】
また、例えば、終了識別子生成部（図示しない）を設けて、プリヘッダ生成部３３２が、前に制御キャラクタを付与したリンクパケット３０１０の後に、さらに終了識別子として、制御キャラクタを付与することが可能である。例えば、終了識別子生成部は、リンクパケット３０１０の後に、リンクパケット３０１０の終了を示す制御キャラクタＫ２９．７（ＥＮＤ）３０１ｇを付与する処理を実行する。
【００２１】
位置照合部３３３は、パケット情報合成部３３５より出力される通信データ３０１の受け付けを開始すると、そのプリヘッダ３０１ａを構成する各制御キャラクタの示すリンクパケット３０１０の先頭位置を照合し、同じ位置を示す制御キャラクタの数を検出して、プリヘッダ解析部３３４へと出力する。例えば、プリヘッダ３０１ａの先頭位置から、各制御キャラクタまでのバイト数と、各制御キャラクタの示すリンクパケット３０１０の先頭位置までのバイト数と、の合計が、同じ値を示すものを検出することで可能である。
【００２２】
プリヘッダ解析部３３４は、位置照合部３３３から、リンクパケット３０１０の先頭位置について、同じ位置を示す制御キャラクタの数を受け付けると、プリヘッダ３０１ａを構成する制御キャラクタ群が、プリヘッダが正常に受信されたことを判断する基準となる所定の条件を満たすか否かを判断する。
【００２３】
第一の実施形態に係る通信装置１０においては、所定の条件として、リンクパケット３０１０の先頭位置について、同じ位置を示す制御キャラクタの数が、閾値として定められている。プリヘッダ３０１ａが、リンクパケット３０１０の先頭位置について、同じ位置を示す制御キャラクタを閾値以上の数含む場合には、プリヘッダ解析部３３４は、プリヘッダは正しく受信されたと判断し、リンクパケット３０１０を受信して、通信データ３０１から制御キャラクタを削除した後、データリンク層処理部３２０へリンクパケット３０１０を出力する。また、プリヘッダ３０１ａがリンクパケット３０１０の先頭位置について、同じ位置を示す制御キャラクタを閾値以上の数含まない場合には、プリヘッダ解析部３３４は、プリヘッダ受信エラーと判断して、通信データ３０１の受信をキャンセルする。これらの処理の詳細については、後述する。
【００２４】
パケット情報合成部３３５は、プリヘッダ生成部３３２より出力される、制御キャラクタの付与された通信データ３０１を受け付けると、例えば、データのパターンをランダム化するスクランブル処理を実行し、通信データ３０１を８ｂ／１０ｂ変換部３３６へと出力する。スクランブル処理は、通信データ３０１中のＤコードにのみ実行され、Ｋコードはスクランブルされないため、受信側で容易にＫコードを検出することが可能である。また、パケット情報合成部３３５は、８ｂ／１０ｂ変換部３３６より受け付けた通信データ３０１について、スクランブルを解除して、位置照合部３３３へと出力する。
【００２５】
なお、パケット情報合成部３３５は、通信に使用するレーンが複数ある場合には、レーンにデータを分配するバイト・ストライピング処理や、バイト・アンストライピング処理を実行しても良い。なお、プリヘッダ３０１ａの前に、受信側と、送信側の装置が同期に使用するための信号を含むヘッダを、さらに付与するような処理を実行するような構成としても良い。
【００２６】
８ｂ／１０ｂ変換部３３６は、パケット情報合成部３３５から出力される８ビットデータと、ＤコードかＫコードかを識別する１ビットの符号データと、を受け付けて、記憶部２００に記憶される８ｂ／１０ｂ変換テーブル２０３を参照して、１０ビットデータに変換し、パラレル−シリアル変換部３３７へと出力する。また、８ｂ／１０ｂ変換部３３６は、パラレル−シリアル変換部３３７から出力される１０ビットデータの通信データ３０１を受け付けて、８ビットデータと、ＤコードかＫコードかを識別する１ビットの符号データと、にデコードして、パケット情報合成部３３５へと出力する処理を実行する。
【００２７】
パラレル−シリアル変換部３３７は、８ｂ／１０ｂ変換部３３６から出力される１０ビットのパラレルデータからなる通信データ３０１を受け付けて、シリアルデータに変換し、通信部４００を介して、受信側装置へと送信する。また、パラレル−シリアル変換部３３７は、送信側装置より送信された差動信号から、クロック再生処理を実行して、クロックを得る処理を実行する。そして、シリアルデータからなる通信データ３０１を、パラレルデータに変換して、８ｂ／１０ｂ変換部３３６へ出力する。
【００２８】
記憶部２００には、キャラクタ情報テーブル２０１と、８ｂ／１０ｂ変換テーブル２０３と、が記憶されている。
【００２９】
図４は、本発明の第一の実施形態に係る通信装置１０の記憶部２００に記憶されるキャラクタ情報テーブル２０１の概略図である。
【００３０】
キャラクタ情報テーブル２０１は、キャラクタ格納フィールド２０１ａと、制御内容格納フィールド２０１ｂと、を有する。キャラクタ格納フィールド２０１ａには、Ｋコードによって定義される制御キャラクタが、それぞれ格納されている。制御内容格納フィールド２０１ｂには、キャラクタ格納フィールド２０１ａに格納される制御キャラクタに対応する制御信号の内容が格納されている。プリヘッダ中で使用される制御キャラクタに対応する制御信号は、リンクパケット３０１０の先頭位置が、何バイト先に存在するかを示す情報量を定めたものである。制御キャラクタには任意のＫコードであれば、どのような制御キャラクタを用いても良く、また、各制御キャラクタが示す情報量（先頭位置を示す値）についても、自由にその値を定めることが可能である。
【００３１】
８ｂ／１０ｂ変換部３３６によって参照される８ｂ／１０ｂ変換テーブル２０３には、データを８ビットと、１０ビットと、の相互に変換するための、所定の規格によって予め定められた変換規則が格納されている。
【００３２】
なお、これらのテーブルは、具体的には、ロジックとして回路に組み込まれていても良い。
【００３３】
通信部４００は、通信装置１０と、他のデバイスとの間を、情報の送受信可能に接続するインターフェースである。
【００３４】
以上のような通信装置１０は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）や、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の集積ロジックＩＣによりハード的に実行されるものであっても良いし、あるいは、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等の計算機によりソフトウェア的に実行されるものであっても良い。
【００３５】
次に、本実施形態における通信装置１０の位置照合部３３３と、プリヘッダ解析部３３４と、の処理について、図５と、図６とを用いて説明する。図５は、本発明の第一の実施形態に係る通信装置１０の位置照合部３３３と、プリヘッダ解析部３３４と、が実行する処理を示すフローチャート、図６は、第一の実施形態に係る通信装置１０が受信した通信データ３０２の構成を示す概略図である。
【００３６】
位置照合部３３３は、まず、パケット情報合成部３３５から出力される通信データ３０２の受け付けを開始する（Ｓ１１）。次に、位置照合部３３３は、プリヘッダ３０２ａを構成する各制御キャラクタの示すリンクパケット３０２０の先頭位置を照合し、同じ位置を示す制御キャラクタの数を検出する（Ｓ１２）。
【００３７】
ステップ１２では、位置照合部３３３は、キャラクタ情報テーブル２０１を参照して、プリヘッダ３０２ａの構成要素である制御キャラクタの示すリンクパケット３０２０の先頭位置に関する情報を抽出する。そして、各制御キャラクタの示すリンクパケット３０２０の先頭位置を照合し、それぞれの位置が合致するか否かを判断する。そして、位置照合部３３３は、リンクパケット３０２０の先頭位置について、同じ位置を示す制御キャラクタの数を、プリヘッダ解析部３３４へと出力する。
【００３８】
具体的に、位置照合部３３３は、プリヘッダ３０２ａを構成する制御キャラクタ３２ａ〜３２ｃの示すリンクパケット３０２０の先頭位置の情報を抽出する。ここで、図６において、制御キャラクタ３２ａ（Ｋ２８．７）は、通信エラーによってＫ２８．４が変化したものであり、１バイト先にリンクパケット３０２０の先頭位置があることを示している。
【００３９】
従って、位置照合部３３３は、リンクパケット３０２０の先頭位置が２バイト先であることを示す制御キャラクタ３２ｂと、３バイト先であることを示す制御キャラクタ３２ｃと、の２つ（２バイト）について、同じ位置を示す制御キャラクタであると判断する。位置照合部３３３は、これらの制御キャラクタの数を、プリヘッダ解析部３３４へと出力する。
【００４０】
プリヘッダ解析部３３４は、位置照合部３３３から、リンクパケット３０２０の先頭位置について、同じ位置を示す制御キャラクタの数を受け付けると、この数が所定の閾値以上か否かを判断する（Ｓ１３）。
【００４１】
プリヘッダ解析部３３４は、リンクパケット３０２０の先頭位置について、同じ位置を示す制御キャラクタの数が、閾値以上（ここでは、閾値が２以下の値）であれば（ＹＥＳ）、プリヘッダが正常に受信されたと判断してステップ１４へ進み、リンクパケット３０２０の受け付けを開始する。その後、通信データ３０２に付与された制御キャラクタを削除して、データリンク層処理部３２０へリンクパケット３０２０を出力し（Ｓ１５）、処理を終了する。また、プリヘッダ解析部３３４は、リンクパケット３０２０の先頭位置について、同じ位置を示す制御キャラクタの数が、閾値未満（ここでは、閾値が３以上の値）であれば（ＮＯ）、プリヘッダ受信エラーであると判断して、ステップ１６へ進み、通信データ３０２の受信をキャンセルして、処理を終了する。
【００４２】
なお、ステップ１３における処理において、閾値には、プリヘッダを構成する制御キャラクタ数の範囲であれば、任意の数を設定することが可能であり、通信状況等によって可変となるような構成としても良い。
【００４３】
また、プリヘッダが正常に受信されたことを判断する基準である所定の条件についても、上記のものに限定されない。
【００４４】
例えば、ステップ１３において、リンクパケットの先頭位置について、同じ位置を示す制御キャラクタが、閾値以上、連続して存在する場合にのみ、ステップ１４へと進むような構成としても良い。
【００４５】
このような場合には、例えば、閾値が２である場合、図７に示す通信データ３０３のプリヘッダ３０３ａにおいて、制御キャラクタ３３ｂは無効となった制御キャラクタ２８．６であり、リンクパケット３０２０の先頭位置について、同じ位置を示す制御キャラクタは２つ以上連続して存在しない。従って、プリヘッダ解析部３３４は、プリヘッダ受信エラーと判断し、ステップ１６へと進む。
【００４６】
しかしながら、図７に示すような通信データ３０２のプリヘッダ３０２ａにおいては、リンクパケット３０２０の先頭位置について、同じ位置を示す制御キャラクタ３２ｂ、３２ｃが、２つ以上連続して存在するために、プリヘッダ解析部３３４は、プリヘッダが正常に受信されたと判断し、ステップ１４へと進む。
【００４７】
以上のような構成により、第一の実施形態に係る通信装置１０は、リンクパケットに複数の制御キャラクタから構成されるプリヘッダを付与することによって、一部の制御キャラクタにエラーが起こっても、全体として所定の条件を満たしている場合には、プリヘッダが正常に受信されたと判断して、リンクパケットの受信を開始することが出来る。従って、通し番号抜けエラーを回避し、より確実なデータ通信が可能となる。また、他のデータがプリヘッダに変化した場合でも、複数の制御キャラクタから先頭位置を取得することによって、誤受信を防止することが可能である。
【００４８】
なお、プリヘッダを構成する制御キャラクタの数は、上記に限定されない。例えば、図１２に示す通信データ３０６のように、独自の通信プロトコルを用いてより多くの制御キャラクタを使用可能な構成としても良い。プリヘッダ３０６ａは、それぞれパケット３０６０の先頭位置までの情報量を示す８つの制御キャラクタ３６ａ〜３６ｈを備えている。このような構成によれば、プリヘッダ３０６ａが正常に受信されたことを判断する基準となる所定の条件についても、例えば、同じ位置を示す制御キャラクタが、３つ以上連続して存在し、さらに６つ以上が同じ先頭位置を示す場合等、より複雑な条件を設定することも可能である。
【００４９】
次に、本発明の第二の実施形態について説明する。第二の実施形態である通信装置２０は、第一の実施形態と比較して異なっている点に関連する事項について、以下、説明する。
【００５０】
まず、第二の実施形態に係る通信装置２０の記憶部５００が記憶する、キャラクタ情報テーブル５０１について説明する。図８は、本発明の第二の実施形態に係る通信装置２０の記憶部２００に記憶されるキャラクタ情報テーブル５０１の概略図である。
【００５１】
キャラクタ情報テーブル５０１は、キャラクタ格納フィールド５０１ａと、制御内容格納フィールド５０１ｂと、を有する。キャラクタ格納フィールド５０１ａには、Ｋコードによって定義される制御キャラクタと、Ｄコードによって定義されるデータキャラクタと、が組み合わされたキャラクタ対（２バイト）が格納されている。制御内容格納フィールド５０１ｂには、キャラクタ格納フィールド５０１ａに格納される１対のキャラクタに対応する制御信号の内容が格納されている。プリヘッダ中で使用されるキャラクタ対に対応する制御信号は、リンクパケットの先頭位置が、データキャラクタを基準として、何バイト先に存在するかを示す情報量を定めたものである。
【００５２】
なお、キャラクタには、Ｋコードと、Ｄコードと、で定義される任意のキャラクタを用いることができ、また、各制御キャラクタが示す情報量についても、自由にその値を定めることが可能である。なお、ここでは制御キャラクタには、全てＫ２８．４を使用するものとする。
【００５３】
もちろん、このようなキャラクタ情報テーブル５０１についても、ロジックとして回路に組み込まれているような構成としても良い。
【００５４】
次に、第二の実施形態に係る通信装置２０のプリヘッダ処理部３４１について、図９を参照して説明する。図９は、本発明の第二の実施形態に係る通信装置２０において生成される通信データ３０４の構成を示す概略図である。
【００５５】
プリヘッダ生成部３４２は、データリンク層処理部３２０より出力されるリンクパケット３０４０を受け付けると、リンクパケット３０４０の前に、キャラクタ情報テーブル５０１のキャラクタ格納フィールド５０１ａに格納される、制御キャラクタと、データキャラクタと、が組み合わされたキャラクタ対を、プリヘッダとして複数付与する。その際、プリヘッダ生成部３４２は、制御内容格納フィールド５０１ｂに格納される情報から、キャラクタ対の示すリンクパケット３０４０の先頭位置までの情報量と、実際のリンクパケット３０４０の先頭位置までの情報量と、が合致するように、キャラクタ対を配置する処理を実行する。
【００５６】
例えば、キャラクタ対３４ｄが、データキャラクタの１バイト先からリンクパケット３０４０が開始されることを示すキャラクタ対である場合は、プリヘッダ生成部３４２は、リンクパケット３０４０の１バイト前にあたる直前の位置にこれを配置する。その後、データキャラクタの３バイト先からリンクパケット３０４０が開始されることを示すキャラクタ対３４ｃ、データキャラクタの５バイト先からリンクパケット３０４０が開始されることを示すキャラクタ対３４ｂ、データキャラクタの７バイト先からリンクパケット３０４０が開始されることを示すキャラクタ対３４ａが配置される。なお、プリヘッダを構成するキャラクタ対の数は上記に限定されない。
【００５７】
位置照合部３４３は、パケット情報合成部３４５から出力された通信データ３０４の受け付けを開始すると、プリヘッダ３０４ａの各キャラクタ対が示すリンクパケット３０４０の先頭位置を照合し、同じ位置を示すキャラクタ対の数を検出して、プリヘッダ解析部３４４へと出力する。
【００５８】
プリヘッダ解析部３４４は、位置照合部３４３より、リンクパケット３０４０の先頭位置について、同じ位置を示すキャラクタ対の数の情報を受け付けると、プリヘッダ３０４ａを構成する各キャラクタ対が、プリヘッダ３０４ａが正常に受信されたことを判断する基準となる所定の条件を満たすか否かを判断する。
【００５９】
第二の実施形態に係る通信装置２０においては、所定の条件として、リンクパケット３０４０の先頭位置について、同じ位置を示すキャラクタ対の数が閾値として定められている。プリヘッダ３０４ａが、リンクパケット３０４０の先頭位置について、同じ位置を示すキャラクタ対を閾値以上の数含む場合には、プリヘッダ解析部３４４は、プリヘッダ３０４ａが正しく受信されたと判断し、リンクパケット３０４０の受信を開始して、通信データ３０４からキャラクタ対と、他の制御キャラクタと、を削除した後、データリンク層処理部３２０へリンクパケット３０４０を出力する。また、プリヘッダ３０４ａがリンクパケット３０４０の先頭位置について、同じ位置を示すキャラクタ対を閾値以上の数含まない場合には、プリヘッダ解析部３４４は、プリヘッダ受信エラーと判断して、通信データ３０４の受信をキャンセルする。
【００６０】
以上のように構成される本実施形態における通信装置２０の位置照合部３４３と、プリヘッダ解析部３４４と、が実行する処理について、図１０と、図１１とを用いて説明する。図１０は、本発明の第二の実施形態に係る通信装置２０の位置照合部３４３と、プリヘッダ解析部３４４と、が実行する処理を示すフローチャート、図１１は、第二の実施形態に係る通信装置２０が受信した通信データ３０５の構成を示す概略図である。
【００６１】
位置照合部３４３は、まず、パケット情報合成部３４５から出力される通信データ３０５の受け付けを開始する（Ｓ２１）。次に、位置照合部３４３は、プリヘッダ３０５ａを構成する各キャラクタ対の示すリンクパケット３０５０の先頭位置を照合し、同じ位置を示すキャラクタ対の数を検出する（Ｓ２２）。
【００６２】
具体的に、位置照合部３４３は、プリヘッダ３０５ａを構成するキャラクタ対３５ａ〜３５ｄの示すリンクパケット３０５０の先頭位置の情報を、キャラクタ情報テーブル５０１から抽出する。
【００６３】
ここで、図１１において、３５ｃはデータキャラクタが通信エラー等によって変化し、無効となったキャラクタ対であるため、位置照合部３４３は、このキャラクタ対の示す先頭位置については、検出しない。また、キャラクタ対３５ｄは、リンクパケット３０５０の先頭位置が３バイト先であることを示すキャラクタ対である。
【００６４】
従って、データキャラクタの７バイト先からリンクパケット３０５０が開始することを示すキャラクタ対３５ａと、データキャラクタの５バイト先からリンクパケット３０５０が開始することを示すキャラクタ対３５ｂと、の２つ（４バイト）が、リンクパケット３０５０の先頭位置について、同じ位置を示すキャラクタ対であるとして判断される。位置照合部３４３は、リンクパケット３０５０の先頭位置について、同じ位置を示すキャラクタ対の数を、プリヘッダ解析部３４４へと出力する。
【００６５】
プリヘッダ解析部３４４は、位置照合部３４３から、キャラクタ対の数を受け付けると、リンクパケット３０５０の先頭位置について、同じ位置を示すキャラクタ対の数が、閾値以上か否かを判断する（Ｓ２３）。プリヘッダ解析部３４４は、リンクパケット３０５０の先頭位置について、同じ位置を示すキャラクタ対の数が、閾値以上（ここでは、閾値が２以下の値）の場合には（ＹＥＳ）、プリヘッダが正常に受信されたと判断してステップ２４へ進み、リンクパケット３０５０の受け付けを開始する。その後、プリヘッダ解析部３４４は、通信データ３０５のキャラクタ対と、他の制御キャラクタと、を削除してデータリンク層処理部３２０へリンクパケット３０５０を出力し（Ｓ２５）、処理を終了する。
【００６６】
また、プリヘッダ解析部３４４は、リンクパケット３０５０の先頭位置について、同じ位置を示すキャラクタ対の数が、閾値未満（ここでは、閾値が３以上の値）の場合には（ＮＯ）、プリヘッダ受信エラーであると判断して、ステップ２６へ進み、通信データ３０５の受信をキャンセルし、処理を終了する。
【００６７】
なお、キャラクタ対には、データキャラクタを使用する代わりに、Ｋコードにより定義される制御キャラクタ同士を組み合わせるような構成としても良く、３つ以上のキャラクタ群を１つの識別子として使用するような構成としても良い。
【００６８】
以上のような構成により、本実施形態の通信装置２０は、制御キャラクタと、データキャラクタと、からなるキャラクタ対を単位としてプリヘッダを構成することにより、各種の通信制御用途に使用されるＫコードを多用せずとも、データキャラクタによって、リンクパケットの先頭位置を識別することが可能である。
【図面の簡単な説明】
【００６９】
【図１】本発明の第一の実施形態に係る通信装置１０の機能構成を示すブロック図。
【図２】本発明の第一の実施形態に係る通信装置１０において生成される通信データ３０１の構成を示す概略図。
【図３】本発明の第一の実施形態に係る通信装置１０において生成される通信データ３０１の構成を示す概略図。
【図４】本発明の第一の実施形態に係る通信装置１０の記憶部２００に記憶されるキャラクタ情報テーブル２０１の概略図。
【図５】本発明の第一の実施形態に係る通信装置１０の位置照合部３３３と、プリヘッダ解析部３３４と、が実行する処理を示すフローチャート。
【図６】本発明の第一の実施形態に係る通信装置１０が受信した通信データ３０２の構成を示す概略図。
【図７】本発明の第一の実施形態に係る通信装置１０が受信した通信データ３０３の構成を示す概略図。
【図８】本発明の第二の実施形態に係る通信装置２０の記憶部５００に記憶されるキャラクタ情報テーブル５０１の概略図。
【図９】本発明の第二の実施形態に係る通信装置２０において生成される通信データ３０４の構成を示す概略図。
【図１０】本発明の第二の実施形態に係る通信装置２０の位置照合部３４３と、プリヘッダ解析部３４４と、が実行する処理を示すフローチャート。
【図１１】本発明の第二の実施形態に係る通信装置２０が受信した通信データ３０５の構成を示す概略図。
【図１２】独自の通信プロトコルを利用した通信データ３０６の構成を示す概略図。
【符号の説明】
【００７０】
１０・２０：通信装置、２００、５００：記憶部、２０１、５０１：キャラクタ情報テーブル、２０３：８ｂ／１０ｂ変換テーブル、３１０：トランザクション層処理部、３２０：データリンク層処理部、３３０：物理層処理部、３３２、３４２：プリヘッダ生成部、３３３、３４３：位置照合部、３３４、３４４：プリヘッダ解析部、３３５：パケット情報合成部、３３６：８ｂ／１０ｂ変換部、３３７：パラレル−シリアル変換部、４００：通信部。
【図１】
2009177347.tif 000003
【図２】
2009177347.tif 000004
【図３】
2009177347.tif 000005
【図４】
2009177347.tif 000006
【図５】
2009177347.tif 000007
【図６】
2009177347.tif 000008
【図７】
2009177347.tif 000009
【図８】
2009177347.tif 000010
【図９】
2009177347.tif 000011
【図１０】
2009177347.tif 000012
【図１１】
2009177347.tif 000013
【図１２】
2009177347.tif 000014