(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-02
(45)【発行日】2022-09-12
(54)【発明の名称】通信システム及びプログラム更新方法
(51)【国際特許分類】
G06F 8/65 20180101AFI20220905BHJP
【FI】
G06F8/65
(21)【出願番号】P 2018143328
(22)【出願日】2018-07-31
【審査請求日】2021-04-27
(73)【特許権者】
【識別番号】308033711
【氏名又は名称】ラピスセミコンダクタ株式会社
(74)【代理人】
【識別番号】100079119
【氏名又は名称】藤村 元彦
(74)【代理人】
【識別番号】100147728
【氏名又は名称】高野 信司
(72)【発明者】
【氏名】田中 義幸
(72)【発明者】
【氏名】斎藤 直孝
(72)【発明者】
【氏名】齋藤 栄一
【審査官】石川 亮
(56)【参考文献】
【文献】特開2012-252552(JP,A)
【文献】国際公開第2016/039039(WO,A1)
【文献】中国特許出願公開第104915219(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65-8/658
(57)【特許請求の範囲】
【請求項1】
夫々が情報通信を担うプログラムデータが格納されているメモリを有する複数の通信端末と、前記複数の通信端末と通信を行うホスト装置と、を有する通信システムであって、
前記複数の通信端末の各々は、
更新用プログラムデータの配信準備が完了したことを示す配信準備完了信号を前記ホスト装置から受信した場合に
は、前記配信準備完了信号の受信後、乱数に基づくランダムな時間だけ待機してからスタートリクエスト信号を前記ホスト装置に送信し、データ要求を行う権利を付与する許可信号を前記ホスト装置から受信した場合にはデータリクエスト信号を前記ホスト装置に送信し、
前記ホスト装置は、
前記配信準備完了信号をブロードキャスト送信し、その後、前記複数の通信端末のうちで最も早く前記スタートリクエスト信号を送信した1つの通信端末に前記許可信号を送信し、前記データリクエスト信号の受信に応じて前記更新用プログラムデータを前記複数の通信端末にブロードキャスト送信することを特徴とする通信システム。
【請求項2】
前記複数の通信端末の各々は、
前記スタートリクエスト信号の送信を行ってから所定のタイムアウト時間内に前記更新用プログラムデータを受信できなかった場合には、前記スタートリクエスト信号を再び前記ホスト装置に送信する再送信を行い、
前記ホスト装置は、前記複数の通信端末の各々のうちで最も早く前記スタートリクエスト信号の前記再送信を行った通信端末に前記許可信号を送信し、前記データリクエスト信号の受信に応じて前記更新用プログラムデータを再びブロードキャスト送信することを特徴とする請求項
1に記載の通信システム。
【請求項3】
前記メモリは、前記プログラムデータが格納されている書換可能なユーザ領域と、前記プログラムデータの更新を行うための更新用プログラムが格納されている書換不可なシステム領域と、を含み、
前記複数の通信端末の各々は、前記配信準備完了信号の受信に応じて、前記ユーザ領域に格納されている前記プログラムデータを消去し、前記更新用プログラムデータの受信に応じて前記更新用プログラムデータを前記ユーザ領域に書き込むことを特徴とする請求項1
又は2に記載の通信システム。
【請求項4】
前記複数の通信端末の各々は、前記プログラムデータの更新処理中であるか否かを表す更新状態フラグ及び前記ユーザ領域内の書換中のセクタ番号を示す書換中セクタ番号を記憶する不揮発性メモリを更に含むことを特徴とする請求項
3に記載の通信システム。
【請求項5】
前記複数の通信端末の各々は、
前記プログラムデータの更新処理中にリセット処理が行われた場合には、前記不揮発
性メモリから前記更新状態フラグ及び前記書換中セクタ番号を読み出し、
当該更新状態フラグが前記プログラムデータの更新処理中であることを示す場合には前記書換中セクタ番号にて示される前記ユーザ領域内のセクタのデータを消去し、前記スタートリクエスト信号を再び前記ホスト装置に送信する再送信を行うことを特徴とする請求項
4に記載の通信システム。
【請求項6】
前記複数の通信端末の各々はセンサを有し、前記メモリに格納されている前記プログラムデータに従って前記センサで検知された検知情報を前記ホスト装置に送信することを特
徴とする請求項1~
5のいずれか1に記載の通信システム。
【請求項7】
夫々が情報通信を担うプログラムデータが格納されているメモリを有する複数の通信端末と、前記複数の通信端末と通信を行うホスト装置と、を有する通信システムであって、
前記複数の通信端末の各々は、
更新用プログラムデータの配信準備が完了したことを示す配信準備完了信号を前記ホスト装置から受信した場合に
は、前記配信準備完了信号の受信後、乱数に基づくランダムな時間だけ待機してからスタートリクエスト信号を前記ホスト装置に送信し、データ要求を行う権利を付与する許可信号を前記ホスト装置から受信した場合にはデータリクエスト信号を前記ホスト装置に送信し、
前記ホスト装置は、
前記複数の通信端末をn(nは2以上の整数)個のグループに区分けした際の所望の1つの前記グループに属する前記通信端末の各々にだけ前記配信準備完了信号をエニーキャスト送信し、その後、最も早く前記スタートリクエスト信号を送信した1つの通信端末に前記許可信号を送信し、前記データリクエスト信号の受信に応じて前記更新用プログラムデータを前記1つの前記グループに属する前記通信端末の各々にだけエニーキャスト送信することを特徴とする通信システム。
【請求項8】
夫々が情報通信を担うプログラムデータが格納されているメモリを有する複数の通信端末と、前記複数の通信端末と通信を行うホスト装置と、を有する通信システムのプログラム更新方法であって、
前記ホスト装置が、更新用プログラムデータの配信準備が完了したことを示す配信準備完了信号をブロードキャストにて送信し、
前記配信準備完了信号の受信
後、乱数に基づくランダムな時間だけ待機してから前記複数の通信端末の各々がスタートリクエスト信号を前記ホスト装置に送信し、
前記複数の通信端末のうちで最も早く
前記スタートリクエスト信号を送信した1つの通信端末に対して、前記ホスト装置が、データ要求を行う権利を付与する許可信号を送信し、
前記許可信号の受信に応じて前記1つの通信端末がデータリクエスト信号を前記ホスト装置に送信し、
前記データリクエスト信号の受信に応じて前記ホスト装置が前記更新用プログラムデータを前記複数の通信端末にブロードキャスト送信することを特徴とする通信システムのプログラム更新方法
。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の通信端末と、各通信端末との通信を行うホスト装置と、を含む通信システム、及び各通信端末に格納されているプログラムの更新方法に関する。
【背景技術】
【0002】
現在、センサノードと称されるセンサ搭載の無線通信端末を複数配置し、各センサノードのセンサが検知したセンシング情報を、無線中継ノード及び通信ネットワークを介して管理サーバに提供するようにした通信システムが提案されている。各センサノードは、プログラムが格納されているメモリと、当該プログラムに従って上記したセンシング情報の取得及び通信の為の制御を行うマイクロプロセッサと、を含んでいる。
【0003】
ところで、各センサノードのメモリに格納されているプログラムは、不具合が発覚した場合或いは機能変更等により、新たなプログラムへの更新が必要となる。
【0004】
そこで、各センサノードに対するプログラムの更新処理を無線通信で行うようにした通信システムが提案された(例えば、特許文献1参照)。
【0005】
当該通信システムでは、複数のセンサノードのうちで、プログラムの更新処理が必要となるセンサノードが、個別に更新用プログラムの送信元のゲートウェイに対してデータ送信要求を行う。ゲートウェイは、当該データ送信要求を行ったセンサノードに、更新用のプログラムデータを無線送信する。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
よって、上記した通信システムでは、ゲートウェイと各センサノードとの一対一の無線通信によってプログラムデータの配信が行われる。
【0008】
したがって、プログラムの更新対象となるセンサノードの数が多いと、全てのセンサノードに対するプログラム更新が完了するまでに時間が掛るという問題が生じる。特に、送信時間総和に制限がある通信帯域を使用する通信システムでは、プログラム更新に費やされる延べ時間が長大となるので、更新用プログラムデータの送信元のゲートウェイにおいて通信効率が低下する。
【0009】
そこで、本発明は、複数の通信端末に対して、その台数に拘らずプログラムの更新を迅速に行うことが可能な通信システム及びプログラム更新方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係る通信システムは、夫々が情報通信を担うプログラムデータが格納されているメモリを有する複数の通信端末と、前記複数の通信端末と通信を行うホスト装置と、を有する通信システムであって、前記複数の通信端末の各々は、更新用プログラムデータの配信準備が完了したことを示す配信準備完了信号を前記ホスト装置から受信した場合には、前記配信準備完了信号の受信後、乱数に基づくランダムな時間だけ待機してからスタートリクエスト信号を前記ホスト装置に送信し、データ要求を行う権利を付与する許可信号を前記ホスト装置から受信した場合にはデータリクエスト信号を前記ホスト装置に送信し、前記ホスト装置は、前記配信準備完了信号をブロードキャスト送信し、その後、前記複数の通信端末のうちで最も早く前記スタートリクエスト信号を送信した1つの通信端末に前記許可信号を送信し、前記データリクエスト信号の受信に応じて前記更新用プログラムデータを前記複数の通信端末にブロードキャスト送信する。
【0011】
また、本発明に係る通信システムは、夫々が情報通信を担うプログラムデータが格納されているメモリを有する複数の通信端末と、前記複数の通信端末と通信を行うホスト装置と、を有する通信システムであって、前記複数の通信端末の各々は、更新用プログラムデータの配信準備が完了したことを示す配信準備完了信号を前記ホスト装置から受信した場合には、前記配信準備完了信号の受信後、乱数に基づくランダムな時間だけ待機してからスタートリクエスト信号を前記ホスト装置に送信し、データ要求を行う権利を付与する許可信号を前記ホスト装置から受信した場合にはデータリクエスト信号を前記ホスト装置に送信し、前記ホスト装置は、前記複数の通信端末をn(nは2以上の整数)個のグループに区分けした際の所望の1つの前記グループに属する前記通信端末の各々にだけ前記配信準備完了信号をエニーキャスト送信し、その後、最も早く前記スタートリクエスト信号を送信した1つの通信端末に前記許可信号を送信し、前記データリクエスト信号の受信に応じて前記更新用プログラムデータを前記1つの前記グループに属する前記通信端末の各々にだけエニーキャスト送信する。
【0012】
本発明に係るプログラム更新方法は、夫々が情報通信を担うプログラムデータが格納されているメモリを有する複数の通信端末と、前記複数の通信端末と通信を行うホスト装置と、を有する通信システムのプログラム更新方法であって、前記ホスト装置が、更新用プログラムデータの配信準備が完了したことを示す配信準備完了信号をブロードキャストにて送信し、前記配信準備完了信号の受信後、乱数に基づくランダムな時間だけ待機してから前記複数の通信端末の各々がスタートリクエスト信号を前記ホスト装置に送信し、前記複数の通信端末のうちで最も早く前記スタートリクエスト信号を送信した1つの通信端末に対して、前記ホスト装置が、データ要求を行う権利を付与する許可信号を送信し、前記許可信号の受信に応じて前記1つの通信端末がデータリクエスト信号を前記ホスト装置に送信し、前記データリクエスト信号の受信に応じて前記ホスト装置が前記更新用プログラムデータを前記複数の通信端末にブロードキャスト送信する。
【発明の効果】
【0013】
本発明に係る通信システムでは、複数の通信端末の各々に格納されているプログラムを更新するにあたり、ホスト装置が、先ず、配信準備完了信号をブロードキャスト送信する。この配信準備完了信号の受信に応じて複数の通信端末の各々がスタートリクエスト信号をホスト装置に送信する。ホスト装置は、ホスト装置が最も早くスタートリクエスト信号を受信した1つの通信端末に対して、データ要求を行う権利を付与する許可信号を送信する。当該1つの通信端末は、許可信号の受信に応じてデータリクエスト信号をホスト装置に送信する。ホスト装置は、このデータリクエスト信号の受信に応じて更新用プログラムデータを複数の通信端末にブロードキャスト送信する。
【0014】
よって、本発明によれば、ホスト装置が複数の通信端末の各々との一対一の通信によって更新用プログラムデータの配信を行う場合に比べて短い期間でプログラム更新を完了することが可能となる。
【図面の簡単な説明】
【0015】
【
図1】本発明に係る通信システム100の構成を示すブロック図である。
【
図2】通信端末10a~10f各々の内部構成を示すブロック図である。
【
図3】メモリ101のメモリマップの一部を示す図である。
【
図4】ホスト装置30が実行するプログラム配信処理を示すフローチャートである。
【
図5】通信端末10a~10f各々のMCU102が実行するプログラム更新処理を示すフローチャートである。
【
図6】トリガールーチンを示すフローチャートである。
【
図7】ネゴシエーションルーチンを示すフローチャートである。
【
図8】アクティブ書換ルーチンを示すフローチャートである。
【
図9】パッシブ書換ルーチンを示すフローチャートである。
【
図10】終了ルーチンを示すフローチャートである。
【
図11】プログラムの更新時にホスト装置30及び通信端末10a~10f間で行われる通信の手順を示す通信フロー図である。
【
図12】リセット対応ルーチンを示すフローチャートである。
【
図13A】通信エラー発生時における通信端末10a~10c各々のユーザ領域USR内の更新用プログラムデータの第1段階での更新形態の一例を表す図である。
【
図13B】通信エラー発生時における通信端末10a~10c各々のユーザ領域USR内の更新用プログラムデータの第2段階での更新形態の一例を表す図である。
【
図13C】通信エラー発生時における通信端末10a~10c各々のユーザ領域USR内の更新用プログラムデータの第3段階での更新形態の一例を表す図である。
【
図14】本発明に係る他の一例である通信システム200の構成を示すブロック図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
【0017】
図1は、本発明に係る通信システム100の構成を示すブロック図である。
図1に示す通信システム100は、互いに同一構成の通信端末10a~10fと、これら通信端末10a~10fと通信を行うホスト装置30と、を有する。
【0018】
通信端末10a~10fの各々は、例えば工場に備えられている各種の製造装置、或いは建造物の壁、床、又は天井等に設置される。また、通信端末10a~10fの各々を、例えば人又は動物等に携帯、或いは車両、船舶、航空機等の移動体に搭載しても良い。通信端末10a~10fは同一の内部構成を有し、夫々に内蔵されているプログラムに従って動作する。尚、通信端末10a~10fは、ホスト装置30から無線送信された更新用プログラムデータによって、自身に格納されているプログラムの更新を行う機能を有する。
【0019】
図2は、通信端末10a~10f各々の内部構成の一例を示すブロック図である。
【0020】
通信端末10a~10fの各々は、メモリ101、マイクロコントローラ102(以下、MCU102と称する)、センサ104、送受信部105及びアンテナ110を有する。
【0021】
メモリ101は、例えばNAND型フラッシュメモリ等の不揮発性メモリである。
【0022】
図3は、メモリ101のメモリマップの一例を示す図である。メモリ101には、予め、自身の識別番号、通信チャネル番号、及びホスト装置30のアドレスを示すホストアドレスが記憶されている。また、メモリ101には、MCU102により、プログラム更新に必要となる情報として、プログラムの更新処理中であるか否かを表す更新状態フラグFup、及びプログラム書換中のセクタ番号を示す書換中セクタ番号SNが書き込まれる。メモリ101に記憶されている各種情報は、必要に応じてMCU102によって読み出される。
【0023】
乱数生成器103は、乱数を生成してこれをMCU102に供給する。
【0024】
センサ104は、例えば、振動、温度、湿度、気圧、照度、紫外線、音圧、又は地磁気等の自然現象や人工物の機械的、電磁気的、熱的、音響的、又は化学的な性質を物理量で検知し、検知した物理量を表す検知情報をMCU102に供給する。
【0025】
MCU102は、プログラムメモリPM及びタイマTMを内蔵している。
【0026】
タイマTMは、プログラム実行時における処理の待機時間、又はタイムアウト時間等を計測する。また、タイマTMは、乱数生成器103で生成された乱数に基づく時間をランダム時間として設定し、当該ランダム時間の計時を行う。
【0027】
プログラムメモリPMは、データ書換が可能な領域であるユーザ領域USRと、データ書換が不許可な領域であるシステム領域SYSと、を有する。ユーザ領域USRには、通信端末10の主機能を担うメインプログラムを表すプログラムデータが格納されている。システム領域SYSには、メインプログラムの更新を行うための更新用プログラム、無線通信を担うプログラム及びIPL(Initial Program Loader)等が格納されている。
【0028】
MCU102は、電源投入に応じて上記したIPLを実行して自身の初期化を行った後、引き続きユーザ領域USRに格納されているメインプログラムに従った制御を実行する。
【0029】
また、MCU102は、送受信部105から配信準備完了信号を受けると、プログラムメモリPMのシステム領域SYSに格納されている更新用プログラムを読み出し、これを実行することでプログラムデータの更新状態に遷移する(プログラム更新処理)。
【0030】
当該プログラム更新処理により、MCU102は、通信時の応答、承認、又は要求等を表す各種の通信信号を受信又は送信させるように送受信部105を制御する。この際、送受信部105によって受信した更新用プログラムデータを受けた場合には、MCU102は、この更新用プログラムデータで、プログラムメモリPMのユーザ領域USRに格納されているメインプログラムを書き換える。
【0031】
送受信部105は、MCU102の制御により、例えば920MHz帯テレメータ用の搬送波信号を、上記した検知情報を含む端末データで変調した変調信号をアンテナ110を介してホスト装置30に無線送信する。
【0032】
また、送受信部105は、MCU102の制御により、ホスト装置30から無線送信された920MHz帯テレメータ用の電波に対応した高周波信号をアンテナ110を介して受ける。そして、送受信部105は、当該高周波信号に復調処理を施すことで、ホスト装置30から送信された各種通信信号、及び更新用プログラムデータを取得する。
【0033】
上記した構成により、通信端末10a~10fの各々は、自身に搭載されているセンサ104で検知した検知情報を含む端末データをホスト装置30に無線送信する。また、通信端末10a~10fの各々は、ホスト装置30から無線送信された更新用プログラムデータを受信した場合に、この更新用プログラムデータで、自身のプログラムメモリPMに格納されているメインプログラムを書き換える。
【0034】
ホスト装置30は、通信端末10a~10fの各々から無線送信された端末データから検知情報を抽出し、通信端末10a~10fに夫々対応した検知情報を収集した検知情報群を、例えばインターネット等の通信ネットワークNWに送出する。
【0035】
更に、ホスト装置30は、通信システム100の管理者からのプログラム更新要求に応じて、プログラム配信処理を実行する。これにより、ホスト装置30は、例えば920MHz帯テレメータ用の搬送波信号を、通信時の応答、承認、又は要求等を表す各種の通信信号、又は更新用プログラムデータで変調した変調信号を無線送信する。
【0036】
以下に、ホスト装置30で実施されるプログラム配信処理、及び通信端末10a~10fの各々で行われるプログラム更新処理について詳細に説明する。
[ホスト装置30のプログラム配信処理]
図4は、ホスト装置30で実行されるプログラム配信処理の手順を示すフローチャートである。
【0037】
図4において、ホスト装置30は、先ず、プログラムの配信準備が完了したことを示す配信準備完了信号を、通信端末10a~10fに対してブロードキャストにて無線送信する(ステップS11)。
【0038】
次に、ホスト装置30は、スタートリクエスト信号Srqの受信待ち状態となり、スタートリクエスト信号Srqを受信した場合に、スタートリクエスト信号Srqの送信元の通信端末に、承認を表すアクノリッジ信号(以下、ACKと称する)を無線送信する(ステップS12)。
【0039】
次に、ホスト装置30は、ステップS12において最初に受信したスタートリクエスト信号Srqの送信元の通信端末10に、アクティブOK信号を無線送信する(ステップS13)。尚、アクティブOK信号は、ホスト装置30に対してデータ要求を行う権利を付与する許可信号である。ここで、ホスト装置30は、当該スタートリクエスト信号Srqの送信元の通信端末から無線送信されたACKを受信した場合に、このACKの送信元の通信端末をアクティブ端末として設定し、以下のステップS14の実行に移行する。
【0040】
ホスト装置30は、データリクエスト信号Drqの受信待ち状態となり、データリクエスト信号Drqを受信した場合に、このデータリクエスト信号Drqの送信元の通信端末に、ACKを無線送信する(ステップS14)。尚、ホスト装置30は、この間、所定のタイムアウト時間が経過する前にデータリクエスト信号Drqを受信できなかった場合には、アクティブ端末の設定を解除し、引き続き上記ステップS12の実行に戻り、アクティブ端末の設定をやり直す。
【0041】
ステップS14の実行後、ホスト装置30は、受信したデータリクエスト信号Drqに付随する書換アドレス情報に対応した1パケット分の更新用プログラムデータを、当該書換アドレス情報と共にブロードキャストにて無線送信する(ステップS15)。尚、書換アドレス情報とは、各通信端末のプログラムメモリPMのユーザ領域USR内における更新用プログラムデータの書き込み先のアドレスを示す情報である。
【0042】
ステップS15の実行後、ホスト装置30は、書換アドレス情報にて示されるアドレスが、更新用プログラムデータにおける最後の1パケット分が書き込まれるユーザ領域USRの最終アドレスであるか否かを判定する(ステップS16)。ステップS16において最終アドレスでないと判定された場合、ホスト装置30は、上記したステップS14の実行に戻る。
【0043】
よって、上記したステップS14~S16からなる一連の処理を繰り返し実行することで、ホスト装置30は、更新用プログラムデータを1パケット分ずつ順に、ブロードキャスト送信する。
【0044】
そして、ステップS16において最終アドレスであると判定された場合、ホスト装置30は、このプログラム配信処理を終了する。
[通信端末10a~10f各々のプログラム更新処理]
通信端末10a~10f各々のMCU102は、ホスト装置30がブロードキャストにて無線送信した配信準備完了信号を受信すると、プログラムメモリPMのシステム領域に格納されている更新処理用プログラムを読み出す。そして、MCU102は、当該更新処理用プログラムに従ったプログラム更新処理を実行する。
【0045】
図5は、プログラム更新処理の手順を示すフローチャートである。
図5に示すように、MCU102は、トリガールーチンS300、ネゴシエーションルーチンS400、アクティブ書換ルーチンS500(又はパッシブ書換ルーチンS700)、及び終了ルーチンS800を順に実行する。
【0046】
図6は、トリガールーチンS300を示すフローチャートである。
【0047】
図6において、先ず、MCU102は、プログラムメモリPMのユーザ領域USRに格納されているプログラムデータを消去する(ステップS31)。次に、MCU102は、タイマTMにより、乱数生成器103で生成された乱数に基づくランダム時間の分だけ待機してから(ステップS32)、次のネゴシエーションルーチンS400の実行に移る。
【0048】
図7は、ネゴシエーションルーチンS400を示すフローチャートである。
【0049】
図7において、MCU102は、先ず、送受信部105を制御することでスタートリクエスト信号Srqをホスト装置30に無線送信させる(ステップS41)。ここで、上記したように各通信端末10とホスト装置30との間の無線通信は、実際にはMCU102が送受信部105を制御することによって行う。しかしながら、以降、記載を簡略化する為に送受信部105の動作を省略し、MCU102が直にホスト装置30との無線通信(送信、受信)を行うような形態で記載を行う。
【0050】
図6に示すトリガールーチンのステップS32及び上記ステップS41の実行により、MCU102は、配信準備完了信号の受信後、乱数に基づくランダムな時間だけ待機してからスタートリクエスト信号Srqをホスト装置30に無線送信する。
【0051】
次に、MCU102は、所定の初期値からタイマTMの計時を開始させる(ステップS42)。ステップS42の実行後、MCU102は、ACKを受信したか否かを判定する(ステップS43)。ステップS43においてACKを受信したと判定された場合、MCU102は、次に、データ要求を行う権利を付与する許可信号としてのアクティブOK信号を受信したか否かを判定する(ステップS44)。ステップS44においてアクティブOK信号を受信したと判定された場合、MCU102は、ACKをホスト装置30に無線送信する(ステップS45)。次に、MCU102は、タイマTMにより所定時間だけ待機してから(ステップS46)、アクティブ書換ルーチンS500の実行に移る。
【0052】
一方、上記ステップS43でACKを受信していないと判定された場合、又は上記ステップS44でアクティブOK信号を受信していないと判定された場合、MCU102は、タイマTMの計時時間が所定時間を経過したか否かを判定する(ステップS47)。ステップS47において所定時間を経過していないと判定された場合、MCU102は、上記したステップS43の実行に戻る。
【0053】
ステップS47において所定時間を経過したと判定された場合、MCU102は、パッシブ書換ルーチンS700の実行に移る。すなわち、スタートリクエスト信号Srqを送信したものの、ホスト装置30からアクティブOK信号を受けることができなかった、又はスタートリクエスト信号Srqの送信自体が失敗した通信端末10のMCU102は、パッシブ書換ルーチンS700の実行に移る。
【0054】
図8は、アクティブ書換ルーチンS500を示すフローチャートである。
【0055】
図8において、MCU102は、メモリ101に記憶されている更新状態フラグFupとして、プログラムの更新処理中であることを示す論理レベル1を書き込む(ステップS50)。更に、当該ステップS50において、MCU102は、更新用プログラムデータが書き込まれるユーザ領域USR内の先頭アドレスを示す書換アドレス情報を生成する。
【0056】
次に、MCU102は、書換アドレス情報及びデータリクエスト信号Drqをホスト装置30に無線送信する(ステップS51)。次に、MCU102は、ACKを受信したか否かを判定する(ステップS52)。ステップS52においてACKを受信したと判定された場合、MCU102は、更新用プログラムデータを受信したか否かを判定する(ステップS53)。
【0057】
上記したステップS52にてACKを受信していないと判定、又はステップS53にて更新用プログラムデータを受信していないと判定された場合、MCU102は、タイマTMの計時時間が所定のタイムアウト時間を経過したか否かを判定する(ステップS54)。すなわち、ステップS54においてMCU102は、上記したステップS41でスタートリクエスト信号Srqを送信してからタイムアウト時間が経過したか否かを判定する。
【0058】
ステップS54においてタイムアウト時間が経過したと判定された場合、MCU102は、
図7に示すネゴシエーションルーチンのステップS41の実行に戻る。すなわち、MCU102は、スタートリクエスト信号Srqを再びホスト装置30に送信する再送信を行う。
【0059】
一方、ステップS54においてタイムアウト時間を経過していないと判定された場合、MCU102は、上記したステップS52の実行に戻る。
【0060】
ここで、上記ステップS53で更新用プログラムデータを受信したと判定された場合、MCU102は、当該更新用プログラムデータに付随する書換アドレス情報と、ステップS51でデータリクエスト信号Drqと共に無線送信した書換アドレス情報とが一致しているか否かを判定する(ステップS55)。ステップS55において、書換アドレス情報同士が一致していないと判定した場合、MCU102は、上記ステップS51の実行に戻る。また、ステップS55において書換アドレス情報同士が一致していると判定された場合、MCU102は、その書換アドレス情報がプログラムメモリPMのセクタの先頭アドレスを示すか否かを判定する(ステップS56)。
【0061】
ステップS56において、書換アドレス情報がセクタの先頭アドレスを示すと判定された場合、MCU102は、このセクタを示すセクタ番号を
図3に示す書換中セクタ番号SNとしてメモリ101に上書きする(ステップS57)。
【0062】
ステップS57の実行後、又はステップS56にて書換アドレス情報がセクタの先頭アドレスを示していないと判定された場合、MCU102は、プログラムメモリPMのユーザ領域USRにおける書換アドレス情報にて示される位置に、受信した1パケット分の更新用プログラムデータを書き込む(ステップS58)。次に、MCU102は、この書換アドレス情報が上記した最終アドレスを示すか否かを判定する(ステップS59)。ステップS59において書換アドレス情報が最終アドレスを示していないと判定された場合、MCU102は、この書換アドレス情報にて示されるアドレスの値を、ユーザ領域USR内の次の書き込み位置を表す値にインクリメントする(ステップS60)。ステップS60の実行後、MCU102は、上記ステップS51の実行に戻る。
【0063】
また、上記ステップS59において、書換アドレス情報が最終アドレスを示すと判定されると、MCU102は、このアクティブ書換ルーチンを抜けて、次の終了ルーチンS800の実行に移る。
【0064】
図9は、パッシブ書換ルーチンS700を示すフローチャートである。
【0065】
図9において、MCU102は、メモリ101に記憶されている更新状態フラグFupとして、プログラムの更新処理中であることを示す論理レベル1を書き込む(ステップS70)。更に、当該ステップS70において、MCU102は、更新用プログラムデータが書き込まれるユーザ領域USR内の先頭アドレスを示す書換アドレス情報を生成する。
【0066】
次に、MCU102は、更新用プログラムデータを受信したか否かを判定する(ステップS71)。
【0067】
上記ステップS71にて更新用プログラムデータを受信していないと判定された場合、MCU102は、タイマTMの計時時間が所定のタイムアウト時間を経過したか否かを判定する(ステップS72)。すなわち、ステップS72において、MCU102は、上記したステップS41でスタートリクエスト信号Srqを送信してからタイムアウト時間が経過したか否かを判定する。
【0068】
ステップS72においてタイムアウト時間を経過したと判定された場合、MCU102は、
図7に示すネゴシエーションルーチンのステップS41の実行に戻る。すなわち、MCU102は、スタートリクエスト信号Srqを再びホスト装置30に送信する再送信を行う。
【0069】
一方、ステップS72においてタイムアウト時間を経過していないと判定された場合、MCU102は、上記したステップS71の実行に戻る。
【0070】
ステップS71において更新用プログラムデータを受信したと判定された場合、MCU102は、当該更新用プログラムデータに付随する書換アドレス情報と、自身で生成した書込アドレス情報とが一致しているか否かを判定する(ステップS73)。
【0071】
ステップS73において書換アドレス情報同士が一致していると判定された場合、MCU102は、その書換アドレス情報がプログラムメモリPMのセクタの先頭アドレスを示すか否かを判定する(ステップS74)。
【0072】
ステップS74において、書換アドレス情報がセクタの先頭アドレスを示すと判定された場合、MCU102は、このセクタを示すセクタ番号を
図3に示す書換中セクタ番号SNとしてメモリ101に書き込む(ステップS75)。
【0073】
ステップS75の実行後、又はステップS74にて書換アドレス情報がセクタの先頭アドレスを示していないと判定された場合、MCU102は、プログラムメモリPMのユーザ領域USRにおける書換アドレス情報にて示される位置に、受信した1パケット分の更新用プログラムデータを書き込む(ステップS76)。
【0074】
次に、MCU102は、この書換アドレス情報が最終アドレスを示すか否かを判定する(ステップS77)。ステップS77において書換アドレス情報が最終アドレスを示していないと判定された場合、MCU102は、この書換アドレス情報にて示されるアドレスの値を、ユーザ領域USR内の次の書き込み位置を表す値にインクリメントする(ステップS78)。ステップS78の実行後、MCU102は、上記ステップS71の実行に戻る。
【0075】
また、上記ステップS77において、書換アドレス情報が最終アドレスを示すと判定されると、更新用プログラムデータによるプログラムの更新が完了するので、MCU102は、このパッシブ書換ルーチンを抜けて、次の終了ルーチンS800の実行に移る。
【0076】
図10は、終了ルーチンS800を示すフローチャートである。
【0077】
図10において、MCU102は、メモリ101に記憶されている更新状態フラグFupをプログラムの更新処理中ではないことを示す論理レベル0、書換中セクタ番号SNを初期値としての0に夫々書き換える(ステップS80)。ステップS80の実行後、MCU102は、タイマTMにより、乱数生成器103で生成された乱数に基づくランダム時間の分だけ待機(ステップS81)してから、ソフトウェアリセットを行う(ステップS82)。
【0078】
以下に、上記したホスト装置30のプログラム配信処理、及び通信端末10a~10f各々のプログラム更新処理によって行われる通信動作について、
図11に示す通信フローに沿って説明する。
【0079】
図11に示すように、プログラムの更新は、以下のトリガステップTRG、ネゴシエーションステップNEG、アクティブ書換ステップWTa又はパッシブ書換ステップWTp、及び終了ステップENXの順に行われる。
【0080】
尚、
図11では、通信端末10a~10fのうちの通信端末10aと、その他の通信端末10b~10fと、ホスト装置30と、に分けて各通信端末とホスト装置間の通信動作の一例を示している。
【0081】
[トリガステップTRG]
まず、ホスト装置30が、更新用プログラムデータの配信準備が完了したことを示す配信準備完了信号を、ブロードキャストにて無線送信する。通信端末10a~10fは、配信準備完了信号を受信すると、夫々個別に
図6に示すトリガールーチンを実行する。これにより、通信端末10a~10fの各々は、自身のプログラムメモリPMのユーザ領域USRに格納されているデータ、つまりプログラムデータを全て消去する(S31)。このデータ消去が終了すると、通信端末10a~10fは、夫々の乱数生成器103で生成された乱数に基づくランダム時間だけ待機(S32)してから、次のネゴシエーションステップNEGの処理に移行する。
【0082】
尚、
図11に示す一例では、通信端末10aでのランダム時間taは、通信端末10b~10fのランダム時間tb~tfよりも短い。
【0083】
[ネゴシエーションステップNEG]
通信端末10a~10fは個別に、自身のユーザ領域USRに格納されているデータの消去が完了してから、夫々のランダム時間ta~tfが経過した時点で、スタートリクエスト信号Srqをホスト装置30に無線送信する(S41)。ホスト装置30は、スタートリクエスト信号Srqを受信した場合に、このスタートリクエスト信号Srqの送信元の通信端末10に対してACKを無線送信する(S12)。ここで、ホスト装置30は、配信準備完了信号の送信(S11)の終了後、或いはアクティブ端末としての設定を解除した後で、最初にスタートリクエスト信号Srqを送信した通信端末10を、アクティブ端末として設定(S13)する。そして、この通信端末10に対して、データ要求を行う権利を付与する許可信号であるアクティブOK信号を無線送信する(S13)。この際、アクティブOK信号を受信した通信端末10は、ACKをホスト装置30に無線送信する(S45)。
【0084】
尚、
図11に示す一例では、前述したように通信端末10a~10fのうちで10aが最も早くスタートリクエスト信号Srqを送信する。よって、この際、ホスト装置30は、
図11に示すように、通信端末10a~10fのうちの10aのみにアクティブOK信号を無線送信する。
【0085】
ここで、アクティブOK信号を受信した通信端末、つまりアクティブ端末に設定された通信端末10aは、所定時間待機(S46)した後、アクティブ書換ステップWTaの処理に移行する。一方、所定時間内にアクティブOK信号を受信しなかったと判定(S44、S47)された通信端末、及びスタートリクエスト信号Srqの送信に失敗した通信端末、つまり通信端末10b~10fは、パッシブ書換ステップWTpの処理に移行する。
[アクティブ書換ステップWTa]
アクティブOK信号を受信した通信端末10aは、先ず、ユーザ領域USR内に、更新用プログラムデータの1パケット分を書き込む為のアドレスを示す書換アドレス情報を含むデータリクエスト信号Drqをホスト装置30に無線送信する(S51)。ホスト装置30は、当該データリクエスト信号Drqを受信すると、先ず、承認を表すACKをデータリクエスト信号Drqの送信元の通信端末10aに無線送信する(S14)。そして、ホスト装置30は、上記した書換アドレス情報に示されるアドレスに対応した1パケット分の更新用プログラムデータ(書換アドレス情報を含む)を、ブロードキャストにて通信端末10a~10fに無線送信する(S15)。
【0086】
この更新用プログラムデータ(書換アドレス情報を含む)を受信した通信端末10aは、ユーザ領域USR内のセクタの先頭でデータ書換中であることを記録する為に、そのセクタ番号表す書換中セクタ番号SNを、メモリ101に書き込む(S57)。そして、通信端末10aは、ユーザ領域USR内における書換アドレス情報にて示されるアドレスに、受信した1パケット分の更新用プログラムデータを書き込む(S58)。
[パッシブ書換ステップWTp]
一方、アクティブOK信号を受信しなかった通信端末10b~10fは、上記したネゴシエーションステップNEGの終了後、更新用プログラムデータの受信待ち(S71、S72)となる。ここで、更新用プログラムデータ(書換アドレス情報を含む)を受信した通信端末10b~10fの各々は、通信端末10aと同様に、自身のユーザ領域USR内のセクタの先頭でデータ書換中であることを記録する為に、そのセクタ番号表す書換中セクタ番号SNを、メモリ101に書き込む(S75)。そして、通信端末10b~10fの各々は、自身のユーザ領域USR内における書換アドレス情報にて示されるアドレスに、受信した1パケット分の更新用プログラムデータを書き込む(S76)
当該パッシブ書換ステップWTp及びアクティブ書換ステップWTaでは、上記した一連の処理、つまり
図11において破線にて囲まれた書込処理WDを、書換アドレス情報にて示されるアドレスが最終アドレスに到るまで繰り返し実行する。これにより、更新用プログラムデータの全てが1パケット分ずつ順に、通信端末10a~10f各々のプログラムメモリPMのユーザ領域USRに書き込まれて行く。
【0087】
ここで、上記したパッシブ書換ステップWTp及びアクティブ書換ステップWTaでの更新用プログラムデータの書き込みが完了すると、通信端末10a~10fは、終了ステップENXの処理に移行する。
[終了ステップENX]
通信端末10a~10fの各々は、更新状態フラグFupをプログラムの更新処理中ではないことを示す論理レベル0、書換中セクタ番号SNを初期値としての0に夫々リセット(S80)すると共に、ソフトウェアリセット(S82)を行う。
【0088】
上記したように、通信システム100では、ホスト装置30が、更新用プログラムデータを全ての通信端末10a~10fに対してブロードキャストにて無線送信する。よって、ホスト装置30が通信端末10a~10fに対して一対一の通信で順次、更新用プログラムデータの配信を行う場合に比べて短い期間でプログラム更新を完了することが可能となる。
【0089】
尚、上記した実施例では、通信システム100に含まれる通信端末は10a~10fの6個であるが、少なくとも2つ以上の複数であれば良い。また、上記実施例では、ホスト装置及30と、通信端末10a~10f各々との間の通信を無線で行っているが有線通信で行っても良い。
【0090】
要するに、通信システム100としては、夫々が情報通信を担うプログラムデータが格納されているメモリ(PM)を有する複数の通信端末(10a~10f)と、ホスト装置(30)とを含むものであれば良い。複数の通信端末の各々は、更新用プログラムデータの配信準備が完了したことを示す配信準備完了信号をホスト装置から受信した場合に、スタートリクエスト信号(Srq)をホスト装置(30)に送信する(S41)。更に、複数の通信端末(10a~10f)の各々は、データ要求を行う権利を付与する許可信号(アクティブOK信号)をホスト装置から受信(S44)した場合にはデータリクエスト信号(Drq)をホスト装置に送信する(S51)。
【0091】
ホスト装置(30)は、上記した配信準備完了信号をブロードキャスト送信し(S11)。その後、複数の通信端末のうちで最も早くスタートリクエスト信号(Srq)を送信した1つの通信端末に、上記した許可信号(アクティブOK信号)を送信する(S13)。その後、ホスト装置は、データリクエスト信号(Drq)の受信(S14)に応じて、更新用プログラムデータをブロードキャスト送信する(S15)。
【0092】
尚、通信システム100では、プログラム更新処理途中における、不慮のリセット、バッテリ残量不足等に伴う電源遮断、或いは通信エラーへの対処を行っている。
[リセット発生又は電源遮断時の対処]
例えば、プログラム更新処理途中でリセットが生じた場合、通信端末10a~10f各々のMCU102は、リセット処理後、プログラムメモリPMのシステム領域SYSに格納されている更新処理プログラム中のリセット対応ルーチンを実行する。また、MCU102は、プログラム更新処理途中に電源遮断が生じた場合にも、その後の電源投入に応じて、このリセット対応ルーチンを実行する。
【0093】
図12は、リセット対応ルーチンを示すフローチャートである。
【0094】
図12において、先ず、MCU102は、
図3に示すようにメモリ101に書き込まれている内容を読み出す(ステップS90)。次に、MCU102は、
図3に示す更新状態フラグFupが、プログラムの更新処理中であることを示す論理レベル1であるか否かを判定する(ステップS91)。ステップS91において更新状態フラグFupが論理レベル1ではないと判定された場合には、プログラム更新中のリセットではないので、MCU102は、このリセット対応ルーチンを抜けてメインプログラムの動作に戻る。一方、更新状態フラグFupが論理レベル1である場合には、プログラム更新中のリセットであるため、書き込み途中のセクタには更新用プログラムデータの一部が書き込まれていない虞がある。
【0095】
そこで、ステップS91で更新状態フラグFupが論理レベル1であると判定された場合、MCU102は、
図3に示す書換中セクタ番号SNにて示されるユーザ領域USR内のセクタに対してデータの消去処理を施す(ステップS92)。次に、MCU102は、乱数生成器103で生成された乱数に基づくランダム時間の分だけ待機し(ステップS93)、引き続き
図7に示すネゴシエーションルーチンの実行に移る。
【0096】
上記したリセット対応ルーチンの実行により、通信端末10a~10fの各々は、リセット後、そのリセットの発生時点で更新用プログラムデータの書き込み対象となっていたセクタに対して、更新用プログラムデータの再書き込みが行われる。
【0097】
これにより、プログラムの更新途中でリセット又は電源遮断が生じても、プログラムの更新を正しく行うことが可能となる。
[通信エラー発生時の対処]
一時的に通信エラーが生じると、その間、通信端末10a~10fは、更新用プログラムデータを受けることができなくなるが、その後、正常な通信が再開されると各通信端末10a~10fは、更新用プログラムデータの受信が可能となる。しかしながら、通信が正常化するまでにかかる時間が長くなる場合には、その間、ホスト装置30側で繰り返し更新用プログラムデータの送信を実施しなければならない。よって、無効な通信を実施する期間が長くなることから、通信効率の低下及び電力消費量の増加を招く。また、送信時間総和が規定されている場合、ホスト装置30は、更新用プログラムデータの送信に多くの時間を費やしてしまうので、他の用途を担う送信に割り当てる時間を確保できなくなるという、通信効率の低下を招く。
【0098】
そこで、各通信端末10a~10fは、更新用プログラムデータの受信待ちに対してタイムアウトを設定し(S54、S72)、タイムアウト時には
図7に示すネゴシエーション処理の実行に戻る。これにより、
図11に示すネゴシエーションステップNEGから、プログラム更新処理をやり直す。
【0099】
以下に、上記した処理による、通信エラー発生時のプログラム更新動作について説明する。
【0100】
図13Aは、通信エラー発生時の通信端末10a~10c各々のユーザ領域USR内の書込状態(書込済:斜線、未書込:空白)の一例を表す図である。尚、
図13Aでは、アクティブ端末として設定された通信端末10aでは、アクティブ書換(WTa)により自身のユーザ領域USR内に更新用プログラムデータの書き込みが完了している。しかしながら、通信エラーに伴い、通信端末10bでは、自身のユーザ領域USR内のセクタW以降はデータ未書き込みであり、通信端末10cでは、自身のユーザ領域USR内のセクタJ以降はデータ未書き込みである。
【0101】
当該通信エラーの影響により、通信端末10b及び10cでは、タイムアウトとなり(S72)、再びネゴシエーションステップNEGが実施される。よって、通信端末10b及び10cは、スタートリクエスト信号Srqを再びホスト装置30に無線送信する(S41)。
【0102】
ここで、通信端末10bよりも10cの方が先にスタートリクエスト信号Srqをホスト装置30に送信した場合、通信端末10cがアクティブ端末として設定される。よって、当該通信端末10cは、セクタJの先頭アドレス以降の更新用プログラムデータを要求する為のアドレスを示す書換アドレス情報と共にデータリクエスト信号Drqをホスト装置30に無線送信する(S51)。これに応じて、ホスト装置30は、セクタJの先頭アドレスに対応した更新用プログラムデータをブロードキャストにて無線送信する(S15)。この際、通信端末10cは、
図13Bに示すように、自身のユーザ領域USRのセクタJの先頭アドレスから、受信した更新用プログラムデータを書き込む(S58)。
【0103】
一方、通信端末10bは、受信した書換アドレス情報が、自身が所望とする書換アドレス(W)とは異なるので受信待ち状態となる(S73、S71)。この間、通信端末10cにおいて、
図13Bに示すように更新用プログラムデータの書き込みが完了すると、更新用プログラムデータのブロードキャスト送信が行われなくなる。これにより、通信端末10bでは、タイマTMの計時時間がクリアされないので、受信待ちがタイムアウトし(S72)、再びネゴシエーションステップNEGが実施される。よって、通信端末10bは、スタートリクエスト信号Srqをホスト装置30に無線送信する(S41)。これにより、通信端末10cが新たなアクティブ端末として設定され、当該通信端末10cは、セクタWの先頭アドレス以降の更新用プログラムを要求する為のアドレスを示す書換アドレス情報と共にデータリクエスト信号Drqをホスト装置30に無線送信する(S51)。これに応じて、ホスト装置30は、セクタWの先頭アドレスに対応した更新用プログラムをブロードキャストにて無線送信する(S15)。よって、通信端末10bは、
図13Cに示すように、自身のユーザ領域USRのセクタWの先頭アドレスから、受信した更新用プログラムを書き込む(S58)。
【0104】
このように、各通信端末10は、更新用プログラムの受信待ちに対してタイムアウト時間を設定し、プログラム更新処理中の通信エラーによってタイムアウトした場合には、アクティブ端末を決定するネゴシエーション(NEG)をやり直す。これにより、通信エラーが継続している間に亘り、ホスト装置30が更新用プログラムデータの送信を繰り返し実行する場合に比べて、無効な通信が行われる期間を短くすることが可能となる。よって、通信効率の低下及び無効な電力消費が抑えられる。また、無効な通信が行われる期間を短くすることができるので、送信時間総和が規定されている場合でも、ホスト装置30は、更新用プログラムデータ以外の他のデータ送信を行うことが可能となる。
【0105】
ところで、
図1に示す通信システム100では、ホスト装置30が更新用プログラムを全ての通信端末10a~10fにブロードキャスト送信している。しかしながら、通信端末10a~10fを複数のグループに分け、特定のグループに属する通信端末群のみに更新用プログラムデータをエニーキャストで配信するようにしても良い。
【0106】
図14は、かかる点に鑑みて成された通信システム200の構成を示すブロック図である。通信システム200では、ホスト装置30及び通信端末10a~10f間において、例えばIEE(Institute of Electrical and Electronics Engineers) 802.15.4規格に準拠した無線通信を行う。また、通信システム200では、通信端末10a~10fを10a~10cからなる第1のグループGP1と、10d~10fからなる第2のグループGP2とに分け、夫々に異なるPAN(Personal Area Network)IDを割り当てる。
【0107】
ホスト装置30は、
図11に示すトリガステップTRGにて、グループGP1及びGP2のうちでプログラム更新を必要とするグループにだけ、そのグループに対応したPAN IDを利用して配信準備完了信号をエニーキャストにて無線送信する。それ以降の処理については、
図11に示す通信フローによって示されるものと同一である。よって、ホスト装置30が例えばグループGP1にだけ配信準備完了信号を送信した場合には、ホスト装置30は、グループGP2に属する通信端末群に対しては更新用プログラムデータの送信は行わない。
【0108】
このように、
図14に示す通信システム200によれば、全ての通信端末10のうちで、プログラム更新の要望があるグループに属する通信端末10だけにプログラムの更新処理を施すことが可能となる。例えば、センサ104として、温度センサを搭載している通信端末をグループGP1、加速度センサを搭載している通信端末をグループGP2にグループ分けした場合、グループGP1にだけエニーキャストにて更新用プログラムデータを配信できる。よって、温度センサに関するプログラムを搭載していない、グループGP2に属する通信端末群には更新用プログラムデータが配信されないので、無効な通信及び電力消費を省くことが可能となる。
【0109】
また、上記したように、通信端末に搭載されているセンサ104の機能別にグループ分けする以外にも、通信端末を設置する場所単位でグループ分けを行っても良い。例えば、工場Aに設置する通信端末群をグループGP1、工場Bに設置する通信端末群をグループGP2とすることで、プログラム更新を必要としている工場に設置されている通信端末群のみに、更新用プログラムデータを配信することが可能となる。
【0110】
尚、
図14に示す実施例では、通信システム200に含まれる通信端末は10a~10fの6個であるが、少なくとも2つ以上の複数であれば良い。また、上記実施例では、通信端末は10a~10fを2つのグループGP1及びGP2に分けているが、グループ分けする数は3個以上であっても良く、また各グループに属する通信端末の数も2つ以上の複数であれば良い。
【0111】
要するに、通信システム200に含まれている、夫々が情報通信を担うプログラムデータが格納されているメモリ(PM)を有する複数の通信端末と、ホスト装置として、以下のような構成を採用すれば良いのである。つまり、複数の通信端末(10a~10f)の各々は、更新用プログラムデータの配信準備が完了したことを示す配信準備完了信号をホスト装置(30)から受信した場合に、スタートリクエスト信号(Srq)をホスト装置に送信する(S41)。更に、複数の通信端末の各々は、データ要求を行う権利を付与する許可信号(アクティブOK信号)をホスト装置から受信(S44)した場合には、データリクエスト信号(Drq)をホスト装置に送信する(S51)。
【0112】
ホスト装置(30)は、複数の通信端末をn(nは2以上の整数)個のグループに区分けした際の所望の1つのグループに属する通信端末の各々にだけ配信準備完了信号をエニーキャスト送信する。その後、ホスト装置は、複数の通信端末のうちで最も早くスタートリクエスト信号(Srq)を送信した1つの通信端末に上記許可信号(アクティブOK信号)を送信する(S13)。そして、ホスト装置は、データリクエスト信号(Drq)の受信(S14)に応じて、更新用プログラムデータを上記した1つのグループに属する通信端末にエニーキャスト送信する。
【符号の説明】
【0113】
10a~10f 通信端末
30 ホスト装置
100 通信システム
101 メモリ
102 MCU
103 乱数生成器
104 センサ
105 送受信部
PM プログラムメモリ