(57)【要約】【課題】被制御装置における処理時間の予測精度を上げ、制御装置と被制御装置との通信回数を削減すること。【解決手段】制御装置１００は、被制御装置１０５とのデータの送信及び受信を行うシリアル通信部１０２と、被制御装置１０５との通信時間を測定する時間測定部１０３と、被制御装置１０５に制御コマンドを送信してから、被制御装置１０５が制御コマンドの処理を終了するまでの時間を予測した予測値Ｔ０ｅを格納した記憶部１０４と、シリアル通信部１０２及び時間測定部１０３を制御する制御部１０１を有し、制御部１０１は、時間測定部１０３により測定された、被制御装置１０５に制御コマンドを送信してから、被制御装置１０５より制御コマンドに対する処理結果を通知する応答信号を受信するまでの総通信時間Ｔ０と、記憶部１０４に格納された制御コマンドについて予測された予測値Ｔ０ｅに基づいて予測値Ｔ０ｅを補正する（Ｓ４０２〜Ｓ４０６）。【選択図】図４
2016072832.tif 000002
【特許請求の範囲】
【請求項１】
制御装置と前記制御装置により制御される被制御装置とが通信回線を介してデータの送信及び受信を行う通信システムであって、
前記制御装置は、
前記被制御装置とのデータの送信及び受信を行う通信手段と、
前記被制御装置との通信時間を測定する測定手段と、
前記被制御装置に処理を指示する第一のコマンドを送信してから、前記被制御装置が前記第一のコマンドに対する処理を終了するまでに要する時間を予測した予測時間を格納した記憶手段と、
前記通信手段及び前記測定手段を制御する制御手段と、
を有し、
前記制御手段は、前記測定手段により測定された、前記被制御装置に前記第一のコマンドを送信してから、前記被制御装置より前記第一のコマンドに対する処理結果を通知する第二のコマンドを受信するまでの総通信時間と、前記記憶手段に格納された前記第一のコマンドについて予測された予測時間と、に基づいて、前記予測時間を補正することを特徴とする通信システム。
【請求項２】
前記制御手段は、前記通信手段により、前記被制御装置に前記第一のコマンドに対する処理結果を取得するための第三のコマンドを送信し、
前記被制御装置は、前記第三のコマンドを受信したとき、
前記第一のコマンドの処理が終了していた場合には、前記制御装置に前記第一のコマンドに対する前記第二のコマンドを送信し、
前記第一のコマンドの処理を終了していない場合には、前記制御装置に前記第一のコマンドの処理を実行中であることを通知する第四のコマンドを送信することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記制御手段は、前記予測時間が経過した後に、前記第三のコマンドを前記被制御装置に送信することを特徴とする請求項２に記載の通信システム。
【請求項４】
前記制御手段は、前記第三のコマンドを送信する毎に、前記測定手段により、前記第三のコマンドを送信してから、前記第四のコマンドを受信するまでのビジー時間を測定することを特徴とする請求項２又は３に記載の通信システム。
【請求項５】
前記ビジー時間は、前記第三のコマンドを送信する毎に前記測定手段により測定されたビジー時間の総和であることを特徴とする請求項４に記載の通信システム。
【請求項６】
前記制御手段は、前記総通信時間と前記予測時間との差が第一の所定値より大きい場合には、前記予測時間に前記ビジー時間を加えて前記予測時間を補正し、前記補正された予測時間を前記記憶手段に格納することを特徴とする請求項５に記載の通信システム。
【請求項７】
前記被制御装置は、前記第一のコマンドの処理が終了していないときに前記第三のコマンドを受信した場合には、前記第三のコマンドを受信してから前記第四のコマンドを送信するまで、前記被制御装置を動作させる周波数を第一の周波数から、前記第一の周波数よりも低い第二の周波数に切り替えることを特徴とする請求項６に記載の通信システム。
【請求項８】
前記予測時間に加えられる前記ビジー時間は、前記第二の周波数を前記第一の周波数で除した周波数の低下率に応じて算出された時間であることを特徴とする請求項７に記載の通信システム。
【請求項９】
前記制御手段は、前記総通信時間と前記予測時間との差が第一の所定値以下で、前記差が０の場合には、前記予測時間から第二の所定値を減じて前記予測時間を補正し、前記補正された予測時間を前記記憶手段に格納することを特徴とする請求項５に記載の通信システム。
【請求項１０】
前記制御手段は、前記総通信時間と前記予測時間との差が第一の所定値以下で、前記差が０でない場合には、前記予測時間を補正しないことを特徴とする請求項５に記載の通信システム。
【請求項１１】
前記制御手段は、前記補正された予測時間を、前記第一のコマンドに対応させて、前記記憶手段に格納することを特徴とする請求項６又は９に記載の通信システム。
【請求項１２】
制御装置と前記制御装置を制御する上位制御装置とが通信回線を介して接続され、前記制御装置と前記制御装置により制御される被制御装置とが通信回線を介して接続され、データの送信及び受信を行う通信システムであって、
前記上位制御装置は、
前記制御装置とのデータの送信及び受信を行う第一の通信手段と
前記制御装置が処理を指示する第一のコマンドを前記被制御装置に送信してから、前記被制御装置が前記第一のコマンドに対する処理を終了するまでに要する時間を予測した予測時間を格納した記憶手段と、
前記第一の通信手段を制御する第一の制御手段と、
を有し、
前記制御装置は、
前記上位制御装置及び前記被制御装置とのデータの送信及び受信を行う第二の通信手段と、
前記被制御装置との通信時間を測定する測定手段と、
前記第二の通信手段及び前記測定手段を制御する第二の制御手段と、
を有し、
前記第一の制御手段は、前記測定手段により測定された、前記被制御装置に前記第一のコマンドを送信してから、前記被制御装置より前記第一のコマンドに対する処理結果を通知する第二のコマンドを受信するまでの総通信時間と、前記記憶手段に格納された前記第一のコマンドについて予測された予測時間と、に基づいて、前記予測時間を補正することを特徴とする通信システム。
【請求項１３】
前記第一の制御手段は、前記第一の通信手段により、前記制御装置に、前記被制御装置に送信する前記第一のコマンド及び前記予測時間についての情報を送信し、
前記第二の制御手段は、前記第二の通信手段により、前記上位制御装置から受信した前記第一のコマンドを前記被制御装置に送信することを特徴とする請求項１２に記載の通信システム。
【請求項１４】
前記第二の制御手段は、前記第二の通信手段により、前記被制御装置に前記第一のコマンドに対する処理結果を取得するための第三のコマンドを送信し、
前記被制御装置は、前記第三のコマンドを受信したとき、
前記第一のコマンドの処理が終了していた場合には、前記制御装置に前記第一のコマンドに対する第二のコマンドを送信し、
前記第一のコマンドの処理を終了していない場合には、前記制御装置に前記第一のコマンドの処理を実行中であることを通知する第四のコマンドを送信することを特徴とする請求項１３に記載の通信システム。
【請求項１５】
前記第二の制御手段は、前記第一のコマンドを前記被制御装置に送信してから、前記上位制御装置から受信した前記予測時間が経過した後に、前記第三のコマンドを前記被制御装置に送信することを特徴とする請求項１４に記載の通信システム。
【請求項１６】
前記第二の制御手段は、前記第三のコマンドを送信する毎に、前記測定手段により、前記第三のコマンドを送信してから、前記第四のコマンドを受信するまでのビジー時間を測定することを特徴とする請求項１４又は１５に記載の通信システム。
【請求項１７】
前記第二の制御手段は、前記被制御装置から前記第二のコマンドを受信した場合は、前記第二の通信手段により、前記上位制御装置に、前記第二のコマンド、前記総通信時間及び前記ビジー時間の情報を送信することを特徴とする請求項１６に記載の通信システム。
【請求項１８】
前記ビジー時間は、前記第三のコマンドを送信する毎に前記測定手段により測定されたビジー時間の総和であることを特徴とする請求項１７に記載の通信システム。
【請求項１９】
前記第一の制御手段は、前記制御装置より受信した前記総通信時間と前記予測時間との差が第一の所定値より大きい場合には、前記予測時間に前記ビジー時間を加えて前記予測時間を補正し、前記補正された予測時間を前記記憶手段に格納することを特徴とする請求項１８に記載の通信システム。
【請求項２０】
前記被制御装置は、前記第一のコマンドの処理が終了していないときに前記第三のコマンドを受信した場合には、前記第三のコマンドを受信してから前記第四のコマンドを送信するまで、前記被制御装置を動作させる周波数を第一の周波数から、前記第一の周波数よりも低い第二の周波数に切り替えることを特徴とする請求項１９に記載の通信システム。
【請求項２１】
前記予測時間に加えられる前記ビジー時間は、前記第二の周波数を前記第一の周波数で除した周波数の低下率に応じて算出された時間であることを特徴とする請求項２０に記載の通信システム。
【請求項２２】
前記第一の制御手段は、前記制御装置より受信した前記総通信時間と前記予測時間との差が第一の所定値以下で、前記差が０の場合には、前記予測時間から第二の所定値を減じて前記予測時間を補正し、前記補正された予測時間を前記記憶手段に格納することを特徴とする請求項１８に記載の通信システム。
【請求項２３】
前記第一の制御手段は、前記制御装置より受信した前記総通信時間と前記予測時間との差が第一の所定値以下で、前記差が０でない場合には、前記予測時間を補正しないことを特徴とする請求項１８に記載の通信システム。
【請求項２４】
前記第一の制御手段は、前記補正された予測時間を、前記第一のコマンドに対応させて、前記記憶手段に格納することを特徴とする請求項１９又は２２に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信回線を介して接続された制御装置と被制御装置を備える通信システムに関する。
【背景技術】
【０００２】
シリアル通信により、制御装置から被制御装置に動作の指示を行う指示コマンドを送信し、その後、被制御装置の動作結果を取得するために、制御装置から被制御装置に取得コマンドが送信される通信システムが知られている。例えば、特許文献１では、シリアル通信により、制御装置から複数の被制御装置にコマンドを送信し、各被制御装置で高速でコマンドに対する処理を実行する通信装置が提案されている。特許文献１で提案された通信装置のシリアル通信では特別な通信線が設けられておらず、被制御装置は、制御装置との通信に用いるステータス信号線をコマンド処理中にはローレベルに固定している。一方、制御装置は、被制御装置がコマンド処理中でも、被制御装置にコマンド処理結果の送信を促す結果取得コマンドを送信し続ける。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２２９７７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したシリアル通信においては、制御装置は、被制御装置の処理時間に応じて結果取得コマンドを送信しないと、被制御装置との通信回数が増えてしまい、被制御装置の処理にかかる時間が増えてしまうという課題がある。更に、被制御装置が動作状態によって処理能力を変化させる場合には、コマンドに対する処理時間も変化するため、当初予定していた時間よりも処理が早く終了する場合もある。そのため、制御装置は、単純に各コマンドに対する予め設定された処理時間だけ、結果を取得するためのコマンドの送信を遅らせる処理では、充分な処理能力を得られない場合もある。
【０００５】
本発明はこのような状況のもとでなされたもので、被制御装置における処理時間の予測精度を上げ、制御装置と被制御装置との通信回数を削減することを目的とする。
【課題を解決するための手段】
【０００６】
前述の課題を解決するために、本発明は、以下の構成を備える。
【０００７】
（１）制御装置と前記制御装置により制御される被制御装置とが通信回線を介してデータの送信及び受信を行う通信システムであって、前記制御装置は、前記被制御装置とのデータの送信及び受信を行う通信手段と、前記被制御装置との通信時間を測定する測定手段と、前記被制御装置に処理を指示する第一のコマンドを送信してから、前記被制御装置が前記第一のコマンドに対する処理を終了するまでに要する時間を予測した予測時間を格納した記憶手段と、前記通信手段及び前記測定手段を制御する制御手段と、を有し、前記制御手段は、前記測定手段により測定された、前記被制御装置に前記第一のコマンドを送信してから、前記被制御装置より前記第一のコマンドに対する処理結果を通知する第二のコマンドを受信するまでの総通信時間と、前記記憶手段に格納された前記第一のコマンドについて予測された予測時間と、に基づいて、前記予測時間を補正することを特徴とする通信システム。
【０００８】
（２）制御装置と前記制御装置を制御する上位制御装置とが通信回線を介して接続され、前記制御装置と前記制御装置により制御される被制御装置とが通信回線を介して接続され、データの送信及び受信を行う通信システムであって、前記上位制御装置は、前記制御装置とのデータの送信及び受信を行う第一の通信手段と、前記制御装置が処理を指示する第一のコマンドを前記被制御装置に送信してから、前記被制御装置が前記第一のコマンドに対する処理を終了するまでに要する時間を予測した予測時間を格納した記憶手段と、前記第一の通信手段を制御する第一の制御手段と、を有し、前記制御装置は、前記上位制御装置及び前記被制御装置とのデータの送信及び受信を行う第二の通信手段と、前記被制御装置との通信時間を測定する測定手段と、前記第二の通信手段及び前記測定手段を制御する第二の制御手段と、を有し、前記第一の制御手段は、前記測定手段により測定された、前記被制御装置に前記第一のコマンドを送信してから、前記被制御装置より前記第一のコマンドに対する処理結果を通知する第二のコマンドを受信するまでの総通信時間と、前記記憶手段に格納された前記第一のコマンドについて予測された予測時間と、に基づいて、前記予測時間を補正することを特徴とする通信システム。
【発明の効果】
【０００９】
本発明によれば、被制御装置における処理時間の予測精度を上げ、制御装置と被制御装置との通信回数を削減することができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１の制御装置及び被制御装置の制御ブロック図
【図２】実施例１との比較のための従来例のコマンドシーケンスのタイムチャート
【図３】実施例１のコマンドシーケンスのタイムチャート
【図４】実施例１，２のコマンド実行予測時間を求めるフローチャート
【図５】実施例２の上位制御装置、制御装置及び被制御装置の制御ブロック図
【図６】実施例２のコマンドシーケンスのタイムチャート
【図７】実施例２のコマンド表の一例を示す表
【発明を実施するための形態】
【００１１】
以下に、図面を参照して本発明の実施の形態について詳細に説明する。
【実施例１】
【００１２】
［制御装置の装置構成］
図１は、実施例１の通信システムを構成する制御装置１００及び被制御装置１０５の構成を示すブロック図である。図１において、被制御装置１０５を制御する制御装置１００と、制御装置１００により制御される被制御装置１０５とは、シリアル通信回線（図中、通信回線で表示）を介して接続されている。図１のシステムは、１台の制御装置１００と１台の被制御装置１０５から構成されている。例えば、通信回線を介して、被制御装置に識別子を付与する通信が可能なＩ２Ｃ（Ｉｎｔｅｒ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＵＡＲＴを用いたシリアル通信等の場合には、１つの制御装置１００は複数の被制御装置１０５の制御が可能となる。
【００１３】
図１において、制御装置１００は、制御装置１００を制御する制御部１０１、被制御装置１０５との通信を制御するシリアル通信部１０２、タイマにより時間測定を行う時間測定部１０３、記憶部１０４を備えている。制御手段である制御部１０１は、ＣＰＵ（中央処理装置）、ＲＯＭ、ＲＡＭから構成されている。ＣＰＵは、制御装置１００の制御を行い、ＲＯＭには、制御装置１００を制御するためにＣＰＵが実行するプログラムやデータが記憶されており、ＲＡＭは、一時的なデータの記憶に用いられる。また、ＣＰＵは、時間測定を行うタイマを有している。以下では、特に断らない限り、「制御部１０１」は、制御部１０１のＣＰＵ、又はＣＰＵにより実行される動作を指すものとする。通信手段であるシリアル通信部１０２は、例えば上述したＩ２ＣやＵＡＲＴなどの公知の技術を用いて、被制御装置１０５との双方向のシリアル通信を行う。測定手段である時間測定部１０３は、制御コマンドの実行時間の測定や、後述する取得コマンドに対するＢｕｓｙ信号を受信するまでの時間を測定するためのタイマを有しており、制御部１０１の制御により時間測定が行われる。記憶部１０４は、コマンドの種類や、コマンドに付随するデータの長さにより異なる、被制御装置１０５におけるコマンド実行時間（制御装置１００から受信した制御コマンドの処理時間）を予測するために必要な情報を格納するための記憶部である。記憶手段である記憶部１０４は、例えばＥＥＰＲＯＭのような不揮発性のメモリで構成されており、初期状態においては、予め計算もしくは実験等により求めた被制御装置１０５のコマンド実行時間の平均値である統計的中心値等が記憶されている。
【００１４】
一方、被制御装置１０５は、被制御装置１０５を制御する制御部１０６、制御装置１００との通信を制御するシリアル通信部１０７、被制御装置１０５の各部を動作させる基本クロックである動作周波数を変更するクロック切替部１０８を備えている。制御部１０６は、ＣＰＵ（中央処理装置）、ＲＯＭ、ＲＡＭから構成されている。ＣＰＵは、被制御装置１０５の制御を行い、ＲＯＭには、被制御装置１０５を制御するためにＣＰＵが実行するプログラムやデータが記憶されており、ＲＡＭは、一時的なデータの記憶に用いられる。また、ＣＰＵは、時間測定を行うタイマを有している。以下では、特に断らない限り、「制御部１０６」は制御部１０６のＣＰＵ、又はＣＰＵにより実行される動作を指すものとする。シリアル通信部１０７は、制御部１０６の指示に応じて、制御装置１００との双方向のシリアル通信の制御を行う。クロック切替部１０８は、被制御装置１０５において制御装置１００から受信した制御コマンドの処理を実行中に、制御装置１００から後述する取得コマンド等を受信した場合に、被制御装置１０５の動作周波数を下げる。被制御装置１０５では、シリアル通信部１０７による通信処理によって電力消費量が増加するが、動作周波数を下げることにより、被制御装置１０５全体の消費電力の上昇を抑えることができる。そして、シリアル通信部１０７による通信処理が終了すると、クロック切替部１０８は、被制御装置１０５の動作周波数を切り替え前の動作周波数に戻す。シリアル通信部１０７により通信処理が行われている間は、一時的に動作周波数が下がるため、被制御装置１０５の制御コマンド処理に要する時間は延びる（長くなる）ことになる。
【００１５】
［従来のシリアル通信の制御］
次に、後述する本実施例でのシリアル通信制御との比較のため、図２を用いて、従来例のシリアル通信におけるコマンドシーケンスについて説明する。図２は、従来例のシリアル通信における制御装置１００と被制御装置１０５とのコマンドシーケンスと、被制御装置１０５の状態を示すタイムチャートである。図２において、縦軸方向は時間（時間の経過）を示し、Ｔ２０１〜Ｔ２０８は時間（タイミング）を示す。また、Ｔ２０１〜Ｔ２０８での制御装置１００から被制御装置１０５への方向の矢印、又は被制御装置１０５から制御装置１００への方向の矢印は、それぞれ制御コマンド（図中、ＣＭＤ等）の送信、制御コマンドに対する応答信号（図中、ＡＣＫ等）を示す。また、「ＣＬＫ＝ＣＬＫ０」は、被制御装置１０５の動作周波数（ＣＬＫ）が第一の周波数であるＣＬＫ０であることを示し、同様に、「ＣＬＫ＝ＣＬＫ１」は、動作周波数（ＣＬＫ）が第二の周波数であるＣＬＫ１であることを示す。なお、周波数ＣＬＫ０、ＣＬＫ１の大小関係は、ＣＬＫ０＞ＣＬＫ１である。更に、「被制御装置デバイスモード」は、被制御装置１０５の動作状態（例えばコマンド実行中）を示している。
【００１６】
Ｔ２０１において、制御装置１００の制御部１０１は、シリアル通信部１０２を介して第一のコマンドである制御コマンド（図中、「ＣＭＤ」で表示）を送信する。被制御装置１０５の制御部１０６はシリアル通信部１０７を介して制御コマンドを受信すると、正常に制御コマンドを受信したことを示すＡＣＫ信号を制御装置１００に送信する。被制御装置１０５の制御部１０６は、Ｔ２０２で制御装置１００にＡＣＫ信号を送信した後、受信した制御コマンドに応じたコマンド処理の実行を開始する（図中、「コマンド実行中」と表示）。このときの被制御装置１０５の動作周波数（ＣＬＫ）はＣＬＫ０である。Ｔ２０２において、制御装置１００の制御部１０１は、シリアル通信部１０２を介して、被制御装置１０５からＡＣＫ信号（図中、「ＡＣＫ」と表示）を受信する。
【００１７】
次に、Ｔ２０３において、制御装置１００の制御部１０１は、シリアル通信部１０２を介して、Ｔ２０１で送信した制御コマンドの実行結果を取得するためのコマンド（図中、「Ｇｅｔ  Ｒｅｓｐｏｎｓｅ」と表示）を送信する。以下、第三のコマンドである「制御コマンドの実行結果を取得するためのコマンド」を単に「取得コマンド」という。このとき、被制御装置１０５の制御部１０６はコマンド処理実行中である。そのため、制御部１０６は、シリアル通信部１０７を介して制御装置１００からのコマンド受信を開始した場合、消費電力を抑えるためにクロック切替部１０８により、動作周波数（ＣＬＫ）をＣＬＫ０より低い周波数であるＣＬＫ１に設定する。そして、制御部１０６は、コマンド処理を実行中なので返送値としてＢｕｓｙ信号（図中、「Ｂｕｓｙ」と表示）を、シリアル通信部１０７を介して制御装置１００に送信した後、クロック切替部１０８により動作周波数（ＣＬＫ）をＣＬＫ０に戻す。
【００１８】
Ｔ２０４で、制御装置１００の制御部１０１は被制御装置１０５からコマンド処理中を通知する第四のコマンドであるＢｕｓｙ信号を受信したため、再度Ｔ２０５で取得コマンドを送信する。Ｔ２０５で、被制御装置１０５の制御部１０６は、制御装置１００からの取得コマンドを受信すると、クロック切替部１０８により動作周波数（ＣＬＫ）をＣＬＫ１に切り替えると共に、制御装置１００にシリアル通信部１０７を介してＢｕｓｙ信号を送信する。Ｔ２０６において、制御部１０６は、制御装置１００へＢｕｓｙ信号を送信した後、クロック切替部１０８により動作周波数（ＣＬＫ）を再度、ＣＬＫ０に戻す。制御コマンドの処理が終了した後に制御部１０６が取得コマンドを受信した場合（Ｔ２０７）には、Ｔ２０８にて、第二のコマンドである、ＡＣＫ信号と制御コマンドの処理結果を含む応答信号（図中、「Ｒｅｓｐ」と表示）を制御装置１００に送信する。このときは、被制御装置１０５において制御コマンドの処理中ではないので、クロック切替部１０８による動作周波数（ＣＬＫ）の切替は行われない。
【００１９】
以上、従来例におけるコマンドシーケンスについて説明した。上述したように、被制御装置１０５にてコマンド処理実行中に、被制御装置１０５が制御装置１００からの取得コマンドを受信した場合には、被制御装置１０５の動作周波数（ＣＬＫ）がＣＬＫ０からＣＬＫ１に切り替えられる。Ｔ２０３〜Ｔ２０４、Ｔ２０５〜Ｔ２０６において、被制御装置１０５全体の動作速度は、動作周波数がＣＬＫ０からＣＬＫ１に切り替えられるために、制御装置１００からの取得コマンドの送信が行われなかった場合に比べて遅くなる。その結果、Ｔ２０１で送信した制御コマンドの実行時間（処理時間）は、実行時間が終了するまでに取得コマンドが送信されなかった場合における実行時間よりも長くなってしまうという課題が生じる。例えば、切り替え後の動作周波数であるＣＬＫ１がＣＬＫ０の１６分の１のように、ＣＬＫ０とＣＬＫ１の周波数の差が大きい場合で、かつ取得コマンドの送信回数が多い場合には、コマンド処理に要する時間の遅延量は更に大きくなってしまうことになる。逆に、取得コマンドの送信回数を減らすことにより被制御装置１０５のコマンド処理に要する時間の遅延量を減らそうとすると、次のようなことが生じる場合がある。即ち、被制御装置１０５でのコマンドの処理は終了しているが、制御装置１００からの取得コマンドの送信が遅くなり、この間の遅延時間が大きくなることにより、処理能力の向上が図れなくなる。
【００２０】
［本実施例のシリアル通信の制御］
次に、図３を用いて、本実施例のシリアル通信におけるコマンドシーケンスについて説明する。図３は、本実施例のシリアル通信における制御装置１００と被制御装置１０５とのコマンドシーケンスと、被制御装置１０５の状態を示すタイムチャートである。図３において、縦軸方向は時間（時間の経過）を示し、Ｔ３０１〜Ｔ３０４は時間（タイミング）を示す。また、Ｔ３０１〜Ｔ３０４での制御装置１００から被制御装置１０５への方向の矢印、又は被制御装置１０５から制御装置１００への方向の矢印は、それぞれ制御コマンド（図中、ＣＭＤ等）の送信、制御コマンドに対する応答信号（図中、ＡＣＫ等）を示す。また、「ＣＬＫ＝ＣＬＫ０」は、上述した動作周波数（ＣＬＫ）がＣＬＫ０であることを示す。更に、「被制御装置デバイスモード」は、被制御装置１０５の動作状態（コマンド実行中）を示している。なお、図３では、被制御装置１０５でのコマンド処理実行中に、制御装置１００から被制御装置１０５への取得コマンドの送信がないため、動作周波数（ＣＬＫ）はＣＬＫ０のままである。
【００２１】
Ｔ３０１において、制御装置１００の制御部１０１は、被制御装置１０５にシリアル通信部１０２を介して制御コマンドを送信すると共に、時間測定部１０３のタイマを用いて総通信時間Ｔ０の測定を開始する。総通信時間Ｔ０とは、制御部１０１が被制御装置１０５に制御コマンドを送信してから、被制御装置１０５から制御コマンドに対する応答信号を受信するまでの時間、即ち図３のＴ３０１〜Ｔ３０４までの時間、図２ではＴ２０１〜Ｔ２０８までの時間を指す。なお、時間測定は、制御部１０１（のＣＰＵ）が有するタイマを使用してもよい。一方、被制御装置１０５の制御部１０６は、制御コマンドを受信すると、Ｔ３０２において制御装置１００にシリアル通信部１０７を介してＡＣＫ信号を送信し、受信した制御コマンドに応じた処理を行う。Ｔ３０２にて、制御装置１００の制御部１０１は、被制御装置１０５からのＡＣＫ信号を受信した後、記憶部１０４に格納されたデータを用いて、当該制御コマンドの実行に要する時間の予測値Ｔ０ｅ（予測時間Ｔ０ｅともいう）を計算する。なお、後述するように、当該制御コマンドに対応する予測値Ｔ０ｅが記憶部１０４に蓄積されている場合には、制御部１０１は、この蓄積された予測値Ｔ０ｅを、当該制御コマンドの実行時間の予測値として使用する。なお、予測値Ｔ０ｅは、個々の制御コマンドに対応して蓄積される。
【００２２】
予測値Ｔ０ｅは、制御コマンドが例えば計算処理（加算処理）である場合においては、制御コマンドに付随するデータの長さ（加算処理の対象となるデータの個数）によって、計算処理に要する時間の予測値Ｔ０ｅは異なる。また、例えば計算処理に複数の種類（加算、減算、乗算、除算）がある場合には、その種類に応じて計算処理の方法は異なるので、制御コマンドとそれに付随するデータの長さによって異なるものとなる。その場合にはデータ長と演算処理量の関係から、例えば多項式近似（例えば加算であれば一次式による近似）を行うことによって、データ量による計算時間の違いを予測することが可能である。そのため、記憶部１０４には、出荷時に予測値Ｔ０ｅを算出するために必要な近似式や被制御装置１０５が制御コマンドの処理を行ったときの平均処理時間等のデータが予め格納されている。
【００２３】
そして、制御装置１００の制御部１０１は、制御コマンドを送出してからの経過時間が予測値Ｔ０ｅになるまで、即ち時間測定部１０３のタイマが予測された時間Ｔ０ｅになるまでは、被制御装置１０５へのコマンドの送信を停止する。そして、時間測定部１０３のタイマが時間Ｔ０ｅを経過すると、Ｔ３０３において、制御部１０１は、シリアル通信部１０２を介して、被制御装置１０５に、制御コマンドに対する結果を取得するため、取得コマンドを送信する。また、制御部１０１は、時間測定部１０３のタイマを用いて、取得コマンド送信からＢｕｓｙ信号を受信するまでの時間であるビジー時間Ｔ１の測定を開始する。なお、ここではビジー時間Ｔ１の測定には、時間測定部１０３の総通信時間Ｔ０を測定しているタイマとは異なるタイマを使用しているが、制御部１０１が有するタイマを使用してもよい。また、総通信時間Ｔ０を測定しているタイマから、取得コマンド送信時の時間、及びＢｕｓｙ信号受信時の時間を読み出し、その時間差からビジー時間Ｔ１を算出してもよい。
【００２４】
図３のＴ３０３に示すように、制御部１０１が取得コマンドを送信したときに、既に被制御装置１０５にて制御コマンドの実行処理が終了している場合には、制御部１０１は、Ｔ３０４において、ＡＣＫ信号と応答信号（Ｒｅｓｐ）を受信する。そして、制御部１０１は、時間測定部１０３のタイマによる総通信時間Ｔ０とビジー時間Ｔ１の測定を停止し、総通信時間Ｔ０、ビジー時間Ｔ１各々を記憶部１０４に記憶する。なお、この場合、Ｂｕｓｙ信号を受信していないので、ビジー時間Ｔ１は０が記憶部１０４に格納される。
【００２５】
一方、制御部１０１が取得コマンドを送信したときに、被制御装置１０５が制御コマンドの実行処理をまだ終了していない場合には、制御部１０６は、取得コマンドを受信開始すると、クロック切替部１０８により動作周波数（ＣＬＫ）を切り替える。即ち、クロック切替部１０８は、動作周波数（ＣＬＫ）をＣＬＫ０から、より低い周波数のＣＬＫ１に変更する。そして、被制御装置１０５の制御部１０６は、制御装置１００にＢｕｓｙ信号を送信した後、クロック切替部１０８により、動作周波数（ＣＬＫ）をＣＬＫ１からＣＬＫ０に戻す。制御装置１００の制御部１０１は、被制御装置１０５からのＢｕｓｙ信号を受信すると、時間測定部１０３のタイマによるビジー時間Ｔ１の測定を停止し、そのときのタイマ値であるビジー時間Ｔ１を記憶部１０４に格納する。制御装置１００の制御部１０１が被制御装置１０５からＢｕｓｙ信号を受信した場合には、制御部１０１は再度、取得コマンドを被制御装置１０５に送信すると共に、時間測定部１０３のタイマによるビジー時間Ｔ１の測定を開始する。
【００２６】
図３のＴ３０３、Ｔ３０４に示すように、制御装置１００からの取得コマンドに対して被制御装置１０５から応答信号を受信するまで、測定されたビジー時間Ｔ１は記憶部１０４にそれぞれ個別に格納される。そして、制御装置１００の制御部１０１は、図３のＴ３０４において被制御装置１０５から応答信号を受信すると、時間測定部１０３のタイマによる総通信時間Ｔ０の測定を停止し、測定された総通信時間Ｔ０を記憶部１０４に格納する。なお、このとき、時間測定部１０３のタイマによるビジー時間Ｔ１の測定も停止されるが、Ｂｕｓｙ信号を受信していないため、このとき測定されたビジー時間Ｔ１は０が記憶部１０４に格納される。また、被制御装置１０５から応答信号を受信すると、制御部１０１は、個別に記憶部１０４に格納されたビジー時間Ｔ１の総和、即ちＴ１＝ΣＴ１を算出する。そして、総和としてのビジー時間Ｔ１が記憶部１０４に格納され、後述する予測値Ｔ０ｅの更新処理に用いられる。
【００２７】
［コマンド実行時間の予測値の更新］
次に、制御コマンドの実行時間の予測値Ｔ０ｅと、タイマにより想定された総通信時間Ｔ０に基づいて、予測値Ｔ０ｅを補正した予測値Ｔ０ｅ’（以下、補正予測値Ｔ０ｅ’という）の算出方法について説明する。図４は、予測値Ｔ０ｅを補正し、補正予測値Ｔ０ｅ’を算出して、次回の制御コマンド送信時の予測値Ｔ０ｅとして使用するために記憶部１０４に格納する制御シーケンスを示すフローチャートである。図４の制御シーケンスは、図３のＴ３０４で制御装置１００の制御部１０１が被制御装置１０５からの応答信号を受信し、時間測定部１０３のタイマによる総通信時間Ｔ０の測定が停止された後に起動され、制御部１０１により実行される。なお、予測値Ｔ０ｅは、制御コマンドの種類に応じて設けられ、それぞれの制御コマンドに応じて適切な予測時間を設定することができる。
【００２８】
シーケンス（以下、Ｓという）４０１では、制御部１０１は、今回の制御コマンドの総通信時間Ｔ０を記憶部１０４より読み出し、第三の所定値である一定値との比較を行う。「一定値」の時間は、被制御装置１０５での制御コマンドの処理時間としては有り得ない短い時間であり、Ｓ４０１の処理は、通信回線のノイズ等により応答信号を誤検出した場合に、Ｓ４０２以降の処理を行わないために設けられている。制御部１０１は、総通信時間Ｔ０が一定値以下と判断した場合には、予測値Ｔ０ｅを更新せずに処理を終了し、総通信時間Ｔ０が一定値よりも大きいと判断した場合にはＳ４０２に進む。
【００２９】
Ｓ４０２では、制御部１０１は、総通信時間Ｔ０と、今回の制御コマンドの被制御装置１０５で制御コマンドの処理を行うための実行時間の予測時間Ｔ０ｅとの差分時間ΔＴ０を、差分時間ΔＴ０＝総通信時間Ｔ０−予測時間Ｔ０ｅより算出する。Ｓ４０３では、制御部１０１は、差分時間ΔＴ０が第一の所定値であるＣｏｎｓｔ１よりも大きいかどうか判断する。制御部１０１は、差分時間ΔＴ０がＣｏｎｓｔ１よりも大きいと判断した場合にはＳ４０６に進み、差分時間ΔＴ０がＣｏｎｓｔ１以下（第一の所定値以下）であると判断した場合にはＳ４０４に進む。なお、Ｃｏｎｓｔ１は、予測時間Ｔ０ｅを総通信時間Ｔ０により近似した時間とするための最適化目標値となる差分時間を示している。
【００３０】
Ｓ４０４では、制御部１０１は、差分時間ΔＴ０が０かどうか、即ち、最初の取得コマンドに対して、被制御装置１０５から応答信号が送信されたかどうかを判断する。制御部１０１は、差分時間ΔＴ０が０ではないと判断した場合には、予測値Ｔ０ｅを更新せずに処理を終了し、差分時間ΔＴ０が０の場合にはＳ４０５に進む。なお、差分時間ΔＴ０が０の場合は、制御部１０１は、被制御装置１０５から一度もＢｕｓｙ信号を受信しなかった場合であり、被制御装置１０５の制御部１０６は、予測値Ｔ０ｅ以下の時間で、制御コマンドの処理を終了していることになる。そのため、Ｓ４０５では、制御部１０１は、次回、同一の制御コマンドを送信するときに使用するコマンドの処理時間の予測値Ｔ０ｅが、今回の予測値Ｔ０ｅよりも第二の所定値であるＣｏｎｓｔ２だけ小さくする処理を行う。即ち、制御部１０１は、補正予測値Ｔ０ｅ’を、補正予測値Ｔ０ｅ’＝予測値Ｔ０ｅ−Ｃｏｎｓｔ２（第二の所定値）より算出し、Ｓ４０７に進む。
【００３１】
なお、予測値Ｔ０ｅが変化する要因が、被制御装置１０５の状態変化によって動作周波数を変更していることによる場合には、制御部１０１は、全ての制御コマンドに対して、補正予測値Ｔ０ｅ’を次のようにして算出する。即ち、補正予測値Ｔ０ｅ’が、予測値Ｔ０ｅの（Ｔ０ｅ−Ｃｏｎｓｔ２）／Ｔ０ｅ倍となるように算出する。これによって、被制御装置１０５が状態変化によって実行速度を速くした場合にも、補正予測値Ｔ０ｅ’（次回使用する予測値Ｔ０ｅ）は、被制御装置１０５の制御コマンドの実行時間である総通信時間Ｔ０に、徐々に一致（近似）することになる。また、Ｃｏｎｓｔ１の値を小さくすることによって、被制御装置１０５での制御コマンドの処理が終了してから、制御装置１００が取得コマンドを送信するまでの時間が短くなる。
【００３２】
一方、Ｓ４０３において差分時間ΔＴ０が第一の所定値であるＣｏｎｓｔ１よりも大きい場合には、Ｓ４０６では、制御部１０１は、制御コマンドの実行時間の予測値Ｔ０ｅを大きくする補正を行う。測定された総通信時間ΔＴ０の内、制御部１０１が取得コマンドに対してＢｕｓｙ信号を受信した期間では、被制御装置１０５において、動作周波数（ＣＬＫ）がＣＬＫ０から、ＣＬＫ０よりも周波数が低いＣＬＫ１に変更されている。そのため、制御部１０１が取得コマンドの送信を行わなければ、Ｂｕｓｙ信号を受信した期間の総和であるビジー時間Ｔ１における被制御装置１０５での制御コマンドの処理時間は、Ｔ１×（ＣＬＫ１／ＣＬＫ０）となる。なお、（ＣＬＫ１／ＣＬＫ０）は、被制御装置１０５の動作周波数の低下率を示す。従って、制御部１０１は、補正予測値Ｔ０ｅ’を、補正予測値Ｔ０ｅ’＝予測値Ｔ０ｅ＋ビジー時間Ｔ１×（ＣＬＫ１／ＣＬＫ０）により算出し、Ｓ４０７に進む。
【００３３】
なお、予測値Ｔ０ｅが変化する要因が、被制御装置１０５の状態変化によって動作周波数を変更していることによる場合には、全ての制御コマンドの予測値Ｔ０ｅを、補正予測値Ｔ０ｅ’／Ｔ０ｅ倍となるように算出する。これによって、被制御装置１０５が状態変化によって実行速度を遅くした場合にも、補正予測値Ｔ０ｅ’（次回使用する予測値Ｔ０ｅ）は、被制御装置１０５の制御コマンドの実行時間である総通信時間Ｔ０に、徐々に一致（近似）することになる。これにより、制御装置１００の制御部１０１は、被制御装置１０５に対して無駄な通信を減らすことができる。Ｓ４０７では、制御部１０１は、制御コマンドの種類や、制御コマンドとそれに付随するデータ長等に対応させて、補正予測値Ｔ０ｅ’を記憶部１０４に格納し、処理を終了する。なお、本実施例の被制御装置１０５は、制御装置１００から受信した制御コマンドの処理を実行中に、制御装置１００から取得コマンド等を受信した場合に、被制御装置１０５の動作周波数を下げる構成を有している。例えば、動作周波数の切替を行わない構成の被制御装置１０５を有している場合には、前述した、全ての制御コマンドに対して、予測値Ｔ０ｅの（Ｔ０ｅ−Ｃｏｎｓｔ２）／Ｔ０ｅ倍となるように、補正予測値Ｔ０ｅ’を算出する処理を行う必要がない。また、図４のＳ４０６の処理については、動作周波数の変動を考慮する必要がなくなるため、補正予測値Ｔ０ｅ’の算出式は、補正予測値Ｔ０ｅ’＝予測値Ｔ０ｅ＋ビジー時間Ｔ１となる。
【００３４】
図４では、制御部１０１は、差分時間ΔＴ０が０の場合、即ち、最初の取得コマンドに対して、被制御装置１０５から応答信号が送信された場合には、次回の予測値Ｔ０ｅを、今回の予測値Ｔ０ｅよりもＣｏｎｓｔ２だけ小さくする処理を行っている。例えば、次のような処理を制御装置１００、被制御装置１０５で行うことにより、次回の予測値Ｔ０ｅの精度を更に向上させることができる。被制御装置１０５において、制御部１０６は、制御装置１００から受信した制御コマンドの処理が終了し、制御装置１００から最初の取得コマンドをまだ受信していなければ、タイマを起動し、最初の取得コマンドを受信するまでの時間を測定する。そして、制御部１０６は、制御装置１００から最初の取得コマンドを受信するとタイマによる時間測定を停止し、応答信号に測定されたタイマ値を追加して、ＡＣＫ信号と制御コマンドの処理結果を含む応答信号を制御装置１００に送信する。そして、制御装置１００の制御部１０１は、今回の予測値Ｔ０ｅから、被制御装置１０５より受信したタイマ値の時間を差し引いた時間を、次回の予測値Ｔ０ｅとし、記憶部１０４に格納する。これにより、次回の予測値Ｔ０ｅの精度を更に向上させることができる。
【００３５】
以上説明したように、本実施例によれば、被制御装置における処理時間の予測精度を上げ、制御装置と被制御装置との通信回数を削減することができる。また、制御装置と被制御装置との通信回数が削減されるので、制御装置に複数の被制御装置が接続されている構成の場合においても、効率よいシリアル通信を行うことができる。特に、被制御装置が制御装置との通信のために動作周波数が下がり、処理速度が低下する構成の場合には、通信回数が削減されることにより処理速度の低下を防ぐことができる。その結果、被制御装置における処理能力が向上し、制御装置を含むシステム全体の処理能力の向上を図ることができる。
【実施例２】
【００３６】
実施例１では、制御装置と被制御装置の構成のシステムにおける実施例について説明した。実施例２では、制御装置を制御する上位制御装置を備えた構成のシステムにおいて、上位制御装置が制御装置を介して被制御装置を制御する実施例について説明する。
【００３７】
［シリアル通信装置の装置構成］
図５は、実施例２の通信システムを構成する上位制御装置５００、制御装置５０４及び被制御装置５１０の構成を示すブロック図である。図５において、制御装置５０４を制御する上位制御装置５００、被制御装置５１０を制御する制御装置５０４と、制御装置５０４により制御される被制御装置５１０とは、シリアル通信回線（図中、通信回線で表示）を介して接続されている。図５のシステムは、１台の上位制御装置５００と１台の制御装置５０４と１台の被制御装置５１０から構成されている。例えば、Ｉ２Ｃ（Ｉｎｔｅｒ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＵＡＲＴを用いたシリアル通信等の場合には、１つの上位制御装置５００による複数の制御装置５０４の制御、１つの制御装置５０４による複数の被制御装置５１０の制御が可能である。
【００３８】
図５において、上位制御装置５００は、上位制御装置５００を制御する制御部５０１、記憶部５０２、制御装置５０４との通信を制御するシリアル通信部５０３を備えている。第一の制御手段である制御部５０１は、ＣＰＵ（中央処理装置）、ＲＯＭ、ＲＡＭから構成されている。ＣＰＵは、上位制御装置５００の制御を行い、ＲＯＭには、上位制御装置５００を制御するためにＣＰＵが実行するプログラムやデータが記憶されており、ＲＡＭは、一時的なデータの記憶に用いられる。また、ＣＰＵは、時間測定を行うタイマを有している。以下では、特に断らない限り、「制御部５０１」は、制御部５０１のＣＰＵ、又はＣＰＵにより実行される動作を指すものとする。第一の通信手段であるシリアル通信部５０３は、例えば上述したＩ２ＣやＵＡＲＴなどの公知の技術を用いて、制御装置５０４との双方向のシリアル通信を行う。記憶部５０２は、実施例１の制御装置１００の記憶部１０４と同様に、被制御装置５１０におけるコマンド実行時間（制御装置５０４から受信した制御コマンドの処理時間）を予測するために必要なデータを格納するための記憶部である。記憶手段である記憶部５０２は、例えばＥＥＰＲＯＭのような不揮発性のメモリで構成されており、初期状態においては、予め計算もしくは実験等により求めた被制御装置のコマンド実行時間の平均値である統計的中心値等が記憶されている。
【００３９】
制御装置５０４は、制御装置５０４を制御する、第二の制御手段である制御部５０５、時間測定を行う測定手段である時間測定部５０７、記憶部５０８を備えている。更に、制御装置５０４は、第二の通信手段である、上位制御装置５００との通信を制御するシリアル通信部ｂ５０９及び被制御装置５１０との通信を制御するシリアル通信部ａ５０６を備えている。シリアル通信部ａ５０６に被制御装置５１０との通信だけでなく、上位制御装置５００との通信の制御を行わせてもよいが、本実施例では、上位制御装置５００との通信はシリアル通信部ｂ５０９が制御するものとする。また、制御部５０５、シリアル通信部ａ５０６、時間測定部５０７、記憶部５０８は、それぞれ実施例１の図１に示す制御装置１００の制御部１０１、シリアル通信部１０２、時間測定部１０３、記憶部１０４に対応するので、ここでの説明は省略する。なお、本実施例では、上位制御装置５００の記憶部５０２に予測値Ｔ０ｅを算出するためのデータ等が格納されており、制御装置５０４の記憶部５０８には格納されていない。
【００４０】
被制御装置５１０は、被制御装置５１０を制御する制御部５１１、制御装置５０４との通信を制御するシリアル通信部５１２、被制御装置５１０の各部を動作させる基本クロックである動作周波数を変更するクロック切替部５１３を備えている。制御部５１１、シリアル通信部５１２、クロック切替部５１３は、それぞれ実施例１の図１に示す被制御装置１０５の制御部１０６、シリアル通信部１０７、クロック切替部１０８に対応するので、ここでの説明は省略する。
【００４１】
［本実施例のシリアル通信の制御］
次に、図６を用いて、本実施例のシリアル通信におけるコマンドシーケンスについて説明する。図６は、本実施例のシリアル通信における上位制御装置５００、制御装置５０４、被制御装置５１０とのコマンドシーケンスと、被制御装置５１０の状態を示すタイムチャートである。図６において、縦軸方向は時間（時間の経過）を示し、Ｔ６０１〜Ｔ６０６は時間（タイミング）を示す。また、Ｔ６０１、Ｔ６０６での上位制御装置５００から制御装置５０４への方向の矢印、又は制御装置５０４から上位制御装置５００への方向の矢印は、それぞれ制御コマンド（図中、ＣＭＤ等）の送信、制御コマンドに対する応答信号（図中、ＡＣＫ等）を示す。同様に、Ｔ６０２〜Ｔ６０５での制御装置５０４から被制御装置５１０への方向の矢印、又は被制御装置５１０から制御装置５０４への方向の矢印は、それぞれ制御コマンド（図中、ＣＭＤ等）の送信、制御コマンドに対する応答信号（図中、ＡＣＫ等）を示す。また、「ＣＬＫ＝ＣＬＫ０」は、動作周波数（ＣＬＫ）がＣＬＫ０であることを示す。更に、「被制御装置デバイスモード」は、被制御装置５１０の動作状態（コマンド実行中）を示している。なお、図６では、被制御装置５１０でのコマンド処理実行中に、制御装置５０４から被制御装置５１０への取得コマンドの送信がないため、動作周波数（ＣＬＫ）はＣＬＫ０のままである。
【００４２】
Ｔ６０１において、上位制御装置５００の制御部５０１は、制御装置５０４にシリアル通信部５０３を介して制御コマンド（図中、「ＣＭＤ」と表示）を送信する。図７（ａ）に送信された制御コマンドの構成を示す。本コマンドは、制御装置５０４が被制御装置５１０に送信する制御コマンド（図中、「ＣＭＤ  Ｃｏｄｅ」と表示）、制御コマンドに付随するデータ（図中、「ＣＭＤ  Ｄａｔａ」と表示）、待ち時間データ（図中、「Ｗａｉｔ  Ｔｉｍｅ」）から構成されている。図７（ａ）に示すように、制御コマンドの長さは１バイト、制御コマンドに付随するデータの長さは不定（図中、「Ｖａｒｉａｂｌｅ」と表示）、待ち時間データの長さは２バイトである。なお、待ち時間データは、上位制御装置５００の制御部５０１が記憶部５０２のデータを用いて計算した予測値Ｔ０ｅを表している。
【００４３】
制御装置５０４の制御部５０１は、シリアル通信部ｂ５０９を介して、上位制御装置５００から送信された制御コマンドを受信する。そして、Ｔ６０２にて、制御部５０１は、受信した制御コマンド中のデータのうち、制御コマンド（ＣＭＤ  Ｃｏｄｅ）と付随するデータ（ＣＭＤ  Ｄａｔａ）を、シリアル通信部ａ５０６を介して被制御装置５１０に送信する。また、制御部５０５は、時間測定部５０７のタイマを用いて総通信時間Ｔ０の測定を開始する。一方、被制御装置５１０の制御部５１１は、制御コマンドを受信すると、Ｔ６０３において制御装置５０４にシリアル通信部５１２を介してＡＣＫ信号を送信し、受信した制御コマンドに応じた処理を行う。制御装置５０４の制御部５０５は、被制御装置５１０からのＡＣＫ信号を受信すると、制御コマンドを送出してからの経過時間が上位制御装置５００から送信された待ち時間データである予測値Ｔ０ｅになるまで、被制御装置５１０へのコマンドの送信を停止する。
【００４４】
時間測定部５０７のタイマが予測値Ｔ０ｅを経過すると、Ｔ６０４において、制御部５０５は、シリアル通信部ａ５０６を介して、被制御装置５１０に、制御コマンドに対する結果を取得するため、取得コマンドを送信する。そして、制御部５０５は、時間測定部５０７のタイマを用いて、取得コマンド送信からＢｕｓｙ信号を受信するまでのビジー時間Ｔ１の測定を開始する。図６に示すように、制御部５０５が取得コマンドを送信したときに、既に被制御装置５１０にて制御コマンドの実行処理が終了している場合には、制御部５０５は、Ｔ６０５において、ＡＣＫ信号と応答信号（Ｒｅｓｐ）を受信する。そして、制御部５０５は、時間測定部５０７のタイマによる総通信時間Ｔ０とビジー時間Ｔ１の測定を停止し、総通信時間Ｔ０、ビジー時間Ｔ１各々を記憶部５０８に記憶する。なお、この場合、Ｂｕｓｙ信号を受信していないので、ビジー時間Ｔ１は０が記憶部５０８に格納される。
【００４５】
一方、制御部５０５が取得コマンドを送信したときに、被制御装置５１０の制御コマンドの実行処理がまだ終了していない場合には、制御部５１１は、取得コマンドの受信を開始すると、クロック切替部１０８により動作周波数（ＣＬＫ）を変更する。そして、被制御装置５１０の制御部５１１は、制御装置５０４にＢｕｓｙ信号を送信した後、クロック切替部５１３により、動作周波数（ＣＬＫ）を元の周波数に戻す。制御装置５０４の制御部５０５は、被制御装置５１０からのＢｕｓｙ信号を受信すると、時間測定部５０７のタイマによるビジー時間Ｔ１の測定を停止し、そのときのタイマ値であるビジー時間Ｔ１を記憶部５０８に格納する。制御装置５０４の制御部５０５が被制御装置５１０からＢｕｓｙ信号を受信した場合には、制御部５０５は再度、取得コマンドを被制御装置５１０に送信すると共に、時間測定部５０７のタイマによるビジー時間Ｔ１の測定を開始する。
【００４６】
図６のＴ６０４、Ｔ６０５に示すように、制御装置５０４からの取得コマンドに対して被制御装置５１０から応答信号を受信するまで、測定されたビジー時間Ｔ１は記憶部５０８にそれぞれ個別に格納される。そして、制御装置５０４の制御部５０５は、図６のＴ６０５において被制御装置５１０から応答信号を受信すると、制御部５０５は、時間測定部５０７のタイマによる総通信時間Ｔ０の測定を停止し、測定された総通信時間Ｔ０を記憶部５０８に格納する。なお、このとき、時間測定部５０７のタイマによるビジー時間Ｔ１の測定も停止されるが、Ｂｕｓｙ信号を受信していないため、このとき測定されたビジー時間Ｔ１は０が記憶部５０８に格納される。また、被制御装置５１０から応答信号を受信すると、制御部５０５は、個別に記憶部５０８に格納されたビジー時間Ｔ１の総和、即ちＴ１＝ΣＴ１を算出する。
【００４７】
制御部５０５は、被制御装置５１０から応答信号を受信すると、図７（ｂ）に示す構成のコマンドを、シリアル通信部ｂ５０９を介して上位制御装置５００に送信する。図７（ｂ）に送信された制御コマンドの構成を示す。本コマンドは、制御装置５０４が被制御装置５１０から受信した応答信号（図中、「ＲＳＰ  Ｃｏｄｅ」と表示）、応答信号に付随するデータ（図中、「ＲＳＰ  Ｄａｔａ」と表示）、待ち時間データ（図中、「Ｔｉｍｅ  Ｄａｔａ」）から構成されている。図７（ｂ）に示すように、応答信号の長さは１バイト、応答信号に付随するデータの長さは不定（図中、「Ｖａｒｉａｂｌｅ」と表示）、待ち時間データの長さは４バイトである。なお、待ち時間データとしては、それぞれ２バイト長の制御装置５０４で測定された総通信時間Ｔ０と、ビジー時間Ｔ１から構成されており、総通信時間Ｔ０と、ビジー時間Ｔ１は、後述する予測値Ｔ０ｅの更新処理に用いられる。上位制御装置５００の制御部５０１は、制御装置５０４からの応答信号を含むコマンドを受信すると、受信したコマンド中に設定されている待ち時間データを読み出す。制御部５０１は、待ち時間データを構成する総通信時間Ｔ０と、ビジー時間Ｔ１を記憶部５０２に格納する。
【００４８】
［コマンド実行時間の予測値の更新］
続いて、本実施例における予測値Ｔ０ｅの更新処理について説明する。実施例１では、図４のフローチャートを用いて更新処理について説明したが、本実施例においても同様の処理となるため、図４を用いて説明する。なお、本実施例では、図４の処理は、図６のＴ６０６で上位制御装置５００の制御部５０１が制御装置５０４からの応答信号を受信した後に起動され、制御部５０１により実行される。
【００４９】
図４のＳ４０１では、制御部５０１は、今回の制御コマンドの総通信時間Ｔ０を記憶部５０２より読み出し、第三の所定値である一定値との比較を行う。制御部５０１は、総通信時間Ｔ０が一定値以下と判断した場合には、予測値Ｔ０ｅを更新せずに処理を終了し、総通信時間Ｔ０が一定値よりも大きいと判断した場合にはＳ４０２に進む。
【００５０】
Ｓ４０２では、制御部５０１は、総通信時間Ｔ０と、今回の制御コマンドの被制御装置５１０で制御コマンドの処理を行うための実行時間の予測時間Ｔ０ｅとの差分時間ΔＴ０を、差分時間ΔＴ０＝総通信時間Ｔ０−予測時間Ｔ０ｅより算出する。Ｓ４０３では、制御部５０１は、差分時間ΔＴ０が第一の所定値であるＣｏｎｓｔ１よりも大きいかどうか判断する。制御部５０１は、差分時間ΔＴ０がＣｏｎｓｔ１よりも大きいと判断した場合にはＳ４０６に進み、差分時間ΔＴ０がＣｏｎｓｔ１以下であると判断した場合にはＳ４０４に進む。
【００５１】
Ｓ４０４では、制御部５０１は、差分時間ΔＴ０が０かどうか、即ち、最初の取得コマンドに対して、被制御装置５１０から応答信号が送信されたかどうかを判断する。制御部５０１は、差分時間ΔＴ０が０ではないと判断した場合には、予測値Ｔ０ｅを更新せずに処理を終了し、差分時間ΔＴ０が０の場合にはＳ４０５に進む。なお、差分時間ΔＴ０が０の場合は、制御装置５０４は、被制御装置５１０から一度もＢｕｓｙ信号を受信しなかった場合であり、被制御装置５１０の制御部５１１は、予測値Ｔ０ｅ以下の時間で、制御コマンドの処理を終了していることになる。そのため、Ｓ４０５では、制御部５０１は、次回、同一の制御コマンドを送信するときに使用するコマンドの処理時間の予測値Ｔ０ｅが、今回の予測値Ｔ０ｅよりも第二の所定値であるＣｏｎｓｔ２だけ小さくする処理を行う。即ち、制御部５０１は、補正予測値Ｔ０ｅ’を、補正予測値Ｔ０ｅ’＝予測値Ｔ０ｅ−Ｃｏｎｓｔ２（第二の所定値）より算出し、Ｓ４０７に進む。
【００５２】
一方、Ｓ４０３において差分時間ΔＴ０が第一の所定値であるＣｏｎｓｔ１よりも大きい場合には、Ｓ４０６では、制御部５０１は、制御コマンドの実行時間の予測値Ｔ０ｅを大きくする補正を行う。測定された総通信時間ΔＴ０の内、制御装置５０４が取得コマンドに対してＢｕｓｙ信号を受信した期間では、被制御装置５１０において、動作周波数（ＣＬＫ）がＣＬＫ０から、ＣＬＫ０よりも周波数が低いＣＬＫ１に変更されている。そのため、制御装置５０４が取得コマンドの送信を行わなければ、Ｂｕｓｙ信号を受信した期間の総和であるビジー時間Ｔ１における被制御装置５１０での制御コマンドの処理時間は、Ｔ１×（ＣＬＫ１／ＣＬＫ０）となる。従って、制御部５０１は、補正予測値Ｔ０ｅ’を、補正予測値Ｔ０ｅ’＝予測値Ｔ０ｅ＋ビジー時間Ｔ１×（ＣＬＫ１／ＣＬＫ０）により算出し、Ｓ４０７に進む。Ｓ４０７では、制御部５０１は、制御コマンドの種類や、制御コマンドとそれに付随するデータ長等に対応させて、補正予測値Ｔ０ｅ’を記憶部５０２に格納し、処理を終了する。
【００５３】
なお、実行時間が変化する要因が被制御装置５１０の状態変化によって被制御装置５１０の動作周波数を変更している場合の全ての制御コマンドに対して補正予測値Ｔ０ｅ’の更新処理は、実施例１と同様であり、説明を省略する。また、動作周波数の切替を行わない構成の被制御装置５１０を有している場合の補正予測値Ｔ０ｅ’の更新処理も、実施例１と同様であり、説明を省略する。
【００５４】
以上説明したように、本実施例によれば、被制御装置における処理時間の予測精度を上げ、制御装置と被制御装置との通信回数を削減することができる。また、制御装置と被制御装置との通信回数が削減されるので、制御装置に複数の被制御装置が接続されている構成の場合においても、効率よいシリアル通信を行うことができる。特に、被制御装置が制御装置との通信のために動作周波数が下がり、処理速度が低下する構成の場合には、通信回数が削減されることにより処理速度の低下を防ぐことができる。その結果、被制御装置における処理能力が向上し、上位制御装置、制御装置を含むシステム全体の処理能力の向上を図ることができる。
【符号の説明】
【００５５】
１００    制御装置
１０１    制御部
１０２    シリアル通信部
１０３    時間測定部
１０４    記憶部
１０５    被制御装置
【図１】
2016072832.tif 000003
【図２】
2016072832.tif 000004
【図３】
2016072832.tif 000005
【図４】
2016072832.tif 000006
【図５】
2016072832.tif 000007
【図６】
2016072832.tif 000008
【図７】
2016072832.tif 000009