(57)【要約】【課題】イベント処理によるオーバヘッドが少ないマスター・スレーブ同期通信システムを提供する。【解決手段】マスターはスレーブ毎に指令データの送信タイミングを格納した送信管理テーブルを備え、送信管理テーブルに従ってインターバルタイマを起動し、インターバルタイマにより発生するタイマイベントにより送信処理を実行し、同期点のみでIEEE1394通信の固有周期同期信号を受け付けるようにした。スレーブは、マスターに応答データを送信するタイミングを格納した送信タイミング情報テーブルを備え、送信タイミング情報テーブルに従ってインターバルタイマを起動し、インターバルタイマにより発生するタイマイベントにより送信処理を実行し、同期点のみでIEEE1394通信の固有周期同期信号を受け付けるようにした。【選択図】図１
2008005375.tif 000002
【特許請求の範囲】
【請求項１】
ＩＥＥＥ１３９４をベースとし、ＩＥＥＥ１３９４通信の固有周期の整数倍に設定された通信周期で、１台のマスターと１台以上のスレーブが同期通信を行うマスター・スレーブ同期通信システムにおいて、
前記マスターは、あらかじめ設定された時間が経過した時にタイマイベントを発生するインターバルタイマと、前記インターバルタイマからの前記タイマイベントとＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号を受けて前記マスターの動作を管理するマスター動作タイミング管理部と、前記スレーブへの指令データの送信タイミングをスレーブ毎に格納した送信管理テーブルとを備え、
前記スレーブは、前記インターバルタイマと、前記インターバルタイマからの前記タイマイベントとＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号を受けてスレーブの動作を管理するスレーブ動作タイミング管理部と、応答データを前記マスターに送信するタイミングを格納した送信タイミング情報テーブルとを、
備えることを特徴とするマスター・スレーブ同期通信システム。
【請求項２】
前記マスター動作タイミング管理部は、前記送信管理テーブルに従い、前記ＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号を前記通信周期毎の同期点でのみ受け付けることを特徴とする請求項１に記載のマスター・スレーブ同期通信システム。
【請求項３】
前記スレーブ動作タイミング管理部は、前記送信タイミング情報テーブルに従い、前記ＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号を前記通信周期毎の同期点でのみ受け付けることを特徴とする請求項１に記載のマスター・スレーブ同期通信システム。
【請求項４】
前記マスターは、前記送信管理テーブルに格納された各スレーブに対する送信タイマ設定値を前記インターバルタイマに設定し、前記送信タイマ設定値が経過した時に発生するタイマイベントに同期して前記各スレーブに対して指令を送信することを特徴とする請求項１に記載のマスター・スレーブ同期通信システム。
【請求項５】
前記スレーブは、前記送信タイミング情報テーブルに格納された送信タイマ設定値を前記インターバルタイマに設定し、前記送信タイマ設定値が経過した時に発生するタイマイベントに同期して前記マスターに対して応答を送信することを特徴とする請求項１に記載のマスター・スレーブ同期通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＥＥＥ１３９４を使ってリアルタイム制御を行うマスター・スレーブ同期通信システムに関する。
【背景技術】
【０００２】
従来の、ＩＥＥＥ１３９４を使ってリアルタイム制御を行うマスター・スレーブ同期通信システムでは、マスター・スレーブ間の同期をとるために、ＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号を使用して、送信処理、受信処理等を起動していた。（特許文献参照）
【０００３】
図６は従来のシステム構成図である。７０００はマスター、７ｊはスレーブ、７１００はＩＥＥＥ１３９４伝送路、７０ｊはＣＹＣＬＥ＿ＴＩＭＥレジスタ、７１ｊはＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号Ｃｙｃｌｅ＿ｓｙｎｃｈイベント、７２ｊは基底サイクルカウンタ、７３０は送信管理テーブル、７４ｊは同期点検出手段、７５０は指令送信処理、８３ｉは送信タイミング情報テーブル、８５ｉは応答送信処理である。ただし、ｉ＝１，２、・・・ｎ（ｎは１以上の整数）、ｊ＝０，１、２、・・・ｎ（ｎは１以上の整数）である。
図７は、マスター側の送信管理テーブル７３０とスレーブ側の各送信タイミング情報テーブル８３ｉである。マスターの送信管理テーブルには各基底サイクル値毎に指令が送信されるべき送信先スレーブが記憶されている。また、スレーブの送信タイミング情報テーブルには、マスターから指令を受信すべき、また、マスターに応答を返信すべき基底サイクル値が記憶されている。
図８はマスターの指令送信フロー、およびスレーブの応答送信フローである。
図９は通信タイミングチャートである。
【０００４】
以下、図に従って、動作を説明する。
マスター７０００、スレーブ７ｊは、Ｃｙｃｌｅ＿ｓｙｎｃｈイベント７１ｊ毎に動作し、基底サイクルカウンタ７２ｊをカウントアップする。マスターの指令送信処理は、図８に示すように、Ｃｙｃｌｅ＿ｓｙｎｃｈイベント７１ｊによって起動され、基底サイクルカウンタ７２ｊの値を読み出し変数ｐにセットする。次に図７に示すマスター送信管理テーブル７３０中のサイクルカウンタ値が変数ｐに対応した列データである送信指令数を変数ｑにセットし、対応する送信先スレーブナンバーのリストデータを配列Ｓ［ｋ］（ｋ＝０，１、・・・、ｑ−１）にセットする。そしてループ処理にてスレーブに指令データを送信する。一方スレーブ側応答送信処理もＣｙｃｌｅ＿ｓｙｎｃｈイベント７１ｊによって起動され、基底サイクルカウンタ７２ｊの値を読み出し変数ｐにセットする。次に図７に示す送信タイミング情報テーブル８３ｉ中の応答サイクル値と変数ｐを比較し、一致していれば応答データを送信する。
【特許文献１】特開２００５−４５６７２（１０頁  図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、図８、図９に示すように、Ｃｙｃｌｅ＿ｓｙｎｃｈイベントにより、マスターの指令送信処理、スレーブの応答送信処理、同期点検出手段を実行しているので、固有周期毎にイベント処理のオーバヘッドが発生していた。このオーバヘッドはマスター、スレーブ共に送受信を実行しないタイミングでも周期的に発生する。
【０００６】
本発明はこのような問題点に鑑みてなされたものであり、イベント処理のオーバヘッドが少ないマスター・スレーブ同期通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記問題を解決するため、本発明は、次のようにしたのである。
【０００８】
請求項１に記載の発明は、ＩＥＥＥ１３９４をベースとし、ＩＥＥＥ１３９４通信の固有周期の整数倍に設定された通信周期で、１台のマスターと１台以上のスレーブが同期通信を行うマスター・スレーブ同期通信システムにおいて、
前記マスターは、あらかじめ設定された時間が経過した時にタイマイベントを発生するインターバルタイマと、
前記インターバルタイマからの前記タイマイベントとＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号を受けて前記マスターの動作を管理するマスター動作タイミング管理部と、
前記スレーブへの指令データの送信タイミングをスレーブ毎に格納した送信管理テーブルとを備え、
前記スレーブは、前記インターバルタイマと、
前記インターバルタイマからの前記タイマイベントとＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号を受けてスレーブの動作を管理するスレーブ動作タイミング管理部と、
応答データを前記マスターに送信するタイミングを格納した送信タイミング情報テーブルとを、
備えることを特徴とするものである。
請求項２に記載の発明は、前記マスター動作タイミング管理部が、前記送信管理テーブルに従い、前記ＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号を前記通信周期毎の同期点でのみ受け付けることを特徴とするものである。
請求項３に記載の発明は、前記スレーブ動作タイミング管理部が、前記送信タイミング情報テーブルに従い、前記ＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号を前記通信周期毎の同期点でのみ受け付けることを特徴とするものである。
請求項４に記載の発明は、前記マスターが、前記送信管理テーブルに格納された各スレーブに対する送信タイマ設定値を前記インターバルタイマに設定し、前記送信タイマ設定値が経過した時に発生するタイマイベントに同期して前記各スレーブに対して指令を送信することを特徴とするものである。
請求項５に記載の発明は、前記スレーブが、前記送信タイミング情報テーブルに格納された送信タイマ設定値を前記インターバルタイマに設定し、前記送信タイマ設定値が経過した時に発生するタイマイベントに同期して前記マスターに対して応答を送信することを特徴とするものである。
【発明の効果】
【０００９】
同期点でのみＣｙｃｌｅ＿ｓｙｎｃｈイベント処理を実行するので、固有周期毎に発生していたイベント処理のオーバヘッドを削減できる。また、マスター、スレーブ共にインターバルタイマのみの簡単な仕組みで実現できるので、ＣＰＵの内蔵タイマを利用すれば、ソフトウェアのみで実装できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図を参照して説明する。
【実施例】
【００１１】
図１は、本発明のシステムの構成図である。図１において、１はマスター、２ｉはスレーブ、３はＩＥＥＥ１３９４伝送路、１１ｊはインターバルタイマ、１２０はマスター動作タイミング管理部、１２ｉはスレーブ動作タイミング管理部、１３ｊはＣｙｃｌｅ＿ｓｙｎｃｈイベント、１４ｊはＣＹＣＬＥ＿ＴＩＭＥレジスタ、１５ｊはタイマイベント、７４ｊは同期点検出手段、１７０は送信管理テーブル、２７ｉは送信タイミング情報テーブル、７４ｉは同期点検出手段である。
ただし、ｉ＝１，２、・・・、ｎ、ｊ＝０，１，２、・・・、ｎである。
なお本実施例では簡単のため、スレーブ数は２として説明し、スレーブ２１が＃１、スレーブ２２が＃２とする。
図２は、実施例での送信管理テーブル１７０、送信タイミング情報テーブル２７１、２７２である。
図３は、実施例でのタイミングチャートである。
【００１２】
図４は、本発明の方法を示すマスター動作タイミング管理部の状態遷移図である。図５は、本発明の方法を示すスレーブ動作タイミング管理部の状態遷移図である。これらの図を用いて本発明の方法について順を追って説明する。
図４のマスター動作タイミング管理部１２０ではまずＣｙｃｌｅ＿ｓｙｎｃｈイベント１３０待ちの状態となっている。本実施例では、Ｃｙｃｌｅ＿ｓｙｎｃｈイベント１３０は、同期点検出手段７４０によって、同期点でのみ発生するように構成している。なお、同期点検出手段７４０は既知のマスク可能な割り込み手段であるので詳細は述べない。
【００１３】
この状態で、Ｃｙｃｌｅ＿ｓｙｎｃｈイベント１３０が発生するとＣｙｃｌｅ＿ｓｙｎｃｈイベント１３０割り込みをマスクし、マスター送信管理テーブル１７０の送信タイマ設定値［１］（スレーブ＃１用の送信タイマ設定値）の値をインターバルタイマ１１０に設定してインターバルタイマ１１０を起動する。その後マスター動作タイミング管理部１２０は送信待ち状態となる。この状態で、インターバルタイマ１１０がタイムアップして送信タイマイベント１５０が発生した場合、マスター送信管理テーブル１７０の送信先スレーブＮｏ．［１］に登録されているスレーブ２１（スレーブ＃１）に対して指令を送信し、送信タイマ設定値［２］（スレーブ＃２用の送信タイマ設定値）の値をインターバルタイマ１１０に設定してインターバルタイマ１１０を再起動する。
【００１４】
その後再度送信待ち状態となる。この状態でインターバルタイマ１１０がタイムアップして次の送信タイマイベント１５０が発生した場合、マスター送信管理テーブル１７０の送信先スレーブＮｏ．［２］に登録されているスレーブ２２（スレーブ＃２）に対して指令を送信し、同期点検出タイマ設定値の値をインターバルタイマ１１０に設定してインターバルタイマ１１０を再起動する。その後マスター動作タイミング管理部１２０は同期点検出待ち状態となる。この状態で、同期点検出タイマイベント１５０が発生すると、インターバルタイマ１１０を停止し、Ｃｙｃｌｅ＿ｓｙｎｃｈイベント１３０割り込みマスクを解除する。その後、マスター動作タイミング管理部１２０の状態は最初のＣｙｃｌｅ＿ｓｙｎｃｈイベント１３０待ち状態となる。以上の状態遷移をＣｙｃｌｅ＿ｓｙｎｃｈイベント１３０毎に繰り返す。
【００１５】
次に図５でスレーブ２１の場合でのスレーブ動作タイミング管理部１２１状態遷移を説明する。まずスレーブ動作タイミング管理部１２１はＣｙｃｌｅ＿ｓｙｎｃｈイベント１３１待ちの状態となっている。本実施例では、Ｃｙｃｌｅ＿ｓｙｎｃｈイベント１３１は同期点検出手段７４１によって、同期点でのみ発生するように構成している。なお、同期点検出手段７４１は既知のマスク可能な割り込み手段であるので詳細は述べない。
【００１６】
この状態で、Ｃｙｃｌｅ＿ｓｙｎｃｈイベント１３ｊが発生するとＣｙｃｌｅ＿ｓｙｎｃｈイベント１３１割り込みをマスクし、送信タイミング情報テーブル２７１の送信タイマ設定値の値をインターバルタイマ１１１に設定してインターバルタイマ１１１を再起動する。その後スレーブ動作タイミング管理部１２１は送信待ち状態となる。この状態で、インターバルタイマ１１１がタイムアップして送信タイマイベント１５１が発生すると、マスター１に対して応答を送信する。そして送信タイミング情報テーブル２７１の同期点検出タイマ設定値の値をインターバルタイマ１１１に設定してインターバルタイマ１１１を再起動する。その後スレーブ動作タイミング管理部１２１は同期点検出待ち状態となる。この状態で、同期点検出タイマイベント１５１が発生すると、Ｃｙｃｌｅ＿ｓｙｎｃｈイベント１３１割り込みマスクを解除する。その後、スレーブ動作タイミング管理部１２１の状態は最初のＣｙｃｌｅ＿ｓｙｎｃｈイベント１３１待ち状態となる。以上の状態遷移をＣｙｃｌｅ＿ｓｙｎｃｈイベント１３１毎に繰り返す。スレーブ２２の動作もスレーブ２１の動作と同様である。
【００１７】
以上の動作を図３のタイミングチャートに示している。マスターは同期点から送信タイマ設定値［１］（スレーブ＃１用の送信タイマ設定値）の時間が経過した後にスレーブ２１（スレーブ＃１）に対して指令を送信し、送信タイマ設定値［１］（スレーブ＃１用の送信タイマ設定値）の時間が経過した時点から送信タイマ設定値［２］（スレーブ＃２用の送信タイマ設定値）の時間が経過した後にスレーブ２２（スレーブ＃２）に対して指令を送信している。
また、スレーブ２１は同期点からスレーブ２１が持っている送信タイマ設定値経過後に、マスターに対して応答を送信している。スレーブ２２も同様である。
【００１８】
このように、マスターは、マスター動作タイミング管理部で、同期点でのＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号イベントと、各スレーブに対する送信タイマ設定値の時間が経過した後に、インターバルタイマから発生するタイマイベントによって各スレーブに対して指令を送信し、
スレーブは、スレーブ動作タイミング管理部で、同期点での前記ＩＥＥＥ１３９４通信の固有周期毎に発行される同期信号イベントと、送信タイマ設定値の時間が経過した後に、インターバルタイマから発生するタイマイベントによってマスターに対して応答を送信することによってマスター・スレーブ間の送受信処理を行うので、Ｃｙｃｌｅ＿ｓｙｎｃｈイベントにより、マスターの指令送信処理、スレーブの応答送信処理を実行する必要がないので、イベント処理のオーバヘッドを少なくすることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施例を示すシステム構成図
【図２】本実施例の送信管理テーブル１７０、送信タイミング情報テーブル２７１，２７２
【図３】実施例のタイムチャート
【図４】マスター動作タイミング管理部１２０の状態遷移図
【図５】スレーブ動作タイミング管理部１２ｊの状態遷移図
【図６】従来のシステム構成図
【図７】従来のマスター送信管理テーブル、スレーブ送信タイミング情報テーブル
【図８】従来の処理フローチャート
【図９】従来のタイムチャート
【符号の説明】
【００２０】
１  マスター
３  ＩＥＥＥ１３９４伝送路
２ｉ（ｉ＝１，２、・・・、ｎ）  スレーブ
１１ｊ（ｊ＝０，１，２、・・・、ｎ）  インターバルタイマ
１２０  マスター動作タイミング管理部
１２ｉ（ｉ＝１，２、・・・、ｎ）  スレーブ動作タイミング管理部
１３ｊ（ｊ＝０，１，２、・・・、ｎ）  Ｃｙｃｌｅ＿ｓｙｎｃｈイベント
１４ｊ（ｊ＝０，１，２、・・・、ｎ）  ＣＹＣＬＥ＿ＴＩＭＥレジスタ
１５ｊ（ｊ＝０，１，２、・・・、ｎ）  タイマイベント
１７０  送信管理テーブル
２７ｉ  送信タイミング情報テーブル
７０００  従来例のマスター  
７１００  従来例のＩＥＥＥ１３９４伝送路
７０ｊ（ｊ＝０，１，２、・・・、ｎ）従来例のＣＹＣＬＥ＿ＴＩＭＥレジスタ
７１ｊ（ｊ＝０，１，２、・・・、ｎ）従来例のＣｙｃｌｅ＿ｓｙｎｃｈ
７２ｊ（ｊ＝０，１，２、・・・、ｎ）従来例の基底サイクルカウンタ
７３０  従来例の送信管理テーブル
７４ｊ（ｊ＝０，１，２、・・・、ｎ）従来例の同期点検出手段
７５０  従来例の指令送信処理
８３ｉ（ｉ＝１，２、・・・、ｎ）従来例の送信タイミング情報テーブル
８５ｉ（ｉ＝１，２、・・・、ｎ）従来例の応答送信処理
【図１】
2008005375.tif 000003
【図２】
2008005375.tif 000004
【図３】
2008005375.tif 000005
【図４】
2008005375.tif 000006
【図５】
2008005375.tif 000007
【図６】
2008005375.tif 000008
【図７】
2008005375.tif 000009
【図８】
2008005375.tif 000010
【図９】
2008005375.tif 000011