(57)【要約】【課題】上位のマスタ装置（情報制御装置）にシリアル伝送ケーブルでシリアル接続された複数のスレーブ装置（機器）において、各スレーブ装置に搭載されたＭＰＵのソフトウェアの更新を行う際に、特定のスレーブ装置に異常が生じても極力短時間で更新を行うこと。【解決手段】マスタ装置２０で、プログラムデータを分割したブロックデータに送信先スレーブ番号を付与し、１ブロックずつ、各スレーブ装置２４−１〜２４−１０へ一斉同報送信した後、各スレーブ装置で、自スレーブ番号が付与されたブロックデータのみを受信する。応答データから各スレーブ装置でのブロックデータの受信や書込み等の異常を確認して記憶し、次以降のブロックデータの一斉同報送信を順次進め、全ブロックデータの送信終了後に、先に記憶した異常情報に係る例えばスレーブ装置２４−２のみが再度ブロックデータを受信できるように一斉同報送信する。【選択図】      図１
2005025519.tif 000002
【特許請求の範囲】
【請求項１】
各々が専用のコンピュータで制御される複数のスレーブ装置を、上位のマスタ装置にシリアル伝送ケーブルでシリアル接続し、前記コンピュータが制御のために用いる不揮発性メモリに記憶されたプログラムデータを、前記マスタ装置から送信して書き換えるコンピュータ制御システムにおいて、
前記マスタ装置は、
前記プログラムデータを所定バイト単位で複数のブロックデータに分割する分割手段と、
前記分割手段で分割された送信対象のブロックデータに送信先のスレーブ装置固有のスレーブ番号を付与する付与手段と、
前記付与手段でスレーブ番号が付与されたブロックデータを１ブロックずつ複数のスレーブ装置へ一斉同報送信する第１の送信手段と、
前記スレーブ装置へのブロックデータの送受信及び前記不揮発性メモリへの書込みに関わる正常性を問い合わせる確認データを送信する第２の送信手段と、
前記確認データに応答してスレーブ装置から返信されて来る応答データを受信する第１の受信手段と、
前記第１の受信手段で受信された応答データを確認することにより、当該スレーブ装置へのブロックデータの送受信異常、前記不揮発性メモリへの書込み異常、及び無応答異常の少なくとも１つの異常を確認する確認手段と、
前記確認手段で異常が確認された際に、その異常確認のために参照された応答データの送信元スレーブ装置のスレーブ番号と、当該スレーブ装置へ送信されたブロックデータのブロック番号とを対応付けて記憶手段に記憶する記憶制御手段と、
前記分割手段で分割された全ブロックデータの送信終了時に、前記記憶手段にブロック番号及びスレーブ番号が記憶されている場合、前記付与手段との連携によって、その記憶されたブロック番号のブロックデータに、当該ブロック番号に対応付けられた１乃至は複数のスレーブ番号を付与し、前記第１の送信手段から一斉同報送信されるように制御する再送制御手段とを備え、
前記複数のスレーブ装置は、
前記第１の送信手段からのブロックデータに、自スレーブ装置のスレーブ番号が付与されている場合にのみに、そのブロックデータを受信する第２の受信手段と、
前記確認データの受信時に、前記応答データを前記マスタ装置へ返信する第３の送信手段とを備えた
ことを特徴とするコンピュータ制御システム。
【請求項２】
前記マスタ装置は、
前記第１の送信手段で前記ブロックデータが送信された時点から、当該ブロックデータが前記複数のスレーブ装置の少なくとも１つで受信された後、前記不揮発性メモリに書き込まれる時点までの時間を計時する計時手段を更に備え、
前記第２の送信手段は、前記計時手段での計時が終了した時点で、前記確認データを送信する
ことを特徴とする請求項１に記載のコンピュータ制御システム。
【請求項３】
前記計時手段は、前記第１の送信手段から前記ブロックデータが送信された時点から、当該ブロックデータが前記複数のスレーブ装置のうち前記マスタ装置に最短に接続されたスレーブ装置で受信された後、当該スレーブ装置の前記不揮発性メモリに書き込まれる時点までの時間を計時する
ことを特徴とする請求項２に記載のコンピュータ制御システム。
【請求項４】
前記第２の送信手段は、最初に前記計時手段での計時が終了した時点で前記確認データを該当スレーブ装置に送信し、この送信後は、前記第１の受信手段で前記応答データが受信された後に、当該応答データを返信したスレーブ装置の後段のスレーブ装置へ確認データを送信する処理を、全てのスレーブ装置へ前記確認データが送信されるまで繰り返す
ことを特徴とする請求項１から３の何れか１項に記載のコンピュータ制御システム。
【請求項５】
各々が専用のコンピュータで制御される複数のスレーブ装置を、上位のマスタ装置にシリアル伝送ケーブルでシリアル接続し、前記コンピュータが制御のために用いる不揮発性メモリに記憶されたプログラムデータを、前記マスタ装置から送信して書き換えるソフトウェア書き換え方法において、
前記マスタ装置は、
前記プログラムデータを所定バイト単位で複数のブロックデータに分割する分割ステップと、
前記分割ステップで分割された送信対象のブロックデータに送信先のスレーブ装置固有のスレーブ番号を付与する付与ステップと、
前記付与ステップでスレーブ番号が付与されたブロックデータを１ブロックずつ複数のスレーブ装置へ一斉同報送信する第１の送信ステップと、
前記スレーブ装置へのブロックデータの送受信及び前記不揮発性メモリへの書込みに関わる正常性を問い合わせる確認データを送信する第２の送信ステップと、
前記確認データに応答してスレーブ装置から返信されて来る応答データを受信する第１の受信ステップと、
前記第１の受信ステップで受信された応答データを確認することにより、当該スレーブ装置へのブロックデータの送受信異常、前記不揮発性メモリへの書込み異常、及び無応答異常の少なくとも１つの異常を確認する確認ステップと、
前記確認手段で異常が確認された際に、その異常確認のために参照された応答データの送信元スレーブ装置のスレーブ番号と、当該スレーブ装置へ送信されたブロックデータのブロック番号とを対応付けて記憶手段に記憶する記憶ステップと、
前記分割手段で分割された全ブロックデータの送信終了時に、前記記憶手段にブロック番号及びスレーブ番号が記憶されている場合、前記付与手段との連携によって、その記憶されたブロック番号のブロックデータに、当該ブロック番号に対応付けられた１乃至は複数のスレーブ番号を付与し、前記第１の送信ステップにおいて一斉同報送信されるように制御する再送ステップとを含み、
前記複数のスレーブ装置は、
前記第１の送信ステップで送信されたブロックデータに、自スレーブ装置のスレーブ番号が付与されている場合にのみに、そのブロックデータを受信する第２の受信ステップと、
前記確認データの受信時に、前記応答データを前記マスタ装置へ返信する第３の送信ステップとを含む
ことを特徴とするソフトウェア書き換え方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＭＰＵ（マイクロコンピュータ）を有する電鉄車両用のドア制御装置や磁気浮上装置などの複数の同一機器を、シリアル伝送ケーブルで上位の情報制御装置に接続してコントロールするコンピュータ制御システムおよびソフトウェア書き換え方法に関し、特に、ＭＰＵの不揮発性メモリに記憶される制御用ソフトウェアの更新を高速に行うコンピュータ制御システムおよびソフトウェア書き換え方法に関する。
【０００２】
【従来の技術】
従来のコンピュータ制御システムとして、例えば、図６に示す半二重方式のシリアル伝送システムがある。このシステムは、上位のマスタ装置（情報制御装置）１０にシリアル伝送ケーブル１２で、第１〜第１０のスレーブ装置（機器）１４−１〜１４−１０がシリアルに接続されて構成されている。
【０００３】
但し、各スレーブ装置１４−１〜１４−１０は、全て同一の機器である。各々のスレーブ装置１４−１〜１４−１０は、自装置の制御を司るＭＰＵを備えており、マスタ装置１０からのデータを受け取った特定のスレーブ装置１４−１〜１４−１０がデータ受信終了後に、バス制御を受信から送信に切り替え、マスタ装置１０へ応答データの送信を行うようになっている。
【０００４】
図７に、図６に示すシステムにおける半二重方式での伝送タイミングを示す。但し、図７にはマスタ装置をマスタ、スレーブ装置をスレーブと記載した。
タイミングｔ１において、マスタ装置１０は、第１のスレーブ装置１４−１へデータを送信する。タイミングｔ２において、第１のスレーブ装置１４−１は、そのデータに対する応答データを、マスタ装置１０へ返信する。
【０００５】
次に、タイミングｔ３において、マスタ装置１０は、第２のスレーブ装置１４−２へデータを送信する。タイミングｔ４において、第２のスレーブ装置１４−２は、そのデータに対する応答データを、マスタ装置１０へ返信する。
次に、タイミングｔ５において、マスタ装置１０は、第３のスレーブ装置１４−３へデータを送信する。タイミングｔ６において、第３のスレーブ装置１４−３は、そのデータに対する応答データを、マスタ装置１０へ返信する。以降同様に、マスタ装置１０と、第４〜第１０のスレーブ装置１４−４〜１４−１０との間で、データ送信および応答データの返信が行われる。
【０００６】
この様に、常時、マスタ装置１０からのデータ送信に対して、必ず１つのスレーブ装置が応答を行っている。この代表的なものに、通信プロトコルの１つである半二重、同期式で、伝送ブロックの先頭に同期用の２つのキャラクタ（ＳＹＮキャラクタ）を付加して同期をとるＢＩＳＹＮＣ（バイシンク）が知られている。
【０００７】
次に、各スレーブ装置１４−１〜１４−１０のＭＰＵが用いるソフトウェアの更新を行う処理を説明する。なお、ソフトウェアは、各スレーブ装置１４−１〜１４−１０の不揮発性メモリであるフラッシュＲＯＭに記憶されているものとする。
ソフトウェアのデータ（以下、プログラムデータともいう）を、フラッシュＲＯＭに書き込む場合は、１バイト単位の書き込みやページ単位での書き込みがある。例えば、（３２バイト／１ぺージ）単位の書き込みを行う場合、プログラムデータを３２バイト単位のブロック（以下、ブロックデータという）に分割し、マスタ装置１０から各スレーブ装置１４−１〜１４−１０に対して、３２バイトずつ送信して、ＭＰＵでフラッシュＲＯＭに書き込みを行なえば良い。
【０００８】
しかし、高速化させるために、１回の送信では、上記の書き込み単位の整数倍ｎの単位で送信を行っている。例えば、ｎ＝３とすると、１ブロックデータの大きさは、３２×３＝９６バイトとなる。この場合、１ブロックデータは、実際の伝送では、図８に示す送信フレームＦのデータ部Ｆ４に示すように、分割された１ブロックデータを識別するためのブロック番号（上位および下位の合計２バイト）と、そのブロック長でのチェックサム（上位および下位の合計２バイト）とを付加して、１００バイトで構成される。
【０００９】
図８に示す送信フレームＦは、マスタ装置１０からプログラムデータを実際に送信するための一構成例であり、１バイトのフラグデータＦ１と、１バイトの送信先アドレスＦ２と、２バイトの制御コマンドＦ３と、上記の１００バイトのデータ部Ｆ４と、２バイトのフレーム検査シーケンスＦ５と、１バイトのフラグデータＦ６とから構成されている。
【００１０】
従って、上記のように、ｎの値を大きくすれば、伝送回数も少なくなり、その結果として、ソフトウェア書き換え時間も短くなる。しかし、実際には、マスタ装置１０におけるＣＰＵ上のＲＡＭ容量の制約で、それほど大きい値は取れない。このためｎの値を極端に大きくすることはできない。
次に、９６バイトのサイズの１ブロックデータ単位で送信を行って、各スレーブ装置１４−１〜１４−１０のＭＰＵが用いるソフトウェアの更新を行う処理を、図９を参照して説明する。なお、ソフトウェアは、各スレーブ装置１４−１〜１４−１０の不揮発性メモリであるフラッシュＲＯＭに記憶されているものとする。
【００１１】
まず、タイミングｔ１１において、マスタ装置１０から第１のスレーブ装置１４−１に対して、第１のブロックデータの９６バイト分を送信する。タイミングｔ１２において、第１のスレーブ装置１４−１は、そのデータを正常に受信したことを示す正常受信応答を、マスタ装置１０へ返信する。
また、第１のスレーブ装置１４−１は、そのデータ受信後に、受信した第１のブロックデータをフラッシュＲＯＭに書き込む。その受信ブロックデータは、９６バイトであるが、１回の書き込み単位は、当該ＭＰＵでは３２バイトなので、３回に分けて書き込みを行っている。
【００１２】
正常受信応答を受けたマスタ装置１０は、タイミングｔ１３において、第１のスレーブ装置１４−１に対して、第１のブロックデータに対する書き込みが完了したか否かの問い合わせ（書込完了確認）を行う。
この書込完了確認のデータを受けた第１のスレーブ装置１４−１は、タイミングｔ１４において、第１のブロックデータの書込みが正常に終了したことを示す書込正常終了応答（Ａｃｋ）を、マスタ装置１０へ返信する。ここで仮に書き込み異常であれば、マスタ装置１０へ書込みの異常（Ｎａｃｋ）を返信する。異常の返信は、タイミングｔ１２におけるブロックデータ受信の応答においても行われるようになっている。
【００１３】
次に、タイミングｔ１５において、マスタ装置１０から第１のスレーブ装置１４−１に対して、第２のブロックデータの９６バイト分を送信する。タイミングｔ１６において、第１のスレーブ装置１４−１は、そのデータを正常に受信したことを示す正常受信応答を、マスタ装置１０へ返信する。また、第１のスレーブ装置１４−１は、そのデータ受信後に、受信した第２のブロックデータをフラッシュＲＯＭに書き込む。
【００１４】
正常受信応答を受けたマスタ装置１０は、タイミングｔ１７において、第１のスレーブ装置１４−１に対して、第２のブロックデータに対する書込完了確認を行う。この書込完了確認のデータを受けた第１のスレーブ装置１４−１は、タイミングｔ１８において、第２のブロックデータの書込みが正常に終了した場合、書込正常終了応答（ＡＣＫ）を、マスタ装置１０へ返信する。
【００１５】
以降、このような処理の繰り返しが、第１のスレーブ装置１４−１に対する残りのプログラムデータ書き換え終了まで続けられる。更に、第１のスレーブ装置１４−１のプログラムデータ書き換え終了後に、次の第２のスレーブ装置１４−２に対するプログラムデータの書き換えが行われ、以降同様に、第３〜第１０のスレーブ装置１４−３〜１４−１０に対して順次プログラムデータの書き換えが行われる。
この種の従来のコンピュータ制御システムとして、例えば特許文献１に記載のものがある。
【００１６】
【特許文献１】
特開平１１−１７７１２号公報
【００１７】
【発明が解決しようとする課題】
しかし、従来のコンピュータ制御システムにおいては、各々のスレーブ装置１４−１〜１４−１０において、受信ブロックデータをフラッシュＲＯＭに書き込む場合、３回に分けて書き込みを行っているので書き込みに時間がかかる。この書き込み中に、仮に図９に示したタイミングｔ１３の書込完了確認がマスタ装置１０から送信されてきたとすると、スレーブ装置は、その書込完了確認のデータを受信することができないので、当然応答もできない。
【００１８】
この結果、その書込完了確認のデータ送信は失敗することになるので、マスタ装置１０は、一定時間経過後に書込完了確認のデータを再送しなければならない。このような再送の発生によって、各々のスレーブ装置１４−１〜１４−１０に搭載されたＭＰＵのソフトウェアの更新処理に時間がかかるという問題がある。
このソフトウェアの更新処理の時間は、先の再送が頻繁に発生するほどに長くかかり、また、スレーブ装置１４−１〜１４−１０である機器の台数が多いほどに長くかかる。更に、ソフトウェアの量（バイト数）が増加するほどに長くかかる。
【００１９】
ところで、ソフトウェアの更新処理の時間を短くするために、ブロックデータを全てのスレーブ装置１４−１〜１４−１０へ一斉同報送信する方式も考えられる。しかし、この場合、全スレーブ装置１４−１〜１４−１０からブロックデータの正常受信終了の応答が返信されるまでは、次のブロックデータを一斉同報送信することができない。
【００２０】
何故ならば、一斉同報送信の場合、全てのスレーブ装置１４−１〜１４−１０に同じブロックデータを送信するので、途中、ブロックデータの受信や書込み異常が生じたスレーブ装置を無視して、次のブロックデータの一斉同報送信を行うと、その異常スレーブ装置に対して適正なソフトウェアの更新を行うことができなくなるからである。
【００２１】
本発明は、このような課題に鑑みてなされたものであり、上位のマスタ装置（情報制御装置）にシリアル伝送ケーブルでシリアル接続された複数のスレーブ装置（機器）において、各スレーブ装置に搭載されたＭＰＵのソフトウェアの更新を行う際に、特定のスレーブ装置に異常が生じても極力短時間で更新を行うことができるコンピュータ制御システムおよびソフトウェア書き換え方法を提供することを目的としている。
【００２２】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１によるコンピュータ制御システムは、各々が専用のコンピュータで制御される複数のスレーブ装置を、上位のマスタ装置にシリアル伝送ケーブルでシリアル接続し、前記コンピュータが制御のために用いる不揮発性メモリに記憶されたプログラムデータを、前記マスタ装置から送信して書き換えるコンピュータ制御システムにおいて、前記マスタ装置は、前記プログラムデータを所定バイト単位で複数のブロックデータに分割する分割手段と、前記分割手段で分割された送信対象のブロックデータに送信先のスレーブ装置固有のスレーブ番号を付与する付与手段と、前記付与手段でスレーブ番号が付与されたブロックデータを１ブロックずつ複数のスレーブ装置へ一斉同報送信する第１の送信手段と、前記スレーブ装置へのブロックデータの送受信及び前記不揮発性メモリへの書込みに関わる正常性を問い合わせる確認データを送信する第２の送信手段と、前記確認データに応答してスレーブ装置から返信されて来る応答データを受信する第１の受信手段と、前記第１の受信手段で受信された応答データを確認することにより、当該スレーブ装置へのブロックデータの送受信異常、前記不揮発性メモリへの書込み異常、及び無応答異常の少なくとも１つの異常を確認する確認手段と、前記確認手段で異常が確認された際に、その異常確認のために参照された応答データの送信元スレーブ装置のスレーブ番号と、当該スレーブ装置へ送信されたブロックデータのブロック番号とを対応付けて記憶手段に記憶する記憶制御手段と、前記分割手段で分割された全ブロックデータの送信終了時に、前記記憶手段にブロック番号及びスレーブ番号が記憶されている場合、前記付与手段との連携によって、その記憶されたブロック番号のブロックデータに、当該ブロック番号に対応付けられた１乃至は複数のスレーブ番号を付与し、前記第１の送信手段から一斉同報送信されるように制御する再送制御手段とを備え、前記複数のスレーブ装置は、前記第１の送信手段からのブロックデータに、自スレーブ装置のスレーブ番号が付与されている場合にのみに、そのブロックデータを受信する第２の受信手段と、前記確認データの受信時に、前記応答データを前記マスタ装置へ返信する第３の送信手段とを備えたことを特徴としている。
【００２３】
この構成によれば、マスタ装置においてプログラムデータを分割したブロックデータに送信先のスレーブ番号を付与し、１ブロックずつ、各スレーブ装置へ一斉同報送信したのち、スレーブ装置において、自スレーブ番号が付与されたブロックデータのみを受信する。更に、応答データからスレーブ装置でのブロックデータの受信や書込みなどの異常が生じても、この異常情報を記憶しておき、次以降のブロックデータの一斉同報送信を順次進め、全ブロックデータの送信終了後に、先に記憶した異常情報に係るスレーブ装置のみが再度ブロックデータを受信できるように一斉同報送信するようにした。
【００２４】
これによって、従来のようにスレーブ装置個別にブロックデータを送信してソフトウェアの更新を行うよりも短時間で更新を行うことができ、また、分割されたブロックデータのうち途中のブロックデータ送信時に特定のスレーブ装置に異常が生じても、この異常に関係なく他の正常なスレーブ装置に対しては、次のブロックデータの送信を進めることができる。また、全ブロックデータの送信終了後に、異常スレーブ装置のみに対してブロックデータを再送することができるので、先の異常が一時的な異常であれば、今回の再送によってブロックデータを正常に送信してソフトウェアの更新を行うことが可能である。
【００２５】
また、従来のように、１ブロックデータを送信後に、このブロックデータの正常受信を確認し、正常であれば正常書込みの確認を行った後に、次のブロックデータを送信するといった処理ではなく、１ブロックデータを一斉同報送信した後に、確認データと応答データとの送受信によってブロックデータの書込みを確認するようにしたので、マスタ装置とスレーブ装置とのアクセス回数を減少させることができる。
【００２６】
また、本発明の請求項２によるコンピュータ制御システムは、前記マスタ装置は、請求項１において、前記第１の送信手段で前記ブロックデータが送信された時点から、当該ブロックデータが前記複数のスレーブ装置の少なくとも１つで受信された後、前記不揮発性メモリに書き込まれる時点までの時間を計時する計時手段を更に備え、前記第２の送信手段は、前記計時手段での計時が終了した時点で、前記確認データを送信することを特徴としている。
【００２７】
この構成によれば、マスタ装置から送信されたブロックデータがスレーブ装置で受信されて書き込まれた後に確認データを送信し、これをスレーブ装置で受信した後に応答データを返信することができるので、従来のように、不揮発性メモリへの書き込み中に、マスタ装置から確認データが送信されることによってスレーブ装置で、それを受信できず、マスタ装置が一定時間経過後に確認データの再送を行うといったことがなくなる。これによって、無駄な確認データの再送を無くすことができる。
【００２８】
また、本発明の請求項３によるコンピュータ制御システムは、請求項２において、前記計時手段は、前記第１の送信手段から前記ブロックデータが送信された時点から、当該ブロックデータが前記複数のスレーブ装置のうち前記マスタ装置に最短に接続されたスレーブ装置で受信された後、当該スレーブ装置の前記不揮発性メモリに書き込まれる時点までの時間を計時することを特徴としている。
この構成によれば、マスタ装置からブロックデータを送信後に、確認データを送信するまでの時間が短くなるので、その分、全体のアクセス時間を短縮することができる。
【００２９】
また、本発明の請求項４によるコンピュータ制御システムは、請求項１から３の何れか１項において、前記第２の送信手段は、最初に前記計時手段での計時が終了した時点で前記確認データを該当スレーブ装置に送信し、この送信後は、前記第１の受信手段で前記応答データが受信された後に、当該応答データを返信したスレーブ装置の後段のスレーブ装置へ確認データを送信する処理を、全てのスレーブ装置へ前記確認データが送信されるまで繰り返すことを特徴としている。
この構成によれば、全てのスレーブ装置において、不揮発性メモリへのブロックデータの書込みが確実に終了した後に、確認データと応答データとの送受信のみで、ブロックデータの書込み完了を確認することができるので、その確認動作を短時間で行うことができる。
【００３０】
また、本発明の請求項５によるソフトウェア書き換え方法は、各々が専用のコンピュータで制御される複数のスレーブ装置を、上位のマスタ装置にシリアル伝送ケーブルでシリアル接続し、前記コンピュータが制御のために用いる不揮発性メモリに記憶されたプログラムデータを、前記マスタ装置から送信して書き換えるソフトウェア書き換え方法において、前記マスタ装置は、前記プログラムデータを所定バイト単位で複数のブロックデータに分割する分割ステップと、前記分割ステップで分割された送信対象のブロックデータに送信先のスレーブ装置固有のスレーブ番号を付与する付与ステップと、前記付与ステップでスレーブ番号が付与されたブロックデータを１ブロックずつ複数のスレーブ装置へ一斉同報送信する第１の送信ステップと、前記スレーブ装置へのブロックデータの送受信及び前記不揮発性メモリへの書込みに関わる正常性を問い合わせる確認データを送信する第２の送信ステップと、前記確認データに応答してスレーブ装置から返信されて来る応答データを受信する第１の受信ステップと、前記第１の受信ステップで受信された応答データを確認することにより、当該スレーブ装置へのブロックデータの送受信異常、前記不揮発性メモリへの書込み異常、及び無応答異常の少なくとも１つの異常を確認する確認ステップと、前記確認手段で異常が確認された際に、その異常確認のために参照された応答データの送信元スレーブ装置のスレーブ番号と、当該スレーブ装置へ送信されたブロックデータのブロック番号とを対応付けて記憶手段に記憶する記憶ステップと、前記分割手段で分割された全ブロックデータの送信終了時に、前記記憶手段にブロック番号及びスレーブ番号が記憶されている場合、前記付与手段との連携によって、その記憶されたブロック番号のブロックデータに、当該ブロック番号に対応付けられた１乃至は複数のスレーブ番号を付与し、前記第１の送信ステップにおいて一斉同報送信されるように制御する再送ステップとを含み、前記複数のスレーブ装置は、前記第１の送信ステップで送信されたブロックデータに、自スレーブ装置のスレーブ番号が付与されている場合にのみに、そのブロックデータを受信する第２の受信ステップと、前記確認データの受信時に、前記応答データを前記マスタ装置へ返信する第３の送信ステップとを含むことを特徴としている。
【００３１】
この方法によれば、従来のようにスレーブ装置個別にブロックデータを送信してソフトウェアの更新を行うよりも短時間で更新を行うことができ、また、分割されたブロックデータのうち途中のブロックデータ送信時に特定のスレーブ装置に異常が生じても、この異常に関係なく他の正常なスレーブ装置に対しては、次のブロックデータの送信を進めることができる。また、全ブロックデータの送信終了後に、異常スレーブ装置のみに対してブロックデータを再送することができるので、先の異常が一時的な異常であれば、今回の再送によってブロックデータを正常に送信してソフトウェアの更新を行うことが可能である。また、従来のように、１ブロックデータを送信後に、このブロックデータの正常受信を確認し、正常であれば正常書込みの確認を行った後に、次のブロックデータを送信するといった処理ではなく、１ブロックデータを一斉同報送信した後に、確認データと応答データとの送受信によってブロックデータの書込みを確認するようにしたので、マスタ装置とスレーブ装置とのアクセス回数を減少させることができる。
【００３２】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
（実施の形態）
図１は、本発明の実施の形態に係るコンピュータ制御システムの構成を示す図である。
図１に示す本実施の形態のコンピュータ制御システムは、上位のマスタ装置（情報制御装置）２０にシリアル伝送ケーブル１２で、第１〜第１０のスレーブ装置（機器）２４−１〜２４−１０がシリアルに接続されて構成されている。但し、各スレーブ装置２４−１〜２４−１０は、全て同一の機器である。
【００３３】
マスタ装置２０は、プログラム書換モード設定部３０と、プログラム分割部３２と、一斉同報送信部３４と、計時部３６と、確認データ送信部３８と、応答データ受信部４０と、確認部４２と、異常内容記憶制御部４５と、記憶部４６と、これら構成要素３０〜４２の制御を司ると共に、機器番号付与部４３ａ及び再送制御部４３ｂを有する制御管理部４３と、ケーブル接続インタフェース部４４とを備えて構成されている。
【００３４】
各々のスレーブ装置２４−１〜２４−１０は、ケーブル接続インタフェース部５０と、プログラム受信部５２と、確認データ受信部５４と、応答データ送信部５６と、プログラム書込制御部５８と、ＭＰＵ６０と、不揮発性メモリのフラッシュＲＯＭ６２とを備えて構成されている。
次に、これらの構成要素の説明を行う。
【００３５】
各ケーブル接続インタフェース部４４，５０は、マスタ装置２０と各スレーブ装置１４−１〜１４−１０とを、シリアル伝送ケーブル１２でシリアル接続するためのものである。
プログラム書換モード設定部３０は、図示せぬキーボードなどの入力手段からのプログラム書換命令に応じた制御管理部４３の制御によって、プログラム書換モードが設定されるものである。プログラム書換モードである場合は、例えば「１」が設定され、プログラム書換モードでない場合は「０」が設定される。
【００３６】
プログラム分割部３２は、プログラム書換モード設定部３０にプログラム書換モード「１」が設定された際に、各々のスレーブ装置２４−１〜２４−１０のフラッシュＲＯＭ６２に書き込まれるプログラムデータ（ソフトウェアのデータ）を、所定バイト単位ずつ複数のブロックデータに分割し、この分割されたブロックデータを小さいブロック番号順に配列するものである。
【００３７】
機器番号付与部４３ａは、送信対象のブロックデータに送信先のスレーブ装置２４−１〜２４−１０の固有番号（スレーブ番号）を付与するものである。
一斉同報送信部３４は、プログラム分割部３２で分割された複数のブロックデータの１ブロックデータを、全スレーブ装置２４−１〜２４−１０へ一斉同報送信するものである。
計時部３６は、一斉同報送信部３４よりブロックデータが送信された時点から、当該ブロックデータが各スレーブ装置２４−１〜２４−１０で受信された後、フラッシュＲＯＭ６２に書き込まれる時点までの時間を計時するものである。
【００３８】
例えば、図２に示すように、マスタ装置２０から全てのスレーブ装置２４−１〜２４−１０へブロックデータが送信された時点Ｐ１から先頭の（第１の）スレーブ装置２４−１において、そのブロックデータの書込みが終了する時点Ｐ２までの時間（以下、アクセス完了時間という）ｔｍ１を計時する。このアクセス完了時間ｔｍ１は、予め計測されて求められている。すなわち、ブロックデータの送信開始時点Ｐ１からタイマが計時動作を開始し、予め計測された時間Ｐ２になるとカウントアップするようになっている。
【００３９】
確認モード設定部３７は、制御管理部４３の制御によって、アクセス完了時間ｔｍ１の計時が完了した時点で、確認モードが設定されるものである。確認モードである場合は、例えば「１」が設定され、確認モードでない場合は「０」が設定される。
確認データ送信部３８は、確認モード設定部３７に確認モードの「１」が設定された時点で、ブロックデータが正常に受信され、この受信ブロックデータのフラッシュＲＯＭ６２への書込みが正常に終了したか否かを問い合わせる確認データを、先頭のスレーブ装置２４−１へ送信する。この送信後は、スレーブ装置２４−１から応答データが返信され、この応答データが正常であることを示す場合に、次の段のスレーブ装置２４−２〜２４−１０へ順次、確認データを送信するようになっている。なお、確認データは、コマンド形式のデータであるとする。
【００４０】
応答データ受信部４０は、確認データ送信部３８から送信された確認データに対する応答データを、各スレーブ装置１４−１〜１４−１０から受信するものである。
確認部４２は、応答データ受信部４０で受信された応答データから各スレーブ装置１４−１〜１４−１０においてブロックデータが正常に受信されたか否か（伝送異常の有無）、その受信ブロックデータのフラッシュＲＯＭ６２への書込みが正常に終了したか否か（書込み異常の有無）を確認するものである。つまり、応答データに伝送異常又は書込み異常が示されている場合や、応答データ自体が送信されて来ない無応答による異常発生を確認する。
【００４１】
異常内容記憶制御部４５は、確認部４２で応答データの受信に応じて異常発生が確認された際に、その応答データの送信元のスレーブ装置２４−１〜２４−１０のスレーブ番号と、このスレーブ番号のスレーブ装置２４−１〜２４−１０へ送信したブロックデータの番号（ブロック番号）とを対に、記憶部４６に記憶する制御を行うものである。
【００４２】
ここで、記憶部４６に記憶されるブロック番号とスレーブ番号は複数存在する場合もある。つまり、ある１つのブロックデータの受信時に複数のスレーブ装置２４−１〜２４−１０で異常が生じた場合は、そのブロック番号に複数のスレーブ装置２４−１〜２４−１０のスレーブ番号が対に記憶されることになる。
再送制御部４３ｂは、プログラム分割部３２で分割された全てのブロックデータの送信が終了した時点で、記憶部４６にブロック番号及びスレーブ番号が記憶されている場合、機器番号付与部４３ａとの連携によって、その記憶されたブロック番号のブロックデータに、当該ブロック番号と対で記憶されている１又は複数のスレーブ番号を付与し、一斉同報送信部３４から一斉同報送信されるように制御するものである。この制御は、記憶部４６に複数のブロック番号が記憶されている場合、１つずつブロック番号を読み込んで順次実行される。
【００４３】
制御管理部４３は、マスタ装置２０の上記構成要素３０〜４６の制御および管理を、上述のように、又は後述のプログラム更新処理で説明するように司る。
プログラム受信部５２は、マスタ装置２０から送信されてきたプログラムデータであるブロックデータに、自スレーブ装置２４−１〜２４−１０のスレーブ番号が付与されている場合にのみに、そのブロックデータを受信するものである。
【００４４】
プログラム書込制御部５８は、プログラム受信部５２で受信されたプログラムデータを、フラッシュＲＯＭ６２に書き込む制御を行うと共に、ブロックデータが正常に受信されたか否かを示すと共に、フラッシュＲＯＭ６２へのブロックデータの書込みが正常に終了したか否かを示す信号を応答データ送信部５６へ出力するものである。
【００４５】
確認データ受信部５４は、マスタ装置２０から送信されてきた確認データを受信するものである。
応答データ送信部５６は、確認データ受信部５４で確認データが受信された際に、プログラム受信部５２でブロックデータが正常に受信されたか否かを示すと共に、この受信ブロックデータのフラッシュＲＯＭ６２への書込みが正常に終了したか否かを示す応答データを、プログラム書込制御部５８からの信号に応じて生成し、この応答データをマスタ装置２０へ送信するものである。
【００４６】
ＭＰＵ６０は、フラッシュＲＯＭ６２に書き込まれて記憶されたプログラムデータ（ソフトウェア）を用いて、各スレーブ装置２４−１〜２４−１０における所定の処理を実行するものである。
このような構成のコンピュータ制御システムにおいて、各スレーブ装置２４−１〜２４−１０のＭＰＵ６０が用いるフラッシュＲＯＭ６２に記憶されたプログラムの更新を行う処理を、図３〜図５に示すフローチャートを参照して説明する。
【００４７】
図３に示すステップＳ１において、制御管理部４３によってプログラム書換モード設定部３０にプログラム書換モードであることを示す「１」が設定されているか否かが判定される。プログラム書換モードでなければ、図３に示す処理は終了する。
プログラム書換モードであれば、ステップＳ２において、制御管理部４３によって、一斉同報送信部３４からプログラムのブロックデータが送信中か否かが判定される。送信中でなければ、図３に示す処理は終了する。
【００４８】
送信中であれば、ステップＳ３において、制御管理部４３によって、確認モード設定部３７に確認モード中であることを示す「１」が設定されているか否かが判定される。確認モード中であれば、図３に示す処理は終了する。
確認モード中でなければ、ステップＳ４において、制御管理部４３によってプログラム分割部３２でプログラムデータが分割されたか否かが判定される。
【００４９】
分割されていなければ、ステップＳ５において、プログラム分割部３２によってプログラムデータが、９６バイト単位のブロックデータに分割される。この場合、１ブロックデータは、従来例で説明したように、図８に示す送信フレームＦのデータ部Ｆ４に示すように、分割された１ブロックデータを識別するためのブロック番号（上位および下位の合計２バイト）と、そのブロック長でのチェックサム（上位および下位の合計２バイト）とを付加した１００バイトで構成される。
【００５０】
また、図８に示す送信フレームＦは、マスタ装置１０からプログラムデータを実際に送信するための一構成例であり、１バイトのフラグデータＦ１と、１バイトの送信先アドレスＦ２と、２バイトの制御コマンドＦ３と、上記の１００バイトのデータ部Ｆ４と、２バイトのフレーム検査シーケンスＦ５と、１バイトのフラグデータＦ６とから構成されている。
【００５１】
この分割後、ステップＳ６において、プログラム分割部３２によって、図８に示すブロック番号（図３にはブロックＮｏと記載）の小さい順に配列する。この配列後、又はステップＳ４でプログラムデータが分割済みと判定された場合、ステップＳ７に進む。
ステップＳ７において、機器番号付与部４３ａで、送信対象のブロックデータに送信先のスレーブ装置２４−１〜２４−１０のスレーブ番号が付与される。ここでは、全てのスレーブ番号が付与されたとする。
【００５２】
ステップＳ８において、制御管理部４３によって、プログラム分割部３２で分割された全てのブロックデータが送信されたか否かが判定される。
この結果、送信されていなければ、ステップＳ９において、一斉同報送信部３４によって、最も小さいブロック番号の未送信のブロックデータが一斉同報により送信される。例えば、全くブロックデータが送信されていないとすると、図２のタイミングｔ２１に示すように、ブロック番号が「１」である第１のブロックデータが、全てのスレーブ装置２４−１〜２４−１０へ一斉同報送信される。また、送信するブロックデータのブロック番号は、制御管理部４３にセットされる。これは、どのブロック番号のブロックデータを送信しているかを認識できるようにするためである。
【００５３】
この送信された第１のブロックデータは、ケーブル接続インタフェース部４４からシリアル伝送ケーブル１２へ伝送され、各スレーブ装置２４−１〜２４−１０のケーブル接続インタフェース部５０を介して、プログラム受信部５２で受信される。そして、その受信ブロックデータは、ソフトウェア書込制御部５８の制御によってフラッシュＲＯＭ６２に書き込まれる。
【００５４】
また、ステップＳ９におけるブロックデータの送信開始時に、ステップＳ１０において、計時部３６によりアクセス完了時間ｔｍ１の計時動作が開始される。ここでは、アクセス完了時間ｔｍ１は、約１００ｍｓであるとする。
ステップＳ１１において、制御管理部４３によって、計時部３６における計時動作がタイムアップとなったか否かが判定される。タイムアップとなった時点で、ステップＳ１２において、制御管理部４３の制御により確認モード設定部３７に確認モード中であることを示す「１」が設定される。
【００５５】
一方、ステップＳ８において、全てのブロックデータが送信されたと判定された場合は、ステップＳ１３において、再送制御部４３ｂで、記憶部４６に異常発生に係るブロック番号が記憶されているか否かが判定される。
この結果、記憶されてない場合は、ステップＳ１４において、全てのスレーブ装置２４−１〜２４−１０におけるフラッシュＲＯＭ６２のプログラム書き換えが終了したことが、制御管理部４３にセットされる。
【００５６】
そして、ステップＳ１５において、制御管理部４３の制御によってプログラム書換モード設定部３０のプログラム書換モードがリセットされる。すなわち「０」とされる。同時に、ステップＳ１６において、制御管理部４３にセットされたプログラムデータ分割完了がクリアされる。
このクリア後、又はステップＳ１２において、確認モード中がセットされたことにより、図４に示す処理が実行される。
【００５７】
まず、ステップＳ１７において、制御管理部４３によって、確認モード設定部３７に確認モード中の「１」が設定されているか否かが判定される。この結果、確認モード中が設定されていなければ、図４に示す処理は終了する。
確認モード中が設定されていれば、ステップＳ１８において、制御管理部４３によって、応答データ受信部４０で応答データが受信待ち状態か否かが判定される。この結果、受信待ち状態の場合は、図４に示す処理は終了する。
【００５８】
受信待ち状態でなければ、ステップＳ１９において、制御管理部４３よって、全てのスレーブ装置２４−１〜２４−１０へ確認データが送信されたか否かが判定される。
この結果、送信されていなければ、ステップＳ２０において、確認データ送信部３８から該当するスレーブ装置２４−１〜２４−１０へ確認データが送信される。例えば、図２に示すように、タイミングｔ２２で第１のスレーブ装置２４−１へ確認データが送信されたとする。この送信後、ステップＳ２１において、制御管理部４３に、第１のスレーブ装置２４−１からの応答データの受信待ちがセットされる。そして、図４に示す処理は終了する。
【００５９】
一方、ステップＳ１９において、全てのスレーブ装置２４−１〜２４−１０へ確認データが送信されたと判定された場合は、ステップＳ２２において、確認モード設定部３７に設定された確認モード中を「０」としてリセットする。そして、ステップＳ２３に示すように、制御管理部４３において、次の送信対象となるブロックデータのブロック番号がインクリメントされる。そして、図４に示す処理は終了する。
【００６０】
また、ステップＳ１８の判定で、応答データが受信待ち状態と判定された場合、図５に示すステップＳ２４において、制御管理部４３によって応答データ受信部４０で応答データが受信されたか否かが判定される。受信されていなければ、図５の処理は終了する。
一方、応答データが受信された場合、ステップＳ２５において、確認部４２で応答データの確認が行われる。但し、受信された応答データは、図２に示すタイミングｔ２３で第１のスレーブ装置２４−１の応答データ送信部５６から返信されたものであるとする。また、第１のスレーブ装置２４−１において、ブロックデータが正常に受信され、この受信ブロックデータのフラッシュＲＯＭ６２への書込みが正常に終了したと確認されたとする。
【００６１】
この場合、ステップＳ２６において、確認部４２では、応答データから異常発生無しと判定されるので、ステップＳ２７において、制御管理部４３で、確認先のスレーブ装置のアドレス（図５にはスレーブアドレスと記載）がインクリメントされる。これによって、次の確認先である第２のスレーブ装置２４−２のアドレスがセットされたとする。
【００６２】
この後、ステップＳ２８において、制御管理部４３で、第１のスレーブ装置２４−１からの応答データ受信待ちがクリアされ、図５の処理が終了する。
以降上記ステップＳ１〜Ｓ２８が繰り返されることによって、図２に示すタイミングｔ２４において、マスタ装置２０から第２のスレーブ装置２４−２へ確認データが送信され、タイミングｔ２５において、第２のスレーブ装置２４−２からマスタ装置２０へ応答データが返信される。
【００６３】
この応答データが正常を示す内容であれば、同様に、タイミングｔ２６において、マスタ装置２０から第３のスレーブ装置２４−３へ確認データが送信され、タイミングｔ２７において、第３のスレーブ装置２４−３からマスタ装置２０へ応答データが返信される。この応答データが正常を示す内容であれば、残りの第４〜第１０のスレーブ装置２４−４〜２４−１０においても同様の処理が行われる。
【００６４】
一方、ステップＳ２６において、例えば、図２に示すタイミングｔ２５の第２のスレーブ装置２４−２からマスタ装置２０へ応答データから異常発生が確認されたとする。
この場合、ステップＳ２９において、異常内容記憶制御部４５の制御によって、その異常発生に係る応答データの送信元のスレーブ装置２４−２のスレーブ番号「Ａ２」と、このスレーブ番号のスレーブ装置２４−２へ送信したブロックデータのブロック番号（例えば「３」）とが対で記憶部４６に記憶される。
【００６５】
その後、上記ステップＳ１〜Ｓ２８の繰り返しによって、他のブロックデータにおいて異常発生が無く、ステップＳ８において、全ブロックデータの送信が終了したと判定されたとする。
この場合、ステップＳ１３では、再送制御部４３ｂで、記憶部４６に異常発生に係るブロック番号「３」が記憶されていると判定されるので、ステップＳ３０に進む。ステップＳ３０において、再送制御部４３ｂで、その異常発生に係るブロック番号「３」及びこれと対のスレーブ番号「Ａ２」が記憶部４６から読み出される。
【００６６】
そして、ステップＳ７において、機器番号付与部４３ａで、その読み出されたブロック番号「３」のブロックデータにスレーブ装置２４−２のスレーブ番号「Ａ２」が付与される。この際、ステップＳ８では、ブロックデータが送信されていないと判定されるので、ステップＳ９において、一斉同報送信部３４によって、そのブロック番号「３」のブロックデータが全スレーブ装置２４−１〜２４−１０へ一斉同報により送信される。
【００６７】
しかし、ブロックデータにはスレーブ番号「Ａ２」しか付与されていないので、スレーブ装置２４−２のプログラム受信部５２のみで、それが受信され、ソフトウェア書込制御部５８の制御によってフラッシュＲＯＭ６２に書き込まれる。この再送処理によって、どうしてもフラッシュＲＯＭ６２への書込みができないスレーブ装置２４−１〜２４−１０異常なスレーブ装置２４−１〜２４−１０においては、リトライ動作を開始するが、これをユーザが強制終了しても、正常に書込みが終了したスレーブ装置２４−１〜２４−１０には、影響を及ぼすことはない。
【００６８】
このような本実施の形態のコンピュータ制御システムによれば、マスタ装置２０のプログラム分割部３２においてプログラムデータを分割したブロックデータに、機器番号付与部４３ａで送信先のスレーブ番号を付与し、一斉同報送信部３４で、１ブロックずつ、各スレーブ装置２４−１〜２４−１０へ一斉同報送信したのち、スレーブ装置２４−１〜２４−１０において、プログラム受信部５２で自スレーブ番号が付与されたブロックデータのみを受信する。
【００６９】
更に、応答データからスレーブ装置２４−１〜２４−１０でのブロックデータの受信や書込みなどの異常が生じても、この異常を確認部４２で確認して記憶部４６に記憶しておき、次以降のブロックデータの一斉同報送信を順次進め、全ブロックデータの送信終了後に、再送制御部４３ｂの制御によって、先に記憶した異常情報に係るスレーブ装置２４−２のみが再度ブロックデータを受信できるように一斉同報送信するようにした。
【００７０】
これによって、従来のようにスレーブ装置２４−１〜２４−１０個別にブロックデータを送信してソフトウェアの更新を行うよりも短時間で更新を行うことができ、また、分割されたブロックデータのうち途中のブロックデータ送信時に特定のスレーブ装置２４−２に異常が生じても、この異常に関係なく他の正常なスレーブ装置２４−１，２４−３〜２４−１０に対しては、次のブロックデータの送信を進めることができる。
【００７１】
また、全ブロックデータの送信終了後に、異常スレーブ装置２４−２のみに対してブロックデータを再送することができるので、先の異常が一時的な異常であれば、今回の再送によってブロックデータを正常に送信してソフトウェアの更新を行うことが可能である。
従って、上位のマスタ装置（情報制御装置）２０にシリアル伝送ケーブルでシリアル接続された複数のスレーブ装置（機器）２４−１〜２４−１０において、各スレーブ装置２４−１〜２４−１０に搭載されたＭＰＵ６０のソフトウェアの更新を行う際に、特定のスレーブ装置に異常が生じても極力短時間で更新を行うことができる。
【００７２】
また、マスタ装置２０が、ブロックデータを送信された時点から、当該ブロックデータが各スレーブ装置２４−１〜２４−１０の少なくとも１つで受信された後、フラッシュＲＯＭ６２に書き込まれる時点までの時間を計時し、この計時が終了した時点で確認データを送信するようにした。
【００７３】
これによって、マスタ装置２０から送信されたブロックデータがスレーブ装置２４−１〜２４−１０で受信されて書き込まれた後に確認データを送信し、これをスレーブ装置２４−１〜２４−１０で受信した後に応答データを返信することができるので、従来のように、フラッシュＲＯＭ６２への書き込み中に、マスタ装置２０から確認データが送信されることによってスレーブ装置２４−１〜２４−１０で、それを受信できず、マスタ装置２０が一定時間経過後に確認データの再送を行うといったことがなくなり、無駄な確認データの再送を無くすことができる。
【００７４】
従って、マスタ装置２０にシリアル伝送ケーブル１２でシリアル接続された複数のスレーブ装置２４−１〜２４−１０において、これらのスレーブ装置２４−１〜２４−１０に搭載されたＭＰＵ６０のソフトウェアの更新処理を、従来よりも短時間で行うことができる。言い換えれば、ソフトウェアの更新を高速に行うことができる。
【００７５】
また、従来のように、１ブロックデータを送信後に、このブロックデータの正常受信を確認し、正常であれば正常書込みの確認を行った後に、次のブロックデータを送信するといった処理ではなく、１ブロックデータを一斉同報送信した後に、確認データと応答データとの送受信によってブロックデータの書込みを確認するようにしたので、マスタ装置２０と各スレーブ装置２４−１〜２４−１０とのアクセス回数を減少させることができる。従って、各スレーブ装置２４−１〜２４−１０に搭載されたＭＰＵ６０のソフトウェアの更新処理を、従来よりも短時間で行うことができる。
【００７６】
また、マスタ装置２０の計時部３６は、ブロックデータが送信された時点から、当該ブロックデータが各スレーブ装置２４−１〜２４−１０のうちマスタ装置２０に最短に接続された第１のスレーブ装置２４−１で受信された後、第１のスレーブ装置２４−１のフラッシュＲＯＭ６２に書き込まれる時点までの時間を計時するようにした。
【００７７】
これによって、マスタ装置２０からブロックデータを送信後に、確認データを送信するまでの時間が短くなるので、その分、コンピュータ制御システム全体のアクセス時間を短縮することができる。従って、各スレーブ装置２４−１〜２４−１０に搭載されたＭＰＵ６０のソフトウェアの更新処理を、より短時間で行うことができる。
【００７８】
また、マスタ装置２０の確認データ送信部３８は、最初に計時部３６によるアクセス完了時間ｔｍ１の計時が終了した時点で確認データを第１のスレーブ装置２４−１に送信し、この送信後は、応答データ受信部４０で応答データが受信された後に、当該応答データを返信した第１のスレーブ装置２４−１の後段の第２のスレーブ装置２４−２へ確認データを送信する処理を、全てのスレーブ装置２４−１〜２４−１０へ確認データが送信されるまで繰り返すようにした。
【００７９】
これによって、全てのスレーブ装置２４−１〜２４−１０において、フラッシュＲＯＭ６２へのブロックデータの書込みが確実に終了した後に、確認データと応答データとの送受信のみで、ブロックデータの書込み完了を確認することができるので、その確認動作を短時間で行うことができる。従って、各スレーブ装置２４−１〜２４−１０に搭載されたＭＰＵ６０のソフトウェアの更新処理を、より短時間で行うことができる。
【００８０】
【発明の効果】
以上説明したように本発明は、マスタ装置においてプログラムデータを分割したブロックデータに送信先のスレーブ番号を付与し、１ブロックずつ、各スレーブ装置へ一斉同報送信したのち、スレーブ装置において、自スレーブ番号が付与されたブロックデータのみを受信する。この受信ブロックデータが不揮発性メモリに書き込まれた時点で、マスタ装置からスレーブ装置に確認データを送信する。そして、スレーブ装置は、確認データを受信した場合に応答データを返信する。マスタ装置は、その応答データをもとに異常を確認した際に、該当ブロック番号及びスレーブ番号を対応付けて記憶しておき、分割された全ブロックデータの送信終了時に、その記憶ブロック番号のブロックデータにスレーブ番号を付与して再度一斉同報送信するようにした。
【００８１】
これによって、従来のようにスレーブ装置個別にブロックデータを送信してソフトウェアの更新を行うよりも短時間で更新を行うことができ、また、分割されたブロックデータのうち途中のブロックデータ送信時に特定のスレーブ装置に異常が生じても、この異常に関係なく他の正常なスレーブ装置に対しては、次のブロックデータの送信を進めることができる。また、全ブロックデータの送信終了後に、異常スレーブ装置のみに対してブロックデータを再送することができるので、先の異常が一時的な異常であれば、今回の再送によってブロックデータを正常に送信してソフトウェアの更新を行うことが可能である。
【００８２】
また、従来のように、１ブロックデータを送信後に、このブロックデータの正常受信を確認し、正常であれば正常書込みの確認を行った後に、次のブロックデータを送信するといった処理ではなく、１ブロックデータを一斉同報送信した後に、確認データと応答データとの送受信によってブロックデータの書込みを確認するようにしたので、マスタ装置とスレーブ装置とのアクセス回数を減少させることができる。
【００８３】
従って、上位のマスタ装置（情報制御装置）にシリアル伝送ケーブルでシリアル接続された複数のスレーブ装置（機器）において、各スレーブ装置に搭載されたＭＰＵのソフトウェアの更新を行う際に、特定のスレーブ装置に異常が生じても極力短時間で更新を行うことができるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るコンピュータ制御システムの構成を示す図である。
【図２】上記実施の形態に係るコンピュータ制御システムによるソフトウェア更新処理を説明するためのタイミングチャートである。
【図３】上記実施の形態に係るコンピュータ制御システムによるソフトウェア更新処理を説明するための第１のフローチャートである。
【図４】上記実施の形態に係るコンピュータ制御システムによるソフトウェア更新処理を説明するための第２のフローチャートである。
【図５】上記実施の形態に係るコンピュータ制御システムによるソフトウェア更新処理を説明するための第３のフローチャートである。
【図６】マスタ装置と複数のスレーブ装置とをシリアル伝送ケーブルでシリアル接続した構成を示す図である。
【図７】従来のマスタ装置と各スレーブ装置間のデータ送受信を表すタイミングチャートである。
【図８】マスタ装置から各スレーブ装置へ送信されるプログラムのブロックデータのフレーム構成およびフレーム内のデータ部の構成を示す図である。
【図９】従来のマスタ装置と各スレーブ装置間のブロックデータ送信および確認／応答を表すタイミングチャートである。
【符号の説明】
２０  マスタ装置
２４−１〜２４−１０  スレーブ装置
３０  プログラム書換モード設定部
３２  プログラム分割部
３４  一斉同報送信部
３６  計時部
３７  確認モード設定部
３８  確認データ送信部
４０  応答データ受信部
４２  確認部
４３  制御管理部
４３ａ  機器番号付与部
４３ｂ  再送制御部
４４，５０  ケーブル接続インタフェース部
４５  異常内容記憶制御部
４６  記憶部
５２  プログラム受信部
５４  確認データ受信部
５６  応答データ送信部
５８  プログラム書込制御部
６０  ＭＰＵ
６２  フラッシュＲＯＭ
【図１】
2005025519.tif 000003
【図２】
2005025519.tif 000004
【図３】
2005025519.tif 000005
【図４】
2005025519.tif 000006
【図５】
2005025519.tif 000007
【図６】
2005025519.tif 000008
【図７】
2005025519.tif 000009
【図８】
2005025519.tif 000010
【図９】
2005025519.tif 000011