(57)【要約】【課題】連続的にバスを使用可能なモジュールと、そうでないモジュールと柔軟に設定可能なバス調停装置およびバス調停方法を提供する。【解決手段】本発明のバス調停装置は、モジュール毎の優先度を保持する保持手段と、２以上のモジュールからのバス使用要求が競合したとき、競合するモジュールのうち最も高い優先度に対応するモジュールを判定し、判定された当該モジュールにバス使用許可を出力する許可手段と、前記複数のモジュール中の第１モジュールに対してバス使用許可が出力された時から第１設定時間内に、前記第１モジュールからバス使用要求が出力されたか否かを判定する判定手段と、第１設定時間内にバス使用要求が出力されたと判定された場合に、前記保持手段に保持された優先度のうち、前記第１モジュール以外のモジュールの優先度を低下させる変更手段とを備える。【選択図】 図１Ａ
2008097471.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続された複数のモジュールからのバス使用要求を調停し、バス使用許可を出力するバス調停装置であって、
モジュール毎の優先度を保持する保持手段と、
２以上のモジュールからのバス使用要求が競合したとき、競合するモジュールのうち最も高い優先度に対応するモジュールを判定し、判定された当該モジュールにバス使用許可を出力する許可手段と、
前記複数のモジュール中の第１モジュールに対してバス使用許可が出力された時から第１設定時間内に、前記第１モジュールからバス使用要求が出力されたか否かを判定する判定手段と、
第１設定時間内にバス使用要求が出力されたと判定された場合に、前記保持手段に保持された優先度のうち、前記第１モジュール以外のモジュールの優先度を低下させる変更手段と
を備えることを特徴とするバス調停装置。
【請求項２】
前記保持手段は、複数のモジュールに対応する複数のカウント手段を備え、
各カウント手段は、対応するモジュールにバス使用許可が出力されたとき、優先度としてのカウント値を１増加し、
前記変更手段は、判定手段によって第１設定時間内にバス使用要求が出力されたと判定された場合に、前記第１モジュール以外のモジュールに対応するカウント手段のカウント値を１減少させる
ことを特徴とする請求項１記載のバス調停装置。
【請求項３】
前記判定手段は、
前記第１モジュールにバス使用許可が出力されたときに計時を開始する第１タイマと、
前記第１モジュールからバス使用要求が出力されたときにセットされ、前記第１モジュールにバス使用許可が出力されたときにリセットされるフラグを保持するフラグ保持部と
を備え、
前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記フラグ保持手段にフラグがセットされていれば、前記第１モジュール以外のモジュールに対応するカウント手段のカウント値を１減少させる
ことを特徴とする請求項２記載のバス調停装置。
【請求項４】
前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記フラグ保持手段にフラグがセットされていなければ、全モジュールに対応するカウント手段のカウント値を１減少させる
ことを特徴とする請求項３記載のバス調停装置。
【請求項５】
前記判定手段は、
前記第１モジュールにバス使用許可が出力されたときに計時を開始する第１タイマと、
前記第１モジュールからバス使用要求が出力されたときに計時を開始する第２タイマとを備え、
前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記第２タイマの計時時間が第２設定時間より小さければ、前記第１モジュール以外のモジュールに対応するカウント手段のカウント値を１減少させる
ことを特徴とする請求項２記載のバス調停装置。
【請求項６】
前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記第２タイマの計時時間が第２設定時間より大きければ、全モジュールに対応するカウント手段のカウント値を１減少させる
ことを特徴とする請求項５記載のバス調停装置。
【請求項７】
バスに接続された複数のモジュールからのバス使用要求を調停し、バス使用許可を出力するバス調停装置であって、
モジュール毎の優先度を保持する保持手段と、
２以上のモジュールからのバス使用要求が競合したとき、競合するモジュールのうち最も高い優先度に対応するモジュールを判定し、判定された当該モジュールにバス使用許可を出力する許可手段と、
前記複数のモジュールに対応して設けられ、対応するモジュールに対してバス使用許可が出力された時から第１設定時間内に、当該モジュールからバス使用要求が出力されたか否かを判定する複数の判定手段と、
前記複数のモジュールに対応して設けられ、判定手段により第１設定時間内にバス使用要求が出力されたと判定された場合に、前記保持手段に保持された優先度のうち、当該判定手段に対応するモジュール以外のモジュールの優先度を低下させる複数の変更手段と
を備えることを特徴とするバス調停装置。
【請求項８】
前記各第１タイマは任意に設定された第１設定時間を保持する
ことを特徴とする請求項７記載のバス調停装置。
【請求項９】
前記保持手段は、複数のモジュールに対応する複数のカウント手段を備え、
各カウント手段は、対応するモジュールにバス使用許可が出力されたとき、優先度としてのカウント値を１増加し、
各変更手段は、対応するモジュールから第１設定時間内にバス使用要求が出力されたと対応する判定手段が判定した場合に、対応するモジュール以外のモジュールに対応するカウント手段のカウント値を１減少させる
ことを特徴とする請求項７記載のバス調停装置。
【請求項１０】
前記判定手段は、前記複数のモジュールに対応する第１タイマと、前記複数のモジュールに対応するフラグ保持部を備え、
各第１タイマは、対応するモジュールにバス使用許可が出力されたときに計時を開始し、
各フラグ保持部は、対応するモジュールからバス使用要求が出力されたときにセットされ、当該モジュールにバス使用許可が出力されたときにリセットされるフラグを保持し、
各変更手段は、対応する第１タイマによる計時時間が前記第１設定時間に達したときに、対応する前記フラグ保持手段にフラグがセットされていれば、対応するモジュール以外のモジュールに対応するカウント手段のカウント値を１減少させる
ことを特徴とする請求項９記載のバス調停装置。
【請求項１１】
前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記フラグ保持手段にフラグがセットされていなければ、全モジュールに対応するカウント手段のカウント値を１減少させる
ことを特徴とする請求項１０記載のバス調停装置。
【請求項１２】
前記判定手段は、前記複数のモジュールに対応する第１タイマと、前記複数のモジュールに対応する第２タイマとを備え、
各第１タイマは、対応するモジュールにバス使用許可が出力されたときに計時を開始し、
各第２タイマは、対応するモジュールからバス使用要求が出力されたときに計時を開始し、
前記各変更手段は、対応する前記第１タイマによる計時時間が前記第１設定時間に達したときに、対応する前記第２タイマの計時時間が第２設定時間より小さければ、対応するモジュール以外のモジュールに対応するカウント手段のカウント値を１減少させる
ことを特徴とする請求項９記載のバス調停装置。
【請求項１３】
前記各第２タイマは任意に設定された第２設定値を保持する
ことを特徴とする請求項１２記載のバス調停装置。
【請求項１４】
前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記第２タイマの計時時間が第２設定時間より大きければ、全モジュールに対応するカウント手段のカウント値を１減少させる
ことを特徴とする請求項１２記載のバス調停装置。
【請求項１５】
前記許可手段は、
２以上のモジュールからのバス使用要求が競合したとき、前記優先度の判定をする前に、
競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、越えていると判定した第２タイマに対応するモジュールにバス使用許可を出力する
ことを特徴とする請求項１２記載のバス調停装置。
【請求項１６】
前記許可手段は、
２以上のモジュールからのバス使用要求が競合したとき、前記優先度の判定をする前に、
競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、
越えていると判定した第２タイマに対応するカウント手段のカウント値が前記複数のカウント手段中の最小値であるか否かを判定し、
最小値であると判定した場合に当該モジュールにバス使用許可を出力する
ことを特徴とする請求項１２記載のバス調停装置。
【請求項１７】
前記許可手段は、
２以上のモジュールからのバス使用要求が競合したとき、前記優先度の判定をする前に、
競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、
越えていると判定した第２タイマに対応するカウント手段のカウント値を最大値に変更する
ことを特徴とする請求項１２記載のバス調停装置。
【請求項１８】
前記許可手段は、さらに、
２以上のモジュールからのバス使用要求が競合したとき、前記優先度の判定をする前に、第２タイマの計時時間が前記第３設定値を越えていると判定した前記第２タイマに対応するカウント手段以外のカウント値を最小値に変更する
ことを特徴とする請求項１７記載のバス調停装置。
【請求項１９】
前記バス調停装置は、さらに、モジュール毎に対応し、動作モード情報を保持するモードレジスタを備え、
動作モード情報は、２以上のモジュールからのバス使用要求が競合し、かつ競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているときに、前記優先度の判定をする前に前記許可手段が実行すべき動作を示し、
前記許可手段は、動作モード情報に応じて（ａ）から（ｄ）の何れかを実行し、
（ａ）競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、越えていると判定した第２タイマに対応するモジュールにバス使用許可を出力する
（ｂ）競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、
越えていると判定した第２タイマに対応するカウント手段のカウント値が前記複数のカウント手段中の最小値であるか否かを判定し、
最小値であると判定した場合に当該モジュールにバス使用許可を出力する
（ｃ）競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、
越えていると判定した第２タイマに対応するカウント手段のカウント値を最大値に変更する
（ｄ）（ｃ）に加えて、第２タイマの計時時間が前記第３設定値を越えていると判定した前記第２タイマに対応するカウント手段以外のカウント値を最小値に変更する
ことを特徴とする請求項１２記載のバス調停装置。
【請求項２０】
バスに接続された複数のモジュールからのバス使用要求を、モジュール毎の優先度に従って調停し、バス使用許可を出力するバス調停方法であって、
前記複数のモジュール中の第１モジュールに対してバス使用許可が出力された時から第１設定時間内に、前記第１モジュールからバス使用要求が出力されたか否かを判定するステップと、
第１設定時間内にバス使用要求が出力されたと判定された場合に、前記第１モジュール以外のモジュールの優先度を低下させる変更ステップと
を有することを特徴とするバス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のモジュールが共通のバスを使用する場合において、各モジュールから発せられるバス使用要求を調停するバス調停装置およびバス調停方法に関する。
【背景技術】
【０００２】
従来、複数のモジュールが共通のバスを使用する場合に複数のモジュールからのバス使用要求が競合するとき、どのモジュールにバス使用許可を与えるかを調停するバス調停回路に関して、例えば特開２０００−２０１１６１号公報で示されているものがある。
【０００３】
以下上記文献に記載されたアービトレーション制御回路について説明する。
図３９は上記文献に記載されたアービトレーション制御回路の構成を示すブロック図である。図３９に示すようにアービトレーション制御回路３９００には、アービトレーションカウンタ部３９０１、優先度設定レジスタ部３９０２、優先度判定部３９０３、ＣＰＵ３９０４が設けられている。システムバス３９０５には、複数のモジュールが接続されている。
【０００４】
アービトレーション制御回路３９００は、複数のモジュールからのバス使用要求が競合する場合に、それらのバス使用要求を調停する。
【０００５】
アービトレーションカウンタ部３９０１はシステムバス３９０５を介して、システムバス３９０５に接続されたモジュールからのバス使用要求３９０６を入力し、このバス使用要求３９０６をもとにして各モジュールのバス使用要求回数をカウントする。各モジュールからのバス使用要求は、バス使用許可が与えられるまで各モジュールから例えばバスサイクル毎に出力される。
【０００６】
優先度設定レジスタ部３９０２は、システムバス３９０５を共有している複数のモジュールのアービトレーション優先度を記憶するもので、ＣＰＵ３９０４によって各モジュールに対するアービトレーション優先度が設定される。
【０００７】
優先度判定部３９０３は、システムバスに接続された各モジュールから発せられたバス使用要求３９０６を受け、これに応じて優先度設定レジスタ３９０２に設定されたアービトレーション優先度と、アービトレーションカウンタ部３９０１のバス使用要求回数とを参照して優先度判定を行い、システムバス３９０５上に判定したバス使用許可を与えるモジュールを示す識別情報を送出する。具体的には、この優先度判定部３９０２は、カウント値が最も大きいモジュールが１つだけである場合には、そのモジュールにバス使用許可を与える。もしカウンタ値が最も大きいモジュールが複数ある場合には、カウンタ値が最も大きいモジュールの中で優先度設定レジスタ３９０２に記憶された各モジュールに対するアービトレーション優先度が最も大きいモジュールにバス使用許可を与える。
【０００８】
さらに、優先度判定部３９０３は、バス使用の許可と同時にアービトレーションカウンタ部３９０１に対してバス使用許可を与えたモジュールのカウンタ値を０にリセットするようにカウンタリセット信号３９０７により通知する。
【０００９】
またＣＰＵ３９０４は、優先度設定レジスタ３９０２に記憶された各モジュールに対するアービトレーション優先度を任意に設定する書き換え装置として機能する。
【００１０】
以上の構成により、バスを共有する複数のモジュールからのバス使用要求回数を各々のモジュールごとにカウントし、一方複数のモジュール各々に対して任意に優先度を設定することができる。バスを共有する複数のモジュールからバス使用要求が発せられた場合には、カウント値が最も大きいモジュールにバス使用許可を与えることができる。またカウンタ値が最も大きいモジュールが複数ある場合には、カウンタ値が最も大きいモジュールの中で優先度設定レジスタ３９０２に記憶された各モジュールに対するアービトレーション優先度が最も大きいモジュールにバス使用許可を与えることができる。
【特許文献１】特開２０００−２０１１６１号公報（第３−６頁、第一図）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら上記の従来の技術においては、あるモジュールが一度バス使用許可を与えられるとカウンタ値がリセットされ、優先順位がさがってしまいバス使用許可が与えられにくくなる。そのため、あるモジュールが連続的にバスを使用したい場合には、連続してバス使用要求を発するが、他のモジュールがバス使用要求を発していれば連続してバス使用許可が与えられることはない。一方、モジュールがバスを使用する頻度は各モジュールによって異なり、動作させるアプリケーションによっても各モジュールのバス使用要求は時々刻々と変化する。そのため、あるモジュールが連続的にバスを使用したい場合がある。このような場合には従来の調停装置では対応することができない。
【００１２】
上記課題を解決するために本発明は、バスを共有する複数のモジュールからのバス使用要求に対して調停を行う場合に、連続的にバスを使用可能なモジュールと、そうでないモジュールと柔軟に設定可能なバス調停装置およびバス調停方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決する本発明のバス調停方法は、バスに接続された複数のモジュールからのバス使用要求を調停し、バス使用許可を出力するバス調停装置であって、モジュール毎の優先度を保持する保持手段と、２以上のモジュールからのバス使用要求が競合したとき、競合するモジュールのうち最も高い優先度に対応するモジュールを判定し、判定された当該モジュールにバス使用許可を出力する許可手段と、前記複数のモジュール中の第１モジュールに対してバス使用許可が出力された時から第１設定時間内に、前記第１モジュールからバス使用要求が出力されたか否かを判定する判定手段と、第１設定時間内にバス使用要求が出力されたと判定された場合に、前記保持手段に保持された優先度のうち、前記第１モジュール以外のモジュールの優先度を低下させる変更手段とを備える。
【００１４】
この構成によれば、第１に、複数のモジュールのうち第１モジュールは他のモジュールよりも連続的にバスを使用可能にすることができる。なぜなら、第１モジュールがバス使用を許可されてから再度バス使用要求を出力するまでの時間が第１設定時間内であれば、判定手段によって連続的なバス使用要求とみなされる。連続的なバス使用要求であるとみなされた場合、変更手段は、第１モジュール以外のモジュールの優先度を下げる。この優先度の変更によって、許可手段が、第１モジュールに再度バス使用許可を出力する可能性が高めているからである。第２に、第１モジュールとそれ以外のモジュールとを柔軟に設定することができる。なぜなら、上記の判定手段と変更手段とに対応するモジュールは、第１モジュールになるからである。複数のモジュールのうち、少なくとも１つのモジュールに対応させることによって、少なくとも１つのモジュールを第１モジュールとすることができる。したがって、上記バス調停装置は、連続的にバスを使用可能なモジュールと、そうでないモジュールと柔軟に設定可能である。第３に、第１モジュールが必要とする連続的なバス使用の最大の時間間隔を第１設定時間と設定することにより、第１モジュールの連続バス使用を容易に保証することができる。
【００１５】
ここで、前記保持手段は、複数のモジュールに対応する複数のカウント手段を備え、各カウント手段は、対応するモジュールにバス使用許可が出力されたとき、優先度としてのカウント値を１増加し、前記変更手段は、判定手段が第１設定時間内にバス使用要求が出力されたと判定された場合に、前記第１モジュール以外のモジュールに対応するカウント手段のカウント値を１減少させるようにしてもよい。この構成によれば、モジュール毎の優先度は、バス使用許可が出力されたとき＋１上がり、第１モジュールにバス使用許可が出力されてから第１設定時間内に第１モジュールにバス使用要求が出力されたときに１下がる。このように変更手段は、モジュール毎の優先度を、第１モジュールの連続アクセスを可能にするように動的に変更することができる。
【００１６】
ここで、前記判定手段は、前記第１モジュールにバス使用許可が出力されたときに計時を開始する第１タイマと、前記第１モジュールからバス使用要求が出力されたときにセットされ、前記第１モジュールにバス使用許可が出力されたときにリセットされるフラグを保持するフラグ保持部とを備え、前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記フラグ保持手段にフラグがセットされていれば、前記第１モジュール以外のモジュールに対応するカウント手段のカウント値を１減少させるようにしてもよい。この構成によれば、判定手段は、第１タイマとフラグ保持手段という簡単な構成で実現することができる。
【００１７】
ここで、前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記フラグ保持手段にフラグがセットされていなければ、全モジュールに対応するカウント手段のカウント値を１減少させるようにしてもよい。この構成によれば、第１モジュールが連続的なバス使用要求を出力しない場合に、第１モジュールに対応するカウント手段が＋１増加し続けることを防止することができる。
【００１８】
ここで、前記判定手段は、前記第１モジュールにバス使用許可が出力されたときに計時を開始する第１タイマと、前記第１モジュールからバス使用要求が出力されたときに計時を開始する第２タイマとを備え、前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記第２タイマの計時時間が第２設定時間より小さければ、前記第１モジュール以外のモジュールに対応するカウント手段のカウント値を１減少させるようにしてもよい。この構成によれば、第１モジュールが複数存在する場合に、他の第１モジュールの変更手段によってカウンタ（優先度）が下げられるのを防止することができる。第２設定時間は、第１設定時間以上の時間が設定され、前記第１タイマによる計時時間が前記第１設定時間に達した以降に、他の第１モジュールの変更手段によって自身の優先度が変更されるのをマスク（禁止）する時間として設定することができる。言い換えれば、第２設定時間が長いほど、他の第１モジュールの変更手段によって優先度が下げられることを防止することができる。
【００１９】
ここで、前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記第２タイマの計時時間が第２設定時間より大きければ、全モジュールに対応するカウント手段のカウント値を１減少させるようにしてもよい。この構成によれば、カウント手段が＋１増加し続けることを防止することができる。
【００２０】
また、本発明のバス調停装置は、バスに接続された複数のモジュールからのバス使用要求を調停し、バス使用許可を出力するバス調停装置であって、モジュール毎の優先度を保持する保持手段と、２以上のモジュールからのバス使用要求が競合したとき、競合するモジュールのうち最も高い優先度に対応するモジュールを判定し、判定された当該モジュールにバス使用許可を出力する許可手段と、前記複数のモジュールに対応して設けられ、対応するモジュールに対してバス使用許可が出力された時から第１設定時間内に、当該モジュールからバス使用要求が出力されたか否かを判定する複数の判定手段と、前記複数のモジュールに対応して設けられ、判定手段により第１設定時間内にバス使用要求が出力されたと判定された場合に、前記保持手段に保持された優先度のうち、当該判定手段に対応するモジュール以外のモジュールの優先度を低下させる複数の変更手段とを備える。ここで、前記各第１タイマは任意に設定された第１設定時間を保持するようにしてもよい。
【００２１】
この構成によれば、第１に、各モジュールは、第１設定時間を基準として連続的にバスを使用可能にすることができる。なぜなら、モジュールがバス使用を許可されてから再度バス使用要求を出力するまでの時間が第１設定時間内であれば、判定手段によって連続的なバス使用要求とみなされる。連続的なバス使用要求であるとみなされた場合、変更手段は、他のモジュールの優先度を下げる。この優先度の変更によって、許可手段が、同じモジュールに再度バス使用許可を出力する可能性が高めているからである。第２に、モジュール毎に、連続してバスを使用するモジュールとするか否かを柔軟に設定することができる。例えば、連続的なバス使用を必要とするモジュールは、連続使用の最大の時間間隔を第１設定時間と設定することにより、当該モジュールの連続バス使用を容易に保証することができる。連続的なバス使用を必要としないモジュールは、必要とするバス使用の間隔よりも短い時間を第１設定時間に設定することにより、連続使用の保証外となることができる。
【００２２】
ここで、前記保持手段は、複数のモジュールに対応する複数のカウント手段を備え、各カウント手段は、対応するモジュールにバス使用許可が出力されたとき、優先度としてのカウント値を１増加し、各変更手段は、対応するモジュールから第１設定時間内にバス使用要求が出力されたと対応する判定手段が判定した場合に、対応するモジュール以外のモジュールに対応するカウント手段のカウント値を１減少させるようにしてもよい。この構成によれば、モジュール毎の優先度は、バス使用許可が出力されたとき＋１上がり、各モジュールにバス使用許可が出力されてから第１設定時間内に当該モジュールにバス使用要求が出力されたときに１下がる。このように変更手段は、モジュール毎の優先度を、第１モジュールの連続アクセスを可能にするように動的に変更することができる。
【００２３】
ここで、前記判定手段は、前記複数のモジュールに対応する第１タイマと、前記複数のモジュールに対応するフラグ保持部を備え、各第１タイマは、対応するモジュールにバス使用許可が出力されたときに計時を開始し、各フラグ保持部は、対応するモジュールからバス使用要求が出力されたときにセットされ、当該モジュールにバス使用許可が出力されたときにリセットされるフラグを保持し、各変更手段は、対応する第１タイマによる計時時間が前記第１設定時間に達したときに、対応する前記フラグ保持手段にフラグがセットされていれば、対応するモジュール以外のモジュールに対応するカウント手段のカウント値を１減少させるようにしてもよい。この構成によれば、判定手段は、第１タイマとフラグ保持手段という簡単な構成で実現することができる。
【００２４】
ここで、前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記フラグ保持手段にフラグがセットされていなければ、全モジュールに対応するカウント手段のカウント値を１減少させるようにしてもよい。この構成によれば、カウント手段が＋１増加し続けることを防止することができる。
【００２５】
ここで、前記判定手段は、前記複数のモジュールに対応する第１タイマと、前記複数のモジュールに対応する第２タイマとを備え、各第１タイマは、対応するモジュールにバス使用許可が出力されたときに計時を開始し、各第２タイマは、対応するモジュールからバス使用要求が出力されたときに計時を開始し、前記各変更手段は、対応する前記第１タイマによる計時時間が前記第１設定時間に達したときに、対応する前記第２タイマの計時時間が第２設定時間より小さければ、対応するモジュール以外のモジュールに対応するカウント手段のカウント値を１減少させるようにしてもよい。ここで、前記各第２タイマは任意に設定された第２設定値を保持するようにしてもよい。
【００２６】
この構成によれば、他のモジュールの変更手段によってカウンタ（優先度）が下げられるのを防止することができる。第２設定時間は、第１設定時間以上の時間が設定され、前記第１タイマによる計時時間が前記第１設定時間に達した以降に、他のモジュールの変更手段によって自身の優先度が変更されるのをマスク（禁止）する時間として設定することができる。言い換えれば、第２設定時間が長いほど、他のモジュールの変更手段によって優先度が下げられることを防止することができる。
【００２７】
ここで、前記変更手段は、前記第１タイマによる計時時間が前記第１設定時間に達したときに、前記第２タイマの計時時間が第２設定時間より大きければ、全モジュールに対応するカウント手段のカウント値を１減少させるようにしてもよい。この構成によれば、この構成によれば、カウント手段が＋１増加し続けることを防止することができる。
【００２８】
ここで、前記許可手段は、２以上のモジュールからのバス使用要求が競合したとき、前記優先度の判定をする前に、競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、越えていると判定した第２タイマに対応するモジュールにバス使用許可を出力するようにしてもよい。この構成によれば、連続的なバス使用を必要とするモジュールが、連続的なバス使用の間に他のモジュールのバス使用を排除し続けることを防止することができる。言い換えれば、あるモジュールが連続的なバス使用をする間に、連続的なバス使用を必要としないモジュールにもバス使用許可を与えることができる。第３設定値は、連続的なバス使用を必要としないモジュールであるけれども、当該モジュールがたまにあるいは定期的にバス使用を行いたい時間として設定される。
【００２９】
ここで、前記許可手段は、２以上のモジュールからのバス使用要求が競合したとき、前記優先度の判定をする前に、競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、越えていると判定した第２タイマに対応するカウント手段のカウント値が前記複数のカウント手段中の最小値であるか否かを判定し、最小値であると判定した場合に当該モジュールにバス使用許可を出力するようにしてもよい。この構成によれば、連続的なバス使用を必要とするモジュールが、連続的なバス使用の間に他のモジュールのバス使用を排除し続けることを防止することができ、優先度が最小のモジュールが永遠に排除されることを防止することができる。
【００３０】
ここで、前記許可手段は、２以上のモジュールからのバス使用要求が競合したとき、前記優先度の判定をする前に、競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、越えていると判定した第２タイマに対応するカウント手段のカウント値を最大値に変更ようにしてもよい。この構成によれば、連続的なバス使用を必要とするモジュールが、連続的なバス使用の間に他のモジュールのバス使用を排除し続けることを防止することができる。言い換えれば、第３設定値を越えているモジュールの優先度は最高に変更されるので（カウント手段のカウント値が最大値に変更されるので)、当該モジュールには近いうちにバス使用許可が出力されることになる。
【００３１】
ここで、前記許可手段は、さらに、２以上のモジュールからのバス使用要求が競合したとき、前記優先度の判定をする前に、第２タイマの計時時間が前記第３設定値を越えていると判定した前記第２タイマに対応するカウント手段以外のカウント値を最小値に変更するようにしてもよい。この構成によれば、連続的なバス使用を必要とするモジュールが、連続的なバス使用の間に他のモジュールのバス使用を排除し続けることを防止することができる。言い換えれば、第３設定値を越えているモジュール以外の優先度は最低に変更されるので（カウント手段のカウント値が最小値に変更されるので)、当該第３設定値を越えているモジュールには近いうちにバス使用許可が出力されることになる。
【００３２】
ここで、前記バス調停装置は、さらに、モジュール毎に対応し、動作モード情報を保持するモードレジスタを備え、動作モード情報は、２以上のモジュールからのバス使用要求が競合し、かつ競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているときに、前記優先度の判定をする前に前記許可手段が実行すべき動作を示し、前記許可手段は、動作モード情報に応じて次の（ａ）から（ｄ）の何れかを実行するようにしてもよい。（ａ）競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、越えていると判定した第２タイマに対応するモジュールにバス使用許可を出力する。（ｂ）競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、越えていると判定した第２タイマに対応するカウント手段のカウント値が前記複数のカウント手段中の最小値であるか否かを判定し、最小値であると判定した場合に当該モジュールにバス使用許可を出力する。（ｃ）競合するモジュールに対応する第２タイマの計時時間が第２設定時間より大きい第３設定値を越えているか否かを判定し、越えていると判定した第２タイマに対応するカウント手段のカウント値を最大値に変更する。（ｄ）（ｃ）に加えて、第２タイマの計時時間が前記第３設定値を越えていると判定した前記第２タイマに対応するカウント手段以外のカウント値を最小値に変更する。この構成によれば、モジュールが必要とするバス使用の頻度や回数や連続性に応じて適切な動作モードをモジュール毎に設定することができる。
【００３３】
また、本発明のバス調停方法はバスに接続された複数のモジュールからのバス使用要求を、モジュール毎の優先度に従って調停し、バス使用許可を出力するバス調停方法であって、前記複数のモジュール中の第１モジュールに対してバス使用許可が出力された時から第１設定時間内に、前記第１モジュールからバス使用要求が出力されたか否かを判定するステップと、第１設定時間内にバス使用要求が出力されたと判定された場合に、前記第１モジュール以外のモジュールの優先度を低下させる変更ステップとを有する。この構成によれば、上記のバス調停装置と同様の作用および効果を有する。
【発明の効果】
【００３４】
本発明のバス調停装置およびバス調停方法によれば、各モジュールは、第１設定時間を基準として連続的にバスを使用可能にすることができる。
【００３５】
また、モジュール毎に、連続してバスを使用するモジュールとするかしないかを柔軟に設定することができる。
【００３６】
連続的なバス使用を必要とするモジュールが、連続的なバス使用によって他のモジュールのバス使用を排除し続けることを防止することができる。
【００３７】
連続的なバス使用を必要とするモジュールが、連続的なバス使用によって優先度が最小のモジュールが永遠に排除されることを防止することができる。
【発明を実施するための最良の形態】
【００３８】
以下本発明の実施の形態について図面を参照しながら説明する。
【００３９】
（第１の実施の形態）
第１の実施の形態では、カウンタの値が最大のモジュールにバス使用許可を発行するバス調停装置において、あるモジュールが連続して共有バスを使用しようとしたとき、当該モジュールに対応するカウンタの値が減算されずに、当該モジュールを除くその他のモジュールに対応するカウンタの値が減算されることによって、連続してバス使用要求を発行したモジュールが優先的にバスを使用できるようにバス使用許可発行の優先順位を柔軟に変更する構成について説明する。
【００４０】
本実施の形態におけるバス調停装置は、バスに接続された複数のモジュールからのバス使用要求を、モジュール毎の優先度に従って調停し、バス使用許可を出力する。その際、バス調停装置は、あるモジュールに対してバス使用許可が出力された時から第１設定時間内に、当該モジュールからバス使用要求が出力されたか否かを判定し、第１設定時間内にバス使用要求が出力されたと判定した場合に、当該モジュール以外のモジュールの優先度を低下させる。これにより、各モジュールは、第１設定時間を基準として連続的にバスを使用可能になる。なぜなら、モジュールがバス使用を許可されてから再度バス使用要求を出力するまでの時間が第１設定時間内であれば、判定手段によって連続的なバス使用要求とみなされ、他のモジュールの優先度を下げるからである。
【００４１】
図１Ａは、本発明の第１の実施の形態によるバス調停装置の構成を示すブロック図である。同図に示すようにバス調停装置１２７は、カウンタ１０７〜１０９、許可モジュール保持レジスタ１１０、第１タイマ１１１〜１１３、減算回路１１４〜１１６、フリップフロップ（以下ＦＦと略す。）１１７ａ〜１１９ａ、優先度判定部１２６を備える。また、同図には、バスに接続されたモジュール１０１〜１０３も図示してある。バス調停装置１２７は、モジュール１０１〜１０３からのバス使用要求１０４〜１０６が競合する場合に調停を行い、モジュール１０１〜１０３の何れかに対してバス使用許可を与える。
【００４２】
カウンタ１０７〜１０９は、モジュール１０１〜１０３に対応し、モジュール毎の優先度を保持する保持手段として機能する。カウンタ１０７は、バス使用許可１２３とＦＦ１１７ａからの通知と減算回路１１４からの通知を入力し、モジュール１０１に対してバス使用許可が与えられたとき優先度としてのカウント値を＋１カウントし、ＦＦ１１７ａのフラグがバス使用要求がないことを示し、かつ減算回路１１４からの減算を指示するとき、カウントを減算する。また、値が最大値のときにバス使用許可１２３〜１２５が発行されると値を０にセットする。カウンタ１０８、１０９は、対応するモジュール、ＦＦおよび減算回路が異なる点以外は、カウンタ１０７と同様である。
【００４３】
許可モジュール保持レジスタ１１０は、バス使用許可１２３〜１２５を入力し、最後にバス使用許可を与えたモジュールを表す情報を格納する。この情報は、競合するモジュールの優先度が同じ場合に、ラウンドロビンにより競合するモジュールの何れか選択するために用いられる。
【００４４】
第１タイマ１１１〜１１３は、モジュール１０１〜１０３に対応して設けられる。第１タイマ１１１は、バス使用許可１２３を入力し、モジュール１０１に対してバス使用許可が与えられると同時に計時を開始し、あらかじめ設定された第１設定値（つまり第１設定時間）に達すると減算回路１１４へ通知し、動作を停止して値をリセットする。第１タイマ１１２、１１３についても、対応するモジュール等が異なる点以外、第１タイマ１１１と同様である。上記第１設定値は、モジュール毎に任意に設定可能である。各モジュールがバス使用を許可されてから再度バス使用要求を出力するまでの時間が第１設定値内であれば、連続的なバス使用要求とみなされる。第１設定値は、連続的なバス使用とみなすための設定時間である。例えば、モジュール１０１が必要とする連続的なバス使用の最大の時間間隔が設定されることが望ましい。
【００４５】
減算回路１１４〜１１６は、モジュール１０１〜１０３に対応して設けられ、複数の変更手段の一部の機能を発揮する。なお、上記複数の変更手段の他の機能は優先度判定部１２６による。減算回路１１４は、第１タイマ１１１からの第１設定値に達した旨の通知を入力し、通知を受けると減算信号１２８をカウンタ１０７〜１０９に発する。この減算信号１２８は、カウンタ１０７〜１０９それぞれを１減算させる信号である。ただし、カウンタ１０７に入力される減算信号１２８は、ＦＦ１０７ａのフラグによりマスクされる。つまり、カウンタ１０７は、減算信号１２８がアクティブであってもＦＦ１０７ａがセットされていれば減算されず、減算信号１２８がアクティブでありかつＦＦ１０７ａがリセットされていれば減算される。減算回路１１５、１１６についても、対応するモジュール、ＦＦ等が異なる点以外、減算回路１１４と同様である。
【００４６】
ＦＦ１１７ａ〜１１９ａは、複数のフラグ保持手段（あるいは上記複数の判定手段）として機能し、モジュール１０１〜１０３に対応して設けられる。ＦＦ１１７ａは、対応するモジュール１０１からバス使用要求が出力されたときにセットされ、モジュール１０１にバス使用許可が出力されたときにリセットされるフラグを保持する。言い換えれば、ＦＦ１１７ａは、モジュール１０１に対してバス使用許可が出力された時から第１設定値内に、当該モジュールからバス使用要求が出力されたか否かを判定する上記の判定手段として機能する。ＦＦ１１７ａのフラグは、対応するカウンタ１０７において減算信号１２８をマスクするために用いられる。ＦＦ１１８ａ、１１９ａについても、対応するモジュール等が異なる点以外、ＦＦ１１７ａと同様である。
【００４７】
優先度判定部１２６は、上記の許可手段として機能し、２以上のモジュールからのバス使用要求が競合したとき、競合するモジュールのうち最も高い優先度に対応するモジュールを判定し、判定された当該モジュールにバス使用許可を出力し、１つのモジュールからのバス使用要求が出力されたとき、当該モジュールにバス使用許可を出力する。
【００４８】
上記のように、各減算回路、各ＦＦおよび優先度判定部１２６は、上記複数の変更手段としての機能を有する。具体的には、モジュール１０１に対応する変更手段は、減算回路１１４、ＦＦ１１７ａおよび優先度判定部１２６により実現され、モジュール１０１に対応するＦＦ１１７ａにより第１設定時間内にモジュール１０１からバス使用要求が出力されたと判定された場合に、保持手段（カウンタ１０７〜１０９)に保持された優先度のうち、ＦＦ１１７ａに対応するモジュール１０１以外のモジュール１０２、１０３の優先度を下げるようにカウンタ１０８およびカウンタ１０９から１を減算する。この減算からカウンタ１０７が除外されるのは、ＦＦ１０７ａにセットされたフラグによってカウンタ１０７への減算信号１２８がマスクされるからである。
【００４９】
以上説明してきたように本発明のバス調停装置によれば、各モジュールは、第１設定時間を基準として連続的にバスを使用可能にすることができる。具体的には、各モジュールがバス使用を許可されてから再度バス使用要求を出力するまでの時間が第１設定時間内であれば、ＦＦにフラグがセットされて連続的なバス使用要求と判定される。連続的なバス使用要求であると判定された場合、変更手段は、他のモジュールの優先度を下げる。この優先度の変更によって、許可手段が、同じモジュールに再度バス使用許可を出力する可能性が高めているからである。
【００５０】
また、モジュール毎に、連続してバスを使用するモジュールとするか否かを柔軟に設定することができる。具体的には、連続的なバス使用を必要とするモジュールは、連続使用の最大の時間間隔を第１設定時間と設定ことにより、当該モジュールの連続バス使用を容易に保証することができる。連続的なバス使用を必要としないモジュールは、必要とするバス使用の間隔よりも短い時間を第１設定時間に設定することにより、連続使用の保証をしないこともできる。
【００５１】
なお、図１Ａのバス調停装置では、ＦＦ１１７ａ〜１１９ａをモジュール毎に備える構成を説明したが、１つのモジュール（第１モジュールと呼ぶ。）に対応する１つのＦＦのみを備える構成としてもよい。この場合でも、複数のモジュールのうち第１モジュールは、連続的なバス使用を可能にすることができる。また、複数のモジュールのうち連続的なバス使用を必要とする２以上のモジュールのみに対してＦＦを備えるようにしてもよい。
【００５２】
（第２の実施の形態）
第２の実施の形態のバス調停装置は、第１の実施の形態におけるＦＦ（フラグ保持部）の代わりに、第２タイマを備えるよう構成している。第２タイマを備えることにより、他のモジュールの減算回路によって、自身のモジュールの優先度が減算されるのをマスク（禁止）する時間を設定することができる。
【００５３】
図１Ｂは、本発明の第２の実施の形態によるバス調停装置の構成を示すブロック図である。
【００５４】
まず、本発明の第２の実施の形態によるバス調停装置の構成について図１Ｂを用いて説明する。図１Ｂに示すようにバス調停装置１２７には、カウンタ１０７〜１０９、許可モジュール保持レジスタ１１０、第１タイマ１１１〜１１３、減算回路１１４〜１１６、第２タイマ１１７〜１１９、優先度判定部１２６が設けられている。
【００５５】
バス調停装置１２７は接続されたモジュール１０１〜１０３からのバス使用要求１０４〜１０６に対して調停を行い、各モジュール１０１〜１０３に対してバス使用許可１２３〜１２５を与える。
【００５６】
カウンタ１０７〜１０９は、バス使用許可１２３〜１２５と第２タイマ１１７〜１１９からの通知と減算回路１１４〜１１６からの通知を入力し、バス使用許可１２３〜１２５が発行されると各モジュール１０１〜１０３に対して与えられたバス使用許可の回数をカウントし、第２タイマ１１７〜１１９からバス使用要求がない旨の通知があり、かつ減算回路１１４〜１１６からの減算を指示する通知があるとき、カウントを減算する。また、値が最大値のときにバス使用許可１２３〜１２５が発行されると値を０にセットする。
【００５７】
許可モジュール保持レジスタ１１０は、バス使用許可１２３〜１２５を入力し、最後にバス使用許可を与えたモジュールを表す情報を格納する。
【００５８】
第１タイマ１１１〜１１３は、バス使用許可１２３〜１２５を入力し、各モジュール１０１〜１０３に対してバス使用許可が与えられると同時に動作を開始し、あらかじめ設定された第１設定値を経過すると減算回路１１４〜１１６へ通知し、動作を停止して値をリセットする。
【００５９】
第２タイマ１１７〜１１９は、バス使用要求１０４〜１０６とバス使用許可１２３〜１２５を入力し、各モジュール１０１〜１０３からバス使用要求が発せられると同時に値をリセットして動作を開始し、あらかじめ設定された第２設定値を経過するとカウンタ１０７〜１０９に通知し、バス使用許可１２３〜１２５が発せられると動作を停止して値を最大値にセットする。ここで、第２設定値は、第１設定値以上の時間が設定され、第１タイマによる計時時間が第１設定値に達した以降に、他のモジュールの減算回路によって自身のカウンタの優先度が減算されるのをマスク（禁止）する時間として設定することができる。言い換えれば、第２設定値が長いほど、他のモジュールの減算回路手段によって優先度が下げられることを防止することができる。
【００６０】
減算回路１１４〜１１６は、第１タイマ１１１〜１１３からの通知を入力し、通知を受けると減算信号１２８〜１３０を発する。
【００６１】
優先度判定部１２６は、バス使用要求１０４〜１０６とカウンタ１０７〜１０９の値と許可モジュール保持レジスタ１１０の保持するバス使用許可モジュールの情報とを入力し、カウンタ１０７〜１０９の値とバス使用許可モジュールの情報に基づいて各モジュール１０１〜１０３に対してバス使用許可１２３〜１２５を発行する。
【００６２】
続いて、本発明の第２の実施の形態によるバス調停装置におけるバス調停方法の処理の流れについて、図２〜図５を用いて説明する。
【００６３】
図２は本発明の第２の実施の形態によるバス調停装置におけるバス調停方法の処理の流れを示すフローチャートである。図３は図２に示す処理のうち、優先度判定における詳細な処理の流れを示すフローチャートである。図４は図３に示す処理のうち、保持モジュール確認における詳細な処理の流れを示すフローチャートである。図５は図２に示す処理のうち、使用許可回数減算における詳細な処理の流れを示すフローチャートである。
【００６４】
工程Ｓ２０１において、各モジュール１０１〜１０３がバスを使用したい時にバス使用要求１０４〜１０６をバス調停装置１２７に発行する。
【００６５】
工程２０２において、バス使用要求１０４〜１０６を発行した各モジュール１０１〜１０３に対応する第２タイマ１１７〜１１９の値をリセットし、計測を開始する。
【００６６】
工程Ｓ２０３において、バスが使用されているかいないかをチェックする。工程Ｓ２０３のチェックの結果、バスが使用されていた場合にはバスの使用が終了するまで工程Ｓ２０３を続行する。
【００６７】
工程Ｓ２０３のチェックの結果、バスを使用していない場合には優先度判定部１２６は工程Ｓ２０４において、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３の優先度判定を行い、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３のいずれかにバス使用許可１２３〜１２５を発行する。優先度判定については後述する。
【００６８】
工程Ｓ２０４の結果、バス使用許可１２３〜１２５が発行されると工程Ｓ２０５において、第１タイマ１１１〜１１３の計測を開始し、工程Ｓ２０６において、カウンタ１０７〜１０９の値を加算し、工程Ｓ２０７において、許可モジュール保持レジスタ１１０にバス使用許可が発行されたモジュールを示す情報を格納する。
【００６９】
工程Ｓ２０８において、使用許可減算を行い、カウンタ１０７〜１０９の値を減算する。使用許可減算については後述する。
【００７０】
工程Ｓ２０４の優先度判定が起動されると、図３に示すように工程Ｓ３０１において、バス使用要求１０４〜１０６を発行したモジュールが複数であるか単数であるかをチェックする。工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが単数の場合には、工程Ｓ３０６において、バス使用要求１０４〜１０６を発行したモジュールに対してバス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１１７〜１１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【００７１】
工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが複数の場合には工程Ｓ３０２において、カウンタ１０７〜１０９の値が最大であるかをチェックする。工程Ｓ３０２のチェックの結果、カウンタ１０７〜１０９の値が最大でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図２の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【００７２】
工程Ｓ３０２のチェックの結果、カウンタ１０７〜１０９の値が最大である場合には、工程Ｓ３０４において、値が最大であるカウンタ１０７〜１０９が複数であるか単数であるかをチェックする。工程Ｓ３０４のチェックの結果、値が最大であるカウンタが単数である場合には、工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１１７〜１１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【００７３】
工程Ｓ３０４のチェックの結果、値が最大であるカウンタが複数である場合には、工程Ｓ３０５において、保持モジュール確認を行い、バス使用許可１２３〜１２５を発行するモジュールを判定し、判定の結果に基づいて工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１１７〜１１９の値を最大値にセットして動作を停止し、優先度判定を終了する。保持モジュール確認については後述する。
【００７４】
工程Ｓ３０５の保持モジュール確認が起動されると、図４に示すように工程Ｓ４０１において、許可モジュール保持レジスタ１１０に保持されているモジュールと一致するかをチェックする。工程Ｓ４０１のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致する場合には、保持モジュール確認を終了し、図３の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１１７〜１１９の値を最大値にセットして動作を停止する。
【００７５】
工程Ｓ４０１のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致しない場合には、工程Ｓ４０２において、カウンタ１０７〜１０９の値が最大であるモジュールの中に許可モジュール保持レジスタ１１０に保持されているモジュールと一致するものがあるかないかをチェックする。工程Ｓ４０２のチェックの結果、カウンタ１０７〜１０９の値が最大であるモジュールの中に許可モジュール保持レジスタ１１０に保持されているモジュールと一致するモジュールがある場合には、そのモジュールにバス使用許可１２３〜１２５が発行されることになり、図２の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【００７６】
工程Ｓ４０２のチェック結果、カウンタ１０７〜１０９の値が最大であるモジュールの中に許可モジュール保持レジスタ１１０に保持されているモジュールと一致するモジュールがない場合には、工程Ｓ４０３において、ラウンドロビンによりバス使用許可１２３〜１２５が発行される順番であるかをチェックする。工程Ｓ４０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番である場合には、保持モジュール確認を終了し、図３の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１１７〜１１９の値を最大値にセットして動作を停止する。
【００７７】
工程Ｓ４０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図２の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【００７８】
工程Ｓ２０８の使用許可回数減算が起動されると、図５に示すように工程Ｓ５０１において、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過しているかをチェックする。工程Ｓ５０１のチェックの結果、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過していない場合には、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過するまで工程Ｓ５０１を繰り返す。
【００７９】
工程Ｓ５０１のチェックの結果、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過している場合には、工程Ｓ５０２において、第２タイマ１１７〜１１９の値があらかじめ設定した第２設定値を経過しているかをチェックする。工程Ｓ５０２のチェック結果、第２タイマ１１７〜１１９の値があらかじめ設定した第２設定値を経過している場合には、工程Ｓ５０３において、減算信号１２８〜１３０を発行し、カウンタ１０７〜１０９の値を減じて使用許可回数減算を終了する。
【００８０】
工程Ｓ５０２のチェック結果、第２タイマ１１７〜１１９の値があらかじめ設定した第２設定値を経過していない場合には、減算信号１２８〜１３０はカウンタ１０７〜１０９で受理されず、カウンタ１０７〜１０９の値はそのままで使用許可回数減算を終了する。
【００８１】
本発明の第２の実施の形態によるバス調停装置におけるバス調停方法について、図６を用いて、具体的に説明する。図６は本発明の第２の実施の形態によるバス調停装置におけるバス調停方法の動作を示すタイムチャートである。図１Ｂにおいて第１タイマ１１１〜１１３にあらかじめ設定する第１設定値を２、第２タイマ１１７〜１１９にあらかじめ設定する第２設定値を２、許可モジュール保持レジスタ１１０の初期値はモジュール１０１を示す値であるとする。また、ラウンドロビンによる優先度の遷移はモジュール１０１、モジュール１０３、モジュール１０２の順に遷移するとする。
【００８２】
（ｔ６０１）モジュール１０１がバス使用要求１０４、モジュール１０２がバス使用要求１０５を発行する（工程Ｓ２０１）と、第２タイマ１１７、１１８の値をリセットし、動作を開始する（工程Ｓ２０２）。バスの使用状態をチェックする（工程Ｓ２０３）と、未使用であるため、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ２０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、カウンタ１０７、１０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１０７，１０８とも値が最大であるため（工程Ｓ３０４）保持モジュール確認（工程Ｓ３０５）を行う。
【００８３】
（ｔ６０２）許可モジュール保持レジスタの値はモジュール１０１を示しているため（工程Ｓ４０１）、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。また、バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するモジュール１０１を示す値が許可モジュール保持レジスタに保持されているため（工程Ｓ４０２）、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【００８４】
（ｔ６０３）バス使用許可１２３が発行されると第２タイマ１１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ１０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【００８５】
（ｔ６０４）モジュール１０１が次のバス使用要求１０４を発行し（工程Ｓ２０１）、第２タイマ１１７の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１１８，１１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１５，１１６から減算信号１２９、１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。第２タイマ１１７の値は第２設定値より小さいためカウンタ１０７は、減算信号１２８を受理しない（工程Ｓ５０２）。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ２０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、カウンタ１０７、１０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１０７の値が唯一最大となっている（工程Ｓ３０４）。
【００８６】
（ｔ６０５）カウンタ１０７の値が唯一最大なので、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するカウンタ１０７の値が最大値であるため、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２９、１３０を受け、カウンタ１０８，１０９の値が減算される（工程Ｓ５０３）。
【００８７】
（ｔ６０６）バス使用許可１２３が発行されると第２タイマ１１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ１０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【００８８】
（ｔ６０７）第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１１７〜１１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４〜１１６から減算信号１２８〜１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。また、モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５の優先度判定を行う（工程Ｓ２０４）。
【００８９】
（ｔ６０８）バス使用要求１０５が単数で発行されているため（工程Ｓ３０１）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。また、減算信号１２８〜１３０を受けてカウンタ１０７〜１０９の値が減算される（工程Ｓ５０３）。
【００９０】
（ｔ６０９）バス使用許可１２４が発行されると第２タイマ１１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ１０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。
【００９１】
（ｔ６１０）モジュール１０２が次のバス使用要求１０５を発行し（工程Ｓ２０１）、第２タイマ１１８の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１２が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１１７，１１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４，１１６から減算信号１２８、１３０が発行され、第１タイマ１１２は動作を停止して、値をリセットする。第２タイマ１１８の値は第２設定値より小さいためカウンタ１０８は減算信号１２９を受理しない（工程Ｓ５０２）。モジュール１０２がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５の優先度判定を行う（工程Ｓ２０４）。
【００９２】
（ｔ６１１）バス使用要求１０５が単数で発行されているため（工程Ｓ３０１）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。また減算信号１２８、１３０を受けてカウンタ１０７、１０９の値が減算される（工程Ｓ５０３）。また、モジュール１０１がバス使用要求１０４を発行し（工程Ｓ２０１）、第２タイマ１１８の値をリセットし、動作を開始する（工程Ｓ２０２）。バスの状態はモジュール１０２が使用中のため（工程Ｓ２０３）、バス使用要求１０４はモジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【００９３】
（ｔ６１２）バス使用許可１２４が発行されると第２タイマ１１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。カウンタ１０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。また、モジュール１０３がバス使用要求１０６を発行し（工程Ｓ２０１）、第２タイマ１１９の値をリセットし、動作を開始する（工程Ｓ２０２）。バスの状態はモジュール１０２が使用中のため（工程Ｓ２０３）、バス使用要求１０４、１０６はモジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【００９４】
（ｔ６１３）モジュール１０２が次のバス使用要求１０５を発行し（工程Ｓ２０１）、第２タイマ１１８の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１２が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１１７が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４から減算信号１２８が発行され、第１タイマ１１２は動作を停止して、値をリセットする。第２タイマ１１８、１１９の値は第２設定値より小さいためカウンタ１０８、１０９は、減算信号１２９、１３０を受理しない（工程Ｓ５０２）。モジュール１０２がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４〜１０６の優先度判定を行う（工程Ｓ２０４）。複数のバス使用要求１０４〜１０６が発行されているため（工程Ｓ３０１）、カウンタ１０７〜１０９の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１０７、１０８の値が最大となっているため（工程Ｓ３０４）、保持モジュール確認（工程Ｓ３０５）を行う。バス使用要求１０６は、同時に発行されたバス使用要求１０４、１０５に対応するカウンタ１０７，１０８の値が最大となっているため、バス使用許可を与えられたモジュールがバス使用を終えるのを待つ（工程Ｓ２０３）。
【００９５】
（ｔ６１４）許可モジュール保持レジスタの値はモジュール１０２を示しているため（工程Ｓ４０１）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。また、バス使用要求１０４は、同時に発行されたバス使用要求１０５に対応するモジュール１０２を示す値が許可モジュール保持レジスタに保持されているため（工程Ｓ４０２）、モジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８を受けてカウンタ１０７の値が減算される（工程Ｓ５０３）。
【００９６】
（ｔ６１５）バス使用許可１２４が発行されると第２タイマ１１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ１０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０２が使用中のため（工程Ｓ２０３）、バス使用要求１０４、１０６は引き続きモジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【００９７】
（ｔ６１６）第１タイマ１１２が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１１７〜１１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４〜１１６から減算信号１２８〜１３０が発行され、第１タイマ１１２は動作を停止して、値をリセットする。モジュール１０２がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０６の優先度判定を行う（工程Ｓ２０４）。複数のバス使用要求１０４、１０６が発行されているため（工程Ｓ３０１）、カウンタ１０７、１０９の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１０７の値が唯一最大となっている（工程Ｓ３０４）。
【００９８】
（ｔ６１７）カウンタ１０７の値が唯一最大なので、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。バス使用要求１０６は、同時に発行されたバス使用要求１０４に対応するカウンタ１０７の値が最大値であるため、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８〜１３０を受けてカウンタ１０７〜１０９の値が減算される（工程Ｓ５０３）。
【００９９】
（ｔ６１８）バス使用許可１２３が発行されると第２タイマ１１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ１０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０６は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１００】
（ｔ６１９）第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１１７〜１１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４〜１１６から減算信号１２８〜１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。また、モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０６の優先度判定を行う（工程Ｓ２０４）。
【０１０１】
（ｔ６２０）バス使用要求１０６が単数で発行されているため（工程Ｓ３０１）、バス使用要求１０６に対してバス使用許可１２５が発行される（工程Ｓ３０６）。また、減算信号１２８〜１３０を受けてカウンタ１０７〜１０９の値が減算される（工程Ｓ５０３）。
【０１０２】
（ｔ６２１）バス使用許可１２５が発行されると第２タイマ１１９は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１３の動作を開始する（工程Ｓ２０５）。また、カウンタ１０９の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０３を示す値を格納する（工程Ｓ２０７）。
【０１０３】
以上のように、本発明の第２の実施の形態によるバス調停装置におけるバス調停方法では、あるモジュールが連続して共有バスを使用しようとしたとき、前記モジュールに対応するカウンタの値が減算されず、前記モジュールを除くその他のモジュールに対応するカウンタの値が減算され、カウンタの値が最大のモジュールにバス使用許可を発行することによって、連続してバス使用要求を発行したモジュールが優先的にバスを使用できるようにバス使用許可発行の優先順位を柔軟に変更することができる。
【０１０４】
なお、第１タイマにあらかじめ設定する第１設定値は、本実施の形態に記載される値に限られるものではない。また、第２タイマにあらかじめ設定する第２設定値は本実施の形態に記載される値に限られるものではない。また、ラウンドロビンによる優先順位の遷移の順番は本実施の形態に記載される順に限られるものではない。
【０１０５】
（第３の実施の形態）
上記第２の実施の形態におけるバス調停装置では、連続してバス使用要求を発行するモジュールが優先的にバスを使用することにより、その間バスを使用できないモジュールが出現する可能性がある。そこで、第３の実施の形態では、連続してバス使用要求を発行するモジュールが優先的にバスを使用することにより、バスを使用できなかったモジュールに対して確実にバスを使用できるようにしたバス調停装置について説明する。
【０１０６】
このバス調停装置は、第２タイマが第３の設定値を超えない場合には、カウンタの値が最大のモジュールにバス使用許可を発行し、第２タイマが第３の設定値を超えた場合には当該第２タイマに対応するモジュールにバス使用許可を発行する。これにより、連続してバス使用要求を発行しないモジュールでも確実にバスを使用できる。
【０１０７】
図７は、本発明の第３の実施の形態によるバス調停装置の構成を示すブロック図である。本発明の第３の実施の形態における図７の構成は、第２の実施の形態に示す図１Ｂと基本的に同じであるが、バス調停装置７２７に含まれる、第２タイマ７１７〜７１９の動作、優先度判定部７２６の動作、および優先度判定部７２６が第２タイマ７１７〜７１９からの通知を入力する点が図１Ｂと異なる。
【０１０８】
まず、本発明の第３の実施の形態によるバス調停装置の構成について、本発明の第２の実施の形態であるバス調停装置と異なるブロックについて説明する。
【０１０９】
第２タイマ７１７〜７１９は、バス使用要求１０４〜１０６とバス使用許可１２３〜１２５を入力し、各モジュール１０１〜１０３からバス使用要求が発せられると同時に値をリセットして動作を開始し、あらかじめ設定された第２設定値を経過するとカウンタ１０７〜１０９に通知し、あらかじめ設定された第３の設定値を経過すると優先度判定部７２６に通知し、バス使用許可１２３〜１２５が発せられると動作を停止して値を最大値にセットする。
【０１１０】
優先度判定部７２６は、バス使用要求１０４〜１０６とカウンタ１０７〜１０９の値と許可モジュール保持レジスタ１１０の保持するバス使用許可モジュールの情報と、第２タイマ７１７〜７１９からの通知を入力し、カウンタ１０７〜１０９の値とバス使用許可モジュールの情報と第２タイマ７１７〜７１９からの通知に基づいて各モジュール１０１〜１０３に対してバス使用許可１２３〜１２５を発行する。
【０１１１】
その他のブロックについては、本発明の第２の実施の形態によるバス調停装置と同一であり、その説明は省略する。
【０１１２】
続いて、本発明の第３の実施の形態によるバス調停装置におけるバス調停方法の処理の流れについて、図８〜図１０を用いて説明する。
【０１１３】
図８は本発明の第３の実施の形態によるバス調停装置におけるバス調停方法の処理の流れを示すフローチャートである。図９は図８に示す処理のうち、優先度判定における詳細な処理の流れを示すフローチャートである。図１０は図９に示す処理のうち、判定方法変更における詳細な処理の流れを示すフローチャートである。本発明の第３の実施の形態における図８のバス調停方法の処理の流れは、第２の実施の形態に示す図２と基本的に同じであるが、優先度判定工程Ｓ８０４の処理が異なっている。また、本発明の第３の実施の形態における図９の優先度判定における詳細な処理の流れは、第２の実施の形態に示す図３と基本的に同じであるが、第２タイマの値と第３の設定値との比較を行う工程Ｓ９０１および判定方法の変更を行う工程Ｓ９０２の処理が加わる。
【０１１４】
工程Ｓ２０１において、各モジュール１０１〜１０３がバスを使用したい時にバス使用要求１０４〜１０６をバス調停装置７２７に発行する。
【０１１５】
工程２０２において、バス使用要求１０４〜１０６を発行した各モジュール１０１〜１０３に対応する第２タイマ７１７〜７１９の値をリセットし、計測を開始する。
【０１１６】
工程Ｓ２０３において、バスが使用されているかいないかをチェックする。工程Ｓ２０３のチェックの結果、バスが使用されていた場合にはバスの使用が終了するまで工程Ｓ２０３を続行する。
【０１１７】
工程Ｓ２０３のチェックの結果、バスを使用していない場合には優先度判定部７２６は工程Ｓ８０４において、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３の優先度判定を行い、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３のいずれかにバス使用許可１２３〜１２５を発行する。優先度判定については後述する。
【０１１８】
工程Ｓ８０４の結果、バス使用許可１２３〜１２５が発行されると工程Ｓ２０５において、第１タイマ１１１〜１１３の計測を開始し、工程Ｓ２０６において、カウンタ１０７〜１０９の値を加算し、工程Ｓ２０７において、許可モジュール保持レジスタ１１０にバス使用許可が発行されたモジュールを示す情報を格納する。
【０１１９】
工程Ｓ２０８において、使用許可減算を行い、カウンタ１０７〜１０９の値を減算する。使用許可減算については本発明の第２の実施の形態によるバス調停装置におけるバス調停方法の処理と同一であり、その説明は省略する。
【０１２０】
工程Ｓ８０４の優先度判定が起動されると、図９に示すように工程Ｓ３０１において、バス使用要求１０４〜１０６を発行したモジュールが複数であるか単数であるかをチェックする。工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが単数の場合には、工程Ｓ３０６において、バス使用要求１０４〜１０６を発行したモジュールに対してバス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ７１７〜７１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【０１２１】
工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが複数の場合には工程Ｓ９０１において、第２タイマ７１７〜７１９の値があらかじめ設定した第３の設定値を経過しているかどうかをチェックする。工程Ｓ９０１のチェックの結果、第２タイマ７１７〜７１９の値があらかじめ設定した第３の設定値を経過している場合、工程Ｓ９０２において、判定方法変更を行い、バス使用許可１２３〜１２５を発行するモジュールを判定し、判定の結果に基づいて工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ７１７〜７１９の値を最大値にセットして動作を停止し、優先度判定を終了する。判定方法変更については後述する。
【０１２２】
工程Ｓ９０１のチェックの結果、第２タイマ７１７〜７１９の値があらかじめ設定した第３の設定値を経過していない場合、工程Ｓ３０２において、カウンタ１０７〜１０９の値が最大であるかをチェックする。工程Ｓ３０２のチェックの結果、カウンタ１０７〜１０９の値が最大でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図８の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０１２３】
工程Ｓ３０２のチェックの結果、カウンタ１０７〜１０９の値が最大である場合には、工程Ｓ３０４において、値が最大であるカウンタ１０７〜１０９が複数であるか単数であるかをチェックする。工程Ｓ３０４のチェックの結果、値が最大であるカウンタが単数である場合には、工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ７１７〜７１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【０１２４】
工程Ｓ３０４のチェックの結果、値が最大であるカウンタが複数である場合には、工程Ｓ３０５において、保持モジュール確認を行い、バス使用許可１２３〜１２５を発行するモジュールを判定し、判定の結果に基づいて工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ７１７〜７１９の値を最大値にセットして動作を停止し、優先度判定を終了する。保持モジュール確認については、本発明の第２の実施の形態によるバス調停装置におけるバス調停方法の処理と同一であり、その説明は省略する。
【０１２５】
工程Ｓ９０２の判定方法変更が起動されると、図１０に示すように工程Ｓ１００１において、あらかじめ設定した第３の設定値を経過している第２タイマ７１７〜７１９が複数であるか単数であるかをチェックする。工程Ｓ１００１のチェックの結果、第３の設定値を超えている第２タイマ７１７〜７１９が単数である場合には、判定方法変更を終了し、図９の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ７１７〜７１９の値を最大値にセットして動作を停止する。
【０１２６】
工程Ｓ１００１のチェックの結果、第３の設定値を超えている第２タイマ７１７〜７１９が複数である場合には、工程Ｓ１００２において、許可モジュール保持レジスタ１１０に保持されているモジュールと一致するかをチェックする。工程Ｓ１００２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致する場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図８の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０１２７】
工程Ｓ１００２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致しない場合には、工程Ｓ１００３において、ラウンドロビンによりバス使用許可１２３〜１２５が発行される順番であるかをチェックする。工程Ｓ１００３のチェックの結果、バス使用許可１２３〜１２５が発行される順番である場合には、判定方法変更を終了し、図９の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ７１７〜７１９の値を最大値にセットして動作を停止する。
【０１２８】
工程Ｓ１００３のチェックの結果、バス使用許可１２３〜１２５が発行される順番でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図８の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０１２９】
本発明の第３の実施の形態によるバス調停装置におけるバス調停方法について、図１１を用いて、具体的に説明する。図１１は本発明の第３の実施の形態によるバス調停装置におけるバス調停方法の動作を示すタイムチャートである。図７において第１タイマ１１１〜１１３にあらかじめ設定する第１設定値を２、第２タイマ７１７〜７１９にあらかじめ設定する第２設定値を２、第２タイマ７１７〜７１９にあらかじめ設定する第３の設定値を５、許可モジュール保持レジスタ１１０の初期値はモジュール１０１を示す値であるとする。また、ラウンドロビンによる優先度の遷移はモジュール１０１、モジュール１０３、モジュール１０２の順に遷移するとする。
【０１３０】
（ｔ１１０１）モジュール１０１がバス使用要求１０４、モジュール１０２がバス使用要求１０５を発行する（工程Ｓ２０１）と、第２タイマ７１７、７１８の値をリセットし、動作を開始する（工程Ｓ２０２）。バスの使用状態をチェックする（工程Ｓ２０３）と、未使用であるため、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ８０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ７１７、７１８の値が第３の設定値を超えているかをチェックする（工程Ｓ９０１）。チェックの結果、第２タイマ７１７，７１８とも第３の設定値を超えていないため、カウンタ１０７、１０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１０７，１０８とも値が最大であるため（工程Ｓ３０４）保持モジュール確認（工程Ｓ３０５）を行う。
【０１３１】
（ｔ１１０２）許可モジュール保持レジスタの値はモジュール１０１を示しているため（工程Ｓ４０１）、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。また、バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するモジュール１０１を示す値が許可モジュール保持レジスタに保持されているため（工程Ｓ４０２）、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１３２】
（ｔ１１０３）バス使用許可１２３が発行されると第２タイマ７１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ１０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１３３】
（ｔ１１０４）モジュール１０１が次のバス使用要求１０４を発行し（工程Ｓ２０１）、第２タイマ７１７の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ７１８，７１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１５，１１６から減算信号１２９、１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。第２タイマ７１７の値は第２設定値より小さいためカウンタ１０７は、減算信号１２８を受理しない（工程Ｓ５０２）。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ８０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ７１７、７１８の値が第３の設定値を超えているかをチェックする（工程Ｓ９０１）。チェックの結果、第２タイマ７１７，７１８とも第３の設定値を超えていないため、カウンタ１０７、１０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１０７の値が唯一最大となっている（工程Ｓ３０４）。
【０１３４】
（ｔ１１０５）カウンタ１０７の値が唯一最大なので、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するカウンタ１０７の値が最大値であるため、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２９、１３０を受け、カウンタ１０８，１０９の値が減算される（工程Ｓ５０３）。
【０１３５】
（ｔ１１０６）バス使用許可１２３が発行されると第２タイマ７１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ１０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１３６】
（ｔ１１０７）モジュール１０１が次のバス使用要求１０４を発行し（工程Ｓ２０１）、第２タイマ７１７の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ７１８，７１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１５，１１６から減算信号１２９、１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。第２タイマ７１７の値は第２設定値より小さいためカウンタ１０７は、減算信号１２８を受理しない（工程Ｓ５０２）。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ８０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ７１７、７１８の値が第３の設定値を超えているかをチェックする（工程Ｓ９０１）。
【０１３７】
（ｔ１１０８）チェックの結果、第２タイマ７１８の値が唯一第３の設定値を超えているため（工程Ｓ１００１）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。バス使用要求１０４は、同時に発行されたバス使用要求１０５に対応する第２タイマ７１８の値が第３の設定値を超えているため、モジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２９、１３０を受けてカウンタ１０８、１０９の値が減算される（工程Ｓ５０３）。
【０１３８】
（ｔ１１０９）バス使用許可１２４が発行されると第２タイマ７１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ１０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。
【０１３９】
（ｔ１１１０）モジュール１０２が次のバス使用要求１０５を発行し（工程Ｓ２０１）、第２タイマ７１８の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１２が第１設定値と等しく（工程Ｓ５０１）、第２タイマ７１７、７１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４，１１６から減算信号１２８、１３０が発行され、第１タイマ１１２は動作を停止して、値をリセットする。第２タイマ７１８の値は第２設定値より小さいためカウンタ１０８は減算信号１２９を受理しない（工程Ｓ５０２）。モジュール１０２がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ８０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ７１７、７１８の値が第３の設定値を超えているかをチェックする（工程Ｓ９０１）。チェックの結果、第２タイマ７１７，７１８とも第３の設定値を超えていないため、カウンタ１０７、１０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１０７の値が唯一最大となっている（工程Ｓ３０４）。
【０１４０】
（ｔ１１１１）カウンタ１０７の値が唯一最大なので、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するカウンタ１０７の値が最大値であるため、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８、１３０を受け、カウンタ１０７，１０９の値が減算される（工程Ｓ５０３）。さらに、モジュール１０３がバス使用要求１０６を発行し（工程Ｓ２０１）、第２タイマ７１９の値をリセットし、動作を開始する（工程Ｓ２０２）。
【０１４１】
（ｔ１１１２）バス使用許可１２３が発行されると第２タイマ７１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。カウンタ１０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５、１０６はモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１４２】
（ｔ１１１３）第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ７１７〜７１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４〜１１６から減算信号１２８〜１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５、１０６の優先度判定を行う（工程Ｓ８０４）。複数のバス使用要求１０５、１０６が発行されているため（工程Ｓ３０１）、第２タイマ７１８、７１９の値が第３の設定値を超えているかをチェックする（工程Ｓ９０１）。チェックの結果、第２タイマ７１８、７１９とも第３の設定値を超えていないため、カウンタ１０８、１０９の値の比較を行う（工程Ｓ３０２）。
【０１４３】
（ｔ１１１４）比較の結果カウンタ１０８の値が単数で最大となっているため（工程Ｓ３０４）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。バス使用要求１０６は、同時に発行されたバス使用要求１０５に対応するカウンタ１０８の値が最大であるため（工程Ｓ４０２）、モジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８〜１３０を受けてカウンタ１０７〜１０９の値が減算される（工程Ｓ５０３）。
【０１４４】
（ｔ１１１５）バス使用許可１２４が発行されると第２タイマ７１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ１０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０２が使用中のため（工程Ｓ２０３）、バス使用要求１０６は引き続きモジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１４５】
（ｔ１１１６）モジュール１０２が次のバス使用要求１０５を発行し（工程Ｓ２０１）、第２タイマ７１８の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１２が第１設定値と等しく（工程Ｓ５０１）、第２タイマ７１７、７１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４、１１６から減算信号１２８、１３０が発行され、第１タイマ１１２は動作を停止して、値をリセットする。モジュール１０２がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５、１０６の優先度判定を行う（工程Ｓ８０４）。複数のバス使用要求１０５、１０６が発行されているため（工程Ｓ３０１）、第２タイマ７１８、７１９の値が第３の設定値を超えているかをチェックする（工程Ｓ９０１）。チェックの結果、第２タイマ７１９の値が第３の設定値を超えている。
【０１４６】
（ｔ１１１７）第２タイマ７１９の値が唯一第３の設定値を超えているため（工程Ｓ１００１）、バス使用要求１０６に対してバス使用許可１２５が発行される（工程Ｓ３０６）。バス使用要求１０５は、同時に発行されたバス使用要求１０６に対応する第２タイマ７１９の値が第３の設定値を超えているため、モジュール１０３がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８、１３０を受けてカウンタ１０７、１０９の値が減算される（工程Ｓ５０３）。
【０１４７】
（ｔ１１１８）バス使用許可１２５が発行されると第２タイマ７１９は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１３の動作を開始する（工程Ｓ２０５）。また、カウンタ１０９の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０３を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０３が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０３がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１４８】
（ｔ１１１９）第１タイマ１１３が第１設定値と等しく（工程Ｓ５０１）、第２タイマ７１７〜７１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４〜１１６から減算信号１２８〜１３０が発行され、第１タイマ１１３は動作を停止して、値をリセットする。また、モジュール１０３がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５の優先度判定を行う（工程Ｓ８０４）。
【０１４９】
（ｔ１１２０）バス使用要求１０５が単数で発行されているため（工程Ｓ３０１）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。また、減算信号１２８〜１３０を受けてカウンタ１０７〜１０９の値が減算される（工程Ｓ５０３）。
【０１５０】
（ｔ１１２１）バス使用許可１２４が発行されると第２タイマ７１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ１０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。
【０１５１】
以上のように、本発明の第３の実施の形態によるバス調停装置におけるバス調停方法では、あるモジュールが連続して共有バスを使用しようとしたとき、前記モジュールに対応するカウンタの値が減算されず、前記モジュールを除くその他のモジュールに対応するカウンタの値が減算され、第２タイマが第３の設定値を超えない場合には、カウンタの値が最大のモジュールにバス使用許可を発行し、第２タイマが第３の設定値を超えた場合には前記第２タイマに対応するモジュールにバス使用許可を発行することによって、連続してバス使用要求を発行したモジュールが優先的にバスを使用でき、また、一定時間バスが使用できなかったモジュールも確実にバスを使用できるように、バス使用許可発行の優先順位を柔軟に変更することができる。
【０１５２】
なお、第１タイマにあらかじめ設定する第１設定値は、本実施の形態に記載される値に限られるものではない。また、第２タイマにあらかじめ設定する第２設定値および第３の設定値は本実施の形態に記載される値に限られるものではない。また、ラウンドロビンによる優先順位の遷移の順番は本実施の形態に記載される順に限られるものではない。
【０１５３】
（第４の実施の形態）
第４の実施の形態では、第３の実施の形態と同様に、連続してバス使用要求を発行するモジュールが優先的にバスを使用することにより、バスを使用できなかったモジュールに対して確実にバスを使用できるようにしたバス調停装置について説明する。
【０１５４】
このバス調停装置は、第２タイマが第３の設定値を超えない場合には、カウンタの値が最大のモジュールにバス使用許可を発行し、第２タイマが第３の設定値を超えた場合には当該第２タイマに対応するモジュールのうち、カウント値（優先度)が最小にバスのモジュールに使用許可を発行する。これにより、連続してバス使用要求を発行しないモジュールでも確実にバスを使用できる。
【０１５５】
図１２は、本発明の第４の実施の形態によるバス調停装置の構成を示すブロック図である。本発明の第４の実施の形態における図１２の構成は、第２の実施の形態に示す図１Ｂと基本的に同じであるが、バス調停装置１２２７に含まれる、第２タイマ１２１７〜１２１９の動作、優先度判定部１２２６の動作、および優先度判定部１２２６が第２タイマ１２１７〜１２１９からの通知を入力する点が図１Ｂと異なる。
【０１５６】
まず、本発明の第４の実施の形態によるバス調停装置の構成について、本発明の第２の実施の形態であるバス調停装置と異なるブロックについて説明する。
【０１５７】
第２タイマ１２１７〜１２１９は、バス使用要求１０４〜１０６とバス使用許可１２３〜１２５を入力し、各モジュール１０１〜１０３からバス使用要求が発せられると同時に値をリセットして動作を開始し、あらかじめ設定された第２設定値を経過するとカウンタ１０７〜１０９に通知し、あらかじめ設定された第３の設定値を経過すると優先度判定部１２２６に通知し、バス使用許可１２３〜１２５が発せられると動作を停止して値を最大値にセットする。
【０１５８】
優先度判定部１２２６は、バス使用要求１０４〜１０６とカウンタ１０７〜１０９の値と許可モジュール保持レジスタ１１０の保持するバス使用許可モジュールの情報と、第２タイマ１２１７〜１２１９からの通知を入力し、カウンタ１０７〜１０９の値とバス使用許可モジュールの情報と第２タイマ１２１７〜１２１９からの通知に基づいて各モジュール１０１〜１０３に対してバス使用許可１２３〜１２５を発行する。
【０１５９】
その他のブロックについては、本発明の第２の実施の形態によるバス調停装置と同一であり、その説明は省略する。
【０１６０】
続いて、本発明の第４の実施の形態によるバス調停装置におけるバス調停方法の処理の流れについて、図１３〜図１５を用いて説明する。
【０１６１】
図１３は本発明の第４の実施の形態によるバス調停装置におけるバス調停方法の処理の流れを示すフローチャートである。図１４は図１３に示す処理のうち、優先度判定における詳細な処理の流れを示すフローチャートである。図１５は図１４に示す処理のうち、判定方法変更における詳細な処理の流れを示すフローチャートである。本発明の第４の実施の形態における図１３のバス調停方法の処理の流れは、第２の実施の形態に示す図２と基本的に同じであるが、優先度判定工程Ｓ１３０４の処理が異なっている。また、本発明の第４の実施の形態における図１４の優先度判定における詳細な処理の流れは、第２の実施の形態に示す図３と基本的に同じであるが、第２タイマの値と第３の設定値との比較を行う工程Ｓ１４０１および判定方法の変更を行う工程Ｓ１４０２の処理が加わる。
【０１６２】
工程Ｓ２０１において、各モジュール１０１〜１０３がバスを使用したい時にバス使用要求１０４〜１０６をバス調停装置１２２７に発行する。
【０１６３】
工程２０２において、バス使用要求１０４〜１０６を発行した各モジュール１０１〜１０３に対応する第２タイマ１２１７〜１２１９の値をリセットし、計測を開始する。
【０１６４】
工程Ｓ２０３において、バスが使用されているかいないかをチェックする。工程Ｓ２０３のチェックの結果、バスが使用されていた場合にはバスの使用が終了するまで工程Ｓ２０３を続行する。
【０１６５】
工程Ｓ２０３のチェックの結果、バスを使用していない場合には優先度判定部１２２６は工程Ｓ１３０４において、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３の優先度判定を行い、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３のいずれかにバス使用許可１２３〜１２５を発行する。優先度判定については後述する。
【０１６６】
工程Ｓ１３０４の結果、バス使用許可１２３〜１２５が発行されると工程Ｓ２０５において、第１タイマ１１１〜１１３の計測を開始し、工程Ｓ２０６において、カウンタ１０７〜１０９の値を加算し、工程Ｓ２０７において、許可モジュール保持レジスタ１１０にバス使用許可が発行されたモジュールを示す情報を格納する。
【０１６７】
工程Ｓ２０８において、使用許可減算を行い、カウンタ１０７〜１０９の値を減算する。使用許可減算については本発明の第２の実施の形態によるバス調停装置におけるバス調停方法の処理と同一であり、その説明は省略する。
【０１６８】
工程Ｓ１３０４の優先度判定が起動されると、図１４に示すように工程Ｓ３０１において、バス使用要求１０４〜１０６を発行したモジュールが複数であるか単数であるかをチェックする。工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが単数の場合には、工程Ｓ３０６において、バス使用要求１０４〜１０６を発行したモジュールに対してバス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１２１７〜１２１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【０１６９】
工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが複数の場合には工程Ｓ１４０１において、第２タイマ１２１７〜１２１９の値があらかじめ設定した第３の設定値を経過しているかどうかをチェックする。工程Ｓ１４０１のチェックの結果、第２タイマ１２１７〜１２１９の値があらかじめ設定した第３の設定値を経過している場合、工程Ｓ１４０２において、判定方法変更を行い、バス使用許可１２３〜１２５を発行するモジュールを判定し、判定の結果に基づいて工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１２１７〜１２１９の値を最大値にセットして動作を停止し、優先度判定を終了する。判定方法変更については後述する。
【０１７０】
工程Ｓ１４０１のチェックの結果、第２タイマ１２１７〜１２１９の値があらかじめ設定した第３の設定値を経過していない場合、工程Ｓ３０２において、カウンタ１０７〜１０９の値が最大であるかをチェックする。工程Ｓ３０２のチェックの結果、カウンタ１０７〜１０９の値が最大でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図１３の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０１７１】
工程Ｓ３０２のチェックの結果、カウンタ１０７〜１０９の値が最大である場合には、工程Ｓ３０４において、値が最大であるカウンタ１０７〜１０９が複数であるか単数であるかをチェックする。工程Ｓ３０４のチェックの結果、値が最大であるカウンタが単数である場合には、工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１２１７〜１２１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【０１７２】
工程Ｓ３０４のチェックの結果、値が最大であるカウンタが複数である場合には、工程Ｓ３０５において、保持モジュール確認を行い、バス使用許可１２３〜１２５を発行するモジュールを判定し、判定の結果に基づいて工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１２１７〜１２１９の値を最大値にセットして動作を停止し、優先度判定を終了する。保持モジュール確認については、本発明の第２の実施の形態によるバス調停装置におけるバス調停方法の処理と同一であり、その説明は省略する。
【０１７３】
工程Ｓ１４０２の判定方法変更が起動されると、図１５に示すように工程Ｓ１５０１において、カウンタ１０７〜１０９の値が最小であるかをチェックする。工程Ｓ１５０１のチェックの結果、カウンタ１０７〜１０９の値が最小でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図１３の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０１７４】
工程Ｓ１５０１のチェックの結果、カウンタ１０７〜１０９の値が最小である場合には、工程Ｓ１５０２において、値が最小であるカウンタ１０７〜１０９が複数であるか単数であるかをチェックする。工程Ｓ１５０２のチェックの結果、値が最小であるカウンタが単数である場合には、判定方法変更を終え、工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１２１７〜１２１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【０１７５】
工程Ｓ１５０２のチェックの結果、値が最小であるカウンタ１０７〜１０９が複数である場合には、工程Ｓ１５０３において、許可モジュール保持レジスタ１１０に保持されているモジュールと一致するかをチェックする。工程Ｓ１５０３のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致する場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図８の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０１７６】
工程Ｓ１５０３のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致しない場合には、工程Ｓ１５０４において、ラウンドロビンによりバス使用許可１２３〜１２５が発行される順番であるかをチェックする。工程Ｓ１５０４のチェックの結果、バス使用許可１２３〜１２５が発行される順番である場合には、判定方法変更を終了し、図１４の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１２１７〜１２１９の値を最大値にセットして動作を停止する。
【０１７７】
工程Ｓ１５０４のチェックの結果、バス使用許可１２３〜１２５が発行される順番でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図１３の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０１７８】
本発明の第４の実施の形態によるバス調停装置におけるバス調停方法について、図１６を用いて、具体的に説明する。図１６は本発明の第３の実施の形態によるバス調停装置におけるバス調停方法の動作を示すタイムチャートである。図１２において第１タイマ１１１〜１１３にあらかじめ設定する第１設定値を２、第２タイマ１２１７〜１２１９にあらかじめ設定する第２設定値を２、第２タイマ１２１７〜１２１９にあらかじめ設定する第３の設定値を５、許可モジュール保持レジスタ１１０の初期値はモジュール１０１を示す値であるとする。また、ラウンドロビンによる優先度の遷移はモジュール１０１、モジュール１０３、モジュール１０２の順に遷移するとする。
【０１７９】
（ｔ１６０１）モジュール１０１がバス使用要求１０４、モジュール１０２がバス使用要求１０５を発行する（工程Ｓ２０１）と、第２タイマ１２１７、１２１８の値をリセットし、動作を開始する（工程Ｓ２０２）。バスの使用状態をチェックする（工程Ｓ２０３）と、未使用であるため、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ１３０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ１２１７、１２１８の値が第３の設定値を超えているかをチェックする（工程Ｓ１４０１）。チェックの結果、第２タイマ１２１７，１２１８とも第３の設定値を超えていないため、カウンタ１０７、１０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１０７，１０８とも値が最大であるため（工程Ｓ３０４）保持モジュール確認（工程Ｓ３０５）を行う。
【０１８０】
（ｔ１６０２）許可モジュール保持レジスタの値はモジュール１０１を示しているため（工程Ｓ４０１）、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。また、バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するモジュール１０１を示す値が許可モジュール保持レジスタに保持されているため（工程Ｓ４０２）、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１８１】
（ｔ１６０３）バス使用許可１２３が発行されると第２タイマ１２１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ１０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１８２】
（ｔ１６０４）モジュール１０１が次のバス使用要求１０４を発行し（工程Ｓ２０１）、第２タイマ１２１７の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１２１８，１２１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１５，１１６から減算信号１２９、１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。第２タイマ１２１７の値は第２設定値より小さいためカウンタ１０７は、減算信号１２８を受理しない（工程Ｓ５０２）。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ１３０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ１２１７、１２１８の値が第３の設定値を超えているかをチェックする（工程Ｓ１４０１）。チェックの結果、第２タイマ１２１７，１２１８とも第３の設定値を超えていないため、カウンタ１０７、１０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１０７の値が唯一最大となっている（工程Ｓ３０４）。
【０１８３】
（ｔ１６０５）カウンタ１０７の値が唯一最大なので、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するカウンタ１０７の値が最大値であるため、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２９、１３０を受け、カウンタ１０８，１０９の値が減算される（工程Ｓ５０３）。
【０１８４】
（ｔ１６０６）バス使用許可１２３が発行されると第２タイマ１２１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ１０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１８５】
（ｔ１６０７）モジュール１０１が次のバス使用要求１０４を発行し（工程Ｓ２０１）、第２タイマ１２１７の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１２１８，１２１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１５，１１６から減算信号１２９、１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。第２タイマ１２１７の値は第２設定値より小さいためカウンタ１０７は、減算信号１２８を受理しない（工程Ｓ５０２）。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ１３０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ１２１７、１２１８の値が第３の設定値を超えているかをチェックする（工程Ｓ１４０１）。チェックの結果、第２タイマ１２１８の値が第３の設定値を超えているため、カウンタ１０７、１０８の値の比較を行う（工程Ｓ１５０１）。比較の結果カウンタ１０８の値が唯一最小となっている（工程Ｓ１５０２）。
【０１８６】
（ｔ１６０８）カウンタ１０８の値が唯一最小なので、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。バス使用要求１０４は、同時に発行されたバス使用要求１０５に対応するカウンタ１０８の値が最小のため、モジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２９、１３０を受けてカウンタ１０８、１０９の値が減算される（工程Ｓ５０３）。
【０１８７】
（ｔ１６０９）バス使用許可１２４が発行されると第２タイマ１２１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ１０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。
【０１８８】
（ｔ１６１０）モジュール１０２が次のバス使用要求１０５を発行し（工程Ｓ２０１）、第２タイマ１２１８の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１２が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１２１７、１２１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４，１１６から減算信号１２８、１３０が発行され、第１タイマ１１２は動作を停止して、値をリセットする。第２タイマ１２１８の値は第２設定値より小さいためカウンタ１０８は減算信号１２９を受理しない（工程Ｓ５０２）。モジュール１０２がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ１３０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ１２１７、１２１８の値が第３の設定値を超えているかをチェックする（工程Ｓ１４０１）。チェックの結果、第２タイマ１２１７，１２１８とも第３の設定値を超えていないため、カウンタ１０７、１０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１０７の値が唯一最大となっている（工程Ｓ３０４）。
【０１８９】
（ｔ１６１１）カウンタ１０７の値が唯一最大なので、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するカウンタ１０７の値が最大値であるため、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８、１３０を受け、カウンタ１０７，１０９の値が減算される（工程Ｓ５０３）。さらに、モジュール１０３がバス使用要求１０６を発行し（工程Ｓ２０１）、第２タイマ１２１９の値をリセットし、動作を開始する（工程Ｓ２０２）。
【０１９０】
（ｔ１６１２）バス使用許可１２３が発行されると第２タイマ１２１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。カウンタ１０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５、１０６はモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１９１】
（ｔ１６１３）第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１２１７〜１２１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４〜１１６から減算信号１２８〜１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５、１０６の優先度判定を行う（工程Ｓ１３０４）。複数のバス使用要求１０５、１０６が発行されているため（工程Ｓ３０１）、第２タイマ１２１８、１２１９の値が第３の設定値を超えているかをチェックする（工程Ｓ１４０１）。チェックの結果、第２タイマ１２１８、１２１９とも第３の設定値を超えていないため、カウンタ１０８、１０９の値の比較を行う（工程Ｓ３０２）。
【０１９２】
（ｔ１６１４）比較の結果カウンタ１０８の値が単数で最大となっているため（工程Ｓ３０４）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。バス使用要求１０６は、同時に発行されたバス使用要求１０５に対応するカウンタ１０８の値が最大であるため（工程Ｓ４０２）、モジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８〜１３０を受けてカウンタ１０７〜１０９の値が減算される（工程Ｓ５０３）。
【０１９３】
（ｔ１６１５）バス使用許可１２４が発行されると第２タイマ１２１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ１０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０２が使用中のため（工程Ｓ２０３）、バス使用要求１０６は引き続きモジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１９４】
（ｔ１６１６）モジュール１０２が次のバス使用要求１０５を発行し（工程Ｓ２０１）、第２タイマ１２１８の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１２が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１２１７、１２１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４、１１６から減算信号１２８、１３０が発行され、第１タイマ１１２は動作を停止して、値をリセットする。モジュール１０２がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５、１０６の優先度判定を行う（工程Ｓ１３０４）。複数のバス使用要求１０５、１０６が発行されているため（工程Ｓ３０１）、第２タイマ１２１８、１２１９の値が第３の設定値を超えているかをチェックする（工程Ｓ１４０１）。チェックの結果、第２タイマ７１９の値が第３の設定値を超えているため、カウンタ１０８、１０９の値の比較を行う（工程Ｓ１５０１）。比較の結果カウンタ１０９の値が唯一最小となっている（工程Ｓ１５０２）。
【０１９５】
（ｔ１６１７）カウンタ１０８の値が唯一最小なので、バス使用要求１０６に対してバス使用許可１２５が発行される（工程Ｓ３０６）。バス使用要求１０５は、同時に発行されたバス使用要求１０６に対応するカウンタの値が最小値のため、モジュール１０３がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８、１３０を受けてカウンタ１０７、１０９の値が減算される（工程Ｓ５０３）。
【０１９６】
（ｔ１６１８）バス使用許可１２５が発行されると第２タイマ１２１９は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１３の動作を開始する（工程Ｓ２０５）。また、カウンタ１０９の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０３を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０３が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０３がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０１９７】
（ｔ１６１９）第１タイマ１１３が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１２１７〜１２１９が第２設定値より大きいため（工程Ｓ５０２）減算回路１１４〜１１６から減算信号１２８〜１３０が発行され、第１タイマ１１３は動作を停止して、値をリセットする。また、モジュール１０３がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５の優先度判定を行う（工程Ｓ１３０４）。
【０１９８】
（ｔ１６２０）バス使用要求１０５が単数で発行されているため（工程Ｓ３０１）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。また、減算信号１２８〜１３０を受けてカウンタ１０７〜１０９の値が減算される（工程Ｓ５０３）。
【０１９９】
（ｔ１６２１）バス使用許可１２４が発行されると第２タイマ１２１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ１０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。
【０２００】
以上のように、本発明の第４の実施の形態によるバス調停装置におけるバス調停方法では、あるモジュールが連続して共有バスを使用しようとしたとき、前記モジュールに対応するカウンタの値が減算されず、前記モジュールを除くその他のモジュールに対応するカウンタの値が減算され、第２タイマが第３の設定値を超えない場合には、カウンタの値が最大のモジュールにバス使用許可を発行し、第２タイマが第３の設定値を超えた場合にはカウンタの値が最小のモジュールにバス使用許可を発行することによって、連続してバス使用要求を発行したモジュールが優先的にバスを使用し、また、一定時間バスを使用できなかったモジュールも確実にバスが使用できるように、バス使用許可発行の優先順位を柔軟に変更することができる。
【０２０１】
なお、第１タイマにあらかじめ設定する第１設定値は、本実施の形態に記載される値に限られるものではない。また、第２タイマにあらかじめ設定する第２設定値および第３の設定値は本実施の形態に記載される値に限られるものではない。また、ラウンドロビンによる優先順位の遷移の順番は本実施の形態に記載される順に限られるものではない。
【０２０２】
（第５の実施の形態）
第５の実施の形態では、第３の実施の形態と同様に、連続してバス使用要求を発行するモジュールが優先的にバスを使用することにより、バスを使用できなかったモジュールに対して確実にバスを使用できるようにしたバス調停装置について説明する。
【０２０３】
このバス調停装置は、第２タイマが第３の設定値を超えない場合には、カウンタの値が最大のモジュールにバス使用許可を発行し、第２タイマが第３の設定値を超えた場合には当該第２タイマに対応するモジュールのカウント値（優先度)を最大に変更する。これにより、連続してバス使用要求を発行しないモジュールでも確実にバスを使用できる。
【０２０４】
図１７は、本発明の第５の実施の形態によるバス調停装置の構成を示すブロック図である。本発明の第５の実施の形態における図１７の構成は、第２の実施の形態に示す図１Ｂと基本的に同じであるが、バス調停装置１７２７に含まれる、第２タイマ１７１７〜１７１９の動作、カウンタ１７０７〜１７０９の動作が図１Ｂと異なる。
【０２０５】
まず、本発明の第５の実施の形態によるバス調停装置の構成について、本発明の第２の実施の形態であるバス調停装置と異なるブロックについて説明する。
【０２０６】
第２タイマ１７１７〜１７１９は、バス使用要求１０４〜１０６とバス使用許可１２３〜１２５を入力し、各モジュール１０１〜１０３からバス使用要求が発せられると同時に値をリセットして動作を開始し、あらかじめ設定された第２設定値を経過するとカウンタ１７０７〜１７０９に通知し、あらかじめ設定された第３の設定値を経過するとカウンタ１７０７〜１７０９に通知し、バス使用許可１２３〜１２５が発せられると動作を停止して値を最大値にセットする。
【０２０７】
カウンタ１７０７〜１７０９は、バス使用許可１２３〜１２５と第２タイマ１７１７〜１７１９からの通知と減算回路１１４〜１１６からの通知と、バス使用要求１０４〜１０６とを入力し、バス使用許可１２３〜１２５が発行されると各モジュール１０１〜１０３に対して与えられたバス使用許可の回数をカウントし、第２タイマ１７１７〜１７１９が第２設定値を経過したことの通知と減算回路１１４〜１１６からの通知により、カウントを減算し、第２タイマ１７１７〜１７１９が第３の設定値を経過していることの通知とバス使用要求１０４〜１０６からの通知により値を最大値にセットする。また、値が最大値のときにバス使用許可１２３〜１２５が発行されると値を０にセットする。
【０２０８】
その他のブロックについては、本発明の第２の実施の形態によるバス調停装置と同一であり、その説明は省略する。
【０２０９】
続いて、本発明の第５の実施の形態によるバス調停装置におけるバス調停方法の処理の流れについて、図１８〜図２１を用いて説明する。
【０２１０】
図１８は本発明の第５の実施の形態によるバス調停装置におけるバス調停方法の処理の流れを示すフローチャートである。図１９は図１８に示す処理のうち、優先度判定における詳細な処理の流れを示すフローチャートである。図２０は図１９に示す処理のうち、カウンタ値変更における詳細な処理の流れを示すフローチャートである。図２１は図１８に示す処理のうち、使用許可回数減算における詳細な処理の流れを示すフローチャートである。本発明の第５の実施の形態における図１８のバス調停方法の処理の流れは、第２の実施の形態に示す図２と基本的に同じであるが、優先度判定工程Ｓ１８０４の処理、および使用許可回数減算工程Ｓ１８０８が異なっている。また、本発明の第５の実施の形態における図１９の優先度判定における詳細な処理の流れは、第２の実施の形態に示す図３と基本的に同じであるが、第２タイマの値と第３の設定値との比較を行う工程Ｓ１９０１およびカウンタ値の変更を行う工程Ｓ１９０２の処理が加わる。さらに、本発明の第５の実施の形態における図２１の使用許可回数減算における詳細な処理の流れは、第２の実施の形態に示す図５と基本的に同じであるが、第２タイマの値と第３の設定値との比較を行う工程Ｓ２１０１およびバス使用要求の出力確認を行う工程Ｓ２１０２の処理が加わる。
【０２１１】
工程Ｓ２０１において、各モジュール１０１〜１０３がバスを使用したい時にバス使用要求１０４〜１０６をバス調停装置１７２７に発行する。
【０２１２】
工程２０２において、バス使用要求１０４〜１０６を発行した各モジュール１０１〜１０３に対応する第２タイマ１７１７〜１７１９の値をリセットし、計測を開始する。
【０２１３】
工程Ｓ２０３において、バスが使用されているかいないかをチェックする。工程Ｓ２０３のチェックの結果、バスが使用されていた場合にはバスの使用が終了するまで工程Ｓ２０３を続行する。
【０２１４】
工程Ｓ２０３のチェックの結果、バスを使用していない場合には優先度判定部１２６は工程Ｓ１８０４において、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３の優先度判定を行い、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３のいずれかにバス使用許可１２３〜１２５を発行する。優先度判定については後述する。
【０２１５】
工程Ｓ１８０４の結果、バス使用許可１２３〜１２５が発行されると工程Ｓ２０５において、第１タイマ１１１〜１１３の計測を開始し、工程Ｓ２０６において、カウンタ１７０７〜１７０９の値を加算し、工程Ｓ２０７において、許可モジュール保持レジスタ１１０にバス使用許可が発行されたモジュールを示す情報を格納する。
【０２１６】
工程Ｓ１８０８において、使用許可減算を行い、カウンタ１７０７〜１７０９の値を減算する。使用許可減算については後述する。
【０２１７】
工程Ｓ１８０４の優先度判定が起動されると、図１９に示すように工程Ｓ３０１において、バス使用要求１０４〜１０６を発行したモジュールが複数であるか単数であるかをチェックする。工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが単数の場合には、工程Ｓ３０６において、バス使用要求１０４〜１０６を発行したモジュールに対してバス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１７１７〜１７１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【０２１８】
工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが複数の場合には工程Ｓ１９０１において、第２タイマ１７１７〜１７１９の値があらかじめ設定した第３の設定値を経過しているかどうかをチェックする。工程Ｓ１９０１のチェックの結果、第２タイマ１７１７〜１７１９の値があらかじめ設定した第３の設定値を経過している場合、工程Ｓ１９０２において、カウンタ値変更を行い工程Ｓ３０２へ進む。カウンタ値変更については後述する。
【０２１９】
工程Ｓ３０２において、カウンタ１７０７〜１７０９の値が最大であるかをチェックする。工程Ｓ３０２のチェックの結果、カウンタ１７０７〜１７０９の値が最大でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図１８の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０２２０】
工程Ｓ３０２のチェックの結果、カウンタ１７０７〜１７０９の値が最大である場合には、工程Ｓ３０４において、値が最大であるカウンタ１７０７〜１７０９が複数であるか単数であるかをチェックする。工程Ｓ３０４のチェックの結果、値が最大であるカウンタが単数である場合には、工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１７１７〜１７１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【０２２１】
工程Ｓ３０４のチェックの結果、値が最大であるカウンタが複数である場合には、工程Ｓ３０５において、保持モジュール確認を行い、バス使用許可１２３〜１２５を発行するモジュールを判定し、判定の結果に基づいて工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ１７１７〜１７１９の値を最大値にセットして動作を停止し、優先度判定を終了する。保持モジュール確認については、本発明の第２の実施の形態によるバス調停装置におけるバス調停方法の処理と同一であり、その説明は省略する。
【０２２２】
工程Ｓ１９０２のカウンタ値変更が起動されると、図２０に示すように工程Ｓ２００１において、あらかじめ設定した第３の設定値を経過している第２タイマ１７１７〜１７１９が複数であるか単数であるかをチェックする。工程Ｓ２００１のチェックの結果、第３の設定値を超えている第２タイマ１７１７〜１７１９が単数である場合には、工程Ｓ２００４において、カウンタの値を最大値にセットしてカウンタ値変更を終了する。
【０２２３】
工程Ｓ２００１のチェックの結果、第３の設定値を超えている第２タイマ１７１７〜１７１９が複数である場合には、工程Ｓ２００２において、許可モジュール保持レジスタ１１０に保持されているモジュールと一致するかをチェックする。工程Ｓ２００２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致する場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図１８の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０２２４】
工程Ｓ２００２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致しない場合には、工程Ｓ２００３において、ラウンドロビンによりバス使用許可１２３〜１２５が発行される順番であるかをチェックする。工程Ｓ２００３のチェックの結果、バス使用許可１２３〜１２５が発行される順番である場合には、工程Ｓ２００４において、カウンタの値を最大値にセットして、カウンタ値変更を終了する。
【０２２５】
工程Ｓ２００３のチェックの結果、バス使用許可１２３〜１２５が発行される順番でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図１８の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０２２６】
工程Ｓ１８０８の使用許可回数減算が起動されると、図２１に示すように工程Ｓ５０１において、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過しているかをチェックする。工程Ｓ５０１のチェックの結果、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過していない場合には、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過するまで工程Ｓ５０１を繰り返す。
【０２２７】
工程Ｓ５０１のチェックの結果、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過している場合には、工程Ｓ５０２において、第２タイマ１７１７〜１７１９の値があらかじめ設定した第２設定値を経過しているかをチェックする。工程Ｓ５０２のチェック結果、第２タイマ１７１７〜１７１９の値があらかじめ設定した第２設定値を経過していない場合には、減算信号１２８〜１３０はカウンタ１７０７〜１７０９で受理されず、カウンタ１７０７〜１７０９の値はそのままで使用許可回数減算を終了する。
【０２２８】
工程Ｓ５０２のチェック結果、第２タイマ１７１７〜１７１９の値があらかじめ設定した第２設定値を経過している場合には、工程Ｓ２１０１において、第２タイマ１７１７〜１７１９の値があらかじめ設定した第３の設定値を経過しているかをチェックする。工程Ｓ２１０１のチェックの結果、第２タイマ１７１７〜１７１９の値があらかじめ設定した第３の設定値を経過している場合には、工程Ｓ２１０２において、バス使用要求１０４〜１０６が出力されているかをチェックする。工程Ｓ２１０２のチェックの結果、バス使用要求１０４〜１０６が出力されている場合には、減算信号１２８〜１３０はカウンタ１７０７〜１７０９で受理されず、カウンタ１７０７〜１７０９の値はそのままで使用許可回数減算を終了する。
【０２２９】
工程Ｓ２１０２のチェックの結果、バス使用要求１０４〜１０６が出力されていない場合には、工程Ｓ５０３において、減算信号１２８〜１３０を発行し、カウンタ１７０７〜１７０９の値を減じて使用許可回数減算を終了する。
【０２３０】
工程Ｓ２１０１のチェックの結果第２タイマ１７１７〜１７１９の値があらかじめ設定した第３の設定値を経過していない場合には、工程Ｓ５０３において、減算信号１２８〜１３０を発行し、カウンタ１７０７〜１７０９の値を減じて使用許可回数減算を終了する。
【０２３１】
本発明の第５の実施の形態によるバス調停装置におけるバス調停方法について、図２２を用いて、具体的に説明する。図２２は本発明の第５の実施の形態によるバス調停装置におけるバス調停方法の動作を示すタイムチャートである。図１７において第１タイマ１１１〜１１３にあらかじめ設定する第１設定値を２、第２タイマ１７１７〜１７１９にあらかじめ設定する第２設定値を２、第２タイマ１７１７にあらかじめ設定する第３の設定値を６、第２タイマ１７１８にあらかじめ設定する第３の設定値を５、第２タイマ１７１９にあらかじめ設定する第３の設定値を４、許可モジュール保持レジスタ１１０の初期値はモジュール１０１を示す値であるとする。また、ラウンドロビンによる優先度の遷移はモジュール１０１、モジュール１０３、モジュール１０２の順に遷移するとする。
【０２３２】
（ｔ２２０１）モジュール１０１がバス使用要求１０４、モジュール１０２がバス使用要求１０５を発行する（工程Ｓ２０１）と、第２タイマ１７１７、１７１８の値をリセットし、動作を開始する（工程Ｓ２０２）。バスの使用状態をチェックする（工程Ｓ２０３）と、未使用であるため、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ１８０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ１７１７、１７１８の値が第３の設定値を超えているかをチェックする（工程Ｓ１９０１）。チェックの結果、第２タイマ１７１７，１７１８とも第３の設定値を超えていないため、カウンタ１７０７、１７０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１７０７，１７０８とも値が最大であるため（工程Ｓ３０４）保持モジュール確認（工程Ｓ３０５）を行う。
【０２３３】
（ｔ２２０２）許可モジュール保持レジスタの値はモジュール１０１を示しているため（工程Ｓ４０１）、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。また、バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するモジュール１０１を示す値が許可モジュール保持レジスタに保持されているため（工程Ｓ４０２）、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０２３４】
（ｔ２２０３）バス使用許可１２３が発行されると第２タイマ１７１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ１７０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０２３５】
（ｔ２２０４）モジュール１０１が次のバス使用要求１０４を発行し（工程Ｓ２０１）、第２タイマ１７１７の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１７１８が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より小さいため（工程Ｓ２１０１）、また第２タイマ１７１９が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きいが（工程Ｓ２１０１）、バス使用要求１０６を出力していないため（工程Ｓ２１０２）、減算回路１１５，１１６から減算信号１２９、１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。第２タイマ１７１７の値は第２設定値より小さいためカウンタ１７０７は、減算信号１２８を受理しない（工程Ｓ５０２）。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ１８０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ１７１７、１７１８の値が第３の設定値を超えているかをチェックする（工程Ｓ１９０１）。チェックの結果、第２タイマ１７１７，１７１８とも第３の設定値を超えていないため、カウンタ１７０７、１７０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１７０７の値が唯一最大となっている（工程Ｓ３０４）。
【０２３６】
（ｔ２２０５）カウンタ１７０７の値が唯一最大なので、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するカウンタ１７０７の値が最大値であるため、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２９、１３０を受け、カウンタ１７０８，１７０９の値が減算される（工程Ｓ５０３）。
【０２３７】
（ｔ２２０６）バス使用許可１２３が発行されると第２タイマ１７１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ１７０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０２３８】
（ｔ２２０７）モジュール１０１が次のバス使用要求１０４を発行し（工程Ｓ２０１）、第２タイマ１７１７の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１７１９が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きいが（工程Ｓ２１０１）、バス使用要求１０６を出力していないため（工程Ｓ２１０２）、減算回路１１６から減算信号１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。第２タイマ１７１７の値は第２設定値より小さいためカウンタ１７０７は、減算信号１２８を受理しない（工程Ｓ５０２）。また、第２タイマ１７１８は第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きく（工程Ｓ２１０１）、バス使用要求１０５を出力しているため、カウンタ１７０８は、減算信号１２９を受理しない（工程Ｓ２１０２）。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ１８０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ１７１７、１７１８の値が第３の設定値を超えているかをチェックする（工程Ｓ１９０１）。チェックの結果、第２タイマ１７１８の値が唯一第３の設定値を超えているため（工程Ｓ２００１）、カウンタ１７０８の値を最大値にセットし（工程Ｓ２００４）、カウンタ１７０７、１７０８の値の比較を行う（工程Ｓ３０２）。
【０２３９】
（ｔ２２０８）比較の結果カウンタ１７０８の値が唯一最大となっている（工程Ｓ３０４）。カウンタ１７０８の値が唯一最大なので、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。バス使用要求１０４は、同時に発行されたバス使用要求１０５に対応するカウンタ１７０８の値が最大値であるため、モジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１３０を受けてカウンタ１７０９の値が減算される（工程Ｓ５０３）。
【０２４０】
（ｔ２２０９）バス使用許可１２４が発行されると第２タイマ１７１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ１７０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。
【０２４１】
（ｔ２２１０）モジュール１０２が次のバス使用要求１０５を発行し（工程Ｓ２０１）、第２タイマ１７１８の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１２が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１７１７が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より小さいため（工程Ｓ２１０１）、また、第２タイマ１７１９が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きいが（工程Ｓ２１０１）、バス使用要求１０６を出力していないため（工程Ｓ２１０２）、減算回路１１４，１１６から減算信号１２８、１３０が発行され、第１タイマ１１２は動作を停止して、値をリセットする。第２タイマ１７１８の値は第２設定値より小さいためカウンタ１７０８は減算信号１２９を受理しない（工程Ｓ５０２）。モジュール１０２がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ１８０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ１７１７、１７１８の値が第３の設定値を超えているかをチェックする（工程Ｓ１９０１）。チェックの結果、第２タイマ１７１７，１７１８とも第３の設定値を超えていないため、カウンタ１７０７、１７０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ１７０７の値が唯一最大となっている（工程Ｓ３０４）。
【０２４２】
（ｔ２２１１）カウンタ１７０７の値が唯一最大なので、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するカウンタ１７０７の値が最大値であるため、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８、１３０を受け、カウンタ１７０７，１７０９の値が減算される（工程Ｓ５０３）。さらに、モジュール１０３がバス使用要求１０６を発行し（工程Ｓ２０１）、第２タイマ１７１９の値をリセットし、動作を開始する（工程Ｓ２０２）。
【０２４３】
（ｔ２２１２）バス使用許可１２３が発行されると第２タイマ１７１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。カウンタ１７０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５、１０６はモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０２４４】
（ｔ２２１３）第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１７１７が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きいが（工程Ｓ２１０１）、バス使用要求１０４を出力していないため（工程Ｓ２１０２）また、第２タイマ１７１８、１７１９が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より小さいため（工程Ｓ２１０１）、減算回路１１４〜１１６から減算信号１２８〜１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５、１０６の優先度判定を行う（工程Ｓ１８０４）。複数のバス使用要求１０５、１０６が発行されているため（工程Ｓ３０１）、第２タイマ１７１８、１７１９の値が第３の設定値を超えているかをチェックする（工程Ｓ１９０１）。チェックの結果、第２タイマ１７１８、１７１９とも第３の設定値を超えていないため、カウンタ１７０８、１７０９の値の比較を行う（工程Ｓ３０２）。
【０２４５】
（ｔ２２１４）比較の結果カウンタ１７０８の値が単数で最大となっているため（工程Ｓ３０４）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。バス使用要求１０６は、同時に発行されたバス使用要求１０５に対応するカウンタ１７０８の値が最大であるため（工程Ｓ４０２）、モジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８〜１３０を受けてカウンタ１７０７〜１７０９の値が減算される（工程Ｓ５０３）。
【０２４６】
（ｔ２２１５）バス使用許可１２４が発行されると第２タイマ１７１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ１７０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０２が使用中のため（工程Ｓ２０３）、バス使用要求１０６は引き続きモジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０２４７】
（ｔ２２１６）モジュール１０２が次のバス使用要求１０５を発行し（工程Ｓ２０１）、第２タイマ１７１８の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１２が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１７１７が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きいが（工程Ｓ２１０１）、バス使用要求１０４を出力していないため（工程Ｓ２１０２）、減算回路１１４から減算信号１２８が発行され、第１タイマ１１２は動作を停止して、値をリセットする。第２タイマ１７１８は第２設定値より小さいため、カウンタ１７０８は減算信号１２９を受理しない（工程Ｓ５０２）。第２タイマ１７１９は第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きく（工程Ｓ２１０１）、バス使用要求１０６を出力しているためカウンタ１７０９は減算信号１３０を受理しない（工程Ｓ２１０２）。モジュール１０２がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５、１０６の優先度判定を行う（工程Ｓ１８０４）。複数のバス使用要求１０５、１０６が発行されているため（工程Ｓ３０１）、第２タイマ１７１８、１７１９の値が第３の設定値を超えているかをチェックする（工程Ｓ１９０１）。チェックの結果、第２タイマ１７１９の値が唯一第３の設定値を超えているため（工程Ｓ２００１）、カウンタ１７０９の値を最大値にセットし（工程Ｓ２００４）、カウンタ１７０８、１７０９の値の比較を行う（工程Ｓ３０２）。
【０２４８】
（ｔ２２１７）比較の結果カウンタ１７０９の値が唯一最大となっている（工程Ｓ３０４）。カウンタ１７０９の値が唯一最大なので、バス使用要求１０６に対してバス使用許可１２５が発行される（工程Ｓ３０６）。バス使用要求１０５は、同時に発行されたバス使用要求１０６に対応するカウンタ１７０９の値が最大値であるため、モジュール１０３がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８を受けてカウンタ１７０７の値が減算される（工程Ｓ５０３）。
【０２４９】
（ｔ２２１８）バス使用許可１２５が発行されると第２タイマ１７１９は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１３の動作を開始する（工程Ｓ２０５）。また、カウンタ１７０９の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０３を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０３が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０３がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０２５０】
（ｔ２２１９）第１タイマ１１３が第１設定値と等しく（工程Ｓ５０１）、第２タイマ１７１７、１７１９が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きいが（工程Ｓ２１０１）、バス使用要求１０４、１０６を出力していないため（工程Ｓ２１０２）また、第２タイマ１７１８が第２設定値より大きく（工程Ｓ２１０１）、第３の設定値より小さいため、減算回路１１４〜１１６から減算信号１２８〜１３０が発行され、第１タイマ１１３は動作を停止して、値をリセットする。また、モジュール１０３がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５の優先度判定を行う（工程Ｓ１８０４）。
【０２５１】
（ｔ２２２０）バス使用要求１０５が単数で発行されているため（工程Ｓ３０１）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。また、減算信号１２８〜１３０を受けてカウンタ１７０７〜１７０９の値が減算される（工程Ｓ５０３）。
【０２５２】
（ｔ２２２１）バス使用許可１２４が発行されると第２タイマ１７１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ１７０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。
【０２５３】
以上のように、本発明の第５の実施の形態によるバス調停装置におけるバス調停方法では、あるモジュールが連続して共有バスを使用しようとしたとき、前記モジュールに対応するカウンタの値が減算されず、前記モジュールを除くその他のモジュールに対応するカウンタの値が減算され、第２タイマが第３の設定値を超えた場合には前記第２タイマに対応するモジュールに対応するカウンタの値を最大値にセットし、カウンタの値が最大のモジュールにバス使用許可を発行することによって、連続してバス使用要求を発行したモジュールが優先的にバスを使用し、また、一定時間バスを使用できなかったモジュールも確実にバスが使用できるように、バス使用許可発行の優先順位を柔軟に変更することができる。
【０２５４】
なお、第１タイマにあらかじめ設定する第１設定値は、本実施の形態に記載される値に限られるものではない。また、第２タイマにあらかじめ設定する第２設定値および第３の設定値は本実施の形態に記載される値に限られるものではない。また、ラウンドロビンによる優先順位の遷移の順番は本実施の形態に記載される順に限られるものではない。
【０２５５】
（第６の実施の形態）
第６の実施の形態では、第５の実施の形態と同様に、連続してバス使用要求を発行するモジュールが優先的にバスを使用することにより、バスを使用できなかったモジュールに対して確実にバスを使用できるようにしたバス調停装置について説明する。
【０２５６】
このバス調停装置は、第２タイマが第３の設定値を超えない場合には、カウンタの値が最大のモジュールにバス使用許可を発行し、第２タイマが第３の設定値を超えた場合には当該第２タイマに対応するモジュールのカウント値（優先度)を最大に変更し、かつそれ以外のモジュールのカウント値（優先度）を最小に変更する。これにより、連続してバス使用要求を発行しないモジュールでも確実にバスを使用できる。
【０２５７】
図２３は、本発明の第６の実施の形態によるバス調停装置の構成を示すブロック図である。本発明の第６の実施の形態における図２３の構成は、第２の実施の形態に示す図１Ｂと基本的に同じであるが、バス調停装置２３２７に含まれる、第２タイマ２３１７〜２３１９の動作、カウンタ２３０７〜２３０９の動作が図１Ｂと異なる。
【０２５８】
まず、本発明の第６の実施の形態によるバス調停装置の構成について、本発明の第２の実施の形態であるバス調停装置と異なるブロックについて説明する。
【０２５９】
第２タイマ２３１７〜２３１９は、バス使用要求１０４〜１０６とバス使用許可１２３〜１２５を入力し、各モジュール１０１〜１０３からバス使用要求が発せられると同時に値をリセットして動作を開始し、あらかじめ設定された第２設定値を経過するとカウンタ２３０７〜２３０９に通知し、あらかじめ設定された第３の設定値を経過するとカウンタ２３０７〜２３０９のすべてに通知し、バス使用許可１２３〜１２５が発せられると動作を停止して値を最大値にセットする。
【０２６０】
カウンタ２３０７〜２３０９は、バス使用許可１２３〜１２５と第２タイマ２３１７〜２３１９からの通知と減算回路１１４〜１１６からの通知とバス使用要求１０４〜１０６を入力し、バス使用許可１２３〜１２５が発行されると各モジュール１０１〜１０３に対して与えられたバス使用許可の回数をカウントし、第２タイマ２３１７〜２３１９が第２設定値を経過したことの通知と減算回路１１４〜１１６からの通知により、カウントを減算し、第２タイマ２３１７〜２３１９が第３の設定値を経過していることの通知とバス使用要求１０４〜１０６からの通知により値を最大値、または０にセットする。また、値が最大値のときにバス使用許可１２３〜１２５が発行されると値を０にセットする。
【０２６１】
その他のブロックについては、本発明の第２の実施の形態によるバス調停装置と同一であり、その説明は省略する。
【０２６２】
続いて、本発明の第６の実施の形態によるバス調停装置におけるバス調停方法の処理の流れについて、図２４〜図２７を用いて説明する。
【０２６３】
図２４は本発明の第６の実施の形態によるバス調停装置におけるバス調停方法の処理の流れを示すフローチャートである。図２５は図２４に示す処理のうち、優先度判定における詳細な処理の流れを示すフローチャートである。図２６は図２５に示す処理のうち、カウンタ値変更における詳細な処理の流れを示すフローチャートである。図２７は図２４に示す処理のうち、使用許可回数減算における詳細な処理の流れを示すフローチャートである。本発明の第６の実施の形態における図２４のバス調停方法の処理の流れは、第２の実施の形態に示す図２と基本的に同じであるが、優先度判定工程Ｓ２４０４の処理、および使用許可回数減算工程Ｓ２４０８が異なっている。また、本発明の第６の実施の形態における図２５の優先度判定における詳細な処理の流れは、第２の実施の形態に示す図３と基本的に同じであるが、第２タイマの値と第３の設定値との比較を行う工程Ｓ２５０１およびカウンタ値の変更を行う工程Ｓ２５０２の処理が加わる。さらに、本発明の第６の実施の形態における図２７の使用許可回数減算における詳細な処理の流れは、第２の実施の形態に示す図５と基本的に同じであるが、第２タイマの値と第３の設定値との比較を行う工程Ｓ２７０１およびバス使用要求の出力確認を行う工程Ｓ２７０２の処理が加わる。工程Ｓ２０１において、各モジュール１０１〜１０３がバスを使用したい時にバス使用要求１０４〜１０６をバス調停装置２３２７に発行する。
【０２６４】
工程２０２において、バス使用要求１０４〜１０６を発行した各モジュール１０１〜１０３に対応する第２タイマ２３１７〜２３１９の値をリセットし、計測を開始する。
【０２６５】
工程Ｓ２０３において、バスが使用されているかいないかをチェックする。工程Ｓ２０３のチェックの結果、バスが使用されていた場合にはバスの使用が終了するまで工程Ｓ２０３を続行する。
【０２６６】
工程Ｓ２０３のチェックの結果、バスを使用していない場合には優先度判定部１２６は工程Ｓ２４０４において、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３の優先度判定を行い、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３のいずれかにバス使用許可１２３〜１２５を発行する。優先度判定については後述する。
【０２６７】
工程Ｓ２４０４の結果、バス使用許可１２３〜１２５が発行されると工程Ｓ２０５において、第１タイマ１１１〜１１３の計測を開始し、工程Ｓ２０６において、カウンタ２３０７〜２３０９の値を加算し、工程Ｓ２０７において、許可モジュール保持レジスタ１１０にバス使用許可が発行されたモジュールを示す情報を格納する。
【０２６８】
工程Ｓ２４０８において、使用許可減算を行い、カウンタ２３０７〜２３０９の値を減算する。使用許可減算については後述する。
【０２６９】
工程Ｓ２４０４の優先度判定が起動されると、図２５に示すように工程Ｓ３０１において、バス使用要求１０４〜１０６を発行したモジュールが複数であるか単数であるかをチェックする。工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが単数の場合には、工程Ｓ３０６において、バス使用要求１０４〜１０６を発行したモジュールに対してバス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２３１７〜２３１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【０２７０】
工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが複数の場合には工程Ｓ２５０１において、第２タイマ２３１７〜２３１９の値があらかじめ設定した第３の設定値を経過しているかどうかをチェックする。工程Ｓ２５０１のチェックの結果、第２タイマ２３１７〜２３１９の値があらかじめ設定した第３の設定値を経過している場合、工程Ｓ２５０２において、カウンタ値変更を行い工程Ｓ３０２へ進む。カウンタ値変更については後述する。
【０２７１】
工程Ｓ３０２において、カウンタ２３０７〜２３０９の値が最大であるかをチェックする。工程Ｓ３０２のチェックの結果、カウンタ２３０７〜２３０９の値が最大でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図２４の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０２７２】
工程Ｓ３０２のチェックの結果、カウンタ２３０７〜２３０９の値が最大である場合には、工程Ｓ３０４において、値が最大であるカウンタ２３０７〜２３０９が複数であるか単数であるかをチェックする。工程Ｓ３０４のチェックの結果、値が最大であるカウンタが単数である場合には、工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２３１７〜２３１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【０２７３】
工程Ｓ３０４のチェックの結果、値が最大であるカウンタが複数である場合には、工程Ｓ３０５において、保持モジュール確認を行い、バス使用許可１２３〜１２５を発行するモジュールを判定し、判定の結果に基づいて工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２３１７〜２３１９の値を最大値にセットして動作を停止し、優先度判定を終了する。保持モジュール確認については、本発明の第２の実施の形態によるバス調停装置におけるバス調停方法の処理と同一であり、その説明は省略する。
【０２７４】
工程Ｓ２５０２のカウンタ値変更が起動されると、図２６に示すように工程Ｓ２６０１において、あらかじめ設定した第３の設定値を経過している第２タイマ２３１７〜２３１９が複数であるか単数であるかをチェックする。工程Ｓ２００１のチェックの結果、第３の設定値を超えている第２タイマ２３１７〜２３１９が単数である場合には、工程Ｓ２６０４において、カウンタの値を最大値にセットし、他のカウンタの値を０にセットしてカウンタ値変更を終了する。
【０２７５】
工程Ｓ２６０１のチェックの結果、第３の設定値を超えている第２タイマ２３１７〜２３１９が複数である場合には、工程Ｓ２６０２において、許可モジュール保持レジスタ１１０に保持されているモジュールと一致するかをチェックする。工程Ｓ２６０２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致する場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図２４の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０２７６】
工程Ｓ２６０２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致しない場合には、工程Ｓ２６０３において、ラウンドロビンによりバス使用許可１２３〜１２５が発行される順番であるかをチェックする。工程Ｓ２６０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番である場合には、工程Ｓ２６０４において、カウンタの値を最大値にセットし、他のカウンタの値を０にセットしてカウンタ値変更を終了する。
【０２７７】
工程Ｓ２６０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図２４の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０２７８】
工程Ｓ２４０８の使用許可回数減算が起動されると、図２７に示すように工程Ｓ５０１において、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過しているかをチェックする。工程Ｓ５０１のチェックの結果、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過していない場合には、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過するまで工程Ｓ５０１を繰り返す。
【０２７９】
工程Ｓ５０１のチェックの結果、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過している場合には、工程Ｓ５０２において、第２タイマ２３１７〜２３１９の値があらかじめ設定した第２設定値を経過しているかをチェックする。工程Ｓ５０２のチェック結果、第２タイマ２３１７〜２３１９の値があらかじめ設定した第２設定値を経過していない場合には、減算信号１２８〜１３０はカウンタ２３０７〜２３０９で受理されず、カウンタ２３０７〜２３０９の値はそのままで使用許可回数減算を終了する。
【０２８０】
工程Ｓ５０２のチェック結果、第２タイマ２３１７〜２３１９の値があらかじめ設定した第２設定値を経過している場合には、工程Ｓ２７０１において、第２タイマ２３１７〜２３１９の値があらかじめ設定した第３の設定値を経過しているかをチェックする。工程Ｓ２７０１のチェックの結果、第２タイマ２３１７〜２３１９の値があらかじめ設定した第３の設定値を経過している場合には、工程Ｓ２７０２において、バス使用要求１０４〜１０６が出力されているかをチェックする。工程Ｓ２７０２のチェックの結果、バス使用要求１０４〜１０６が出力されている場合には、減算信号１２８〜１３０はカウンタ２３０７〜２３０９で受理されず、カウンタ２３０７〜２３０９の値はそのままで使用許可回数減算を終了する。
【０２８１】
工程Ｓ２７０２のチェックの結果、バス使用要求１０４〜１０６が出力されていない場合には、工程Ｓ５０３において、減算信号１２８〜１３０を発行し、カウンタ２３０７〜２３０９の値を減じて使用許可回数減算を終了する。
【０２８２】
工程Ｓ２７０１のチェックの結果第２タイマ２３１７〜２３１９の値があらかじめ設定した第３の設定値を経過していない場合には、工程Ｓ５０３において、減算信号１２８〜１３０を発行し、カウンタ２３０７〜２３０９の値を減じて使用許可回数減算を終了する。
【０２８３】
本発明の第６の実施の形態によるバス調停装置におけるバス調停方法について、図２８を用いて、具体的に説明する。図２８は本発明の第６の実施の形態によるバス調停装置におけるバス調停方法の動作を示すタイムチャートである。図２３において第１タイマ１１１〜１１３にあらかじめ設定する第１設定値を２、第２タイマ２３１７〜２３１９にあらかじめ設定する第２設定値を２、第２タイマ２３１７にあらかじめ設定する第３の設定値を５、第２タイマ２３１８にあらかじめ設定する第３の設定値を５、第２タイマ２３１９にあらかじめ設定する第３の設定値を７、許可モジュール保持レジスタ１１０の初期値はモジュール１０１を示す値であるとする。また、ラウンドロビンによる優先度の遷移はモジュール１０１、モジュール１０３、モジュール１０２の順に遷移するとする。
【０２８４】
（ｔ２８０１）モジュール１０１がバス使用要求１０４、モジュール１０２がバス使用要求１０５を発行する（工程Ｓ２０１）と、第２タイマ２３１７、２３１８の値をリセットし、動作を開始する（工程Ｓ２０２）。バスの使用状態をチェックする（工程Ｓ２０３）と、未使用であるため、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ１８０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ２３１７、２３１８の値が第３の設定値を超えているかをチェックする（工程Ｓ２５０１）。チェックの結果、第２タイマ２３１７，２３１８とも第３の設定値を超えていないため、カウンタ２３０７、２３０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ２３０７，２３０８とも値が最大であるため（工程Ｓ３０４）保持モジュール確認（工程Ｓ３０５）を行う。
【０２８５】
（ｔ２８０２）許可モジュール保持レジスタの値はモジュール１０１を示しているため（工程Ｓ４０１）、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。また、バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するモジュール１０１を示す値が許可モジュール保持レジスタに保持されているため（工程Ｓ４０２）、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０２８６】
（ｔ２８０３）バス使用許可１２３が発行されると第２タイマ２３１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ２３０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０２８７】
（ｔ２８０４）モジュール１０１が次のバス使用要求１０４を発行し（工程Ｓ２０１）、第２タイマ２３１７の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ２３１８が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より小さいため（工程Ｓ２７０１）また、第２タイマ２３１９が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きいが（工程Ｓ２７０１）、バス使用要求１０６を出力していないため（工程Ｓ２７０２）、減算回路１１５，１１６から減算信号１２９、１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。第２タイマ２３１７の値は第２設定値より小さいためカウンタ２３０７は、減算信号１２８を受理しない（工程Ｓ５０２）。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ２４０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ２３１７、２３１８の値が第３の設定値を超えているかをチェックする（工程Ｓ２５０１）。チェックの結果、第２タイマ２３１７，２３１８とも第３の設定値を超えていないため、カウンタ２３０７、２３０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ２３０７の値が唯一最大となっている（工程Ｓ３０４）。
【０２８８】
（ｔ２８０５）カウンタ２３０７の値が唯一最大なので、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。バス使用要求１０５は、同時に発行されたバス使用要求１０４に対応するカウンタ２３０７の値が最大値であるため、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２９、１３０を受け、カウンタ２３０８，２３０９の値が減算される（工程Ｓ５０３）。
【０２８９】
（ｔ２８０６）バス使用許可１２３が発行されると第２タイマ２３１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ２３０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０２９０】
（ｔ２８０７）モジュール１０１が次のバス使用要求１０４を発行し（工程Ｓ２０１）、第２タイマ２３１７の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ２３１９が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きいが（工程Ｓ２７０１）、バス使用要求１０６を出力していないため（工程Ｓ２７０２）、減算回路１１６から減算信号１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。第２タイマ２３１７の値は第２設定値より小さいためカウンタ２３０７は、減算信号１２８を受理しない（工程Ｓ５０２）。また、第２タイマ２３１８は第３の設定値より大きく（工程Ｓ２７０１）、バス使用要求１０５を出力しているためカウンタ２３０８は、減算信号１２９を受理しない（工程Ｓ２７０２）。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ２４０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ２３１７、２３１８の値が第３の設定値を超えているかをチェックする（工程Ｓ１９０１）。チェックの結果、第２タイマ２３１８の値が唯一第３の設定値を超えているため（工程Ｓ２６０１）、カウンタ２３０８の値を最大値にセットし（工程Ｓ２６０４）、カウンタ２３０７、２３０９の値を０にセットして、カウンタ２３０７、２３０８の値の比較を行う（工程Ｓ３０２）。
【０２９１】
（ｔ２８０８）比較の結果カウンタ２３０８の値が唯一最大となっている（工程Ｓ３０４）。カウンタ２３０８の値が唯一最大なので、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。バス使用要求１０４は、同時に発行されたバス使用要求１０５に対応するカウンタ２３０８の値が最大値であるため、モジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１３０を受けてカウンタ２３０９の値が減算される（工程Ｓ５０３）。
【０２９２】
（ｔ２８０９）バス使用許可１２４が発行されると第２タイマ２３１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ２３０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。
【０２９３】
（ｔ２８１０）モジュール１０２が次のバス使用要求１０５を発行し（工程Ｓ２０１）、第２タイマ２３１８の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１２が第１設定値と等しく（工程Ｓ５０１）、第２タイマ２３１７が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より小さいため（工程Ｓ２７０１）また、第２タイマ２３１９が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きいが（工程Ｓ２７０１）、バス使用要求１０６を出力していないため（工程Ｓ２７０２）、減算回路１１４，１１６から減算信号１２８、１３０が発行され、第１タイマ１１２は動作を停止して、値をリセットする。第２タイマ２３１８の値は第２設定値より小さいためカウンタ２３０８は減算信号１２９を受理しない（工程Ｓ５０２）。モジュール１０２がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０５の優先度判定を行う（工程Ｓ２４０４）。複数のバス使用要求１０４，１０５が発行されているため（工程Ｓ３０１）、第２タイマ２３１７、２３１８の値が第３の設定値を超えているかをチェックする（工程Ｓ２５０１）。チェックの結果、第２タイマ２３１７，２３１８とも第３の設定値を超えていないため、カウンタ２３０７、２３０８の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ２３０７，２３０８とも値が最大であるため（工程Ｓ３０４）保持モジュール確認（工程Ｓ３０５）を行う。
【０２９４】
（ｔ２８１１）許可モジュール保持レジスタの値はモジュール１０２を示しているため（工程Ｓ４０１）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。また、バス使用要求１０４は、同時に発行されたバス使用要求１０５に対応するモジュール１０２を示す値が許可モジュール保持レジスタに保持されているため（工程Ｓ４０２）、モジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８、１３０を受け、カウンタ２３０７，２３０９の値が減算される（工程Ｓ５０３）。さらに、モジュール１０３がバス使用要求１０６を発行し（工程Ｓ２０１）、第２タイマ２３１９の値をリセットし、動作を開始する（工程Ｓ２０２）。
【０２９５】
（ｔ２８１２）バス使用許可１２４が発行されると第２タイマ２３１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。カウンタ２３０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０２が使用中のため（工程Ｓ２０３）、バス使用要求１０４、１０６はモジュール１０２がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０２９６】
（ｔ２８１３）第１タイマ１１２が第１設定値と等しく（工程Ｓ５０１）、第２タイマ２３１８、２３１９が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より小さいため（工程Ｓ２１０１）、減算回路１１５、１１６から減算信号１２９、１３０が発行され、第１タイマ１１１は動作を停止して、値をリセットする。第２タイマ２３１７は第３の設定値より大きく（工程Ｓ２７０１）、バス使用要求１０５を出力しているためカウンタ２３０７は、減算信号１２８を受理しない（工程Ｓ２７０２）。モジュール１０２がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０４、１０６の優先度判定を行う（工程Ｓ２４０４）。複数のバス使用要求１０４、１０６が発行されているため（工程Ｓ３０１）、第２タイマ２３１８、２３１９の値が第３の設定値を超えているかをチェックする（工程Ｓ１９０１）。チェックの結果、第２タイマ２３１７の値が唯一第３の設定値を超えているため（工程Ｓ２６０１）、カウンタ２３０７の値を最大値にセットし（工程Ｓ２６０４）、カウンタ２３０８、２３０９の値を０にセットして、カウンタ２３０７、２３０９の値の比較を行う（工程Ｓ３０２）。
【０２９７】
（ｔ２８１４）比較の結果カウンタ２３０７の値が単数で最大となっているため（工程Ｓ３０４）、バス使用要求１０４に対してバス使用許可１２３が発行される（工程Ｓ３０６）。バス使用要求１０６は、同時に発行されたバス使用要求１０４に対応するカウンタ２３０７の値が最大であるため（工程Ｓ４０２）、モジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２９、１３０を受けてカウンタ２３０８、２３０９の値が減算される（工程Ｓ５０３）。
【０２９８】
（ｔ２８１５）バス使用許可１２３が発行されると第２タイマ２３１７は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１１の動作を開始する（工程Ｓ２０５）。また、カウンタ２３０７の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０１を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０１が使用中のため（工程Ｓ２０３）、バス使用要求１０６は引き続きモジュール１０１がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０２９９】
（ｔ２８１６）モジュール１０２が次のバス使用要求１０５を発行し（工程Ｓ２０１）、第２タイマ２３１８の値をリセットし、動作を開始する（工程Ｓ２０２）。また、第１タイマ１１１が第１設定値と等しく（工程Ｓ５０１）、第２タイマ２３１７が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きいが（工程Ｓ２７０１）、バス使用要求１０４を出力していないため（工程Ｓ２７０２）また、第２タイマ２３１９が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より小さいため（工程Ｓ２７０１）、減算回路１１４、１１６から減算信号１２８、１３０が発行され、第１タイマ１１２は動作を停止して、値をリセットする。第２タイマ２３１８は第２設定値より小さいため、カウンタ２３０８は減算信号１２９を受理しない（工程Ｓ５０２）。モジュール１０１がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５、１０６の優先度判定を行う（工程Ｓ２４０４）。複数のバス使用要求１０５、１０６が発行されているため（工程Ｓ３０１）、第２タイマ２３１８、２３１９の値が第３の設定値を超えているかをチェックする（工程Ｓ２５０１）。チェックの結果、第２タイマ２３１８，２３１９とも第３の設定値を超えていないため、カウンタ２３０８、２３０９の値の比較を行う（工程Ｓ３０２）。比較の結果カウンタ２３０８，２３０９とも値が最大であるため（工程Ｓ３０４）保持モジュール確認（工程Ｓ３０５）を行う。
【０３００】
（ｔ２８１７）許可モジュール保持レジスタの値はモジュール１０１を示しているため（工程Ｓ４０１、工程Ｓ４０２）、ラウンドロビンでの順番によって（工程Ｓ４０３）バス使用要求１０６に対してバス使用許可１２５が発行される（工程Ｓ３０６）。バス使用要求１０５は、ラウンドロビンの順番ではないため（工程Ｓ４０３）、モジュール１０３がバスの使用を終えるのを待つ（工程Ｓ２０３）。また、減算信号１２８、１３０を受けてカウンタ２３０７、２３０９の値が減算される（工程Ｓ５０３）。
【０３０１】
（ｔ２８１８）バス使用許可１２５が発行されると第２タイマ２３１９は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１３の動作を開始する（工程Ｓ２０５）。また、カウンタ２３０９の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０３を示す値を格納する（工程Ｓ２０７）。バスの状態はモジュール１０３が使用中のため（工程Ｓ２０３）、バス使用要求１０５は引き続きモジュール１０３がバスの使用を終えるのを待つ（工程Ｓ２０３）。
【０３０２】
（ｔ２８１９）第１タイマ１１３が第１設定値と等しく（工程Ｓ５０１）、第２タイマ２３１７、２３１９が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より大きいが（工程Ｓ２７０１）、バス使用要求を出力していないため（工程Ｓ２７０２）また、第２タイマ２３１８が第２設定値より大きく（工程Ｓ５０２）、第３の設定値より小さいため（工程Ｓ２７０１）、減算回路１１４〜１１６から減算信号１２８〜１３０が発行され、第１タイマ１１３は動作を停止して、値をリセットする。また、モジュール１０３がバスの使用を終えたため（工程Ｓ２０３）、バス使用要求１０５の優先度判定を行う（工程Ｓ２４０４）。
【０３０３】
（ｔ２８２０）バス使用要求１０５が単数で発行されているため（工程Ｓ３０１）、バス使用要求１０５に対してバス使用許可１２４が発行される（工程Ｓ３０６）。また、減算信号１２８〜１３０を受けてカウンタ２３０７〜２３０９の値が減算される（工程Ｓ５０３）。
【０３０４】
（ｔ２８２１）バス使用許可１２４が発行されると第２タイマ２３１８は値を最大値にセットし動作を停止し（工程Ｓ３０７）、第１タイマ１１２の動作を開始する（工程Ｓ２０５）。また、カウンタ２３０８の値を１増やし（工程Ｓ２０６）、許可モジュール保持レジスタ１１０にモジュール１０２を示す値を格納する（工程Ｓ２０７）。
【０３０５】
以上のように、本発明の第６の実施の形態によるバス調停装置におけるバス調停方法では、あるモジュールが連続して共有バスを使用しようとしたとき、前記モジュールに対応するカウンタの値が減算されず、前記モジュールを除くその他のモジュールに対応するカウンタの値が減算され、第２タイマが第３の設定値を超えた場合には前記第２タイマに対応するモジュールに対応するカウンタの値を最大値にセットし、前記カウンタ以外の値を０にセットし、カウンタの値が最大のモジュールにバス使用許可を発行することによって、連続してバス使用要求を発行したモジュールが優先的にバスを使用し、また、一定時間バスを使用できなかったモジュールも確実にバスが使用できるようにし、前記モジュールが連続してバス使用要求を発行した場合に優先的にバスが使用できるように、バス使用許可発行の優先順位を柔軟に変更することができる。
【０３０６】
なお、第１タイマにあらかじめ設定する第１設定値は、本実施の形態に記載される値に限られるものではない。また、第２タイマにあらかじめ設定する第２設定値および第３の設定値は本実施の形態に記載される値に限られるものではない。また、ラウンドロビンによる優先順位の遷移の順番は本実施の形態に記載される順に限られるものではない。
【０３０７】
（第７の実施の形態）
第７の実施の形態では、モジュールが必要とするバス使用の頻度や回数や連続性に応じて適切な動作モードをモジュール毎に設定することができる。本実施の形態におけるバス調停装置は、動作モードとして、上記各実施の形態におけるウント値の変更に関する動作を、モジュール毎に設定可能なように構成されている。
【０３０８】
図２９は、本発明の第７の実施の形態によるバス調停装置の構成を示すブロック図である。
【０３０９】
まず、本発明の第７の実施の形態によるバス調停装置の構成について図２９を用いて説明する。図２９に示すようにバス調停装置２９２７には、カウンタ１０７〜１０９、許可モジュール保持レジスタ１１０、第１タイマ１１１〜１１３、減算回路１１４〜１１６、第２タイマ２９１７〜２９１９、優先度判定部２９２６、モードレジスタ２３３１〜２３３３が設けられている。
【０３１０】
バス調停装置２９２７は接続されたモジュール１０１〜１０３からのバス使用要求１０４〜１０６に対して調停を行い、各モジュール１０１〜１０３に対してバス使用許可１２３〜１２５を与える。
【０３１１】
カウンタ２９０７〜２９０９は、バス使用許可１２３〜１２５と減算回路１１４〜１１６からの通知とモードレジスタ２３３１〜２３３３からの通知とを入力し、バス使用許可１２３〜１２５が発行されると各モジュール１０１〜１０３に対して与えられたバス使用許可の回数をカウントし、モードレジスタ２３３１〜２３３３からの情報により値を最大値または０に設定し、モードレジスタ２３３１〜２３３３からの情報と減算回路１１４〜１１６からの通知により、カウントを減算する。また、値が最大値のときにバス使用許可１２３〜１２５が発行されると値を０にセットする。
【０３１２】
許可モジュール保持レジスタ１１０は、バス使用許可１２３〜１２５を入力し、最後にバス使用許可を与えたモジュールを表す情報を格納する。
【０３１３】
第１タイマ１１１〜１１３は、バス使用許可１２３〜１２５を入力し、各モジュール１０１〜１０３に対してバス使用許可が与えられると同時に動作を開始し、あらかじめ設定された第１設定値を経過すると減算回路１１４〜１１６へ通知し、動作を停止して値をリセットする。
【０３１４】
第２タイマ２９１７〜２９１９は、バス使用要求１０４〜１０６とバス使用許可１２３〜１２５を入力し、各モジュール１０１〜１０３からバス使用要求が発せられると同時に値をリセットして動作を開始し、あらかじめ設定された第２設定値を経過するとモードレジスタ２３３１〜２３３３に通知し、あらかじめ設定された第３の設定値を経過するとモードレジスタ２３３１〜２３３３に通知し、バス使用許可１２３〜１２５が発せられると動作を停止して値を最大値にセットする。
【０３１５】
減算回路１１４〜１１６は、第１タイマ１１１〜１１３からの通知を入力し、通知を受けると減算信号１２８〜１３０を発する。
【０３１６】
優先度判定部２９２６は、バス使用要求１０４〜１０６とカウンタ２９０７〜２９０９の値と許可モジュール保持レジスタ１１０の保持するバス使用許可モジュールの情報とモードレジスタ２３３１〜２３３３の情報とを入力し、カウンタ２９０７〜２９０９の値とバス使用許可モジュールの情報とモードレジスタ２３３１〜２３３３からの情報に基づいて各モジュール１０１〜１０３に対してバス使用許可１２３〜１２５を発行する。
【０３１７】
モードレジスタ２３３１〜２３３３は、バス使用要求１０４〜１０６と第２タイマ２９１７〜２９１９からの通知とを入力し、カウンタ２９０７〜２９０９の値を制御するための情報、および優先度判定部２９２６を制御するための情報を発する。なお本発明の第７の実施の形態では、モードレジスタの発する情報をモードと呼称し、モードは次の７種類に設定する。
【０３１８】
モード＝０：バス使用要求１０４〜１０６が発行されておらず、カウンタ２９０７〜２９０９は減算信号１２８〜１３０を受理し、優先度判定部２９２６はカウンタ２９０７〜２９０９の値が最大のモジュールにバス使用許可１２３〜１２５を発行する。
【０３１９】
モード＝１：バス使用要求１０４〜１０６が発行されており、第２タイマ２９１７〜２９１９の値が第２設定値より小さく、カウンタ２９０７〜２９０９は減算信号１２８〜１３０を受理せず、優先度判定部２９２６はカウンタ２９０７〜２９０９の値が最大のモジュールにバス使用許可１２３〜１２５を発行する。
【０３２０】
モード＝２：バス使用要求１０４〜１０６が発行されており、第２タイマ２９１７〜２９１９の値が第２設定値より大きく、第３の設定値より小さく、カウンタ２９０７〜２９０９は減算信号１２８〜１３０を受理し、優先度判定部２９２６はカウンタ２９０７〜２９０９の値が最大のモジュールにバス使用許可１２３〜１２５を発行する。
【０３２１】
モード＝３：バス使用要求１０４〜１０６が発行されており、第２タイマ２９１７〜２９１９の値が第３の設定値より大きく、カウンタ２９０７〜２９０９は減算信号１２８〜１３０を受理せず値を最大値に設定し、優先度判定部２９２６はカウンタ２９０７〜２９０９の値が最大のモジュールにバス使用許可１２３〜１２５を発行する。
【０３２２】
モード＝４：バス使用要求１０４〜１０６が発行されており、第２タイマ２９１７〜２９１９の値が第３の設定値より大きく、カウンタ２９０７〜２９０９は減算信号１２８〜１３０を受理せず値を最大値に設定し、他のモジュールのカウンタ２９０７〜２９０９の値を０に設定し、優先度判定部２９２６はカウンタ２９０７〜２９０９の値が最大のモジュールにバス使用許可１２３〜１２５を発行する。
【０３２３】
モード＝５：バス使用要求１０４〜１０６が発行されており、第２タイマ２９１７〜２９１９の値が第３の設定値より大きく、カウンタ２９０７〜２９０９は減算信号１２８〜１３０を受理し、優先度判定部２９２６はカウンタ２９０７〜２９０９の値が最小のモジュールにバス使用許可１２３〜１２５を発行する。
【０３２４】
モード＝６：バス使用要求１０４〜１０６が発行されており、第２タイマ２９１７〜２９１９の値が第３の設定値より大きく、カウンタ２９０７〜２９０９は減算信号１２８〜１３０を受理せず、優先度判定部２９２６はこのモジュールにバス使用許可１２３〜１２５を発行する。
【０３２５】
バス使用要求１０４〜１０６が発行されており、第２タイマ２９１７〜２９１９の値が第３の設定値より大きい場合に、モード３〜モード６のどのモードに遷移するかは、モードレジスタ毎にあらかじめ設定できる。また、モードは数値の大きいモードが優先されるとする。
【０３２６】
続いて、本発明の第７の実施の形態によるバス調停装置におけるバス調停方法の処理の流れについて、図３０〜図３８を用いて説明する。
【０３２７】
図３０は本発明の第７の実施の形態によるバス調停装置におけるバス調停方法の処理の流れを示すフローチャートである。図３１は図３０に示す処理のうち、優先度判定における詳細な処理の流れを示すフローチャートである。図３２は図３１に示す処理のうち、モード確認における詳細な処理の流れを示すフローチャートである。図３３は図３２に示す処理のうち、モード６動作における詳細な処理の流れを示すフローチャートである。図３４は図３２に示す処理のうち、モード５動作における詳細な処理の流れを示すフローチャートである。図３５は図３２に示す処理のうち、モード４動作における詳細な処理の流れを示すフローチャートである。図３６は図３２に示す処理のうち、モード３動作における詳細な処理の流れを示すフローチャートである。図３７は図３２に示す処理のうち、保持モジュール確認における詳細な処理の流れを示すフローチャートである。図３８は図３０に示す処理のうち、使用許可減算における詳細な処理の流れを示すフローチャートである。
【０３２８】
工程Ｓ２０１において、各モジュール１０１〜１０３がバスを使用したい時にバス使用要求１０４〜１０６をバス調停装置２９２７に発行する。
【０３２９】
工程２０２において、バス使用要求１０４〜１０６を発行した各モジュール１０１〜１０３に対応する第２タイマ２９１７〜２９１９の値をリセットし、計測を開始する。
【０３３０】
工程Ｓ２０３において、バスが使用されているかいないかをチェックする。工程Ｓ２０３のチェックの結果、バスが使用されていた場合にはバスの使用が終了するまで工程Ｓ２０３を続行する。
【０３３１】
工程Ｓ２０３のチェックの結果、バスを使用していない場合には優先度判定部２９２６は工程Ｓ３００４において、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３の優先度判定を行い、バス使用要求１０４〜１０６を発行したモジュール１０１〜１０３のいずれかにバス使用許可１２３〜１２５を発行する。優先度判定については後述する。
【０３３２】
工程Ｓ３００４の結果、バス使用許可１２３〜１２５が発行されると工程Ｓ２０５において、第１タイマ１１１〜１１３の計測を開始し、工程Ｓ２０６において、カウンタ２９０７〜２９０９の値を加算し、工程Ｓ２０７において、許可モジュール保持レジスタ１１０にバス使用許可が発行されたモジュールを示す情報を格納する。
【０３３３】
工程Ｓ３００８において、使用許可減算を行い、カウンタ２９０７〜２９０９の値を減算する。使用許可減算については後述する。
【０３３４】
工程Ｓ３００４の優先度判定が起動されると、図３１に示すように工程Ｓ３０１において、バス使用要求１０４〜１０６を発行したモジュールが複数であるか単数であるかをチェックする。工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが単数の場合には、工程Ｓ３０６において、バス使用要求１０４〜１０６を発行したモジュールに対してバス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止し、優先度判定を終了する。
【０３３５】
工程Ｓ３０１のチェックの結果、バス使用要求１０４〜１０６を発行したモジュールが複数の場合には工程Ｓ３１０２において、モード確認を行い工程Ｓ３０６において、バス使用要求１０４〜１０６を発行したモジュールに対してバス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止し、優先度判定を終了する。モード確認については後述する。
【０３３６】
工程Ｓ３１０２のモード確認が起動されると、図３２に示すように工程Ｓ３２０１において、モードレジスタ２３３１〜２３３３のモードが６であるかをチェックする。工程Ｓ３２０１のチェックの結果、モードが６である場合には、工程Ｓ３２０９において、モード６動作を行い、モード確認を終了する。モード６動作については後述する。
【０３３７】
工程Ｓ３２０１のチェックの結果、モードレジスタ２３３１〜２３３３のモードが６でない場合には、工程Ｓ３２０２において、モードが５であるかをチェックする。工程Ｓ３２０２のチェックの結果、モードが５である場合には、工程Ｓ３２１０において、モード５動作を行い、モード確認を終了する。モード５動作については後述する。
【０３３８】
工程Ｓ３２０２のチェックの結果、モードレジスタ２３３１〜２３３３のモードが５でない場合には、工程Ｓ３２０３において、モードが４であるかをチェックする。工程Ｓ３２０３のチェックの結果、モードが４である場合には、工程Ｓ３２１１において、モード４動作を行い、工程Ｓ３２０５において、カウンタ２９０７〜２９０９の値が最大であるかをチェックする。モード４動作については後述する。工程Ｓ３２０５のチェックの結果カウンタ２９０７〜２９０９の値が最大でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３３９】
工程Ｓ３２０５のチェックの結果、カウンタ２９０７〜２９０９の値が最大である場合には、工程Ｓ３２０６において、値が最大であるカウンタ２９０７〜２９０９が複数であるか単数であるかをチェックする。工程Ｓ３２０６のチェックの結果、値が最大であるカウンタが単数である場合には、モード確認を終了し、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３４０】
工程Ｓ３２０６のチェックの結果、値が最大であるカウンタが複数である場合には、工程Ｓ３２１３において、保持モジュール確認を行い、モード確認を終了する。保持モジュール確認については後述する。
【０３４１】
工程Ｓ３２０３のチェックの結果、モードレジスタ２３３１〜２３３３のモードが４でない場合には、工程Ｓ３２０４において、モードが３であるかをチェックする。工程Ｓ３２０４のチェックの結果、モードが３である場合には、工程Ｓ３２１２において、モード３動作を行い、工程Ｓ３２０５において、カウンタ２９０７〜２９０９の値が最大であるかをチェックする。モード３動作については後述する。工程Ｓ３２０５のチェックの結果カウンタ２９０７〜２９０９の値が最大でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３４２】
工程Ｓ３２０５のチェックの結果、カウンタ２９０７〜２９０９の値が最大である場合には、工程Ｓ３２０６において、値が最大であるカウンタ２９０７〜２９０９が複数であるか単数であるかをチェックする。工程Ｓ３２０６のチェックの結果、値が最大であるカウンタが単数である場合には、モード確認を終了し、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３４３】
工程Ｓ３２０６のチェックの結果、値が最大であるカウンタが複数である場合には、工程Ｓ３２１３において、保持モジュール確認を行い、モード確認を終了する。保持モジュール確認については後述する。
【０３４４】
工程Ｓ３２０４のチェックの結果、モードレジスタ２３３１〜２３３３のモードが３でない場合には、工程Ｓ３２０５において、カウンタ２９０７〜２９０９の値が最大であるかをチェックする。工程Ｓ３２０５のチェックの結果カウンタ２９０７〜２９０９の値が最大でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３４５】
工程Ｓ３２０５のチェックの結果、カウンタ２９０７〜２９０９の値が最大である場合には、工程Ｓ３２０６において、値が最大であるカウンタ２９０７〜２９０９が複数であるか単数であるかをチェックする。工程Ｓ３２０６のチェックの結果、値が最大であるカウンタが単数である場合には、モード確認を終了し、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３４６】
工程Ｓ３２０６のチェックの結果、値が最大であるカウンタが複数である場合には、工程Ｓ３２１３において、保持モジュール確認を行い、モード確認を終了する。保持モジュール確認については後述する。
【０３４７】
工程Ｓ３２０９のモード６動作が起動されると、図３３に示すように工程Ｓ３３０１において、モードが６であるモードレジスタ２３３１〜２３３３が複数であるか単数であるかをチェックする。工程Ｓ３３０１のチェックの結果、モードが６であるモードレジスタが単数である場合には、モード６動作を終了し、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３４８】
工程Ｓ３３０１のチェックの結果、モードが６であるモードレジスタが複数である場合には、工程Ｓ３３０２において、許可モジュール保持レジスタ１１０に保持されているモジュールと一致するかをチェックする。工程Ｓ３３０２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致する場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３４９】
工程Ｓ３３０２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致しない場合には、工程Ｓ３３０３において、ラウンドロビンによりバス使用許可１２３〜１２５が発行される順番であるかをチェックする。工程Ｓ３３０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番である場合には、モード６動作を終了し、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３５０】
工程Ｓ３３０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３５１】
工程Ｓ３２１０のモード５動作が起動されると、図３４に示すように工程Ｓ３４０１において、カウンタ２９０７〜２９０９の値が最小であるかをチェックする。工程Ｓ３４０１のチェックの結果カウンタ２９０７〜２９０９の値が最小でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３５２】
工程Ｓ３４０１のチェックの結果、カウンタ２９０７〜２９０９の値が最小である場合には、工程Ｓ３４０２において、値が最小であるカウンタ２９０７〜２９０９が複数であるか単数であるかをチェックする。工程Ｓ３４０２のチェックの結果、値が最小であるカウンタが単数である場合には、モード５動作を終了し、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３５３】
工程Ｓ３４０２のチェックの結果、値が最小であるカウンタ２９０７〜２９０９が複数である場合には、工程Ｓ３４０３において、許可モジュール保持レジスタ１１０に保持されているモジュールと一致するかをチェックする。工程Ｓ３４０３のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致する場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３５４】
工程Ｓ３４０３のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致しない場合には、工程Ｓ３４０４において、ラウンドロビンによりバス使用許可１２３〜１２５が発行される順番であるかをチェックする。工程Ｓ３４０４のチェックの結果、バス使用許可１２３〜１２５が発行される順番である場合には、モード５動作を終了し、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３５５】
工程Ｓ３４０４のチェックの結果、バス使用許可１２３〜１２５が発行される順番でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３５６】
工程Ｓ３２１１のモード４動作が起動されると、図３５に示すように工程Ｓ３５０１において、モードが４であるモードレジスタ２３３１〜２３３３が複数であるか単数であるかをチェックする。工程Ｓ３５０１のチェックの結果、モードが４であるモードレジスタが単数である場合には、工程Ｓ３５０４において、対応するカウンタの値を最大値に設定し、それ以外のカウンタの値を０に設定してモード４動作を終了し、図３２の工程Ｓ３２０５において、カウンタ２９０７〜２９０９の値が最大であるかをチェックする。工程Ｓ３２０５のチェック結果、カウンタの値が最大であり、工程Ｓ３２０６のチェックの結果、値が最大のカウンタが単数であるため、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３５７】
工程Ｓ３５０１のチェックの結果、モードが４であるモードレジスタが複数である場合には、工程Ｓ３５０２において、許可モジュール保持レジスタ１１０に保持されているモジュールと一致するかをチェックする。工程Ｓ３５０２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致する場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３５８】
工程Ｓ３５０２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致しない場合には、工程Ｓ３５０３において、ラウンドロビンによりバス使用許可１２３〜１２５が発行される順番であるかをチェックする。工程Ｓ３５０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番である場合には、対応するカウンタの値を最大値に設定し、それ以外のカウンタの値を０に設定してモード４動作を終了し、図３２の工程Ｓ３２０５に遷移する。工程Ｓ３２０５のチェック結果、カウンタの値が最大であり、工程Ｓ３２０６のチェックの結果、値が最大のカウンタが単数のため、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３５９】
工程Ｓ３５０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３６０】
工程Ｓ３２１２のモード３動作が起動されると、図３６に示すように工程Ｓ３６０１において、モードが３であるモードレジスタ２３３１〜２３３３が複数であるか単数であるかをチェックする。工程Ｓ３６０１のチェックの結果、モードが３であるモードレジスタが単数である場合には、工程Ｓ３６０４において、対応するカウンタの値を最大値に設定してモード３動作を終了し、図３２の工程Ｓ３２０５において、カウンタ２９０７〜２９０９の値が最大であるかをチェックする。工程Ｓ３２０５のチェックの結果カウンタ２９０７〜２９０９の値が最大でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３６１】
工程Ｓ３２０５のチェックの結果、カウンタ２９０７〜２９０９の値が最大である場合には、工程Ｓ３２０６において、値が最大であるカウンタ２９０７〜２９０９が複数であるか単数であるかをチェックする。工程Ｓ３２０６のチェックの結果、値が最大であるカウンタが単数である場合には、モード確認を終了し、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３６２】
工程Ｓ３２０６のチェックの結果、値が最大であるカウンタが複数である場合には、工程Ｓ３２１３において、保持モジュール確認を行い、モード確認を終了する。保持モジュール確認については後述する。
【０３６３】
工程Ｓ３６０１のチェックの結果、モードが３であるモードレジスタが複数である場合には、工程Ｓ３６０２において、許可モジュール保持レジスタ１１０に保持されているモジュールと一致するかをチェックする。工程Ｓ３６０２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致する場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３６４】
工程Ｓ３６０２のチェックの結果、許可モジュール保持レジスタ１１０に保持されているモジュールと一致しない場合には、工程Ｓ３６０３において、ラウンドロビンによりバス使用許可１２３〜１２５が発行される順番であるかをチェックする。工程Ｓ３６０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番である場合には、対応するカウンタの値を最大値に設定してモード４動作を終了し、図３２の工程Ｓ３２０５において、カウンタ２９０７〜２９０９の値が最大であるかをチェックする。工程Ｓ３２０５のチェックの結果カウンタ２９０７〜２９０９の値が最大でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３６５】
工程Ｓ３２０５のチェックの結果、カウンタ２９０７〜２９０９の値が最大である場合には、工程Ｓ３２０６において、値が最大であるカウンタ２９０７〜２９０９が複数であるか単数であるかをチェックする。工程Ｓ３２０６のチェックの結果、値が最大であるカウンタが単数である場合には、モード確認を終了し、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３６６】
工程Ｓ３２０６のチェックの結果、値が最大であるカウンタが複数である場合には、工程Ｓ３２１３において、保持モジュール確認を行い、モード確認を終了する。保持モジュール確認については後述する。
【０３６７】
工程Ｓ３６０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３６８】
工程Ｓ３２１３の保持モジュール確認が起動されると、図３７に示すように工程Ｓ３７０１において、カウンタ２９０７〜２９０９の値が最大であるモジュールの中に許可モジュール保持レジスタ１１０に保持されているモジュールと一致するものがあるかないかをチェックする。工程Ｓ３７０１のチェックの結果、カウンタ２９０７〜２９０９の値が最大であるモジュールの中に許可モジュール保持レジスタ１１０に保持されているモジュールと一致するモジュールがある場合には、そのモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３６９】
工程Ｓ３７０１のチェック結果、カウンタ２９０７〜２９０９の値が最大であるモジュールの中に許可モジュール保持レジスタ１１０に保持されているモジュールと一致するモジュールがない場合には、工程Ｓ３７０３において、ラウンドロビンによりバス使用許可１２３〜１２５が発行される順番であるかをチェックする。工程Ｓ３７０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番である場合には、保持モジュール確認を終了し、図３１の工程Ｓ３０６において、バス使用許可１２３〜１２５を発行し、工程Ｓ３０７において、第２タイマ２９１７〜２９１９の値を最大値にセットして動作を停止する。
【０３７０】
工程Ｓ３７０３のチェックの結果、バス使用許可１２３〜１２５が発行される順番でない場合には、バス使用要求１０４〜１０６を発行した他のモジュールにバス使用許可１２３〜１２５が発行されることになり、図３０の工程Ｓ２０３に戻り、バスの使用が終了するのを待つ。
【０３７１】
工程Ｓ３００８の使用許可回数減算が起動されると、図３８に示すように工程Ｓ５０１において、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過しているかをチェックする。工程Ｓ５０１のチェックの結果、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過していない場合には、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過するまで工程Ｓ５０１を繰り返す。
【０３７２】
工程Ｓ５０１のチェックの結果、第１タイマ１１１〜１１３の値があらかじめ設定した第１設定値を経過している場合には、工程Ｓ３８０２において、モードレジスタ２３３１〜２３３３のモードが６であるかをチェックする。工程Ｓ３８０２のチェックの結果、モードが６である場合には、減算信号１２８〜１３０はカウンタ２９０７〜２９０９で受理されず、カウンタ１０７〜１０９の値はそのままで使用許可回数減算を終了する。
【０３７３】
工程Ｓ３８０２のチェックの結果、モードレジスタ２３３１〜２３３３のモードが６でない場合には、工程Ｓ３８０３において、モードレジスタ２３３１〜２３３３のモードが４であるかをチェックする。工程Ｓ３８０３のチェックの結果、モードが４である場合には、減算信号１２８〜１３０はカウンタ２９０７〜２９０９で受理されず、カウンタ１０７〜１０９の値はそのままで使用許可回数減算を終了する。
【０３７４】
工程Ｓ３８０３のチェックの結果、モードレジスタ２３３１〜２３３３のモードが４でない場合には、工程Ｓ３８０４において、モードレジスタ２３３１〜２３３３のモードが３であるかをチェックする。工程Ｓ３８０４のチェックの結果、モードが３である場合には、減算信号１２８〜１３０はカウンタ２９０７〜２９０９で受理されず、カウンタ１０７〜１０９の値はそのままで使用許可回数減算を終了する。
【０３７５】
工程Ｓ３８０４のチェックの結果、モードレジスタ２３３１〜２３３３のモードが３でない場合には、工程Ｓ３８０５において、モードレジスタ２３３１〜２３３３のモードが１であるかをチェックする。工程Ｓ３８０５のチェックの結果、モードが１である場合には、減算信号１２８〜１３０はカウンタ２９０７〜２９０９で受理されず、カウンタ１０７〜１０９の値はそのままで使用許可回数減算を終了する。
【０３７６】
工程Ｓ３８０５のチェックの結果、モードレジスタ２３３１〜２３３３のモードが１でない場合には、工程Ｓ５０３において、減算信号１２８〜１３０を発行し、カウンタ２９０７〜２９０９の値を減じて使用許可回数減算を終了する。
【０３７７】
以上のように、本発明の第７の実施の形態によるバス調停装置におけるバス調停方法では、第２タイマの値とバス使用要求によって、バス使用許可発行の優先順位を柔軟に変更することができる。
【０３７８】
なお、モードレジスタが保持するモードは本実施の形態に記載される値に限られるものではない。また、モードの優先順位は本実施の形態に記載される順に限られるものではない。
【産業上の利用可能性】
【０３７９】
本発明のバス調停方法およびバス調停装置は、バス使用許可発行の優先順位を柔軟に変更することが可能であるため、複数のモジュールが共通のバスを使用する機器などに利用できる。
【図面の簡単な説明】
【０３８０】
【図１Ａ】第１の実施の形態におけるバス調停装置の構成を示すブロック図である。
【図１Ｂ】第２の実施の形態におけるバス調停装置の構成を示すブロック図である。
【図２】第２の実施の形態におけるバス調停装置におけるバス調停方法の処理の流れを示す図である。
【図３】第２の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち優先度判定における詳細な処理の流れを示す図である。
【図４】第２の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち保持モジュール確認における詳細な処理の流れを示す図である。
【図５】第２の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち使用許可回数減算における詳細な処理の流れを示す図である。
【図６】第２の実施の形態におけるバス調停装置におけるバス調停方法の動作を示す図である。
【図７】第３の実施の形態におけるバス調停装置の構成を示すブロック図である。
【図８】第３の実施の形態におけるバス調停装置におけるバス調停方法の処理の流れを示す図である。
【図９】第３の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち優先度判定における詳細な処理の流れを示す図である。
【図１０】第３の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち判定方法変更における詳細な処理の流れを示す図である。
【図１１】第３の実施の形態におけるバス調停装置におけるバス調停方法の動作を示す図である。
【図１２】第４の実施の形態におけるバス調停装置の構成を示すブロック図である。
【図１３】第４の実施の形態におけるバス調停装置におけるバス調停方法の処理の流れを示す図である。
【図１４】第４の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち優先度判定における詳細な処理の流れを示す図である。
【図１５】第４の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち判定方法変更における詳細な処理の流れを示す図である。
【図１６】第４の実施の形態におけるバス調停装置におけるバス調停方法の動作を示す図である。
【図１７】第５の実施の形態におけるバス調停装置の構成を示すブロック図である。
【図１８】第５の実施の形態におけるバス調停装置におけるバス調停方法の処理の流れを示す図である。
【図１９】第５の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち優先度判定における詳細な処理の流れを示す図である。
【図２０】第５の実施の形態におけるバス調停装置におけるバス調停方法の処理のうちカウンタ値変更における詳細な処理の流れを示す図である。
【図２１】第５の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち使用許可回数減算における詳細な処理の流れを示す図である。
【図２２】第５の実施の形態におけるバス調停装置におけるバス調停方法の動作を示す図である。
【図２３】第６の実施の形態におけるバス調停装置の構成を示すブロック図である。
【図２４】第６の実施の形態におけるバス調停装置におけるバス調停方法の処理の流れを示す図である。
【図２５】第６の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち優先度判定における詳細な処理の流れを示す図である。
【図２６】第６の実施の形態におけるバス調停装置におけるバス調停方法の処理のうちカウンタ値変更における詳細な処理の流れを示す図である。
【図２７】第６の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち使用許可回数減算における詳細な処理の流れを示す図である。
【図２８】第６の実施の形態におけるバス調停装置におけるバス調停方法の動作を示す図である。
【図２９】第７の実施の形態におけるバス調停装置の構成を示すブロック図である。
【図３０】第７の実施の形態におけるバス調停装置におけるバス調停方法の処理の流れを示す図である。
【図３１】第７の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち優先度判定における詳細な処理の流れを示す図である。
【図３２】第７の実施の形態におけるバス調停装置におけるバス調停方法の処理のうちモード確認における詳細な処理の流れを示す図である。
【図３３】第７の実施の形態におけるバス調停装置におけるバス調停方法の処理のうちモード６動作における詳細な処理の流れを示す図である。
【図３４】第７の実施の形態におけるバス調停装置におけるバス調停方法の処理のうちモード５動作における詳細な処理の流れを示す図である。
【図３５】第７の実施の形態におけるバス調停装置におけるバス調停方法の処理のうちモード４動作における詳細な処理の流れを示す図である。
【図３６】第７の実施の形態におけるバス調停装置におけるバス調停方法の処理のうちモード３動作における詳細な処理の流れを示す図である。
【図３７】第７の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち保持モジュール確認における詳細な処理の流れを示す図である。
【図３８】第７の実施の形態におけるバス調停装置におけるバス調停方法の処理のうち使用許可回数減算における詳細な処理の流れを示す図である。
【図３９】従来のバス調停装置の構成を示すブロック図である。
【符号の説明】
【０３８１】
１０１、１０２、１０３  モジュール
１０４、１０５、１０６  バス使用要求
１２７  バス調停装置
１０７、１０８、１０９  カウンタ
１１０  許可モジュール保持レジスタ
１１１、１１２、１１３  第１タイマ
１１４、１１５、１１６  減算回路
１１７、１１８、１１９  第２タイマ
１１７ａ、１１８ａ、１１９ａ  フリップフロップ
１２３、１２４、１２５  バス使用許可
１２６  優先度判定部
２３３１、２３３２，２３３３  モードレジスタ
【図１Ａ】
2008097471.tif 000003
【図１Ｂ】
2008097471.tif 000004
【図２】
2008097471.tif 000005
【図３】
2008097471.tif 000006
【図４】
2008097471.tif 000007
【図５】
2008097471.tif 000008
【図６】
2008097471.tif 000009
【図７】
2008097471.tif 000010
【図８】
2008097471.tif 000011
【図９】
2008097471.tif 000012
【図１０】
2008097471.tif 000013
【図１１】
2008097471.tif 000014
【図１２】
2008097471.tif 000015
【図１３】
2008097471.tif 000016
【図１４】
2008097471.tif 000017
【図１５】
2008097471.tif 000018
【図１６】
2008097471.tif 000019
【図１７】
2008097471.tif 000020
【図１８】
2008097471.tif 000021
【図１９】
2008097471.tif 000022
【図２０】
2008097471.tif 000023
【図２１】
2008097471.tif 000024
【図２２】
2008097471.tif 000025
【図２３】
2008097471.tif 000026
【図２４】
2008097471.tif 000027
【図２５】
2008097471.tif 000028
【図２６】
2008097471.tif 000029
【図２７】
2008097471.tif 000030
【図２８】
2008097471.tif 000031
【図２９】
2008097471.tif 000032
【図３０】
2008097471.tif 000033
【図３１】
2008097471.tif 000034
【図３２】
2008097471.tif 000035
【図３３】
2008097471.tif 000036
【図３４】
2008097471.tif 000037
【図３５】
2008097471.tif 000038
【図３６】
2008097471.tif 000039
【図３７】
2008097471.tif 000040
【図３８】
2008097471.tif 000041
【図３９】
2008097471.tif 000042