JP5393528B2 - 通信装置及びプログラム - Google Patents
通信装置及びプログラム Download PDFInfo
- Publication number
- JP5393528B2 JP5393528B2 JP2010035946A JP2010035946A JP5393528B2 JP 5393528 B2 JP5393528 B2 JP 5393528B2 JP 2010035946 A JP2010035946 A JP 2010035946A JP 2010035946 A JP2010035946 A JP 2010035946A JP 5393528 B2 JP5393528 B2 JP 5393528B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- payload
- slave
- unit
- payload data
- 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.)
- Active
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Description
FAネットワークは、1台の指令機器(以下、マスタ装置又はマスタと記す)で複数の制御機器(以下、スレーブ装置又はスレーブと記す)を制御するためのネットワークである。
FAネットワークでは、機器間の接続を省配線で実現するために、各機器がそれぞれ複数の機器と接続し、ツリートポロジーやリングトポロジーを構成する。
このとき直接接続されていない機器間の通信は他の機器を中継することで実現される。
両通信は共通の周期(以下、通信周期)で実施される。
通信周期が短いほど、スレーブには短い周期で指令が通知されるため、スレーブをきめ細かく制御できる。
一般に、複数のスレーブからフレームを送信する上り通信のほうが、1台のマスタからフレームを送信する下り通信と比べ1周期分の通信完了にかかる時間が長くなるため、通信周期は上り通信で1周期分の通信にかかる時間となる。
上り通信で1周期分の通信にかかる時間は、図8のように1周期の間に受信する全フレームの受信時間とフレーム間ギャップの合計値となる。
さらにフレームの受信時間は、フレーム長(ヘッダとフッタとペイロードの合計値)を回線速度で割った値となる。
このFAネットワークでは、スレーブSnが、Sn応答が含まれるフレームをマスタに送信し、その後、スレーブS(n−1)〜スレーブS1の各々が前段にあるスレーブに各々の応答が含まれるフレームを送信する。
また、各スレーブは後段のスレーブから受信したフレームを前段のスレーブに転送し、マスタMがスレーブSn〜スレーブS1のフレームを受信する。
マスタMがスレーブSnのフレームの受信を開始してから、次にスレーブSnのフレームの受信を開始するまでが1つの通信周期となる。
特許文献1では、まずマスタに相当する親局はフレームが到達するまでの伝搬遅延をスレーブに相当する子局に通知する。
これを受け、スレーブに相当する子局は伝搬遅延を考慮し、マスタに相当する親局が受信可能になるタイミングに合わせてフレームを送信する。
これより、フレーム間ギャップを短縮している。
この結果、通信周期に相当する上り通信で1周期分の通信にかかる時間には、スレーブ台数分のフレームのヘッダとフッタの受信時間とスレーブ台数分のフレーム間ギャップが含まれる。
これらヘッダ、フッタ、フレーム間ギャップといった通信のオーバヘッドは、各スレーブからのデータを送信するためには必ずしも必要ではないため、削減することで通信周期の短縮を実現できる。
上位装置と下位装置に接続され、前記下位装置からデータを受信し、前記上位装置にデータを送信する通信装置であって、
前記下位装置から送信された下位ペイロードデータを受信するデータ受信部と、
前記上位装置に送信するペイロードデータを自装置ペイロードデータとして生成するデータ生成部と、
前記データ生成部により生成された自装置ペイロードデータを格納するデータ格納部と、
所定のデータ送信タイミングごとに、前記データ格納部の自装置ペイロードデータと、前記データ受信部により受信された下位ペイロードデータとを連結するデータ連結部と、
前記自装置ペイロードデータと前記下位ペイロードデータとが連結されている送信データを前記上位装置に送信するデータ送信部とを有することを特徴とする。
まず、実施の形態1及び2で対象とするネットワークは、マスタを根とするツリートポロジーとする。
マスタは、通信周期をポートごとに定義する。
ネットワーク内の全スレーブには下記の手順でアドレスが付与されているとする。
(1)マスタから見て、最も深い葉のスレーブにアドレス1を割り付ける。
(2)直前にアドレスを割り付けたスレーブから最も近い節点のスレーブの手前のスレーブまで順番にアドレスを割り付ける。
(3)最後にアドレスを割り付けたスレーブの親にあたる節点のスレーブから見て、アドレス割付済みのスレーブを除き、最も深い葉のスレーブにアドレスを割り付け、(2)と同様、節点のスレーブの手前のスレーブまで順番にアドレスを割り付ける。
(4)最後にアドレスを割り付けたスレーブの親にあたる節点のスレーブに、子のスレーブがなくなったら、その節点のスレーブにアドレスを割り付け、(2)と同様、最も近い先祖の節点のスレーブの手前のスレーブまで順番にアドレスを割り付ける。
このとき、マスタ−スレーブ間の接続およびスレーブのアドレスは図3のようになる。
また、各スレーブは、各スレーブの枝に対して、子孫スレーブの接続されている各枝の最若アドレス(値が最も小さいアドレス)が大きい順に枝に1から番号を付ける。
例えば、スレーブS6については、スレーブS5に接続している枝が枝1となり、スレーブS4〜S1に接続している枝が枝2となる。
なお、親のマスタまたはスレーブと接続している枝には番号を付けない。
例えば、スレーブS6については、スレーブS13と接続している枝には番号を付けない。
この通信で使用するフレームは、図4のよう1つのフレームに複数のスレーブからの制御状態データを格納できるとする。
なお、フレームには、ヘッダ、フッタは必ずしも必要ではなく、制御状態データも該当するデータがない場合はその領域を確保せずフレームを短縮する。
さらに、簡略化のため、すべてのフレームのヘッダサイズ、フッタサイズは同じ値とする。
なお、予めマスタは、以下の情報を記憶しているとする。
(a)スレーブから最初のフレームを受信開始する時刻
(a)自身のアドレス
(b)自身の各枝の子孫のスレーブの最も若いアドレス(以下、最若アドレス)
(c)ヘッダデータサイズ
(d)自身の制御状態データサイズ
(e)それぞれの子のスレーブからの受信フレームのペイロードサイズ
(f)通信周期
(g)親のマスタまたはスレーブまでの伝搬遅延
(h)子のスレーブからの受信フレームのペイロードを受信してから送信フレーム内の同データ部を送信開始するまでの処理時間(以下、中継遅延)
(i)回線速度
(j)スレーブが送信処理を開始してから実際にスレーブからフレームの送信が開始されるまでの時間(以下、送信処理時間)
図1は実施の形態1に係るマスタ装置、スレーブ装置の構成図である。
各スレーブ2は、通信装置の例である。
また、各スレーブ2に接続されている装置のうちツリーにおいて根側の装置を上位装置とし、葉側の装置を下位装置という。
図1の例では、図の中央に示されているスレーブ2(大きく表示されているスレーブ2)については、マスタ1が上位装置となり、図の右端の各スレーブ2が下位装置となる。
なお、上位装置を親、下位装置を子とも表現する。また、直近の上位装置を含め、より根側(上流側)に位置する装置を祖先とも表現し、また、直近の下位装置を含め、より葉側(下流側)に位置する装置を子孫とも表現する。
マスタ1において、受信時刻通知部14は、スレーブから最初のフレームを受信開始する時刻を子のスレーブの送信時刻算出部23に通知する。
受信部10は、制御状態データを含むフレームを受信する。
つまり、フレーム連結部22は、ヘッダ生成部25からヘッダを入力し、データ格納部26から自身の制御状態データを入力し、フッタ評価部27から子のスレーブからのペイロード(子の制御状態データ)を入力し、ヘッダと自身の制御状態データと子の制御状態データを連結する。
なお、後述するフッタ付加部28においてフッタが付加されて送信フレームとなる。
また、フレーム連結部22は、自身の制御状態データと子のスレーブの制御状態データを連結し、自身の制御状態データと子のスレーブの制御状態データを送信フレームのペイロードとする。
フレーム連結部22は、データ連結部の例である。
また、自身の制御状態データは自装置ペイロードデータの例であり、子のスレーブの制御状態データは下位ペイロードデータの例である。
送信時刻算出部23は、複数の子のスレーブが存在する場合は、スレーブごとにシフトさせた受信開始時刻を算出する。
上述のように、複数の子のスレーブが存在する場合は、スレーブごとにシフトしている受信開始時刻が通知される(通知する受信開始時刻がスレーブごとにずれている)。
受信開始時刻は、送信時刻算出部23より通知される送信開始時刻、中継遅延、送信待ち合わせ時間、受信待ち合わせ時間から算出される。
送信待ち合わせ時間は、ヘッダデータサイズ、自身の制御状態データサイズ、それぞれの子のスレーブからの受信フレームのペイロードサイズより算出される、送信フレームの送信開始から送信フレーム内のそれぞれの子のスレーブからの受信フレームのペイロードを送信開始するまでの送信時間である。
また、受信待ち合わせ時間は、ヘッダデータサイズより算出される、子のスレーブからの受信フレームの受信開始から受信フレームのペイロードを受信開始するまでの受信時間である。
受信時刻通知部24は、算出された、それぞれの子のスレーブからのフレームの受信開始時刻をそれぞれの子のスレーブの送信時刻算出部23に通知する。
受信時刻通知部24は、タイミング通知部の例である。
また、フッタ評価部27は、受信した受信フレームをフレーム連結部22に送信しつつ、同じ送信フレームにペイロードを格納するすべての子のスレーブからの受信フレームのフッタの正否を評価し、フッタの正否をフッタ付加部28に通知する。
フッタはチェックサム符号といった誤り検出用データであり、フッタ評価部27は、ペイロード内のデータ誤りの有無を評価する。データ誤りがなければフッタが正しいという評価になり、データ誤りがある場合はフッタが正しくないという評価になる。
フッタ評価部27は、データ受信部の例である。
より具体的には、フッタ付加部28は、フレーム連結部22からの送信予定のフレームからフッタを除いたデータ列を入力し、また、フッタ評価部27からフッタの評価結果を入力する。
そして、フッタ付加部28は、フッタ評価部27のフッタ評価において、同じ送信フレームにペイロードを格納するすべての子のスレーブからの受信フレームのフッタが正しい時には正しいフッタを、そうでない場合は意図的に誤ったフッタを生成し、データ列に生成したフッタを付加したフレームを親のノードに送信する。
なお、フッタ付加部28が生成する正しいフッタとは、ペイロード中のデータ誤りの有無を親のノードが正確に判断できるフッタである。一方、誤ったフッタとは、ペイロード中にデータ誤りがあると親のノードが必ず判断することになるフッタである。
フッタ付加部28は、データ送信部の例である。
本実施の形態では、各スレーブの送信開始時刻を指定したあと、各スレーブが周期通信を実施する。
スレーブ2の受信時刻通知部24は、図7の関係より、送信時刻算出部23より通知される送信開始時刻Ttransmit_s0、中継遅延Trelay_s0、送信待ち合わせ時間Tdata_t_s1〜Tdata_t_sn、各枝からの受信フレームの受信待ち合わせ時間Tdata_r_s1〜Tdata_r_sn、すべての子のスレーブに子のスレーブからのフレームの受信開始時刻Treceive_s1〜Treceive_smを算出し、これをそれぞれの子のスレーブに通知する。
i番目の枝の子のスレーブからのフレームの受信開始時刻Treceive_siは下記の計算により算出できる。
Dheader:ヘッダデータサイズ
Ds0:自身の制御状態データサイズ
Dsl:l番目の枝の子のスレーブからの受信フレームのデータ部のサイズ
Tr:回線速度
なお、図7のスレーブ(S0)、スレーブ(S1)及びスレーブ(S2)の表記は、他の図とは関連していない。
スレーブ(S0)は、ヘッダに続けてスレーブ(S0)の制御状態を示すペイロードを送信する。また、スレーブ(S0)は上位装置へのフレームの送信と並行して、スレーブ(S1)及びスレーブ(S2)からのフレームの受信を行う。
より具体的には、上位装置へヘッダを送信しているときに並行してスレーブ(S1)からのフレームのヘッダの受信を開始し(Treceive_s1)、上位装置へペイロード(S0の制御状態)を送信している間にスレーブ(S1)からのヘッダの受信を完了し、スレーブ(S1)からのペイロード(S1の制御状態)の受信を開始する。
スレーブ(S1)からのヘッダの受信に要する時間が、Tdata_r_s1である。
また、上位装置へのヘッダの送信開始からペイロード(S0の制御状態)の送信完了までに要する時間(ペイロード(S1の制御状態)の送信が開始するまでの時間)が、Tdata_t_s1である。
また、ペイロード(S0の制御状態)の送信が完了すると、スレーブ(S1)からのペイロード(S1の制御状態)の受信と並行して、受信した部分から順にスレーブ(S1)からのペイロード(S1の制御状態)を上位装置に送信する。
スレーブ(S1)からのペイロード(S1の制御状態)の受信を開始してから上位装置への送信を開始するまでの時間がTrelay_s0である。
また、スレーブ(S0)は、スレーブ(S1)からのペイロード(S1の制御状態)を上位装置に送信している間に、スレーブ(S1)からのフッタを受信し、フッタの受信を完了する。
また、スレーブ(S0)は、ペイロード(S0の制御状態)の送信及びスレーブ(S1)からのペイロード(S1の制御状態)の受信と並行して、スレーブ(S2)からもフレームのヘッダの受信を開始する(Treceive_s2)。
スレーブ(S2)からのヘッダの受信に要する時間が、Tdata_r_s2である。
また、スレーブ(S0)は、スレーブ(S1)からのペイロード(S1の制御状態)の上位装置への送信が完了したら、スレーブ(S2)からのペイロード(S2からの制御状態)を受信しながら、受信した部分から順にスレーブ(S2)からのペイロード(S2からの制御状態)を上位装置に送信する。
スレーブ(S2)からのペイロード(S2の制御状態)の受信を開始してから上位装置への送信を開始するまでの時間がTrelay_s0である。
また、上位装置へのヘッダの送信開始からペイロード(S1の制御状態)の送信完了までに要する時間(ペイロード(S2の制御状態)の送信が開始するまでの時間)が、Tdata_t_s2である。
そして、スレーブ(S0)は、スレーブ(S2)からのペイロード(S2からの制御状態)の送信が完了すると、フッタを送信して1つのフレームの送信を完了する。
図9はフレーム連結部22の動作例(データ連結ステップ)を示し、図10はフッタ評価部27の動作例(データ受信ステップ)を示し、図11はフッタ付加部28の動作例(データ送信ステップ)を示す。
フッタ評価部27は、図10に示すように、子のスレーブからのフレームを受信し(S1001)、受信した受信フレームの複製を生成し、一方の受信フレームをフレーム連結部22に送信する(S1002)。
そして、フッタ評価部27は、他方の受信フレームを用いてフッタの正否を評価する(S1003)。より具体的には、フッタ評価部27は、送信フレームにペイロードを格納するすべての子のスレーブからの受信フレームのフッタの正否を評価する。
つまり、当該スレーブに複数の子のスレーブがパラレルに接続されている場合は、複数の受信フレームを受信することになるが、フッタ評価部27はこれら複数の受信フレームに含まれている子のスレーブの制御状態データを1つのフレームのペイロードとして統合するため、フレームごとにフッタの正否を評価する。
そして、フッタ評価部27は、フッタの正否の評価結果をフッタ付加部28に通知する(S1004)。
タイマ21からの送信タイミングの通知前に、ヘッダ生成部25は次の周期に送信するフレームのヘッダを生成している。また、同様に、データ生成部30も送信タイミングの通知前に、次の周期に送信する自身の制御状態データを生成し、データ格納部26に格納している(データ生成ステップ、データ格納ステップ)。
フレーム連結部22は、図9に示すように、タイマ21から送信タイミングを通知されると(S901)、ヘッダ生成部25からヘッダを読み出し(S902)、また、データ格納部26から自身の制御状態データを読み出す(S903)。
次に、フレーム連結部22は、ヘッダ生成部25から読み出したヘッダと、データ格納部26から読み出した自身の制御状態データを連結する(S904)。
また、フレーム連結部22は、フッタ評価部27から子のフレームを入力する度に(S905でYES)、入力したフレーム中の制御状態データを最後尾の制御状態データに連結する動作(S906)を繰り返しながら、ヘッダ、制御状態データを順にフッタ付加部28に出力する(S907)。フレーム連結部22からフッタ付加部28に出力されるデータ列は、親のスレーブ又はマスタに送信予定のフレームからフッタを除いたデータ列である。
また、前述したように、子のスレーブからは、送信タイミングに合わせてフレームが送信されるので、フレーム連結部22は、自身の制御状態データに子の制御状態データを連結できるタイミングでフッタ評価部27より子のスレーブからの制御状態データを受け取ることができる。
なお、子のフレームに含まれるヘッダは、フレーム連結部22、フッタ評価部27のいずれが取り除いてもよいが、フレーム連結部22からフッタ付加部28に出力されるデータ列には子のフレーム中のヘッダは含まれない。
そして、フレーム連結部22は、全てのデータ列をフッタ付加部28に出力するまでS905以降の処理を繰り返し、全てのデータ列を出力したら、処理を終了する。
また、フッタ付加部28は、フッタ評価部27からのフッタの評価結果を確認し(S1103)、同じ送信フレームにペイロードを格納するすべての子のスレーブからの受信フレームのフッタが正しい時(S1103でYES)には、フレーム連結部22から入力したデータ列に基づき、正しいフッタを生成し、生成した正しいフッタをデータ列に付加する(S1104)。
一方、いずれかのフッタが正しくないという評価結果の場合(S1103でNO)は、フッタ付加部28は、意図的に誤ったフッタを生成し、生成した誤ったフッタをデータ列に付加する(S1105)。
そして、フッタ付加部28は、フッタが付加されたフレームを親のノードに送信する(S1106)。
図5は、スレーブS4において枝が分岐しており、スレーブS2−スレーブS1に至る枝と、スレーブS3に至る枝の2つがある。
また、図5では、図の簡明化のために、上段では、スレーブS3からスレーブS4へのフレームとスレーブS4からマスタMへのフレームのみを表している。
しかしながら、実際には、スレーブS3からスレーブS4へのフレーム(S3制御情報が含まれる)の送信と並行して、スレーブS1からスレーブS2へフレーム(S1制御情報が含まれる)が送信され、スレーブS2からスレーブS4へフレーム(S1制御情報とS2制御情報が含まれる)が送信されている。図5の上段では、スレーブS1からスレーブS2へのフレーム、スレーブS2からスレーブS4へのフレームの図示を省略している。
スレーブS4は、自身の制御情報にスレーブS3から受信したS3制御情報とスレーブS2から受信したS2制御情報とS1制御情報を連結したフレームをマスタMに送信する。
同様に、図5の下段では、スレーブS1からスレーブS2へのフレーム、スレーブS2からスレーブS4へフレーム、スレーブS4からマスタMへのフレームのみを表しているが、並行してスレーブS3からスレーブS4へのフレーム送信が行われている(図5の下段では図示を省略している)。
Dheader:ヘッダデータサイズ
Dfooter:フッタデータサイズ
Dgap:フレーム間ギャップ
Dstatus_i:アドレスiのスレーブの制御状態データサイズ
n:スレーブ台数
だけ短縮できる。
(1)各スレーブに所定のアドレス割り付けを実施することで、スレーブは枝1に接続されているスレーブ台数を(自身のアドレス−枝1の最若アドレス)より算出でき、枝i(ただし、i≧2)に接続されているスレーブ台数を{枝(i−1)の最若アドレス−枝iの最若アドレス}より算出できる。この結果、各スレーブからの制御状態データサイズが同じである場合、受信フレームのペイロードサイズの管理が容易になる。
(2)子のスレーブからフッタの誤ったフレームを受信した場合、送信フレームのフッタを誤ったものにすることで、先祖のマスタもしくはスレーブにペイロードに誤ったデータが含まれている可能性を通知することができるようになる。
(3)マスタはフレームを受信完了した段階で、初めて各スレーブからの制御状態データを取り扱う。この結果、フレームの先頭に連結された制御状態データほど、取り扱いまでの時間は長く、データの鮮度が落ちる。また、階層の深いスレーブほど、中継遅延、伝搬遅延により送信から到達までにかかる時間が長くなり、同様にデータの鮮度が落ちる。定義した通信タイミングでは、階層の深いスレーブからの制御状態データほど、フレームの後部に連結されるため、突出して鮮度の低いデータがなくなる。この結果、ほぼ同タイミングでの制御状態データが得られるため、データ取得時刻なしでもスレーブ間の連動制御実施時の精度が向上する。
例えば、図5の例において、S1制御情報はスレーブS2、スレーブS4を経由してマスタMに到達するため、送信元のスレーブから送出された後マスタMに到達するまでの時間がS4制御情報に比べて長い。このため、スレーブ1はスレーブ1〜スレーブ4間の遅延を考慮した送信タイミングでS1制御情報を送信している。
ここで、図5の順序を代えて、例えば、スレーブS4からS1制御情報が最初に送信されるようにすると、スレーブ1は図5に示されるS1制御情報の送信タイミングよりも大幅に早期にS1制御情報を送信しなければならない。
しかしながら、本実施の形態では、スレーブS4からのペイロードの送信順序をS1制御情報を最後にし、スレーブS4にS1制御情報が受信する前にS4制御情報〜S2制御情報を送信することで、スレーブS1〜スレーブS4間の遅延を吸収し、突出して鮮度が低いデータが出るのを回避している。
ツリートポロジーを構成し、周期通信を実施するネットワークにおいて、
予め送信開始時刻、通信周期、すべての子の通信装置からの受信フレームのヘッダサイズ、ペイロードサイズを記憶しており、
送信開始時刻と通信周期と送信処理時間に従い、フレーム連結部に周期的に送信タイミングを通知するタイマと、
タイマから通知される送信タイミングで、送信タイミングに合わせて受信する子の通信装置からの受信フレームのペイロードを連結し、送信フレームとして送信するフレーム連結部
を備える通信装置を説明した。
送信開始時刻の算出のために、
予め親の通信装置までの伝搬遅延、子の通信装置からの受信フレームのペイロードを受信してから送信フレーム内の同データ部を送信開始するまでの処理時間、送信フレームのヘッダサイズを記憶しており、
親の通信装置までの伝搬遅延と、親の通信装置の受信時間通知部より通知される親の通信装置の受信開始時刻より、算出される送信開始時刻をタイマと受信時刻算出部に通知する送信時刻算出部と、
送信時刻算出部より通知される送信開始時刻と、
子の通信装置からの受信フレームのペイロードを受信してから送信フレーム内の同データ部を送信開始するまでの処理時間と、
送信フレームのヘッダサイズ、子の通信装置からの受信フレームのペイロードサイズより算出される、送信フレームの送信開始から送信フレーム内の子の通信装置からの受信フレームのペイロードを送信開始するまでの送信時間と、
子の通信装置からの受信フレームのヘッダサイズより算出される、子の通信装置からの受信フレームの受信開始から受信フレームのペイロードを受信開始するまでの受信時間から算出される受信開始時刻を、それぞれの子の通信装置の送信時刻算出部に通知する受信時刻通知部と、
送信時刻算出部より通知される送信開始時刻と通信周期と送信処理時間に従い、フレーム連結部に周期的に送信タイミングを通知するタイマ
を備える通信装置を説明した。
送信先アドレス、フレーム長等を含むヘッダを備えるフレームを取り扱うために、
予め親の通信装置のアドレス、送信フレームのヘッダサイズを記憶しており、
親の通信装置のアドレス、送信フレームのヘッダサイズ、子の通信装置からの受信フレームのペイロードサイズよりヘッダを生成するヘッダ生成部と、
タイマから通知される送信タイミングで、ヘッダ生成部から読み出したヘッダと送信タイミングに合わせて受信する子の通信装置からの受信フレームのペイロードを連結し、送信フレームとして送信するフレーム連結部
を備える通信装置を説明した。
自身からの通信を実現するために、
自身の送信データを格納するデータ格納部と、
タイマから通知される送信タイミングで、データ格納部から読み出した自身の送信データと送信タイミングに合わせて受信する子の通信装置からの受信フレームのペイロードを連結し、送信フレームとして送信するフレーム連結部
を備える通信装置を説明した。
チェックサム符号等を含むフッタを備えるフレームを取り扱うために、
子のスレーブからの受信フレームをフレーム連結部に送信しつつ、同じ送信フレームにペイロードを格納するすべての子のスレーブからの受信フレームのフッタの正否を評価し、フッタの正否をフッタ付加部に通知するフッタ評価部と、
タイマから通知される送信タイミングで、送信タイミングに合わせてフッタ評価部より送信される子の通信装置からの受信フレームのペイロードを連結した送信予定のフレームからフッタ部を除いたデータ列を、フッタ付加部に送信するフレーム連結部と、
フレーム連結部からの送信予定のフレームからフッタ部を除いたデータ列に、フッタ評価部からのフッタの正否に応じて、同じ送信フレームにペイロードを格納するすべての子のスレーブから受信したフレームのフッタが正しい時には正しいフッタを、そうでない場合は意図的に誤ったフッタを生成しつつ、データ列に生成したフッタを付加したフレームを送信するフッタ付加部
を備える通信装置を説明した。
以上の実施の形態1では、中継を実施するスレーブでは各スレーブの通信タイミングを定義し、スレーブ内でフレームをバッファリングさせずに1つのフレームとして連結し、送信する方法であった。
本実施の形態では、次に予め子のスレーブからフレームを受信しておき、タイマの指定する送信タイミングで、フレームを送信する例を示す。
図1と同じ符号の要素は、図1で示したものと同様であるため説明を省略する。
図2では、子のスレーブからの1周期分のフレームを格納するバッファ29が追加されている。バッファ29はデータ蓄積部の例である。
本実施の形態では、タイマ21は、任意のタイミングで開始する通信周期に従い、フレーム連結部22に送信タイミングを通知する。
また、フレーム連結部22は、タイマ21から通知される送信タイミングで、バッファ29に格納されている子のスレーブからの受信フレームのペイロードとデータ格納部26から読み出した自装置の制御状態データとヘッダ生成部25から読み出したヘッダを連結し、連結したデータ列をフッタ付加部28に出力する。
また、本実施の形態では、送信時刻算出部23と受信時刻通知部24は不要となる。
図12は本実施の形態に係るフレーム連結部22の動作(データ連結ステップ)を示し、図13は本実施の形態に係るフッタ評価部27の動作(データ受信ステップ)を示す。
なお、図12において図9と同じステップ番号が付されているステップは図9と同じ処理が行われ、また、図13において図10と同じステップ番号が付されているステップは図10と同じ処理が行われる。
また、フッタ付加部28の動作(データ送信ステップ)は実施の形態1で示した図11と同様である。
フレームを受信した親のスレーブのフッタ評価部27は(S1001)、子のスレーブからの受信フレームを複製し、一方のフレームをバッファ29に送信し(S1301)、他方のフレームを用いてフッタの正否を評価する(S1003)。この処理は、実施の形態1と同様に、同じ送信フレームにペイロードを格納するすべての子のスレーブからの受信フレームのフッタの正否を評価する。
その後、フッタ評価部27は、フッタの正否の評価結果をフッタ付加部28に通知する(S1004)。
タイマ21からの送信タイミングの通知前に、ヘッダ生成部25は次の周期に送信するフレームのヘッダを生成している。また、同様に、データ生成部30も送信タイミングの通知前に、次の周期に送信する自身の制御状態データを生成し、データ格納部26に格納している(データ生成ステップ、データ格納ステップ)。
フレーム連結部22は、図12に示すように、タイマ21から送信タイミングを通知されると(S901)、ヘッダ生成部25からヘッダを読み出し(S902)、また、データ格納部26から自身の制御状態データを読み出す(S903)。
次に、フレーム連結部22は、バッファ29から子のスレーブからの受信フレームの受信を開始する(S1201)。
そして、フレーム連結部22は、ヘッダ生成部25から読み出したヘッダと、データ格納部26から読み出した自身の制御状態データとバッファ29から読み出した子のスレーブからの受信フレームのペイロードを順番に連結する(S1202)。
最後に、フレーム連結部22は、連結したデータ列をフッタ付加部28に出力する(S907)。フレーム連結部22からフッタ付加部28に出力されるデータ列は、親のスレーブ又はマスタに送信予定のフレームからフッタを除いたデータ列である。
また、本実施の形態によれば、送信開始時刻を厳密に管理しなくても、短縮した周期通信を実現することができる。
厳密な送信時刻管理を回避するために、
予め通信周期を記憶しており、
通信周期に従い、フレーム連結部に周期的に送信タイミングを通知するタイマと
子の通信装置からの受信フレームを格納するバッファと、
タイマから通知される送信タイミングで、バッファから子の通信装置からのすべての受信フレームを読み出し、子の通信装置からのすべての受信フレームのペイロードを連結し、送信フレームとして送信するフレーム連結部
を備える通信装置を説明した。
図14は、実施の形態1及び2に示すスレーブ装置2のハードウェア資源の一例を示す図である。
なお、図14の構成は、あくまでもスレーブ装置2のハードウェア構成の一例を示すものであり、スレーブ装置2のハードウェア構成は図14に記載の構成に限らず、他の構成であってもよい。
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と接続していてもよい。また、磁気ディスク装置920の代わりに、フラッシュメモリ、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態1及び2で説明した「データ格納部」及び実施の形態2で説明した「バッファ」は、RAM914、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921を利用しながら実行する。
プログラム群923のプログラムには、例えば、ラダープログラムが含まれる。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
スレーブ装置2の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1及び2で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
すなわち、実施の形態1及び2で説明したフローチャートに示すステップ、手順、処理により、本発明に係る通信方法を実現することができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1及び2の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1及び2の「〜部」の手順や方法をコンピュータに実行させるものである。
Claims (9)
- 上位装置と下位装置に接続され、前記下位装置からデータを受信し、前記上位装置にデータを送信する通信装置であって、
前記下位装置から送信された下位ペイロードデータと、前記下位ペイロードデータのデータ誤り検出のためのフッタデータとを受信し、前記フッタデータを用いて前記下位ペイロードデータにおけるデータ誤りの有無を判断するデータ受信部と、
前記上位装置に送信するペイロードデータを自装置ペイロードデータとして生成するデータ生成部と、
前記データ生成部により生成された自装置ペイロードデータを格納するデータ格納部と、
所定のデータ送信タイミングごとに、前記データ格納部の自装置ペイロードデータと、前記データ受信部により受信された下位ペイロードデータとを連結するデータ連結部と、
前記データ受信部により前記下位ペイロードデータにデータ誤りがないと判断された場合に、前記上位装置が前記自装置ペイロードデータと前記下位ペイロードデータにおけるデータ誤りの有無を正確に判断できる新たなフッタデータを生成し、前記データ受信部により前記下位ペイロードデータにデータ誤りがあると判断された場合に、前記上位装置が前記自装置ペイロードデータと前記下位ペイロードデータにデータ誤りが存在すると判断することになる新たなフッタデータを生成し、生成した新たなフッタデータを前記自装置ペイロードデータと前記下位ペイロードデータに連結し、前記自装置ペイロードデータと前記下位ペイロードデータと前記新たなフッタデータとが連結されている送信データを前記上位装置に送信するデータ送信部とを有することを特徴とする通信装置。 - 上位装置と下位装置に接続され、前記下位装置からデータを受信し、前記上位装置にデータを送信する通信装置であって、
前記下位装置から送信された下位ペイロードデータを受信するデータ受信部と、
前記上位装置に送信するペイロードデータを自装置ペイロードデータとして生成するデータ生成部と、
前記データ生成部により生成された自装置ペイロードデータを格納するデータ格納部と、
所定のデータ送信タイミングごとに、前記データ格納部の自装置ペイロードデータと、前記データ受信部により受信された下位ペイロードデータとを連結するデータ連結部と、
前記自装置ペイロードデータと前記下位ペイロードデータとが連結されている送信データを前記上位装置に送信するデータ送信部とを有し、
前記データ受信部は、
データ送信タイミング時の前記データ連結部の処理と並行して前記下位装置から下位ペイロードデータを受信し、
前記データ連結部は、
データ送信タイミングごとに、前記データ格納部から前記自装置ペイロードデータを読み出すとともに、自身の処理と並行して前記データ受信部により受信された下位ペイロードデータを前記自装置ペイロードデータに連結し、
前記通信装置は、更に、
前記データ受信部が前記データ連結部の処理に並行して下位ペイロードデータを受信できるタイミングを前記下位装置に受信要求タイミングとして通知し、通知した受信要求タイミングに適合させた下位ペイロードデータの送信を前記下位装置に行わせるタイミング通知部を有することを特徴とする通信装置。 - 前記データ受信部は、
前記下位装置から、前記下位ペイロードデータにヘッダデータが付加されている下位フレームデータを受信し、
前記データ連結部は、
データ送信タイミングごとに、前記下位フレームデータに付加されているヘッダデータとは異なる新たなヘッダデータと、前記データ格納部の自装置ペイロードデータと、前記下位フレームデータ内の前記下位ペイロードデータとを連結し、
前記データ送信部は、
前記新たなヘッダデータと前記自装置ペイロードデータと前記下位ペイロードデータと前記新たなフッタデータとが連結されている送信データを前記上位装置に送信することを特徴とする請求項1に記載の通信装置。 - 前記通信装置は、
複数の下位装置に接続されており、
前記データ受信部は、
データ送信タイミング時の前記データ連結部の処理と並行して前記複数の下位装置から複数の下位ペイロードデータを受信し、
前記データ連結部は、
データ送信タイミングごとに、前記データ格納部から前記自装置ペイロードデータを読み出すとともに、自身の処理と並行して前記データ受信部により受信された複数の下位ペイロードデータを前記自装置ペイロードデータに連結することを特徴とする請求項2に記載の通信装置。 - 前記通信装置は、更に、
前記データ受信部が前記データ連結部の処理に並行して下位ペイロードデータを受信できるタイミングを下位装置ごとにシフトさせて下位装置ごとに受信要求タイミングとして通知し、通知した受信要求タイミングに適合させた下位ペイロードデータの送信をそれぞれの下位装置に行わせるタイミング通知部を有することを特徴とする請求項4に記載の通信装置。 - 前記通信装置は、更に、
前記データ受信部により受信された下位ペイロードデータを蓄積するデータ蓄積部を有し、
前記データ連結部は、
データ送信タイミングごとに、データ送信タイミング時点で前記データ蓄積部に蓄積されている下位ペイロードデータと前記データ格納部の自装置ペイロードデータとを連結することを特徴とする請求項1又は2に記載の通信装置。 - 前記データ受信部は、
前記下位装置で生成されたペイロードデータと前記下位装置に接続しているより下位の装置で生成されたペイロードデータが含まれている下位ペイロードデータを受信することを特徴とする請求項1又は2に記載の通信装置。 - 前記通信装置は、
複数の下位装置に接続されており、
前記データ受信部は、
前記複数の下位装置から複数の下位ペイロードデータを受信し、
前記データ連結部は、
データ送信タイミングごとに、前記データ格納部の自装置ペイロードデータと前記受信部により受信された複数の下位ペイロードデータとを連結することを特徴とする請求項1又は2に記載の通信装置。 - コンピュータを、請求項1又は2に記載された通信装置として機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010035946A JP5393528B2 (ja) | 2010-02-22 | 2010-02-22 | 通信装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010035946A JP5393528B2 (ja) | 2010-02-22 | 2010-02-22 | 通信装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011172142A JP2011172142A (ja) | 2011-09-01 |
JP5393528B2 true JP5393528B2 (ja) | 2014-01-22 |
Family
ID=44685768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010035946A Active JP5393528B2 (ja) | 2010-02-22 | 2010-02-22 | 通信装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5393528B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020178879A1 (ja) * | 2019-03-01 | 2020-09-10 | 三菱電機株式会社 | スレーブ装置およびスレーブプログラム |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5866101B2 (ja) * | 2012-04-20 | 2016-02-17 | 三菱電機株式会社 | 中継装置及び中継方法及びプログラム |
JP2017063390A (ja) * | 2015-09-25 | 2017-03-30 | トヨタ自動車株式会社 | 通信方法 |
CN111083208B (zh) | 2019-12-03 | 2022-10-28 | 华为技术有限公司 | 网络结构、网络中网元之间的报文发送方法及接收方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3852067B2 (ja) * | 1999-06-08 | 2006-11-29 | 株式会社山武 | 通信システム |
DE102006013872A1 (de) * | 2006-03-23 | 2007-09-27 | Robert Bosch Gmbh | Verfahren und System zum Übertragen von Daten |
JP4343212B2 (ja) * | 2006-11-27 | 2009-10-14 | ファナック株式会社 | データ送受信方式 |
JP4621837B2 (ja) * | 2008-07-10 | 2011-01-26 | 国立大学法人名古屋大学 | 中継装置、通信システム及び通信方法 |
JP5455684B2 (ja) * | 2010-01-29 | 2014-03-26 | 三菱電機株式会社 | 通信装置及び通信方法及びプログラム |
-
2010
- 2010-02-22 JP JP2010035946A patent/JP5393528B2/ja active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020178879A1 (ja) * | 2019-03-01 | 2020-09-10 | 三菱電機株式会社 | スレーブ装置およびスレーブプログラム |
CN113519142A (zh) * | 2019-03-01 | 2021-10-19 | 三菱电机株式会社 | 从站装置及从站程序 |
DE112019006762T5 (de) | 2019-03-01 | 2021-10-28 | Mitsubishi Electric Corporation | Slave-vorrichtung und slave-programm |
Also Published As
Publication number | Publication date |
---|---|
JP2011172142A (ja) | 2011-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6408461B2 (ja) | デバイスを同期するための機構、システム、及び方法 | |
JP5255579B2 (ja) | 車内データ中継装置、車両制御システム | |
KR101745456B1 (ko) | HiL 시뮬레이션 환경에서 대용량 데이터를 전송하기 위한 전자제어 장치, 이를 포함하는 시스템 및 그 방법 | |
JP5393528B2 (ja) | 通信装置及びプログラム | |
JP2009225441A (ja) | 通信装置におけるデータ検索装置及びゲートウェイ装置 | |
JP2018056682A (ja) | 通信方法 | |
JP2009246453A (ja) | エミュレータ装置 | |
US9955402B2 (en) | Information processing method, communications method, communications node, system, and computer product | |
US20180241700A1 (en) | Transfer device, transfer system, and transfer method | |
US10728178B2 (en) | Apparatus and method for distribution of congestion information in a switch | |
US9210093B2 (en) | Alignment circuit and receiving apparatus | |
JP2005086683A (ja) | 誤り復号回路、データバス制御方法、及びデータバスシステム | |
CN113821076B (zh) | 基于虚拟时钟的虚拟仿真系统及同步方法 | |
JP5376990B2 (ja) | 中継装置および中継装置の中継方法 | |
CN110548285B (zh) | 游戏通信控制方法及装置、介质及电子设备 | |
US10397174B2 (en) | Message delivery in a message system | |
JP3834318B2 (ja) | データ駆動プロセッサ用のデータ入力装置、データ出力装置およびそれらの方法 | |
JP2016146605A (ja) | 車載通信装置 | |
US10067816B2 (en) | Model checking apparatus and method, and storage medium having program stored therein | |
KR101748080B1 (ko) | 해양 IoT 플랫폼을 위한 CAN 버스 기반의 데이터 송수신 시스템 및 방법 | |
CN115250251B (zh) | 片上网络仿真中的传输路径规划方法、装置、电子设备及计算机可读存储介质 | |
CN116107666B (zh) | 程序业务流信息生成方法、装置、电子设备和计算机介质 | |
CN116346711B (zh) | 基于行为树的路由协议表征方法、介质及通信方法 | |
JP2019046379A (ja) | 計算ノード装置、並列計算機システム、および計算ノード装置の制御方法 | |
JP2012010108A (ja) | データ処理回路及びデータ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120914 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130710 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130730 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130828 |
|
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: 20130917 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131015 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5393528 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
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 |