JP2004240679A - コンピュータ制御システムおよびソフトウェア書き換え方法 - Google Patents

コンピュータ制御システムおよびソフトウェア書き換え方法 Download PDF

Info

Publication number
JP2004240679A
JP2004240679A JP2003028703A JP2003028703A JP2004240679A JP 2004240679 A JP2004240679 A JP 2004240679A JP 2003028703 A JP2003028703 A JP 2003028703A JP 2003028703 A JP2003028703 A JP 2003028703A JP 2004240679 A JP2004240679 A JP 2004240679A
Authority
JP
Japan
Prior art keywords
data
slave
confirmation
master device
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003028703A
Other languages
English (en)
Inventor
Hiroshi Takahashi
弘 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Systems Co Ltd filed Critical Fuji Electric Systems Co Ltd
Priority to JP2003028703A priority Critical patent/JP2004240679A/ja
Publication of JP2004240679A publication Critical patent/JP2004240679A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】上位のマスタ装置(情報制御装置)にシリアル伝送ケーブルでシリアル接続された複数のスレーブ装置(機器)において、これらのスレーブ装置に搭載されたMPUのソフトウェアの更新処理を極力短時間で行うことができるコンピュータ制御システムを提供する。
【解決手段】マスタ装置20においてプログラムデータを分割したブロックデータを1ブロックずつ複数のスレーブ装置24−1〜24−10へ一斉同報送信したのち、スレーブ装置24−1において、そのブロックデータがフラッシュROM62に書き込まれた時点で、マスタ装置20からスレーブ装置24−1に確認データを送信する。そして、第1のスレーブ装置24−1は、確認データを受信した場合に応答データを返信する。また、マスタ装置20は、上記の確認データを送信した後は、応答データを受信した後に次のスレーブ装置24−2へ確認データを送信することを繰り返す。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、MPU(マイクロコンピュータ)を有する電鉄車両用のドア制御装置や磁気浮上装置などの複数の同一機器を、シリアル伝送ケーブルで上位の情報制御装置に接続してコントロールするコンピュータ制御システムおよびソフトウェア書き換え方法に関し、特に、MPUの不揮発性メモリに記憶される制御用ソフトウェアの更新を高速に行うコンピュータ制御システムおよびソフトウェア書き換え方法に関する。
【0002】
【従来の技術】
従来のコンピュータ制御システムとして、例えば、図6に示す半二重方式のシリアル伝送システムがある。このシステムは、上位のマスタ装置(情報制御装置)10にシリアル伝送ケーブル12で、第1〜第10のスレーブ装置(機器)14−1〜14−10がシリアルに接続されて構成されている。但し、各スレーブ装置14−1〜14−10は、全て同一の機器である。各々のスレーブ装置14−1〜14−10は、自装置の制御を司るMPUを備えており、マスタ装置10からのデータを受け取った特定のスレーブ装置14−1〜14−10がデータ受信終了後に、バス制御を受信から送信に切り替え、マスタ装置10へ応答データの送信を行うようになっている。
【0003】
図7に、図6に示すシステムにおける半二重方式での伝送タイミングを示す。但し、図7においてはマスタ装置をマスタ、スレーブ装置をスレーブと記載した。
タイミングt1において、マスタ装置10は、第1のスレーブ装置14−1へデータを送信する。タイミングt2において、第1のスレーブ装置14−1は、そのデータに対する応答データを、マスタ装置10へ返信する。
【0004】
次に、タイミングt3において、マスタ装置10は、第2のスレーブ装置14−2へデータを送信する。タイミングt4において、第2のスレーブ装置14−2は、そのデータに対する応答データを、マスタ装置10へ返信する。
次に、タイミングt5において、マスタ装置10は、第3のスレーブ装置14−3へデータを送信する。タイミングt6において、第3のスレーブ装置14−3は、そのデータに対する応答データを、マスタ装置10へ返信する。以降同様に、マスタ装置10と、第4〜第10のスレーブ装置14−4〜14−10との間で、データ送信および応答データの返信が行われる。
【0005】
この様に、常時、マスタ装置10からのデータ送信に対して、必ず1つのスレーブ装置が応答を行っている。この代表的なものに、通信プロトコルの1つである半二重、同期式で、伝送ブロックの先頭に同期用の2つのキャラクタ(SYNキャラクタ)を付加して同期をとるBISYNC(バイシンク)が知られている。
【0006】
次に、各スレーブ装置14−1〜14−10のMPUが用いるソフトウェアの更新を行う処理を説明する。なお、ソフトウェアは、各スレーブ装置14−1〜14−10の不揮発性メモリであるフラッシュROMに記憶されているものとする。
ソフトウェアのデータ(以下、プログラムデータともいう)を、フラッシュROMに書き込む場合は、1バイト単位の書き込みやページ単位での書き込みがある。例えば、(32バイト/1ぺージ)単位の書き込みを行う場合、プログラムデータを32バイト単位のブロック(以下、ブロックデータという)に分割し、マスタ装置10から各スレーブ装置14−1〜14−10に対して、32バイトずつ送信して、MPUでフラッシュROMに書き込みを行なえば良い。
【0007】
しかし、高速化させるために、1回の送信では、上記の書き込み単位の整数倍nの単位で送信を行っている。例えば、n=3とすると、1ブロックデータの大きさは、96バイトとなる。この場合、1ブロックデータは、実際の伝送では、図8に示す送信フレームFのデータ部F4に示すように、分割された1ブロックデータを識別するためのブロック番号(上位および下位の合計2バイト)と、そのブロック長でのチェックサム(上位および下位の合計2バイト)とを付加して、100バイトで構成される。
【0008】
図8に示す送信フレームFは、マスタ装置10からプログラムデータを実際に送信するための一構成例であり、1バイトのフラグデータF1と、1バイトの送信先アドレスF2と、2バイトの制御コマンドF3と、上記の100バイトのデータ部F4と、2バイトのフレーム検査シーケンスF5と、1バイトのフラグデータF6とから構成されている。
【0009】
従って、上記のように、nの値を大きくすれば、伝送回数も少なくなり、その結果として、ソフトウェア書き換え時間も短くなる。しかし、実際には、マスタ装置10におけるCPU上のRAM容量の制約で、それほど大きい値は取れない。このためnの値を極端に大きくすることはできない。
次に、96バイトのサイズの1ブロックデータ単位で送信を行って、各スレーブ装置14−1〜14−10のMPUが用いるソフトウェアの更新を行う処理を、図9を参照して説明する。なお、ソフトウェアは、各スレーブ装置14−1〜14−10の不揮発性メモリであるフラッシュROMに記憶されているものとする。
【0010】
まず、タイミングt11において、マスタ装置10から第1のスレーブ装置14−1に対して、第1のブロックデータの96バイト分を送信する。タイミングt12において、第1のスレーブ装置14−1は、そのデータを正常に受信したことを示す正常受信応答を、マスタ装置10へ返信する。
また、第1のスレーブ装置14−1は、そのデータ受信後に、受信した第1のブロックデータをフラッシュROMに書き込む。その受信ブロックデータは、96バイトであるが、1回の書き込み単位は、当該MPUでは32バイトなので、3回に分けて書き込みを行っている。
【0011】
正常受信応答を受けたマスタ装置10は、タイミングt13において、第1のスレーブ装置14−1に対して、第1のブロックデータに対する書き込みが完了したか否かの問い合わせ(書込完了確認)を行う。
この書込完了確認のデータを受けた第1のスレーブ装置14−1は、タイミングt14において、第1のブロックデータの書込みが正常に終了したことを示す書込正常終了応答(Ack)を、マスタ装置10へ返信する。ここで仮に書き込み異常であれば、マスタ装置10へ書込みの異常(Nack)を返信する。異常の返信は、タイミングt12におけるブロックデータ受信の応答においても行われるようになっている。
【0012】
次に、タイミングt15において、マスタ装置10から第1のスレーブ装置14−1に対して、第2のブロックデータの96バイト分を送信する。タイミングt16において、第1のスレーブ装置14−1は、そのデータを正常に受信したことを示す正常受信応答を、マスタ装置10へ返信する。また、第1のスレーブ装置14−1は、そのデータ受信後に、受信した第2のブロックデータをフラッシュROMに書き込む。
【0013】
正常受信応答を受けたマスタ装置10は、タイミングt17において、第1のスレーブ装置14−1に対して、第2のブロックデータに対する書込完了確認を行う。この書込完了確認のデータを受けた第1のスレーブ装置14−1は、タイミングt18において、第2のブロックデータの書込みが正常に終了した場合、書込正常終了応答(ACK)を、マスタ装置10へ返信する。
【0014】
以降、このような処理の繰り返しが、第1のスレーブ装置14−1に対する残りのプログラムデータ書き換え終了まで続けられる。さらに、第1のスレーブ装置14−1のプログラムデータ書き換え終了後に、次の第2のスレーブ装置14−2に対するプログラムデータの書き換えが行われ、以降同様に、第3〜第10のスレーブ装置14−3〜14−10に対して順次プログラムデータの書き換えが行われる。
【0015】
ところで、近年では、機器の制御に使用するMPUのソフトウェアの量も増えてきており、128Kバイトを超えるものも出てきた。このため、ソフトウェア変更を複数台の機器で実行すると、長時間の書き換え時間が必要となってきている。ここで、128バイトのプログラムデータを下記の(1)〜(8)に示す条件で、機器に書き込む場合の時間を計算した。
【0016】
(1)書き込み対象の機器(スレーブ装置)の台数:10台。
(2)送信速度:38400bps{HDLC(High−level Data Link Control procedure)準拠}。
(3)送信回数(分割ブロック数)=128Kバイト/96バイト=約1366回。
【0017】
(4)上位の情報制御装置(マスタ装置)から機器への書き込み確認のデータ送信を、図8に示したデータ部F4を20バイトとして行う(Ack,Nackの送信)。
(5)機器から情報制御装置への書き込み確認のデータ返信を、データ部F4を20バイトとして行う(Ack,Nackの送信)。
【0018】
(6)情報制御装置から機器へのプログラムデータの1ブロックデータのデータ部F4を、前述のように100バイトとして行う。
(7)機器から情報制御装置ヘのプログラムデータの受信に対する返信を、データ部F4を20バイトとして行う(Ack,Nackの送信)。
(8)プロトコルオーバヘッドが7バイト(HDLCは、図8に示す様に、データ部F4以外の合計が7バイト)であるとする。
【0019】
このような条件において、機器1台当たりのデータ数=送信回数(3)×{1ブロックデータのデータ部(6)+確認のデータ送信(7)+書き込み確認のデータ送信(4)+書込み確認に対する返信(5)+4×(8)}となる。
すなわち、機器1台当たりのデータ数=3×(100+20+20+20+4×7)=256,808バイトとなる。
【0020】
機器が10台であれば、256,808×10=2,568,080バイト=2,054,464ビットとなる。このことから、10台の機器に書き込む場合の時間は、ボーレート38400bpsでは、535秒(約9分)となる。
この種の従来のコンピュータ制御システムとして、例えば特許文献1に記載のものがある。
【0021】
【特許文献1】
特開平11−17712号公報
【0022】
【発明が解決しようとする課題】
しかし、従来のコンピュータ制御システムにおいては、各々のスレーブ装置14−1〜14−10において、受信ブロックデータをフラッシュROMに書き込む場合、3回に分けて書き込みを行っているので書き込みに時間がかかる。この書き込み中に、仮に図9に示したタイミングt13の書込完了確認がマスタ装置10から送信されてきたとすると、スレーブ装置は、その書込完了確認のデータを受信することができないので、当然応答もできない。この結果、その書込完了確認のデータ送信は失敗することになるので、マスタ装置10は、一定時間経過後に書込完了確認のデータを再送しなければならない。このような再送の発生によって、各々のスレーブ装置14−1〜14−10に搭載されたMPUのソフトウェアの更新処理に時間がかかるという問題がある。
【0023】
このソフトウェアの更新処理の時間は、先の再送が頻繁に発生するほどに増加し、また、スレーブ装置14−1〜14−10である機器の台数が多いほどに増加する。さらに、上述したように、ソフトウェアの量が128Kバイトのように多くなるほどに増加する。
本発明は、このような課題に鑑みてなされたものであり、上位のマスタ装置(情報制御装置)にシリアル伝送ケーブルでシリアル接続された複数のスレーブ装置(機器)において、これらのスレーブ装置に搭載されたMPUのソフトウェアの更新処理を極力短時間で行うことができるコンピュータ制御システムおよびソフトウェア書き換え方法を提供することを目的としている。
【0024】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項1によるコンピュータ制御システムは、各々が専用のコンピュータで制御される複数のスレーブ装置を、上位のマスタ装置にシリアル伝送ケーブルでシリアル接続し、前記コンピュータが制御のために用いる不揮発性メモリに記憶されたプログラムデータを、前記マスタ装置から送信して書き換えるコンピュータ制御システムにおいて、前記マスタ装置は、前記プログラムデータを所定バイト単位ずつ複数のブロックデータに分割する分割手段と、前記分割されたブロックデータを1ブロックずつ前記複数のスレーブ装置へ一斉同報送信する第1の送信手段と、前記第1の送信手段から前記ブロックデータが送信された時点から、当該ブロックデータが前記複数のスレーブ装置の少なくとも1つで受信された後、前記不揮発性メモリに書き込まれる時点までの時間を計時する計時手段と、前記スレーブ装置においてブロックデータが正常に受信され、この受信されたブロックデータの前記不揮発性メモリへの書込みが正常に終了したことを問い合わせる確認データを、前記時間の計時が終了した時点で、該当スレーブ装置に送信する第2の送信手段と、前記確認データに対する応答データを、前記確認データを受信したスレーブ装置から受信する受信手段とを備え、前記複数のスレーブ装置は、前記確認データが受信された際に、前記応答データを前記マスタ装置へ返信する第3の送信手段を備えたことを特徴としている。
【0025】
この構成によれば、マスタ装置においてプログラムデータを分割したブロックデータを1ブロックずつ複数のスレーブ装置へ一斉同報送信したのち、スレーブ装置において、そのブロックデータが不揮発性メモリに書き込まれた時点で、マスタ装置からスレーブ装置に確認データを送信する。そして、スレーブ装置は、確認データを受信した場合に応答データを返信するようにした。これによって、マスタ装置から送信された確認データをスレーブ装置で確実に受信した後、応答データを返信することができるので、従来のように、不揮発性メモリへの書き込み中に、マスタ装置から確認データが送信されることによってスレーブ装置で、それを受信できず、マスタ装置が一定時間経過後に確認データの再送を行うといったことがなくなる。
【0026】
また、従来のように、1ブロックデータを送信後に、このブロックデータの正常受信を確認し、正常であれば正常書込みの確認を行った後に、次のブロックデータを送信するといった処理ではなく、1ブロックデータを一斉同報送信した後に、確認データと応答データとの送受信によってブロックデータの書込みを確認するようにしたので、マスタ装置とスレーブ装置とのアクセス回数を減少させることができる。
【0027】
また、本発明の請求項2によるコンピュータ制御システムは、請求項1において、前記計時手段は、前記第1の送信手段から前記ブロックデータが送信された時点から、当該ブロックデータが前記複数のスレーブ装置のうち前記マスタ装置に最短に接続されたスレーブ装置で受信された後、当該スレーブ装置の前記不揮発性メモリに書き込まれる時点までの時間を計時することを特徴としている。
【0028】
この構成によれば、マスタ装置からブロックデータを送信後に、確認データを送信するまでの時間が短くなるので、その分、全体のアクセス時間を短縮することができる。
また、本発明の請求項3によるコンピュータ制御システムは、請求項1または2において、前記第2の送信手段は、最初に前記時間の計時が終了した時点で前記確認データを該当スレーブ装置に送信し、この送信後は、前記受信手段で前記応答データが受信された後に、当該応答データを返信したスレーブ装置の後段のスレーブ装置へ確認データを送信する処理を、全てのスレーブ装置へ前記確認データが送信されるまで繰り返すことを特徴としている。
【0029】
この構成によれば、全てのスレーブ装置において、不揮発性メモリへのブロックデータの書込みが確実に終了した後に、確認データと応答データとの送受信のみで、ブロックデータの書込み完了を確認することができるので、その確認動作を短時間で行うことができる。
また、本発明の請求項4によるソフトウェア書き換え方法は、各々が専用のコンピュータで制御される複数のスレーブ装置を、上位のマスタ装置にシリアル伝送ケーブルでシリアル接続し、前記コンピュータが制御のために用いる不揮発性メモリに記憶されたプログラムデータを、前記マスタ装置から送信して書き換えるソフトウェア書き換え方法において、前記マスタ装置は、前記プログラムデータを所定バイト単位ずつ複数のブロックデータに分割する分割ステップと、前記分割ステップにおいて分割されたブロックデータを1ブロックずつ前記複数のスレーブ装置へ一斉同報送信する第1の送信ステップと、前記第1の送信ステップにおいて前記ブロックデータが送信された時点から、当該ブロックデータが前記複数のスレーブ装置の少なくとも1つで受信された後、前記不揮発性メモリに書き込まれる時点までの時間を計時する計時ステップと、前記スレーブ装置においてブロックデータが正常に受信され、この受信されたブロックデータの前記不揮発性メモリへの書込みが正常に終了したことを問い合わせる確認データを、前記計時ステップにおける前記時間の計時が終了した時点で、該当スレーブ装置に送信する第2の送信ステップと、前記確認データに対する応答データを、前記確認データを受信したスレーブ装置から受信する受信ステップとを含み、前記複数のスレーブ装置は、前記確認データが受信された際に、前記応答データを前記マスタ装置へ返信する第3の送信ステップを含むことを特徴としている。
【0030】
この方法によれば、マスタ装置においてプログラムデータを分割したブロックデータを1ブロックずつ複数のスレーブ装置へ一斉同報送信したのち、スレーブ装置において、そのブロックデータが不揮発性メモリに書き込まれた時点で、マスタ装置からスレーブ装置に確認データを送信する。そして、スレーブ装置は、確認データを受信した場合に応答データを返信するようにした。これによって、マスタ装置から送信された確認データをスレーブ装置で確実に受信した後、応答データを返信することができるので、従来のように、不揮発性メモリへの書き込み中に、マスタ装置から確認データが送信されることによってスレーブ装置で、それを受信できず、マスタ装置が一定時間経過後に確認データの再送を行うといったことがなくなる。
【0031】
また、従来のように、1ブロックデータを送信後に、このブロックデータの正常受信を確認し、正常であれば正常書込みの確認を行った後に、次のブロックデータを送信するといった処理ではなく、1ブロックデータを一斉同報送信した後に、確認データと応答データとの送受信によってブロックデータの書込みを確認するようにしたので、マスタ装置とスレーブ装置とのアクセス回数を減少させることができる。
【0032】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
(実施の形態)
図1は、本発明の実施の形態に係るコンピュータ制御システムの構成を示す図である。
【0033】
図1に示す本実施の形態のコンピュータ制御システムは、上位のマスタ装置(情報制御装置)20にシリアル伝送ケーブル12で、第1〜第10のスレーブ装置(機器)24−1〜24−10がシリアルに接続されて構成されている。但し、各スレーブ装置24−1〜24−10は、全て同一の機器である。
マスタ装置20は、プログラム書換モード設定部30と、プログラム分割部32と、一斉同報送信部34と、計時部36と、確認データ送信部38と、応答データ受信部40と、確認部42と、これら構成要素30〜42の制御を司る制御管理部43と、ケーブル接続インタフェース部44とを備えて構成されている。
【0034】
各々のスレーブ装置24−1〜24−10は、ケーブル接続インタフェース部50と、プログラム受信部52と、確認データ受信部54と、応答データ送信部56と、プログラム書込制御部58と、MPU60と、フラッシュROM62とを備えて構成されている。これらの構成要素の説明を行う。
各ケーブル接続インタフェース部44,50は、マスタ装置20と各スレーブ装置14−1〜14−10とを、シリアル伝送ケーブル12でシリアル接続するためのものである。
【0035】
プログラム書換モード設定部30は、図示せぬキーボードなどの入力手段からのプログラム書換命令に応じた制御管理部43の制御によって、プログラム書換モードが設定されるものである。プログラム書換モードである場合は、例えば「1」が設定され、プログラム書換モードでない場合は「0」が設定される。
プログラム分割部32は、プログラム書込制御部58にプログラム書換モード「1」が設定された際に、各々のスレーブ装置24−1〜24−10のフラッシュROM62に書き込まれるプログラムデータ(ソフトウェアのデータ)を、所定バイト単位ずつ複数のブロックデータに分割し、この分割されたブロックデータを小さいブロック番号順に配列するものである。
【0036】
一斉同報送信部34は、プログラム分割部32で分割された複数のブロックデータの1ブロックデータを、全スレーブ装置24−1〜24−10へ一斉同報送信するものである。
計時部36は、一斉同報送信部34よりブロックデータが送信された時点から、当該ブロックデータが各スレーブ装置24−1〜24−10で受信された後、フラッシュROM62に書き込まれる時点までの時間を計時するものである。例えば、図2に示すように、マスタ装置20から全てのスレーブ装置24−1〜24−10へブロックデータが送信された時点P1から先頭の(第1の)スレーブ装置24−1において、そのブロックデータの書込みが終了する時点P2までの時間(以下、アクセス完了時間という)tm1を計時する。このアクセス完了時間tm1は、予め計測されて求められている。すなわち、ブロックデータの送信開始時点からタイマが計時動作を開始し、予め計測された時間になるとカウントアップするようになっている。
【0037】
確認モード設定部37は、制御管理部43の制御によって、アクセス完了時間tm1の計時が完了した時点で、確認モードが設定されるものである。確認モードである場合は、例えば「1」が設定され、確認モードでない場合は「0」が設定される。
確認データ送信部38は、確認モード設定部37に確認モードの「1」が設定された時点で、ブロックデータが正常に受信され、この受信ブロックデータのフラッシュROM62への書込みが正常に終了したか否かを問い合わせる確認データを、先頭のスレーブ装置14−1へ送信する。この送信後は、スレーブ装置24−1から応答データが返信され、この応答データが正常であることを示す場合に、次の段のスレーブ装置24−2〜24−10へ順次、確認データを送信するようになっている。なお、確認データは、コマンド形式のデータであるとする。
【0038】
応答データ受信部40は、確認データ送信部38から送信された確認データに対する応答データを、各スレーブ装置14−1〜14−10から受信するものである。
確認部42は、応答データ受信部40で受信された応答データから各スレーブ装置14−1〜14−10においてブロックデータが正常に受信され、この受信ブロックデータのフラッシュROM62への書込みが正常に終了したか否かを確認するものである。
【0039】
制御管理部43は、マスタ装置20の上記構成要素30〜42の制御および管理を、上述のように、または後述のプログラム更新処理で説明するように司る。プログラム受信部52は、マスタ装置20から送信されてきたプログラムデータを受信するものである。
プログラム書込制御部58は、プログラム受信部52で受信されたプログラムデータを、フラッシュROM62に書き込む制御を行うものである。
【0040】
確認データ受信部54は、マスタ装置20から送信されてきた確認データを受信するものである。
応答データ送信部56は、確認データ受信部54で確認データが受信された際に、確認データ受信部54でブロックデータが正常に受信され、プログラム書込制御部58によって、その受信ブロックデータのフラッシュROM62への書込みが正常に終了したか否かを示す応答データを、マスタ装置20へ送信するものである。
【0041】
このような構成のコンピュータ制御システムにおいて、各スレーブ装置24−1〜24−10のMPU60が用いるフラッシュROM62に記憶されたプログラムの更新を行う処理を、図3〜図5に示すフローチャートを参照して説明する。
図3に示すステップS1において、制御管理部43によってプログラム書換モード設定部30にプログラム書換モードであることを示す「1」が設定されているか否かが判定される。プログラム書換モードでなければ、図3に示す処理は終了する。
【0042】
プログラム書換モードであれば、ステップS2において、制御管理部43によって、一斉同報送信部34からプログラムのブロックデータが送信中か否かが判定される。送信中でなければ、図3に示す処理は終了する。
送信中であれば、ステップS3において、制御管理部43によって、確認モード設定部37に確認モード中であることを示す「1」が設定されているか否かが判定される。確認モード中であれば、図3に示す処理は終了する。
【0043】
確認モード中でなければ、ステップS4において、制御管理部43によってプログラム分割部32でプログラムデータが分割されたか否かが判定される。分割されていなければ、ステップS5において、プログラム分割部32によってプログラムデータが、96バイト単位のブロックデータに分割される。この場合、1ブロックデータは、従来例で説明したように、図8に示す送信フレームFのデータ部F4に示すように、分割された1ブロックデータを識別するためのブロック番号(上位および下位の合計2バイト)と、そのブロック長でのチェックサム(上位および下位の合計2バイト)とを付加して、100バイトで構成される。また、図8に示す送信フレームFは、マスタ装置10からプログラムデータを実際に送信するための一構成例であり、1バイトのフラグデータF1と、1バイトの送信先アドレスF2と、2バイトの制御コマンドF3と、上記の100バイトのデータ部F4と、2バイトのフレーム検査シーケンスF5と、1バイトのフラグデータF6とから構成されている。
【0044】
この分割後、ステップS6において、プログラム分割部32によって、図8に示すブロック番号(図3にはブロックNoと記載)の小さい順に配列する。この配列後、またはステップS4でプログラムデータが分割済みと判定された場合、ステップS7に進む。
ステップS7において、制御管理部43によって、プログラム分割部32で分割された全てのブロックデータが送信されたか否かが判定される。
【0045】
この結果、送信されていなければ、ステップS8において、一斉同報送信部34によって、最も小さいブロック番号の未送信のブロックデータが一斉同報により送信される。例えば、全くブロックデータが送信されていないとすると、図2のタイミングt21に示すように、ブロック番号が「1」である第1のブロックデータが、全てのスレーブ装置24−1〜24−10へ一斉同報送信される。また、送信するブロックデータのブロック番号は、制御管理部43にセットされる。これは、どのブロック番号のブロックデータを送信しているかを認識できるようにするためである。
【0046】
この送信された第1のブロックデータは、ケーブル接続インタフェース部44からシリアル伝送ケーブル12へ伝送され、各スレーブ装置24−1〜24−10のケーブル接続インタフェース部50を介して、プログラム受信部52で受信される。そして、その受信ブロックデータは、ソフトウェア書込制御部58の制御によってフラッシュROM62に書き込まれる。
【0047】
また、ステップS8におけるブロックデータの送信開始時に、ステップS9において、計時部36によりアクセス完了時間tm1の計時動作が開始される。ここでは、アクセス完了時間tm1は、約100msであるとする。
ステップS10において、制御管理部43によって、計時部36における計時動作がタイムアップとなったか否かが判定される。タイムアップとなった時点で、ステップS11において、制御管理部43の制御により確認モード設定部37に確認モード中であることを示す「1」が設定される。
【0048】
一方、ステップS7において、全てのブロックデータが送信されたと判定された場合は、ステップS12において、全てのスレーブ装置24−1〜24−10におけるフラッシュROM62のプログラム書き換えが終了したことが、制御管理部43にセットされる。そして、ステップS13において、制御管理部43の制御によってプログラム書換モード設定部30のプログラム書換モードがリセットされる。すなわち「0」とされる。同時に、ステップS14において、制御管理部43にセットされたプログラムデータ分割完了がクリアされる。
【0049】
このクリア後、またはステップS11において、確認モード中がセットされたことにより、図4に示す処理が実行される。
まず、ステップS15において、制御管理部43によって、確認モード設定部37に確認モード中の「1」が設定されているか否かが判定される。この結果、確認モード中が設定されていなければ、図4に示す処理は終了する。
【0050】
確認モード中が設定されていれば、ステップS16において、制御管理部43によって、応答データ受信部40で応答データが受信待ち状態か否かが判定される。この結果、受信待ち状態の場合は、図4に示す処理は終了する。
受信待ち状態でなければ、ステップS17において、制御管理部43よって、全てのスレーブ装置24−1〜24−10へ確認データが送信されたか否かが判定される。この結果、送信されていなければ、ステップS18において、確認データ送信部38から該当するスレーブ装置24−1〜24−10へ確認データが送信される。例えば、図2に示すように、タイミングt22で第1のスレーブ装置24−1へ確認データが送信されたとする。この送信後、ステップS19において、制御管理部43に、第1のスレーブ装置24−1からの応答データの受信待ちがセットされる。そして、図4に示す処理は終了する。
【0051】
一方、ステップS17において、全てのスレーブ装置24−1〜24−10へ確認データが送信されたと判定された場合は、ステップS20において、確認モード設定部37に設定された確認モード中を「0」としてリセットする。そして、ステップS21に示すように、制御管理部43において、次の送信対象となるブロックデータのブロック番号がインクリメントされる。そして、図4に示す処理は終了する。
【0052】
また、ステップS16の判定で、応答データが受信待ち状態と判定された場合、図5に示すステップS22において、制御管理部43によって応答データ受信部40で応答データが受信されたか否かが判定される。受信されていなければ、図5の処理は終了する。
一方、応答データが受信された場合、ステップS23において、確認部42で応答データの確認が行われる。但し、受信された応答データは、図2に示すタイミングt23で第1のスレーブ装置24−1の応答データ送信部56から返信されたものであるとする。また、第1のスレーブ装置24−1において、ブロックデータが正常に受信され、この受信ブロックデータのフラッシュROM62への書込みが正常に終了したと確認されたとする。
【0053】
この場合、ステップS24に示すように、制御管理部43において、確認先のスレーブ装置のアドレス(図5にはスレーブアドレスと記載)をインクリメントする。これによって、次の確認先である第2のスレーブ装置24−2のアドレスがセットされたとする。
この後、ステップS25に示すように、制御管理部43において、第1のスレーブ装置24−1からの応答データ受信待ちがクリアされ、図5の処理が終了する。
【0054】
以降上記ステップS1〜S25が繰り返されることによって、図2に示すタイミングt24において、マスタ装置20から第2のスレーブ装置24−2へ確認データが送信され、タイミングt25において、第2のスレーブ装置24−2からマスタ装置20へ応答データが返信される。この応答データが正常を示す内容であれば、同様に、タイミングt26において、マスタ装置20から第3のスレーブ装置24−3へ確認データが送信され、タイミングt27において、第3のスレーブ装置24−3からマスタ装置20へ応答データが返信される。この応答データが正常を示す内容であれば、残りの第4〜第10のスレーブ装置24−4〜24−10においても同様の処理が行われる。
【0055】
これによって、全てのスレーブ装置24−1〜24−10に、第1のブロックデータが正常に書き込まれたことが認識されると、第2以降の全てのブロックデータの書込みが完了するまで、上記ステップS1〜S25の処理が繰り返される。
このような処理によって全ての機器(スレーブ装置24−1〜24−10)にプログラムデータを書き込む場合の時間を計算した。
【0056】
(1)書き込み対象の機器(スレーブ装置)の台数:10台。
(2)送信速度:38400bps{HDLC準拠}。
(3)送信回数(分割ブロック数)=128Kバイト/96バイト=約1366回。
(4)上位の情報制御装置(マスタ装置20)から機器への書き込み確認のデータ送信を、図8に示したデータ部F4を20バイトとして行う(Ack,Nackの送信)。
【0057】
(5)機器から情報制御装置への書き込み確認のデータ返信を、データ部F4を20バイトとして行う(Ack,Nackの送信)。
(6)情報制御装置から機器へのプログラムデータの1ブロックデータのデータ部F4を、前述のように100バイトとして行う。
(7)プロトコルオーバヘッドが7バイト(HDLCは、図8に示す様に、データ部F4以外の合計が7バイト)であるとする。
【0058】
このような条件において、機器10台当たりのデータ数=送信回数(3)×{1ブロックデータのデータ部(6)+(7)}+10台×送信回数(3)×{書き込み確認のデータ送信(4)+書込み確認に対する返信(5)+2×(7)}=883,802バイト=7,070,416ビットとなる。
従って、38400bpsの時は、184秒(約3分)となる。
【0059】
このような本実施の形態のコンピュータ制御システムによれば、マスタ装置20においてプログラムデータを分割したブロックデータを1ブロックずつ複数のスレーブ装置24−1〜24−10へ一斉同報送信したのち、スレーブ装置24−1〜24−10の少なくとも1つにおいて、そのブロックデータがフラッシュROM62に書き込まれた時点で、マスタ装置20から第1のスレーブ装置24−1に確認データを送信する。そして、第1のスレーブ装置24−1は、確認データを受信した場合に応答データを返信するようにした。
【0060】
これによって、マスタ装置20から送信された確認データを第1のスレーブ装置24−1で確実に受信した後、応答データを返信することができるので、従来のように、フラッシュROMへの書き込み中に、マスタ装置から確認データが送信されることによってスレーブ装置で、それを受信できず、マスタ装置が一定時間経過後に確認データの再送を行うといったことがなくなる。従って、マスタ装置20にシリアル伝送ケーブル12でシリアル接続された複数のスレーブ装置24−1〜24−10において、これらのスレーブ装置24−1〜24−10に搭載されたMPUのソフトウェアの更新処理を、従来よりも短時間で行うことができる。言い換えれば、ソフトウェアの更新を高速に行うことができる。
【0061】
また、従来のように、1ブロックデータを送信後に、このブロックデータの正常受信を確認し、正常であれば正常書込みの確認を行った後に、次のブロックデータを送信するといった処理ではなく、1ブロックデータを一斉同報送信した後に、確認データと応答データとの送受信によってブロックデータの書込みを確認するようにしたので、マスタ装置20と各スレーブ装置24−1〜24−10とのアクセス回数を減少させることができる。従って、各スレーブ装置24−1〜24−10に搭載されたMPUのソフトウェアの更新処理を、従来よりも短時間で行うことができる。
【0062】
また、マスタ装置20の計時部36は、ブロックデータが送信された時点から、当該ブロックデータが各スレーブ装置24−1〜24−10のうちマスタ装置20に最短に接続された第1のスレーブ装置24−1で受信された後、第1のスレーブ装置24−1のフラッシュROM62に書き込まれる時点までの時間を計時するようにした。これによって、マスタ装置20からブロックデータを送信後に、確認データを送信するまでの時間が短くなるので、その分、コンピュータ制御システム全体のアクセス時間を短縮することができる。従って、各スレーブ装置24−1〜24−10に搭載されたMPUのソフトウェアの更新処理を、より短時間で行うことができる。
【0063】
また、マスタ装置20の確認データ送信部38は、最初に計時部36によるアクセス完了時間tm1の計時が終了した時点で確認データを第1のスレーブ装置24−1に送信し、この送信後は、応答データ受信部40で応答データが受信された後に、当該応答データを返信した第1のスレーブ装置24−1の後段の第2のスレーブ装置24−2へ確認データを送信する処理を、全てのスレーブ装置24−1〜24−10へ確認データが送信されるまで繰り返すようにした。これによって、全てのスレーブ装置24−1〜24−10において、フラッシュROM62へのブロックデータの書込みが確実に終了した後に、確認データと応答データとの送受信のみで、ブロックデータの書込み完了を確認することができるので、その確認動作を短時間で行うことができる。従って、各スレーブ装置24−1〜24−10に搭載されたMPUのソフトウェアの更新処理を、より短時間で行うことができる。
【0064】
このような本実施の形態のコンピュータ制御システムで、ソフトウェアの更新処理を短時間で行えることは次の内容によって実証される。すなわち、上述の本実施の形態におけるプログラム更新処理によって、全スレーブ装置24−1〜24−10にプログラムデータを書き込む場合の時間は184秒(約3分)であり、これに対応する従来例で記述した時間は535秒(約9分)である。従って、本実施の形態では従来に比べ、約1/3の時間で、ソフトウェアの更新を行うことができる。
【0065】
【発明の効果】
以上説明したように本発明は、マスタ装置においてプログラムデータを分割したブロックデータを1ブロックずつ複数のスレーブ装置へ一斉同報送信したのち、スレーブ装置において、そのブロックデータが不揮発性メモリに書き込まれた時点で、マスタ装置からスレーブ装置に確認データを送信する。そして、スレーブ装置は、確認データを受信した場合に応答データを返信するようにした。これによって、マスタ装置から送信された確認データをスレーブ装置で確実に受信した後、応答データを返信することができるので、従来のように、不揮発性メモリへの書き込み中に、マスタ装置から確認データが送信されることによってスレーブ装置で、それを受信できず、マスタ装置が一定時間経過後に確認データの再送を行うといったことがなくなる。
【0066】
また、従来のように、1ブロックデータを送信後に、このブロックデータの正常受信を確認し、正常であれば正常書込みの確認を行った後に、次のブロックデータを送信するといった処理ではなく、1ブロックデータを一斉同報送信した後に、確認データと応答データとの送受信によってブロックデータの書込みを確認するようにしたので、マスタ装置とスレーブ装置とのアクセス回数を減少させることができる。
【0067】
従って、上位のマスタ装置(情報制御装置)にシリアル伝送ケーブルでシリアル接続された複数のスレーブ装置(機器)において、これらのスレーブ装置に搭載されたMPUのソフトウェアの更新処理を極力短時間で行うことができるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るコンピュータ制御システムの構成を示す図である。
【図2】上記実施の形態に係るコンピュータ制御システムによるソフトウェア更新処理を説明するためのタイミングチャートである。
【図3】上記実施の形態に係るコンピュータ制御システムによるソフトウェア更新処理を説明するための第1のフローチャートである。
【図4】上記実施の形態に係るコンピュータ制御システムによるソフトウェア更新処理を説明するための第2のフローチャートである。
【図5】上記実施の形態に係るコンピュータ制御システムによるソフトウェア更新処理を説明するための第3のフローチャートである。
【図6】マスタ装置と複数のスレーブ装置とをシリアル伝送ケーブルでシリアル接続した構成を示す図である。
【図7】従来のマスタ装置と各スレーブ装置間のデータ送受信を表すタイミングチャートである。
【図8】マスタ装置から各スレーブ装置へ送信されるプログラムのブロックデータのフレーム構成およびフレーム内のデータ部の構成を示す図である。
【図9】従来のマスタ装置と各スレーブ装置間のブロックデータ送信および確認/応答を表すタイミングチャートである。
【符号の説明】
20 マスタ装置
24−1〜24−10 スレーブ装置
30 プログラム書換モード設定部
32 プログラム分割部
34 一斉同報送信部
36 計時部
37 確認モード設定部
38 確認データ送信部
40 応答データ受信部
42 確認部
43 制御管理部
44,50 ケーブル接続インタフェース部
52 プログラム受信部
54 確認データ受信部
56 応答データ送信部
58 プログラム書込制御部
60 フラッシュROM
62 MPU

Claims (4)

  1. 各々が専用のコンピュータで制御される複数のスレーブ装置を、上位のマスタ装置にシリアル伝送ケーブルでシリアル接続し、前記コンピュータが制御のために用いる不揮発性メモリに記憶されたプログラムデータを、前記マスタ装置から送信して書き換えるコンピュータ制御システムにおいて、
    前記マスタ装置は、
    前記プログラムデータを所定バイト単位ずつ複数のブロックデータに分割する分割手段と、
    前記分割されたブロックデータを1ブロックずつ前記複数のスレーブ装置へ一斉同報送信する第1の送信手段と、
    前記第1の送信手段から前記ブロックデータが送信された時点から、当該ブロックデータが前記複数のスレーブ装置の少なくとも1つで受信された後、前記不揮発性メモリに書き込まれる時点までの時間を計時する計時手段と、
    前記スレーブ装置においてブロックデータが正常に受信され、この受信されたブロックデータの前記不揮発性メモリへの書込みが正常に終了したことを問い合わせる確認データを、前記時間の計時が終了した時点で、該当スレーブ装置に送信する第2の送信手段と、
    前記確認データに対する応答データを、前記確認データを受信したスレーブ装置から受信する受信手段とを備え、
    前記複数のスレーブ装置は、
    前記確認データが受信された際に、前記応答データを前記マスタ装置へ返信する第3の送信手段を備えた
    ことを特徴とするコンピュータ制御システム。
  2. 前記計時手段は、前記第1の送信手段から前記ブロックデータが送信された時点から、当該ブロックデータが前記複数のスレーブ装置のうち前記マスタ装置に最短に接続されたスレーブ装置で受信された後、当該スレーブ装置の前記不揮発性メモリに書き込まれる時点までの時間を計時する
    ことを特徴とする請求項1に記載のコンピュータ制御システム。
  3. 前記第2の送信手段は、最初に前記時間の計時が終了した時点で前記確認データを該当スレーブ装置に送信し、この送信後は、前記受信手段で前記応答データが受信された後に、当該応答データを返信したスレーブ装置の後段のスレーブ装置へ確認データを送信する処理を、全てのスレーブ装置へ前記確認データが送信されるまで繰り返す
    ことを特徴とする請求項1または2に記載のコンピュータ制御システム。
  4. 各々が専用のコンピュータで制御される複数のスレーブ装置を、上位のマスタ装置にシリアル伝送ケーブルでシリアル接続し、前記コンピュータが制御のために用いる不揮発性メモリに記憶されたプログラムデータを、前記マスタ装置から送信して書き換えるソフトウェア書き換え方法において、
    前記マスタ装置は、
    前記プログラムデータを所定バイト単位ずつ複数のブロックデータに分割する分割ステップと、
    前記分割ステップにおいて分割されたブロックデータを1ブロックずつ前記複数のスレーブ装置へ一斉同報送信する第1の送信ステップと、
    前記第1の送信ステップにおいて前記ブロックデータが送信された時点から、当該ブロックデータが前記複数のスレーブ装置の少なくとも1つで受信された後、前記不揮発性メモリに書き込まれる時点までの時間を計時する計時ステップと、
    前記スレーブ装置においてブロックデータが正常に受信され、この受信されたブロックデータの前記不揮発性メモリへの書込みが正常に終了したことを問い合わせる確認データを、前記計時ステップにおける前記時間の計時が終了した時点で、該当スレーブ装置に送信する第2の送信ステップと、
    前記確認データに対する応答データを、前記確認データを受信したスレーブ装置から受信する受信ステップとを含み、
    前記複数のスレーブ装置は、
    前記確認データが受信された際に、前記応答データを前記マスタ装置へ返信する第3の送信ステップを含む
    ことを特徴とするソフトウェア書き換え方法。
JP2003028703A 2003-02-05 2003-02-05 コンピュータ制御システムおよびソフトウェア書き換え方法 Pending JP2004240679A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003028703A JP2004240679A (ja) 2003-02-05 2003-02-05 コンピュータ制御システムおよびソフトウェア書き換え方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003028703A JP2004240679A (ja) 2003-02-05 2003-02-05 コンピュータ制御システムおよびソフトウェア書き換え方法

Publications (1)

Publication Number Publication Date
JP2004240679A true JP2004240679A (ja) 2004-08-26

Family

ID=32956094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003028703A Pending JP2004240679A (ja) 2003-02-05 2003-02-05 コンピュータ制御システムおよびソフトウェア書き換え方法

Country Status (1)

Country Link
JP (1) JP2004240679A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213292A (ja) * 2006-02-09 2007-08-23 Nec Electronics Corp マルチプロセッサシステム及びスレーブシステムの起動方法
JP2008197906A (ja) * 2007-02-13 2008-08-28 Taito Corp 電子回路、スレーブ基板、書込み制御プログラム、及びデータ更新方法
JP2009206723A (ja) * 2008-02-27 2009-09-10 Panasonic Electric Works Co Ltd ファームウェアのアップデート方法、分散システム、親局、子局、及びファームウェアのアップデートプログラム
JP2013019959A (ja) * 2011-07-07 2013-01-31 Pentax Ricoh Imaging Co Ltd 通信ライン信頼性確認装置及びその方法
JP2017027133A (ja) * 2015-07-16 2017-02-02 東芝ディーエムエス株式会社 コンフィグレーションromのバージョンアップ装置および方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213292A (ja) * 2006-02-09 2007-08-23 Nec Electronics Corp マルチプロセッサシステム及びスレーブシステムの起動方法
JP2008197906A (ja) * 2007-02-13 2008-08-28 Taito Corp 電子回路、スレーブ基板、書込み制御プログラム、及びデータ更新方法
JP2009206723A (ja) * 2008-02-27 2009-09-10 Panasonic Electric Works Co Ltd ファームウェアのアップデート方法、分散システム、親局、子局、及びファームウェアのアップデートプログラム
JP2013019959A (ja) * 2011-07-07 2013-01-31 Pentax Ricoh Imaging Co Ltd 通信ライン信頼性確認装置及びその方法
JP2017027133A (ja) * 2015-07-16 2017-02-02 東芝ディーエムエス株式会社 コンフィグレーションromのバージョンアップ装置および方法

Similar Documents

Publication Publication Date Title
RU2596582C2 (ru) Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных
ES2929124T3 (es) Procedimiento para la transmisión de datos a través de un bus de comunicación en serie, interfaz de bus diseñada de manera correspondiente, así como programa informático diseñado de manera correspondiente
US9209942B2 (en) Communication system and communication apparatus
US9252969B2 (en) Method for transmitting data
JP5563165B2 (ja) 切り替え可能なデータレートによる直列データ伝送のための方法及び装置
US20070140294A1 (en) Communication message conversion apparatus and communication message conversion method
US8457548B2 (en) Relay device, communication system and communication method
CN1082296C (zh) 控制通信的方法和其电子设备
JP4966695B2 (ja) マルチマスタのチェーン接続された二線シリアルバス装置及びディジタル状態機械
CN103562901A (zh) 用于匹配串行总线系统中的数据传输安全性的方法和设备
US20130232328A1 (en) Method to safely reprogram an fpga
KR101400329B1 (ko) 통신 네트워크 시스템
US9521638B2 (en) Time synchronizing method for AVB in vehicle and system thereof
JP2014165780A (ja) マイクロプログラムを更新可能な光トランシーバ
CN109981206A (zh) 对时方法、装置、系统及终端设备、存储介质
US11340888B2 (en) Relay device and external device
KR101001074B1 (ko) 버스 상에 데이터를 전송하기 위한 방법
JP2004240679A (ja) コンピュータ制御システムおよびソフトウェア書き換え方法
JP2005025519A (ja) コンピュータ制御システムおよびソフトウェア書き換え方法
KR101704300B1 (ko) Can 메시지 송수신 방법 및 이를 실행하는 시스템
CN109327284B (zh) 数据传输方法、装置及电子设备
KR20230116941A (ko) 메시지 전송 방법, 단말기 및 저장 매체
CN102835127B (zh) Otn开销的发送、接收方法和装置
US7529268B1 (en) Multi-point electronic control system protocol
US20240106621A1 (en) Vehicle control system, control method, electronic device, and recording medium