(57)【要約】【課題】スレーブがマスタから送信された指令データへの応答データを同一アイソクロナスサイクル内に安定して送信し、異常の場合、マスタが次のアイソクロナスサイクルで指令データを再送できるようにする。【解決手段】  マスタ１０に、マスタ指令データバッファ１０３０または再送用指令データバッファ１０３２に格納された指令データをスレーブ２１にアイソクロナス・ストリームで送信するマスタ送信処理部１０１０と、アイソクロナスサイクル内にリセットされない時はタイムアップとなる応答データ受信監視タイマ１０２１を備え、スレーブ２１に、応答データをマスタから指令データを受信した同一アイソクロナスサイクル内にアシンクロナス・ストリームで送信するスレーブ送信処理部２０１０を備える。【選択図】図１
2006254290.tif 000002
【特許請求の範囲】
【請求項１】
ＩＥＥＥ１３９４の通信データを送受信するマスタＩＥＥＥ１３９４通信部と、
前記通信データの演算や監視を行うマスタ情報処理部と、
前記通信データを格納するマスタ記憶部とを有し、
該マスタ記憶部に、スレーブから受信した応答データを格納するマスタ応答データバッファと、
前記スレーブに対し送信する指令データを格納するマスタ指令データバッファとを有するマスタと、
前記ＩＥＥＥ１３９４の通信データを送受信するスレーブＩＥＥＥ１３９４通信部と、
前記通信データの演算や監視を行うスレーブ情報処理部と、
前記通信データを格納するスレーブ記憶部を有し、
該スレーブ記憶部に、前記マスタから受信した指令データを格納するスレーブ指令データバッファと、
前記マスタに送信する応答データを格納するスレーブ応答データバッファを有する少なくとも１つのスレーブがＩＥＥＥ１３９４ネットワークで接続されたマスタ―スレーブ通信システムにおいて、
前記マスタＩＥＥＥ１３９４通信部に、前記スレーブからの応答データを受信するマスタ受信処理部と、
前記マスタ指令データバッファまたは前記再送用指令データバッファに格納された指令データを前記スレーブにアイソクロナス・ストリームで送信するマスタ送信処理部とを備え、
前記マスタ情報処理部に、前記マスタ送信処理部からの送信通知により起動し、前記マスタ受信処理部の受信通知によりリセットされ、アイソクロナスサイクル内にリセットされないときはタイムアップとなる応答データ受信監視タイマと、
前記スレーブからの応答データが正常であったかどうかを判定し、判定結果を前記マスタ送信処理部に通知する応答データ受信判定部とを備え、
前記マスタ記憶部に、前記スレーブが異常受信したときに再送するデータを格納する再送用指令データバッファと、
前記複数のスレーブが異常受信したときにデータを再送するスレーブの情報を格納する再送対象スレーブ一覧とを備え、
前記スレーブＩＥＥＥ１３９４通信部に、前記マスタからの指令データを受信するスレーブ受信処理部と、
前記スレーブ応答データバッファに格納された前記マスタへの応答データを前記マスタから指令データを受信した同一アイソクロナス内にアシンクロナス・ストリームで送信するスレーブ送信処理部とを備え、
前記スレーブ情報処理部に、所定の時間内に前記受信処理部から受信通知がないとタイムアップする指令データ受信監視タイマと、
前記マスタからの指令データが正常であったかどうかを判定し、判定結果を前記スレーブ送信処理部に通知する指令データ受信判定部を備えることを特徴とするマスタ―スレーブ通信システム。
【請求項２】
前記スレーブは、前記マスタへの応答データを、マスタからの指令データを正常受信した場合のみ送信することを特徴とする請求項１記載のマスタ−スレーブ通信システム。
【請求項３】
前記スレーブは、前記マスタへの応答データを、マスタからの指令データを異常受信した場合のみ送信することを特徴とする請求項１記載のマスタ−スレーブ通信システム。
【請求項４】
前記スレーブは、前記マスタへの応答データを、マスタからの指令データを正常受信した場合も異常受信した場合も送信することを特徴とする請求項１記載のマスタ−スレーブ通信システム。
【請求項５】
前記マスタと前記スレーブが１対１で接続されている場合、
前記マスタは、前記スレーブの異常受信を検出した場合、前記スレーブが異常受信したデータを送信したアイソクロナスサイクルの次のアイソクロナスサイクルで前回前記スレーブに指令した指令データを再送する手段を備えることを特徴とする請求項１記載のマスタ−スレーブ通信システム。
【請求項６】
前記マスタと前記スレーブが１対Ｎで接続されている場合、
前記マスタは、前記Ｎ局のスレーブに指令データ送信用に割り当てたＮ個のアイソクロナスサイクルと、前記指令データ再送用に割り当てた１つ以上のアイソクロナスサイクルとからなる通信周期で定周期通信を行う手段を備えることを特徴とする請求項１記載のマスタ−スレーブ通信システム。
【請求項７】
ＩＥＥＥ１３９４の通信データを送受信するマスタＩＥＥＥ１３９４通信部と、
前記通信データの演算や監視を行うマスタ情報処理部と、
前記通信データを格納するマスタ記憶部とを有するマスタと、
前記ＩＥＥＥ１３９４の通信データを送受信するスレーブＩＥＥＥ１３９４通信部と、
前記通信データの演算や監視を行うスレーブ情報処理部と、
前記通信データを格納するスレーブ記憶部とを有する少なくとも１つのスレーブがＩＥＥＥ１３９４ネットワークで接続されたマスタ−スレーブ通信システムの通信方法において、
前記マスタは、前記スレーブへの指令データをアイソクロナス・ストリームで送信し、
前記スレーブは、前記マスタへの応答データを前記マスタから指令データを受信した同一アイソクロナスサイクル内にアシンクロナス・ストリームで送信することを特徴とするマスタ−スレーブ通信システムの通信方法。
【請求項８】
前記スレーブは、前記マスタへの応答データを、マスタからの指令データを正常受信した場合のみ送信することを特徴とする請求項７記載のマスタ−スレーブ通信システムの通信方法。
【請求項９】
前記スレーブは、前記マスタへの応答データを、マスタからの指令データを異常受信した場合のみ送信することを特徴とする請求項７記載のマスタ−スレーブ通信システムの通信方法。
【請求項１０】
前記スレーブは、前記マスタへの応答データを、マスタからの指令データを正常受信した場合も異常受信した場合も送信することを特徴とする請求項７記載のマスタ−スレーブ通信システムの通信方法。
【請求項１１】
前記マスタと前記スレーブが１対１で接続されている場合、
前記マスタは、前記スレーブの１つ前のアイソクロナスサイクルの正常受信を検出するステップと、
正常受信した場合は、今回用指令データを送信するステップと、
異常受信した場合は、１つ前のアイソクロナスサイクルで送信した前回用指令データを再送信するステップと、
応答データ受信監視タイマを起動するステップと、
今回のアイソクロナスサイクルの正常受信を検出するステップと、
正常受信を検出した場合前記応答データ受信監視タイマを停止し応答データを保存するステップと、
正常受信を前記応答データ受信判定部に通知するステップと、
正常受信を検出しない場合前記応答データ受信監視タイマを監視するステップと、
前記応答データ受信監視タイマがタイムアップしたとき、異常受信を前記応答データ受信判定部に通知するステップを備えることを特徴とする請求項７記載のマスタ−スレーブ通信システムの通信方法。
【請求項１２】
前記マスタと前記スレーブが１対Ｎで接続されている場合、
前記マスタは、今回のアイソクロナスサイクルが指令送信用アイソクロナスサイクルかどうかチェックするステップと、
指令送信用アイソクロナスサイクルの場合、通信周期先頭のアイソクロナスサイクルであれば、異常受信が発生しデータの再送が必要な前記スレーブを記憶している再送対象スレーブ一覧をクリアするステップと、
送信先スレーブに今回用指令データを送信するステップと、
今回のアイソクロナスサイクルが指令送信用アイソクロナスサイクルでない場合、再送対象スレーブがあるかどうか判別するステップと、
前記再送対象スレーブがあった場合、該再送対象スレーブに１つ前のアイソクロナスサイクルで送信した前回用指令データを再送信するステップと、
応答データ受信監視タイマを起動するステップと、
今回のアイソクロナスサイクルの正常受信を検出するステップと、
正常受信を検出した場合前記応答データ受信監視タイマを停止し応答データを保存するステップと、
正常受信を前記応答データ受信判定部に通知するステップと、
正常受信を検出しない場合前記応答データ受信監視タイマを監視するステップと、
前記応答データ受信監視タイマがタイムアップしたとき、当該スレーブを前記再送対象スレーブ一覧に登録するステップと、
異常受信を前記応答データ受信判定部に通知するステップを備えることを特徴とする請求項７記載のマスタ−スレーブ通信システムの通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＥＥＥ１３９４ネットワークに接続されたマスタとスレーブからなるマスタ−スレーブ通信システムおよび通信方法に関する。
【背景技術】
【０００２】
図７は従来のマスタ―スレーブ通信システムの構成を示す図である。
図７に示すような、ＩＥＥＥ１３９４ネットワークに接続された１つのマスタとＮ個のスレーブとで通信データの送受信を行うマスタ―スレーブ通信システムにおいて、マスタからスレーブへの指令データとスレーブからマスタへの応答データの転送に帯域の保証が必要な場合、１２５μｓ毎のデータ転送が保証されるアイソクロナス転送が使用される。
しかしながら、アイソクロナス転送はマスタが送信した指令データをスレーブが全て受信されるかどうか、同様にスレーブが送信した応答データをマスタに全て受信されるかどうかの保証はないため、通信ノイズなどの影響によりデータ欠損が生じる恐れがある。
このようなデータ欠損を回避するための技術が特許文献１において開示されている。
特許文献１ではＩＥＥＥ１３９４で１対１に接続されたプリンタコントローラとプリンタとの送受信を例としているが、プリンタコントローラ、プリンタ、画像データ、アシンクロナス転送による受信結果の通知は、それぞれ本発明のマスタ、スレーブ、指令データ、応答データに相当する。
特許文献１ではスレーブがｎ番目のアイソクロナスサイクルに受信した指令データの受信結果をマスタに通知するのに、（ｎ＋１）番目のアイソクロナスサイクルでアシンクロナス転送を行い、スレーブから異常受信を通知された場合、次の（ｎ＋２）番目のアイソクロナスサイクルで指令データを再送している。
【特許文献１】特開２００３−１１０５６５号公報（８頁、図６）
【０００３】
このことを、図を用いて説明する。
図８は従来の通信タイミングを示す図であり、マスタとスレーブが１対１で接続されたマスタ―スレーブ通信システムにおいて指令データを再送する場合の例である。図８では、マスタ−スレーブ間のアイソクロナスサイクルｍ〜（ｍ＋３）の４アイソクロナスサイクル分の通信が示されている。本例ではマスタをＩＥＥＥ１３９４のサイクルマスタとしているため、各アイソクロナスサイクルの先頭でマスタがサイクルスタートパケットを送信しているが、スレーブがサイクルマスタとなった場合も、本質的には同じである。マスタはサイクルスタートパケット送信後、アイソクロナスギャップの無通信状態経過後、指令データをアイソクロナス転送にて送信する。スレーブは指令データ受信後、サブアクションギャップの無通信状態経過後、アシンクロナス転送にて１つ前の指令データに対する受信結果をマスタに通知する。
【０００４】
図８では、アイソクロナスサイクルｍの指令データｎでスレーブが異常受信を検出し、次のアイソクロナスサイクル（ｍ＋１）でアシンクロナス転送帯域の応答データｎにて異常受信をマスタに通知している。応答データｎを受信したマスタは、アイソクロナスサイクル（ｍ＋２）で指令データｎの再送である指令データｎｒを送信する。指令データｎｒに対するスレーブの受信結果は、アイソクロナスサイクル（ｍ＋３）のアシンクロナス転送帯域の応答データｎｒにて通知される。
このように、従来の方法では指令データを送信した次のアイソクロナスサイクルで受信結果を通知し、さらに次のサイクルで指令データを再送するという手順がとられていた。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１において開示されている技術では、スレーブからマスタへ異常受信を通知するのに、指令データ受信の次のアイソクロナスサイクルを使用しているため、指令データの再送に１サイクルの遅れ、再送の正常受信を通知するのに更に１アイソクロナスサイクルの遅れが発生する。さらに、スレーブからマスタへの異常受信通知にアシンクロナス転送を用いている為、ＡＣＫやレスポンスパケットの転送、およびそれに伴うギャップが生じ、アシンクロナス帯域を圧迫する。その結果、次のアイソクロナスサイクルのサイクルスタートパケットの転送タイミングに揺らぎが発生するという問題があった。
また、マスタが複数のアイソクロナスサイクルからなる通信周期でＮ局のスレーブとサイクリックな通信を行うシステムに本技術を応用した場合、通信周期内で最終スレーブ宛ての指令データに対して１回の再送とその応答確認まで実現するには、最終スレーブへの指令データ送信後少なくとも３アイソクロナスサイクルを確保しなけらばならないという問題がある。加えて通信周期を構成するアイソクロナスサイクル数と再送が発生したスレーブ局数によってはスレーブの指令データ送信が通信周期内に完了しなくなるという問題があった。
本発明はこのような問題点に鑑みてなされたものであり、マスタから送信された指令データへの応答データをスレーブが同一アイソクロナスサイクル内に安定して送信し、異常の場合、マスタが次のアイソクロナスサイクルで指令データを再送できるようにすると共に、マスタがＮ局のスレーブと複数のアイソクロナスサイクルからなる定周期通信を行う場合、通信周期を超えることなく同一通信周期内の指令データの再送ができる伝送効率の高いマスタ−スレーブ通信システムおよび通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記問題を解決するため、本発明のマスタ−スレーブ通信システムは、ＩＥＥＥ１３９４の通信データを送受信するマスタＩＥＥＥ１３９４通信部と、前記通信データの演算や監視を行うマスタ情報処理部と、前記通信データを格納するマスタ記憶部とを有し、該マスタ記憶部に、スレーブから受信した応答データを格納するマスタ応答データバッファと、前記スレーブに対し送信する指令データを格納するマスタ指令データバッファとを有するマスタと、前記ＩＥＥＥ１３９４の通信データを送受信するスレーブＩＥＥＥ１３９４通信部と、前記通信データの演算や監視を行うスレーブ情報処理部と、前記通信データを格納するスレーブ記憶部を有し、該スレーブ記憶部に、前記マスタから受信した指令データを格納するスレーブ指令データバッファと、前記マスタに送信する応答データを格納するスレーブ応答データバッファを有する少なくとも１つのスレーブがＩＥＥＥ１３９４ネットワークで接続されたマスタ―スレーブ通信システムにおいて、前記マスタＩＥＥＥ１３９４通信部に、前記スレーブからの応答データを受信するマスタ受信処理部と、前記マスタ指令データバッファまたは前記再送用指令データバッファに格納された指令データを前記スレーブにアイソクロナス・ストリームで送信するマスタ送信処理部とを備え、前記マスタ情報処理部に、前記マスタ送信処理部からの送信通知により起動し、前記マスタ受信処理部の受信通知によりリセットされ、アイソクロナスサイクル内にリセットされないときはタイムアップとなる応答データ受信監視タイマと、前記スレーブからの応答データが正常であったかどうかを判定し、判定結果を前記マスタ送信処理部に通知する応答データ受信判定部とを備え、前記マスタ記憶部に、前記スレーブが異常受信したときに再送するデータを格納する再送用指令データバッファと、前記複数のスレーブが異常受信したときにデータを再送するスレーブの情報を格納する再送対象スレーブ一覧とを備え、前記スレーブＩＥＥＥ１３９４通信部に、前記マスタからの指令データを受信するスレーブ受信処理部と、前記スレーブ応答データバッファに格納された前記マスタへの応答データを前記マスタから指令データを受信した同一アイソクロナス内にアシンクロナス・ストリームで送信するスレーブ送信処理部とを備え、前記スレーブ情報処理部に、所定の時間内に前記受信処理部から受信通知がないとタイムアップする指令データ受信監視タイマと、前記マスタからの指令データが正常であったかどうかを判定し、判定結果を前記スレーブ送信処理部に通知する指令データ受信判定部を備えることを特徴としている。
また、前記スレーブは、前記マスタへの応答データを、マスタからの指令データを正常受信した場合のみ送信することを特徴としている。
また、前記スレーブは、前記マスタへの応答データを、マスタからの指令データを異常受信した場合のみ送信することを特徴としている。
また、前記スレーブは、前記マスタへの応答データを、マスタからの指令データを正常受信した場合も異常受信した場合も送信することを特徴としている。
【０００７】
また、前記マスタと前記スレーブが１対１で接続されている場合、前記マスタは、前記スレーブの異常受信を検出した場合、前記スレーブが異常受信したデータを送信したアイソクロナスサイクルの次のアイソクロナスサイクルで前回前記スレーブに指令した指令データを再送する手段を備えることを特徴としている。
また、前記マスタと前記スレーブが１対Ｎで接続されている場合、前記マスタは、前記Ｎ局のスレーブに指令データ送信用に割り当てたＮ個のアイソクロナスサイクルと、前記指令データ再送用に割り当てた１つ以上のアイソクロナスサイクルとからなる通信周期で定周期通信を行う手段を備えることを特徴としている。
【０００８】
また、本発明のマスタ−スレーブ通信システムの通信方法は、ＩＥＥＥ１３９４の通信データを送受信するマスタＩＥＥＥ１３９４通信部と、前記通信データを演算や監視を行うマスタ情報処理部と、前記通信データを格納するマスタ記憶部とを有するマスタと、前記ＩＥＥＥ１３９４の通信データを送受信するスレーブＩＥＥＥ１３９４通信部と、前記通信データを演算や監視を行うスレーブ情報処理部と、前記通信データを格納するスレーブ記憶部とを有する少なくとも１つのスレーブがＩＥＥＥ１３９４ネットワークで接続されたマスタ−スレーブ通信システムの通信方法において、前記マスタは、前記スレーブへの指令データをアイソクロナス・ストリームで送信し、前記スレーブは、前記マスタへの応答データをマスタから指令データを受信した同一アイソクロナスサイクル内にアシンクロナス・ストリームで送信することを特徴としている。
また、前記スレーブは、前記マスタへの応答データを、前記マスタからの指令データを正常受信した場合のみ送信することを特徴としている。
また、前記スレーブは、前記マスタへの応答データを、マスタからの指令データを異常受信した場合のみ送信することを特徴としている。
また、前記スレーブは、前記マスタへの応答データを、マスタからの指令データを正常受信した場合も異常受信した場合も送信することを特徴としている。
【０００９】
また、前記マスタと前記スレーブが１対１で接続されている場合、前記マスタは、前記スレーブの１つ前のアイソクロナスサイクルの正常受信を検出するステップと、正常受信した場合は、今回用指令データを送信するステップと、異常受信した場合は、１つ前のアイソクロナスサイクルで送信した前回用指令データを再送信するステップと、応答データ受信監視タイマを起動するステップと、今回のアイソクロナスサイクルの正常受信を検出するステップと、正常受信を検出した場合前記応答データ受信監視タイマを停止し応答データを保存するステップと、正常受信を前記応答データ受信判定部に通知するステップと、正常受信を検出しない場合前記応答データ受信監視タイマを監視するステップと、前記応答データ受信監視タイマがタイムアップしたとき、異常受信を前記応答データ受信判定部に通知するステップを備えることを特徴としている。
また、前記マスタと前記スレーブが１対Ｎで接続されている場合、前記マスタは、今回のアイソクロナスサイクルが指令送信用アイソクロナスサイクルかどうかチェックするステップと、指令送信用アイソクロナスサイクルの場合、通信周期先頭のアイソクロナスサイクルであれば、異常受信が発生しデータの再送が必要な前記スレーブを記憶している再送対象スレーブ一覧をクリアするステップと、送信先スレーブに今回用指令データを送信するステップと、今回のアイソクロナスサイクルが指令送信用アイソクロナスサイクルでない場合、再送対象スレーブがあるかどうか判別するステップと、前記再送対象スレーブがあった場合、該再送対象スレーブに１つ前のアイソクロナスサイクルで送信した前回用指令データを再送信するステップと、応答データ受信監視タイマを起動するステップと、今回のアイソクロナスサイクルの正常受信を検出するステップと、正常受信を検出した場合前記応答データ受信監視タイマを停止し応答データを保存するステップと、正常受信を前記応答データ受信判定部に通知するステップと、正常受信を検出しない場合前記応答データ受信監視タイマを監視するステップと、前記応答データ受信監視タイマがタイムアップしたとき、当該スレーブを前記再送対象スレーブ一覧に登録するステップと、異常受信を前記応答データ受信判定部に通知するステップを備えることを特徴としている。
【発明の効果】
【００１０】
マスタが送信した指令データの受信結果の通知にＡＣＫやレスポンスパケットを伴わないアシンクロナス・ストリームを使用することにより、スレーブがマスタから送信された指令データへの応答データを同一アイソクロナスサイクル内に安定して送信し、異常の場合、マスタが次のアイソクロナスサイクルで指令データを再送できるようになると共に、マスタがＮ局のスレーブと複数のアイソクロナスサイクルからなる定周期通信を行う場合、通信周期を超えることなく同一通信周期内の指令データの再送ができる伝送効率の高いマスタ−スレーブ通信システムおよび通信方法を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
【実施例１】
【００１２】
図１は、本発明のＩＥＥＥ１３９４ネットワーク上に接続された１つのマスタと１つ以上のスレーブとでデータ交換を行うマスタ―スレーブ通信システムの構成を示すブロック図である。
なお、以下の説明では、送信通知を送信したアシンクロナスサイクルと同一のアシンクロナスサイクルに応答データが戻ってきた場合を正常受信、正常受信できなかった場合を異常受信という。
図１のマスタ１０は、通信データを送受信するマスタＩＥＥＥ１３９４通信部１０１と通信データの演算や監視を行うマスタ情報処理部１０２と通信データを格納するマスタ記憶部１０３を備え、マスタＩＥＥＥ１３９４通信部１０１を介してＩＥＥＥ１３９４ネットワークと接続する。マスタ記憶部１０３はスレーブ２１、２２、２３から受信した応答データを格納するマスタ応答データバッファ１０３１、スレーブ２１、２２、２３に送信する指令データを格納するマスタ指令データバッファ１０３０、スレーブが異常受信したときに再送するデータを格納する再送用指令データバッファ１０３２、複数のスレーブが異常受信したときにデータを再送するスレーブの情報を格納する再送対象スレーブ一覧１０３３を具備し、マスタＩＥＥＥ１３９４通信部はマスタ送信処理部１０１０およびマスタ受信処理部１０１１を具備し、マスタ情報処理部１０２は受信した応答データから指令データを作成するマスタデータ演算部１０２０、応答データの受信を監視する応答データ受信監視タイマ１０２１および応答データ受信判定部１０２２を具備する。
マスタデータ演算部１０２０は、マスタ応答データバッファ１０３１に格納された応答データを演算し、演算結果をマスタ指令データバッファ１０３０とマスタ再送用指令データバッファ１０３２へ格納する。例えば、ＦＡの分野でコントローラをマスタとしてサーボをスレーブとして制御する場合、スレーブからフィードバックを応答データとして受信し次の目標位置を演算により算出し、指令データとする。
マスタ送信処理部１０１０は、応答データ受信判定部１０２２  の状態に応じて、前回のアイソクロナスサイクルでスレーブが正常受信したときはマスタ指令データバッファ１０３０の内容を、前回が異常受信であれば再送用指令データバッファ１０３２の内容をスレーブに送信し、同時に応答データ受信監視タイマ１０２１へ送信通知する。マスタ受信処理部１０１１は、スレーブからのアシンクロナス・ストリームによる応答データを受信し、マスタ応答データバッファ１０３１に格納すると共に、応答データ受信監視タイマ１０２１へ受信通知する。応答データ受信監視タイマ１０２１は、送信通知により起動され、受信通知によりリセットされ、送信通知のあったアイソクロナスサイクル内にリセットされない場合は異常受信としてタイムアップを応答データ受信判定部１０２２へ通知する。
再送対象スレーブ一覧１０３３は、応答データの受信を正常に受信できなかったスレーブを記憶する手段でスレーブが複数の場合使用する。
【００１３】
次に図１の第１スレーブ２１について説明する。なお、図では省略しているが、第２スレーブ２２、第３スレーブ２３も第１スレーブ２１と構成は同一である。図１の第１スレーブ２１は、通信データを送受信するスレーブＩＥＥＥ１３９４通信部２０１と通信データの演算や監視を行うスレーブ情報処理部２０２と通信データを格納するスレーブ記憶部２０３を備え、スレーブＩＥＥＥ１３９４通信部２０１を介してＩＥＥＥ１３９４ネットワークと接続する。スレーブ記憶部２０３はマスタ１０から受信した指令データを格納するスレーブ指令データバッファ２０３０、マスタ１０に送信する応答データを格納するスレーブ応答データバッファ２０３１を具備し、スレーブＩＥＥＥ１３９４通信部２０１はスレーブ送信処理部２０１０およびスレーブ受信処理部２０１１を具備し、スレーブ情報処理部２０２は受信した指令データから応答データを作成するスレーブデータ演算部２０２０、指令データの受信を監視する指令データ受信監視タイマ２０２１および指令データ受信判定部２０２２を具備する。
スレーブ受信処理部２０１１はアイソクロナスサイクル開始を検出すると指令データ受信監視タイマ２０２１へ起動通知を行い、指令データを受信するとスレーブ指令データバッファ２０３０に格納すると共に、スレーブ送信処理部２０１０および指令データ受信監視タイマ２０２１へリセット通知を行う。指令データ受信監視タイマ２０２１は、スレーブ受信処理部２０１１からの起動通知を受けた場合、タイマを起動し、リセット通知を受けた場合、タイマをリセットし、予め設定された時間内に受信通知を受けない場合、異常受信としてタイムアップを指令データ受信判定部２０２２へ通知する。指令データ受信判定部２０２２は指令データ受信監視タイマ２０２１から通知を受けると、スレーブ送信処理部２０１０へ通知する。
スレーブ送信処理部２０１０は、スレーブ受信処理部２０１１または指令データ受信判定部２０２２から通知を受信したタイミングで、スレーブ応答データバッファ２０３１に格納された応答データをマスタ１０に送信する。
ここで第１スレーブ２１は、マスタ１０が送信した指令データの受信結果の通知にアシンクロナス転送でなく、ＡＣＫおよびレスポンスパケットを伴わないアシンクロナス・ストリームを使用するので、ＡＣＫやレスポンスパケット、およびそれに伴うギャップによる伝送効率の低下を避けることができる。
【００１４】
次に、本発明によるＩＥＥＥ１３９４ネットワークの通信タイミングの詳細を図に基づいて説明する。
図２は、マスタとスレーブが１対１で接続されている場合の通信タイミングを示す図で、マスタからスレーブへ画像データやファイルデータなどの連続したデータを送信する場合を想定している。（図１では、第１スレーブ２１のみが接続されている場合である。）図２では、マスタ−スレーブ間のアイソクロナスサイクル（ｍ−１）〜（ｍ＋２）の４アイソクロナスサイクル分の通信が示されている。
本例では、アイソクロナスサイクルｍで異常受信となる場合を例示してある。また、スレーブ２１の指令データの異常受信を通知する手段として、正常受信時のみ応答を送信する方法を採用しているが、異常受信時のみ応答を送信する方法または正常受信時、異常受信時どちらも受信結果を応答データに格納して送信する方法の何れの方法でも、同一アイソクロナスサイクル内にマスタに通知するという点で同等である。加えて、本例ではマスタ１０をＩＥＥＥ１３９４のサイクルマスタとしている。このため、各アイソクロナスサイクルの先頭では、マスタ１０がサイクルスタートパケットを送信しているが、スレーブ２１またはそれ以外の局がサイクルマスタとなった場合も、本発明は同様に適用できる。
【００１５】
図２のアイソクロナスサイクル（ｍ−１）において、マスタ１０はサイクルスタートパケット（ｍ−１）を送信すると、アイソクロナスギャップの無通信状態を経過後、指令データ（ｎ−１）をアイソクロナス・ストリームにて送信する。スレーブ２１は指令データ（ｎ−１）を正常に受信すると、サブアクションギャップの無通信状態を経過後、指令データ（ｎ−１）に対する応答データ（ｎ−１）をアシンクロナス・ストリームにて送信する。この時、応答データ（ｎ−１）は、スレーブの受信状態を通知するだけでなく、スレーブ２１の動作状態などをデータとして付加しても良い。
続くアイソクロナスサイクルｍでは、スレーブ２１は、マスタ１０の指令データｎをアイソクロナス転送帯域内で正常に受信しないため、応答データの送信を中止する。
マスタ１０は、同一アイソクロナスサイクル内でスレーブ２１からの応答データを受信しないために、続くアイソクロナスサイクル（ｍ＋１）にて指令データｎの再送である指令データｎｒを送信する。前記指令データｎｒをアイソクロナス転送帯域内で正常受信したスレーブ２１は応答データｎｒをアシンクロナス・ストリームで送信し、マスタ１０に指令データｎｒの正常受信を通知することができる。
図２のアイソクロナスサイクル（ｍ＋２）においてマスタ１０およびスレーブ２１の動作は、アイソクロナスサイクル（ｍ−１）と同じである。
【００１６】
図３は、マスタとスレーブが１対１で接続されている場合のマスタ１０の送受信処理を示すフローチャートである。  
図３はアイソクロナス・サイクルに同期して毎周期起動される処理である。マスタ１０は送受信処理を開始すると、ステップＳ１００で応答データ受信判定部１０２２を参照し前サイクルでスレーブ２１からの応答データを正常受信したか確認する。正常受信した場合は、ステップＳ１０１でマスタ指令データバッファ１０３０に格納された今回用指令データを送信する。前サイクルでスレーブ２１が異常受信だった場合、ステップＳ１０７で再送用指令データバッファ１０３２に格納された前回用指令データを送信する。次にステップＳ１０２で応答データ受信監視タイマ１０２１を起動し、ステップＳ１０３でスレーブ２１からの応答データの受信を待つ。スレーブ２１からの応答データを正常に受信した場合、ステップＳ１０４で応答データ受信監視タイマ１０２１を停止した後、ステップＳ１０５で受信データをマスタ応答データバッファ１０３１へ保存する。ステップＳ１０６で正常受信を応答データ受信判定部１０２２に通知する。
スレーブ２１からの応答データ受信待ち中にステップＳ１０８で応答データ受信監視タイマ１０２１がタイムアップした場合、ステップＳ１０９で異常受信したことを応答データ受信判定部１０２２に通知する。
また、本例では応答データの受信監視にタイマを使用したが、ＩＥＥＥ１３９４で規定されるシリアルバス依存レジスタのＣＹＣＬＥ＿ＴＩＭＥレジスタの現在値の読み出しを繰り返すことにより計時しても良い。ここで、ＣＹＣＬＥ＿ＴＩＭＥレジスタとは、３２ビット幅のレジスタで、下位１３ビットは２４．５７６ＭＨｚ周期で１増える３０７２カウント（１２５μｓ）の剰余を表す。アイソクロナス転送に対応するノードはこのＣＹＣＬＥ＿ＴＩＭＥレジスタを必ず実装しなければならない。
【００１７】
図４は、スレーブ２１の送受信処理を示すフローチャートである。
図４は、アイソクロナスサイクル開始検出で起動される処理である。アイソクロナスサイクル開始検出方法としては、マスタ１０からのサイクルスタートパケット受信割込みを使用する方法や、ＣＹＣＬＥ＿ＴＩＭＥレジスタに連動したタイマを実装し125μs周期の割込みを発生させる方法がある。
スレーブ２１はステップＳ２００で指令データ受信監視タイマを起動し、ステップＳ２０１でマスタ１０からの指令データを受信すると正常受信かどうか判定する。ここで正常受信の場合、ステップＳ２０２で自局宛の指令データか確認し、自局宛データの場合はステップＳ２０３で受信した指令データをスレーブ指令データバッファ２０３０に保存後、ステップＳ２０４でアシンクロナス・ストリームによりスレーブ応答データバッファ２０３１の応答データを送信する。つぎに、ステップＳ２０５で正常受信を指令データ受信判定部２０２２に通知する。ステップＳ２０１で正常受信しない場合、ステップＳ２０６で指令データ受信監視タイマ２０２１がタイムアップしたかどうかチェックする。タイムアップした場合、異常受信を指令データ受信判定部２０２２に通知する。ステップＳ２０２で自局宛指令データでない場合、スレーブ２１は応答データを送信せずに送受信処理を終了する。
ステップＳ２０２はスレーブがＮ局接続されるシステムにも適用可能にするための処理であるため、マスタとスレーブが１対１で接続されたシステムの場合、この処理は省略可能である。
【実施例２】
【００１８】
次に、本発明によるＩＥＥＥ１３９４ネットワークの通信タイミングの第２の例の詳細を図に基づいて説明する。
図５は、マスタとスレーブが１対Ｎで接続されている場合の通信タイミングを示す図で、マスタとスレーブが１つ以上のアイソクロナスサイクルから構成される通信周期で、指令データと応答データを定周期に交換するサイクリック通信の場合を想定している。
本例では、アイソクロナスサイクルｍで異常受信となる場合を例示してある。また、スレーブ２１の指令データの異常受信を通知する手段として、正常受信時のみ応答を送信する方法を採用しているが、異常受信時のみ応答を送信する方法または正常受信時、異常受信時どちらも受信結果を応答データに格納して送信する方法の何れの方法でも、同一アイソクロナスサイクル内にマスタ１０に通知するという点で同等である。加えて、本例では通信周期に指令送信用の２アイソクロナスサイクル、再送用の１アイソクロナスサイクルを割り付けていて、１アイソクロナスサイクル当たり１スレーブと指令データおよび応答データの交換を実施している。従って、本例の通信システムでは１通信周期当たり１回、１局のスレーブに対して再送が可能である。
【００１９】
図５には、通信周期（ｍ−１）〜（ｍ＋１）の３周期分の通信が示されている。
各通信周期内の１番目のアイソクロナスサイクルを第１スレーブ２１、２番目のアイソクロナスサイクルを第２スレーブ２２への指令データ送信用に割り付け、３番目のアイソクロナスサイクルを再送用に割り付けている。
ここで、通信周期（ｍ−１）および（ｍ＋１）では、第１スレーブ２１、第２スレーブ２２共にアイソクロナス・ストリームによる指令データを正常受信し、応答データをアシンクロナス・ストリームにて送信しているので、再送用アイソクロナスサイクルでのデータ交換はない。
しかし、通信周期ｍにおいて、第１スレーブ２１が指令データｎの受信に失敗し応答データを送信しないため、マスタ１０は、再送用に割り当てられた３番目のアイソクロナスサイクルで、第１スレーブ２１に対して指令データの再送を実施している。
なお、本例でもマスタ１０をＩＥＥＥ１３９４のサイクルマスタとしている。このため、各アイソクロナスサイクルの先頭では、マスタがサイクルスタートパケットを送信しているが、第１スレーブ２１またはそれ以外の局がサイクルマスタとなった場合も、本発明は同様に適用できる。
【００２０】
図６は、マスタとスレーブが１対Ｎで接続されている場合のマスタ１０の送受信処理を示すフローチャートである。  図６は、図３同様にアイソクロナス・サイクルに同期して毎周期起動される処理である。
マスタ１０は送受信処理を開始すると、はじめにステップＳ３０１でアイソクロナスサイクルの割り付けを確認する。アイソクロナスサイクルが指令データ送信用に割り付けられている場合、ステップＳ３０２で通信周期先頭のアイソクロナスサイクルかどうかを確認する。
ここで通信周期先頭のアイソクロナスサイクルの場合、ステップＳ３０３で再送対象スレーブ一覧１０３３をクリアし、それ以外のアイソクロナスサイクルの場合はステップＳ３０３を実行しない。
マスタ１０はステップＳ３０４で当該アイソクロナスサイクルの送信先スレーブを取り出した後、ステップＳ３０５で今回用指令データを送信する。  
次にマスタ１０は、ステップＳ３０６で応答データ受信監視タイマ１０２１を起動し、ステップＳ３０７でスレーブ２１、２２からの応答データの受信を待つ。スレーブ２１、２２からの応答データを正常に受信した場合、ステップＳ３０８で応答データ受信監視タイマ１０２１を停止した後、ステップＳ３０９で受信データをマスタ応答データバッファ１０３１に保存する。そしてステップＳ３１０で正常受信を応答データ受信判定部１０２２に通知する。
また、ステップＳ３０７でスレーブ２１、２２からの応答データ受信待ち中にステップＳ３１４で応答データ受信監視タイマ１０２１がタイムアップした場合、マスタ１０はステップＳ３１５で当該スレーブを再送対象スレーブ一覧１０３３に登録する。そして、ステップＳ３１６で異常受信を応答データ受信判定部１０２２に通知する。
【００２１】
ステップＳ３０１で、アイソクロナスサイクルが指令データの送信用でないと判別された場合、指令再送用アシンクロナスサイクルと判断されステップＳ３１１に進み、再送対象スレーブ一覧を確認する。登録されたスレーブがある場合、ステップＳ３１２で送信先スレーブを取り出した後、ステップＳ３１３で当該スレーブへ前回送信した指令データを再送する。
また、本例では応答データの受信監視にタイマを使用したが、シリアルバス依存レジスタのＣＹＣＬＥ＿ＴＩＭＥレジスタの現在値読み出しを繰り返すことにより計時しても良い。
以上、マスタとスレーブが１対Ｎの場合におけるマスタの送受信処理を、図６を用いて説明したが、この場合もスレーブの送受信処理は図４の通りである。
【００２２】
このように、ＩＥＥＥ１３９４に接続された１つのマスタと少なくとも１つのスレーブからなる通信システムにおいて、マスタはスレーブへの指令データをアイソクロナス・ストリームにて送信し、スレーブはマスタから指令データの受信結果をアシンクロナス・ストリームの応答データまたは無応答により同一アイソクロナスサイクル中にマスタに通知する手順をとるので、次のアイソクロナスサイクルにて指令データの再送を実行することができる。
また、マスタがＮ局のスレーブと定周期通信を行う場合、通信周期を指令データの送信用に割り当てた１つ以上のアイソクロナスサイクルと、指令データ再送用に割り当てた１つ以上のアイソクロナスサイクルから構成し、マスタは指令データ送信用に割り当てたアイソクロナスサイクルで異常受信を検出したスレーブに対し、指令データ再送用に割り当てたアイソクロナスサイクルのアイソクロナス転送帯域の範囲で指令データを再送するという手順をとるので、同一通信周期内に指令データの再送を行うことができ、かつ、再送による通信周期の超過を発生させないようにすることができる。
【産業上の利用可能性】
【００２３】
本発明は、ＩＥＥＥ１３９４で接続された機器間の通信に広く利用できる。
具体的には、特許文献１にて例示されるプリンタコントローラとプリンタ間や、ＰＣとＤＶカメラ間の様なストリーム型データ転送の用途にも、コントローラとサーボ間の制御通信の様な同期を伴うサイクリック通信の用途にも適用できる。
【図面の簡単な説明】
【００２４】
【図１】本発明のマスタ−スレーブ通信システムの構成を示すブロック図
【図２】マスタとスレーブが１対１で接続されている場合の通信タイミングを示す図
【図３】本発明のマスタとスレーブが１対１で接続されている場合のマスタの送受信処理を示すフローチャート
【図４】本発明のスレーブの送受信処理を示すフローチャート
【図５】マスタとスレーブが１対Ｎで接続されている場合の通信タイミングを示す図
【図６】本発明のマスタとスレーブが１対Ｎで接続されている場合のマスタの送受信処理を示すフローチャート
【図７】従来のマスタ―スレーブ通信システムの構成を示す図
【図８】従来の通信タイミングを示す図
【符号の説明】
【００２５】
１０  マスタ
１０１  マスタＩＥＥＥ１３９４通信部
１０２  マスタ情報処理部
１０３  マスタ記憶部
１０１０  マスタ送信処理部
１０１１  マスタ受信処理部
１０２０  マスタデータ演算部
１０２１  応答データ受信監視タイマ
１０２２  応答データ受信判定部
１０３０  マスタ指令データバッファ
１０３１  マスタ応答データバッファ
１０３２  再送用指令データバッファ
１０３３  再送対象スレーブ一覧
２１、２２、２３  第１、第２、第３スレーブ
２０１  スレーブＩＥＥＥ１３９４通信部
２０２  スレーブ情報処理部
２０３  スレーブ記憶部
２０１０  スレーブ送信処理部
２０１１  スレーブ受信処理部
２０２０  スレーブデータ演算部
２０２１  指令データ受信監視タイマ
２０２２  指令データ受信判定部
２０３０  スレーブ指令データバッファ
２０３１  スレーブ応答データバッファ
３０  ＩＥＥＥ１３９４ネットワーク
【図１】
2006254290.tif 000003
【図２】
2006254290.tif 000004
【図３】
2006254290.tif 000005
【図４】
2006254290.tif 000006
【図５】
2006254290.tif 000007
【図６】
2006254290.tif 000008
【図７】
2006254290.tif 000009
【図８】
2006254290.tif 000010