以下、図面を用いて実施形態を説明する。
図1は、データ送受信システム、データ送信装置、データ送受信システムの制御方法の一実施形態を示す。図1に示すデータ送受信システムSYS0は、データを送信するデータ送信装置1と、データ送信装置1からのデータを受信するデータ受信装置4とを有する。データ送信装置1とデータ受信装置4とは、通信線CL0、CL1を介して互いに接続される。データ送信装置1は、複数のフィールドF(F0a、F0b等)を含むパケットPKT(PKTa、PKTb、PKTc)を通信線CL0、CL1のいずれかを介してデータ受信装置4に送信する。図1に示す例では、パケットPKTaは、フィールドF0a、F0b、F0c、F0dを含み、パケットPKTbは、フィールドF0c’、F1b、F1c、F1dを含み、パケットPKTcは、フィールドF1d’、F0f、F0g、F0hを含む。データ送信装置1は、生成部2および送信部3を有し、データ受信装置4は、検出部5を有する。
生成部2は、通信線CL0、CL1の一方にパケットPKTを送信中に通信線CL0、CL1の他方にパケットPKTを送信する場合、通信線CL0、CL1の一方に送信中のフィールドFに基づいて通信線CL0、CL1の他方に送信するフィールドFを生成する。送信部3は、生成部2が生成したフィールドFを通信線CL0、CL1の他方に送信する。
図1では、生成部2は、パケットPKTaを通信線CL0に送信中に、通信線CL1にパケットPKTbを送信する場合、パケットPKTaのフィールドF0cに基づいて生成したフィールドF0c’をパケットPKTbの先頭として通信線CL1に送信する。また、生成部2は、パケットPKTbを通信線CL1に送信中に、通信線CL0にパケットPKTcを送信する場合、パケットPKTbのフィールドF1dに基づいて生成したフィールドF1d’をパケットPKTcの先頭として通信線CL0に送信する。
検出部5は、通信線CL0、CL1を介してそれぞれ受信するフィールドFに基づいて、通信線CL0、CL1の他方を介して伝送されるパケットPKTの先頭を検出する。図1では、検出部5は、通信線CL0からパケットPKTaを受信中に、パケットPKTaのフィールドF0cに対応するフィールドF0c’を通信線CL1から受信した場合、パケットPKTbの先頭を検出する。また、検出部5は、通信線CL1からパケットPKTbを受信中に、パケットPKTbのフィールドF1dに対応するフィールドF1d’を通信線CL0から受信した場合、パケットPKTcの先頭を検出する。検出部5が検出するパケットPKTb、PKTcの先頭は、パケットPKTb、PKTcにおけるデータの所定位置の一例である。
特に限定されないが、フィールドF0c’は、フィールドF0cの論理と反対の論理を示し、フィールドF1d’は、フィールドF1dの論理と同じ論理を示してもよい。この場合、検出部5は、互いに異なる論理のフィールドFの検出に基づいて、通信線CL1を介して伝送されるパケットPKTの先頭を検出し、互いに同じ論理のフィールドFの検出に基づいて、通信線CL0を介して伝送されるパケットPKTの先頭を検出する。
以上、図1に示す実施形態では、検出部4は、通信線CL1に伝送されるフィールドFが、通信線CL0に伝送されるフィールドFに対応するとき、通信線CL1に伝送されるパケットPKTの先頭を認識することができる。同様に、検出部4は、通信線CL0に伝送されるフィールドFが、通信線CL1に伝送されるフィールドFに対応するとき、通信線CL0に伝送されるパケットPKTの先頭を認識することができる。これにより、通信線CL0、CL1の両方を用いて、パケットPKTをデータ送信装置1からデータ受信装置4に伝送することができ、パケットPKTの伝送効率を従来に比べて向上することができる。
図2は、データ送受信システム、データ送信装置、データ送受信システムの制御方法の別の実施形態を示す。図2に示すデータ送受信システムSYSは、データを送信するデータ送信装置100と、データ送信装置100からのデータを受信するデータ受信装置200とを有する。なお、データ送信装置100は、データ受信装置200と同様にデータを受信する機能を含んでもよく、データ受信装置200は、データ送信装置100と同様にデータを送信する機能を含んでもよい。この場合、データ送信装置100とデータ送信装置100との間で、データが双方向に伝送される。
データ送信装置100は、情報処理部10、送信制御部12、送信バッファ部14、生成部16および増幅器TA0、TA1を有する。データ受信装置200は、情報処理部20、受信制御部22、増幅器RA0、RA1、検出部24および受信バッファ部26を有する。
情報処理部10は、データ受信装置200に送信するデータを含むパケットPKTを送信バッファ部14に転送するとともに、送信制御部12にパケットPKTの送信要求を出力する。情報処理部10は、プログラムを実行することで動作するCPU(Central Processing Unit)等のプロセッサである。
送信制御部12は、ステートマシンTSTM、カウンタTC(TC0、TC1)およびタイミング制御部TTCNTを有する。送信制御部12は、通信線CL0、CL1へのパケットPKTの送信状況に基づいて、次のパケットPKTを通信線CL0、CL1のいずれに送信するかを判定する判定部の一例である。
ステートマシンTSTMは、情報処理部10からの指示に基づいて、送信制御部12によるパケットPKTの送信状態を管理し、送信制御部12の送信状態に基づいて、タイミング制御部TTCNTの動作を制御する。送信制御部12が制御する送信状態の遷移の例は、図7に示す。また、ステートマシンTSTMは、通信線CL0にパケットPKTを送信する場合、送信するデータ数をカウンタTC0に設定し、通信線CL0にデータを送信する毎にカウンタTC0をカウントダウンする。ステートマシンTSTMは、通信線CL1にパケットPKTを送信する場合、送信するデータ数をカウンタTC1に設定し、通信線CL1にデータを送信する毎にカウンタTC1をカウントダウンする。
ステートマシンTSTMは、カウントダウンによりカウンタTC0が初期値になった場合、通信線CL0によるデータの送信の完了を判定し、カウントダウンによりカウンタTC1が初期値になった場合、通信線CL1によるデータの送信の完了を判定する。カウンタTC0は、第1送信カウンタの一例であり、カウンタTC1は、第2送信カウンタの一例である。なお、ステートマシンTSTMは、カウンタTC0、TC1をカウントアップすることで、データの送信数をカウントしてもよい。また、カウンタTC0、TC1の制御は、タイミング制御部TTCNTが実行してもよい。送信制御部12は、通信線CL0、CL1のそれぞれに対応してカウンタTC0、TC1を有するため、複数のパケットPKTが通信線CL0、CL1に並列に送信される場合にも、送信するデータの数を正しくカウントすることができる。
タイミング制御部TTCNTは、ステートマシンTSTMによる制御に基づいて、読み出し信号RD0、RD1および選択信号SEL0、SEL1を生成する。送信バッファ部14は、情報処理部10から転送されるパケットPKTを保持し、保持したパケットPKTにSOP(Start Of Packet)およびCRC(Cyclic Redundancy Check)を付加する。SOPおよびCRC等を含むパケットPKTの例は、図3に示す。送信バッファ部14は、SOPおよびCRCを付加したパケットPKTを、読み出し信号RD0に基づいてパケット線TPKT0に出力し、SOPおよびCRCを付加したパケットPKTを、読み出し信号RD1に基づいてパケット線TPKT1に出力する。以下、SOPは、先頭フィールドとも称される。送信バッファ部14は、送信制御部12が出力する読み出し信号RD0、RD1に基づいて、パケットPKTをパケット線TPKT0、TPKT1のいずれかに出力する分配部の一例である。送信バッファ部14の例は、図4に示す。なお、パケットPKTにSOPおよびCRCを付加する処理は、生成部16が実行してもよい。
生成部16は、選択信号SEL0、SEL1に基づいて、パケット線TPKT0、TPKT1を介して受けるパケットPKTを出力線S0OUT、S1OUTに出力する。生成部16の例は、図5に示す。増幅器TA0は、生成部16から受けるパケットPKTを通信線CL0に出力し、増幅器TA1は、生成部16から受けるパケットPKTを通信線CL1に出力する。特に限定されないが、各通信線CL0、CL1は1ビットの情報を直列に伝送する。増幅器TA0、TA1は、生成部16が生成したパケットPKTのフィールドを通信線CL0、CL1に送信する送信部の一例である。
一方、データ受信装置200の情報処理部20は、データ送信装置100から受信したデータを含むパケットPKTを受信バッファ部26から受信し、受信したパケットPKTを処理する。情報処理部20は、プログラムを実行することで動作するCPU等のプロセッサである。
増幅器RA0は、通信線CL0を介して伝送されるパケットPKTを受信し、増幅器RA1は、通信線CL1を介して伝送されるパケットPKTを受信する。検出部24は、増幅器RA0を介して通信線CL0から受けるパケットPKTの先頭フィールドSOPを検出した場合、検出信号DET0を出力する。また、検出部24は、増幅器RA1を介して通信線CL1から受けるパケットPKTの先頭フィールドSOPを検出した場合、検出信号DET1を出力する。
検出部24は、増幅器RA0から受信した先頭フィールドSOPに続くパケットPKTをパケット線RPKT0に出力し、増幅器RA1から受信した先頭フィールドSOPに続くパケットPKTをパケット線RPKT1に出力する。さらに、検出部24は、受信したパケットPKTに含まれるデータ長フィールドLENを、パケット線RPKT0、RPKT1を介して受信制御部22に出力する。なお、検出部24は、CRCに基づいて、パケットPKTのエラーを検出してもよい。また、パケットPKTに含まれるデータ長フィールドLENは、受信制御部22が、パケット線RPKT0、RPKT1を介して受けたパケットPKTに基づいて抽出してもよい。検出部24の例は、図6に示す。
受信制御部22は、ステートマシンRSTM、カウンタRC(RC0、RC1)およびタイミング制御部RTCNTを有する。ステートマシンRSTMは、検出部24からの検出信号DET0、DET1およびパケット線RPKT0、RPKT1を介して受けるパケットPKTに基づいて、タイミング制御部RTCNTの動作を制御する。受信制御部22が制御する受信状態の遷移の例は、図7に示す。
ステートマシンRSTMは、通信線CL0を介してデータを受信する場合、データ長フィールドLENに含まれるデータ数をカウンタRC0に設定し、通信線CL0からデータを受信する毎にカウンタRC0をカウントダウンする。ステートマシンRSTMは、通信線CL1を介してデータを受信する場合、データ長フィールドLENに含まれるデータ数をカウンタRC1に設定し、通信線CL1を介してデータを受信する毎にカウンタRC1をカウントダウンする。受信制御部22は、通信線CL0、CL1のそれぞれに対応してカウンタRC0、RC1を有するため、複数のパケットPKTが通信線CL0、CL1を介して並列に受信する場合にも、受信するデータの数を正しくカウントすることができる。
ステートマシンRSTMは、カウントダウンによりカウンタRC0が初期値になった場合、通信線CL0によるデータの受信の完了を判定し、カウントダウンによりカウンタRC1が初期値になった場合、通信線CL1によるデータの受信の完了を判定する。なお、ステートマシンRSTMは、カウンタRC0、RC1をカウントアップすることで、データの受信数をカウントしてもよい。カウンタRC0は、第1受信カウンタの一例であり、カウンタRC1は、第2受信カウンタの一例である。
タイミング制御部RTCNTは、ステートマシンRSTMによる制御に基づいて、書き込み信号WR0、WR1を生成する。受信バッファ部26は、書き込み信号WR0に基づいて、パケット線RPKT0から受けるパケットPKTを受信し、書き込み信号WR1に基づいて、パケット線RPKT1から受けるパケットPKTを受信し、受信したパケットPKTを保持する。受信バッファ部26は、リングバッファまたはFIFO(First-In First-Out)バッファを含む。受信バッファ部26は、保持したパケットPKTを、情報処理部20からの転送要求に基づいて、情報処理部20に出力する。なお、受信バッファ部26は、保持しているパケットPKTを情報処理部20に転送する転送要求を情報処理部20に出力してもよい。情報処理部20へのパケットPKTの転送要求は、受信制御部22が出力してもよい。
図3は、図2に示すデータ送受信システムSYSで伝送されるパケットPKTのフォーマットの例を示す。図3の(1)に示すパケットPKTは、データ送信装置100の情報処理部10から出力されるパケットPKTおよびデータ受信装置200の情報処理部20に入力されるパケットPKTを示す。図3の(2)に示すパケットPKTは、通信線CL0、CL1に伝送されるパケットPKTを示す。通信線CL0、CL1に伝送されるパケットPKTは、ヘッダ部、データ部およびエンド部を有する。
ヘッダ部は、通信線CL0、CL1に伝送されるパケットPKTの先頭を示す先頭フィールドSOPと、パケットPKTのシーケンスIDを示すフィールドSID(Sequence IDentification)とを有する。シーケンスIDは、パケットPKTの伝送順に割り振られる番号である。また、ヘッダ部は、パケットPKTの種類を示すフィールドOPC(OPeration Code)と、パケットPKT中のデータフィールドDTの数(データ長)を示すデータ長フィールドLEN(Length)を有する。
データ部は、伝送するデータを含むデータフィールドDT(DT1、DT2、...、DTn;nは正の整数)を有する。データフィールドDTの数は、伝送するデータ量に応じて可変である。エンド部は、パケットPKT全体の誤り検出用のフィールドCRCを有する。特に限定されないが、ヘッダ部、データ部およびエンド部の各要素は、4ビットであり、データ長フィールドLENに設定するデータ長は、最大で14(2進数で”0001”から”1110”)である。フィールドSID、OPC、LEN、DT、CRCは、先頭フィールドSOPに続く後続フィールドである。フィールドCRCは、パケットPKTのエラーの検出に使用するエラー検出フィールドの一例である。以下、フィールドSOP、SID、OPC、LEN、DT、CRCおよびフィールドSOP、SID、OPC、LEN、DT、CRCに格納される値は、単にSOP、SID、OPC、LEN、DT、CRCとも称される。
SOP、SIDおよびCRCは、送信バッファ部14で付加される。なお、情報処理部10は、SOP、SIDおよびCRCを付加したパケットPKTを、送信制御部12に転送してもよい。この場合、送信バッファ部14は、SOP、SIDおよびCRCを付加しない。
図4は、図2に示す送信バッファ部14の例を示す。送信バッファ部14は、アドレス生成器ADG1、送信キューTQUE、CRC生成部CRCGおよびデマルチプレクサDEMAXを有する。
送信キューTQUEは、リングバッファまたはFIFOバッファであり、アドレスADにより識別される複数の領域を有する。送信キューTQUEは、情報処理部10から出力されるパケットPKTを、アドレスADの昇順にしたがって順次に保持する。送信キューTQUEに保持されたパケットPKTは、データ受信装置200への送信が成功した後に削除される。図4に示す送信キューTQUEは、パケットPKTを保持する8つの領域を有するが、領域の数は、8つに限定されない。
アドレス生成器ADG1は、読み出し信号RD0、RD1に基づいて、アドレスADを順次に生成し、生成したアドレスADに基づいて、送信キューTQUEからパケットPKT(SID、OPC、LEN、DT1、DT2、...、DTn)を読み出す。アドレスADの値は、フィールドSIDに格納されるシーケンスIDとして使用される。なお、アドレス生成器ADG1は、送信キューTQUEが保持するパケットPKTのうち最も古いパケットPKTを保持するアドレスを生成し、送信キューTQUEに保持されたパケットPKTが、送信の完了前に上書きされることを抑止する。
CRC生成部CRCGは、SOPと、送信キューTQUEから読み出されたパケットPKT(SID、OPC、LEN、DT1、DT2、...、DTn)とに基づいて、誤り検出用のデータを生成し、生成したデータをフィールドCRCに格納する。デマルチプレクサDEMAXは、読み出し信号RD0を受けた場合にパケットPKTをパケット線TPKT0に出力し、読み出し信号RD1を受けた場合にパケットPKTをパケット線TPKT1に出力する。すなわち、パケットPKTは、読み出し信号RD0、RD1に応じてパケットPKT0、PKT1のいずれかに出力される。
図5は、図2に示す生成部16の例を示す。生成部16は、選択信号SEL0に基づいて動作するセレクタS0と、選択信号SEL1に基づいて動作するセレクタS1とを有する。セレクタS0、S1の入力端子に付した丸印は、入力される信号の論理が反転されることを示す。特に限定されないが、各選択信号SEL0、SEL1は、2ビットであり、パケット線TPKT0、TPKT1は、1ビットである。生成部16内の右側の表は、選択信号SEL0の値と選択される信号との関係、および選択信号SEL1の値と、選択される信号との関係を示している。
セレクタS0の入力に示す数字は、選択信号SEL0の値を示し、セレクタS0は、選択信号SEL0の値で示される入力で受ける信号を選択する。そして、セレクタS0は、選択信号SEL0の値に応じて、パケット線TPKT0に伝送される信号、パケット線TPKT1に伝送される信号、パケット線TPKT1に伝送される信号の論理を反転した論理、または論理”0”のいずれかを選択する。パケット線TPKT1に伝送される信号の論理を反転した信号は、表中の”/TPKT1”で示される。セレクタS0は、選択した論理を出力線S0OUTに出力する。
セレクタS1の入力に示す数字は、選択信号SEL1の値を示し、セレクタS1は、選択信号SEL1の値で示される入力で受ける信号を選択する。そして、セレクタS1は、選択信号SEL1の値に応じて、パケット線TPKT1に伝送される信号、パケット線TPKT0に伝送される信号、パケット線TPKT0に伝送される信号の論理を反転した信号、または論理”0”のいずれかを選択する。パケット線TPKT0に伝送される信号の論理を反転した信号は、表中の”/TPKT0”で示される。セレクタS1は、選択した論理を出力線S1OUTに出力する。
図6は、図2に示す検出部24の例を示す。検出部24は、通信線CL0を介して受信したパケットRPKT0の論理と、通信線CL1を介して受信したパケットRPKT1の論理とをフィールド毎に比較する比較器CMP0を有する。また、検出部24は、通信線CL0を介して受信したパケットRPKT0の論理を反転した論理と、通信線CL1を介して受信したパケットRPKT1の論理とをフィールド毎に比較する比較器CMP1を有する。比較器CMP1の入力端子に付した丸印は、論理が反転されることを示す。パケットPKTの各フィールドが4ビットの場合、比較器CMP0、CMP1は、直列に受けるパケットRPKT0、RPKT1の各フィールドの論理を順次に保持し、保持したフィールドの論理を比較する。
比較器CMP0は、通信線CL0、CL1を介して受信したパケットPKTにおいて、フィールドの論理が全て互いに同じ場合、検出信号DET0を出力する。比較器CMP1は、通信線CL0、CL1を介して受信したパケットPKTにおいて、フィールドの論理が全て互いに異なる場合、検出信号DET1を出力する。なお、比較器CMP0、CMP1によるフィールドの比較は、受信制御部22が、図7に示すアイドル状態IDLEおよび伝送状態DSND、CSNDの場合に実行され、伝送状態BUSYでは実行されない。
図7は、図2に示す送信制御部12の状態遷移と、図2に示す受信制御部22の状態遷移との例を示す。送信制御部12の状態遷移は、ステートマシンTSTMにより制御され、受信制御部22の状態遷移は、ステートマシンRSTMにより制御される。
送信制御部12および受信制御部22が取り得る状態の種類は、互いに同様である。送信制御部12および受信制御部22が遷移する状態は、アイドル状態IDLE(初期状態)、伝送状態DSND、CSND、BUSYのいずれかである。送信制御部12と受信制御部22とが、互いに共通の状態IDLE、DSND、CSND、BUSYに遷移し、それぞれ動作することで、互いに異なる状態に基づいて動作する場合に比べて、制御を共通化することができ、制御を簡易にすることができる。
アイドル状態IDLEは、通信線CL0、CL1にパケットを伝送していない状態である。伝送状態DSNDは、通信線CL1の未使用時に通信線CL0にパケットを伝送する状態である。伝送状態CSNDは、通信線CL0の未使用時に通信線CL1にパケットを伝送する状態である。伝送状態BUSYは、通信線CL0、CL1の両方を使用して2つのパケットを伝送する状態である。1つの状態から他の状態への遷移は、アイドル状態IDLEおよび伝送状態DSND、CSND、BUSY間を結ぶ矢印に示すイベントに基づいて実行される。送信制御部12は、遷移した状態に基づいて、次のパケットPKTを通信線CL0、CL1のいずれに送信するかを判定する。受信制御部22は、遷移した状態に基づいて、パケットPKTを受信する通信線CL0、CL1を判定する。
イベントDSOP1は、通信線CL0、CL1のいずれにもパケットPKTが伝送されていない状態で、通信線CL0にパケットPKTが伝送される場合に発生する。イベントDSOP2は、通信線CL1にパケットPKTが伝送されている状態で、通信線CL0にパケットPKTが伝送される場合に発生する。
イベントCSOP1は、通信線CL0、CL1のいずれにもパケットPKTが伝送されていない状態で、通信線CL1にパケットPKTが伝送される場合に発生する。イベントCSOP2は、通信線CL0にパケットPKTが伝送されている状態で、通信線CL1にパケットPKTが伝送される場合に発生する。なお、符号”/DSOP2”は、通信線CL0によりパケットPKTが伝送されていないことを示し、符号”/CSOP2”は、通信線CL1によりパケットPKTが伝送されていないことを示す。
イベントDEOPは、通信線CL0によるパケットPKTの伝送が終了した場合に発生する。イベントCEOPは、通信線CL1によるパケットPKTの伝送が終了した場合に発生する。なお、符号”/DEOP”は、通信線CL0によるパケットPKTの伝送が終了していないことを示し、符号”/CEOP”は、通信線CL1によるパケットPKTの伝送が終了していないことを示す。
送信制御部12の状態は、送信制御部12が読み出し信号RD0、RD1を送信バッファ部14に出力し、送信バッファ部14にパケットPKTのフィールドSOPを出力したタイミングに基づいて遷移する。また、送信制御部12の状態は、送信制御部12が読み出し信号RD0、RD1の出力を停止して、送信バッファ部14にパケットPKTのフィールドCRCを出力したタイミングに基づいて遷移する。受信制御部22の状態は、検出部24がフィールドSOPおよびフィールドCRCを受信したタイミングに基づいて遷移する。
送信制御部12および受信制御部22は、アイドル状態IDLEにおいて、イベントDSOP1が発生した場合、状態を伝送状態DSNDに遷移し、イベントCSOP1が発生した場合、状態を伝送状態CSNDに遷移する。送信制御部12および受信制御部22は、伝送状態DSNDにおいて、イベントCSOP2が発生した場合、状態を伝送状態BUSYに遷移し、イベントDEOP、CSOP2が発生した場合、状態を伝送状態CSNDに遷移する。また、送信制御部12および受信制御部22は、伝送状態DSNDにおいて、イベントDEOP、/CSOP2が発生した場合、状態をアイドル状態IDLEに遷移する。
送信制御部12および受信制御部22は、伝送状態CSNDにおいて、イベントDSOP2が発生した場合、状態を伝送状態BUSYに遷移し、イベントCEOP、DSOP2が発生した場合、状態を伝送状態DSNDに遷移する。また、送信制御部12および受信制御部22は、伝送状態CSNDにおいて、イベントCEOP、/DSOP2が発生した場合、状態をアイドル状態IDLEに遷移する。
送信制御部12および受信制御部22は、伝送状態BUSYにおいて、イベントCEOP、/DEOPが発生した場合、状態を伝送状態DSNDに遷移し、イベントDEOP、/CEOPが発生した場合、状態を伝送状態CSNDに遷移する。また、送信制御部12および受信制御部22は、伝送状態BUSYにおいて、イベントCEOP、DEOPが発生した場合、状態をアイドル状態IDLEに遷移する。
図8は、図2に示す送信制御部12の動作の例を示す。図8に示す動作は、送信制御部12が情報処理部10からパケットPKTの送信の指示を受けた場合に開始される。
まず、ステップS100において、送信制御部12は、状態STが伝送状態BUSYでない場合、すなわち、状態STがアイドル状態IDLE、伝送状態DSNDまたは伝送状態CSNDのいずれかの場合、動作をステップS102に移行する。送信制御部12は、状態STが伝送状態BUSYの間、新たなパケットPKTの送信する余裕がないため、ステップS100を繰り返す。
ステップS102において、送信制御部12は、現在の状態STを判別する。そして、送信制御部12は、現在の状態STが、通信線CL0にパケットPKTを送信中の伝送状態DSNDの場合、通信線CL1にパケットPKTを送信するために、動作をステップS120に移行する。送信制御部12は、状態STが、通信線CL0、CL1のいずれでもパケットPKTを送信していないアイドル状態IDLEの場合、パケットPKTを送信する通信線CL0、CL1を決めるため、動作をステップS104に移行する。送信制御部12は、状態STが、通信線CL1にパケットPKTを送信中の伝送状態CSNDの場合、通信線CL0にパケットPKTを送信するために、動作をステップS150に移行する。
ステップS104において、送信制御部12は、パケットPKTを通信線CL0に送信する場合、動作をステップS140に移行し、パケットPKTを通信線CL1に送信する場合、動作をステップS130に移行する。パケットPKTを送信する通信線CL0、CL1は、送信制御部12がランダムに決めてもよく、情報処理部10が決めてもよい。また、アイドル状態IDLE中にパケットPKTの送信要求を情報処理部10から受けた場合、送信制御部12は、パケットPKTを通信線CL0に常に送信してもよく、この場合、ステップS130からS136の動作は省略される。
ステップS140において、送信制御部12は、読み出し信号RD0を出力し、送信バッファ部14からパケット線TPKT0にパケットPKTを読み出し、状態STを伝送状態DSNDに遷移する。次に、ステップS142において、送信制御部12は、選択信号SEL0(=0)、SEL1(=1)を出力し、カウンタTC0のカウンタ値を、カウンタ値としてあり得ない”15”(2進数の”1111”)に初期化する。生成部16は、選択信号SEL0、SEL1に基づいて、パケット線TPKT0で受けるSOPを出力線S0OUT、S1OUTに出力する。
次に、ステップS144において、送信制御部12は、送信バッファ部14からのパケット線TPKT0に読み出されたヘッダ部の残りのフィールドSID、OPC、LENを生成部16に転送する。送信制御部12は、データ長フィールドLENに格納された値(データ数)を、カウンタTC0に格納する。選択信号SEL0(=0)、SEL1(=1)の出力は維持される。生成部16は、選択信号SEL0、SEL1に基づいて、パケット線TPKT0で受けるSID、OPC、LENを出力線S0OUT、S1OUTに出力する。
次に、ステップS146において、送信制御部12は、送信バッファ部14からのパケット線TPKT0に読み出されたDTを、カウンタTC0のカウンタ値をデクリメントしながら、生成部16に順次に転送する。選択信号SEL0(=0)、SEL1(=1)の出力は維持される。生成部16は、選択信号SEL0、SEL1に基づいて、パケット線TPKT0で受けるDTを出力線S0OUT、S1OUTに順次に出力する。ステップS146の後、動作は、図9のステップS170に移行される。
送信制御部12は、アイドル状態IDLEにおいて、パケットPKTを通信線CL1に送信する場合、ステップS130、S132、S134、S136を実行する。ステップS130は、パケットPKTがパケット線TPKT1に読み出されることを除き、ステップS140と同様である。
ステップS132において、送信制御部12は、選択信号SEL0(=2)、SEL1(=0)を出力し、カウンタTC1のカウンタ値を、”15”に初期化する。生成部16は、選択信号SEL0、SEL1に基づいて、パケット線TPKT1で受けるSOPを出力線S1OUTに出力するとともに、SOPの論理を反転して、出力線S0OUTに出力する。
ステップS134、S136は、選択信号SEL0、SEL1の論理が異なることを除き、ステップS144、S146とそれぞれ同様である。ステップS134、S136では、生成部16は、パケット線TPKT1で受けるSID、OPC、LEN、DTを出力線S1OUTに出力するとともに、SID、OPC、LEN、DTの論理を反転して、出力線S0OUTに出力する。ステップS136の後、動作は、図9のステップS160に移行される。
一方、送信制御部12は、伝送状態DSNDにおいて、パケットPKTを通信線CL1で送信する場合、ステップS120、S122、S124、S126を実行する。ステップS120は、状態STが第3伝送状態BUSYに遷移することを除き、ステップS130と同様である。
ステップS122において、送信制御部12は、選択信号SEL0(=0)、SEL1(=2)を出力し、カウンタTC1のカウンタ値を、”15”に初期化する。伝送状態DSNDでは、パケットPKTが通信線CL0に送信されているため、送信制御部12は、選択信号SEL0の値を”0”に維持する。
生成部16は、選択信号SEL0、SEL1に基づいて、パケット線TPKT0で受けるパケットPKTを出力線S0OUTに出力するとともに、パケットPKTの論理を反転したフィールドをSOPとして出力線S1OUTに出力する。すなわち、生成部16は、通信線CL0にパケットPKTを送信中に、通信線CL1にパケットPKTを送信する場合、パケット線TPKT1からのSOPを選択せずに、通信線CL0に送信するパケットPKTの論理を反転したフィールドを選択する。
ステップS124、S126では、送信制御部12は、選択信号SEL0(=0)を維持し、選択信号SEL1(=0)を出力する。そして、生成部16は、パケット線TPKT0で受けるパケットPKTを出力線S0OUTに出力するとともに、パケット線TPKT1で受けるSID、OPC、LEN、DTを出力線S1OUTに出力する。ステップS124、S126の動作は、選択信号SEL1の論理が異なることを除き、ステップS134、S136とそれぞれ同様である。ステップS126の後、動作は、図9のステップS160に移行される。
送信制御部12は、伝送状態CSNDにおいて、パケットPKTを通信線CL0に送信する場合、ステップS150、S152、S154、S156を実行する。ステップS150は、遷移する状態STが異なることを除き、ステップS140と同様である。
ステップS152において、送信制御部12は、選択信号SEL0(=1)、SEL1(=0)を出力し、カウンタTC0のカウンタ値を、”15”に初期化する。伝送状態CSNDでは、パケットPKTが通信線CL1に送信されているため、送信制御部12は、選択信号SEL1の値を”0”に維持する。
生成部16は、選択信号SEL0、SEL1に基づいて、パケット線TPKT1で受けるパケットPKTを出力線S0OUT、S1OUTに出力する。すなわち、生成部16は、通信線CL1にパケットPKTを送信中に、通信線CL0にパケットPKTを送信する場合、パケット線TPKT0からのSOPを選択せずに、通信線CL1に送信するパケットPKTを選択する。
ステップS154、S156では、送信制御部12は、選択信号SEL1(=0)を維持し、選択信号SEL0(=0)を出力する。そして、生成部16は、パケット線TPKT0で受けるSID、OPC、LEN、DTを出力線S0OUTに出力するとともに、パケット線TPKT1で受けるパケットPKTを出力線S1OUTに出力する。ステップS154、S156の動作は、選択信号SEL1の論理が異なることを除き、ステップS144、S146とそれぞれ同様である。ステップS156の後、動作は、図9のステップS170に移行される。
なお、伝送状態BUSYでは、複数のパケットPKTが通信線CL0、CL1にそれぞれ送信されており、ステップS124、S126の実行中に、通信線CL0によるパケットPKTの送信が完了する場合がある。この場合、送信制御部12の状態STは、伝送状態BUSYから伝送状態CSNDに遷移する。同様に、ステップS154、S156の実行中に、通信線CL1によるパケットPKTの送信が完了した場合、送信制御部12の状態STは、伝送状態BUSYから伝送状態DSNDに遷移する。図8に示すフローに表れない状態STの遷移は、図13、図14、図16に示される。
図9は、図8に示す動作の続きを示す。ステップS160において、送信制御部12は、パケットPKTの最後のフィールドとしてCRCを通信線CL1に送信させる。次に、ステップS162において、送信制御部12は、現在の状態STが伝送状態BUSYである場合、通信線CL0によるパケットPKTの送信を継続するため、動作をステップS164に移行し、状態STを伝送状態DSNDに遷移する。次に、ステップS166において、送信制御部12は、選択信号SEL1(=1)を出力し、通信線CL0に送信されているパケットPKTを通信線CL1にも送信させる。
ステップS162において、送信制御部12は、現在の状態STが伝送状態BUSYでない場合、パケットPKTが通信線CL0、CL1に送信されていないため、動作をステップS180に移行し、状態STをアイドル状態IDLEに遷移する。次に、ステップS182において、送信制御部12は、選択信号SEL0(=3)、SEL1(=3)を出力し、通信線CL0、CL1をパケットPKTの非通信状態に設定する。
一方、ステップS170において、送信制御部12は、パケットPKTの最後のフィールドとしてCRCを通信線CL0に送信させる。次に、ステップS172において、送信制御部12は、現在の状態STが伝送状態BUSYである場合、通信線CL1によるパケットPKTの送信を継続するため、動作をステップS174に移行し、状態STを伝送状態CSNDに遷移する。次に、ステップS176において、送信制御部12は、選択信号SEL0(=2)を出力し、通信線CL1に送信されているパケットPKTの論理を反転して通信線CL0に送信させる。
ステップS172において、送信制御部12は、現在の状態STが伝送状態BUSYでない場合、パケットPKTが通信線CL0、CL1に送信されていないため、上述したステップS180、S182を実行する。
図10は、図2に示す受信制御部22の動作の例を示す。図10に示す動作は、検出部24がパケットPKTのSOPを通信線CL0、CL1のいずれかから受信した場合に開始される。検出部24は、SOPの受信に基づいて、検出信号DET0、DET1のいずれかを受信制御部22に出力する。
まず、ステップS200において、受信制御部22は、状態STが伝送状態BUSYでない場合、すなわち、状態STがアイドル状態IDLE、伝送状態DSNDまたは伝送状態CSNDのいずれかの場合、動作をステップS202に移行する。受信制御部22は、状態STが伝送状態BUSYの間、ステップS200を繰り返す。なお、図8で説明したように、状態STが伝送状態BUSYの間、送信制御部12は新たなパケットPKTを送信しないため、受信制御部22は、伝送状態BUSY中に通信線CL0、CL1を介してパケットPKTを受信しない。このため、ステップS200は、省略されてもよい。
ステップS202において、受信制御部22は、検出信号DET0を受けた場合、動作をステップS206に移行し、検出信号DET1を受けた場合、動作をステップS204に移行する。ステップS204において、受信制御部22は、現在の状態STを判別し、状態STが伝送状態DSNDの場合、動作をステップS220に移行し、状態STがアイドル状態IDLEの場合、動作をステップS230に移行する。一方、ステップS206において、受信制御部22は、現在の状態STを判別し、状態STが伝送状態CSNDの場合、動作をステップS250に移行し、状態STがアイドル状態IDLEの場合、動作をステップS240に移行する。
ステップS220において、受信制御部22は、通信線CL0でパケットPKTを受信中に、通信線CL1からSOPを受信したため、状態STを伝送状態DSNDから伝送状態BUSYに遷移する。また、受信制御部22は、カウンタRC1のカウンタ値を、”15”に初期化し、通信線CL1から受けるパケットPKTを受信バッファ部26に格納するために書き込み信号WR1を出力する。受信バッファ部26は、書き込み信号WR1の出力に基づいて、SOPを保持する。ステップS220の後、動作はステップS232に移行される。
ステップS230において、受信制御部22は、パケットPKTを通信線CL1から受信するため、状態STをアイドル状態IDLEから伝送状態CSNDに遷移する。また、受信制御部22は、カウンタRC1のカウンタ値を、”15”に初期化し、通信線CL1から受けるパケットPKTを受信バッファ部26に格納するために書き込み信号WR1を出力する。ステップS230の後、動作はステップS232に移行される。
ステップS232において、受信制御部22は、通信線CL1を介して伝送されるSID、OPC、LENを受信バッファ部26に保持させる。また、受信制御部22は、LENに格納された値(データ数)を、カウンタRC1に格納する。次に、ステップS234において、受信制御部22は、通信線CL1を介して伝送されるDTを、カウンタRC1のカウンタ値をデクリメントしながら、受信バッファ部26に保持させる。ステップS234の後、動作は、図11のステップS260に移行される。
ステップS250において、受信制御部22は、通信線CL1でパケットPKTの受信中に、通信線CL0からSOPを受信したため、状態STを伝送状態CSNDから伝送状態BUSYに遷移する。ステップS250は、書き込み信号WR1の代わりに書き込み信号WR0が出力されることを除き、ステップS220と同様である。ステップS250の後、動作はステップS242に移行される。
ステップS240は、状態STをアイドル状態IDLEから伝送状態DSNDに遷移すること、および書き込み信号WR0が出力されることを除き、ステップS230と同様である。ステップS240の後、動作はステップS242に移行される。
ステップS242において、受信制御部22は、通信線CL0を介して伝送されるSID、OPC、LENを受信バッファ部26に保持させる。また、受信制御部22は、LENに格納された値(データ数)を、カウンタRC0に格納する。次に、ステップS244において、受信制御部22は、通信線CL0を介して伝送されるDTを、カウンタRC0のカウンタ値をデクリメントしながら、受信バッファ部26に保持させる。ステップS244の後、動作は、図11のステップS270に移行される。
図11は、図10に示す動作の続きを示す。ステップS260において、受信制御部22は、カウンタRC1のカウンタ値が”0”なったことに基づいて、検出部24にCRCを受信させ、受信したCRCを受信バッファ部26に保持させる。
次に、ステップS262において、受信制御部22は、検出信号DET0が”1”の場合、通信線CL0からのパケットPKTの受信を継続するため、動作をステップS264に移行し、状態STを伝送状態DSNDに遷移する。また、受信制御部22は、検出信号DET0が”0”の場合、通信線CL0からパケットPKTを受信していないため、動作をステップS280に移行し、状態STをアイドル状態IDLEに遷移する。
一方、ステップS260において、受信制御部22は、カウンタRC0のカウンタ値が”0”なったことに基づいて、検出部24にCRCを受信させ、受信したCRCを受信バッファ部26に保持させる。次に、ステップS272において、受信制御部22は、検出信号DET1が”1”の場合、通信線CL1からのパケットPKTの受信を継続するため、動作をステップS274に移行し、状態STを伝送状態CSNDに遷移する。また、受信制御部22は、検出信号DET1が”0”の場合、通信線CL1からパケットPKTを受信していないため、動作をステップS280に移行する。
図12は、図2に示すデータ送受信システムSYSの動作の例を示す。図12は、通信線CL0、CL1のいずれかを用いてパケットPKTを伝送する場合を示す。図12は、通信線CL0、CL1の伝搬遅延時間がないものとして、送信制御部12と受信制御部22の動作タイミングをそろえているが、実際の動作では、受信制御部22の波形は、伝搬遅延時間に応じて遅れる。
まず、通信線CL0にパケットPKTaを伝送する場合、送信制御部12は、読み出し信号RD0を出力し、選択信号SEL0、SEL1を”0”、”1”にそれぞれ設定する(図12(a)、(b))。これにより、生成部16は、パケットPKTaを通信線CL0に送信するとともに、パケットPKTaと同じ論理の情報を通信線CL1に送信する(図12(c)、(d))。なお、パケットPKTaは、4つのデータフィールドDT0−DT3を含むが、データフィールドDTの数は、4つに限定されない。
送信制御部12は、アイドル状態IDLEにおいて、パケットPKTの伝送の開始を示す先頭フィールドSOP(”1100”)の送信時にイベントDSOP1を発生し、状態STを伝送状態DSNDに遷移する(図12(e)、(f))。なお、送信制御部12は、SOPを送信する前に、状態STを伝送状態DSNDに遷移してもよい。また、先頭フィールドSOPは”1100(2進数)”に設定されるが、データ送信装置100とデータ受信装置200とが互いに認識していれば、SOPは、他の値に設定されてもよい。
送信制御部12は、SOPに続くSID、OPC、LEN、DT0−DT2を順次に通信線CL0に送信し、DTの数を示す”4”に設定されたカウンタTC0のカウンタ値が”0”になったことに基づいて、CRCを送信する(図12(g))。送信制御部12は、カウンタ値が”0”になったことに基づいて、選択信号SEL0、SEL1を”3”に設定し、状態STをアイドル状態IDLEに遷移する(図12(h)、(i))。
データ受信装置200の検出部24は、アイドル状態IDLEにおいて、通信線CL0を介してSOPを受けたことを検出し、検出信号DET0を出力する(図12(j))。受信制御部22は、検出部24が出力する検出信号DET0に基づいて、イベントDSOP1を発生し、状態STを伝送状態DSNDに遷移する(図12(k)、(l))。また、受信制御部22は、検出信号DET0に基づいて、通信線CL0を介して受信するパケットPKTを受信バッファ部26に保持するために、書き込み信号WR0を出力する(図12(m))。
この後、受信制御部22は、SOPに続くSID、OPC、LEN、DT0−DT2を順次に通信線CL0を介して受信し、DT0−DT3の受信毎にカウンタRC0のカウンタ値をデクリメントする。受信制御部22は、カウンタ値が”0”になったことに基づいて、CRCの受信を検出し、パケットPKTaの受信を完了し、アイドル状態IDLEに戻る(図12(n)、(o))。
次に、通信線CL1にパケットPKTbを伝送する場合、送信制御部12は、読み出し信号RD1を出力し、選択信号SEL0、SEL1を”2”、”0”にそれぞれ設定する(図12(p)、(q))。これにより、パケットPKTbが通信線CL1に送信されるとともに、パケットPKTaの各フィールドの論理を反転した情報が通信線CL0に送信される(図12(r)、(s))。なお、パケットPKTbは、2つのデータフィールドDT0−DT1を含むが、データフィールドDTの数は、2つに限定されない。
送信制御部12は、SOP(”1100”)の送信時にイベントCSOP1を発生し、状態STをアイドル状態IDLEから伝送状態CSNDに遷移する(図12(t)、(u))。送信制御部12は、LENの設定値に基づいて”2”に設定されたカウンタTC1のカウンタ値が”0”になったことに基づいて、CRCを送信する(図12(v))。送信制御部12は、カウンタ値の”0”に基づいて、選択信号SEL0、SEL1を”3”に設定し、アイドル状態IDLEに戻る(図12(w)、(x))。
受信制御部22は、アイドル状態IDLEにおいて、検出部24が互いに異なる論理のSOPを通信線CL0、CL1から受信したことに基づいて、イベントCSOP1を発生し、状態STを伝送状態CSNDに遷移する(図12(y)、(z))。そして、通信線CL0からのパケットPKTaの受信と同様に、受信制御部22は、検出部24からの検出信号DET1に基づいて書き込み信号WR1を出力し、パケットPKTbを受信バッファ部26に保持させる(図12(a1、a2))。この後、受信制御部22は、カウンタTC1のカウンタ値が”0”になったことに基づいて、CRCの受信を検出し、パケットPKTbの受信を完了し、アイドル状態IDLEに戻る(図12(a3)、(a4))。
図13は、図2に示すデータ送受信システムSYSの動作の別の例を示す。図12と同一または同様の動作については、詳細な説明は省略する。図13は、通信線CL0にパケットPKTaを伝送中に、通信線CL1にパケットPKTbが伝送され、通信線CL1にパケットPKTbを伝送中に、通信線CL0にパケットPKTcが伝送される場合を示す。パケットPKTaのデータフィールドDT1の伝送までの動作は、図12と同様である。
通信線CL0にパケットPKTaを伝送中に、通信線CL1にパケットPKTbを伝送する場合、送信制御部12は、読み出し信号RD1を出力し、選択信号SEL1を”2”に設定する(図13(a))。選択信号SEL1は”0”に維持されるため、生成部16は、パケットPKTa(DT2)を通信線CL0に送信するとともに、通信線CL1にパケットPKTa(DT2)と反対の論理/DT2を送信する(図13(b)、(c))。状態DSNDにおいて、通信線CL0に送信されるフィールドDT2と反対の論理/DT2は、通信線CL1に送信するパケットPKTbの先頭フィールドSOPを示す。なお、通信線CL0に送信されるパケットPKTaと反対の論理(SOP)は、状態DSNDにおいて通信線CL0にパケットPKTaを伝送中に、任意の位置(SID、OPC、LEN、DT、CRC)に挿入することができる。
次に、送信制御部12は、選択信号SEL1を”0”に設定し、通信線CL0、CL1にパケットPKTa、PKTbを送信する(図13(d)、(e)、(f))。2つの通信線CL0、CL1にパケットPKTa、PKTbが送信されるため、状態STは、伝送状態DSNDから伝送状態BUSYに遷移する(図13(g))。
送信制御部12は、通信線CL0へのパケットPKTaの送信の完了に基づいて、状態STを伝送状態CSNDに遷移し、選択信号SEL0を”2”に設定する(図13(h)、(i))。これにより、生成部16は、パケットPKTb(LEN、DT0)を通信線CL1に送信するとともに、通信線CL0にパケットPKTbと反対の論理/LEN、/DT0を送信する(図13(j)、(k))。
次に、通信線CL1にパケットPKTbを伝送中に、通信線CL0にパケットPKTcを伝送するため、送信制御部12は、選択信号SEL0を”1”に設定する(図13(l))。生成部16は、選択信号SEL0、SEL1に基づいて、通信線CL1にパケットPKTb(DT1)を送信するとともに、通信線CL0にパケットPKTbと同じ論理(DT1)を送信する(図13(m)、(n))。
通信線CL1に送信されるDT1と同じ論理は、通信線CL0に送信するパケットPKTcの先頭フィールドSOPを示す。なお、通信線CL1に送信されるパケットPKTbと同じ論理(SOP)は、通信線CL1にパケットPKTbを伝送中に、任意の位置(SID、OPC、LEN、DT、CRC)に挿入することができる。
次に、送信制御部12は、選択信号SEL0を”0”に設定し、通信線CL0、CL1にパケットPKTc、PKTbを送信する(図13(o)、(p)、(q))。2つの通信線CL0、CL1にパケットPKTc、PKTbが送信されるため、状態STは、伝送状態CSNDから伝送状態BUSYに遷移する(図13(r))。
送信制御部12は、通信線CL1へのパケットPKTbの送信の完了に基づいて、状態STを伝送状態DSNDに遷移し、選択信号SEL1を”1”に設定する(図13(s)、(t))。これにより、生成部16は、パケットPKTc(DT0、DT1、CRC)を通信線CL0に送信するとともに、パケットPKTcと同じ論理(DT0、DT1、CRC)を通信線CL1に送信する(図13(u)、(v))。
一方、アイドル状態IDLEまたは伝送状態CSNDにおいて、受信制御部22は、検出部24が互いに同じ論理を通信線CL0、CL1から受信した場合、通信線CL0からパケットPKTを受信するための先頭フィールドSOPの受信を検出する。状態STがアイドル状態IDLEの場合、受信制御部22は、イベントDSOP1を発生し、状態STを伝送状態DSNDに遷移し、通信線CL0を介してパケットPKTaを受信する(図13(w)、(x))。状態STが伝送状態CSNDの場合、受信制御部22は、イベントDSOP2を発生し、状態STを伝送状態BUSYに遷移し、通信線CL0を介してパケットPKTcを受信する(図13(y)、(z))。
受信制御部22は、アイドル状態IDLEまたは伝送状態DSNDにおいて、検出部24が互いに異なる論理を通信線CL0、CL1から受信した場合、通信線CL1からパケットPKTbを受信するための先頭フィールドSOPの受信を検出する。状態STが伝送状態DSNDの場合、受信制御部22は、イベントCSOP2を発生し、状態STを伝送状態BUSYに遷移し、通信線CL1を介してパケットPKTbを受信する(図13(a1)、(a2))。状態STがアイドル状態IDLEの場合、図12(y)に示すように、受信制御部22は、イベントCSOP1を発生し、状態STを伝送状態CSNDに遷移し、通信線CL1を介してパケットPKTbを受信する。
なお、伝送状態BUSYにおいて通信線CL0、CL1に伝送される情報は、互いに関連性がないため、並列に伝送されるフィールドの論理が同じ可能性があり、または並列に伝送されるフィールドの論理が互いに異なる可能性がある。しかし、図8のステップS100および図10のステップS200に示すように、伝送状態BUSYでは、通信線CL0、CL1を用いた新たなパケットPKTの伝送は実行されない。このため、伝送状態BUSYにおいて、通信線CL0、CL1を伝送されるフィールドの論理が同じ場合、またはフィールドの論理が互いに異なる場合にも、検出部24が、先頭フィールドSOPを誤って検出することはない。
一方、伝送状態DSNDでは、通信線CL0、CL1に互いに同じ論理のフィールドが伝送されるため、検出部24は、論理が互いに異なるフィールドが現れた場合、先頭フィールドSOPを検出することができる。同様に、伝送状態CSNDでは、通信線CL0、CL1に互いに異なる論理のフィールドが伝送されるため、検出部24は、論理が互い同じフィールドが現れた場合、先頭フィールドSOPを検出することができる。フィールドの論理の反転は、図5に示すセレクタS0、S1等の論理回路と、インバータ等の論理回路(図5に示す丸印)を用いて実行することができる。また、フィールドの論理が反転されたことの検出は、図6に示す比較器CMP0、CMP1等の論理回路を用いて実行することができる。なお、図13では、通信線CL0に伝送されるフィールドの論理を反転して通信線CL1に伝送している。しかしながら、通信線CL0、CL1に伝送されるフィールドの論理が互いに相違すれば、反転した論理でなくても、検出部24は、通信線CL1に伝送されるSOPを検出することができる。
図14は、図2に示すデータ送受信システムSYSの動作の別の例を示す。図12および図13と同一または同様の動作については、詳細な説明は省略する。図14は、通信線CL0、CL1を交互に用いてパケットPKTa、PKTb、PKTcが伝送される場合を示す。パケットPKTaのデータフィールドDT1の伝送までの動作は、データ長フィールドLENに設定される値が異なることを除き、図13と同様である。
図14においても、図12および図13と同様に、通信線CL0にパケットPKTを伝送する場合、生成部16は、互いに同じ論理を、先頭フィールドSOPとして通信線CL0、CL1に送信する。通信線CL1がパケットPKTの伝送に使用されていない場合、生成部16は、先頭フィールドSOP(1100)を通信線CL0、CL1に送信する(図14(a))。通信線CL1がパケットPKTの伝送に使用されている場合、生成部16は、通信線CL1に伝送されているフィールド(CRC等)と同じ論理を、先頭フィールドSOPとして、通信線CL0に送信する(図14(b))。
また、通信線CL1にパケットPKTを伝送する場合、生成部16は、互いに異なる論理を、先頭フィールドSOPとして通信線CL0、CL1に送信する。通信線CL0がパケットPKTの伝送に使用されている場合、生成部16は、通信線CL0に伝送されているフィールド(CRC等)と反対の論理(/CRC)を通信線CL1に送信する(図14(c))。通信線CL0がパケットPKTの伝送に使用されていない場合の動作は、図12(y)に示される。
図15は、図2に示すデータ送受信システムSYSの動作の別の例を示す。図12および図13と同一または同様の動作については、詳細な説明は省略する。図15は、通信線CL0にパケットPKTaを伝送中に、通信線CL1へのパケットPKTbの伝送が開始され、パケットPKTa、PKTbの伝送が同じサイクルで終了する場合を示す(図15(a))。パケットPKTa、PKTbを伝送する動作は、図12および図13に示す動作と同様である。
通信線CL0、CL1を用いたパケットPKTa、PKTbの伝送が同じサイクルで終了する場合、送信制御部12は、イベントDEOP、CEOPを同じタイミングで発生する(図15(b))。同様に、受信制御部22は、イベントDEOP、CEOPを同じタイミングで発生する(図15(c))。これにより、送信制御部12および受信制御部22の状態STは、伝送状態DSNDまたは伝送状態CSNDを経由することなく、伝送状態BUSYからアイドル状態IDLEに遷移する(図15(d)、(e))。
図16は、図2に示すデータ送受信システムSYSの動作の別の例を示す。図12および図13と同一または同様の動作については、詳細な説明は省略する。図16は、通信線CL0、CL1の両方を用いてパケットPKTa、PKTb、PKTc、PKTdが連続的に伝送される場合を示す。
図16においても、図12および図13と同様に、通信線CL0にパケットPKTを伝送する場合、生成部16は、互いに同じ論理を、先頭フィールドSOPとして通信線CL0、CL1に送信する。通信線CL1にパケットPKTを伝送する場合、生成部16は、互いに異なる論理を、先頭フィールドSOPとして通信線CL0、CL1に送信する。
以上、図2から図16に示した実施形態では、データ送受信システムSYSは、通信線CL0、CL1に伝送されるパケットPKTのフィールドの論理が互いに同じか、互いに異なるかに応じて、先頭フィールドSOPを認識することができる。また、データ送受信システムSYSは、通信線CL0、CL1に伝送されるパケットPKTのフィールドの論理が互いに同じか、互いに異なるかに応じて、パケットPKTを伝送する通信線CL0、CL1を認識することができる。これにより、通信線CL0、CL1の両方を用いて、パケットPKTをデータ送信装置100からデータ受信装置200に伝送することができ、パケットPKTの伝送効率を従来に比べて向上することができる。
図12に示すように、データ送信装置100は、伝送状態DSNDにおいて、通信線CL0に送信するパケットPKTと同じ論理を通信線CL1に送信する。データ送信装置100は、伝送状態CSNDにおいて、通信線CL1に送信するパケットPKTと反対の論理を通信線CL0に送信する。これにより、データ受信装置200は、伝送状態DSNDにおいて、通信線CL0、CL1に伝送される論理が異なった場合に、通信線CL1に伝送されるSOPを検出することができる。また、データ受信装置200は、伝送状態CSNDにおいて、通信線CL0、CL1に伝送される論理が同じになった場合に、通信線CL0に伝送されるSOPを検出することができる。
図17は、データ送受信システム、データ送信装置、データ送受信システムの制御方法の別の実施形態における送信バッファ部14Aの例を示す。図2から図16で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。データ送信装置100は、図2に示す送信バッファ部14の代わりに送信バッファ部14Aを有することを除き、図2と同様である。データ受信装置200は、図2と同様の構成を有する。そして、データ送受信システムSYSは、通信線CL0、CL1を介して互いに接続されたデータ送信装置100およびデータ受信装置200を有する。
データ受信装置200は、データ送信装置100からのパケットPKTの受信が成功したか否かの情報を含む応答パケットをデータ送信装置100に送信する機能を有する。データ送信装置100は、データ受信装置200からの応答パケットを受信する機能を有する。応答パケットは、パケットPKTの受信の成功を示すACK(ACKnowledge)パケット、またはパケットPKTの受信が伝送エラー等により失敗したことを示すNACK(Negative ACKnowledge)パケットのいずれかである。
なお、図2と同様に、データ送信装置100は、データ受信装置200の機能を含み、データ受信装置200は、データ送信装置100の機能を含んでもよい。この場合、データ送信装置100とデータ送信装置100との間で、データが双方向に伝送され、ACKパケットおよびNACKパケットは、データ送信装置100からデータ受信装置200へも送信される。
送信バッファ部14Aは、図4に示す送信バッファ部14に、アドレス生成器ADG2、送信経路レジスタTRRおよびマルチプレクサMAXを追加している。アドレス生成器ADG2は、データ受信装置200からのNACKパケットに含まれるSID(シーケンスID)を受け、受けたSIDが示す値に”1”を順次に加えた値をアドレスADとして送信キューTQUEおよび送信経路レジスタTRRに出力する。アドレス生成器ADG2は、アドレス生成器ADG1が保持するアドレスADと一致するまで、アドレスADを順次に生成する。アドレス生成器ADG1は、NACKパケットに基づいて、アドレスADの生成動作を停止し、アドレス生成器ADG2から出力されるアドレスADが、アドレス生成器ADG1が保持するアドレスADと一致した場合に、アドレスADの生成動作を再開する。
送信経路レジスタTRRは、アドレスAD(すなわち、SIDの値)により識別される複数の領域を有し、パケットPKTを送信した通信線CL0、CL1を示す送信経路情報ROUT(0または1)を保持する。送信経路レジスタTRRは、パケットPKTを通信線CL0、CL1のいずれに送信したかを示す送信経路情報ROUTを保持する保持部の一例である。送信経路レジスタTRRの領域の数は、送信キューTQUEの領域の数と同じである。なお、送信経路レジスタTRRは、NACKパケットを受信する前(パケットPKTの再送前)のパケットPKTに対応する送信経路情報ROUTを保持する。
送信制御部12が読み出し信号RD0を出力し、パケットPKTが通信線CL0に送信される場合、送信経路情報ROUTは”0”に設定される。送信制御部12が読み出し信号RD1を出力し、パケットPKTが通信線CL1に送信される場合、送信経路情報ROUTは”1”に設定される。送信経路レジスタTRRは、アドレス生成器ADG2から出力されるアドレスADが示す領域に格納された送信経路情報ROUTの論理(0または1)をマルチプレクサMAXに出力する。
NACKパケットのSIDには、受信が成功した最後のパケットPKTのSIDの値が格納される。このため、NACKパケットに含まれるSIDに”1”を加えたアドレスADは、伝送エラー等が発生したパケットPKTを示す。送信キューTQUEは、アドレス生成器ADG2からのアドレスADに基づいて、伝送エラー等が発生したパケットPKTに含まれる情報を出力する。送信経路レジスタTRRは、アドレス生成器ADG2からのアドレスADに基づいて、エラーが発生したパケットPKTを送信した通信線CLを示す送信経路情報ROUTを出力する。
なお、NACKパケットのSIDには、受信が失敗したパケットPKTのSIDの値が格納されてもよい。この場合、アドレス生成器ADG2は、NACKパケットに含まれるSIDが示す値をアドレスADとして送信キューTQUEおよび送信経路レジスタTRRに出力する。
図17に示す例では、送信キューTQUEに保持された4つのパケットPKTa(SID=0)、PKTb(SID=1)、PKTc(SID=2)、PKTd(SID=3)が順次に送信される。図2に示す送信制御部12は、パケットPKTa、PKTb、PKTc、PKTdを送信する伝送線(CL0、CL0、CL1、CL0)を示す送信経路情報ROUT(0または1)を、パケットPKTの送信毎に送信経路レジスタTRRに格納する。アドレス生成器ADG1から送信経路レジスタTRRに出力されるアドレスADは、伝送線(CL0またはCL1)を示す送信経路情報ROUTを格納する位置を示す。
マルチプレクサMAXは、NACKパケットの受信に基づいてエラー信号ERRを受けた場合、送信経路レジスタTRRから出力される送信経路情報ROUT(0または1)の値を反転した値をデマルチプレクサDEMAXに出力する。エラー信号ERRは、データ送信装置100が、NACKパケットの受信に基づいて生成する。マルチプレクサMAXにおいて、送信経路レジスタTRRに接続された入力端子に付した丸印は、論理が反転されることを示す。これにより、データ送信装置100がNACKパケットを受信した場合のパケットPKTの再送は、パケットPKTを前回送信した通信線CLと異なる通信線CLを用いて実行される。
また、マルチプレクサMAXは、エラー信号ERRを受けていない場合、読み出し信号RD0、RD1により示される伝送線(CL0またはCL1)を示す値をデマルチプレクサDEMAXに出力する。すなわち、データ送信装置100は、NACKパケットを受信する前、送信制御部12が生成する読み出し信号RD0、RD1に対応する通信線CLにパケットPKTを送信する。
デマルチプレクサDEMAXは、NACKパケットを受けていない場合、送信キューTQUEから出力されるパケットPKTを、読み出し信号RD0、RD1で指示される通信線CLに出力する。デマルチプレクサDEMAXは、NACKパケットを受けた場合、送信キューTQUEから出力される再送用のパケットPKTを、送信経路レジスタTRRから出力される前回使用した通信線CLを示す送信経路情報ROUTと逆の通信線CLに出力する。なお、アドレス生成器ADG2、送信経路レジスタTRRおよびマルチプレクサMAXは、送信制御部12に搭載されてもよい。
図18は、図17に示す送信バッファ部14Aを有するデータ送信装置100の動作の例を示す。データ送信装置100は、通信線CL0、CL1を交互に用いてパケットPKTa、PKTb、PKTc、PKTdを送信する(図18(a)、(b)、(c)、(d))。パケットPKTa、PKTb、PKTc、PKTdを送信する毎に、アドレス生成器ADG1の値は、”1”ずつ増加する(図18(e)、(f)、(g))。
データ受信装置200は、パケットPKTbの伝送エラーを検出し、パケットPKTaまでの受信が成功したことを示すNACKパケット(SID=0)をデータ送信装置100に送信する(図18(h))。NACKパケットは、データ受信装置200からデータ送信装置100へのパケットPKTの伝送経路である伝送線RL0、RL1のいずれかを用いて伝送される。データ送信装置100は、NACKパケットの受信に基づいて、エラー信号ERRを出力する(図18(i))。
アドレス生成器ADG2は、NACKパケットのSID(=0)に”1”を加えたアドレスADを送信経路レジスタTRRに順次に出力する(図18(j)、(k)、(l))。アドレス生成器ADG2は、アドレス生成器ADG1に保持されたアドレスADと一致するまでアドレスADを生成する。送信経路レジスタTRRは、アドレス生成器ADG2からのアドレスADに対応する送信経路情報ROUTを読み出し、マルチプレクサMAXに出力する。マルチプレクサMAXは、送信経路情報ROUTの論理を反転して、デマルチプレクサDEMAXに出力する。そして、パケットPKTb、PKTc、PKTdを最初に送信した通信線CL1、CL0、CL1と逆の通信線CL0、CL1、CL0を用いてパケットPKTb、PKTc、PKTdがそれぞれ再送される(図18(m)、(n)、(o))。
データ送信装置100は、最後のパケットPKTdを再送した後にエラー信号ERRの出力を停止する(図18(p))。特に限定されないが、データ受信装置200は、所定の周期でACKパケットをデータ送信装置100に送信する(図18(q))。ACKパケットは、受信が成功したパケットPKTのSIDを含む。データ送信装置100は、ACKパケットの受信に基づいて、送信キューTQUEおよび送信経路レジスタTRRにおけるACKパケットに含まれるSIDに対応するアドレスADまでの資源を開放する。
図19は、図17に示す送信バッファ部14Aを有するデータ送信装置100の送信制御部12の動作の例を示す。図19に示す動作は、データ送信装置100がデータ受信装置200からNACKパケットを受信した場合、または送信制御部12が情報処理部10からパケットPKTの送信の指示を受けた場合に開始される。
まず、ステップS300において、送信制御部12は、データ送信装置100がデータ受信装置200からNACKパケットを受信したかを判定する。NACKパケットを受信した場合、すなわち、伝送エラー等が発生した場合、動作はステップS310に移行され、情報処理部10からパケットPKTの送信の指示を受けた場合、動作はステップS320に移行される。
ステップS310において、送信制御部12は、NACKパケットからSIDを取り出し、送信が成功した最後のパケットPKTのSIDを認識する。次に、ステップS312において、送信制御部12は、NACKパケットから取り出したSIDを図17に示すアドレス生成器ADG2に出力し、エラーが発生したパケットPKTを前回送信した通信線CL(送信経路)を求める。
ステップS314において、送信制御部12の制御を受けて動作する送信バッファ部14Aは、通信線CL1が前回の送信で使用された場合、通信線CL0を使用してパケットPKTを再送するため、動作をステップS316に移行する。送信バッファ部14Aは、通信線CL0が前回の送信で使用された場合、通信線CL1を使用してパケットPKTを再送するため、動作をステップS318に移行する。
ステップS316において、送信制御部12は、現在の状態STを判別する。送信制御部12は、状態STが、伝送状態DSNDの場合、動作を図20のステップS120に移行し、状態STが、アイドル状態IDLEの場合、動作を図20のステップS130に移行する。送信制御部12は、状態STが、伝送状態CSNDまたは伝送状態BUSYの場合、伝送状態DSNDまたはアイドル状態IDLEになるまでステップS316の動作を繰り返す。
ステップS318において、送信制御部12は、現在の状態STを判別する。送信制御部12は、状態STが、伝送状態CSNDの場合、動作を図20のステップS150に移行し、状態STが、アイドル状態IDLEの場合、動作を図20のステップS140に移行する。送信制御部12は、状態STが、伝送状態DSNDまたは伝送状態BUSYの場合、伝送状態CSNDまたはアイドル状態IDLEになるまでステップS318の動作を繰り返す。
ステップS320、S322、S324の動作は、図8に示すステップS100、S102、S104と同様である。すなわち、送信制御部12は、現在の状態STに基づいて、パケットPKTを送信する通信線CLを決定する。
現在の状態STが伝送状態DSNDの場合、ステップS326において、送信バッファ部14Aは、通信線CL1を使用してパケットPKTを送信するため、送信経路レジスタTRRに通信線CL1を示す”1”を書き込む。”1”を書き込む送信経路レジスタTRRの領域は、送信するパケットPKTのSIDに対応するアドレスADの領域である。ステップS326の後、動作は図20に示すステップS120に移行される。
現在の状態STがアイドル状態IDLEで、通信線CL1を使用してパケットPKTを送信する場合、ステップS328において、送信バッファ部14Aは、送信経路レジスタTRRに通信線CL1を示す”1”を書き込む。”1”を書き込む送信経路レジスタTRRの領域は、送信するパケットPKTのSIDに対応するアドレスADの領域である。ステップS328の後、動作は図20に示すステップS130に移行される。
現在の状態STがアイドル状態IDLEで、通信線CL0を使用してパケットPKTを送信する場合、ステップS330において、送信バッファ部14Aは、送信経路レジスタTRRに通信線CL0を示す”0”を書き込む。”0”を書き込む送信経路レジスタTRRの領域は、送信するパケットPKTのSIDに対応するアドレスADの領域である。ステップS330の後、動作は図20に示すステップS140に移行される。
現在の状態STが伝送状態CSNDの場合、ステップS332において、送信バッファ部14Aは、通信線CL0を使用してパケットPKTを送信するため、送信経路レジスタTRRに通信線CL0を示す”0”を書き込む。”0”を書き込む送信経路レジスタTRRの領域は、送信するパケットPKTのSIDに対応するアドレスADの領域である。ステップS332の後、動作は図20に示すステップS150に移行される。
図20は、図19に示す動作の続きを示す。図20に示すステップS120−S126、S130−S136、S140−S146、S150−S156に示す動作は、図8に示す同じ符号の動作と同様である。
そして、ステップS120−S126において、通信線CL0にパケットPKTを送信中に、通信線CL1を使用してパケットPKTが送信される。ステップS130−S136において、通信線CL1を使用してパケットPKTが送信される。ステップS140−S146において、通信線CL0を使用してパケットPKTが送信される。ステップS150−S156において、通信線CL1にパケットPKTを送信中に、通信線CL0を使用してパケットPKTが送信される。ステップS126、S136の後、動作は、図9に示すステップS160に移行され、ステップS146、S156の後、動作は、図9に示すステップS170に移行される。なお、受信制御部22の動作は、図10および図11と同一または同様である。
以上、図17から図20に示す実施形態においても、図2から図16に示す実施形態と同様に、データ送受信システムSYSは、通信線CL0、CL1に伝送されるフィールドの論理が互いに同じか異なるかに応じて、先頭フィールドSOPを認識することができる。これにより、パケットPKTを伝送する通信線CL0、CL1を認識でき、通信線CL0、CL1の両方を用いて、パケットPKTをデータ送信装置100からデータ受信装置200に伝送することができる。この結果、パケットPKTの伝送効率を従来に比べて向上することができる。
さらに、図17から図20に示す実施形態では、送信経路レジスタTRRによりパケットPKTを通信線CL0、CL1のいずれで送信したかを示す送信経路情報ROUTを保持する。これにより、パケットPKTの伝送エラー等が発生した場合に、エラーが発生しなかった通信線CLを使用してパケットを再送することができる。この結果、エラーが発生した通信線CLを使用してパケットPKTを再送する場合に比べて、パケットPKTの伝送の信頼性を向上することができる。
図21は、データ送受信システム、データ送信装置、データ送受信システムの制御方法の別の実施形態を示す。図2から図16で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。データ送信装置100は、図2に示す送信制御部12の代わりに送信制御部12Aを有することを除き、図2と同様である。データ受信装置200は、図2に示す受信制御部22、検出部24および受信バッファ部26の代わりに受信制御部22A、検出部24Aおよび受信バッファ部26Aを有することを除き、図2と同様である。
データ送受信システムSYSは、パケットPKTの伝送品質(信頼度)が、図2から図16に示すデータ送受信システムSYSと同等である標準モードと、標準モードより伝送品質が高い2つの高信頼モードとを有する。高信頼モードは、図22で説明するように、二重化モードと差動モードとのいずれかである。パケットPKTの伝送品質を示す伝送モードは、図3に示すパケットPKTのフィールドOPC内に設定される。データ送信装置100の情報処理部10は、各パケットPKTのフィールドOPCに伝送モードを埋め込む。伝送モードが埋め込まれたパケットPKTは、データ送信装置100からデータ受信装置200に送信される。
送信制御部12Aは、図2に示す送信制御部12の機能に加えて、伝送モードが高信頼モードの場合に、図7に示す状態IDLE、DSND、CSND、BUSYとは異なる状態に遷移し、遷移した状態に応じて動作する機能を有する。送信制御部12Aが取り得る状態の例は、図22に示す。
検出部24Aは、図2に示す検出部24の機能に加えて、伝送モードを検出し、モード信号HMD0、HMD1を出力する機能を有する。また、検出部24Aは、伝送モードが標準モードの場合、受信したパケットPKTをパケット線RPKT0、RPKT1のいずれかに出力し、伝送モードが高信頼モードの場合に、受信したパケットPKTをパケット線HPKTに出力する機能を有する。検出部24Aの例は、図23に示す。
受信制御部22Aは、図2に示す受信制御部22の機能に加えて、モード信号HMD0、HMD1と、パケット線HPKTを介して受けるパケットPKTとに応じて、図7に示す4つの状態とは異なる状態に遷移し、遷移した状態に応じて動作する機能を有する。受信制御部22Aの状態の例は、図22に示す。また、受信制御部22Aは、検出信号DET0、DET1とともにモード信号HMD0、HMD1を受けた場合に、書き込み信号HWRを出力する機能を有する。
受信バッファ部26Aは、図2に示す受信バッファ部26の機能に加えて、書き込み信号HWRに基づいて、パケット線HPKTから受けるパケットPKTを保持する機能を有する。
図22は、図21に示す送信制御部12Aの状態遷移と、図21に示す受信制御部22Aの状態遷移との例を示す。図7と同一または同様の状態およびイベントについては、図7と同じ符号を付し、詳細な説明は省略する。アイドル状態IDLEおよび伝送状態DSND、CSND、BUSYと、これらの状態間を遷移する契機となるイベントとは、図7と同一または同様である。図22に示す状態遷移は、図7に示す状態遷移に伝送状態HSND0、HSND1が追加される。送信制御部12Aの状態遷移は、ステートマシンTSTMにより制御され、受信制御部22Aの状態遷移は、ステートマシンRSTMにより制御される。
伝送状態HSND0は、通信線CL0、CL1の両方を用いてパケットPKTを二重化して伝送する二重化モードの状態であり、イベントHOPC0の発生に基づいてアイドル状態IDLEから遷移する。イベントHOPC0は、送信制御部12Aが、パケットPKTのフィールドOPCが二重化モードを示す情報を含むことを検出した場合に発生する。また、二重化モードによるパケットPKTの送信の完了に基づいて、イベントHEOP0が発生し、送信制御部12Aの状態は、伝送状態HSND0からアイドル状態IDLEに遷移する。二重化モードによるパケットPKTの伝送動作は、イベントDSOP1、DEOPの代わりにイベントHOPC0、HEOP0が発生し、状態STが伝送状態HSND0に遷移することを除き、状態DSNDでのパケットPKTの伝送動作と同様である。
伝送状態HSND1は、通信線CL0、CL1の両方を用いてパケットPKTを差動伝送する差動モードの状態であり、イベントHOPC1の発生に基づいてアイドル状態IDLEから遷移する。イベントHOPC1は、送信制御部12Aが、送信するパケットPKTのフィールドOPCが差動モードを示す情報を含むことを検出した場合に発生する。また、差動モードによるパケットPKTの送信の完了に基づいて、イベントHEOP1が発生し、送信制御部12Aの状態は、伝送状態HSND1からアイドル状態IDLEに遷移する。差動モードによるパケットPKTの伝送動作は、イベントCSOP1、CEOPの代わりにイベントHOPC1、HEOP1が発生し、状態STが伝送状態HSND1に遷移することを除き、状態CSNDでのパケットPKTの伝送動作と同様である。
図23は、図21に示す検出部24Aの例を示す。図6に示す検出部24と同一または同様の要素については、詳細な説明は省略する。検出部24Aは、比較器CMP0、CMP1、チェック回路CRCCHK0、CRCCHK1、OPCCHK0、OPCCHK1および訂正回路ERRC0、ERRC1を有する。比較器CMP0、CMP1は、図6に示す比較器CMP0、CMP1と同一または同様の回路である。
チェック回路CRCCHK0は、通信線CL0を介して受信するパケットPKTのCRCに基づいて、伝送エラーが発生したことを検出し、エラーの有無を示す情報をパケットPKTとともにパケット線RPKT0に出力する。チェック回路CRCCHK0は、パケットPKT中のCRCの位置を、検出信号DET0の出力タイミングに基づいて判定する。なお、CRCによりエラーの訂正が可能な場合、チェック回路CRCCHK0は、検出したエラーを訂正し、パケット線RPKT0に出力してもよい。
チェック回路CRCCHK1は、通信線CL1を介して受信するパケットPKTのCRCに基づいて、伝送エラーが発生したことを検出し、エラーの有無を示す情報をパケットPKTとともにパケット線RPKT1に出力する。チェック回路CRCCHK1は、パケットPKT中のCRCの位置を、検出信号DET1の出力タイミングに基づいて判定する。なお、CRCによりエラーの訂正が可能な場合、チェック回路CRCCHK1は、検出したエラーを訂正し、パケット線RPKT1に出力する。
チェック回路OPCCHK0は、通信線CL0を介して受信するパケットPKTのOPCが二重化モードを示す情報を含む場合、モード信号HMD0を出力する。チェック回路OPCCHK0は、パケットPKT中のOPCの位置を、検出信号DET0の出力タイミングに基づいて判定する。
チェック回路OPCCHK1は、通信線CL1を介して受信するパケットPKTのOPCが差動モードを示す情報を含む場合、モード信号HMD1を出力する。チェック回路OPCCHK1は、パケットPKT中のOPCの位置を、検出信号DET1の出力タイミングに基づいて判定する。
訂正回路ERRC0は、モード信号HMD0の受信に基づいて動作し、パケット線RPKT0、RPKT1のそれぞれに伝送されるパケットPKTのうち、CRCによるエラーが検出されなかったパケットPKTを選択し、パケット線HPKTに出力する。訂正回路ERRC0は、CRCを使用して通信線CL0、CL1を介してそれぞれ受信するパケットPKTのエラーを検出し、エラーのないパケットPKTを選択するパケット選択部の一例である。
訂正回路ERRC1は、モード信号HMD1の受信に基づいて動作し、パケット線RPKT0、RPKT1のそれぞれに伝送されるパケットPKTの各信号の信号量を差動増幅する差動増幅器AMPを有する。差動増幅器AMPの差動増幅により生成されるパケットPKTは、パケット線HPKTに出力される。
二重化モードまたは差動モードにおいて、通信線CL0、CL1を使用してパケットPKTを伝送することで、通常モードに比べて、パケットPKTを送信する信頼性を向上することができる。
図24は、図21に示す送信制御部12Aの動作の例を示す。図24に示す動作は、図8と同様に、送信制御部12Aが情報処理部10からパケットPKTの送信の指示を受けた場合に開始される。
まず、ステップS400において、送信制御部12Aは、送信するパケットPKTのOPCに基づいて、高信頼モードで送信するパケットPKTかを判定する。高信頼モードで送信するパケットPKTの場合、動作はステップS402に移行される。高信頼モードで送信するパケットPKTでない場合(すなわち、標準モード)、動作は図8のステップS100に移行され、図8および図9と同様の動作が実行される。
ステップS402において、送信制御部12Aは、状態STがアイドル状態IDLEの場合、動作をステップS404に移行する。送信制御部12Aは、状態STがアイドル状態IDLEでない場合、通信線CL0、CL1を用いたパケットPKTの二重化伝送の実行が困難なため、ステップS402を繰り返す。ここで、アイドル状態IDLEでない状態STは、伝送状態DSND、CSND、BUSY、HSND0、HSND1のいずれかである。
ステップS404において、送信制御部12Aは、高信頼モードが二重化モードの場合、ステップS406に移行し、高信頼モードが差動モードの場合、ステップS408に移行する。ステップS406において、送信制御部12Aは、状態STを伝送状態HSND0に遷移し、図8のステップS140に移行する。そして、伝送状態DSNDと同様に、通信線CL0に送信するパケットPKTと同じ論理を通信線CL1に送信し、図12に示すパケットPKTaの伝送動作と同様の動作を実行する。なお、送信制御部12Aは、ステップS406から図8に示すステップS140に移行する場合、状態STの伝送状態DSNDへの遷移を実行しない。
ステップS408において、送信制御部12Aは、状態STを伝送状態HSND1に遷移し、図8のステップS130に移行する。そして、伝送状態CSNDと同様に、通信線CL1に送信するパケットPKTと反対の論理を通信線CL0に送信し、図12に示すパケットPKTbの伝送動作と同様の動作を実行する。なお、送信制御部12Aは、ステップS408から図8に示すステップS130に移行する場合、状態STの伝送状態CSNDへの遷移を実行しない。
図25は、図21に示す受信制御部22Aの動作の例を示す。図25に示す動作は、検出部24AがパケットPKTのSOP、SID、OPCを通信線CL0、CL1のいずれかから受信した場合に開始される。検出部24Aは、SOPの受信に基づいて検出信号DET0、DET1のいずれかを受信制御部22に出力し、OPCの受信に基づいて二重化モードまたは差動モードを検出する。検出部24Aは、二重化モードを検出した場合、モード信号HMD0を出力し、差動モードを検出した場合、モード信号HMD1を出力する。
まず、ステップS500において、受信制御部22Aは、モード信号HMD0を受けた場合、動作をステップS502に移行し、モード信号HMD1を受けた場合、動作をステップS522に移行する。また、受信制御部22Aは、モード信号HMD0、HMD1のいずれも受けず、検出信号DET0、DET1のいずれかを受けた場合、図10のステップS200に移行し、標準モードでの受信動作を実行する。
ステップS502において、受信制御部22Aは、状態STがアイドル状態IDLEの場合、動作をステップS504に移行する。受信制御部22Aは、状態STがアイドル状態IDLEでない場合、通信線CL0、CL1を用いたパケットPKTの二重化伝送の実行が困難なため、状態STがアイドル状態IDLEになるまでステップS502を繰り返す。
ステップS504において、受信制御部22Aは、二重化モードによりパケットPKTを受信するため、状態STをアイドル状態IDLEから伝送状態HSND0に遷移する。また、受信制御部22Aは、カウンタRC1のカウンタ値を、”15”に初期化し、通信線CL0、CL1に伝送される二重化されたパケットPKTを検出部24Aに保持させる。次に、ステップS506において、受信制御部22Aは、通信線CL0、CL1に伝送される二重化されたLENを、検出部24Aに保持させる。また、受信制御部22は、LENに格納された値(データ数)を、カウンタRC0、RC1に格納する。
次に、ステップS508において、受信制御部22Aは、カウンタRC0、RC1のカウンタ値をデクリメントしながら、通信線CL0、CL1を介して伝送される二重化されたDTを検出部24Aに受信させる。次に、ステップS510において、受信制御部22Aは、通信線CL0、CL1を介して伝送される二重化されたCRCを検出部24Aに受信させる。次に、ステップS512において、受信制御部22Aは、検出部24Aのチェック回路CRCCHK0、CRCCHK1を動作させ、通信線CL0、CL1を介してそれぞれ受信したパケットPKTのエラーを検出させる。そして、受信制御部22Aは、訂正回路ERRC0を動作させ、エラーが検出されなかったパケットPKTをパケット線HPKTに出力させる。また、受信制御部22Aは、パケット線HPKTに出力させたパケットPKTを受信バッファ部26Aに格納するために書き込み信号HWRを出力する。この後、動作はステップS532に移行される。
ステップS522の動作は、ステップS502の動作と同様である。ステップS522の後、ステップS524において、受信制御部22Aは、差動モードによりパケットPKTを受信するため、状態STをアイドル状態IDLEから伝送状態HSND1に遷移する。また、差動モードで受信するパケットPKTを受信バッファ部26Aに格納するため、訂正回路ERRC1を動作させ、書き込み信号HWRを出力する。ステップS524の他の動作は、ステップS504の動作と同様である。ステップS526、S528の動作は、受信したパケットPKTが訂正回路ERRC1を介して受信バッファ部26Aに順次に格納されることを除き、ステップS506、S508の動作と同様である。ステップS528の後、ステップS530において、受信制御部22Aは、通信線CL0、CL1を介して伝送されるCRCを受信する。この後、動作は、ステップS532に移行される。
ステップS532において、受信制御部22Aは、状態STをアイドル状態IDLEに遷移し、高信頼モードでのパケットPKTの受信動作を完了する。
以上、図21から図25に示す実施形態においても、図2から図16に示す実施形態と同様に、データ送受信システムSYSは、通信線CL0、CL1に伝送されるフィールドの論理が互いに同じか異なるかに応じて、先頭フィールドSOPを認識することができる。これにより、パケットPKTを伝送する通信線CL0、CL1を認識でき、通信線CL0、CL1の両方を用いて、パケットPKTをデータ送信装置100からデータ受信装置200に伝送することができる。この結果、パケットPKTの伝送効率を従来に比べて向上することができる。
さらに、図21から図25に示す実施形態では、二重化モードまたは差動モードにおいて、通信線CL0、CL1の両方を使用してパケットPKTが伝送される。これにより、単一の通信線CL0(またはCL1)を使用してパケットPKTを送信する場合に比べて、パケットPKTを送信する信頼性を向上することができる。
なお、データ送受信システムSYSは、高信頼モードとして、二重化モードまたは差動モードのいずれか一方を有してもよい。この場合、図23に示す検出部24Aは、訂正回路ERRC0、ERRC1の一方を有し、高信頼モードの動作では、図25に示すステップS502−S532またはステップS522−S532の一方が実行される。
図26は、データ送受信システム、データ送信装置、データ送受信システムの制御方法の別の実施形態を示す。図2から図16で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。データ送信装置100は、図2に示す送信制御部12および送信バッファ部14の代わりに送信制御部12Bおよび送信バッファ部140、141を有することを除き、図2と同様の構成を有する。データ受信装置200は、図2に示す受信制御部22および受信バッファ部26の代わりに受信制御部22Bおよび受信バッファ部260、261を有することを除き、図2と同様の構成を有する。送信バッファ部140および受信バッファ部260は、通信線CL0に対応して設けられ、送信バッファ部141および受信バッファ部261は、通信線CL1に対応して設けられる。
送信制御部12Bは、通信線CL0を用いたパケットPKTの送信要求と、通信線CL1を用いたパケットPKTの送信要求を情報処理部10から個別に受け、パケットPKTの送信動作を実行する。受信制御部22Bは、通信線CL0を介してSOPを受信した場合に、通信線CL0からパケットPKTを受信し、受信したパケットPKTを情報処理部20に出力する。また、受信制御部22Bは、通信線CL1を介してSOPを受信した場合に、通信線CL1からパケットPKTを受信し、受信したパケットPKTを情報処理部20に出力する。
送信バッファ部140は、情報処理部10から転送されるパケットPKTを保持し、保持したパケットPKTにSOPおよびCRCを付加する。送信バッファ部140は、SOPおよびCRCを付加したパケットPKTを、読み出し信号RD0に基づいてパケット線TPKT0に出力する。
送信バッファ部141は、情報処理部10から転送されるパケットPKTを保持し、保持したパケットPKTにSOPおよびCRCを付加する。送信バッファ部141は、SOPおよびCRCを付加したパケットPKTを、読み出し信号RD1に基づいてパケット線TPKT1に出力する。
受信バッファ部260は、書き込み信号WR0に基づいて、パケット線RPKT0から受けるパケットPKTを保持し、保持したパケットPKTを、情報処理部20に順次に出力する。受信バッファ部261は、書き込み信号WR1に基づいて、パケット線RPKT1から受けるパケットPKTを保持し、保持したパケットPKTを、情報処理部20に順次に出力する。
送信バッファ部140、141を通信線CL0、CL1毎に設け、受信バッファ部260、261を通信線CL0、CL1毎に設けることで、通信線CL0、CL1の独立性を保持することができる。すなわち、何らかの要因で送信バッファ部140がパケットPKTで満杯になり、通信線CL0でのパケットPKTの伝送が困難な場合にも、データ送受信システムSYSは、通信線CL1を使用してパケットPKTを伝送することができる。あるいは、何らかの要因で受信バッファ部261がパケットPKTで満杯になり、通信線CL1でのパケットPKTの伝送が困難な場合にも、データ送受信システムSYSは、通信線CL0を使用してパケットPKTを伝送することができる。
図27は、図26に示す送信制御部12Bの動作の例を示す。図8と同一または同様の動作については、同じ符号を付し、詳細な説明は省略する。送信制御部12Bは、情報処理部10から通信線CL0を用いたパケットPKTの送信要求を受けた場合、ステップS600を実行し、情報処理部10から通信線CL1を用いたパケットPKTの送信要求を受けた場合、ステップS604を実行する。
ステップS600において、送信制御部12Bは、データ送信装置100の状態STがアイドル状態IDLEまたは伝送状態CSNDの場合、通信線CL0を用いたパケットPKTの送信が可能なため、動作をステップS602に移行する。送信制御部12Bは、状態STが伝送状態BUSYまたは伝送状態DSNDの場合、新たなパケットPKTの送信する余裕がないため、ステップS600を繰り返す。
ステップS602において、送信制御部12Bは、状態STがアイドル状態IDLEの場合、動作をステップS140に移行し、状態STが伝送状態CSNDの場合、動作をステップS150に移行する。ステップS140、S142、S144、S146、S150、S152、S154、S156の動作は、送信バッファ部140に保持されたパケットPKTが送信されることを除き、図8の動作と同様である。ステップS146、S156の後、動作は、図9のステップS170に移行される。
一方、ステップS604において、送信制御部12Bは、データ送信装置100の状態STがアイドル状態IDLEまたは伝送状態DSNDの場合、通信線CL1を用いたパケットPKTの送信が可能なため、動作をステップS606に移行する。送信制御部12Bは、状態STが伝送状態BUSYまたは伝送状態CSNDの場合、新たなパケットPKTの送信する余裕がないため、ステップS604を繰り返す。
ステップS606において、送信制御部12Bは、状態STがアイドル状態IDLEの場合、動作をステップS130に移行し、状態STが伝送状態DSNDの場合、動作をステップS120に移行する。ステップS120、S122、S124、S126、S130、S132、S134、S136の動作は、送信バッファ部141に保持されたパケットPKTが送信されることを除き、図8の動作と同様である。ステップS126、S126の後、動作は、図9のステップS160に移行される。
図28は、図26に示す受信制御部22Bの動作の例を示す。図10と同一または同様の動作については、同じ符号を付し、詳細な説明は省略する。受信制御部22Bは、通信線CL0を介してパケットPKTのSOPを受信した場合、ステップS700を実行し、通信線CL1を介してパケットPKTのSOPを受信した場合、ステップS704を実行する。
ステップS700において、受信制御部22Bは、状態STがアイドル状態IDLEまたは伝送状態CSNDの場合、動作をステップS702に移行する。受信制御部22Bは、状態STが伝送状態BUSYまたは伝送状態DSNDの場合、ステップS700を繰り返す。
ステップS702において、受信制御部22Bは、検出信号DET0(=1)を受けた場合、動作をステップS206に移行し、検出信号DET0を受けていない場合、動作をステップS700に戻す。ステップS206、S240、S242、S244、S250の動作は、受信したパケットPKTが受信バッファ部260に書き込まれることを除き、図10の動作と同様である。ステップS244の後、動作は、図11のステップS270に移行される。
一方、ステップS704において、受信制御部22Bは、状態STがアイドル状態IDLEまたは伝送状態DSNDの場合、動作をステップS706に移行する。受信制御部22Bは、状態STが伝送状態BUSYまたは伝送状態CSNDの場合、ステップS704を繰り返す。
ステップS706において、受信制御部22Bは、検出信号DET1(=1)を受けた場合、動作をステップS204に移行し、検出信号DET1を受けていない場合、動作をステップS704に戻す。ステップS204、S220、S230、S232、S234の動作は、受信したパケットPKTが受信バッファ部261に書き込まれることを除き、図10の動作と同様である。ステップS234の後、動作は、図11のステップS260に移行される。
以上、図26から図28に示す実施形態においても、図2から図16に示す実施形態と同様に、データ送受信システムSYSは、通信線CL0、CL1に伝送されるフィールドの論理が互いに同じか異なるかに応じて、先頭フィールドSOPを認識することができる。これにより、パケットPKTを伝送する通信線CL0、CL1を認識でき、通信線CL0、CL1の両方を用いて、パケットPKTをデータ送信装置100からデータ受信装置200に伝送することができる。この結果、パケットPKTの伝送効率を従来に比べて向上することができる。
さらに、図26から図28に示す実施形態では、送信バッファ部140、141を通信線CL0、CL1毎に設け、受信バッファ部260、261を通信線CL0、CL1毎に設けることで、通信線CL0、CL1の独立性を保持することができる。
なお、図17から図20に示す実施形態のデータ送受信システムSYSが、送信バッファ部140、141を通信線CL0、CL1毎に設け、受信バッファ部260、261を通信線CL0、CL1毎に設けてもよい。また、図21に示すデータ送受信システムSYSが、送信バッファ部14の代わりに送信バッファ部140、141を有し、受信バッファ部26の代わりに受信バッファ部260、261を有してもよい。さらに、図17に示すアドレス生成器ADG2、送信経路レジスタTRRおよびマルチプレクサMAXと同様の機構が、図26に示す送信バッファ部140、141に共通に設けられてもよい。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。