(57)【要約】【課題】  共通バスにより回路間の配線を少なくし、デッドロックを防いで効率よく同期通信を行う。【解決手段】  スレーブインターフェイス２は、マスタ回路からデータ転送要求を受けたときにデータ転送可能であれば、直ちにバス転送の終了とデータ転送の完了をスレーブインターフェイス１側に通知し、データ転送が可能でなければ、予め定められたサイクル数だけ待った後、データ転送が更に可能でなければ、バス転送の終了とデータ転送が可能でないことを通知する。待っている途中で転送可能になれば、直ちにバス転送の終了とデータ転送の完了とを通知する。このとき、バス調停回路１６は、複数のマスタ回路から転送要求が出されたときに、同じアドレスに転送要求しているマスタ回路に、連続して予め定められた回数以上、バスの占有権を与えないように調停する。【選択図】  図２
2005196306.tif 000002
【特許請求の範囲】
【請求項１】
マスタ回路とスレーブ回路間でバスを介して同期通信によるデータ転送を可能とするバス通信システムにおいて、
複数のマスタ回路から転送要求が出されている場合、連続して同じアドレスに転送要求を出すマスタ回路に対して、連続して予め定められた回数以上、バスの占有権を与えないように調停するバス調停回路が設けられ、
該スレーブ回路は、該マスタ回路から転送要求を受けた場合、該マスタ回路にバス転送終了を通知すると共にデータ転送準備ができているかどうかを通知し、
該マスタ回路は、該データ転送準備ができているとの通知を受けた場合、データ転送処理を終了し、該データ転送準備ができていないとの通知を受けた場合、該スレーブ回路への転送要求を再度実行するバス通信システム。
【請求項２】
前記スレーブ回路は、該マスタ回路から転送要求を受け、かつ該マスタ回路にデータ転送準備ができていないとの通通をした場合、予め定められたサイクル数だけ待った後、未だデータ転送準備ができていない場合、該マスタ回路にバス転送終了を通知すると共にデータ転送準備ができていないとの通通をし、待っている途中でデータ転送準備ができた場合には、直ちに該マスタ回路にバス転送終了を通知すると共にデータ転送準備ができているとの通知をする請求項１記載のバス通信システム。
【請求項３】
前記マスタ回路側から、前記スレーブ回路にデータ書き込み処理を実行させる場合、該マスタ回路から書き込みデータを送り出し、該スレーブ回路で書き込みデータを受け取るデータ転送処理において、
前記スレーブ回路は、該マスタ回路から前記転送要求としてデータ書き込み要求があった場合、該マスタ回路にバス転送終了を通知すると共にデータ書き込み準備ができているかどうかを通知し、
該マスタ回路は、該スレーブ回路から、データ書き込み準備ができているとの通知を受けた場合、該データ書き込み処理を終了し、該スレーブ回路からデータ書き込み準備ができていないとの通知を受けた場合、該スレーブ回路にデータ書き込み要求を再度出す請求項１または２に記載のバス通信システム。
【請求項４】
前記マスタ回路側から、前記スレーブ回路からのデータ読み出し処理を実行させる場合、該スレーブ回路から読み出しデータを送り出し、該マスタ回路で読み出しデータを受け取るデータ転送処理において、
前記スレーブ回路は、該マスタ回路から前記転送要求としてデータ読み出し要求があった場合、該マスタ回路にバス転送終了を通知すると共にデータ読み出し準備ができているかどうかを通知し、
該マスタ回路は、該スレーブ回路からデータ読み出し準備ができているとの通知を受けた場合、該データ読み出し処理を終了し、該スレーブ回路からデータ読み出し準備ができていないとの通知を受けた場合、該スレーブ回路にデータ読み出し要求を再度出す請求項１または２に記載のバス通信システム。
【請求項５】
前記バス調停回路は、複数のマスタ回路から転送要求が出されているときに、該複数のマスタ回路に優先順位を割り当て、優先順位が高いマスタ回路から順にバスの占有権を与え、優先順位が高いマスタ回路に対して同じアドレスに予め定められた回数、連続してバスの占有権を与えた場合に、連続してバスの占有権が与えられたマスタ回路の優先順位を一旦下げて、他のマスタ回路にバスの占有権を与えるように調停する請求項１記載のバス通信システム。
【請求項６】
前記バス調停回路は、複数のマスタ回路から転送要求が出されているときに、該複数のマスタ回路に優先順位を割り当て、優先順位が高いマスタ回路から順にバスの占有権を与え、優先順位が高いマスタ回路に対して同じアドレスに予め定められた回数、連続してバスの占有権を与えた場合に、優先順位に関係なく、ランダムにマスタ回路にバスの占有権を与えるように調停する請求項１記載のバス通信システム。
【請求項７】
前記マスタ回路は、バスに対して複数のデータ転送要求を同時にする場合に、予め定められた回数以上、連続して同じデータ転送要求が続かないように調停する内部調停回路を有している請求項１記載のバス通信システム。
【請求項８】
前記内部調停回路は、複数のデータ転送要求があるときに、該複数のデータ転送要求に優先順位を割り当て、該優先順位が高いデータ転送要求から順にデータ転送要求を実行させ、優先順位が高いデータ転送要求に対して予め定められた回数、連続して同じデータ転送要求を実行した場合に、そのデータ転送要求の優先順位を一旦下げて、他のデータ転送要求を実行させるように調停する請求項７記載のバス通信システム。
【請求項９】
前記内部調停回路は、複数のデータ転送要求があるときに、該複数のデータ転送要求に優先順位を割り当て、該優先順位が高いデータ転送要求から順にデータ転送要求を実行し、優先順位が高いデータ転送要求に対して予め定められた回数、連続して同じデータ転送要求を実行した場合に、優先順位に関係なく、ランダムに他のデータ転送要求を実行させるように調停する請求項７記載のバス通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の回路間でバスを介して同期通信によりデータ転送を行うバス通信システムに関する。
【背景技術】
【０００２】
複数の回路間で同期通信によりデータの受け渡し（データ転送）を行うデータ転送方法としては、例えば特許文献１に開示されているような同期通信路（同期チャネル）を用いた同期チャネル通信方法が挙げられる。この場合の同期通信とは、データを送る側およびデータを受け取る側の両方の回路がデータ転送が可能な状態になって初めてデータ転送を行う通信方法である。
【０００３】
以下に、特許文献１に開示されている同期チャネル通信方法について、図１１〜図１４を用いて説明する。
【０００４】
図１１は、同期チャネルを用いた従来の通信システムの構成を示すブロック図である。
【０００５】
図１１に示すように、従来の通信システムにおいて、回路１〜５は加算器および乗算器などの演算器や比較器などを有し、予め定められた手順に従って処理を行うものである。また、ここでは、Ａ、Ｂ、Ｃ、Ｄ、ＥおよびＦはそれぞれ、同期通信を行うために用いられる同期チャネルである。
【０００６】
回路１は、同期チャネルＡおよびＢを介して回路２と接続されていると共に、同期チャネルＣを介して回路３とも接続されている。また、回路３は同期チャネルＤを介して回路４と接続されている。また、回路２は同期チャネルＥを介して回路５と接続されている。さらに、回路５は同期チャネルＦを介して回路４と接続されている。
【０００７】
図１２は、図１１に示す同期チャネルＡを用いて回路１，２間でデータａの受け渡しを行う従来の同期チャネル通信システムの基本構成例を示すブロック図である。
【０００８】
Ｓｅｎｄ命令およびＲｅｃｅｉｖｅ命令は同期通信を表すために用いられる動作記述であり、Ｓｅｎｄ（Ａ，ａ）はＲｅｃｅｉｖｅ（Ａ）に対して通信路（同期チャネル）Ａを介して同期データａを送信することを示し、Ｒｅｃｅｉｖｅ（Ａ）はＳｅｎｄ（Ａ，ａ）から通信路Ａを介して同期データａを受信することを示している。
【０００９】
図１２に示す動作記述１は、回路１でＳｅｎｄ（Ａ，ａ）が実行されることを示しており、動作記述２は回路２でＲｅｃｅｉｖｅ（Ａ）が実行されることを示している。同期チャネルＡ内のｄａｔａＡ信号は通信データ信号である。また、ｔｘＡ信号はＳｅｎｄ命令が実行されたことを示す信号であり、ＨｉｇｈのときにＳｅｎｄ命令が実行されたことを示す。さらに、ｒｘＡ信号はＲｅｃｅｉｖｅ命令が実行されたことを示す信号であり、ＨｉｇｈのときＲｅｃｅｉｖｅ命令が実行されたことを示す。
【００１０】
図１３は、図１２に示す同期チャネル通信システムにおいて、同期データの送り出し側の回路が受け取り側の回路よりも先に準備ができて、Ｓｅｎｄ命令がＲｅｃｅｉｖｅ命令よりも先に実行される場合の通信方法例を示すタイミング図である。
【００１１】
図１３に示すように、回路１は、Ｓｅｎｄ命令が実行されると、Ｔ１１においてｄａｔａＡ信号にデータａを送出し、ｔｘＡ信号をＨｉｇｈにして、ｒｘＡ信号がＨｉｇｈになるまで待機する。また、回路２は、Ｒｅｃｅｉｖｅ命令が実行されると、Ｔ１３においてｒｘＡ信号をＨｉｇｈにする。
【００１２】
次に、回路１は、ｒｘＡ信号がＨｉｇｈであることを確認すると、Ｔ１４においてｔｘＡ信号をＬｏｗにする。また、回路２は、ｔｘＡ信号がＨｉｇｈであることを確認すると、ｄａｔａＡ信号からデータａを受け取り、Ｔ１４においてｒｘＡ信号をＬｏｗにする。
【００１３】
図１４は、図１２に示す同期チャネル通信システムにおいて、同期データの受け取り側の回路が送り出し側の回路よりも先に準備ができて、Ｒｅｃｅｉｖｅ命令がＳｅｎｄ命令よりも先に実行された場合の通信方法例を示すタイミング図である。
【００１４】
図１４に示すように、回路２は、Ｒｅｃｅｉｖｅ命令が実行されると、Ｔ２１においてｒｘＡ信号をＨｉｇｈにして、ｔｘＡ信号がＨｉｇｈになるまで待機する。また、回路１は、Ｓｅｎｄ命令が実行されると、Ｔ２３においてｄａｔａＡ信号にデータａを送出し、ｔｘＡ信号をＨｉｇｈにする。
【００１５】
次に、回路２は、ｔｘＡ信号がＨｉｇｈであることを確認すると、データ信号からデータａを受け取り、Ｔ２４においてｒｘＡ信号をＬｏｗにする。また、回路１は、ｒｘＡ信号がＨｉｇｈであることを確認すると、Ｔ２４においてｔｘＡ信号をＬｏｗにする。
【００１６】
なお、図１２に示すブロックにおいて、Ｓｅｎｄ命令とＲｅｃｅｉｖｅ命令とが同時に実行された場合には、ｔｘＡ信号とｒｘＡ信号とが同時にＨｉｇｈになり、次のサイクルでｔｘＡ信号およびｒｘＡ信号の両方がＬｏｗになる。
【００１７】
次に、複数の回路間で同期通信によりデータ転送を行う他の方法として、通信を行う回路間にバスを設けるバス通信方法がある。
【００１８】
このバスを用いたバス通信方法について、以下に、図１５〜図２１を用いて説明する。
【００１９】
図１５は、バスを用いた従来のバス通信システムの構成を示すブロック図である。
【００２０】
図１５に示すように、この従来のバス通信システムにおいて、回路１〜５は加算器および乗算器などの演算器や比較器などを有し、予め定められた手順に従って処理を行うものである。また、バスインタフェース５１ａ〜５５ａは、回路１〜５を共通バスに接続して共通バスを介して通信を行うためのものであり、バスプロトコルに従ってデータの書き込み／読み出し処理を制御する。ここで、共通バスに対して書き込み／読み出し要求を行うインタフェースをマスタインタフェース、共通バスからの書き込み／読み出し要求に対して応答するインタフェースをスレーブインタフェースとする。また、システム中で、マスタインタフェースを有する回路をマスタ回路、スレーブインタフェースを有する回路をスレーブ回路とする。
【００２１】
このバス通信システムでは、一定期間、一つのマスタ回路がバスを占有し、スレーブ回路との間でデータ転送を行う。バス調停回路５６は、一つのマスタ回路に対してバス転送を許可するものであり、同時に複数のマスタ回路がバスを使用しようとしている場合に、どのマスタ回路に占有権を与えるかを決定する。なお、システムの中でマスタ回路として動作する回路が一つしかない場合には、バス調停回路５６は設けなくてもよい。
【００２２】
また、ここでは、Ａ、Ｂ、Ｃ、Ｄ、ＥおよびＦはそれぞれ、同期通信を行うために用いられる同期ポートである。この同期ポートは、実際には、共通バスのアドレス空間に割り当てられたアドレスを意味する。同期ポートは、マスタ回路が通信先を指定するために用いるものであり、スレーブ回路側のバスインターフェイスに割り当てられている。
【００２３】
図１５に示す回路５１はマスタ回路であり、回路５２〜５５はスレーブ回路である。スレーブ回路５２はスレーブインターフェイス（バスインターフェイス）５２ａにアドレスＡおよびＢが割り当てられており、スレーブ回路５３はスレーブインターフェイス５３ａにアドレスＣおよびＤが割り当てられている。また、スレーブ回路５４はスレーブインターフェイス５４ａにアドレスＦが割り当てられており、スレーブ回路５５はスレーブインターフェイス５５ａにアドレスＥが割り当てられている。
【００２４】
図１６は、Ｓｅｎｄ命令を実行する側の回路をマスタ回路とするような従来のバス通信システムの基本構成例を示すブロック図である。
【００２５】
図１６に示すように、動作記述１は回路１の動作を表す記述であり、回路１でＳｅｎｄ（Ａ，ａ）が実行されることを示している。また、動作記述２は回路２の動作を表す記述であり、回路２でＲｅｃｅｉｖｅ（Ａ）が実行されることを示している。ｗｄａｔａＡ信号およびｒｄａｔａＡ信号は通信データ信号である。また、ｗｔｘＡ信号およびｒｔｘＡ信号はＳｅｎｄ命令が実行されたことを示す信号であり、ＨｉｇｈのときにＳｅｎｄ命令が実行されたことを示す。さらに、ｗｒｘＡ信号およびｒｒｘＡ信号はＲｅｃｅｉｖｅ命令が実行されたことを示す信号であり、ＨｉｇｈのときＲｅｃｅｉｖｅ命令が実行されたことを示す。
【００２６】
共通バス信号は、ＢＵＳａｄｄｒ信号、ＢＵＳｗｄａｔａ信号、ＢＵＳｗｅｎ信号およびＢＵＳａｃｋ信号によって構成される。ＢＵＳａｄｄｒ信号はアドレスを指定するための信号であり、ＢＵＳｗｄａｔａ信号は書き込みデータ信号である。また、ＢＵＳｗｅｎ信号は書き込み要求信号であり、Ｈｉｇｈのときに書き込み要求を出していることを示す。ＢＵＳａｃｋ信号は通信終了信号であり、Ｈｉｇｈのときにバス転送が終了したことを示す。
【００２７】
図１６のバス通信システムでは、ＢＵＳｗｄａｔａ１信号およびＢＵＳｗｄａｔａ２信号が共通バスのＢＵＳｗｄａｔａ信号に接続され、ＢＵＳａｄｄｒ１信号およびＢＵＳａｄｄｒ２信号が共通バスのＢＵＳａｄｄｒ信号に接続されている。また、ＢＵＳｗｅｎ１信号およびＢＵＳｗｅｎ２信号が共通バスのＢＵＳｗｅｎ信号に接続され、ＢＵＳａｃｋ１信号およびＢＵＳａｃｋ２信号が共通バスのＢＵＳａｃｋ信号に接続されている。
【００２８】
以下に、回路１とマスタインタフェース１との間の通信に図１３の方法を用い、回路２とスレーブインタフェース２との間の通信に図１４の方法を用いた場合について、インタフェース部の動作を説明する。
【００２９】
ｗｄａｔａＡ信号およびｒｄａｔａＡ信号は、図１３および図１４のｄａｔａＡに対応し、ｗｔｘＡ信号およびｒｔｘＡ信号は図１３および図１４のｔｘＡ信号に対応し、ｗｒｘＡ信号およびｒｒｘＡ信号は図１３および図１４のｒｘＡ信号に対応する。
【００３０】
図１７は、図１６に示すバス通信システムにおいて、同期データの送り出し側の回路が受け取り側の回路よりも先に準備ができて、Ｓｅｎｄ命令がＲｅｃｅｉｖｅ命令よりも先に実行された場合のバス通信方法例を示すタイミング図である。なお、リセット後、ＢＵＳｗｅｎ信号、ＢＵＳａｃｋ信号、ｗｔｘＡ信号、ｗｒｘＡ信号、ｒｔｘＡ信号およびｒｒｘＡ信号の初期値はＬｏｗレベルとする。
【００３１】
図１７に示すように、まず、Ｔ３１において、回路１がｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）をＨｉｇｈにすると、マスタインタフェース１は、どの同期ポートへの要求かを判断する。Ｔ３２において、マスタインターフェイス１は、共通バスに対してＢＵＳａｄｄｒ信号にアドレスＡ、ＢＵＳｗｄａｔａ信号にデータａを送出し、ＢＵＳｗｅｎ信号（書き込み要求信号）をＨｉｇｈにして、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになるまで待機する。
【００３２】
次に、Ｔ３３において、回路２がｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）をＨｉｇｈにすると、スレーブインタフェース２は、ＢＵＳａｄｄｒ信号がアドレスＡで、かつ、ＢＵＳｗｅｎ信号がＨｉｇｈ（アドレスＡへの書き込み要求）であることを確認する。Ｔ３４において、スレーブインターフェイス２は、ＢＵＳａｃｋ信号（通信終了信号）を１サイクルの間Ｈｉｇｈにし、さらに、ｒｄａｔａＡ信号にＢＵＳｗｄａｔａ信号のデータａを送出し、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）を１サイクルの間Ｈｉｇｈにする。
【００３３】
マスタインタフェース１は、ＢＵＳａｃｋ信号がＨｉｇｈになると、Ｔ３４においてｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）を１サイクルの間Ｈｉｇｈにする。Ｔ３５で同期通信が完了する。
【００３４】
図１８は、図１６に示すバス通信システムにおいて、同期データの受け取り側の回路が送り出し側の回路よりも先に準備ができて、Ｒｅｃｅｉｖｅ命令がＳｅｎｄ命令よりも先に実行された場合のバス通信方法例を示すタイミング図である。なお、リセット後、ＢＵＳｗｅｎ信号、ＢＵＳａｃｋ信号、ｗｔｘＡ信号、ｗｒｘＡ信号、ｒｔｘＡ信号およびｒｒｘＡ信号の初期値はＬｏｗレベルとする。
【００３５】
図１８に示すように、まず、Ｔ４１において、回路２がｒｒｘＡ（Ｒｅｃｅｉｖｅ命令実行信号）をＨｉｇｈにすると、スレーブインタフェース２は、アドレスＡへの書き込み要求があるまで待機する。
【００３６】
次に、Ｔ４２において、回路１がｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）をＨｉｇｈにすると、マスタインタフェース１は、どの同期ポートへの要求かを判断する。Ｔ４３において、マスタインターフェイス１は、共通バスに対してＢＵＳａｄｄｒ信号にアドレスＡ、ＢＵＳｗｄａｔａ信号にデータａを送出し、ＢＵＳｗｅｎ信号（書き込み要求信号）をＨｉｇｈにして、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになるまで待機する。
【００３７】
さらに、Ｔ４４において、スレーブインタフェース２は、ＢＵＳａｄｄｒ信号がアドレスＡで、かつ、ＢＵＳｗｅｎ信号がＨｉｇｈ（アドレスＡへの書き込み要求）であることを確認して、ＢＵＳａｃｋ信号（通信終了信号）を１サイクルの間Ｈｉｇｈにし、さらに、ｒｄａｔａＡ信号にＢＵＳｗｄａｔａ信号のデータａを送出し、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）を１サイクルの間Ｈｉｇｈにする。マスタインタフェース１は、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになると、Ｔ４４においてｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）を１サイクルの間Ｈｉｇｈにする。Ｔ４５で同期通信が完了する。
【００３８】
上記図１７および図１８に示す同期通信例において、マスタ回路がすぐにバスの占有権が得られない場合でも、バスの占有権が得られるまで、ｗｒｘ信号をＬｏｗにしておけば、同様に同期通信が可能である。
【００３９】
図１９は、Ｒｅｃｅｉｖｅ命令を実行する側の回路をマスタ回路とするような従来のバス通信システムの基本構成例を示すブロック図である。
【００４０】
図１９に示すように、動作記述１は回路１の動作を表す記述であり、回路１でＲｅｃｅｉｖｅ（Ａ）が実行されることを示している。また、動作記述２は回路２の動作を表す記述であり、回路２でＳｅｎｄ（Ａ，ａ）が実行されることを示している。ｗｄａｔａＡ信号およびｒｄａｔａＡ信号は通信データ信号である。また、ｗｔｘＡ信号およびｒｔｘＡはＳｅｎｄ命令が実行されたことを示す信号であり、ＨｉｇｈのときにＳｅｎｄ命令が実行されたことを示す。さらに、ｗｒｘＡ信号およびｒｒｘＡ信号はＲｅｃｅｉｖｅ命令が実行されたことを示す信号であり、ＨｉｇｈのときＲｅｃｅｉｖｅ命令が実行されたことを示す。
【００４１】
共通バス信号は、ＢＵＳａｄｄｒ信号、ＢＵＳｒｄａｔａ信号、ＢＵＳｒｅｎ信号およびＢＵＳａｃｋ信号によって構成される。ＢＵＳａｄｄｒ信号はアドレスを指定するための信号であり、ＢＵＳｒｄａｔａ信号は読み出しデータ信号である。また、ＢＵＳｒｅｎ信号は読み出し要求信号であり、Ｈｉｇｈのときに読み出し要求を出していることを示す。ＢＵＳａｃｋ信号は通信終了信号であり、Ｈｉｇｈのときにバス転送が終了したことを示す。
【００４２】
図１９のバス通信システムでは、ＢＵＳｒｄａｔａ１信号およびＢＵＳｒｄａｔａ２信号が共通バスのＢＵＳｒｄａｔａ信号に接続され、ＢＵＳａｄｄｒ１信号およびＢＵＳａｄｄｒ２信号が共通バスのＢＵＳａｄｄｒ信号に接続されている。また、ＢＵＳｒｅｎ１信号およびＢＵＳｒｅｎ２信号が共通バスのＢＵＳｒｅｎ信号に接続され、ＢＵＳａｃｋ１信号およびＢＵＳａｃｋ２信号が共通バスのＢＵＳａｃｋ信号に接続されている。
【００４３】
以下に、回路１とマスタインタフェース１との間の通信に図１３の方法を用い、回路２とスレーブインタフェース２との間の通信に図１４の方法を用いた場合について、インタフェース部の動作を説明する。
【００４４】
ｗｄａｔａＡ信号およびｒｄａｔａＡ信号は、図１３および図１４のｄａｔａＡに対応し、ｗｔｘＡ信号およびｒｔｘＡ信号は図１３および図１４のｔｘＡ信号に対応し、ｗｒｘＡ信号およびｒｒｘＡ信号は図１３および図１４のｒｘＡ信号に対応している。
【００４５】
図２０は、図１９に示すバス通信システムにおいて、同期データの送り出し側の回路が受け取り側の回路よりも先に準備ができて、Ｓｅｎｄ命令がＲｅｃｅｉｖｅ命令よりも先に実行された場合の通信方法例を示すタイミング図である。なお、リセット後、ＢＵＳｒｅｎ信号、ＢＵＳａｃｋ信号、ｗｔｘＡ信号、ｗｒｘＡ信号、ｒｔｘＡ信号およびｒｒｘＡ信号の初期値はＬｏｗレベルとする。
【００４６】
図２０に示すように、まず、Ｔ５１において、回路２がｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）をＨｉｇｈにすると、スレーブインタフェース２は、アドレスＡへの読み出し要求があるまで待機する。
【００４７】
次に、Ｔ５２において、回路１がｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）をＨｉｇｈにすると、マスタインタフェース１は、どの同期ポートへの要求かを判断する。Ｔ５３において、マスタインターフェイス１は、共通バスに対してＢＵＳａｄｄｒ信号にアドレスＡを送出し、ＢＵＳｒｅｎ信号（読み出し要求信号）をＨｉｇｈにして、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになるまで待機する。
【００４８】
さらに、Ｔ５４において、スレーブインタフェース２は、ＢＵＳａｄｄｒ信号がアドレスＡで、かつ、ＢＵＳｒｅｎ信号がＨｉｇｈ（アドレスＡへの読み出し要求）であることを確認して、共通バスに対してＢＵＳｒｄａｔａ信号にデータａを送出し、ＢＵＳａｃｋ信号（通信終了信号）を１サイクルの間Ｈｉｇｈにし、さらにｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）を１サイクルの間Ｈｉｇｈにする。
【００４９】
マスタインタフェース１は、ＢＵＳａｃｋ信号がＨｉｇｈになると、Ｔ５４においてｒｄａｔａＡ信号にＢＵＳｒｄａｔａ信号のデータａを送出し、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）を１サイクルの間だけＨｉｇｈにする。Ｔ５５で同期通信が完了する。
【００５０】
図２１は、図１９に示すバス通信システムにおいて、同期データの受け取り側の回路が送り出し側の回路よりも先に準備ができて、Ｒｅｃｅｉｖｅ命令がＳｅｎｄ命令よりも先に実行された場合の通信方法例を示すタイミング図である。なお、リセット後、ＢＵＳｗｅｎ信号、ＢＵＳａｃｋ信号、ｗｔｘＡ信号、ｗｒｘＡ信号、ｒｔｘＡ信号およびｒｒｘＡ信号の初期値はＬｏｗとする。
【００５１】
図２１に示すように、まず、Ｔ６１において、回路１がｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）をＨｉｇｈにすると、マスタインタフェース１は、どの同期ポートへの要求かを判断する。
【００５２】
次に、Ｔ６２において、マスタインターフェイス１は、共通バスに対してＢＵＳａｄｄｒ信号にアドレスＡを送出し、ＢＵＳｒｅｎ信号（読み出し要求信号）をＨｉｇｈにして、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになるまで待機する。
【００５３】
さらに、Ｔ６３において、回路２がｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）をＨｉｇｈにすると、スレーブインタフェース２は、ＢＵＳａｄｄｒ信号がアドレスＡで、かつ、ＢＵＳｒｅｎ信号がＨｉｇｈ（アドレスＡへの読み出し要求）であることを確認する。Ｔ６４において、スレーブインターフェイス２は、ＢＵＳａｃｋ信号（通信終了信号）を１サイクルの間Ｈｉｇｈにし、さらに、共通バスに対してＢＵＳｒｄａｔａ信号にデータａを送出し、ｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）を１サイクルの間だけＨｉｇｈにする。
【００５４】
マスタインタフェース１は、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになると、Ｔ６４においてｒｄａｔａＡ信号にＢＵＳｒｄａｔａ信号のデータａを送出し、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）を１サイクルの間Ｈｉｇｈにする。Ｔ６５で同期通信が完了する。
【００５５】
上記図２０および図２１に示す同期通信例において、マスタ回路がすぐにバスの占有権が得られない場合でも、バスの占有権が得られるまで、ｒｔｘ信号をＬｏｗにしておけば、同様に同期通信が可能である。
【００５６】
なお、上記説明では、一つの回路がマスタインターフェイスまたはスレーブインタフェースの一方を有する例について示したが、マスタインタフェースおよびスレーブインタフェースの両方を有する構成も可能である。
【特許文献１】特開平１０−１１６３０２号公報（この公報の技術は、並列処理や同期通信を行う集積回路を効率良く設計する設計方法とその方法で設計された集積回路である。）
【発明の開示】
【発明が解決しようとする課題】
【００５７】
しかしながら、上述した従来の同期チャネル通信方法では、同期チャネルの数に比例して回路間の配線が増えていく。このため、同期チャネルが多数用いられる場合には、回路間の配線が非常に多くなり、チップ面積が極端に大きくなったり、レイアウトができなくなったりするおそれがある。
【００５８】
また、上述した従来のバス通信方法では、同期ポートが多数用いられても、上記従来の同期チャネル通信方法のように配線が増えることはないが、複数の回路が共通バスに接続されている場合には、以下のようなデッドロックが発生するおそれがある。
【００５９】
例えば図２２に示すように、Ｒｅｃｅｉｖｅ命令を実行する回路をマスタ回路とする従来のバス通信システムにおいて、回路１ではＲｅｃｅｉｖｅ（Ａ）が実行され、回路３ではＲｅｃｅｉｖｅ（Ｂ）が実行され、回路２ではＳｅｎｄ（Ａ，ａ）が実行された後、Ｓｅｎｄ（Ｂ，ｂ）が実行されるようなバス通信システムの構成について考える。
【００６０】
図２２に示すバス通信システムにおいて、回路１よりも先に回路３のＲｅｃｅｉｖｅ命令が実行され、マスタインタフェース３に共通バスの占有権が与えられて、同期ポートＢに対してデータの読み出し要求が行われた場合でも、データ読み出し先の回路２では、同期ポートＡによる同期通信が確立していないと、同期ポートＢによる同期通信は実行されず、応答信号を返すことができない。
【００６１】
このとき、スレーブインタフェース２では、同期ポートＡに対する読み出し要求を待っている状態であるが、マスタインタフェース１から同期ポートＡに対する読み出し要求が出されていても、マスタインタフェース３によって共通バスが占有されているため、バス調停回路５６は、マスタインタフェース１に共通バスの占有権を与えることができない。このため、スレーブインタフェース２では、永久に同期ポートＡに対する読み出し要求を待っている状態が続き、共通バスが占有されたまま、デッドロックが起こってしまう。
【００６２】
ここで、一定のサイクル以上、あるマスタ回路（マスタインターフェイス）によって共通バスが占有されると、共通バスとの接続を一旦切断し、他のマスタ回路にバスの占有権を与えるような機構が組み込まれているバス調停回路を用いることによって、デッドロックが生じないようにすることが考えられるが、この場合でも、共通バスとの接続を切断するまでの間のサイクルは無駄になってしまう。
【００６３】
本発明は、上記従来の問題を解決するもので、回路間の配線を少なくし、かつデッドロックを防いで効率よく同期通信を行うことができるバス通信システムを提供することを目的とする。
【課題を解決するための手段】
【００６４】
本発明のバス通信システムは、マスタ回路とスレーブ回路間でバスを介して同期通信によるデータ転送を可能とするバス通信システムにおいて、複数のマスタ回路から転送要求が出されている場合、連続して同じアドレスに転送要求を出すマスタ回路に対して、連続して予め定められた回数以上、バスの占有権を与えないように調停するバス調停回路が設けられ、該スレーブ回路は、該マスタ回路から転送要求を受けた場合、該マスタ回路にバス転送終了を通知すると共にデータ転送準備ができているかどうかを通知し、該マスタ回路は、該データ転送準備ができているとの通知を受けた場合、データ転送処理を終了し、該データ転送準備ができていないとの通知を受けた場合、該スレーブ回路への転送要求を再度出し、そのことにより上記目的が達成される。
【００６５】
また、好ましくは、本発明のバス通信システムおけるスレーブ回路は、該マスタ回路から転送要求を受け、かつ該マスタ回路にデータ転送準備ができていないとの通通をした場合、予め定められたサイクル数だけ待った後、未だデータ転送準備ができていない場合、該マスタ回路にバス転送終了を通知すると共にデータ転送準備ができていないとの通通をし、待っている途中でデータ転送準備ができた場合には、直ちに該マスタ回路にバス転送終了を通知すると共にデータ転送準備ができているとの通知をする。
【００６６】
さらに、好ましくは、本発明のバス通信システムおけるマスタ回路側から、前記スレーブ回路にデータ書き込み処理を実行させる場合、該マスタ回路から書き込みデータを送り出し、該スレーブ回路で書き込みデータを受け取るデータ転送処理において、
前記スレーブ回路は、該マスタ回路から前記転送要求としてデータ書き込み要求があった場合、該マスタ回路にバス転送終了を通知すると共にデータ書き込み準備ができているかどうかを通知し、
該マスタ回路は、該スレーブ回路から、データ書き込み準備ができているとの通知を受けた場合、該データ書き込み処理を終了し、該スレーブ回路からデータ書き込み準備ができていないとの通知を受けた場合、該スレーブ回路にデータ書き込み要求を再度出す。
【００６７】
さらに、好ましくは、本発明のバス通信システムおけるマスタ回路側から、前記スレーブ回路からのデータ読み出し処理を実行させる場合、該スレーブ回路から読み出しデータを送り出し、該マスタ回路で読み出しデータを受け取るデータ転送処理において、前記スレーブ回路は、該マスタ回路から前記転送要求としてデータ読み出し要求があった場合、該マスタ回路にバス転送終了を通知すると共にデータ読み出し準備ができているかどうかを通知し、
該マスタ回路は、該スレーブ回路からデータ読み出し準備ができているとの通知を受けた場合、該データ読み出し処理を終了し、該スレーブ回路からデータ読み出し準備ができていないとの通知を受けた場合、該スレーブ回路にデータ読み出し要求を再度出す。
【００６８】
さらに、好ましくは、本発明のバス通信システムおけるバス調停回路は、複数のマスタ回路から転送要求が出されているときに、該複数のマスタ回路に優先順位を割り当て、優先順位が高いマスタ回路から順にバスの占有権を与え、優先順位が高いマスタ回路に対して同じアドレスに予め定められた回数、連続してバスの占有権を与えた場合に、その連続してバスの占有権が与えられたマスタ回路の優先順位を一旦下げて、他のマスタ回路にバスの占有権を与えるように調停する。
【００６９】
さらに、好ましくは、本発明のバス通信システムおけるバス調停回路は、複数のマスタ回路から転送要求が出されているときに、該複数のマスタ回路に優先順位を割り当て、優先順位が高いマスタ回路から順にバスの占有権を与え、優先順位が高いマスタ回路に対して同じアドレスに予め定められた回数、連続してバスの占有権を与えた場合に、優先順位に関係なく、ランダムにマスタ回路にバスの占有権を与えるように調停する。
【００７０】
さらに、好ましくは、本発明のバス通信システムおけるマスタ回路は、バスに対して複数のデータ転送要求を同時にする場合に、予め定められた回数以上、連続して同じデータ転送要求が続かないように調停する内部調停回路を有している。
【００７１】
さらに、好ましくは、本発明のバス通信システムおける内部調停回路は、複数のデータ転送要求があるときに、該複数のデータ転送要求に優先順位を割り当て、該優先順位が高いデータ転送要求から順にデータ転送要求を実行させ、優先順位が高いデータ転送要求に対して予め定められた回数、連続して同じデータ転送要求を実行した場合に、そのデータ転送要求の優先順位を一旦下げて、他のデータ転送要求を実行させるように調停する。
【００７２】
さらに、好ましくは、本発明のバス通信システムおける内部調停回路は、複数のデータ転送要求があるときに、該複数のデータ転送要求に優先順位を割り当て、該優先順位が高いデータ転送要求から順にデータ転送要求を実行し、優先順位が高いデータ転送要求に対して予め定められた回数、連続して同じデータ転送要求を実行した場合に、優先順位に関係なく、ランダムに他のデータ転送要求を実行させるように調停する。
【００７３】
上記構成により、以下に、本発明の作用について説明する。
【００７４】
本発明にあっては、マスタ回路とスレーブ回路との間でバスを介して同期通信によりデータ転送を行うバス通信システム（バス通信装置）において、複数のマスタ回路から転送要求が出されているときに、スレーブ回路によって、バス通信（バス転送）が終了したか否かの通知（バス転送終了通知）すると共に、スレーブ回路側でデータ転送準備ができているかどうかを通知する。マスタ回路は、データ転送準備が完了している場合（データ転送準備ができている場合）にはデータ転送を終了し、データ転送準備が完了していない場合（データ転送準備ができていない場合）にはデータ転送要求出力を再度行う。
【００７５】
マスタ回路から転送要求を受けたときにスレーブ回路のデータ転送準備ができていない場合には、共通バスが一旦開放される。このとき、バス調停回路は、同じアドレスに対して転送要求を出しているマスタ回路に連続して予め定められた回数（ｎ＝０以上の整数）以上、占有権を与えず、他のマスタ回路にバス占有権を与えることができる。このため、従来のようなデッドロックを生じることなく、バスをより有効に利用することができる。
【００７６】
バス調停回路は、例えば、複数のマスタ回路に優先順位を割り当て、優先順位が高い転送要求を有するマスタ回路から順にバスの占有権を与える。複数のマスタ回路から転送要求が出ている場合に、優先順位が高いマスタ回路からから同じアドレスに対して連続して予め定められた回数（ｍ＝１以上の整数）以上、占有権を与えると、そのマスタ回路の優先順位を一旦下げるか、または、乱数によってランダムに別のマスタ回路を選択し、他のマスタ回路に占有権を与えるようにする。
【００７７】
また、一つのマスタ回路からバスに対して複数のデータ転送要求が同時に発生する場合には、予め定められた回数（ｍ＝１以上の整数）以上、連続して同じデータ転送が続かないように、マスタ回路内部で調停する内部調停回路がマスタ回路毎に設けられている。
【００７８】
この内部調停回路では、データ転送要求に優先順位を割り当て、優先順位が高いデータ転送要求から順にデータ転送要求を実行する。複数のデータ転送要求がある場合に、優先順位が高いデータ転送に予め定められた回数、連続して同じデータ転送要求を実行すると、そのデータ転送要求の優先順位を一旦下げるか、または、乱数によってランダムに別のデータ転送要求を選択し、他のデータ転送要求を実行するようにする。
【００７９】
本発明のバス通信装置においては、例えば、データを送り出す方がマスタ回路となり、データを受け取る方がスレーブ回路となって、マスタ回路がスレーブ回路に対して書き込み処理を行うことにより、同期通信によるデータ転送を行う。マスタ回路から同期通信データの書き込み要求が出されたとき、指定されたスレーブ回路は、同期通信データの受け取り準備ができている場合には、データを受け取って、直ちにバス通信を終了させるため、通信終了信号によりバス転送の終了を通知する。また、受け取り準備ができていない場合には、ｎサイクルの間、待ってから通信を終了させるようにしてもよい。ｎサイクルの途中で受け取り準備ができた場合には、データを受け取って、直ちにバス通信を終了させる。ｎが０の場合には、待たずに、直ちにバス通信を終了させる。
【００８０】
バス転送の終了を通知するときに、スレーブ回路は、マスタ回路に対して同期通信データを受け取ったか否かの情報を転送完了信号によって通知する。受け取り準備ができている場合には、データを受け取って、受け取りが完了したことを通知し、受け取り準備ができていない場合には、受け取り準備ができていないことを通知する。
【００８１】
マスタ回路は、バス転送の終了通知を受けると、転送完了信号から、再度データ転送を行うか否かを判断する。データ転送要求が完了していれば、この時点で同期通信処理を終了する。データ転送要求が完了していなければ、同期通信のデータ転送要求を繰り返し行う。
【００８２】
このとき、バス調停回路は、他のマスタ回路がデータ転送要求を出していれば、他のマスタ回路にバスの占有権を与えることにより、バスを有効に利用できてデッドロックが生じることがなくなる。
【００８３】
次に、データを受け取る方がマスタ回路となり、データを送り出す方がスレーブ回路となって、マスタ回路がスレーブ回路に対して読み出し処理を行うことにより、同期通信によりデータ転送処理を行うことができる。
【００８４】
この場合、マスタ回路から同期通信データの読み出し要求が出されたとき、指定されたスレーブ回路は、同期通信データの送信準備ができている場合には、データを送信して、直ちにバス通信を終了させるため、通信終了信号によりバス転送の終了を通知する。送信準備ができていない場合には、nサイクルの間、待ってから通信を終了させる。nサイクルの途中に送信準備ができた場合には、データを送信して、直ちにバス通信を終了させる。ｎが０の場合には、待たずに、直ちにバス通信を終了させる。
【００８５】
バス転送の終了を通知するときに、スレーブ回路は、マスタ回路に対して同期通信データを送信したか否かの情報を転送完了信号によって通知する。送信準備ができている場合には、データを送信して、送信が完了したことを通知し、送信準備ができていない場合には、送信準備ができていないことを通知する。
【００８６】
マスタ回路は、バス転送の終了通知を受けると、転送完了信号から、データ転送を再度行うか否かを判断する。データ転送が完了していれば、この時点で同期通信処理を終了する。データ転送が完了していなければ、同期通信のデータ転送要求を繰り返し行う。
【００８７】
このとき、バス調停回路は、他のマスタ回路がデータ転送要求を出していれば、他のマスタ回路にバスの占有権を与えることにより、バスを有効に利用できてデッドロックが生じることがなくなる。
【発明の効果】
【００８８】
以上により、本発明によれば、同期通信を行う回路間に共通バスを設けて回路間の配線を少なくすることができる。また、データ転送の準備状態や転送完了を通知して必要なときのみ共通バスを占有し、共通バスを占有し続けることがないため、効率よく同期通信を行うバス通信システムを実現することができる。
【発明を実施するための最良の形態】
【００８９】
以下に、本発明のバス通信システムの実施形態について、図面を参照しながら説明する。
【００９０】
図１は、本発明の一実施形態であるバス通信システムの要部構成を示すブロック図である。
【００９１】
図１に示すように、本実施形態のバス通信システム２０において、複数の回路１１〜１５が共有バスを介して接続されており、共有バスにはバス調停回路１６が接続されている。
【００９２】
複数の回路１１〜１５にはそれぞれ回路１〜５がそれぞれ設けられている。回路１〜５はそれぞれ、加算器および乗算器などの演算器や比較器などからなり、予め定められた手順に従って処理を行うものである。また、複数の回路１１〜１５にはそれぞれバスインタフェース１１ａ〜１５ａがそれぞれ設けられている。バスインタフェース１１ａ〜１５ａは、回路１〜５を共通バスに接続して共通バスを介して通信を行うためのものであり、バスプロトコルに従ってデータの書き込み／読み出し処理を制御する。なお、ここでは、共通バスに対して書き込み／読み出し要求を行うインタフェースをマスタインタフェース、共通バスからの書き込み／読み出し要求に対して応答するインタフェースをスレーブインタフェースとする。また、システムの中で、マスタインタフェースを有する回路をマスタ回路、スレーブインタフェースを有する回路をスレーブ回路とする。なお、図１には、実際に、更に多くのマスタ回路およびスレーブ回路が共有バスを介して接続されているが、ここでは、説明を簡略化するために、一つのマスタ回路１１、四つのスレーブ回路１２〜１５のみを示している。
【００９３】
このバス通信システム２０では、一つのマスタ回路が一定期間バスを占有し、スレーブ回路との間でデータ転送を行う。バス調停回路１６は、一つのマスタ回路に対してバス転送を許可するものであり、同時に複数のマスタ回路がバスを使用しようとしている場合に、どのマスタ回路に占有権を与えるかを決定する機能を有する。
【００９４】
また、ここでは、Ａ、Ｂ、Ｃ、Ｄ、ＥおよびＦはそれぞれ、同期通信を行うために用いられる同期ポートである。これらの同期ポートは、実際には、共通バスのアドレス空間に割り当てられたアドレスを意味する。同期ポートは、マスタ回路が通信先を指定するために用いるものであり、スレーブ回路側のバスインターフェイスに割り当てられている。
【００９５】
図１に示す回路１１はマスタ回路であり、回路１２〜１５はスレーブ回路である。スレーブ回路１２はスレーブインターフェイス（バスインターフェイス）１２ａにアドレスＡおよびＢが割り当てられており、スレーブ回路１３はスレーブインターフェイス１３ａにアドレスＣおよびＤが割り当てられている。また、スレーブ回路１４はスレーブインターフェイス１４ａにアドレスＦが割り当てられており、スレーブ回路１５はスレーブインターフェイス１５ａにアドレスＥが割り当てられている。
【００９６】
図２は、図１のバス通信システムにおいて、Ｓｅｎｄ命令を実行する側の回路をマスタ回路とするようなバス通信システムの基本構成を示すブロック図である。
【００９７】
図２に示すように、バス通信システム２０Ａにおいて、動作記述１は回路１の動作を表す記述であり、回路１でＳｅｎｄ（Ａ，ａ）が実行されることを示している。また、動作記述２は回路２の動作を表す記述であり、回路２でＲｅｃｅｉｖｅ（Ａ）が実行されることを示している。ｗｄａｔａＡ信号およびｒｄａｔａＡ信号は通信データ信号である。また、ｗｔｘＡ信号およびｒｔｘＡはＳｅｎｄ命令が実行されたことを示す信号（以下、Ｓｅｎｄ命令実行信号という）であり、ＨｉｇｈのときにＳｅｎｄ命令が実行されたことを示す。さらに、ｗｒｘＡ信号およびｒｒｘＡ信号はＲｅｃｅｉｖｅ命令が実行されたことを示す信号（以下、Ｒｅｃｅｉｖｅ命令実行信号という）であり、ＨｉｇｈのときＲｅｃｅｉｖｅ命令が実行されたことを示す。
【００９８】
共通バス信号は、図１５で説明したＢＵＳａｄｄｒ信号、ＢＵＳｗｄａｔａ信号、ＢＵＳｗｅｎ信号およびＢＵＳａｃｋ信号に加えて、ＢＵＳｓｙｎｃ信号よって構成される。ＢＵＳａｄｄｒ信号はアドレスを指定するための信号であり、ＢＵＳｗｄａｔａ信号は書き込みデータ信号である。また、ＢＵＳｗｅｎ信号は書き込み要求信号であり、Ｈｉｇｈのときに書き込み要求を出していることを示す。ＢＵＳａｃｋ信号は通信終了信号であり、Ｈｉｇｈのときにバス転送が終了したことを示す。さらに、ＢＵＳｓｙｎｃ信号は同期通信転送完了信号であり、Ｈｉｇｈのときに同期通信のデータ転送が完了したことを示す。ＢＵＳｓｙｎｃ信号はＢＵＳｒｅｎ信号に含まれていてもよい。
【００９９】
図２のバス通信システム２０Ａでは、ＢＵＳｗｄａｔａ１信号およびＢＵＳｗｄａｔａ２信号が共通バスのＢＵＳｗｄａｔａ信号に接続され、ＢＵＳａｄｄｒ１信号およびＢＵＳａｄｄｒ２信号が共通バスのＢＵＳａｄｄｒ信号に接続される。また、ＢＵＳｗｅｎ１信号およびＢＵＳｗｅｎ２信号が共通バスのＢＵＳｗｅｎ信号に接続され、ＢＵＳａｃｋ１信号およびＢＵＳａｃｋ２信号が共通バスのＢＵＳａｃｋ信号に接続される。さらに、ＢＵＳｓｙｎｃ１信号およびＢＵＳｓｙｎｃ２信号は共通バスのＢＵＳｓｙｎｃ信号に接続される。
【０１００】
以下に、図２の回路１とマスタインタフェース１との間の通信と回路２とスレーブインタフェース２との間の通信に、図１３および図１４のタイミングで示される通信方法を用いた場合について、インタフェースの動作を説明する。ここでは、その一例として、マスタ回路から書き込み要求があったときに、スレーブ回路でデータの受け取り準備ができていなかった場合に、バス転送を終了させるまでのサイクル数を０回（バス転送を即時終了する場合）とする。
【０１０１】
図３は、図２に示すバス通信システム２０Ａにおいて、同期データの送り出し側の回路が受け取り側の回路よりも先に準備ができて、Ｓｅｎｄ命令がＲｅｃｅｉｖｅ命令よりも先に実行された場合の本実施形態のバス通信方法例を示すタイミング図である。なお、リセット後、ＢＵＳｗｅｎ信号、ＢＵＳａｃｋ信号、ＢＵＳｓｙｎｃ信号、ｗｔｘＡ信号、ｗｒｘＡ信号、ｒｔｘＡ信号およびｒｒｘＡ信号の初期値はロウ（Ｌｏｗ）レベルとする。
【０１０２】
図３に示すように、まず、Ｔ７１において、回路１がｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）をハイ（Ｈｉｇｈ）レベルにすると、マスタインタフェース１は、どの同期ポートへの要求かを判断する。Ｔ７２において、マスタインターフェイス１は、共通バスに対してＢＵＳａｄｄｒ信号（アドレス指定信号）にアドレスＡ、ＢＵＳｗｄａｔａ信号（書き込みデータ信号）にデータａを送出し、ＢＵＳｗｅｎ信号（書き込み要求信号）をＨｉｇｈにして書き込み処理を実行し、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになるまで待機する。
【０１０３】
スレーブインタフェース２は、アドレスＡに対する書き込み要求があると判断すると、Ｔ７３において、直ちにＢＵＳａｃｋ信号（通信終了信号）を１サイクルの間だけＨｉｇｈにして、バスの通信処理を終了させる。それと同時に、ＢＵＳｓｙｎｃ信号（同期通信完了信号）にｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）の状態を送出する。この場合、ｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）がＬｏｗであるため、受け取り準備ができていないことを意味する。
【０１０４】
一方、マスタインタフェース１は、Ｔ７３においてＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになると、ｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）にＢＵＳｓｙｎｃ信号（同期通信完了信号）の状態を送出する。この場合、ｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）がＬｏｗであるためＢＵＳｓｙｎｃ信号もＬｏｗである。このため、ｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）をＬｏｗにする。また、データの送り先がまだ受け取り準備ができていなかったと判断し、Ｔ７５において再度書き込み処理を実行する。即ち、Ｔ７５において、Ｔ７２の場合と同様に、マスタインターフェイス１は、共通バスに対してＢＵＳａｄｄｒ信号（アドレス指定信号）にアドレスＡ、ＢＵＳｗｄａｔａ信号（書き込みデータ信号）にデータａを送出し、ＢＵＳｗｅｎ信号（書き込み要求信号）をＨｉｇｈにして書き込み処理を実行し、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになるまで待機する。
【０１０５】
スレーブインタフェース２は、アドレスＡに対する書き込み要求があると判断すると、Ｔ７６において、直ちにＢＵＳａｃｋ信号（通信終了信号）を１サイクルの間だけＨｉｇｈにして、バスの通信処理を終了させる。それと同時に、ＢＵＳｓｙｎｃ信号にｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）の状態を送出する。この場合、ｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）はＴ７５からＨｉｇｈであるため、データの受け取りが完了したことを意味する。さらに、ｒｄａｔａＡ信号にＢＵＳｗｄａｔａ信号のデータａを送出し、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）を１サイクルの間だけＨｉｇｈにする。
【０１０６】
マスタインタフェース１は、Ｔ７６においてＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになると、Ｔ７７においてＢＵＳｓｙｎｃ信号（同期通信完了信号）の状態を判断する。この場合、ＢＵＳｓｙｎｃ信号（同期通信完了信号）がＨｉｇｈであるため、データの送り先がデータを受け取ったと判断し、書き込み処理を終了する。また、マスタインターフェイス１は、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈであるＴ７６からＴ７７の間、ｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）にＢＵＳｓｙｎｃ信号（同期通信完了信号）の状態を送出する。このとき、ＢＵＳｓｙｎｃ信号（同期通信完了信号）はＨｉｇｈであるので、ｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）をＨｉｇｈにする。Ｔ７７で同期通信が完了する。
【０１０７】
ここで、従来のバス通信システムを用いた場合、Ｔ７３の時点ではＢＵＳａｃｋ信号（通信終了信号）はＬｏｗのままであり、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになるのはＴ７６である。よって、Ｔ７３からＴ７６の間は共通バスが占有されたままであり、この間に他のマスタ回路が共通バスを使用しようとしても、使用することができない。
【０１０８】
これに対して、本実施形態によれば、Ｔ７４の時点でバスを一旦開放しているので、他のマスタ回路に占有権を与えることが可能であり、デッドロックを起こさず、バスをより有効に利用することができる。
【０１０９】
ここで、デッドロックを起こさずにバスを有効に利用するためには、同じアドレスへのアクセスを行うマスタ回路に対して、連続して占有権を与えないような機能を有するバス調停回路１６を設ける。
【０１１０】
例えば、通常は予め定められた優先順位が高いマスタ回路から順に占有権を与えて、複数のマスタ回路からバス要求が出されている場合には、予め定められた回数以上占有権を与えたマスタ回路の優先順位を一旦下げることにより、マスタ回路に対して順番にバスの占有権を与える方法（図４）や、ランダムにバスの占有権を与える方法（図５）などが挙げられる。
【０１１１】
図４は、図１のバス調停回路１６において、バスの占有権を一旦下げる方法を用いたバス調停回路の構成例を示すブロック図である。
【０１１２】
図４に示すように、バス調停回路１６Ａは、マスタ制御部１６１Ａ、優先順位設定部１６２Ａ、優先順位制御部１６３およびカウンタ１６４を有している。
【０１１３】
マスタ制御部１６１Ａは、マスタ回路からのバス要求（データ転送要求）の有無を判定し、バス要求が発生していれば、優先順位制御部１６３から与えられる優先順位が高いマスタ回路に対してバスの占有権を与えるためにバス認可信号を出力する。
【０１１４】
優先順位設定部１６２Ａは、バス通信システム２０内のマスタ回路の優先順位を設定する。
【０１１５】
優先順位制御部１６３は、カウンタ１６４に接続されており、どのマスタ回路に占有権が与えられているかを監視して、連続して同じマスタ回路に占有権が与えられた場合に、その回数をカウンタ１６４によってカウントする。そのカウントされたカウント値が予め定められた回数（所定回数）になると、占有権が与えられているマスタ回路の優先順位を一番低くする。
【０１１６】
図５は、図１のバス調停回路１６において、バスの占有権をランダムに与える方法を用いたバス調停回路の構成例を示すブロック図である。
【０１１７】
図５に示すように、バス調停回路１６Ｂは、マスタ制御部１６１Ｂ、優先順位設定部１６２Ｂ、カウンタ１６４および乱数発生部１６５を有している。
【０１１８】
マスタ制御部１６１Ｂは、マスタ回路からのバス要求（データ転送要求）の有無を判定し、バス要求が発生していれば、優先順位設定部１６２Ｂから与えられる優先順位が高いマスタ回路に対してバスの占有権を与えるためにバス認可信号を出力する。また、マスタ制御部１６１Ｂは、カウンタ１６４に接続されており、どのマスタ回路に占有権が与えられているかを監視して、連続して同じマスタ回路に占有権が与えられた場合に、その回数をカウンタ１６４によってカウントする。そのカウントされたカウント値が予め定められた回数（所定回数）になると、優先順位に関係なく、乱数生成部１６５から与えられる乱数値により、ランダムにマスタ回路に対してバスの占有権を与えるためにバス認可信号を出力する。
【０１１９】
優先順位設定部１６２Ｂは、バス通信システム２０内のマスタ回路の優先順位を設定する。
【０１２０】
乱数生成部１６５は、バス通信システム２０内において同期通信を行うマスタ回路の数の範囲内で乱数を生成する。
【０１２１】
図６は、図２に示すバス通信システム２０Ａにおいて、同期データの受け取り側の回路が送り出し側の回路よりも先に準備ができて、Ｒｅｃｅｉｖｅ命令がＳｅｎｄ命令よりも先に実行された場合の通信方法例を示すタイミング図である。なお、リセット後、ＢＵＳｗｅｎ信号、ＢＵＳａｃｋ信号、ＢＵＳｓｙｎｃ信号、ｗｔｘＡ信号、ｗｒｘＡ信号、ｒｔｘＡ信号およびｒｒｘＡ信号の初期値はＬｏｗとする。
【０１２２】
図６に示すように、まず、Ｔ８１において、回路２がｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）をＨｉｇｈにすると、スレーブインタフェース２は、アドレスＡへの書き込み要求があるまで待機する。
【０１２３】
次に、Ｔ８４において、回路１がｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）をＨｉｇｈにすると、マスタインタフェース１は、どの同期ポートへの要求か判断する。
【０１２４】
さらに、Ｔ８５において、マスタインターフェイス１は、共通バスに対してＢＵＳａｄｄｒ信号にアドレスＡ、ＢＵＳｗｄａｔａ信号にデータａを送出し、ＢＵＳｗｅｎ信号（書き込み要求信号）をＨｉｇｈにして、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになるまで待機する。
【０１２５】
スレーブインタフェース２は、アドレスＡへの書き込み要求があると判断すると、Ｔ８６において直ちにＢＵＳａｃｋ信号（通信終了信号）を１サイクルの間だけＨｉｇｈにする。それと同時に、ＢＵＳｓｙｎｃ信号（同期通信完了信号）にｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）の状態を送出する。この場合、ｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）がＨｉｇｈであるため、データの受け取りが完了したことを意味する。さらに、ｒｄａｔａＡ信号にＢＵＳｗｄａｔａ信号のデータａを送出し、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）を１サイクルの間だけＨｉｇｈにする。
【０１２６】
マスタインタフェース１は、Ｔ８６においてＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになると、ｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）にＢＵＳｓｙｎｃ信号（同期通信完了信号）の状態を送出する。このとき、ＢＵＳｓｙｎｃ信号（同期通信完了信号）はＨｉｇｈであるので、ｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）をＨｉｇｈにする。また、マスタインターフェイス１は、ＢＵＳｓｙｎｃ信号（同期通信完了信号）の状態を判断し、ＢＵＳｓｙｎｃ信号（同期通信完了信号）がＨｉｇｈであるため、データの送り先がデータを受け取ったと判断し、書き込み処理を終了する。Ｔ８７で同期通信が完了する。
【０１２７】
上記図３および図６に示す例において、マスタ回路がすぐにバスの占有権が得られない場合でも、バスの占有権が得られるまで、ｗｒｘ信号をＬｏｗにしておけば、同様に同期通信が可能である。
【０１２８】
図７は、図１のバス通信システムにおいて、Ｒｅｃｅｉｖｅ命令を実行する側の回路をマスタ回路とするようなバス通信システムの基本構成を示すブロック図である。
【０１２９】
図７に示すように、動作記述１は回路１の動作を表す記述であり、回路１でＲｅｃｅｉｖｅ（Ａ）が実行されることを示している。また、動作記述２は回路２の動作を表す記述であり、回路２でＳｅｎｄ（Ａ，ａ）が実行されることを示している。ｗｄａｔａＡ信号およびｒｄａｔａＡ信号は通信データ信号である。また、ｗｔｘＡ信号およびｒｔｘＡはＳｅｎｄ命令が実行されたことを示す信号（以下、Ｓｅｎｄ命令実行信号という）であり、ＨｉｇｈのときにＳｅｎｄ命令が実行されたことを示す。さらに、ｗｒｘＡ信号およびｒｒｘＡ信号はＲｅｃｅｉｖｅ命令が実行されたことを示す信号（以下、Ｒｅｃｅｉｖｅ命令実行信号という）であり、ＨｉｇｈのときＲｅｃｅｉｖｅ命令が実行されたことを示す。
【０１３０】
共通バス信号は、図１９で説明したＢＵＳａｄｄｒ信号、ＢＵＳｒｄａｔａ信号、ＢＵＳｒｅｎ信号およびＢＵＳａｃｋ信号に加えて、ＢＵＳｓｙｎｃ信号よって構成される。ＢＵＳａｄｄｒ信号はアドレスを指定するための信号（以下、アドレス指定信号という）であり、ＢＵＳｒｄａｔａ信号は読み出しデータ信号である。また、ＢＵＳｒｅｎ信号は読み出し要求信号であり、Ｈｉｇｈのときに読み出し要求を出していることを示す。ＢＵＳａｃｋ信号は通信終了信号であり、Ｈｉｇｈのときにバス転送が終了したことを示す。さらに、ＢＵＳｓｙｎｃ信号は同期通信完了信号であり、Ｈｉｇｈのときに同期通信のデータ転送が完了したことを示す。ＢＵＳｓｙｎｃ信号はＢＵＳｒｅｎ信号に含まれていてもよい。
【０１３１】
図７のバス通信システム２０Ｂでは、ＢＵＳｒｄａｔａ１信号およびＢＵＳｒｄａｔａ２信号が共通バスのＢＵＳｒｄａｔａ信号に接続され、ＢＵＳａｄｄｒ１信号およびＢＵＳａｄｄｒ２信号が共通バスのＢＵＳａｄｄｒ信号に接続されている。また、ＢＵＳｒｅｎ１信号およびＢＵＳｒｅｎ２信号が共通バスのＢＵＳｒｅｎ信号に接続され、ＢＵＳａｃｋ１信号およびＢＵＳａｃｋ２信号が共通バスのＢＵＳａｃｋ信号に接続されている。さらに、ＢＵＳｓｙｎｃ１信号およびＢＵＳｓｙｎｃ２信号は共通バスのＢＵＳｓｙｎｃ信号に接続されている。
【０１３２】
以下に、回路１とマスタインタフェース１との間の通信に図１３の方法を用い、回路２とスレーブインタフェース２との間の通信に図１４の方法を用いた場合について、インタフェース部の動作を説明する。ここでは、その一例として、マスタ回路から読み出し要求があったときに、スレーブ回路でデータの読み出し準備ができていなかった場合に、バス転送を終了させるまでのサイクル数を０回（バス転送を即時終了）とする。
【０１３３】
図８は、図７に示すバス通信システム２０Ｂにおいて、同期データの送り出し側の回路が受け取り側の回路よりも先に準備ができて、Ｓｅｎｄ命令がＲｅｃｅｉｖｅ命令よりも先に実行された場合の通信方法例を示すタイミング図である。なお、リセット後、ＢＵＳｒｅｎ信号、ＢＵＳａｃｋ信号、ＢＵＳｓｙｎｃ信号、ｗｔｘＡ信号、ｗｒｘＡ信号、ｒｔｘＡ信号およびｒｒｘＡ信号の初期値はＬｏｗとする。
【０１３４】
図８に示すように、まず、Ｔ９１において、回路２がｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）をＨｉｇｈにすると、スレーブインタフェース２は、アドレスＡへの書き込み要求があるまで待機する。
【０１３５】
次に、Ｔ９４において、回路１がｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）をＨｉｇｈにすると、マスタインタフェース１は、どの同期ポートへの要求か判断する。Ｔ９５において、マスタインターフェイス１は、共通バスに対してＢＵＳａｄｄｒ信号にアドレスＡを送出し、ＢＵＳｒｅｎ信号（読み出し要求信号）をＨｉｇｈにして、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになるまで待機する。
【０１３６】
スレーブインタフェース２は、アドレスＡへの読み出し要求があると判断すると、Ｔ９６において直ちにバスの通信処理を終了させるため、ＢＵＳａｃｋ信号（通信終了信号）を１サイクルの間だけＨｉｇｈにし、ｗｄａｔａ信号のデータａをＢＵＳｒｄａｔａ信号に送出する。それと同時に、ＢＵＳｓｙｎｃ信号（同期通信完了信号）にｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）の状態を送出する。この場合、ｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）がＨｉｇｈであるため、データの送信が完了したことを意味する。さらに、ｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）を１サイクルの間だけＨｉｇｈにする。
【０１３７】
マスタインタフェース１は、Ｔ９６においてＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになると、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）にＢＵＳｓｙｎｃ信号（同期通信完了信号）の状態を送出する。このとき、ＢＵＳｓｙｎｃ信号（同期通信完了信号）はＨｉｇｈであるので、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）をＨｉｇｈにする。さらに、マスタインターフェイス１は、ＢＵＳｒｄａｔａ信号のデータａをｒｄａｔａ信号に送出し、ＢＵＳｓｙｎｃ信号（同期通信完了信号）の状態を判断して、ＢＵＳｓｙｎｃ信号（同期通信完了信号）がＨｉｇｈであるため、読み出し処理を終了する。Ｔ９７で同期通信が完了する。
【０１３８】
図９は、図７に示すバス通信システム２０Ｂにおいて、同期データの受け取り側の回路が送り出し側の回路よりも先に準備ができて、Ｒｅｃｅｉｖｅ命令がＳｅｎｄ命令よりも先に実行された場合の通信方法例を示すタイミング図である。なお、リセット後、ＢＵＳｒｅｎ信号、ＢＵＳａｃｋ信号、ＢＵＳｓｙｎｃ信号、ｗｔｘＡ信号、ｗｒｘＡ信号、ｒｔｘＡ信号およびｒｒｘＡ信号の初期値はＬｏｗレベルとする。
【０１３９】
図９に示すように、まず、Ｔ１０１において、回路１がｒｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）をＨｉｇｈにすると、マスタインタフェース１は、どの同期ポートからの要求かを判断する。Ｔ１０２において、マスタインターフェイス１は、共通バスに対してＢＵＳａｄｄｒ信号にアドレスＡを送出し、ＢＵＳｒｅｎ信号（読み出し要求信号）をＨｉｇｈにして読み出し処理を実行し、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになるまで待機する。
【０１４０】
スレーブインタフェース２は、アドレスＡに対する読み出し要求があると判断すると、Ｔ１０３において、直ちにＢＵＳａｃｋ信号（通信終了信号）を１サイクルの間だけＨｉｇｈにして、バスの通信処理を終了させる。それと同時に、ＢＵＳｓｙｎｃ信号（同期通信完了信号）にｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）の状態を送出する。この場合、ｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）がＬｏｗであるため、読み出しデータがまだ準備できていないことを意味する。
【０１４１】
マスタインタフェース１では、Ｔ１０３でＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになると、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）にＢＵＳｓｙｎｃ信号（同期通信完了信号）の状態を送出する。この場合、ＢＵＳｓｙｎｃ信号（同期通信完了信号）はＬｏｗであるため、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）をＬｏｗにする。また、データの読み出し準備ができていなかったと判断し、Ｔ１０５で再度読み出し処理を実行する。即ち、Ｔ１０５で、マスタインターフェイス１は、共通バスに対してＢＵＳａｄｄｒ信号にアドレスＡを送出し、ＢＵＳｒｅｎ信号（読み出し要求信号）をＨｉｇｈにして読み出し処理を実行し、ＢＵＳａｃｋ信号（通信終了信号）がＨｉｇｈになるまで待機する。
【０１４２】
一方、スレーブインタフェース２は、アドレスＡへの読み出し要求があると判断すると、Ｔ１０６で直ちにバスの通信処理を終了させるため、ＢＵＳａｃｋ信号（通信終了信号）を１サイクルの間だけＨｉｇｈにし、ｗｄａｔａ信号のデータａをＢＵＳｒｄａｔａ信号に送出する。これと同時に、ＢＵＳｓｙｎｃ信号（同期通信完了信号）にｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）の状態を送出する。この場合、ｗｔｘＡ信号（Ｓｅｎｄ命令実行信号）がＨｉｇｈであるため、データの送信が完了したことを意味する。さらに、ｗｒｘＡ信号（Ｒｅｃｅｉｖｅ命令実行信号）を１サイクルの間だけＨｉｇｈにする。
【０１４３】
マスタインタフェース１は、Ｔ１０６でＢＵＳａｃｋ信号（画像終了信号）がＨｉｇｈになると、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）にＢＵＳｓｙｎｃ信号（同期通信完了信号）の状態を送出する。このとき、ＢＵＳｓｙｎｃ信号（同期通信完了信号）はＨｉｇｈであるので、ｒｔｘＡ信号（Ｓｅｎｄ命令実行信号）をＨｉｇｈにする。さらに、マスタインターフェイス１は、ＢＵＳｒｄａｔａ信号のデータａをｒｄａｔａ信号に送出し、ＢＵＳｓｙｎｃ信号（同期通信完了信号）の状態を判断して、ＢＵＳｓｙｎｃ信号（同期通信完了信号）がＨｉｇｈであるため、読み出し処理を終了する。Ｔ１０７で同期通信が完了する。
【０１４４】
上記図７および図９に示す例において、マスタ回路がすぐにバスの占有権が得られない場合でも、バスの占有権が得られるまで、ｒｔｘ信号をＬｏｗにしておけば、同様に同期通信が可能である。
【０１４５】
以上では、一つの回路がマスタインターフェイスまたはスレーブインタフェースの一方を有する例について説明したが、一つの回路内にマスタインタフェースとスレーブインタフェースの両方を有する構成も可能である。
【０１４６】
また、一つのマスタ回路から複数の同期ポートを用いた同期通信によって、スレーブインタフェースに対して複数の同期ポートへの読み出し要求または書き込み要求が同時に生じるような場合には、マスタインタフェース内に内部調停回路を設けて、同じ同期ポートに対して予め定められた回数以上アクセスが続かないように調停することが好ましい。
【０１４７】
例えば、通常は予め定められた優先順位が高いデータ転送から順にデータ転送を実行し、複数のデータ転送要求が出されている場合には、予め定められた回数以上実行したデータ転送の優先順位を一旦下げることにより、アクセスされる同期ポートを順番に変化させてデータ転送を順番に行う方法や、ランダムにデータ転送を行う方法などが挙げられる。
【０１４８】
図１０は、問題が生じた図２２の従来のバス通信システム構成に対応して、本発明のバス通信システムを適用したシステム構成を示すブロック図である。
【０１４９】
図１０では、Ｒｅｃｅｉｖｅ側をマスタ回路とする場合の通信方法例について説明する。図１０に示すように、このバス通信システムでは、回路１でＲｅｃｅｉｖｅ（Ａ）の命令が実行され、回路３でＲｅｃｅｉｖｅ（Ｂ）の命令が実行され、回路２ではＳｅｎｄ（Ａ，ａ）の命令が実行された後に、Ｓｅｎｄ（Ｂ，ｂ）の命令が実行される。
【０１５０】
本発明のバス通信システムによれば、回路１よりも先に回路３のＲｅｃｅｉｖｅ命令が実行され、バス調停回路１６からマスタインタフェース３にバスの占有権が与えられて同期ポートＢに対してデータの読み出し要求が行なわれた場合でも、データ読み出し先のスレーブインタフェース２ではデータの送信準備ができていないことを通知する応答信号を返すため、バス通信は一旦完了する。
【０１５１】
この間に、マスタインタフェース１から同期ポートＡに対する読み出し要求が出されて、調停回路１６によってマスタインタフェース１に占有権が与えられると、スレーブインタフェース２が同期ポートＡに対する読み出し要求を待っている状態であれば、同期ポートＡによる同期通信が確立し、これに続いて同期ポートＢによる同期通信も確立することが可能となるため、デッドロックが起こることはない。
【０１５２】
以上により、本発明の実施形態によれば、スレーブインターフェイス２は、マスタ回路からデータ転送要求を受けたときにデータ転送可能であれば、直ちにバス転送の終了とデータ転送の完了をスレーブインターフェイス１側に通知し、データ転送が可能でなければ、予め定められたサイクル数だけ待った後、データ転送が更に可能でなければ、バス転送の終了とデータ転送が可能でないことを通知する。待っている途中で転送可能になれば、直ちにバス転送の終了とデータ転送の完了とを通知する。このとき、バス調停回路１６は、複数のマスタ回路から転送要求が出されたときに、同じアドレスに転送要求しているマスタ回路に、連続して予め定められた回数以上、バスの占有権を与えないように調停する。これによって、共通バスにより回路間の配線を少なくし、従来は生じていたデッドロックを防いで、より効率よく同期通信を行うことができる。
【０１５３】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【産業上の利用可能性】
【０１５４】
複数の回路間でバスを介して同期通信によりデータ転送を行うバス通信システムの分野において、同期通信を行う回路間に共通バスを設けて回路間の配線を少なくすることができ、必要なときのみ共通バスを占有し、共通バスを占有し続けることがないため、効率よく同期通信を行うバス通信システムを実現することが可能となる。本発明は、複数の回路間で同期通信を行う大規模集積回路に広く適用することが可能である。
【図面の簡単な説明】
【０１５５】
【図１】本発明の一実施形態であるバス通信システムの要部構成を示すブロック図である。
【図２】図１のバス通信システムにおいて、Ｓｅｎｄ命令を実行する側の回路をマスタ回路とするようなバス通信システムの基本構成を示すブロック図である。
【図３】図２に示すバス通信システムにおいて、同期データの送り出し側の回路が受け取り側の回路よりも先に準備ができて、Ｓｅｎｄ命令がＲｅｃｅｉｖｅ命令よりも先に実行される場合のバス通信方法例を示すタイミング図である。
【図４】図１のバス調停回路において、バスの占有権を一旦下げる方法を用いたバス調停回路の構成例を示すブロック図である。
【図５】図１のバス調停回路において、バスの占有権をランダムに与える方法を用いたバス調停回路の構成例を示すブロック図である。
【図６】図２に示すバス通信システムにおいて、同期データの受け取り側の回路が送り出し側の回路よりも先に準備ができて、Ｒｅｃｅｉｖｅ命令がＳｅｎｄ命令よりも先に実行される場合のバス通信方法例を示すタイミング図である。
【図７】図１のバス通信システムにおいて、Ｒｅｃｅｉｖｅ命令を実行する側の回路をマスタ回路とするようなバス通信システムの基本構成を示すブロック図である。
【図８】図７に示すバス通信システムにおいて、同期データの送り出し側の回路が受け取り側の回路よりも先に準備ができて、Ｓｅｎｄ命令がＲｅｃｅｉｖｅ命令よりも先に実行された場合の通信方法例を示すタイミング図である。
【図９】図７に示すバス通信システムにおいて、同期データの受け取り側の回路が送り出し側の回路よりも先に準備ができて、Ｒｅｃｅｉｖｅ命令がＳｅｎｄ命令よりも先に実行された場合の通信方法例を示すタイミング図である。
【図１０】問題が生じた図２２の従来のバス通信システム構成に対応して、本発明のバス通信システムを適用したシステム構成を示すブロック図である。
【図１１】同期チャネルを用いた従来の通信システムの構成を示すブロック図である。
【図１２】図１１に示す同期チャネルＡを用いて回路１，２間でデータａの受け渡しを行う従来の同期チャネル通信システムの基本構成例を示すブロック図である。
【図１３】図１２に示す同期チャネル通信システムにおいて、同期データの送り出し側の回路が受け取り側の回路よりも先に準備ができて、Ｓｅｎｄ命令がＲｅｃｅｉｖｅ命令よりも先に実行される場合の通信方法例を示すタイミング図である。
【図１４】図１２に示す同期チャネル通信システムにおいて、同期データの受け取り側の回路が送り出し側の回路よりも先に準備ができて、Ｒｅｃｅｉｖｅ命令がＳｅｎｄ命令よりも先に実行された場合の通信方法例を示すタイミング図である。
【図１５】バスを用いた従来のバス通信システムの構成を示すブロック図である。
【図１６】Ｓｅｎｄ命令を実行する側の回路をマスタ回路とするような従来のバス通信システムの基本構成例を示すブロック図である。
【図１７】図１６に示すバス通信システムにおいて、同期データの送り出し側の回路が受け取り側の回路よりも先に準備ができて、Ｓｅｎｄ命令がＲｅｃｅｉｖｅ命令よりも先に実行された場合のバス通信方法例を示すタイミング図である。
【図１８】図１６に示すバス通信システムにおいて、同期データの受け取り側の回路が送り出し側の回路よりも先に準備ができて、Ｒｅｃｅｉｖｅ命令がＳｅｎｄ命令よりも先に実行された場合のバス通信方法例を示すタイミング図である。
【図１９】Ｒｅｃｅｉｖｅ命令を実行する側の回路をマスタ回路とするような従来のバス通信システムの基本構成例を示すブロック図である。
【図２０】図１９に示すバス通信システムにおいて、同期データの送り出し側の回路が受け取り側の回路よりも先に準備ができて、Ｓｅｎｄ命令がＲｅｃｅｉｖｅ命令よりも先に実行された場合の通信方法例を示すタイミング図である。
【図２１】図１９に示すバス通信システムにおいて、同期データの受け取り側の回路が送り出し側の回路よりも先に準備ができて、Ｒｅｃｅｉｖｅ命令がＳｅｎｄ命令よりも先に実行された場合の通信方法例を示すタイミング図である。
【図２２】従来のバス通信システムにおける問題点を説明するためのブロック図である。
【符号の説明】
【０１５６】
１１  マスタ回路
１２〜１５  スレーブ回路
１１ａ  マスタインターフェイス
１２ａ〜１５ａ  スレーブインターフェイス
１６，１６Ａ，１６Ｂ  バス調停回路
１６１Ａ，１６１Ｂ  マスタ制御部
１６２Ａ，１６２Ｂ  優先順位設定部
１６３  優先順位制御部
１６４  カウンタ
１６５  乱数発生部
２０，２０Ａ，２０Ｂ  バス通信システム
【図１】
2005196306.tif 000003
【図２】
2005196306.tif 000004
【図３】
2005196306.tif 000005
【図４】
2005196306.tif 000006
【図５】
2005196306.tif 000007
【図６】
2005196306.tif 000008
【図７】
2005196306.tif 000009
【図８】
2005196306.tif 000010
【図９】
2005196306.tif 000011
【図１０】
2005196306.tif 000012
【図１１】
2005196306.tif 000013
【図１２】
2005196306.tif 000014
【図１３】
2005196306.tif 000015
【図１４】
2005196306.tif 000016
【図１５】
2005196306.tif 000017
【図１６】
2005196306.tif 000018
【図１７】
2005196306.tif 000019
【図１８】
2005196306.tif 000020
【図１９】
2005196306.tif 000021
【図２０】
2005196306.tif 000022
【図２１】
2005196306.tif 000023
【図２２】
2005196306.tif 000024