JP5183829B1 - 通信装置及び通信方法及びプログラム - Google Patents
通信装置及び通信方法及びプログラム Download PDFInfo
- Publication number
- JP5183829B1 JP5183829B1 JP2012539098A JP2012539098A JP5183829B1 JP 5183829 B1 JP5183829 B1 JP 5183829B1 JP 2012539098 A JP2012539098 A JP 2012539098A JP 2012539098 A JP2012539098 A JP 2012539098A JP 5183829 B1 JP5183829 B1 JP 5183829B1
- Authority
- JP
- Japan
- Prior art keywords
- data
- frame
- transmission
- failure
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000004891 communication Methods 0.000 title claims abstract description 242
- 238000000034 method Methods 0.000 title claims description 74
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 230000005540 biological transmission Effects 0.000 claims abstract description 610
- 238000013075 data extraction Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 10
- 230000001186 cumulative effect Effects 0.000 claims description 5
- 238000013500 data storage Methods 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims description 2
- 239000000872 buffer Substances 0.000 description 264
- 238000009826 distribution Methods 0.000 description 117
- 238000012545 processing Methods 0.000 description 87
- 230000007704 transition Effects 0.000 description 42
- 238000003860 storage Methods 0.000 description 14
- 230000004044 response Effects 0.000 description 12
- 238000003780 insertion Methods 0.000 description 11
- 230000037431 insertion Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【選択図】図1
Description
以下では、一例として、FA(Factory Automation)ネットワークでのデータ送信を説明する。
そこで、工場のラインには自動的に複数の機器を連携して動作させて製品を製造する機能がある。
FAにおける機器の連携動作を実現する方法としてFAネットワークがある。
FAネットワークでは1台の制御装置(コントローラ)と複数台の工作装置(スレーブ)を用いる。
機器間の接続はイーサネット(登録商標)ベースのデイジーチェーン接続であり、通信フレーム(以下、単に「フレーム」ともいう)単位で情報をやり取りする。
隣接しないノード間の通信は中継により実現される。
まず、コントローラは複数のスレーブに制御の指示を与える。
より具体的には、コントローラは、隣の位置のスレーブに制御指示を送信し、コントローラの隣のスレーブが更に隣のスレーブに制御指示を転送し、以降、同様の手順を繰り返し、順次、各スレーブに制御指示を伝播させる。
各スレーブは、コントローラの指示に従って稼動し、コントローラに制御結果を応答する。
制御結果の応答の場合も、スレーブ間の転送を通じてコントローラに制御結果の応答が到達する。
コントローラは、各スレーブから制御結果を受け取り、次の指示を決定し、各スレーブに次の指示を与える。
コントローラとスレーブは上記の動作を周期的に繰り返す。
以上のように自動的に複数の機器を連携して動作させ、製品を製造することができる。
高精度に機器を制御するためにはコントローラとスレーブとの間で短い周期で制御のための通信を行う必要がある。
この機能を実現するために、故障が発生したスレーブはコントローラと他のスレーブに故障の通知(以下、「障害通知」という)を実施する。
障害通知のフレーム(障害フレーム)も、制御通信のためのフレームと同様に、隣り合うノード間で中継されて、コントローラ及び全ての他のスレーブに到達する。
障害フレームを受け取ったコントローラとスレーブは安全に停止する。
以上により、機器の故障が発生した際に、FAネットワークに含まれる全ての機器が安全に停止することができる。
このように、FAネットワークでは短い周期で制御通信を行う必要があるとともに、障害管理のために、短時間で障害通知を実施する必要がある。
優先度は高い順に優先中継フレーム、優先送信フレーム、非優先中継フレーム、非優先送信フレームである。
非優先中継フレームがバッファに溜まった場合、非優先送信フレームのバッファへの入力を抑制することでバッファ溢れを防ぐ。
図43は、一例として、3つのノードで構成されるFAネットワークでの通信フレームの送受信状況を示している。
図43において、A、B及びCは、ノード1から送信される制御フレームを表し、Eはノード2から送信される障害フレームを表している。
ノード2では、ノード1からの制御フレームを受信し、受信した制御フレームを所定のバッファに格納し、受信した制御フレームをノード3に転送する。
ここで、ノード2が制御フレームAをノード3に送信している途中でノード2において障害が発生し、障害フレームEを送信する必要が生じたとする。
特許文献1では、ノード2は、制御フレームAの送信を完了してから、障害フレームEをノード3に送信し、その後制御フレームB、制御フレームCを送信する。
例えば、制御フレームを送信し始めた直後に障害が発生すると、障害フレームの送信は制御フレーム1フレームを送信する分、遅れてしまう。
1つの通信フレームで送信するデータを、先頭から順に送信するデータ送信部と、
前記データ送信部がデータの送信を完了する前に特定のデータが新たに発生した場合に、前記特定のデータの発生時点で未送信の未送信データのデータ種別を解析し、前記特定のデータを前記未送信データの前に送信するか否かを決定する送信決定部と、
前記送信決定部が前記特定のデータを前記未送信データの前に送信するよう決定した場合に、前記特定のデータが前記未送信データの前に送信され、前記特定のデータの送信が完了した後の送信が前記未送信データから開始されるように、前記特定のデータと前記未送信データの送信順序を制御する順序制御部とを有し、
前記データ送信部は、
前記送信決定部が前記特定のデータを前記未送信データの前に送信するよう決定した場合に、前記順序制御部による送信順序の制御に基づき、前記特定のデータを前記未送信データの前に送信し、前記特定のデータの送信が完了した後の送信を前記未送信データから開始することを特徴とする。
なお、実施の形態1及び2では、制約として、制御通信の周期性を維持するために、制御フレームの送信を実施する通信装置はネットワーク上で同時に1つとし、かつ障害フレームの送信は制御フレームの通信の1周期に1回までとする。
FAネットワークにおいても制御通信の周期性を維持するために、同様の制約を課す場合が多い。
図1は、図43と同様に、3つの通信装置(ノード1、ノード2、ノード3)で構成されるFAネットワークでの通信フレームの送受信状況を示している。
図1において、A、B及びCは、通信装置(ノード1)から送信される制御フレームを表している。
なお、Eは通信装置(ノード2)から送信される障害データを表している。
障害データEは、障害の発生を通知するデータであり、図43で説明した障害フレームのペイロード部分と、所定のデリミタで構成される。
また、障害データEは、制御フレーム内の制御データよりも優先して送信すべきデータである。
通信装置(ノード2)では、通信装置(ノード1)からの制御フレームを受信し、受信した制御フレームを所定のバッファに格納し、受信した制御フレームを通信装置(ノード3)に転送する。
ここで、通信装置(ノード2)が制御フレームAを通信装置(ノード3)に送信している途中で通信装置(ノード2)において障害が発生し、障害データEを送信する必要が生じたとする。
実施の形態1及び2では、通信装置(ノード2)は、制御データの送信を中断し(制御データA’)、障害データEの送信を開始し、制御フレームAの一部として障害データEをノード3に送信する。
そして、通信装置(ノード2)は、障害データEの送信を完了したら、バッファに格納されている制御フレームAを用いて、送信が中断した位置から制御データの送信を開始する(制御データA’’)。
これに対して、実施の形態1及び2(図1)では、障害データを制御フレームに挿入し、制御フレームの一部として障害データを送信し、障害データの送信後に、制御フレームの残存分のデータのみを送信する。
これにより、制御フレームの送信中に障害データが発生した場合に、障害データを効率的かつ早期に送信できる。
このように、実施の形態1及び2の方式によれば、制御通信の周期が短いままに、障害通知の時間を短縮することができる。
図2は、本実施の形態に係る通信装置100の構成例を示す。
通信装置100は、通信装置200からフレームを受信し、通信装置300にフレームを送信する。
通信装置100にとって、通信装置200は外部装置の例である。
通信装置100が通信装置300に送信するフレームは、通信装置200から受信したフレームと、通信装置100が生成したフレームである。
また、通信装置100は、通信装置200から受信した制御フレームに通信装置100が生成した障害データを挿入し、通信装置100が生成した障害データが挿入された通信装置200からの制御フレームを通信装置300に送信する場合もある。
また、通信装置100は、通信装置200から受信した制御フレームに通信装置200から受信した障害データを挿入し、通信装置200から受信した障害データが挿入された通信装置200からの制御フレームを通信装置300に送信する場合もある。
また、通信装置100は、通信装置100が生成した制御フレームに通信装置200から受信した障害データを挿入し、通信装置200から受信した障害データが挿入された通信装置100が生成した制御フレームを通信装置300に送信する場合もある。
また、通信装置100は、通信装置100が生成した制御フレームに通信装置100が生成した障害データを挿入し、通信装置100が生成した障害データが挿入された通信装置100が生成した制御フレームを通信装置300に送信する場合もある。
なお、図2では、通信装置100の構成例を示しているが、通信装置200及び通信装置300も図1に示す構成を有する。
フレーム受信部102はデータ受信部の例に相当する。
また、受信データ分配部103は、フレーム受信部102が受信したフレームの種類を判別し、フレーム受信部102が受信したフレームが後述する障害フレームであれば、後述する送信フレーム生成部106に障害フレームの受信を通知する。
なお、受信データ再構成部104の詳細は、後述する。
また、データ生成部105は、生成したフレームが障害フレームであれば、送信フレーム生成部106に障害フレームの生成を通知する。
また、送信フレーム生成部106は、受信データ分配部103から障害フレームの受信が通知された場合、又はデータ生成部105から障害フレームの生成が通知された場合に、障害フレームに含まれている障害データを優先してフレーム送信部107から送信させるようにフレームを生成する。
送信フレーム生成部106の詳細は、後述する。
より具体的には、フレーム送信部107は、1つのフレームで送信するデータを、先頭から順に送信する。
フレーム送信部107は、データ送信部の例に相当する。
フレーム1000は、フレームヘッダ1010とフレームデータ1020で構成される。
フレームヘッダ1010は、フレームタイプ1011とフレームサイズ1012で構成される。
フレームタイプ1011は、フレーム1000の種類を示しフレーム1000の種類には制御フレーム、分割フレーム、障害フレームの3種類がある。
制御フレームは、制御データが含まれるフレームである。
分割フレームは、制御フレームに障害データが含まれることにより、制御フレームから押し出されたデータ(制御データ、障害データ)が含まれるフレームである。
障害フレームは、障害データが含まれるフレームである。
フレームサイズ1012は、フレーム1000の受信完了を検出するためのフレームサイズである。
フレームサイズ1012には、フレーム1000全体のデータサイズが示されている。
3種類のフレームは共通してフレームタイプ1011とフレームサイズ1012とフレームデータ1020を持つ。
制御フレームを示すフレームタイプ1011を持つフレームヘッダ1010を制御フレームヘッダ2010、3010と呼ぶ。
分割フレームを示すフレームタイプ1011を持つフレームヘッダ1010を分割フレームヘッダ4010、5010と呼ぶ。
障害フレームを示すフレームタイプ1011を持つフレームヘッダ1010を障害フレームヘッダ6010と呼ぶ。
3種類のフレームは、それぞれ構成の異なるフレームデータ1020を持つ。
フレームデータ1020の構成要素となるのは制御データ2020、障害発生前分割制御データ3020、デリミタ3030、5020、障害データ3040、5030、6020、障害発生後分割制御データ3050、フレームから押し出された分割制御データ4020である。
制御フレームには、障害データを含まない制御フレーム2000と障害データを含む制御フレーム3000がある。
障害データを含まない制御フレーム2000は、フレーム受信部102が受信した制御フレーム、データ生成部105が生成した制御フレームのままである。
障害データを含む制御フレーム3000は、フレーム受信部102が受信した制御フレーム、データ生成部105が生成した制御フレームに、フレーム送信部107においてデリミタ3030と障害データ3040とが挿入されている。
なお、制御フレームヘッダ3010は、障害データを含まない制御フレーム2000の制御フレームヘッダ2010と同じものである。
換言すれば、制御フレームヘッダ3010は、デリミタ3030と障害データ3040とが挿入される前の制御フレームの制御フレームヘッダから変化していない。
分割フレームには、障害データを含まない分割フレーム4000と障害データを含む分割フレーム5000がある。
なお、障害データを含まない分割フレーム4000と障害データを含む分割フレーム5000のいずれも、フレーム送信部107により生成される。
障害データを含まない分割フレーム4000は、図5に示すように、制御フレームにデリミタ3030と障害データ3040とが挿入されたために、制御フレームから押し出された部分(制御データ)を、フレームから押し出された分割制御データ4020として含む。
障害データを含む分割フレーム5000は、最後尾にデリミタ5020と障害データ5030が含まれている制御フレームに、新たなデリミタ3030と障害データ3040とが挿入されたために、制御フレームから押し出された部分(デリミタ5020と障害データ5030)を含む。
障害フレーム6000において、6010は障害フレームヘッダであり、6020は障害データである。
障害フレーム6000は、フレーム受信部102が受信した障害フレーム、データ生成部105が生成した障害フレームである。
なお、障害フレーム6000には、他の障害データが挿入されることはない。
制御フレームのサイズは可変である。
但し、前述したように、制御フレームに障害データとデリミタが挿入された場合(図5)でも、障害データとデリミタ挿入後の制御フレームのサイズは、当初のサイズのまま維持される。
このため、デリミタと障害データのデータサイズ分のデータが押し出されることになり、押し出されたデータが分割フレーム(図6、図7)にて送信される。
また、フレームタイプとフレームサイズとフレームデータのフレームの先頭からの位置は予め定められている。
1ワードはデリミタと同じサイズである。
ルール:
制御フレームの送信中に障害データが発生した場合に、障害データの発生時点で未送信の未送信データ内で先頭に位置するデータ(先頭未送信データ)のデータ種別が優先種別でない場合(つまり、先頭未送信データが制御データの場合)、通信装置100は、即座にデリミタと障害データの送信を開始する(つまり、デリミタと障害データを先頭未送信データである制御データに先行して送信する)。
一方、先頭未送信データのデータ種別が優先種別である場合(つまり、先頭未送信データが障害データの場合)、通信装置100は、先頭未送信データを含む障害データの送信が完了した時点で、新たに発生した障害データの送信を開始する(つまり、先頭未送信データを含む障害データを送信した後にデリミタと新たな障害データを送信する)。
なお、「障害データが発生した場合」とは、通信装置100が通信装置200から障害フレームを受信した場合と通信装置100内のデータ生成部105が障害フレームを生成した場合の両者を含む。
また、通信装置100が送信中の制御フレームは、フレーム受信部102が通信装置200から受信した制御フレーム、通信装置100のデータ生成部105が生成した制御フレームのいずれかである。
障害データを優先して送信した結果、押し出されたデータは、分割フレームとして、制御フレームに続けて送信する。
なお、図9〜図12では、制御フレームヘッダを「制御」、制御データを「A」と表記している。
また、分割フレームヘッダを「分割」と表記していている。
図9の例では、障害データが発生した時点の未送信先頭データは制御データなので、通信装置100は、即座に障害データE(デリミタと障害データ)の送信を開始する。
この結果、制御フレーム3000aに示すように、障害データEが送信される。
なお、図9では、デリミタと障害データを合わせて障害データEとしている。
図10〜図12においても、障害データEと表記するが、図9と同様に、障害データEはデリミタと障害データの組合せである。
障害データEの送信が終了すると、通信装置100は、未送信の制御データAを送信する。
障害データEが挿入されたため、未送信の制御データAの一部は当該制御フレーム3000aに含ませることができない。
このため、通信装置100は、制御フレーム3000aに含ませることができなかった一部の制御データを分割フレーム4000aにて送信する。
この結果、障害データEと、障害データEの挿入前の制御データA(1/3)と、障害データEの挿入後の制御データA(2/3)が、同じ制御フレーム3000aで送信され、押し出された制御データA(3/3)が分割フレーム4000aで送信される。
なお、障害データE0が挿入されたために制御フレーム3000bから押し出された一部の制御データA(制御データA(3/3))は、後続する分割フレーム4000bに含まれている。
図10の例では、障害データが発生した時点の未送信先頭データは制御データA(1/3)であるため、通信装置100は、即座に障害データE1の送信を開始する。
この結果、制御データA(1/3)の途中で障害データE1の送信が開始し、障害データE1の送信後に、通信装置100は、制御データA(1/3)の未送信部分と、障害データE0と、障害データE0以降の制御データAを制御フレーム3000cにて送信する。
障害データE1が挿入されたため、制御データAの一部は当該制御フレーム3000cに含ませることができない。
このため、通信装置100は、制御フレーム3000cに含ませることができなかった一部の制御データを分割フレーム4000cにて送信する。
また、通信装置100は、分割フレーム4000cの送信後に、分割フレーム4000bを分割フレーム4000dとして送信する。
この結果、障害データE1と、障害データE1の挿入前の制御データA(1/5)と、障害データE1の挿入後の制御データA(2/5)と、障害データE0と、障害データE0の後の制御データA(3/5)が同じ制御フレーム3000cで送信され、押し出された制御データA(4/5)が分割フレーム4000cで送信され、更に、分割フレーム4000bの制御データA(5/5)が分割フレーム4000dで送信される。
なお、障害データE0が挿入されたために制御フレーム3000eから押し出された一部の制御データA(制御データA(3/3))は、後続する分割フレーム4000eに含まれている。
図11の例では、障害データが発生した時点の未送信先頭データは制御データA(2/3)であるため、通信装置100は、即座に障害データE1の送信を開始する。
この結果、制御データA(2/3)の途中で障害データE1の送信が開始し、障害データE1の送信後に、通信装置100は、制御データA(2/3)の未送信部分を制御フレーム3000fにて送信する。
制御フレーム3000fには、障害データの発生前に送信された制御データA(1/5)と障害データE0と、制御データA(2/5)も含まれる。
障害データE1が挿入されたため、制御データA(2/3)の一部は当該制御フレーム3000fに含ませることができない。
このため、通信装置100は、制御フレーム3000fに含ませることができなかった一部の制御データを分割フレーム4000fにて送信する。
また、通信装置100は、分割フレーム4000fの送信後に、分割フレーム4000eを分割フレーム4000gとして送信する。
この結果、制御データA(1/5)と、障害データE0と、制御データA(2/5)と、障害データE1と、障害データE1の挿入後の制御データA(3/5)が同じ制御フレーム3000fで送信され、押し出された制御データA(4/5)が分割フレーム4000fで送信され、更に、分割フレーム4000eの制御データA(5/5)が分割フレーム4000gで送信される。
なお、障害データE0が挿入されたために制御フレーム3000hから押し出された一部の制御データA(制御データA(3/3))は、後続する分割フレーム4000hに含まれている。
図12の例では、障害データが発生した時点の未送信先頭データは障害データE0であるため、通信装置100は、障害データE0の送信完了を待って障害データE1の送信を開始する。
制御フレーム3000iには、障害データE0の前に送信された制御データA(1/5)も含まれる。
障害データE1が挿入されたため、制御データA(2/3)の一部は当該制御フレーム3000iに含ませることができない。
このため、通信装置100は、制御フレーム3000iに含ませることができなかった一部の制御データを分割フレーム4000iにて送信する。
また、通信装置100は、分割フレーム4000iの送信後に、分割フレーム4000hを分割フレーム4000jとして送信する。
この結果、制御データA(1/4)と、障害データE0と、障害データE1と、障害データE1の挿入後の制御データA(2/4)が同じ制御フレーム3000iで送信され、押し出された制御データA(3/4)が分割フレーム4000iで送信され、更に、分割フレーム4000hの制御データA(4/4)が分割フレーム4000jで送信される。
図14は、送信フレーム生成部106の内部構成例を示す。
図14に示すように、送信フレーム生成部106は、送信用バッファ部110とフレーム生成管理部120に大別される。
なお、図14では、制御部101と受信データ再構成部104の図示を省略している。
なお、障害フレームバッファ部111は、障害フレームヘッダを含めた障害フレーム全体を蓄積する。
制御フレームバッファ部112は、受信データ分配部103から転送された制御フレーム(障害データが含まれる制御フレームと障害データが含まれない制御フレームの両者)及びデータ生成部105により生成された制御フレームと、受信データ分配部103から転送された分割フレーム(障害データが含まれる分割フレームと障害データが含まれない分割フレームの両者)とを、FIFO方式で蓄積する。
なお、制御フレームバッファ部112は、制御フレームヘッダを含めた制御フレーム全体を蓄積し、分割フレームヘッダを含めた分割フレーム全体を蓄積する。
つまり、送信決定部121は、先頭未送信データが制御データであれば、障害データを先頭未送信データ(制御データ)に先行して送信すると決定する。
一方、送信決定部121は、先頭未送信データが障害データであれば、先頭未送信データを含む障害データが送信された後に新たな障害データを送信すると決定する。
なお、送信決定部121は、受信データ分配部103又はデータ生成部105からの通知により障害データの発生を検出することできる。
また、送信決定部121は、障害データのデータサイズを予め記憶している。
そして、送信決定部121が障害データの発生を検出した場合は、順序制御部122は、障害データの既定データサイズに達するまで、障害フレームバッファ部111内のデータを1ワードずつ読み出し、読み出した1ワードのデータをフレーム送信部107に出力する。
つまり、順序制御部122は、制御フレームバッファ部112内のデータをフレーム送信部107に出力している際に、送信決定部121が障害データの発生を検出した場合は、制御フレームバッファ部112内のデータのフレーム送信部107への出力を中止し、障害データのデータサイズに達するまで、障害フレームバッファ部111内のデータをフレーム送信部107に出力する。
このように、順序制御部122は、障害データと制御データの送信順序を制御し、障害データが先に送信されるようにする。
送信可能残りサイズは、現在の制御フレームで送信可能な残りのデータサイズである。
つまり、送信可能残りサイズは、制御フレームヘッダ2010(図4)のフレームサイズ1012(図3)に記述されているデータサイズから制御フレームヘッダ2010のデータサイズ(既定データサイズ)を差し引いて得られるデータサイズ(制御データ2020のデータサイズ)から、送信済みの制御データのデータサイズと送信済みの障害データ(挿入された障害データ)のデータサイズの合計値を差し引いた値である。
フレーム残りサイズは、現在の制御フレームに含まれる制御データのうち未送信の制御データのデータサイズである。
つまり、フレーム残りサイズは、制御フレームヘッダ2010(図4)のフレームサイズ1012(図3)に記述されているデータサイズから制御フレームヘッダ2010のデータサイズ(既定データサイズ)を差し引いて得られるデータサイズ(制御データ2020のデータサイズ)から、送信済みの制御データのデータサイズを差し引いた値である。
送信決定部121は、障害データの発生時点での送信可能残りサイズが、障害データのデータサイズとデリミタのデータサイズとの加算値以上であれば、当該障害データを現在の制御フレームで送信するよう決定する。
一方、障害データの発生時点での送信可能残りサイズが、障害データのデータサイズとデリミタのデータサイズとの加算値未満であれば、送信決定部121は、当該障害データを現在の制御フレームではなく、後続のフレームで送信するよう決定する。
図15は、受信データ再構成部104の内部構成例を示す。
図15に示すように、受信データ再構成部104は、再構成用バッファ部130と再構成管理部140に大別される。
なお、図15では、制御部101とデータ生成部105と送信フレーム生成部106とフレーム送信部107の図示を省略している。
なお、障害フレームバッファ部131は、障害フレームヘッダを含めた障害フレーム全体を蓄積する。
制御フレームバッファ部132は、受信データ分配部103から転送された制御フレーム(障害データが含まれる制御フレームと障害データが含まれない制御フレームの両者)と分割フレーム(障害データが含まれる分割フレームと障害データが含まれない分割データの両者)を、FIFO方式で蓄積する。
なお、制御フレームバッファ部132は、制御フレームヘッダを含めた制御フレーム全体を蓄積し、分割フレームヘッダを含めた分割フレーム全体を蓄積する。
そして、データサイズカウント部142がカウントしたデータサイズの累積値が、導出した制御データのデータサイズに達した際に、制御データ用スタック144に格納されている制御データを用いて、制御データを復元する。
つまり、障害データの挿入により1つの制御フレームに含まれていた1つの制御データが複数の部分データに分割された場合に、データ復元部143は、制御フレームヘッダのフレームサイズから分割前の制御データの総データサイズを導出し、データサイズカウント部142のカウント値が、導出した制御データの総データサイズに達した際に、制御データ用スタック144に格納されている制御データの部分データを統合して、分割前の制御データを復元することができる。
また、同様に、データ復元部143は、データサイズカウント部142がカウントしたデータサイズの累積値が、障害データのデータサイズ(既定サイズ)に達した際に、障害データ用スタック145に格納されている障害データを用いて、元の障害データを復元する。
例えば、通信装置200において制御フレーム3000kに障害データE1が挿入された結果、通信装置100が、制御フレーム3000lと分割フレーム4000lとを受信したとする。
また、通信装置100が、制御フレーム3000kに後続する分割フレーム4000lを、分割フレーム4000mとして受信したとする。
前述したように、制御フレーム3000lの制御フレームヘッダのフレームサイズから、分割前の制御データAのデータサイズ(制御データA(1/4)〜A(4/4)の合計サイズ)を導出可能である。
通信装置100の受信データ分配部103は、制御フレーム3000lと分割フレーム4000lと分割フレーム4000mを受信データ再構成部104に転送し、受信データ再構成部104では、制御フレームバッファ部132がこれらフレームを蓄積する。
そして、データ抽出部141が制御フレームバッファ部132より、制御フレーム3000lの先頭からデータを読み出す。
データ抽出部141が制御フレームヘッダのフレームサイズを読み出した際に、データ復元部143が、フレームサイズに記述されるデータサイズから制御データのデータサイズを導出し、導出した制御データのデータサイズをデータサイズカウント部142に登録する。
データ抽出部141は制御フレーム3000l内のデータを順次読み出し、読み出したデータが制御データであれば制御データ用スタック144にプッシュし、障害データであれば障害データ用スタック145にプッシュする。
データサイズカウント部142は、制御データ用スタック144内のデータサイズ及び障害データ用スタック145内のデータサイズをカウントする。
なお、デリミタの次のデータは障害データなので、データ抽出部141は、デリミタが出現するまでは、読み出したデータを制御データと判断する。
デリミタが出現した後、障害データのデータサイズ(既定サイズ)分を読み出した後は、データ抽出部141は、再び制御データを読み出したと判断する。
以降、同様にして、データ抽出部141は分割フレーム4000lのデータと分割フレーム4000mのデータを読み出し、読み出したデータを制御データ用スタック144又は障害データ用スタック145にプッシュする。
そして、制御データ用スタック144のデータサイズが、データサイズカウント部142に登録したデータサイズに達した際に、制御データ用スタック144に格納されている分割後の制御データA(1/4)〜A(4/4)を用いて、分割前の元の制御データAを復元する。
同様に、障害データ用スタック145のデータサイズが、障害データの既定のデータサイズに達した際に、障害データ用スタック145に格納されている障害データE0(1/2)とE0(2/2)を用いて、分割前の元の障害データE0を復元する。
フレームの種類が制御フレーム又は分割フレームであれば、受信データ分配部103は、制御フレーム又は分割フレームを制御フレームバッファ部112と制御フレームバッファ部132に転送し、制御フレームバッファ部112と制御フレームバッファ部132に制御フレーム又は分割フレームを格納する(ステップS154)。
フレームの種類が障害フレームであれば、受信データ分配部103は、送信決定部121に障害データの受信を通知し(ステップS155)、また、障害フレームを障害フレームバッファ部111と障害フレームバッファ部131に転送し、障害フレームバッファ部111と障害フレームバッファ部131に障害フレームを格納する(ステップS156)。
また、データ生成部105は、障害データに障害フレームヘッダを付加して障害フレームを生成し、生成した障害フレームを障害フレームバッファ部111に転送し、障害フレームバッファ部111に障害フレームを格納する(ステップS203)。
一方、生成したデータが制御データであれば(ステップS201)、データ生成部105は、制御データに制御フレームヘッダを付加して制御フレームを生成し、生成した制御フレームを制御フレームバッファ部112に転送し、制御フレームバッファ部112に制御フレームを格納する(ステップS204)。
制御フレームバッファ部112内に制御フレームがない場合(ステップS302でNO)は、処理がステップS301に戻る。
制御フレームバッファ部112内に制御フレームがある場合(ステップS302でYES)は、送信決定部121からの指示により順序制御部122が、制御フレームバッファ部112から制御フレームの1ワード分のデータを読み出す(ステップS303)。
次に、順序制御部122は、読み出したデータの種類を判断し(ステップS304)、読み出したデータが制御フレームヘッダである場合は、フレーム残りサイズと送信可能残りサイズを、所定の記憶領域に設定する。
より具体的には、順序制御部122は制御フレームヘッダ内のフレームサイズに記述されているサイズからフレームヘッダのサイズを差し引いた値を、フレーム残りサイズと送信可能残りサイズとして設定する。
一方、ステップS303で読み出したデータがデリミタである場合は、デリミタの後に障害データが続くので、順序制御部122は、障害残りサイズを、所定の記憶領域に設定する(ステップS306)。
順序制御部122は、障害残りサイズとして、障害データの既定データサイズを設定する。
また、ステップS303で読み出したデータが制御フレームヘッダでもデリミタでもない場合は、順序制御部122は、障害残りサイズが1ワード分以上ある場合(ステップS307でYES)は、障害残りサイズをデクリメントし(ステップS308)、更に、フレーム残りサイズと送信可能残りサイズをデクリメントする(ステップS309)。
一方、障害残りサイズが0である場合(ステップS307でNO)は、フレーム残りサイズと送信可能残りサイズだけをデクリメントする(ステップS309)。
次に、順序制御部122は、ステップS303で読み出したデータをフレーム送信部107に送信する。
フレーム残りサイズが0であり、送信可能残りサイズが0である場合、又はフレーム残りサイズが1ワード以上であり、送信可能残りサイズが1ワード以上である場合は、処理をステップS301に戻す。
フレーム残りサイズが0であり、送信可能残りサイズが0であることは、障害データが挿入されずに1つの制御フレームに含まれている制御データがそのまま1つの制御フレームで送信されたことを意味する。
フレーム残りサイズが1ワード以上であり、送信可能残りサイズが1ワード以上であることは、1つの制御フレームに含まれている制御データのうち一部の制御データが未送信で残っており、また、その制御フレームにおいて送信可能なデータサイズが残っていることを意味する。
一方、フレーム残りサイズが1ワード以上であり、送信可能残りサイズが0である場合は、分割フレームの送信処理が行われる(ステップS312)。
分割フレームの送信処理は、図21を参照して後述する。
なお、フレーム残りサイズが1ワード以上であり、送信可能残りサイズが0であることは、デリミタと障害データが挿入されたために、1つの制御フレームに含まれていた制御データのうちの一部が押し出され、その制御フレームでは送信できなかったことを意味する。
送信可能残りサイズがある場合(ステップS401でYES)は、送信決定部121は、障害残りサイズがあるか否かを確認する(ステップS402)。
障害残りサイズがある場合(ステップS402でYES)は、現在、送信途中の障害データが存在していることを意味するので、現在送信途中の障害データの送信が完了してから、図18のステップS301で通知された障害データを制御フレームに挿入する。
なお、ステップS402でYESの状態は、図12に示す、障害データE0の送信中に障害データE1が発生した状態に相当する。
このため、順序制御部122は送信決定部121からの指示により、制御フレームバッファ部112から制御フレームの1ワード分のデータ(送信途中の障害データの残り)を読み出す(ステップS403)。
次に、順序制御部122が、フレーム残りサイズ、送信可能残りサイズ、障害残りサイズをデクリメントする(ステップS404)。
以降、障害残りサイズが0になるまで、ステップS401〜S404の処理が繰り返される。
つまり、送信可能残りサイズが障害データの既定データサイズとデリミタの加算値以上であれば、ステップS501でYESとなり、加算値未満であれば、ステップS501でNOとなる。
送信可能残りサイズが十分であれば(ステップS501でYES)、順序制御部122は送信決定部121の指示により、障害フレームバッファ部111から障害フレームの1ワード分のデータを読み出し、読み出したデータをフレーム送信部107に出力する(ステップS502)。
なお、障害フレームバッファ部111からの初回の読出しでは、障害フレームヘッダが読み出されるので、順序制御部122は、読み出した障害フレームヘッダはフレーム送信部107に出力せず、代わりにデリミタをフレーム送信部107に出力する。
次に、順序制御部122は、送信可能残りサイズをデクリメントする(ステップS503)。
次に、送信決定部121が、障害データの全てがフレーム送信部107に出力されたか否かを確認し(ステップS504)、出力されていない障害データがあれば、ステップS502〜S504の処理が繰り返される。
障害データの全てがフレーム送信部107に出力されていれば、処理が図18のステップS311に移行する。
なお、送信決定部121は、障害データの既定データサイズを記憶しているので、順序制御部122が障害フレームバッファ部111から障害データの全てを読み出したか否かを判断することができる。
このため、ステップS505〜S507において現在の制御フレームを送信する処理が完了した後に、ステップS508において障害フレームの送信処理が行われる。
ステップS505では、送信決定部121の指示により、順序制御部122が制御フレームバッファ部112から制御フレームの1ワード分のデータを読み出し、読み出したデータをフレーム送信部107に送信する。
次に、ステップS506において、順序制御部122が、フレーム残りサイズと送信可能残りサイズをデクリメントする。
次に、ステップS507において、送信決定部121が、フレーム残りサイズと送信可能残りサイズの値を確認する。
フレーム残りサイズが0であり、送信可能残りサイズが0である場合は、ステップS508において障害フレームの送信処理が行われる。
障害フレームの送信処理は図22を参照して後述する。
障害フレームの送信処理が終了すると、処理が図18のステップS301に移行する。
また、フレーム残りサイズが1ワード以上であり、送信可能残りサイズが1ワード以上である場合は、処理をステップS505に戻す。
また、フレーム残りサイズが1ワード以上であり、送信可能残りサイズが0である場合は、ステップS509において障害フレームの送信処理が行われ、ステップS510において分割フレームの送信処理が行われる。
分割フレームの送信処理は、図21を参照して後述する。
分割フレームの送信処理の終了後、ステップS508において障害フレームの送信処理が行われる。
ここで、送信決定部121は、フレーム残りサイズがあるか否かを確認し(ステップS405)、フレーム残りサイズがない場合は、ステップS508において障害フレームの送信処理が行われる(ステップS406)。
一方、フレーム残りサイズがある場合は、1つの制御フレームに含まれていたが、その制御フレームでは送信できなかった制御データ又は障害データが存在するので、ステップS407において障害フレームの送信処理が行われ、ステップS408において分割フレームの送信処理が行われる。
次に、送信決定部121の指示により、順序制御部122が制御フレームバッファ部112から制御フレームの1ワード分のデータを読み出し、読み出したデータをフレーム送信部107に出力する(ステップS602)。
また、このとき、順序制御部122はフレーム残りサイズをデクリメントする。
次に、送信決定部121が、フレーム残りサイズがあるか否かを確認し(ステップS603)、フレーム残りサイズがある場合には、フレーム残りサイズが0になるまで、ステップS601〜S603の処理が繰り返される。
フレーム残りサイズが0になれば、押し出されたデータが全て分割フレームで送信されたことになる。
次に、送信決定部121が、障害データの全てがフレーム送信部107に出力されたか否かを確認し(ステップS702)、出力されていない障害データがあれば、ステップS701及びS702の処理が繰り返される。
なお、前述したように、送信決定部121は、障害データの既定データサイズを記憶しているので、順序制御部122が障害フレームバッファ部111から障害データの全てを読み出したか否かを判断することができる。
本実施の形態では、実施の形態1と異なる構成の通信装置100を説明する。
なお、本実施の形態に係る通信装置100は、実施の形態1と構成が異なっており、また動作の手順も実施の形態1に示したものとは異なるが、基本的な動作原理は同じである。
つまり、本実施の形態においても、制御フレームの送信中に障害データが発生した場合に、障害データを制御フレームに挿入して送信し、障害データの挿入にて押し出されたデータは、分割フレームとして、制御フレームに続けて送信する。
このため、本実施の形態でも、図9〜図12に示す形態にて、制御フレーム及び分割フレームが送信される。
また、本実施の形態においても、図13に示した原理にてデータが復元される。
なお、以降、通信装置100を自装置とも表記する。
通信装置200及び通信装置300も、図23に示す構成例を有するものとする。
また、受信データ分配装置801は、制御フレームのフレームデータサイズ(以下、制御データサイズと記す)を、制御フレームヘッダが示すフレームサイズからフレームヘッダのサイズを減算して計算する。
また、受信データ分配装置801は、分割フレームのフレームデータサイズ(以下、分割データサイズと記す)を、分割フレームヘッダ4010、5010のフレームサイズ1012からフレームヘッダ1010のサイズを減算して計算する。
また、受信データ分配装置801は、障害フレームのフレームデータサイズ(以下、障害データサイズと記す)を、障害フレームヘッダ6010のフレームサイズ1012からフレームヘッダ1010のサイズを減算して計算する。
また、ヘッダバッファ803に保存されているのが分割フレームヘッダ4010、5010であれば、受信データ分配装置801は、分割フレームヘッダを中継ヘッダバッファ804に書き込み、分割データサイズを中継残りサイズカウンタ806に書き込む。
また、ヘッダバッファ803に保存されているのが障害フレームヘッダ6010であれば、受信データ分配装置801は、障害フレームヘッダを中継障害ヘッダバッファ808に書き込み、制御データサイズを中継障害残りサイズカウンタ809に書き込み、また、割り込みカウンタ810が0のとき内部の受信割り込みフラグを無効とし、割り込みカウンタ810が0以外のとき内部の受信割り込みフラグを有効とする。
つまり、上記の条件が成立した際に、ヘッダバッファ803に保存されているのが制御フレームヘッダまたは分割フレームヘッダであれば、受信データ分配装置801は、受信ポート800から受信した1ワードを中継データバッファ811と再構成バッファ805に書き込み、再構成カウンタ807にデクリメントを要求する。
一方、上記の条件が成立した際に、ヘッダバッファ803に保存されているのが障害フレームヘッダ6010であれば、受信データ分配装置801は、受信ポート800から受信した1ワードを中継障害バッファ812に書き込む。
また、再構成カウンタ807の値が0のとき、受信データ分配装置801は、外部出力装置に制御データ受信完了信号を出力する。
受信カウンタ802は、受信データ分配装置801から要求されたとき内部の値をクリアする。
また、受信カウンタ802は、受信データ分配装置801から要求されたとき内部の値をインクリメントする。
また、受信カウンタ802は、受信データ分配装置801から読み出されたとき内部の値を出力する。
ヘッダバッファ803は、受信データ分配装置801からフレームヘッダを書き込まれたときフレームヘッダを保存する。
また、ヘッダバッファ803は、受信データ分配装置801に読み出されたとき受信データ分配装置801にフレームヘッダを出力する。
また、ヘッダバッファ803は、外部入出力装置813に読み出されたときに外部入出力装置813にフレームヘッダを出力する。
中継ヘッダバッファ804は、受信データ分配装置801から制御フレームヘッダ2010、3010を書き込まれたときに、制御フレームヘッダ2010、3010を保存する。
また、中継ヘッダバッファ804は、中継分割ヘッダ生成装置814に読み出されたとき、制御フレームヘッダ2010、3010を中継分割ヘッダ生成装置814に出力する。
また、中継ヘッダバッファ804は、中継割り込み可否判定装置815に読み出されたとき、制御フレームヘッダ2010、3010を中継割り込み可否判定装置815に出力する。
また、中継ヘッダバッファ804は、送信データ選択装置816に読み出されたとき、制御フレームヘッダ2010、3010を送信データ選択装置816に出力する。
再構成バッファ805は、受信データ分配装置801から制御データを書き込まれたとき制御データを保存し、外部入出力装置813に読み出されたときに外部入出力装置813に制御データを出力する。
中継残りサイズカウンタ806は、受信データ分配装置801に制御データサイズを書き込まれたとき、制御データサイズをカウント値としてセットする。
また、中継残りサイズカウンタ806は、受信データ分配装置801に中継データサイズを書き込まれたとき、中継データサイズをカウント値としてセットする。
また、中継残りサイズカウンタ806は、送信データ選択装置816から要求されたとき、カウント値をデクリメントする。
また、中継残りサイズカウンタ806は、中継分割ヘッダ生成装置814に読み出されたとき、カウント値を中継分割ヘッダ生成装置814に出力する。
また、中継残りサイズカウンタ806は、中継割り込み可否判定装置815に読み出されたときに、カウント値を中継割り込み可否判定装置815へ出力する。
再構成カウンタ807は、受信データ分配装置801から要求されたとき内部の値をクリアする。
また、再構成カウンタ807は、受信データ分配装置801から要求されたときカウント値をデクリメントし、受信データ分配装置801から要求されたとき内部の値を出力する。
中継障害ヘッダバッファ808は、受信データ分配装置801から書き込まれたとき、障害フレームヘッダ6010を保存する。
また、中継障害ヘッダバッファ808は、送信データ選択装置816に読み出されたとき、障害フレームヘッダ6010を送信データ選択装置816に出力する。
中継障害残りサイズカウンタ809は、受信データ分配装置801から書き込まれたとき、障害データサイズをカウント値としてセットする。
また、中継障害残りサイズカウンタ809は、送信データ選択装置816から要求されたときに、上記カウント値をデクリメントする。
割り込みカウンタ810は、受信データ分配装置801から要求されたときに、内部の値を予め定められた障害データのサイズにセットする。
また、割り込みカウンタ810は、受信データ分配装置801から要求されたときに、内部の値をデクリメントする。
また、割り込みカウンタ810は、受信データ分配装置801から読み出されたときに、受信データ分配装置801に内部の値を出力する。
中継データバッファ811は、受信データ分配装置801から書き込まれたときに、制御フレームのフレームデータ1020または分割フレームのフレームデータ1020を保存する。
また、中継データバッファ811は、送信データ選択装置816に読み出されたときに、制御フレームのフレームデータ1020または分割フレームのフレームデータ1020を上記送信データ選択装置816に出力する。
中継障害バッファ812は、受信データ分配装置801から書き込まれたときに、障害データを保存する。
また、中継障害バッファ812は、送信データ選択装置816に読み出されたときに、送信データ選択装置816に障害データを出力する。
外部入出力装置813は、任意のタイミングで、自装置ヘッダバッファ817に制御フレームヘッダ2010を書き込む。
また、外部入出力装置813は、任意のタイミングで、自装置残りサイズカウンタ818に制御フレームサイズの値を書き込む。
また、外部入出力装置813は、任意のタイミングで、自装置データバッファ819に制御フレームのフレームデータ1020を書き込む。
また、外部入出力装置813は、任意のタイミングで、自装置障害ヘッダバッファ820に障害フレームヘッダ6010を書き込む。
また、外部入出力装置813は、任意のタイミングで、自装置障害残りサイズカウンタ821に障害フレーム6000のフレームサイズの値を書き込む。
また、外部入出力装置813は、任意のタイミングで、自装置障害バッファ822に障害フレーム6000データを書き込む。
また、外部入出力装置813は、任意のタイミングで、再構成バッファ805からデータを読み出す。
中継分割ヘッダ生成装置814は、送信データ選択装置816から要求されたとき、送信データ選択装置816に、分割フレームヘッダを出力する。
中継分割ヘッダ生成装置814が出力する分割フレームヘッダは、フレームサイズが中継残りサイズカウンタ806から読み出した値を示し、フレームタイプが分割フレームを示す。
中継割り込み可否判定装置815は、送信データ選択装置816に要求されたとき中継残りサイズカウンタ806からカウント値を読み出す。
そして、中継割り込み可否判定装置815は、上記カウント値について、
(nは自然数)かつ、
{(デリミタのサイズ)+(障害データのサイズ)}*(n)≦(上記カウント値)
の関係を満たすnが存在すれば、有効を送信データ選択装置816に出力し、そうでなければ無効を出力する。
そして、送信データ選択装置816は、以下に示す状態遷移を行う。
なお、以下に示す各種の状態のうち、「中継障害状態」とは、通信装置200から受信した障害フレームを送信する状態である。
「自装置送信状態」とは、通信装置100(自装置)の外部入出力装置813からの制御フレームを送信する状態である。
「自装置自装置状態」とは、通信装置100(自装置)の外部入出力装置813からの制御フレームの送信途中に、通信装置100(自装置)の外部入出力装置813からの障害データを割り込ませて送信する状態である。
「自装置中継状態」とは、通信装置100(自装置)の外部入出力装置813からの制御フレームの送信途中に、通信装置200から受信した障害データを割り込ませて送信する状態である。
「自装置分割状態」とは、通信装置100(自装置)の外部入出力装置813からの制御フレームに含まれていた制御データであって、障害データの割込みにより押し出された制御データを、分割フレームで送信する状態である。
「自装置障害状態」とは、通信装置100(自装置)の外部入出力装置813からの障害フレームを送信する状態である。
「中継送信状態」とは、通信装置200から受信した制御フレームを送信する状態である。
「中継自装置状態」とは、通信装置200から受信した制御フレームの送信途中に、通信装置100(自装置)の外部入出力装置813からの障害データを割り込ませて送信する状態である。
「中継中継状態」とは、通信装置200から受信した制御フレームの送信途中に、通信装置200から受信した障害データを割り込ませて送信する状態である。
「中継分割状態」とは、通信装置200から受信した制御フレームに含まれていた制御データであって、障害データの割込みにより押し出された制御データを、分割フレームで送信する状態である。
なお、状態遷移のパターンは、図41に示す通りである。
以下にて、送信データ選択装置816の状態遷移の詳細を説明する。
中継障害残りサイズカウンタ809の値が1以上であれば中継障害状態に遷移し、
自装置残りサイズカウンタ818の値が1以上であれば自装置送信状態に遷移する。
中継障害残りサイズカウンタ809の値が0であり、かつ、
自装置障害残りサイズカウンタ821の値が1以上であり、かつ、
自装置割り込み可否判定装置826の出力が有効であるとき、
自装置自装置状態に遷移する。
中継障害残りサイズカウンタ809の値が1以上であり、かつ、
自装置障害残りサイズカウンタ821の値が0であり、かつ、
中継割り込み可否判定装置815の出力が有効であるとき、
自装置中継状態に遷移する。
送信カウンタ825の値が自装置ヘッダバッファ817のフレームサイズ1012と等しく、かつ、
自装置残りサイズカウンタ818の値が0のとき、
送信待機状態に遷移する。
送信カウンタ825の値が自装置ヘッダバッファ817のフレームサイズ1012と等しく、かつ、
自装置残りサイズカウンタ818の値が1以上のとき、
自装置分割状態に遷移する。
送信カウンタ825の値が自装置ヘッダバッファ817のフレームサイズ1012と等しく、かつ、
自装置残りサイズカウンタ818の値が1以上のとき、
自装置分割状態に遷移する。
自装置送信状態に遷移する。
自装置送信状態に遷移する。
自装置残りサイズカウンタ818の値が0のとき、
送信待機状態に遷移する。
送信待機状態に遷移する。
中継障害残りサイズカウンタ809の値が0であり、かつ、
自装置障害残りサイズカウンタ821の値が1以上であり、かつ、
中継割り込み可否判定装置815の出力が有効であるとき、
中継自装置状態に遷移する。
中継障害残りサイズカウンタ809の値が1以上であり、かつ、
中継割り込み可否判定装置815の出力が有効であるとき、
中継中継状態に遷移する。
送信カウンタ825の値が中継ヘッダバッファ804のフレームサイズ1012と等しく、かつ、
中継残りサイズカウンタ806の値が0のとき、
送信待機状態に遷移する。
送信カウンタ825の値が中継ヘッダバッファ804のフレームサイズ1012と等しく、かつ、
中継残りサイズカウンタ806の値が1以上のとき、
中継分割状態に遷移する。
送信カウンタ825の値が中継ヘッダバッファ804のフレームサイズ1012と等しく、かつ、
中継残りサイズカウンタ806の値が1以上のとき、
中継分割状態に遷移する。
中継送信状態に遷移する。
中継送信状態に遷移する。
中継残りサイズカウンタ806の値が0のとき、
送信待機状態に遷移する。
中継障害残りサイズカウンタ809の値が0のとき、
送信待機状態に遷移する。
送信カウンタ825の値がフレームヘッダ1010のサイズ未満のとき、
自装置ヘッダバッファ817から1ワードを送信ポート824へ出力し、
送信カウンタ825の値がフレームヘッダのサイズ以上のとき、
自装置データバッファ819から1ワードを送信ポート824へ出力し、
自装置残りサイズカウンタ818にデクリメントを要求し、
送信カウンタ825の値が自装置障害ヘッダバッファ820のフレームサイズ1012と等しいとき送信カウンタ825にクリアを要求する。
中継障害残りサイズカウンタ809の値が障害データのサイズと等しいとき、
デリミタ出力装置823からデリミタ3030、5020を送信ポート824へ出力し、
中継障害残りサイズカウンタ809の値が障害データのサイズより小さいとき、
中継障害バッファ812から1ワードを送信ポート824へ出力し、
中継障害残り送信カウンタ825にデクリメントを要求する。
自装置障害残りサイズカウンタ821の値が障害データのサイズと等しいとき、
デリミタ出力装置823からデリミタ3030、5020を送信ポート824へ出力し、
自装置障害残りサイズカウンタ821の値が障害データのサイズより小さいとき、
自装置障害バッファ822から1ワードを送信ポート824へ出力し、
自装置障害残りサイズカウンタ821にデクリメントを要求する。
送信カウンタ825の値がフレームヘッダ1010のサイズ未満のとき、
自装置分割ヘッダ生成装置827から1ワードを送信ポート824へ出力し、
送信カウンタ825の値がフレームヘッダ1010のサイズ以上のとき、
自装置データバッファ819から1ワードを送信ポート824へ出力し、
自装置残りサイズカウンタ818にデクリメントを要求し、
送信カウンタ825の値が自装置障害ヘッダバッファ820のフレームサイズ1012と等しいとき送信カウンタ825にクリアを要求する。
送信カウンタ825の値がフレームヘッダ1010のサイズ未満のとき、
自装置障害ヘッダバッファ820から1ワードを送信ポート824へ出力し、
送信カウンタ825の値がフレームヘッダのサイズ以上のとき、
自装置データバッファ819から1ワードを送信ポート824へ出力し、
自装置残りサイズカウンタ818にデクリメントを要求し、
送信カウンタ825の値が自装置障害ヘッダバッファ820のフレームサイズ1012と等しいとき送信カウンタ825にクリアを要求する。
送信カウンタ825の値がフレームヘッダ1010のサイズ未満のとき、
中継ヘッダバッファ804から1ワードを送信ポート824へ出力し、
送信カウンタ825の値がフレームヘッダ1010のサイズ以上のとき、
中継データバッファ811から1ワードを送信ポート824へ出力し、
中継残りサイズカウンタ806にデクリメントを要求し、
送信カウンタ825の値が中継障害ヘッダバッファ808のフレームサイズ1012と等しいとき送信カウンタ825にクリアを要求する。
中継障害残りサイズカウンタ809の値が障害データのサイズと等しいとき、
デリミタ出力装置823からデリミタを送信ポート824へ出力し、
中継障害残りサイズカウンタ809の値が障害データのサイズより小さいとき、
中継障害バッファ812から1ワードを送信ポート824へ出力し、
中継障害残りサイズカウンタ809にデクリメントを要求する。
自装置障害残りサイズカウンタ821の値が障害データのサイズと等しいとき、
デリミタ出力装置823からデリミタ3030、5020を送信ポート824へ出力し、
自装置障害残りサイズカウンタ821の値が障害データのサイズより小さいとき、
自装置障害バッファ322から1ワードを送信ポート824へ出力し、
自装置障害残りサイズカウンタ821にデクリメントを要求する。
送信カウンタ825の値がフレームヘッダ1010のサイズ未満のとき、
中継分割ヘッダ生成装置814から1ワードを送信ポート824へ出力し、
送信カウンタ825の値がフレームヘッダ1010のサイズ以上のとき、
中継データバッファ811から1ワードを送信ポート824へ出力し、
中継残りサイズカウンタ806にデクリメントを要求し、
送信カウンタ825の値が中継障害ヘッダバッファ808のフレームサイズ1012と等しいとき送信カウンタ825にクリアを要求する。
送信カウンタ825の値がフレームヘッダ1010のサイズ未満のとき、
中継障害ヘッダバッファ808から1ワードを送信ポート824へ出力し、
送信カウンタ825の値がフレームヘッダ1010のサイズ以上のとき、
中継データバッファ811から1ワードを送信ポート824へ出力し、
中継残りサイズカウンタ806にデクリメントを要求し、
送信カウンタ825の値が中継障害ヘッダバッファ808のフレームサイズと等しいとき送信カウンタ825にクリアを要求する。
自装置ヘッダバッファ817は、外部入出力装置813から書き込まれたとき、制御フレームヘッダ2010を保存する。
また、自装置ヘッダバッファ817は、自装置分割ヘッダ生成装置827に読み出されたとき、制御フレームヘッダ2010を自装置分割ヘッダ生成装置827に出力する。
また、自装置ヘッダバッファ817は、自装置割り込み可否判定装置826に読み出されたとき、制御フレームヘッダ2010を自装置割り込み可否判定装置826に出力する。
また、自装置ヘッダバッファ817は、送信データ選択装置816に読み出されたとき、制御フレームヘッダ2010を送信データ選択装置816に出力する。
自装置残りサイズカウンタ818は、外部入出力装置813から書き込まれたとき、制御データサイズをカウント値としてセットする。
また、自装置残りサイズカウンタ818は、送信データ選択装置816から要求されたときに、カウント値をデクリメントする。
また、自装置残りサイズカウンタ818は、自装置分割ヘッダ生成装置827に読み出されたとき、自装置分割ヘッダ生成装置827にカウント値を出力する。
また、自装置残りサイズカウンタ818は、自装置割り込み可否判定装置826に読み出されたとき、自装置割り込み可否判定装置826にカウント値を出力する。
自装置データバッファ819は、外部入出力装置813から書き込まれたときに、制御データを保存する。
また、自装置データバッファ819は、送信データ選択装置816に読み出されたときに、送信データ選択装置816に制御データを出力する。
自装置障害ヘッダバッファ820は、外部入出力装置813から書き込まれたとき、障害フレームヘッダ6010を保存する。
また、自装置障害ヘッダバッファ820は、送信データ選択装置816に読み出されたとき、障害フレームヘッダ6010を送信データ選択装置816に出力する。
自装置障害残りサイズカウンタ821は、外部入出力装置813から書き込まれたとき、障害データサイズの値をカウント値としてセットする。
また、自装置障害残りサイズカウンタ821は、送信データ選択装置816から要求されたとき、カウント値をデクリメントする。
また、自装置障害残りサイズカウンタ821は、送信データ選択装置816に読み出されたときに、送信データ選択装置816にカウント値を出力する。
自装置障害バッファ822は、外部入出力装置813から書き込まれたとき、障害データ28を保存する。
また、自装置障害バッファ822は、送信データ選択装置816に読み出されたとき、障害フレームヘッダ6010を送信データ選択装置816に出力する。
送信カウンタ825は、送信データ選択装置816から要求を受けたとき、内部の値をクリアする。
また、送信カウンタ825は、送信データ選択装置816から要求を受けたとき、内部の値をインクリメントする。
また、送信カウンタ825は、送信データ選択装置816から読み出されたとき、内部の値を送信データ選択装置816に出力する。
また、自装置割り込み可否判定装置826は、上記カウント値について、
(nは自然数)かつ、
{(デリミタのサイズ)+(障害データのサイズ)}*(n)≦(上記カウント値)
の関係を満たすnが存在すれば、
有効を送信データ選択装置816に出力し、そうでなければ無効を出力する。
自装置分割ヘッダ生成装置827が出力する分割フレームヘッダは、フレームサイズ1012が自装置残りサイズカウンタ818から読み出した値を示し、フレームタイプ1011が分割フレームを示す。
図24は、通信装置100の動作手順を示す流れ図である。
フレーム受信時の状態遷移のパターンは図40に示す通りである。
フレーム送信時の状態遷移のパターンは図41に示す通りである。
なお、図24のフローチャートは、通信装置100が動作クロックごとの動作に対応させている。
つまり、S2、S11、S20、S26、S30、S39、S54、S58、S61、S95、S67、S82、S86、S89、S101、S111の各処理は、1クロックで実施される動作である。
受信データ分配装置801がヘッダ受信状態であるとき、受信データ分配装置801がヘッダ受信状態であるときの処理(図面では、「ヘッダ受信状態時の処理」と表記する)を実施する(ステップS2)。
受信データ分配装置801がヘッダ受信状態であるときの処理を図25を用いて説明する。
また、受信データ分配装置801は、受信カウンタ802の値とヘッダバッファ803のフレームサイズ1012とが一致したかを確認する(ステップS4)。
また、受信データ分配装置801は、中継残りサイズカウンタ806にヘッダバッファ803のフレームサイズ1012の値をセットし、制御受信状態へ遷移する(ステップS8)。
これにて、受信データ分配装置801がヘッダ受信状態であるときの処理を終了する。
また、受信データ分配装置801は、中継障害残りサイズカウンタ809へフレームデータのサイズを書き込み、障害受信状態へ遷移する(ステップS10)。
外部入出力装置813の出力処理(ステップS106)の詳細は、図38を用いて後述する。
また、受信データ分配装置801は、再構成カウンタ807の値が1以上か確認する(ステップS14)。
また、受信データ分配装置801は、受信カウンタ802の値がヘッダバッファ803のフレームサイズ1012の値と等しいか確認する(ステップS16)。
また、受信データ分配装置801は受信カウンタ802にクリアを要求し、受信データ分配装置801が制御受信状態であるときの処理を終了する。
次に、受信データ分配装置801は、割り込みカウンタ810の値が予め定められた障害データのサイズと等しいか確認する(ステップS22)。
また、受信データ分配装置801は、受信カウンタ802の値がヘッダバッファ803のフレームサイズ1012の値と等しいか確認する(ステップS27)。
この処理を図38を用いて説明する。
他の装置とデイジーチェーンで接続され、
他の装置からフレームヘッダとフレームデータで構成されるフレームを受信し、
他の装置から受信したフレームを中継し、
他の装置へ外部入出力装置から入力されたフレームを送信し、
所定の時間間隔で他の装置と送信と受信を繰り返す通信装置を説明した。
他の装置からフレームを受信し、受信フレーム振り分け装置に出力する受信ポートを有し、
受信したフレーム(以下、中継フレームと記す)について、
受信したフレームヘッダを格納する中継ヘッダバッファと、
受信したフレームデータを格納する中継データバッファと、
受信した障害を通知するフレーム(以下、障害フレームと記す)について、
受信した障害フレームヘッダを格納する中継障害ヘッダバッファと、
受信した障害フレームデータを格納する中継障害バッファを有し、
受信した中継フレームヘッダを中継ヘッダバッファに、受信した中継フレームデータを中継データバッファに振り分けて格納し、受信した障害フレームヘッダを中継障害ヘッダバッファに、受信した障害フレームデータを中継障害バッファに振り分けて格納する受信フレーム振り分け装置を有することを説明した。
外部入出力装置から入力されたフレーム(以下、自装置フレームと記す)について、
自装置フレームのヘッダを格納する自装置ヘッダバッファと、
自装置フレームデータを格納する自装置データバッファと、
外部入出力装置から入力された障害フレーム(以下、自装置障害フレームと記す)について、
自装置障害フレームヘッダを格納する自装置障害ヘッダバッファと、
自装置障害フレームデータを格納する自装置障害バッファを有し、
送信するデータを1ワードごとに中継ヘッダバッファまたは中継データバッファまたは中継障害ヘッダバッファまたは中継障害バッファまたは自装置ヘッダバッファまたは自装置データバッファまたは自装置障害ヘッダバッファまたは自装置障害バッファから選択し、送信ポートから他装置へ送信する送信データ選択装置を有し、
本実施の形態に係る通信装置が、
送信データ選択装置から障害データを、送信中のフレームに割り込ませて送信することを説明した。
送信中のフレームに割り込む障害データの先頭を示すデリミタをデリミタ出力装置より読み出して送信する送信データ選択装置を有することを説明した。
受信したワード数をカウントする受信カウンタの値と、
受信したフレーム内の障害データのワード数をカウントする割り込みカウンタの値と、
受信したヘッダを格納するヘッダバッファの出力と、
受信した障害データのワード数をカウントする割り込みカウンタの値と、
受信フレーム振り分け装置自身が有するデリミタ検出機能に基づき、受信したワードの格納先を切り替える受信フレーム振り分け装置を有することを説明した。
送信データ選択装置自身が送信中の自装置フレームのサイズと、
送信したワード数をカウントする送信カウンタの値と、障害データの送信可否を出力する自装置割り込み可否判定装置の出力に基づき、送信中の自装置フレームに障害データを割り込ませる位置を制御する送信データ選択装置を有することを説明した。
送信データ選択装置自身が送信中の中継フレームのサイズと送信カウンタの値と、障害データの送信可否を出力する中継割り込み可否判定装置の出力に基づき、送信中のフレームに障害データを割り込ませる位置を制御する送信データ選択装置を有することを説明した。
送信カウンタと、送信した自装置フレームのフレームデータのワード数をカウントする自装置残りサイズカウンタの値に基づき、送信中の自装置フレームに障害データを割り込ませたことで押し出されたフレームデータに付加するフレームヘッダ(以下、自装置分割ヘッダと記す)を出力する自装置分割ヘッダ生成装置を有することを説明した。
送信カウンタと、送信した中継フレームのフレームデータのワード数をカウントする中継残りサイズカウンタの値に基づき、送信中の中継フレームに障害データを割り込ませたことで押し出されたフレームデータに付加するフレームヘッダ(以下、中継分割ヘッダと記す)を出力する中継分割ヘッダ生成装置を有することを説明した。
自装置データバッファから送信中の自装置フレームに障害データを割り込ませたことで押し出されたフレームデータを自装置分割ヘッダに続いて送信する送信データ選択装置を有することを説明した。
中継データバッファから送信中の中継フレームに障害データを割り込ませたことで押し出されたフレームデータを中継分割ヘッダに続いて送信する送信データ選択装置を有することを説明した。
分割データを格納する再構成バッファと、
受信した分割データ数をカウントする再構成カウンタを有し、
外部装置の読み出しに応じて、分割データを再構成して障害データが割り込む前のデータを外部装置に出力する機能を有することを説明した。
すなわち、これまで説明してきた方式の用途は、FAネットワークで通信を行う通信装置に限定されるものではない。
図42は、実施の形態1及び2に示す通信装置100、200、300のハードウェア資源の一例を示す図である。
なお、図42の構成は、あくまでも通信装置100、200、300のハードウェア構成の一例を示すものであり、通信装置100、200、300のハードウェア構成は図42に記載の構成に限らず、他の構成であってもよい。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。
また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。
ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。
これらは、記憶装置の一例である。
実施の形態1及び2で説明した「〜バッファ」、「〜バッファ部」は、例えば、RAM914等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
通信ボード915は、通信路に接続されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
通信装置100、200、300の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
また、暗号鍵・復号鍵や乱数値やパラメータが、主記憶装置303にファイルとして記憶されてもよい。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記憶媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1及び2で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記憶媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
すなわち、実施の形態1及び2で説明したフローチャートに示すステップ、手順、処理により、本発明に係る「通信方法」を実現することができる。
また、「〜部」、「〜装置」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記憶媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1及び2の「〜部」、「〜装置」としてコンピュータを機能させるものである。あるいは、実施の形態1及び2の「〜部」、「〜装置」の手順や方法をコンピュータに実行させるものである。
そして、上記したように「〜部」、「〜装置」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
Claims (13)
- フレームサイズが可変であり、フレームヘッダにそのフレームサイズが記述されている通信フレームに含ませてデータを送信する通信装置であって、
1つの通信フレームで送信するデータを、先頭から順に送信するデータ送信部と、
前記データ送信部がデータの送信を完了する前に特定のデータが新たに発生した場合に、前記特定のデータの発生時点で未送信の未送信データのデータ種別を解析し、前記特定のデータを前記未送信データの前に送信するか否かを決定する送信決定部と、
前記送信決定部が前記特定のデータを前記未送信データの前に送信するよう決定した場合に、前記特定のデータが前記未送信データの前に送信され、前記特定のデータの送信が完了した後の送信が前記未送信データから開始されるように、前記特定のデータと前記未送信データの送信順序を制御する順序制御部と、
現在の通信フレームのフレームヘッダに記述されている現在の通信フレームのフレームサイズに基づき、現在の通信フレームで送信可能な残りのデータサイズを送信可能残りデータサイズとしてカウントする残りデータサイズカウント部とを有し、
前記送信決定部は、
前記未送信データ内で先頭に位置する先頭未送信データのデータ種別が、優先してデータを送信すべき優先種別であるか否かを解析し、
前記先頭未送信データのデータ種別が優先種別でない場合であって、前記特定のデータの発生時点での送信可能残りデータサイズが、前記特定のデータのデータサイズと、前記特定のデータの前に送信されるデリミタのデータサイズとの加算値以上である場合に、前記特定のデータを現在の通信フレームで前記未送信データの前に送信するよう決定し、
前記特定のデータの発生時点での送信可能残りデータサイズが、前記特定のデータのデータサイズと、前記デリミタのデータサイズとの加算値未満である場合に、前記特定のデータを後続の通信フレームで送信するよう決定し、
前記データ送信部は、
前記送信決定部が前記特定のデータを前記未送信データの前に送信するよう決定した場合に、前記順序制御部による送信順序の制御に基づき、前記特定のデータを前記未送信データの前に送信し、前記特定のデータの送信が完了した後の送信を前記未送信データから開始することを特徴とする通信装置。 - 前記順序制御部は、
前記特定のデータが前記未送信データの前に送信される結果、現在の通信フレームでは送信できない前記未送信データの少なくとも一部が、現在の通信フレームに後続する通信フレームで送信されるように制御し、
前記データ送信部は、
現在の通信フレームでは送信できない前記未送信データの少なくとも一部を、現在の通信フレームに後続する通信フレームで送信することを特徴とする請求項1に記載の通信装置。 - 前記送信決定部は、
前記先頭未送信データのデータ種別が優先種別である場合に、前記先頭未送信データ以降の優先種別のデータ部分が送信された後に前記特定のデータを送信するよう決定し、
前記順序制御部は、
前記先頭未送信データ以降の優先種別のデータ部分が送信された後に前記特定のデータが送信され、前記特定のデータの送信が完了した後の送信が前記未送信データ内の優先種別でないデータ部分の先頭から開始されるように、前記特定のデータと前記未送信データの送信順序を制御し、
前記データ送信部は、
前記順序制御部による送信順序の制御に基づき、前記先頭未送信データ以降の優先種別のデータ部分を送信し、前記特定のデータを送信し、前記特定のデータの送信が完了した後の送信を前記未送信データ内の優先種別でないデータ部分の先頭から開始することを特徴とする請求項1又は2に記載の通信装置。 - 前記データ送信部は、
前記デリミタと前記特定のデータとが送信された後の送信可能残りデータサイズ分の未送信データを現在の通信フレームで送信し、現在の通信フレームで送信されなかった未送信データを後続の通信フレームで送信することを特徴とする請求項1〜3のいずれかに記載の通信装置。 - 前記データ送信部は、
前記送信決定部が前記特定のデータを現在の通信フレームで前記未送信データの前に送信するよう決定した場合に、前記特定のデータを現在の通信フレームでデリミタに後続して送信することを特徴とする請求項1〜4のいずれかに記載の通信装置。 - 前記通信装置は、更に、
外部装置から送信されたデータを受信するデータ受信部を有し、
前記送信決定部は、
前記データ送信部がデータの送信を完了する前に前記データ受信部が前記外部装置から前記特定のデータを受信した場合に、前記データ受信部が前記外部装置から受信した前記特定のデータを前記未送信データの前に送信するか否かを決定することを特徴とする請求項1〜5のいずれかに記載の通信装置。 - 前記通信装置は、更に、
前記データ送信部から送信させるデータを生成するデータ生成部を有し、
前記送信決定部は、
前記データ送信部がデータの送信を完了する前に前記データ生成部が前記特定のデータを生成した場合に、前記データ生成部が生成した前記特定のデータを前記未送信データの前に送信するか否かを決定することを特徴とする請求項1〜6のいずれかに記載の通信装置。 - 前記データ送信部は、
外部装置から受信したデータであって、1つの通信フレームで送信するデータを、先頭から順に送信し、
前記送信決定部は、
前記データ送信部が、前記外部装置から受信したデータの送信を完了する前に、前記特定のデータが発生した場合に、前記特定のデータを前記未送信データの前に送信するか否かを決定することを特徴とする請求項1〜7のいずれかに記載の通信装置。 - 前記データ送信部は、
前記通信装置内で生成されたデータであって、1つの通信フレームで送信するデータを、先頭から順に送信し、
前記送信決定部は、
前記データ送信部が、前記通信装置内で生成されたデータの送信を完了する前に、前記特定のデータが発生した場合に、前記特定のデータを前記未送信データの前に送信するか否かを決定することを特徴とする請求項1〜8のいずれかに記載の通信装置。 - 前記通信装置は、更に、
所定の分割前データから分割された複数の分割データを、2つ以上の通信フレームにおいて受信するデータ受信部と、
通信フレームごとに、前記データ受信部が受信したデータの中から前記分割前データの分割データを抽出するデータ抽出部と、
前記データ抽出部により抽出された分割データを格納する分割データ格納部と、
前記分割データ格納部に格納されている分割データのデータサイズの累積値をカウントするデータサイズカウント部と、
前記分割前データの総データサイズを導出するとともに、前記データサイズカウント部がカウントしたデータサイズの累積値が、導出した前記分割前データの総データサイズに達した際に、前記分割データ格納部に格納されている分割データを用いて、前記分割前データを復元するデータ復元部とを有することを特徴とする請求項1〜9のいずれかに記載の通信装置。 - 前記送信決定部は、
前記特定のデータとして、前記通信装置及び前記通信装置が所属するネットワーク内の少なくともいずれかで障害が検知されたことを通知する障害データが、前記データ送信部がデータの送信を完了する前に発生した場合に、前記障害データを前記未送信データの前に送信するか否かを決定することを特徴とする請求項1〜10のいずれかに記載の通信装置。 - コンピュータが、フレームサイズが可変であり、フレームヘッダにそのフレームサイズが記述されている通信フレームに含ませてデータを送信する通信方法であって、
前記コンピュータが、1つの通信フレームで送信するデータを、先頭から順に送信するデータ送信ステップと、
前記データ送信ステップによるデータの送信が完了する前に特定のデータが新たに発生した場合に、前記コンピュータが、前記特定のデータの発生時点で未送信の未送信データのデータ種別を解析し、前記特定のデータを前記未送信データの前に送信するか否かを決定する送信決定ステップと、
前記送信決定ステップで前記特定のデータを前記未送信データの前に送信するよう決定した場合に、前記コンピュータが、前記特定のデータが前記未送信データの前に送信され、前記特定のデータの送信が完了した後の送信が前記未送信データから開始されるように、前記特定のデータと前記未送信データの送信順序を制御する順序制御ステップと、
前記コンピュータが、現在の通信フレームのフレームヘッダに記述されている現在の通信フレームのフレームサイズに基づき、現在の通信フレームで送信可能な残りのデータサイズを送信可能残りデータサイズとしてカウントする残りデータサイズカウントステップとを有し、
前記送信決定ステップにおいて、
前記コンピュータは、前記未送信データ内で先頭に位置する先頭未送信データのデータ種別が、優先してデータを送信すべき優先種別であるか否かを解析し、
前記先頭未送信データのデータ種別が優先種別でない場合であって、前記特定のデータの発生時点での送信可能残りデータサイズが、前記特定のデータのデータサイズと、前記特定のデータの前に送信されるデリミタのデータサイズとの加算値以上である場合に、前記コンピュータは、前記特定のデータを現在の通信フレームで前記未送信データの前に送信するよう決定し、
前記特定のデータの発生時点での送信可能残りデータサイズが、前記特定のデータのデータサイズと、前記デリミタのデータサイズとの加算値未満である場合に、前記コンピュータは、前記特定のデータを後続の通信フレームで送信するよう決定し、
前記データ送信ステップにおいて、
前記送信決定ステップで前記特定のデータを前記未送信データの前に送信するよう決定した場合に、前記コンピュータは、前記順序制御ステップによる送信順序の制御に基づき、前記特定のデータを前記未送信データの前に送信し、前記特定のデータの送信が完了した後の送信を前記未送信データから開始することを特徴とする通信方法。 - コンピュータを、請求項1に記載された通信装置として機能させることを特徴とするプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/054556 WO2013125027A1 (ja) | 2012-02-24 | 2012-02-24 | 通信装置及び通信方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5183829B1 true JP5183829B1 (ja) | 2013-04-17 |
JPWO2013125027A1 JPWO2013125027A1 (ja) | 2015-07-30 |
Family
ID=48481383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012539098A Expired - Fee Related JP5183829B1 (ja) | 2012-02-24 | 2012-02-24 | 通信装置及び通信方法及びプログラム |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP5183829B1 (ja) |
CN (1) | CN104137487B (ja) |
TW (1) | TWI498697B (ja) |
WO (1) | WO2013125027A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6099595B2 (ja) * | 2014-04-22 | 2017-03-22 | 本田技研工業株式会社 | 車内通信システム |
JP6291516B2 (ja) * | 2016-03-18 | 2018-03-14 | 本田技研工業株式会社 | リング型ネットワークを用いた通信システム |
JP7575955B2 (ja) | 2021-01-13 | 2024-10-30 | キヤノン株式会社 | 制御装置、システム、リソグラフィ装置、物品の製造方法、制御方法及びプログラム |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58173932A (ja) * | 1982-04-05 | 1983-10-12 | Oki Electric Ind Co Ltd | パケツト伝送方式 |
JPS6120454A (ja) * | 1984-07-06 | 1986-01-29 | Nec Corp | フレ−ム信号伝送装置 |
JPS6468044A (en) * | 1987-09-09 | 1989-03-14 | Hitachi Ltd | Message restoring system |
JPH09261230A (ja) * | 1996-03-19 | 1997-10-03 | Oki Electric Ind Co Ltd | セル伝送方法 |
JP2002009832A (ja) * | 2000-06-21 | 2002-01-11 | Fujitsu Ltd | ネットワーク中継装置およびパケット結合方法 |
JP2002261786A (ja) * | 2001-02-27 | 2002-09-13 | Nec Corp | マルチアクセス通信システム及びデータ送受信装置 |
JP2003069603A (ja) * | 2001-08-27 | 2003-03-07 | Fujikura Ltd | パケット通信制御装置 |
JP2005159792A (ja) * | 2003-11-27 | 2005-06-16 | Yokogawa Electric Corp | 通信システム及び通信方法 |
JP2006148505A (ja) * | 2004-11-19 | 2006-06-08 | Mitsubishi Electric Corp | 中継装置及び中継方法及び中継プログラム |
JP2008236266A (ja) * | 2007-03-19 | 2008-10-02 | Fujitsu Ltd | 伝送装置、保守用フレーム処理方法および伝送プログラム |
JP2010251911A (ja) * | 2009-04-13 | 2010-11-04 | Shimadzu System Solutions Co Ltd | ノード間データ応答システム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003017111A1 (en) * | 2001-07-23 | 2003-02-27 | Cognis Corporation | Extensible modular communication executive with active message queue and intelligent message pre-validation |
US7170876B2 (en) * | 2002-04-30 | 2007-01-30 | Qualcomm, Inc. | Outer-loop scheduling design for communication systems with channel quality feedback mechanisms |
KR100575989B1 (ko) * | 2004-04-08 | 2006-05-02 | 삼성전자주식회사 | 동기화 이더넷에서의 비동기 데이터의 분할 전송 방법 및그 방법에 사용되는 데이터 구조 |
JP2006013643A (ja) * | 2004-06-23 | 2006-01-12 | Nec Infrontia Corp | 通信プロトコル変換クレードル及びそれに用いるアドレス変換方法並びにそのプログラム |
TWI299450B (en) * | 2005-03-04 | 2008-08-01 | Super Talent Electronics Inc | A multi mode host and device having multiple communication protocols, a single mode device, and methods of initializing the host or device using an electrical receptacle or plug in order to perform data communications |
TWI330789B (en) * | 2007-01-30 | 2010-09-21 | Holtek Semiconductor Inc | Two-wire seriel communication interface device and method using handshaking |
CN101562751B (zh) * | 2008-12-31 | 2012-05-23 | 北京创毅视讯科技有限公司 | 一种移动多媒体广播系统中的多业务复用方法和装置 |
-
2012
- 2012-02-24 JP JP2012539098A patent/JP5183829B1/ja not_active Expired - Fee Related
- 2012-02-24 CN CN201280070626.9A patent/CN104137487B/zh not_active Expired - Fee Related
- 2012-02-24 WO PCT/JP2012/054556 patent/WO2013125027A1/ja active Application Filing
- 2012-06-14 TW TW101121276A patent/TWI498697B/zh not_active IP Right Cessation
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58173932A (ja) * | 1982-04-05 | 1983-10-12 | Oki Electric Ind Co Ltd | パケツト伝送方式 |
JPS6120454A (ja) * | 1984-07-06 | 1986-01-29 | Nec Corp | フレ−ム信号伝送装置 |
JPS6468044A (en) * | 1987-09-09 | 1989-03-14 | Hitachi Ltd | Message restoring system |
JPH09261230A (ja) * | 1996-03-19 | 1997-10-03 | Oki Electric Ind Co Ltd | セル伝送方法 |
JP2002009832A (ja) * | 2000-06-21 | 2002-01-11 | Fujitsu Ltd | ネットワーク中継装置およびパケット結合方法 |
JP2002261786A (ja) * | 2001-02-27 | 2002-09-13 | Nec Corp | マルチアクセス通信システム及びデータ送受信装置 |
JP2003069603A (ja) * | 2001-08-27 | 2003-03-07 | Fujikura Ltd | パケット通信制御装置 |
JP2005159792A (ja) * | 2003-11-27 | 2005-06-16 | Yokogawa Electric Corp | 通信システム及び通信方法 |
JP2006148505A (ja) * | 2004-11-19 | 2006-06-08 | Mitsubishi Electric Corp | 中継装置及び中継方法及び中継プログラム |
JP2008236266A (ja) * | 2007-03-19 | 2008-10-02 | Fujitsu Ltd | 伝送装置、保守用フレーム処理方法および伝送プログラム |
JP2010251911A (ja) * | 2009-04-13 | 2010-11-04 | Shimadzu System Solutions Co Ltd | ノード間データ応答システム |
Also Published As
Publication number | Publication date |
---|---|
TWI498697B (zh) | 2015-09-01 |
TW201335727A (zh) | 2013-09-01 |
WO2013125027A1 (ja) | 2013-08-29 |
CN104137487A (zh) | 2014-11-05 |
CN104137487B (zh) | 2017-09-01 |
JPWO2013125027A1 (ja) | 2015-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6600518B2 (ja) | バスシステム | |
JP5549574B2 (ja) | 並列計算機システム、同期装置、並列計算機システムの制御方法 | |
CN110967969B (zh) | 高可用性工业自动化系统及通过该系统传送信息的方法 | |
JP2008271017A (ja) | ファブリックスイッチ、バッファ容量制御方法、およびバッファ容量制御プログラム | |
EP3026556B1 (en) | Event generation management for an industrial controller | |
JP5183829B1 (ja) | 通信装置及び通信方法及びプログラム | |
US20090010157A1 (en) | Flow control in a variable latency system | |
JP5125430B2 (ja) | 情報処理装置及び情報処理方法 | |
WO2012056930A1 (ja) | プログラマブルコントローラ | |
US10027747B2 (en) | Terminal communication apparatus, and distributed control system | |
CN105339906A (zh) | 控制对永久存储设备的数据写入的方法 | |
US6778543B1 (en) | Method and device for controlling the synchronization between two serial communication buses of a network | |
JP4990250B2 (ja) | 割込制御装置、割込制御システム、割込制御方法および割込制御プログラム | |
US7336657B2 (en) | Inter-nodal data transfer system and data transfer apparatus | |
JP7169097B2 (ja) | ネットワーク異常検出方法およびネットワークシステム | |
JP6112205B2 (ja) | 情報処理システム、装置、方法及びプログラム | |
JP6070848B2 (ja) | 情報処理装置,データ転送装置,データ転送方法,および制御装置 | |
KR100737904B1 (ko) | 마스터/슬레이브 디바이스간의 인터페이스 장치 및 그 방법 | |
US20180309663A1 (en) | Information processing apparatus, information processing system, and information processing method | |
JP2009130614A (ja) | 通信制御装置、通信制御方法および通信制御プログラム | |
JP4900268B2 (ja) | アプリケーション通信制御装置及びプログラム | |
JP2013110586A (ja) | 通信システム、通信装置及び通信方法 | |
JP5414909B2 (ja) | プログラマブルコントローラ | |
JP2005250543A (ja) | データ受信装置及びデータ送信装置及びデータ受信方法及びデータ送信方法及びプログラム | |
CN118158022A (zh) | 一种多种总线通讯方法、港机边缘计算设备及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20121218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130115 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5183829 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160125 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |