(57)【特許請求の範囲】
【請求項１】
要求受信部と、要求転送部と、代理送信部と、応答受信部と、応答転送部とを有し、
上記要求受信部は、応答装置に対して応答を要求する応答要求を要求装置から受信し、
上記要求転送部は、上記要求受信部が受信した応答要求を上記応答装置に対して送信し、
上記応答受信部は、上記応答要求に対する応答を上記応答装置から受信し、
上記応答転送部は、上記応答受信部が受信した応答を上記要求装置に対して送信し、
上記代理送信部は、上記要求転送部が上記応答要求を送信してから所定の時間が経過したとき、上記応答転送部が上記応答の送信を完了していない場合に、所定の応答要求を上記応答装置に対して送信する中継装置。
【請求項２】
上記代理送信部は、上記要求受信部が受信した応答要求に基づいて、上記応答要求に対する応答の長さが所定の長さ以上であるか否かをあらかじめ判定し、上記応答要求に対する応答の長さが所定の長さ以上であると判定した場合に、上記要求転送部が上記応答要求を送信してから所定の時間が経過したとき、上記所定の応答要求を上記応答装置に対して送信する請求項１に記載の中継装置。
【請求項３】
上記要求受信部は、次の応答要求を表わす符号を上記応答要求とともに上記要求装置から受信し、
上記代理送信部は、上記要求転送部が上記応答要求を転送してから所定の時間が経過したとき、上記要求受信部が受信した符号によって表わされる次の応答要求を上記応答装置に対して送信する請求項１または請求項２に記載の中継装置。
【請求項４】
要求受信部と、要求転送部と、代理送信部とを有し、
上記要求受信部は、応答装置に対して応答を要求する応答要求と、上記応答要求の次の応答要求を表わす符号とを要求装置から受信し、
上記要求転送部は、上記要求受信部が受信した応答要求を上記応答装置に対して送信し、
上記代理送信部は、上記要求転送部が上記応答要求を転送してから所定の時間が経過したとき、上記要求受信部が受信した符号によって表わされる次の応答要求を上記応答装置に対して送信する中継装置。
【請求項５】
請求項１から請求項４のいずれか１項に記載の中継装置と、上記応答要求を上記中継装置に対して送信する要求装置とを有し、
上記要求装置は、要求送信部と、応答受信部と、送信判定部とを有し、
上記要求送信部は、上記応答要求を上記中継装置に対して送信し、
上記要求装置の応答受信部は、上記応答要求に対する応答を受信し、
上記送信判定部は、上記応答要求を送信するか否かの判定を所定の周期で繰り返し、判定時に上記要求装置の応答受信部が上記応答の受信を完了している場合に、次の応答要求を送信すると判定し、
上記要求送信部は、上記応答要求を送信すると上記送信判定部が判定した場合に、上記応答要求を送信する中継システム。
【請求項６】
上記送信判定部は、上記要求送信部が送信した応答要求に基づいて、上記応答要求に対する応答の長さが所定の長さ以上であるか否かをあらかじめ判定し、上記応答要求に対する応答の長さが所定の長さ以上でないと判定した場合に、次の応答要求を送信すると判定する請求項５に記載の中継システム。
【請求項７】
上記要求送信部は、送信する応答要求に基づいて、上記応答要求に対する応答の長さが所定の長さ以上であるか否かをあらかじめ判定し、上記応答要求に対する応答の長さが所定の長さ以上であると判定した場合に、次の応答要求を表わす符号を上記応答要求とともに上記中継装置に対して送信する請求項５または請求項６に記載の中継システム。
【請求項８】
要求装置が応答装置に対して応答を要求する応答要求を中継装置が中継する中継方法において、
上記要求装置が、上記応答要求を上記中継装置に対して送信し、
上記中継装置が、上記応答要求を上記要求装置から受信し、
上記中継装置が、上記応答要求を上記応答装置に対して送信し、
上記中継装置が、上記応答要求に対する応答を上記応答装置から受信し、
上記中継装置が、上記応答を上記要求装置に対して送信し、
上記中継装置が、上記応答要求を送信してから所定の時間が経過したとき、上記応答の送信を完了していない場合に、所定の応答要求を上記応答装置に対して送信する中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、要求装置が応答装置に対して応答を要求する応答要求を中継する中継装置に関する。
【背景技術】
【０００２】
半二重方式の通信において、送信側が送信したデータが長すぎるために、受信側が正しく受信できなかった場合、送信側によるデータの送信が終了してから、受信側が送信側に異常を通知し、送信側がデータを分割して再送する技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−１５９８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
測定対象の状態を測定するセンサ装置などの応答装置が、センサ装置による測定結果に基づいて制御対象を制御するコントローラなどの要求装置からの応答要求を受信して、測定結果などの応答を送信する制御システムなどのシステムがある。
このようなシステムにおいて、要求装置が定期的に応答を取得する必要がある場合、要求装置は、ほぼ一定の間隔で周期的に応答要求を送信する。
要求装置の通信方式が半二重方式である場合、応答装置が送信した応答が長すぎると、次の応答要求の送信タイミングになっても、応答の受信が終わらないため、次の応答要求を送信することができない。逆に、次の応答要求の送信を優先すると、応答を正しく受信することができない。
受信に失敗した場合に分割して再送する方式は、応答の取得に遅延が生じるので、制御システムなどのように遅延なく応答を取得する必要があるシステムには、適用できない。
この発明は、例えば、応答装置が送信した応答が長すぎる場合でも、要求装置が応答を遅延なく受信し、かつ、適正なタイミングで次の応答要求を応答装置に対して送信できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
この発明にかかる中継装置は、
要求受信部と、要求転送部と、代理送信部とを有し、
上記要求受信部は、応答装置に対して応答を要求する応答要求を要求装置から受信し、
上記要求転送部は、上記要求受信部が受信した応答要求を上記応答装置に対して送信し、
上記代理送信部は、上記要求転送部が上記応答要求を送信してから所定の時間が経過した場合に、所定の応答要求を上記応答装置に対して送信する
ことを特徴とする。
【発明の効果】
【０００６】
この発明にかかる中継装置によれば、応答要求の送信タイミングに要求装置が応答要求を送信しなくても、中継装置が要求装置に代わって所定の応答要求を応答装置に対して送信するので、適正なタイミングで次の応答要求を応答装置に対して送信することができる。要求装置が次の応答要求を送信する必要がないので、応答装置が送信した応答が長すぎる場合でも、要求装置が応答を遅延なく受信することができる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１における組込みシステム１０の全体構成の一例を示すシステム構成図。
【図２】実施の形態１におけるリクエスト７１のバス９１における書式の一例を示す図。
【図３】実施の形態１における応答データ７２のバス９１における書式の一例を示す図。
【図４】実施の形態１における応答データ７２のバス９１における書式の別の例を示す図。
【図５】実施の形態１におけるコマンドＩＤ８２と応答データ７２との関係の一例を表わす図。
【図６】実施の形態１におけるコントローラ１の機能ブロックの一例を表わす構成図。
【図７】実施の形態１におけるリクエストテーブル記憶部１１３が記憶しているリクエストテーブルの一例を示す図。
【図８】実施の形態１におけるプロトコル変換装置２の機能ブロックの一例を示す構成図。
【図９】実施の形態１におけるリクエストテーブル記憶部２１４が記憶しているリクエストテーブルの一例を示す図。
【図１０】実施の形態１における組込みシステム１０の動作の流れの一例を示すフロー図。
【図１１】実施の形態１におけるリクエスト送信処理Ｓ５０の流れの一例を示すフロー図。
【図１２】実施の形態１における応答受信処理Ｓ５１の流れの一例を示すフロー図。
【図１３】実施の形態１における送信判定処理Ｓ５２の流れの一例を示すフロー図。
【図１４】実施の形態１におけるリクエスト転送処理Ｓ５５の流れの一例を示すフロー図。
【図１５】実施の形態１における代理判定処理Ｓ５６の流れの一例を示すフロー図。
【図１６】実施の形態１における応答転送処理Ｓ５７の流れの一例を示すフロー図。
【図１７】実施の形態１における代理送信処理Ｓ５８の流れの一例を示すフロー図。
【図１８】実施の形態１における組込みシステム１０で信号が送受信されるタイミングの一例を示すタイミング図。
【図１９】実施の形態２におけるプロトコル変換装置２の機能ブロックの一例を示す構成図。
【図２０】実施の形態２における出力値テーブル記憶部２９２が記憶している出力値テーブルの一例を示す図。
【図２１】実施の形態２におけるリクエスト７１のバス９１における書式の一例を示す図。
【図２２】実施の形態３におけるプロトコル変換装置２の機能ブロックの一例を示す構成図。
【図２３】実施の形態４におけるコントローラ１の機能ブロックの一例を表わす構成図。
【図２４】実施の形態４におけるプロトコル変換装置２の機能ブロックの一例を示す構成図。
【発明を実施するための形態】
【０００８】
実施の形態１．
実施の形態１について、図１〜図１８を用いて説明する。
【０００９】
図１は、この実施の形態における組込みシステム１０の全体構成の一例を示すシステム構成図である。
【００１０】
組込みシステム１０（中継システムの一例。）は、例えば、コントローラ１と、プロトコル変換装置２と、センサ機器３とを有する。
【００１１】
センサ機器３は、例えば、測定対象の状態（例えば、温度、圧力、速度など）を測定する。センサ機器３は、応答装置の一例である。
コントローラ１は、例えば、センサ機器３が測定した物理量に基づいて、制御対象を制御する。コントローラ１は、要求装置の一例である。
コントローラ１は、センサ機器３と異なるプロトコルのインターフェースを持つ。プロトコル変換装置２は、コントローラ１とセンサ機器３との間でプロトコル変換をする。プロトコル変換装置２は、中継装置の一例である。
コントローラ１とプロトコル変換装置２との間は、バス９１を介して接続している。プロトコル変換装置２とセンサ機器３との間は、バス９２を介して接続している。
【００１２】
バス９１は、例えば、半二重方式のシリアルバスである。バス９１は、通信路の一例である。
例えば、バス９１は、コントローラ１が送信をしプロトコル変換装置２が受信をする期間（以下「下り期間」と呼ぶ。）と、プロトコル変換装置２が送信をしコントローラ１が受信をする期間（以下「上り期間」と呼ぶ。）とを交互に繰り返す。基本的に、下り期間の長さ及び上り期間の長さは、あらかじめ定められている。したがって、下り期間と上り期間とを合わせた一周期の長さも決まっている。コントローラ１やプロトコル変換装置２は、例えば、内蔵するタイマなどでタイミングを測定することにより、下り期間か上り期間かを判断し、バス９１を介した通信をする。
【００１３】
バス９２は、例えば、バス９１と同じ動作周波数を有する全二重方式のシリアルバスである。しかし、バス９２における通信方式は、これに限らず、半二重方式であってもよいし、パラレルバスであってもよい。バス９２は、通信路の一例である。
【００１４】
コントローラ１は、センサ機器３にデータを要求するリクエストを、プロトコル変換装置２に対してバス９１を介して送信する。リクエストは、応答要求の一例である。
プロトコル変換装置２は、コントローラ１が送信したリクエストを、バス９１を介して受信する。プロトコル変換装置２は、受信したリクエストを、バス９２における書式に変換する。プロトコル変換装置２は、変換したリクエストを、センサ機器３に対してバス９２を介して送信する。
センサ機器３は、プロトコル変換装置２が送信したリクエストを、バス９２を介して受信する。センサ機器３は、受信したリクエストに応じて応答データを生成する。センサ機器３は、生成した応答データを、プロトコル変換装置２に対してバス９２を介して送信する。応答データは、応答の一例である。
プロトコル変換装置２は、センサ機器３が送信した応答データを、バス９２を介して受信する。プロトコル変換装置２は、受信した応答データを、バス９１における書式に変換する。プロトコル変換装置２は、変換した応答データを、コントローラ１に対してバス９１を介して送信する。
コントローラ１は、プロトコル変換装置２が送信した応答データを、バス９１を介して受信する。これにより、コントローラ１は、送信したリクエストに対するセンサ機器３からの応答データを取得する。
【００１５】
図２は、この実施の形態におけるリクエスト７１のバス９１における書式の一例を示す図である。
【００１６】
リクエスト７１は、例えば、スタートビット８１と、コマンドＩＤ８２と、引数８３と、誤り検出符号８８と、ストップビット８９とを有する。
スタートビット８１は、フレームの先頭を示す。
コマンドＩＤ８２は、リクエストの種類を示す。
引数８３は、例えば、アクセス先などを指示する。
誤り検出符号８８は、リクエストのフレームの値が送信中に誤っていないことを確認するためのデータである。なお、リクエスト７１は、誤り検出符号８８に代えて、誤り訂正符号を有する構成であってもよい。
ストップビット８９は、フレームの完了を示す。
【００１７】
図３は、この実施の形態における応答データ７２のバス９１における書式の一例を示す図である。
【００１８】
応答データ７２は、例えば、スタートビット８１と、基本データ８５と、誤り検出符号８８と、ストップビット８９とを有する。
スタートビット８１、誤り検出符号８８及びストップビット８９は、リクエスト７１と同様である。
基本データ８５は、センサ機器３が測定した結果を表わす。例えば、基本データ８５は、コントローラ１が制御対象を制御するために、所定の周期で必ず必要となる測定値を表わす。
【００１９】
図４は、この実施の形態における応答データ７２のバス９１における書式の別の例を示す図である。
【００２０】
応答データ７２は、例えば、スタートビット８１と、基本データ８５と、付加データ８６と、誤り検出符号８８と、ストップビット８９とを有する。
スタートビット８１、基本データ８５、誤り検出符号８８及びストップビット８９は、図３の例と同様である。
付加データ８６は、センサ機器３の仕様を示すパラメータや副次的な測定データなどを表わす。例えば、付加データ８６は、コントローラ１が制御対象を制御するために必要になる場合があるが、毎回は必要ない測定値を表わす。
【００２１】
基本データ８５の長さは、あらかじめ定められた一定の長さである。
応答データ７２に付加データ８６が含まれるか否かは、リクエスト７１の種類によって定まる。
付加データ８６の長さは、リクエスト７１の種類によって定まる。
すなわち、応答データ７２の長さは、リクエスト７１の種類によって定まる。
【００２２】
図５は、この実施の形態におけるコマンドＩＤ８２と応答データ７２との関係の一例を表わす図である。
【００２３】
リクエスト７１の種類は、リクエスト７１に含まれるコマンドＩＤ８２によって定まる。
例えば、コマンドＩＤ８２が「０」である場合、そのリクエスト７１に対する応答データ７２は、図３に示したように、付加データ８６を含まない。
コマンドＩＤ８２が「１」「２」「３」または「４」である場合、そのリクエスト７１に対する応答データ７２は、図４に示したように、付加データ８６を含む。コマンドＩＤ８２が「１」または「２」である場合、付加データ８６の長さ（以下「付加データ長」と呼ぶ。）は、１６ビットである。コマンドＩＤ８２が「３」である場合、付加データ長は、３２ビットである。コマンドＩＤ８２が「４」である場合、付加データ長は、６４ビットである。
【００２４】
例えば、付加データ８６が必要ない場合、コントローラ１は、コマンドＩＤ８２が「０」であるリクエスト７１を送信する。これに対して、センサ機器３は、図３に示した書式の応答データ７２を返す。この場合、応答データ７２の長さは、あらかじめ定められた一定の長さ（以下「基本長」と呼ぶ。）である。
付加データ８６が必要な場合、コントローラ１は、必要な付加データ８６の種類に応じて、コマンドＩＤ８２が「１」「２」「３」または「４」であるリクエスト７１を送信する。これに対して、センサ機器３は、図４に示した書式の応答データ７２を返す。この場合、応答データ７２の長さは、基本長に、コマンドＩＤ８２によって定まる付加データ長を加えた長さである。
【００２５】
センサ機器３は、リクエスト７１を受信してから所定の時間で応答データ７２を送信する。基本データ８５は、リクエスト７１を受信した時刻を基準とした時刻における測定結果を表わす。例えば、センサ機器３は、リクエスト７１を受信した時刻における測定結果を表わす応答データ７２を生成する。あるいは、センサ機器３は、リクエスト７１の受信から所定時間経過後における測定結果を表わす応答データ７２を生成する。あるいは、センサ機器３は、リクエスト７１を受信する前に測定しておいた測定結果を時系列に記憶しておき、リクエスト７１の受信から所定時間前における測定結果を抽出して、抽出した測定結果を表わす応答データ７２を生成する。
【００２６】
いずれにせよ、コントローラ１が制御対象を制御するため、一定の間隔でセンサ機器３から測定結果を得るためには、センサ機器３に対して一定の間隔でリクエスト７１を送信する必要がある。
プロトコル変換装置２は、書式の変換だけでなく、センサ機器３に対してリクエスト７１を送信するタイミングや、コントローラ１に対して応答データ７２を送信するタイミングの調整をする。
【００２７】
図６は、この実施の形態におけるコントローラ１の機能ブロックの一例を表わす構成図である。
【００２８】
コントローラ１は、例えば、リクエスト送信部１１１と、次周期リクエスト発行判定部１１２と、リクエストテーブル記憶部１１３と、次周期リクエスト未発行フラグ記憶部１１４と、応答データ受信部１１５と、切替制御部１２１と、信号送受信部１３１と、制御部１４１と、周期計時部１５１とを有する。
【００２９】
信号送受信部１３１は、バス９１に接続している。信号送受信部１３１は、バス９１に対してシリアル信号を送信し、あるいは、バス９１からシリアル信号を受信する。バス９１は半二重方式なので、信号送受信部１３１は、送信と受信とを同時にはせず、送信あるいは受信の一方のみをする。
信号送受信部１３１は、通信装置の一例である。
【００３０】
切替制御部１２１は、信号送受信部１３１の送受信を切り替える。
【００３１】
周期計時部１５１は、信号送受信部１３１を切り替えるタイミングを切替制御部１２１に対して通知する。例えば、周期計時部１５１は、下り期間の開始時刻からの経過時間を計測し、下り期間が経過すると、上り期間の開始時刻になったと判定し、切替制御部１２１に対して通知をする。また、周期計時部１５１は、上り期間の開始時刻からの経過時間を計測し、上り期間が経過すると、下り期間の開始時刻になったと判定し、切替制御部１２１に対して通知をする。周期計時部１５１は、ひたすらこれを繰り返す。
なお、周期計時部１５１は、下り期間の開始時刻だけを通知し、上り期間の開始時刻を通知しない構成であってもよい。その場合、周期計時部１５１は、例えば、下り期間の開始時刻からの経過時間を計測し、下り期間と上り期間とを合わせた時間が経過すると、次の下り期間の開始時刻になったと判定し、切替制御部１２１に対して通知をする。
【００３２】
次周期リクエスト未発行フラグ記憶部１１４は、次周期リクエスト未発行フラグを記憶する。次周期リクエスト未発行フラグは、次の周期の下り期間に、リクエスト７１を送信するか否かを表わす。
【００３３】
切替制御部１２１は、周期計時部１５１から下り期間の開始時刻の通知を受けると、次周期リクエスト未発行フラグ記憶部１１４が記憶した次周期リクエスト未発行フラグを参照する。
次周期リクエスト未発行フラグがリクエスト７１を送信することを表わす場合、切替制御部１２１は、信号送受信部１３１を送信に切り替える指示を発行する。信号送受信部１３１は、切替制御部１２１からの指示にしたがって、送信モードに切り替わる。
次周期リクエスト未発行フラグがリクエスト７１を送信しないことを表わす場合、切替制御部１２１は、信号送受信部１３１を切り替えない。信号送受信部１３１は、受信モードを維持する。
【００３４】
切替制御部１２１は、周期計時部１５１から上り期間の開始時刻の通知を受けると、信号送受信部１３１を受信に切り替える指示を発行する。信号送受信部１３１は、切替制御部１２１からの指示にしたがって、受信モードに切り替わる。
なお、周期計時部１５１が上り期間の開始時刻を通知しない構成の場合、切替制御部１２１は、例えば、リクエスト７１の送信が終わったことを検出して、送信終了から所定の時間が経過したとき、信号送受信部１３１を受信に切り替える。
【００３５】
また、周期計時部１５１は、下り期間の開始時刻を切替制御部１２１に対して通知するのと同時、あるいは、下り期間の開始時刻を切替制御部１２１に対して通知してから所定の遅延時間が経過したとき、リクエスト７１を送信できるタイミングになったと判定し、制御部１４１に対して通知をする。遅延時間は、切替制御部１２１が信号送受信部１３１を送信に切り替えてから信号送受信部１３１における送信の準備が整うまでにかかる時間に基づいて、あらかじめ設定される。
【００３６】
制御部１４１は、周期計時部１５１からリクエスト７１を送信できるタイミングになったという通知を受けると、次周期リクエスト未発行フラグ記憶部１１４が記憶した次周期リクエスト未発行フラグを参照する。
次周期リクエスト未発行フラグがリクエスト７１を送信することを表わす場合、制御部１４１は、リクエスト送信部１１１に対してリクエスト７１の発行を指示する。
制御部１４１は、要求生成部の一例である。
【００３７】
リクエスト送信部１１１は、制御部１４１からの指示にしたがって、信号送受信部１３１を介して、リクエスト７１をプロトコル変換装置２に対して送信する。信号送受信部１３１は、リクエスト送信部１１１が送信したリクエスト７１を、シリアル信号に変換し、バス９１に送出する。
リクエスト送信部１１１は、要求送信部の一例である。
【００３８】
応答データ受信部１１５は、信号送受信部１３１を介して、応答データ７２をプロトコル変換装置２から受信する。応答データ受信部１１５は、応答データ７２の受信が完了したとき、制御部１４１に対して通知をする。
応答データ受信部１１５は、応答受信部の一例である。
【００３９】
制御部１４１は、応答データ受信部１１５が受信した応答データ７２に基づいて、制御対象の制御などをする。
【００４０】
次周期リクエスト発行判定部１１２は、次の周期の下り期間にリクエスト７１を送信するか否かを判定する。次周期リクエスト発行判定部１１２は、判定結果を表わす次周期リクエスト未発行フラグを、次周期リクエスト未発行フラグ記憶部１１４に記憶させる。次周期リクエスト未発行フラグ記憶部１１４は、次周期リクエスト発行判定部１１２による判定結果を表わす次周期リクエスト未発行フラグを記憶する。
次周期リクエスト発行判定部１１２は、送信判定部の一例である。
【００４１】
リクエストテーブル記憶部１１３は、リクエストテーブルをあらかじめ記憶している。リクエストテーブルは、それぞれのコマンドＩＤ８２について、そのコマンドＩＤ８２によって示される種類のリクエスト７１を送信した周期の次の周期の下り期間にリクエスト７１を送信するか否かを表わす。
【００４２】
図７は、この実施の形態におけるリクエストテーブル記憶部１１３が記憶しているリクエストテーブルの一例を示す図である。
【００４３】
リクエストテーブル記憶部１１３は、リクエストテーブルとして、例えば、複数のコマンドＩＤ４１１と、複数の次周期リクエスト発行フラグ４２１とを記憶している。複数のコマンドＩＤ４１１は、互いに異なる。それぞれのコマンドＩＤ４１１は、一つの次周期リクエスト発行フラグ４２１と対応づけられている。次周期リクエスト発行フラグ４２１は、対応づけられているコマンドＩＤ４１１によって示される種類のリクエスト７１を送信した周期の次の周期の下り期間にリクエスト７１を送信するか否かを表わす。例えば、次周期リクエスト発行フラグ４２１が「１」の場合、次の周期の下り期間にリクエスト７１を送信することを表わす。次周期リクエスト発行フラグ４２１が「０」の場合、次の周期の下り期間にリクエスト７１を送信しないことを表わす。
【００４４】
制御部１４１は、リクエスト送信部１１１に送信させるリクエスト７１を、次周期リクエスト発行判定部１１２に対して通知する。
次周期リクエスト発行判定部１１２は、制御部１４１から通知されたリクエスト７１から、コマンドＩＤ８２を抽出する。次周期リクエスト発行判定部１１２は、抽出したコマンドＩＤ８２をキーとして、リクエストテーブル記憶部１１３が記憶したリクエストテーブルを検索し、コマンドＩＤ８２と一致するコマンドＩＤ４１１に対応づけられた次周期リクエスト発行フラグ４２１を取得する。
次周期リクエスト発行判定部１１２は、取得した次周期リクエスト発行フラグ４２１に基づいて、次の周期の下り期間にリクエスト７１を送信するか否かを判定する。
【００４５】
図８は、この実施の形態におけるプロトコル変換装置２の機能ブロックの一例を示す構成図である。
【００４６】
プロトコル変換装置２は、例えば、リクエスト受信部２１１と、リクエスト変換部２１７と、信号送信部２２１と、代理リクエスト判定部２１２と、リクエストテーブル記憶部２１４と、代理リクエストフラグ記憶部２１３と、代理リクエスト発行指示部２１５と、周期計時部２１６と、リクエスト出力値保持部２１８と、応答データ変換部２５１と、応答データ受信部２４１と、信号受信部２３１と、切替制御部２６１と、信号送受信部２７１とを有する。
【００４７】
信号送受信部２７１は、バス９１に接続している。信号送受信部２７１は、バス９１に対してシリアル信号を送信し、あるいは、バス９１からシリアル信号を受信する。バス９１は半二重方式なので、信号送受信部２７１は、送信と受信とを同時にはせず、送信あるいは受信の一方のみをする。
信号送受信部２７１は、通信装置の一例である。
【００４８】
切替制御部２６１は、信号送受信部２７１の送受信を切り替える。
【００４９】
信号送信部２２１は、バス９２に接続している。信号送信部２２１は、バス９２に対して信号を送信する。
信号送信部２２１は、通信装置の一例である。
【００５０】
信号受信部２３１は、バス９２に接続している。信号受信部２３１は、バス９２から信号を受信する。
信号受信部２３１は、通信装置の一例である。
【００５１】
リクエスト受信部２１１は、信号送受信部２７１を介して、コントローラ１からリクエスト７１を受信する。リクエスト受信部２１１は、リクエスト７１の受信が完了すると、切替制御部２６１に対して通知をする。
リクエスト受信部２１１は、要求受信部の一例である。
【００５２】
リクエスト変換部２１７は、リクエスト受信部２１１が受信したリクエスト７１を、逐次プロトコル変換し、信号送信部２２１を介して、センサ機器３に対して送信する。
また、リクエスト変換部２１７は、信号送信部２２１を介して、代理リクエストをセンサ機器３に対して送信する。代理リクエストとは、リクエスト受信部２１１がリクエスト７１を受信しない場合に、リクエスト７１の代わりに送信するリクエストのことである。代理リクエストは、例えば、コマンドＩＤが「０」であり、基本データだけを要求し、付加データを要求しないリクエストである。
リクエスト変換部２１７は、要求転送部及び代理送信部の一例である。
【００５３】
リクエスト出力値保持部２１８は、リクエスト出力値をあらかじめ記憶している。リクエスト出力値は、代理リクエストのコマンドＩＤや引数を表わす。リクエスト変換部２１７は、リクエスト出力値保持部２１８が記憶したリクエスト出力値に基づいて、代理リクエストを生成する。
なお、リクエスト出力値保持部２１８が記憶するリクエスト出力値は、代理リクエストそのものであってもよい。その場合、リクエスト変換部２１７は、リクエスト出力値保持部２１８が記憶したリクエスト出力値を、代理リクエストとしてそのまま送信する。
【００５４】
周期計時部２１６は、代理リクエストを送信するタイミングを代理リクエスト発行指示部２１５に対して通知する。例えば、周期計時部２１６は、リクエスト変換部２１７がリクエスト７１の送信を開始してからの経過時間を計測し、一周期（下り期間と上り期間とを合わせた時間）が経過すると、代理リクエストの送信タイミングであると判定し、代理リクエスト発行指示部２１５に対して通知をする。
【００５５】
代理リクエストフラグ記憶部２１３は、代理リクエストフラグを記憶する。代理リクエストフラグは、次の周期に代理リクエストを送信するか否かを表わす。
【００５６】
代理リクエスト発行指示部２１５は、周期計時部２１６から代理リクエストの送信タイミングの通知を受けると、代理リクエストフラグ記憶部２１３が記憶した代理リクエストフラグを参照する。
代理リクエストフラグが代理リクエストを送信することを表わす場合、代理リクエスト発行指示部２１５は、リクエスト変換部２１７に対して代理リクエストの送信を指示する。
【００５７】
応答データ受信部２４１は、信号受信部２３１を介して、センサ機器３から応答データ７２を受信する。
応答データ受信部２４１は、応答受信部の一例である。
【００５８】
応答データ変換部２５１は、応答データ受信部２４１が受信した応答データ７２を、逐次プロトコル変換し、信号送受信部２７１を介して、コントローラ１に対して送信する。応答データ変換部２５１は、応答データ７２の送信が完了すると、切替制御部２６１に対して通知する。
応答データ変換部２５１は、応答転送部の一例である。
【００５９】
切替制御部２６１は、リクエスト受信部２１１からリクエスト７１の受信完了の通知を受けると、信号送受信部２７１を送信に切り替える指示を発行する。信号送受信部２７１は、切替制御部２６１からの指示にしたがって、送信モードに切り替わる。
また、切替制御部２６１は、応答データ変換部２５１から応答データ７２の送信完了の通知を受けると、代理リクエストフラグ記憶部２１３が記憶した代理リクエストフラグを参照する。
代理リクエストフラグが代理リクエストを送信しないことを表わす場合、コントローラ１から次のリクエスト７１を受信するため、切替制御部２６１は、信号送受信部２７１を受信に切り替える指示を発行する。信号送受信部２７１は、切替制御部２６１からの指示にしたがって、受信モードに切り替わる。
代理リクエストフラグが代理リクエストを送信することを表わす場合、コントローラ１から次のリクエスト７１を受信しないので、切替制御部２６１は、信号送受信部２７１を切り替えない。信号送受信部２７１は、送信モードを維持する。
【００６０】
代理リクエスト判定部２１２は、代理リクエストを発行するか否かを判定する。代理リクエスト判定部２１２は、判定結果を表わす代理リクエストフラグを、代理リクエストフラグ記憶部２１３に記憶させる。代理リクエストフラグ記憶部２１３は、代理リクエスト判定部２１２による判定結果を表わす代理リクエストフラグを記憶する。
【００６１】
リクエストテーブル記憶部２１４は、リクエストテーブルをあらかじめ記憶している。リクエストテーブルは、それぞれのコマンドＩＤ８２について、そのコマンドＩＤ８２によって示される種類のリクエスト７１を転送した周期の次の周期に代理リクエストを送信するか否かを表わす。
【００６２】
図９は、この実施の形態におけるリクエストテーブル記憶部２１４が記憶しているリクエストテーブルの一例を示す図である。
【００６３】
リクエストテーブル記憶部２１４は、リクエストテーブルとして、例えば、複数のコマンドＩＤ４１２と、複数の次周期リクエスト発行フラグ４２２とを記憶している。複数のコマンドＩＤ４１２は、互いに異なる。それぞれのコマンドＩＤ４１２は、一つの次周期リクエスト発行フラグ４２２と対応づけられている。次周期リクエスト発行フラグ４２２は、対応づけられているコマンドＩＤ４１２によって示される種類のリクエスト７１を転送した周期の次の周期に代理リクエストを送信するか否かを表わす。例えば、次周期リクエスト発行フラグ４２２が「１」の場合、次の周期に代理リクエストを送信することを表わす。次周期リクエスト発行フラグ４２１が「０」の場合、次の周期に代理リクエストを送信しないことを表わす。
代理リクエストは、コントローラ１からリクエスト７１を受信しない周期に、リクエスト７１を転送する代わりに、送信するものであるから、リクエストテーブル記憶部１１３が記憶するリクエストテーブルの次周期リクエスト発行フラグ４２１と、リクエストテーブル記憶部２１４が記憶するリクエストテーブルの次周期リクエスト発行フラグ４２２とは、相補的な関係を有する。すなわち、次周期リクエスト発行フラグ４２１がリクエスト７１を送信することを表わす場合、その次周期リクエスト発行フラグ４２１に対応づけられたコマンドＩＤ４１１と同じコマンドＩＤ４１２に対応づけられた次周期リクエスト発行フラグ４２２は、代理リクエストを送信しないことを表わす。逆に、次周期リクエスト発行フラグ４２１がリクエスト７１を送信しないことを表わす場合、その次周期リクエスト発行フラグ４２１に対応づけられたコマンドＩＤ４１１と同じコマンドＩＤ４１２に対応づけられた次周期リクエスト発行フラグ４２２は、代理リクエストを送信することを表わす。
【００６４】
リクエスト受信部２１１は、コントローラ１から受信したリクエスト７１を代理リクエスト判定部２１２に対して通知する。
代理リクエスト判定部２１２は、リクエスト受信部２１１から通知されたリクエスト７１から、コマンドＩＤ８２を抽出する。代理リクエスト判定部２１２は、抽出したコマンドＩＤ８２をキーとして、リクエストテーブル記憶部２１４が記憶したリクエストテーブルを検索し、コマンドＩＤ８２と一致するコマンドＩＤ４１２に対応づけられた次周期リクエスト発行フラグ４２２を取得する。
代理リクエスト判定部２１２は、取得した次周期リクエスト発行フラグ４２２に基づいて、次の周期に代理リクエストを送信するか否かを判定する。
【００６５】
図１０は、この実施の形態における組込みシステム１０の動作の流れの一例を示すフロー図である。
【００６６】
コントローラ１は、例えば、リクエスト送信処理Ｓ５０と、応答受信処理Ｓ５１と、送信判定処理Ｓ５２とを実行する。
プロトコル変換装置２は、例えば、リクエスト転送処理Ｓ５５と、代理判定処理Ｓ５６と、応答転送処理Ｓ５７と、代理送信処理Ｓ５８と、応答転送処理Ｓ５９とを実行する。
センサ機器３は、例えば、リクエスト受信処理Ｓ６０と、応答送信処理Ｓ６１とを実行する。
【００６７】
リクエスト送信処理Ｓ５０において、コントローラ１は、リクエスト７１をプロトコル変換装置２に対して送信する。
リクエスト転送処理Ｓ５５において、プロトコル変換装置２は、コントローラ１が送信したリクエスト７１を受信し、センサ機器３に対して送信する。
リクエスト受信処理Ｓ６０において、センサ機器３は、プロトコル変換装置２が送信したリクエスト７１を受信する。
応答送信処理Ｓ６１において、センサ機器３は、リクエスト受信処理Ｓ６０で受信したリクエスト７１に対する応答データ７２をプロトコル変換装置２に対して送信する。
【００６８】
代理判定処理Ｓ５６において、プロトコル変換装置２は、代理リクエストを送信するか否かを判定する。
代理リクエストを送信すると判定した場合、プロトコル変換装置２は、応答転送処理Ｓ５７と代理送信処理Ｓ５８とを並行して実行する。
代理リクエストを送信しないと判定した場合、プロトコル変換装置２は、応答転送処理Ｓ５９へ処理を進める。
【００６９】
応答転送処理Ｓ５７において、プロトコル変換装置２は、センサ機器３が送信した応答データ７２を受信する。プロトコル変換装置２は、受信した応答データ７２をコントローラ１に対して送信する。
プロトコル変換装置２は、代理送信処理Ｓ５８が終了するのを待ってから、応答転送処理Ｓ５９へ処理を進める。
【００７０】
代理送信処理Ｓ５８において、プロトコル変換装置２は、代理リクエストの送信タイミングになるのを待つ。代理リクエストの送信タイミングになったら、プロトコル変換装置２は、代理リクエストをセンサ機器３に対して送信する。代理送信処理Ｓ５８は、応答転送処理Ｓ５７と並行して実行されるので、応答データ７２の受信が終了していなくても、代理リクエストが送信される。
プロトコル変換装置２は、応答転送処理Ｓ５７が終了するのを待ってから、応答転送処理Ｓ５９へ処理を進める。
【００７１】
応答転送処理Ｓ５９において、プロトコル変換装置２は、センサ機器３が送信した応答データ７２を受信する。プロトコル変換装置２は、受信した応答データ７２をコントローラ１に対して送信する。
プロトコル変換装置２は、リクエスト転送処理Ｓ５５に処理を戻す。
【００７２】
応答受信処理Ｓ５１において、コントローラ１は、プロトコル変換装置２が送信した応答データ７２を受信する。
送信判定処理Ｓ５２において、コントローラ１は、次の周期にリクエスト７１を送信するか否かを判定する。
リクエスト７１を送信すると判定した場合、コントローラ１は、リクエスト送信処理Ｓ５０に処理を戻す。
リクエスト７１を送信しないと判定した場合、コントローラ１は、応答受信処理Ｓ５１に処理を戻す。
【００７３】
図１１は、この実施の形態におけるリクエスト送信処理Ｓ５０の流れの一例を示すフロー図である。
【００７４】
リクエスト送信処理Ｓ５０は、例えば、切替タイミング待ち工程Ｓ５０１と、送信切替工程Ｓ５０２と、送信タイミング待ち工程Ｓ５０３と、リクエスト送信工程Ｓ５０４と、次送信判定工程Ｓ５０５と、フラグセット工程Ｓ５０６と、切替タイミング待ち工程Ｓ５０７と、受信切替工程Ｓ５０８とを有する。
【００７５】
切替タイミング待ち工程Ｓ５０１において、切替制御部１２１は、周期計時部１５１から下り期間の開始タイミングを通知されるのを待つ。周期計時部１５１は、下り期間の開始タイミングになると、切替制御部１２１に対して通知をする。
【００７６】
送信切替工程Ｓ５０２において、切替制御部１２１は、信号送受信部１３１を送信に切り替える指示を発行する。信号送受信部１３１は、送受信方向を切り替えて送信にする。
【００７７】
送信タイミング待ち工程Ｓ５０３において、制御部１４１は、周期計時部１５１から送信タイミングを通知されるのを待つ。周期計時部１５１は、送信タイミングになると、切替制御部１２１に対して通知をする。
【００７８】
リクエスト送信工程Ｓ５０４において、制御部１４１は、リクエスト７１を生成する。制御部１４１は、リクエスト送信部１１１に対して、生成したリクエスト７１を送信するように指示する。リクエスト送信部１１１は、制御部１４１が生成したリクエスト７１をプロトコル変換装置２に対して送信する。
【００７９】
次送信判定工程Ｓ５０５において、次周期リクエスト発行判定部１１２は、リクエスト送信工程Ｓ５０４で制御部１４１が生成したリクエスト７１と、リクエストテーブル記憶部１１３が記憶したリクエストテーブルとに基づいて、次の周期にリクエスト７１を送信するか否かを判定する。
送信しないと判定した場合、次周期リクエスト発行判定部１１２は、フラグセット工程Ｓ５０６へ処理を進める。
送信すると判定した場合、次周期リクエスト発行判定部１１２は、切替タイミング待ち工程Ｓ５０７へ処理を進める。
【００８０】
フラグセット工程Ｓ５０６において、次周期リクエスト発行判定部１１２は、次周期リクエスト未発行フラグ記憶部１１４が記憶した次周期リクエスト未発行フラグをセットする。次周期リクエスト未発行フラグ記憶部１１４は、次周期リクエスト発行判定部１１２がセットした次周期リクエスト未発行フラグを記憶する。
【００８１】
切替タイミング待ち工程Ｓ５０７において、切替制御部１２１は、周期計時部１５１から上り期間の開始タイミングを通知されるのを待つ。周期計時部１５１は、上り期間の開始タイミングになると、切替制御部１２１に対して通知をする。
【００８２】
受信切替工程Ｓ５０８において、切替制御部１２１は、信号送受信部１３１を受信に切り替える指示を発行する。信号送受信部１３１は、送受信方向を切り替えて受信にする。
【００８３】
図１２は、この実施の形態における応答受信処理Ｓ５１の流れの一例を示すフロー図である。
【００８４】
応答受信処理Ｓ５１は、例えば、受信待ち工程Ｓ５１１と、応答受信工程Ｓ５１２とを有する。
【００８５】
受信待ち工程Ｓ５１１において、応答データ受信部１１５は、応答データ７２の受信が始まるのを待つ。
【００８６】
応答受信工程Ｓ５１２において、応答データ受信部１１５は、リクエストテーブル記憶部１１３を介して応答データ７２を受信する。
【００８７】
図１３は、この実施の形態における送信判定処理Ｓ５２の流れの一例を示すフロー図である。
【００８８】
送信判定処理Ｓ５２は、例えば、フラグ判定工程Ｓ５２１と、フラグクリア工程Ｓ５２２とを有する。
【００８９】
フラグ判定工程Ｓ５２１において、切替制御部１２１は、次周期リクエスト未発行フラグ記憶部１１４が記憶した次周期リクエスト未発行フラグがセットされているか否かを判定する。
次周期リクエスト未発行フラグがセットされている場合、切替制御部１２１は、フラグクリア工程Ｓ５２２へ処理を進める。
次周期リクエスト未発行フラグがクリアされている場合、切替制御部１２１は、リクエスト７１を送信すると判定し、送信判定処理Ｓ５２を終了する。これにより、コントローラ１は、リクエスト送信処理Ｓ５０に処理を戻し、次のリクエスト７１を送信する。
【００９０】
フラグクリア工程Ｓ５２２において、切替制御部１２１は、次周期リクエスト未発行フラグ記憶部１１４が記憶した次周期リクエスト未発行フラグをクリアする。次周期リクエスト未発行フラグ記憶部１１４は、切替制御部１２１がクリアした次周期リクエスト未発行フラグを記憶する。
切替制御部１２１は、リクエスト７１を送信しないと判定し、送信判定処理Ｓ５２を終了する。これにより、コントローラ１は、応答受信処理Ｓ５１に処理を戻し、代理リクエストに対する応答データ７２を受信する。
【００９１】
図１４は、この実施の形態におけるリクエスト転送処理Ｓ５５の流れの一例を示すフロー図である。
【００９２】
リクエスト転送処理Ｓ５５は、例えば、受信切替工程Ｓ５５１と、受信待ち工程Ｓ５５２と、リクエスト転送工程Ｓ５５３と、送信切替工程Ｓ５５４とを有する。
【００９３】
受信切替工程Ｓ５５１において、切替制御部２６１は、信号送受信部２７１を受信に切り替える指示を発行する。信号送受信部２７１は、送受信方向を切り替えて受信にする。
【００９４】
受信待ち工程Ｓ５５２において、リクエスト受信部２１１は、リクエスト７１の受信が始まるのを待つ。
【００９５】
リクエスト転送工程Ｓ５５３において、リクエスト受信部２１１は、コントローラ１からリクエスト７１を受信する。リクエスト変換部２１７は、リクエスト受信部２１１がリクエスト７１を受信するのと並行して、プロトコル変換をし、センサ機器３に対して送信する。
【００９６】
送信切替工程Ｓ５５４において、リクエスト受信部２１１は、リクエスト７１の受信が完了したことを切替制御部２６１に対して通知する。切替制御部２６１は、信号送受信部２７１を送信に切り替える指示を発行する。信号送受信部２７１は、送受信方向を切り替えて送信にする。
【００９７】
図１５は、この実施の形態における代理判定処理Ｓ５６の流れの一例を示すフロー図である。
【００９８】
代理判定処理Ｓ５６は、例えば、代理判定工程Ｓ５６１と、計時開始工程Ｓ５６２とを有する。
【００９９】
代理判定工程Ｓ５６１において、代理リクエスト判定部２１２は、リクエスト受信部２１１が受信したリクエスト７１と、リクエストテーブル記憶部２１４が記憶したリクエストテーブルとに基づいて、次の周期に代理リクエストを送信するか否かを判定する。
代理リクエストを送信すると判定した場合、計時開始工程Ｓ５６２へ処理を進める。
代理リクエストを送信しないと判定した場合、代理リクエスト判定部２１２は、代理判定処理Ｓ５６を終了する。プロトコル変換装置２は、応答転送処理Ｓ５９へ処理を進める。
【０１００】
計時開始工程Ｓ５６２において、代理リクエスト判定部２１２は、代理リクエストフラグ記憶部２１３が記憶した代理リクエストフラグをセットする。代理リクエストフラグ記憶部２１３は、代理リクエスト判定部２１２がセットした代理リクエストフラグを記憶する。周期計時部２１６は、代理リクエストを送信するタイミングを判定するため、計時を開始する。代理リクエスト判定部２１２は、代理判定処理Ｓ５６を終了する。プロトコル変換装置２は、応答転送処理Ｓ５７及び代理送信処理Ｓ５８へ処理を進める。
【０１０１】
図１６は、この実施の形態における応答転送処理Ｓ５７の流れの一例を示すフロー図である。
なお、応答転送処理Ｓ５９の流れも、応答転送処理Ｓ５７と同様である。
【０１０２】
応答転送処理Ｓ５７は、例えば、受信待ち工程Ｓ５７１と、応答転送工程Ｓ５７２とを有する。
【０１０３】
受信待ち工程Ｓ５７１において、応答データ受信部２４１は、応答データ７２の受信が始まるのを待つ。
【０１０４】
応答転送工程Ｓ５７２において、応答データ受信部２４１は、センサ機器３から応答データ７２を受信する。応答データ変換部２５１は、応答データ受信部２４１が応答データ７２を受信するのと並行して、プロトコル変換をし、コントローラ１に対して送信する。
【０１０５】
図１７は、この実施の形態における代理送信処理Ｓ５８の流れの一例を示すフロー図である。
【０１０６】
代理送信処理Ｓ５８は、例えば、リクエスト取得工程Ｓ５８１と、送信タイミング待ち工程Ｓ５８２と、リクエスト送信工程Ｓ５８３とを有する。
【０１０７】
リクエスト取得工程Ｓ５８１において、リクエスト変換部２１７は、リクエスト出力値保持部２１８が記憶したリクエスト出力値に基づいて、代理リクエストを生成する。
【０１０８】
送信タイミング待ち工程Ｓ５８２において、リクエスト変換部２１７は、代理リクエストの送信タイミングになるのを待つ。
【０１０９】
リクエスト送信工程Ｓ５８３において、代理リクエストの送信タイミングになると、周期計時部２１６は、代理リクエスト発行指示部２１５に対して通知をする。代理リクエスト発行指示部２１５は、リクエスト変換部２１７に対して代理リクエストの送信を指示する。リクエスト変換部２１７は、リクエスト取得工程Ｓ５８１で生成した代理リクエストをセンサ機器３に対して送信する。
リクエスト変換部２１７は、代理リクエストフラグ記憶部２１３が記憶した代理リクエストフラグをクリアする。代理リクエストフラグ記憶部２１３は、リクエスト変換部２１７がクリアした代理リクエストフラグを記憶する。
【０１１０】
図１８は、この実施の形態における組込みシステム１０で信号が送受信されるタイミングの一例を示すタイミング図である。
横軸は、時刻を示す。
【０１１１】
それぞれの周期４５１〜４５３は、同じ長さを有する。それぞれの周期４５１〜４５３は、下り期間４６１〜４６３と、上り期間４７１〜４７３とによって構成されている。
【０１１２】
例えば、周期４５１の下り期間４６１において、コントローラ１は、コマンドＩＤ８２が「１」であるリクエスト７１を送信し、基本データ８５に加えて、１６ビットの付加データ８６を要求したとする。コマンドＩＤ８２が「１」なので、コントローラ１は、次の周期４５２にリクエスト７１を送信すると判断する。
プロトコル変換装置２は、コントローラ１が送信したリクエスト７１を受信し、プロトコル変換して、センサ機器３に対して送信する。コマンドＩＤ８２が「１」なので、プロトコル変換装置２は、次の周期４５２に代理リクエストを送信しないと判断する。
センサ機器３は、プロトコル変換装置２が送信したリクエスト７１を受信する。センサ機器３は、１６ビットの付加データ８６を含む応答データ７２を送信する。
プロトコル変換装置２は、センサ機器３が送信した応答データ７２を受信し、プロトコル変換をして、上り期間４７１において、コントローラ１に対して送信する。
コントローラ１は、プロトコル変換装置２が送信した応答データ７２を受信する。
【０１１３】
次の周期４５２の下り期間４６２において、コントローラ１は、コマンドＩＤ８２が「４」であるリクエスト７１を送信し、基本データ８５に加えて、６４ビットの付加データ８６を要求したとする。コマンドＩＤ８２が「４」なので、コントローラ１は、次の周期４５３にリクエスト７１を送信しないと判断する。
プロトコル変換装置２は、コントローラ１が送信したリクエスト７１を受信し、プロトコル変換して、センサ機器３に対して送信する。コマンドＩＤ８２が「４」なので、プロトコル変換装置２は、次の周期４５３に代理リクエストを送信すると判断する。
センサ機器３は、プロトコル変換装置２が送信した応答データ７２を受信する。センサ機器３は、６４ビットの付加データ８６を含む応答データ７２を生成して、送信する。
プロトコル変換装置２は、センサ機器３が送信した応答データ７２を受信し、プロトコル変換をして、コントローラ１に対して送信する。しかし、付加データ８６が大きいので、上り期間４７２のなかでは送信が完了せず、次の周期４５３の下り期間４６３までかかる。
コントローラ１は、周期４５３にリクエスト７１を送信しないと判断しているので、周期４５３の下り期間４６３になっても、信号送受信部１３１を送信に切り替えない。このため、コントローラ１は、プロトコル変換装置２が送信した応答データ７２を、最後まで受信できる。
【０１１４】
プロトコル変換装置２は、周期４５３に代理リクエストを送信すると判断しているので、例えばコマンドＩＤ８２が「０」である代理リクエスト７３を生成して、センサ機器３に対して送信する。
センサ機器３は、プロトコル変換装置２が送信した代理リクエスト７３を受信する。代理リクエスト７３は、リクエスト７１と同じ書式なので、センサ機器３は、受信したリクエストが、コントローラ１からのリクエスト７１か、プロトコル変換装置２からの代理リクエスト７３かを区別しない。センサ機器３は、付加データ８６を含まない応答データ７２を生成して、送信する。
プロトコル変換装置２は、センサ機器３が送信した応答データ７２を受信し、プロトコル変換をして、上り期間４７３において、コントローラ１に対して送信する。
コントローラ１は、プロトコル変換装置２が送信した応答データ７２を受信する。コントローラ１がリクエスト７１を送信しない代わりに、プロトコル変換装置２が代理リクエスト７３を送信するので、コントローラ１は、リクエスト７１を送信した場合と同じく、応答データ７２を取得することができる。
【０１１５】
コントローラ１がリクエスト７１を送信する周期４５１，４５２において、コントローラ１は、同じタイミングでリクエスト７１を送信する。したがって、プロトコル変換装置２も、同じタイミングでリクエスト７１をセンサ機器３に対して送信する。
コントローラ１がリクエスト７１を送信しない周期４５３において、プロトコル変換装置２は、コントローラ１から受信したリクエスト７１をセンサ機器３に対して送信するのと同じタイミングで、代理リクエスト７３を送信する。
したがって、センサ機器３は、常に同じタイミングでリクエストを受信する。センサ機器３は、リクエストを受信したタイミングと一定の関係を有する時刻における測定結果に基づいて、応答データ７２の基本データ８５を生成する。
このため、コントローラ１は、一定の間隔でセンサ機器３が測定した測定結果を得ることができる。
【０１１６】
コントローラ１のリクエストテーブル記憶部１１３が記憶したリクエストテーブルは、要求する付加データ８６が大きく、上り期間の間に応答データ７２の受信が終わらないコマンドＩＤ４１１に対応づけて、次の周期にリクエスト７１を送信しないことを表わす次周期リクエスト発行フラグ４２１を記憶している。このため、コントローラ１は、上り期間の間に応答データ７２の受信が終わらない場合に、次のリクエスト７１を送信しない。
【０１１７】
プロトコル変換装置２のリクエストテーブル記憶部２１４が記憶したリクエストテーブルは、要求する付加データ８６が大きく、上り期間の間に応答データ７２の送信が終わらないコマンドＩＤ４１２に対応づけて、次の周期に代理リクエストを送信することを表わす次周期リクエスト発行フラグ４２２を記憶している。このため、プロトコル変換装置２は、上り期間の間に応答データ７２の送信が終わらず、コントローラ１がリクエスト７１を送信しない場合に、代理リクエスト７３を送信する。
【０１１８】
代理リクエスト７３を送信する場合、プロトコル変換装置２は、付加データ８６を要求しないコマンドＩＤ８２か、あるいは、要求する付加データ８６が小さく、上り期間の間に応答データ７２の送信が完了するコマンドＩＤ８２を含む代理リクエスト７３を生成する。これにより、その更に次の周期では、コントローラ１が通常通りリクエスト７１を送信できる。
【０１１９】
このように、応答データ長が長いため一周期内で受信できないリクエスト７１をコントローラ１が送信すると、次の周期において、コントローラ１は、データの受信を優先するためにバス９１の送受信方向を切り替えない。
コントローラ１は、バス９１が切り替わらないため、リクエスト７１を送信しない。
一方で、次の周期に基本データ８５を得るために、コントローラ１からのリクエスト７１を受信することなく、プロトコル変換装置２があらかじめ保持しておいた代理リクエスト７３をセンサ機器３に送信して、応答データ７２を得る。代理リクエスト７３は、基本データ８５のみを要求する。代理リクエスト７３は、コントローラ１の代わりにプロトコル変換装置２が送信するリクエストである。
コントローラ１は、プロトコル変換装置２から基本データ８５を取得する。
【０１２０】
一周期内に応答データ７２を受信できない場合、コントローラ１が受信を完了するまで、信号送受信部１３１，２７１を切り替えないため、応答データ７２の送信が中断されなくなり、取得したい応答データ７２を損失することなく取得することができる。また、プロトコル変換装置２が代理リクエスト７３を発行することにより、コントローラ１がリクエスト７１を発行できなくても、次の周期において基本データ８５を取得できる。
【０１２１】
実施の形態２．
実施の形態２について、図１９〜図２１を用いて説明する。
なお、実施の形態１と共通する部分については、同一の符号を付し、説明を省略する。
【０１２２】
図１９は、この実施の形態におけるプロトコル変換装置２の機能ブロックの一例を示す構成図である。
【０１２３】
プロトコル変換装置２は、実施の形態１で説明した機能ブロックに加えて、更に、出力値テーブル記憶部２９２と、テーブルＩＤ抽出部２９３とを有する。
【０１２４】
出力値テーブル記憶部２９２は、出力値テーブルをあらかじめ記憶している。出力値テーブルは、複数のリクエスト出力値を含む。
【０１２５】
テーブルＩＤ抽出部２９３は、代理リクエスト判定部２１２が受信したリクエスト７１から、テーブルＩＤを抽出する。テーブルＩＤは、次の周期で送信する代理リクエスト７３を指示するデータである。
【０１２６】
リクエスト出力値保持部２１８は、テーブルＩＤ抽出部２９３が抽出したテーブルＩＤに基づいて、出力値テーブル記憶部２９２が記憶した出力値テーブルから、リクエスト出力値を取得する。
【０１２７】
図２０は、この実施の形態における出力値テーブル記憶部２９２が記憶している出力値テーブルの一例を示す図である。
【０１２８】
出力値テーブル記憶部２９２は、出力値テーブルとして、例えば、複数のテーブルＩＤ４１５と、複数のリクエスト出力値４２５とを記憶している。複数のテーブルＩＤ４１５は、互いに異なる。それぞれのテーブルＩＤ４１５は、一つのリクエスト出力値４２５と対応づけられている。
【０１２９】
図２１は、この実施の形態におけるリクエスト７１のバス９１における書式の一例を示す図である。
【０１３０】
リクエスト７１は、実施の形態１で説明したデータに加えて、テーブルＩＤ８４を含む。
【０１３１】
コントローラ１において、次周期リクエスト未発行フラグ記憶部１１４が記憶した次周期リクエスト未発行フラグが、次の周期にリクエストを送信しないことを表わす場合、制御部１４１は、次の周期で取得したい付加データ８６にしたがって、テーブルＩＤ８４を決定し、テーブルＩＤ８４を含むリクエスト７１を生成する。
次周期リクエスト未発行フラグ記憶部１１４が記憶した次周期リクエスト未発行フラグが、次の周期にリクエストを送信することを表わす場合、制御部１４１は、実施の形態１で説明したリクエスト７１と同じく、テーブルＩＤ８４を含まないリクエスト７１を生成する。
【０１３２】
プロトコル変換装置２において、リクエスト受信部２１１が受信したリクエスト７１がテーブルＩＤ８４を含む場合、リクエスト変換部２１７は、リクエスト７１からテーブルＩＤ８４を取り除き、プロトコル変換をして、センサ機器３に対して送信する。
テーブルＩＤ抽出部２９３は、リクエスト受信部２１１が受信したリクエスト７１から、テーブルＩＤ８４を抽出する。
リクエスト出力値保持部２１８は、テーブルＩＤ抽出部２９３が抽出したテーブルＩＤ８４をキーにして、出力値テーブル記憶部２９２が記憶した出力値テーブルを検索し、テーブルＩＤ８４と一致するテーブルＩＤ４１５に対応づけられたリクエスト出力値４２５を取得する。
次の周期において、リクエスト変換部２１７は、テーブルＩＤ抽出部２９３が取得したリクエスト出力値４２５に基づいて、代理リクエスト７３を生成し、センサ機器３に対して送信する。
【０１３３】
出力値テーブル記憶部２９２が記憶している複数のリクエスト出力値４２５は、いずれも、付加データ８６を要求しないコマンドＩＤ８２か、あるいは、要求する付加データ８６が小さく、上り期間の間に応答データ７２の送信が完了するコマンドＩＤ８２を含む代理リクエスト７３を表わす。これにより、コントローラ１がいずれのテーブルＩＤ８４を指定した場合でも、その更に次の周期では、コントローラ１が通常通りリクエスト７１を送信できる。
【０１３４】
このように、付加データ８６を備える応答であっても、付加データ８６のデータ長が短いものであれば、周期内にデータを受信することは可能である。代理リクエスト７３として発行するリクエストを、複数のリクエストの中から選択できるようにする。プロトコル変換装置２は、代理リクエスト７３として送信する値を保持する出力値テーブル記憶部２９２を備える。コントローラ１は、応答データ長が長いため一周期内で応答を受信できないリクエスト７１を発行するときに合わせて、テーブルＩＤ８４により、代理リクエスト７３のコマンドＩＤ８２や引数８３を指示する。テーブルＩＤ８４は、プロトコル変換装置２が出力値テーブル記憶部２９２のエントリを選択するために使われる。コントローラ１は、リクエスト７１にテーブルＩＤ８４を追加して送信する。コントローラ１は、代理リクエスト７３を複数のリクエスト（コマンドＩＤ８２、引数８３）から選択して指示することができる。
これにより、リクエストに対する制約が減り、組込みシステム１０の柔軟性が向上する。
【０１３５】
なお、コントローラ１は、テーブルＩＤ８４によって次の周期の代理リクエスト７３を指定するのではなく、例えば、２つのリクエスト７１を連続して送信し、二番目のリクエスト７１によってを次の周期の代理リクエスト７３を指定する構成であってもよい。プロトコル変換装置２は、連続して送信された２つのリクエスト７１をコントローラ１から受信した場合、最初のリクエスト７１をセンサ機器３に対して送信し、二番目のリクエスト７１を記憶しておく。次の周期の送信タイミングになると、プロトコル変換装置２は、記憶しておいた二番目のリクエスト７１を、代理リクエスト７３としてセンサ機器３に対して送信する。
この方式の場合、代理リクエスト７３を表わすリクエスト出力値をリクエスト出力値保持部２１８があらかじめ記憶しておく必要がないので、組込みシステム１０の柔軟性が更に向上する。
【０１３６】
これに対し、テーブルＩＤ８４によって次の周期の代理リクエスト７３を指定する方式は、コントローラ１が送信するデータ量が、テーブルＩＤ８４の分増えるだけで、次の周期の代理リクエスト７３を指定できる。例えば、テーブルＩＤ８４を４ビットとすれば、１６種類の代理リクエスト７３のなかから、次の周期の代理リクエスト７３を指定することができる。このため、リクエスト７１をもう一つ送信する方式よりも、コントローラ１が送信するデータ量を少なくすることができる。
【０１３７】
なお、代理リクエスト判定部２１２は、リクエスト受信部２１１が受信したリクエスト７１がテーブルＩＤ８４を含むか否かに基づいて、次の周期に代理リクエスト７３を送信するか否かを判定する構成であってもよい。すなわち、リクエスト７１がテーブルＩＤ８４を含む場合は、コントローラ１が次の周期にリクエスト７１を送信しないので、代理リクエスト判定部２１２は、代理リクエスト７３を送信すると判定する。逆に、リクエスト７１がテーブルＩＤ８４を含まない場合は、コントローラ１が次の周期にリクエスト７１を送信するので、代理リクエスト判定部２１２は、代理リクエスト７３を送信しないと判定する。
代理リクエスト判定部２１２がこのような構成である場合、リクエストテーブル記憶部２１４が記憶したリクエストテーブルを使う必要がないので、リクエストテーブル記憶部２１４は、なくてもよい。
【０１３８】
実施の形態３．
実施の形態３について、図２２を用いて説明する。
なお、実施の形態１または実施の形態２と共通する部分については、同一の符号を付し、説明を省略する。
【０１３９】
図２２は、この実施の形態におけるプロトコル変換装置２の機能ブロックの一例を示す構成図である。
【０１４０】
プロトコル変換装置２は、実施の形態２で説明した機能ブロックに加えて、更に、リクエスト出力値登録部２９４を有する。
【０１４１】
リクエスト出力値登録部２９４は、出力値テーブル記憶部２９２が記憶した出力値テーブルにリクエスト出力値４２５を登録する。
【０１４２】
コントローラ１において、次周期リクエスト未発行フラグ記憶部１１４が記憶した次周期リクエスト未発行フラグが、次の周期にリクエストを送信することを表わす場合、制御部１４１は、今回送信するリクエスト７１を、出力値テーブルに登録させるか否かを判定する。
出力値テーブルに登録させないと判定した場合、制御部１４１は、実施の形態１で説明したリクエスト７１と同じく、テーブルＩＤ８４を含まないリクエスト７１を生成する。
出力値テーブルに登録させると判定した場合、制御部１４１は、次の周期にリクエストを送信する場合と同様、テーブルＩＤ８４を含むリクエスト７１を生成する。ただし、この場合のテーブルＩＤ８４は、次の周期に送信すべき代理リクエスト７３を表わすのではなく、そのリクエスト７１を表わすリクエスト出力値に対応づけて出力値テーブルに登録するテーブルＩＤを表わす。
【０１４３】
リクエスト受信部２１１が受信したリクエスト７１がテーブルＩＤ８４を含む場合、テーブルＩＤ抽出部２９３は、リクエスト７１からテーブルＩＤ８４を抽出する。
リクエスト出力値登録部２９４は、代理リクエストフラグ記憶部２１３が記憶した代理リクエストフラグに基づいて、次の周期に代理リクエスト７３を送信するか否かを判定する。
代理リクエスト７３を送信すると判定した場合、実施の形態２と同様、リクエスト出力値保持部２１８が出力値テーブル記憶部２９２からリクエスト出力値４２５を取得し、リクエスト変換部２１７が代理リクエスト７３を生成する。
【０１４４】
代理リクエスト７３を送信しないと判定した場合、リクエスト出力値登録部２９４は、リクエスト受信部２１１が受信したリクエスト７１から、そのリクエスト７１を表わすリクエスト出力値を生成する。リクエスト出力値登録部２９４は、テーブルＩＤ抽出部２９３が抽出したテーブルＩＤ８４をキーとして、出力値テーブル記憶部２９２が記憶した出力値テーブルを検索し、テーブルＩＤ８４と一致するテーブルＩＤ４１５を出力値テーブル記憶部２９２が既に記憶しているか否かを判定する。
テーブルＩＤ８４と一致するテーブルＩＤ４１５を出力値テーブル記憶部２９２が既に記憶していると判定した場合、リクエスト出力値登録部２９４は、そのテーブルＩＤ４１５に対応づけて出力値テーブル記憶部２９２が記憶しているリクエスト出力値４２５を、生成したリクエスト出力値で更新する。出力値テーブル記憶部２９２は、そのテーブルＩＤ４１５に対応づけて記憶しているリクエスト出力値４２５を削除し、その代わりとして、リクエスト出力値登録部２９４が生成したリクエスト出力値を、そのテーブルＩＤ４１５に対応づけられたリクエスト出力値４２５として記憶する。
テーブルＩＤ８４と一致するテーブルＩＤ４１５を出力値テーブル記憶部２９２がまだ記憶していないと判定した場合、リクエスト出力値登録部２９４は、テーブルＩＤ８４と、生成したリクエスト出力値とを対応づけて、出力値テーブル記憶部２９２が記憶した出力値テーブルに登録する。出力値テーブル記憶部２９２は、そのテーブルＩＤ８４をテーブルＩＤ４１５として新たに記憶し、リクエスト出力値登録部２９４が生成したリクエスト出力値を、そのテーブルＩＤ４１５に対応づけられたリクエスト出力値４２５として新たに記憶する。
【０１４５】
これにより、出力値テーブル記憶部２９２が記憶した出力値テーブルを変更することができ、組込みシステム１０の柔軟性が更に向上する。
【０１４６】
実施の形態４．
実施の形態４について、図２３〜図２４を用いて説明する。
なお、実施の形態１〜実施の形態３と共通する部分については、同一の符号を付し、説明を省略する。
【０１４７】
図２３は、この実施の形態におけるコントローラ１の機能ブロックの一例を表わす構成図である。
【０１４８】
コントローラ１は、実施の形態１で説明した機能ブロックのうち、リクエスト送信部１１１と、応答データ受信部１１５と、切替制御部１２１と、信号送受信部１３１と、制御部１４１と、周期計時部１５１とを有する。コントローラ１は、次周期リクエスト発行判定部１１２と、リクエストテーブル記憶部１１３と、次周期リクエスト未発行フラグ記憶部１１４とを有さない。
【０１４９】
応答データ受信部１１５は、応答データ７２の受信が完了したとき、切替制御部１２１に対して通知をする。
【０１５０】
切替制御部１２１は、周期計時部１５１から下り期間の開始時刻の通知を受けた場合、応答データ受信部１１５から応答データ７２の受信完了の通知を既に受けているか否かを判定する。
応答データ７２の受信が既に完了している場合、切替制御部１２１は、信号送受信部１３１を送信に切り替える指示を発行する。信号送受信部１３１は、送受信方向を切り替えて送信にする。
応答データ７２の受信がまだ完了していない場合、切替制御部１２１は、信号送受信部１３１を切り替えない。信号送受信部１３１は、受信モードを維持する。
切替制御部１２１は、送信判定部の一例である。
【０１５１】
図２４は、この実施の形態におけるプロトコル変換装置２の機能ブロックの一例を示す構成図である。
【０１５２】
プロトコル変換装置２は、実施の形態１で説明した機能ブロックのうち、リクエスト受信部２１１と、代理リクエスト発行指示部２１５と、周期計時部２１６と、リクエスト変換部２１７と、リクエスト出力値保持部２１８と、信号送信部２２１と、信号受信部２３１と、応答データ受信部２４１と、応答データ変換部２５１と、切替制御部２６１と、信号送受信部２７１とを有する。プロトコル変換装置２は、次周期リクエスト発行判定部１１２と、リクエストテーブル記憶部１１３と、次周期リクエスト未発行フラグ記憶部１１４とを有さない。
【０１５３】
リクエスト変換部２１７は、リクエスト受信部２１１が受信したリクエスト７１をプロトコル変換してセンサ機器３に対する送信を開始したとき、周期計時部２１６とに対して通知をする。
【０１５４】
周期計時部２１６は、リクエスト変換部２１７がセンサ機器３に対してリクエスト７１の送信を開始してからの経過時間を計測する。
周期計時部２１６は、リクエスト変換部２１７がセンサ機器３に対して次のリクエスト７１の送信を開始するまでの経過時間（送信間隔）を毎回計測し、センサ機器３に対するリクエスト７１の最大送信間隔を算出する。なお、周期計時部２１６は、最大送信間隔を算出するのではなく、あらかじめ設定した最大送信間隔を記憶しておく構成であってもよい。
周期計時部２１６は、リクエスト変換部２１７がセンサ機器３に対するリクエスト７１の送信を開始してからの経過時間が最大送信間隔に達したとき、代理リクエスト発行指示部２１５及び切替制御部２６１に対して通知をする。なお、周期計時部２１６は、リクエスト変換部２１７がセンサ機器３に対するリクエスト７１の送信を開始してからの経過時間が最大送信間隔に達する前にリクエスト変換部２１７からの通知を受けた場合は、経過時間をリセットするので、代理リクエスト発行指示部２１５や切替制御部２６１に対する通知はしない。
周期計時部２１６は、代理判定部の一例である。
【０１５５】
代理リクエスト発行指示部２１５は、周期計時部２１６からの通知を受けると、リクエスト変換部２１７に対して代理リクエスト７３の送信を指示する。
リクエスト変換部２１７は、代理リクエスト発行指示部２１５からの指示にしたがって、リクエスト出力値保持部２１８が記憶したリクエスト出力値に基づいて代理リクエスト７３を生成し、センサ機器３に対して送信する。
【０１５６】
切替制御部２６１は、周期計時部２１６からの通知を受けた場合、そのあとで、応答データ変換部２５１から応答データ７２の送信完了の通知を受けても、信号送受信部２７１を切り替えない。信号送受信部２７１は、送信モードを維持する。
切替制御部２６１は、応答データ変換部２５１から応答データ７２の送信完了の通知をもう一度受けた場合、信号送受信部２７１を受信に切り替える。信号送受信部２７１は、受信モードに切り替わる。二回目の応答データ７２は、リクエスト変換部２１７が送信した代理リクエスト７３に対する応答データ７２である。
【０１５７】
このように、コントローラ１は、下り期間の開始タイミングになっても、前の周期の応答データ７２の受信がまだ終わっていない場合、その周期のリクエスト７１を送信せず、応答データ７２の受信を続ける。これにより、応答データ７２を最後まで受信することができる。
コマンドＩＤ８２に基づいてあらかじめ判定をするのではなく、応答データ７２の受信が終わったか否かに基づいて、リクエスト７１の送信をするか否かを判定するので、応答データ７２の長さが不明である場合や可変長である場合でも対処することができる。
【０１５８】
プロトコル変換装置２は、最大送信間隔が経過してもまだコントローラ１からリクエスト７１を受信しない場合、代理リクエスト７３を送信する。これにより、センサ機器３が応答データ７２を返すので、コントローラ１は、リクエスト７１を送信しなくても、応答データ７２を得ることができる。
コマンドＩＤ８２に基づいてあらかじめ判定をするのではなく、リクエスト７１を受信したか否かに基づいて、代理リクエスト７３の送信をするか否かを判定するので、応答データ７２の長さが不明である場合や可変長である場合でも対処することができる。
【０１５９】
以上、各実施の形態で説明した構成は、一例であり、他の構成であってもよい。例えば、異なる実施の形態で説明した構成を組み合わせた構成であってもよいし、本質的でない部分の構成を、他の構成で置き換えた構成であってもよい。
【０１６０】
以上説明した中継装置（プロトコル変換装置２）は、要求受信部と（リクエスト受信部２１１）、要求転送部（リクエスト変換部２１７）と、代理送信部（リクエスト変換部２１７）とを有する。
上記要求受信部は、応答装置（センサ機器３）に対して応答を要求する応答要求（リクエスト７１）を要求装置（コントローラ１）から受信する。
上記要求転送部は、上記要求受信部が受信した応答要求を上記応答装置に対して送信する。
上記代理送信部は、上記要求転送部が上記応答要求を送信してから所定の時間が経過した場合に、所定の応答要求（代理リクエスト７３）を上記応答装置に対して送信する。
【０１６１】
応答要求の送信タイミングに要求装置が応答要求を送信しなくても、中継装置が要求装置に代わって所定の応答要求を応答装置に対して送信するので、適正なタイミングで次の応答要求を応答装置に対して送信することができる。要求装置が次の応答要求を送信する必要がないので、応答装置が送信した応答が長すぎる場合でも、要求装置が応答を遅延なく受信することができる。
【０１６２】
上記中継装置（２）は、更に、応答受信部（応答データ受信部２４１）と、応答転送部（応答データ変換部２５１）とを有する。
上記応答受信部は、上記応答要求（７１）に対する応答（応答データ７２）を上記応答装置（３）から受信する。
上記応答転送部は、上記応答受信部が受信した応答を上記要求装置（１）に対して送信する。
上記代理送信部（２１７）は、上記要求転送部が上記応答要求を送信してから所定の時間が経過したとき、上記応答転送部が上記応答の送信を完了していない場合に、上記所定の応答要求（７３）を上記応答装置に対して送信する。
【０１６３】
応答装置が送信した応答が長すぎる場合に、中継装置が要求装置に代わって所定の応答要求を応答装置に対して送信するので、適正なタイミングで次の応答要求を応答装置に対して送信することができる。要求装置が次の応答要求を送信する必要がないので、応答装置が送信した応答が長すぎる場合でも、要求装置が応答を遅延なく受信することができる。
【０１６４】
上記代理送信部（２１７）は、上記要求受信部（２１１）が受信した応答要求（７１）に基づいて、上記応答要求に対する応答（７２）の長さが所定の長さ以上であるか否かをあらかじめ判定し、上記応答要求に対する応答の長さが所定の長さ以上であると判定した場合に、上記要求転送部（２１７）が上記応答要求を送信してから所定の時間が経過したとき、上記所定の応答要求（７３）を上記応答装置（３）に対して送信する。
【０１６５】
応答装置が送信する応答が長すぎることを応答要求に基づいてあらかじめ判定し、中継装置が要求装置に代わって所定の応答要求を応答装置に対して送信するので、適正なタイミングで次の応答要求を応答装置に対して送信することができる。要求装置が次の応答要求を送信する必要がないので、応答装置が送信した応答が長すぎる場合でも、要求装置が応答を遅延なく受信することができる。
【０１６６】
上記要求受信部（２１１）は、次の応答要求を表わす符号（テーブルＩＤ８４）を上記応答要求（７１）とともに上記要求装置（１）から受信する。
上記代理送信部（２１７）は、上記要求転送部（２１７）が上記応答要求を転送してから所定の時間が経過したとき、上記要求受信部が受信した符号によって表わされる次の応答要求（代理リクエスト７３）を上記応答装置（３）に対して送信する。
【０１６７】
符号によって表わされる応答要求を中継装置が要求装置に代わって応答装置に対して送信するので、中継装置が送信する応答要求を変えることができ、柔軟性が高くなる。
【０１６８】
以上説明した中継システム（組込みシステム１０）は、上記中継装置（２）と、上記応答要求（７１）を上記中継装置に対して送信する要求装置（１）とを有する。
上記要求装置は、要求送信部（リクエスト送信部１１１）と、応答受信部（応答データ受信部１１５）と、送信判定部（次周期リクエスト発行判定部１１２）とを有する。
上記要求送信部は、上記応答要求を上記中継装置に対して送信する。
上記要求装置の応答受信部は、上記応答要求に対する応答（応答データ７２）を受信する。
上記送信判定部は、上記応答要求を送信するか否かの判定を所定の周期で繰り返し、判定時に上記要求装置の応答受信部が上記応答の受信を完了している場合に、次の応答要求を送信すると判定する。
上記要求送信部は、上記応答要求を送信すると上記送信判定部が判定した場合に、上記応答要求を送信する。
【０１６９】
応答装置が送信した応答が長すぎる場合に、要求装置が次の応答要求を送信しないので、前の応答要求に対する応答を、遅延なく正しく受信することができる。
【０１７０】
上記送信判定部（１１２）は、上記要求送信部（１１１）が送信した応答要求（７１）に基づいて、上記応答要求に対する応答（７２）の長さが所定の長さ以上であるか否かをあらかじめ判定し、上記応答要求に対する応答の長さが所定の長さ以上でないと判定した場合に、次の応答要求を送信すると判定する。
【０１７１】
応答装置が送信する応答が長すぎることをあらかじめ判定し、要求装置が次の応答要求を送信しないので、前の応答要求に対する応答を、遅延なく正しく受信することができる。
【０１７２】
上記要求送信部（１１１）は、送信する応答要求（７１）に基づいて、上記応答要求に対する応答（７２）の長さが所定の長さ以上であるか否かをあらかじめ判定し、上記応答要求に対する応答の長さが所定の長さ以上であると判定した場合に、次の応答要求を表わす符号（テーブルＩＤ８４）を上記応答要求とともに上記中継装置（２）に対して送信する。
【０１７３】
符号によって表わされる応答要求を中継装置が要求装置に代わって応答装置に対して送信するので、中継装置が送信する応答要求を変えることができ、柔軟性が高くなる。
【０１７４】
以上説明した中継方法（プロトコル変換方法）は、要求装置（１）が応答装置（３）に対して応答を要求する応答要求（７１）を中継装置（２）が中継する。
上記要求装置が、上記応答要求を上記中継装置に対して送信する。
上記中継装置が、上記応答要求を上記要求装置から受信する。
上記中継装置が、上記応答要求を上記応答装置に対して送信する。
上記中継装置が上記応答要求を上記応答装置に対して送信してから所定の時間が経過した場合に、上記中継装置が、所定の応答要求（７３）を上記応答装置に対して送信する。
【０１７５】
応答要求の送信タイミングに要求装置が応答要求を送信しなくても、中継装置が要求装置に代わって所定の応答要求を応答装置に対して送信するので、適正なタイミングで次の応答要求を応答装置に対して送信することができる。要求装置が次の応答要求を送信する必要がないので、応答装置が送信した応答が長すぎる場合でも、要求装置が応答を遅延なく受信することができる。
【符号の説明】
【０１７６】
１  コントローラ、２  プロトコル変換装置、３  センサ機器、１０  組込みシステム、７１  リクエスト、７２  応答データ、７３  代理リクエスト、８１  スタートビット、８２，４１１，４１２  コマンドＩＤ、８３  引数、８４，４１５  テーブルＩＤ、８５  基本データ、８６  付加データ、８８  誤り検出符号、８９  ストップビット、９１，９２  バス、１１１  リクエスト送信部、１１２  次周期リクエスト発行判定部、１１３，２１４  リクエストテーブル記憶部、１１４  次周期リクエスト未発行フラグ記憶部、１１５，２４１  応答データ受信部、１２１，２６１  切替制御部、１３１，２７１  信号送受信部、１４１  制御部、１５１，２１６  周期計時部、２１１  リクエスト受信部、２１２  代理リクエスト判定部、２１３  代理リクエストフラグ記憶部、２１５  代理リクエスト発行指示部、２１７  リクエスト変換部、２１８  リクエスト出力値保持部、２２１  信号送信部、２３１  信号受信部、２５１  応答データ変換部、２９２  出力値テーブル記憶部、２９３  テーブルＩＤ抽出部、２９４  リクエスト出力値登録部、４２１，４２２  次周期リクエスト発行フラグ、４２５  リクエスト出力値、４５１〜４５３  周期、４６１〜４６３  下り期間、４７１〜４７３  上り期間、Ｓ５０  リクエスト送信処理、Ｓ５０１，Ｓ５０７  切替タイミング待ち工程、Ｓ５０２，Ｓ５５４  送信切替工程、Ｓ５０３，Ｓ５８２  送信タイミング待ち工程、Ｓ５０４，Ｓ５８３  リクエスト送信工程、Ｓ５０５  次送信判定工程、Ｓ５０６  フラグセット工程、Ｓ５０８，Ｓ５５１  受信切替工程、Ｓ５１  応答受信処理、Ｓ５１１，Ｓ５５２，Ｓ５７１  受信待ち工程、Ｓ５１２  応答受信工程、Ｓ５２  送信判定処理、Ｓ５２１  フラグ判定工程、Ｓ５２２  フラグクリア工程、Ｓ５５  リクエスト転送処理、Ｓ５５３  リクエスト転送工程、Ｓ５６  代理判定処理、Ｓ５６１  代理判定工程、Ｓ５６２  計時開始工程、Ｓ５７，Ｓ５９  応答転送処理、Ｓ５７２  応答転送工程、Ｓ５８  代理送信処理、Ｓ５８１  リクエスト取得工程、Ｓ６０  リクエスト受信処理、Ｓ６１  応答送信処理。
【図１】
0005866095.tif 000002
【図２】
0005866095.tif 000003
【図３】
0005866095.tif 000004
【図４】
0005866095.tif 000005
【図５】
0005866095.tif 000006
【図６】
0005866095.tif 000007
【図７】
0005866095.tif 000008
【図８】
0005866095.tif 000009
【図９】
0005866095.tif 000010
【図１０】
0005866095.tif 000011
【図１１】
0005866095.tif 000012
【図１２】
0005866095.tif 000013
【図１３】
0005866095.tif 000014
【図１４】
0005866095.tif 000015
【図１５】
0005866095.tif 000016
【図１６】
0005866095.tif 000017
【図１７】
0005866095.tif 000018
【図１８】
0005866095.tif 000019
【図１９】
0005866095.tif 000020
【図２０】
0005866095.tif 000021
【図２１】
0005866095.tif 000022
【図２２】
0005866095.tif 000023
【図２３】
0005866095.tif 000024
【図２４】
0005866095.tif 000025