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