(57)【要約】【課題】プログラムデータの更新時間の短縮化を実現させることができるプログラムデータ書き換え方法、制御装置、プログラムデータ書き換え用プログラム、記録媒体及びツール装置を提供する。【解決手段】制御装置、プログラムデータ書き換え用プログラム、記録媒体及びツール装置によるプログラムデータ書き換え方法は、新バージョンのテーブルデータにおけるバージョン情報と旧バージョンのバージョン情報とをセクタ単位で比較して、新バージョンのプログラムデータのうち、旧バージョンのバージョン情報とは異なるセクタに対応するプログラムデータのみを制御装置に送信し、制御装置においてデータ更新用プログラムにより、記憶部に記憶されている旧バージョンのプログラムデータのうち、制御装置に送信されてきた新バージョンのプログラムデータのみを書き換える。【選択図】図９
2014211823.tif 000002
【特許請求の範囲】
【請求項１】
データ書き換え可能な記憶部を備えた制御装置における前記記憶部にセクタ単位で予め記憶されているプログラムデータの新旧を前記セクタ単位で比較して書き換えるプログラムデータ書き換え方法であって、
前記プログラムデータの前記セクタ毎のバージョン情報を有するテーブルデータを作成し、
新バージョンの前記テーブルデータにおける前記バージョン情報と旧バージョンの前記バージョン情報とを前記セクタ単位で比較して、新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信し、
前記制御装置において前記各セクタの前記バージョン情報を集中管理しているデータ更新用プログラムにより、前記記憶部に記憶されている旧バージョンの前記プログラムデータのうち、前記制御装置に送信されてきた新バージョンの前記プログラムデータのみを書き換えることを特徴とするプログラムデータ書き換え方法。
【請求項２】
請求項１に記載のプログラムデータ書き換え方法であって、
新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信するにあたり、一の単一のセクタに対応するプログラムデータを送信して前記制御装置において該一の単一のセクタに対応するプログラムデータの書き換えが完了する毎に、他の単一のセクタに対応するプログラムデータを送信することを特徴とするプログラムデータ書き換え方法。
【請求項３】
データ書き換え可能な記憶部を備え、前記記憶部にセクタ単位で予め記憶されているプログラムデータの新旧を前記セクタ単位で比較して書き換えるツール装置と通信する制御装置であって、
前記各セクタのバージョン情報を集中管理しているデータ更新用プログラムにより、前記プログラムデータの前記セクタ毎に関連付けられた旧バージョンの前記バージョン情報を有するテーブルデータを前記ツール装置に送信し、前記記憶部に記憶されている旧バージョンの前記プログラムデータのうち、前記ツール装置から送信されてきた新バージョンの前記プログラムデータのみを書き換え、かつ、旧バージョンの前記テーブルデータにおける前記バージョン情報を前記ツール装置から送信されてきた新バージョンの前記バージョン情報に書き換えることを特徴とする制御装置。
【請求項４】
データ書き換え可能な記憶部を備えた制御装置における前記記憶部にセクタ単位で予め記憶されているプログラムデータの新旧を前記セクタ単位で比較して書き換えるツール装置において実行されるプログラムデータ書き換え用プログラムであって、
前記プログラムデータの前記セクタ毎のバージョン情報を有するテーブルデータを前記ツール装置における記録部に記録する記録制御ステップと、
新バージョンの前記テーブルデータにおける前記バージョン情報と旧バージョンの前記バージョン情報とを前記セクタ単位で比較する比較制御ステップと、
新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信するプログラムデータ送信制御ステップと、
新バージョンの前記テーブルデータにおける前記バージョン情報を前記制御装置に送信するバージョン情報送信制御ステップと
を含むことを特徴とするプログラムデータ書き換え用プログラム。
【請求項５】
請求項４に記載のプログラムデータ書き換え用プログラムであって、
前記プログラムデータ送信制御ステップでは、新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信するにあたり、一の単一のセクタに対応するプログラムデータを送信して前記制御装置において該一の単一のセクタに対応するプログラムデータの書き換えが完了する毎に、他の単一のセクタに対応するプログラムデータを送信することを特徴とするプログラムデータ書き換え用プログラム。
【請求項６】
請求項５に記載のプログラムデータ書き換え用プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
データ書き換え可能な記憶部を備えた制御装置における前記記憶部にセクタ単位で予め記憶されているプログラムデータの新旧を前記セクタ単位で比較して書き換えるツール装置であって、
前記プログラムデータの前記セクタ毎のバージョン情報を有するテーブルデータを前記ツール装置における記録部に記録する記録制御手段と、
新バージョンの前記テーブルデータにおける前記バージョン情報と旧バージョンの前記バージョン情報とを前記セクタ単位で比較する比較制御手段と、
新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信するプログラムデータ送信制御手段と、
新バージョンの前記テーブルデータにおける前記バージョン情報を前記制御装置に送信するバージョン情報送信制御手段と
を備えることを特徴とするツール装置。
【請求項８】
請求項７に記載のツール装置であって、
前記プログラムデータ送信制御手段は、新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信するにあたり、一の単一のセクタに対応するプログラムデータを送信して前記制御装置において該一の単一のセクタに対応するプログラムデータの書き換えが完了する毎に、他の単一のセクタに対応するプログラムデータを送信することを特徴とするツール装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ書き換え可能な記憶部を備えた制御装置における記憶部に予め記憶されているプログラムデータの新旧を書き換えるプログラムデータ書き換え方法、制御装置、プログラムデータ書き換え用プログラム、記録媒体及びツール装置に関する。
【背景技術】
【０００２】
データ書き換え可能な記憶部を備えた制御装置における記憶部に予め記憶されているプログラムデータの新旧を書き換える書き換え技術として、特許文献１には、ファームウェアのバージョンアップ時に、変更のあるモジュール群が格納された領域のみを書き換える書き換え技術が開示されている。
【０００３】
ところが、特許文献１に記載の書き換え技術では、プログラムデータの書き換え動作がモジュール単位で行われるため、モジュールの開始アドレス等の確保が必要となり、自由なアドレス配置が困難となり、それだけプログラム開発の制約を招く。
【０００４】
これに対し、特許文献２には、記憶媒体に記憶されているソフトウェアの全データと最新のソフトウェアの全データとをセクタ単位で比較し、両者の間でデータが異なるセクタを検出し、検出されたセクタのデータのみを書き換えるにあたって、最新のファームウェアの全データをダウンロードし、ダウンロードした最新のファームウェアをＳＤＲＡＭの所定領域に格納する書き換え技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３４２１００号公報
【特許文献２】特開２００６−１５４９８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献２に記載の書き換え技術では、プログラムデータ（ファームウェア）の書き換え動作がセクタ単位で行われるものの、一旦、ＳＤＲＡＭに最新のプログラムデータの全データを送信（ダウンロード）しなければならず、プログラムデータの送信を行うための送信時間が大きくなり、それだけ書き換え時間が増加する。特に、制御装置に対して通信する通信手段として、高速通信手段を持ち合わせていない場合において、例えば、プログラムデータを２０ＭＢ（バイト）のサイズのものとし、通信手段を１００ｋｂｐｓ（ビット／秒）の通信速度のものとすると、送信時間は約２８分（１６７８秒）となり、それだけプログラムデータの更新作業に時間を要することになる。
【０００７】
そこで、本発明は、プログラムデータの更新時間の短縮化を実現させることができるプログラムデータ書き換え方法、制御装置、プログラムデータ書き換え用プログラム、記録媒体及びツール装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、前記課題を解決するために、次のプログラムデータ書き換え方法、制御装置、プログラムデータ書き換え用プログラム、記録媒体及びツール装置を提供する。
【０００９】
（１）プログラムデータ書き換え方法
データ書き換え可能な記憶部を備えた制御装置における前記記憶部にセクタ単位で予め記憶されているプログラムデータの新旧を前記セクタ単位で比較して書き換えるプログラムデータ書き換え方法であって、前記プログラムデータの前記セクタ毎のバージョン情報を有するテーブルデータを作成し、新バージョンの前記テーブルデータにおける前記バージョン情報と旧バージョンの前記バージョン情報とを前記セクタ単位で比較して、新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信し、前記制御装置において前記各セクタの前記バージョン情報を集中管理しているデータ更新用プログラムにより、前記記憶部に記憶されている旧バージョンの前記プログラムデータのうち、前記制御装置に送信されてきた新バージョンの前記プログラムデータのみを書き換えることを特徴とするプログラムデータ書き換え方法。
【００１０】
（２）制御装置
データ書き換え可能な記憶部を備え、前記記憶部にセクタ単位で予め記憶されているプログラムデータの新旧を前記セクタ単位で比較して書き換えるツール装置と通信する制御装置であって、前記各セクタのバージョン情報を集中管理しているデータ更新用プログラムにより、前記プログラムデータの前記セクタ毎に関連付けられた旧バージョンの前記バージョン情報を有するテーブルデータを前記ツール装置に送信し、前記記憶部に記憶されている旧バージョンの前記プログラムデータのうち、前記ツール装置から送信されてきた新バージョンの前記プログラムデータのみを書き換え、かつ、旧バージョンの前記テーブルデータにおける前記バージョン情報を前記ツール装置から送信されてきた新バージョンの前記バージョン情報に書き換えることを特徴とする制御装置。
【００１１】
（３）プログラムデータ書き換え用プログラム
データ書き換え可能な記憶部を備えた制御装置における前記記憶部にセクタ単位で予め記憶されているプログラムデータの新旧を前記セクタ単位で比較して書き換えるツール装置において実行されるプログラムデータ書き換え用プログラムであって、前記プログラムデータの前記セクタ毎のバージョン情報を有するテーブルデータを前記ツール装置における記録部に記録する記録制御ステップと、新バージョンの前記テーブルデータにおける前記バージョン情報と旧バージョンの前記バージョン情報とを前記セクタ単位で比較する比較制御ステップと、新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信するプログラムデータ送信制御ステップと、新バージョンの前記テーブルデータにおける前記バージョン情報を前記制御装置に送信するバージョン情報送信制御ステップとを含むことを特徴とするプログラムデータ書き換え用プログラム。
【００１２】
（４）記録媒体
前記本発明に係るプログラムデータ書き換え用プログラムを記録したコンピュータ読み取り可能な記録媒体。
【００１３】
（５）ツール装置
データ書き換え可能な記憶部を備えた制御装置における前記記憶部にセクタ単位で予め記憶されているプログラムデータの新旧を前記セクタ単位で比較して書き換えるツール装置であって、前記プログラムデータの前記セクタ毎のバージョン情報を有するテーブルデータを前記ツール装置における記録部に記録する記録制御手段と、新バージョンの前記テーブルデータにおける前記バージョン情報とを旧バージョンの前記バージョン情報とを前記セクタ単位で比較する比較制御手段と、新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信するプログラムデータ送信制御手段と、新バージョンの前記テーブルデータにおける前記バージョン情報を前記制御装置に送信するバージョン情報送信制御手段とを備えることを特徴とするツール装置。
【００１４】
本発明に係るプログラムデータ書き換え方法において、新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信するにあたり、一の単一のセクタに対応するプログラムデータを送信して前記制御装置において該一の単一のセクタに対応するプログラムデータの書き換えが完了する毎に、他の単一のセクタに対応するプログラムデータを送信する態様を例示できる。本発明に係るプログラムデータ書き換え用プログラムにおいて、前記プログラムデータ送信制御ステップでは、新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信するにあたり、一の単一のセクタに対応するプログラムデータを送信して前記制御装置において該一の単一のセクタに対応するプログラムデータの書き換えが完了する毎に、他の単一のセクタに対応するプログラムデータを送信する態様を例示できる。また、本発明に係るツール装置において、前記プログラムデータ送信制御手段は、新バージョンの前記プログラムデータのうち、旧バージョンの前記バージョン情報とは異なるセクタに対応するプログラムデータのみを前記制御装置に送信するにあたり、一の単一のセクタに対応するプログラムデータを送信して前記制御装置において該一の単一のセクタに対応するプログラムデータの書き換えが完了する毎に、他の単一のセクタに対応するプログラムデータを送信する態様を例示できる。
【発明の効果】
【００１５】
本発明によると、前記プログラムデータを送信するための送信時間、ひいては前記プログラムデータの更新時間の短縮化を実現させることが可能となる。
【図面の簡単な説明】
【００１６】
【図１】プログラムデータ書き換えシステムの全体構成を模式的に示す概略構成図である。
【図２】図１に示すコントローラのハードウェア構成の一例を示すシステムブロック図である。
【図３】図１に示すツール装置のハードウェア構成の一例を示すシステムブロック図である。
【図４】旧バージョンのプログラムデータ及び旧バージョンのテーブルデータを含むデータのデータ構造の一例を示す模式図である。
【図５】新バージョンのプログラムデータ及び新バージョンのテーブルデータを含むデータのデータ構造の一例を示す模式図である。
【図６】バージョン情報におけるプログラムデータの番号及びバージョン番号を付ける位置を示すバージョン情報の説明図である。
【図７】プログラムデータ書き換えシステムにおけるプログラムデータ書き換え処理の一例の前半部分を示すフローチャートである。
【図８】プログラムデータ書き換えシステムにおけるプログラムデータ書き換え処理の一例の後半部分を示すフローチャートである。
【図９】図７及び図８に示すフローチャートの処理動作を説明するための説明図であって、ツール装置とコントローラとの間でのデータの受け渡し状態を示す図である。
【図１０】図７及び図８に示すフローチャートの処理動作を説明するための説明図であって、新バージョンのプログラムデータ及びテーブルデータを有するツール装置から旧バージョンのプログラムデータ及びテーブルデータを有するコントローラにプログラムデータをセクタ毎に送信する際のプログラムデータの送信順を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について添付図面を参照しつつ説明する。
【００１８】
［プログラムデータ書き換えシステムの全体構成］
図１は、プログラムデータ書き換えシステム３００の全体構成を模式的に示す概略構成図である。
【００１９】
図１に示すように、プログラムデータ書き換えシステム３００は、コントローラ１００（制御装置の一例）とツール装置２００とを備えている。
【００２０】
プログラムデータ書き換えシステム３００において、コントローラ１００は、ツール装置２００と通信するものであり、ツール装置２００は、ここでは、コンピュータ（具体的にはパーソナルコンピュータ）とされている。コントローラ１００は、それには限定されないが、例えば、コンバイン、耕耘機や田植機等の走行作業機械、或いは、トラクター、ショベルカー、ホイルローダやキャリヤ等の建設作業機械といった走行作業機や、プレジャーボート、漁船といった船舶などの物品４００における表示操作装置４１０に備えられている。ツール装置２００は、本実施の形態では、コントローラ１００に所定の通信接続手段１０１を介して接続され、後述するプログラムデータ書き換え用プログラムＰＰによって、新バージョンのプログラムデータＰＤをコントローラ１００に送信（ダウンロード）するようになっている。そして、コントローラ１００は、記憶部として作用する書き換え可能な不揮発性メモリ１３０における旧バージョンのプログラムデータＰＤをツール装置２００から送信されてきた新バージョンのプログラムデータＰＤに書き換えるようになっている。プログラムデータＰＤは、ここでは、物品４００を作動制御するファームウェアプログラムとされている。
【００２１】
詳しくは、ツール装置２００は、記憶部２２０におけるプログラムデータ書き換え用プログラムＰＰによって、記憶部２２０における新バージョンのプログラムデータＰＤをコントローラ１００に送信し、コントローラ１００における不揮発性メモリ１３０にセクタ単位で予め格納（記憶）されているプログラムデータＰＤの新旧をセクタ単位で比較して書き換える更新動作をコントローラ１００と協働して行う構成とされている。
【００２２】
なお、図１において、説明していない符号の構成要素については、のちほど説明する。このことは、後述する図２以降の図についても同様である。
【００２３】
［コントローラのハードウェア構成］
次に、コントローラ１００のハードウェア構成について図２を参照しながら以下に説明する。
【００２４】
図２は、図１に示すコントローラ１００のハードウェア構成の一例を示すシステムブロック図である。
【００２５】
コントローラ１００は、走行作業機や船舶といった物品４００の本体に搭載された表示操作装置４１０に設けられており、図２に示すように、制御部１１０、通信部１２０、不揮発性メモリ１３０及び揮発性メモリ１４０を備えている。
【００２６】
制御部１１０は、ＣＰＵ（Central Processing Unit）で構成されており、コントローラ１００の全体を統括制御するものである。制御部１１０は、後ほど図７及び図８に示すフローチャートを参照して説明するプログラムデータ書き換える更新処理や、プログラムデータＰＤを実行するプログラムデータ実行処理などを行うように構成されている。
【００２７】
通信部１２０は、通信接続手段１０１（図１参照）を介してツール装置２００（図１参照）との間で通信制御するものである。詳しくは、通信部１２０は、ＣＡＮ（Controller Area Network）規格に基づいて、ツール装置２００から送られてきたデータを制御部１１０に転送する一方、制御部１１０から送られてきたデータをツール装置２００に転送する通信回路とされている。
【００２８】
なお、通信接続手段１０１は、有線ＬＡＮ（Local Area Network）やＵＳＢ（Universal Serial Bus）、ＣＡＮ規格等の規格に基づく有線通信手段であってもよいし、無線ＬＡＮやブルートゥース等の規格に基づく無線通信手段であってもよい。ここでは、通信接続手段１０１は、ＵＳＢ規格及びＣＡＮ規格に基づく有線ネットワーク手段とされており、ツール装置２００からＵＳＢ規格に対応する信号をＣＡＮ規格に対応する信号に変換する一方、通信部１２０からのＣＡＮ規格に対応する信号をＵＳＢ規格に対応する信号に変換する変換器１０１ａ（図１参照）を備えている。変換器１０１ａは、ＵＳＢ規格に対応するコネクタケーブル１０１ｂがツール装置２００に接続される一方、ＣＡＮ規格に対応するコネクタケーブル１０１ｃが通信部１２０のＣＡＮ規格に対応するコネクタケーブル１２０ａと接続されるようになっている。
【００２９】
不揮発性メモリ１３０は、制御部１１０のデータラインに電気的に接続されている。不揮発性メモリ１３０は、フラッシュメモリなどの書き換え可能な不揮発性メモリで構成され、電源オフ時にはバッテリ等のバックアップ電源が存在しない状態でもデータを保持するように構成されている。本実施の形態において、不揮発性メモリ１３０には、プログラムデータＰＤがセクタ単位で（後述する図４参照）予め格納されている。
【００３０】
揮発性メモリ１４０は、制御部１１０のデータラインに電気的に接続されている。揮発性メモリ１４０は、ＲＡＭ（Random Access Memory）などの書き換え可能な揮発性メモリで構成されており、電源オフ時には記憶データを保持することができない構成とされている。本実施の形態において、揮発性メモリ１４０は、不揮発性メモリ１３０に格納されたプログラムデータＰＤを更新するために、制御部１１０の指示の下、ツール装置２００から送られてきたプログラムデータＰＤを一時的に格納するプログラムデータＰＤの更新用メモリとされている。
【００３１】
また、コントローラ１００は、表示部１５０をさらに備えている。表示部１５０は、制御部１１０の出力系に電気的に接続されており、制御部１１０からの表示情報が出力されるようになっている。
【００３２】
［ツール装置のハードウェア構成］
次に、ツール装置２００のハードウェア構成について図３を参照しながら以下に説明する。
【００３３】
図３は、図１に示すツール装置２００のハードウェア構成の一例を示すシステムブロック図である。
【００３４】
図３に示すように、ツール装置２００は、操作入力部２１０と、記憶部２２０と、表示出力部２３０と、通信部２４０と、制御部２５０と、読み取り部２６０とを備えている。
【００３５】
操作入力部２１０は、キーボード２１１等の入力装置を備えており、制御部２５０の入力系に接続されている。操作入力部２１０は、ユーザによる入力操作を受け付けて入力された操作情報を制御部２５０に送信する構成とされている。
【００３６】
記憶部２２０は、制御部２５０のデータラインに電気的に接続されている。記憶部２２０は、ＲＯＭ（Read Only Memory）２２１、ＲＡＭ２２２等の記憶装置及び記録部として作用する記録装置２２３を備えている。記録装置２２３は、ここでは、大容量記録装置（具体的にはハードディスク装置）とされている。
【００３７】
表示出力部２３０は、液晶表示パネル等の表示装置２３１を備えており、制御部２５０の出力系に接続されている。表示装置２３１は、制御部２５０からの出力表示情報を表示画面に表示する構成とされている。なお、表示装置２３１における表示画面には、タッチパネル等のタッチ入力操作装置が設けられていてもよい。タッチ入力操作装置は、表示画面に表示される画面の表示状態に応じた入力操作を行うことができ、操作入力部として作用する構成とされる。
【００３８】
通信部２４０は、インターフェイス部２４１（具体的にはＵＳＢポート）を有しており、通信接続手段１０１（詳しくは変換器１０１ａ）を介してコントローラ１００における通信部１２０（図１及び図２参照）との間でデータの通信ができるようになっている。
【００３９】
制御部２５０は、記憶部２２０の記録装置２２３に予め格納（インストール）されたプログラムデータ書き換え用プログラムＰＰを実行することによって、制御部２５０に必要な各種の機能を実現するように構成されている。詳しくは、制御部２５０は、ＣＰＵ等の演算処理装置で構成されており、記録装置２２３に予め格納されたプログラムデータ書き換え用プログラムＰＰ等のソフトウェアプログラムを記憶部２２０のＲＡＭ２２２上にロードして実行することにより、各種の処理を行うようになっている。記憶部２２０のＲＡＭ２２２は、制御部２５０に対して作業用のワークエリアを提供する。ここで、記録装置２２３には、読み取り部２６０からのプログラムデータ書き換え用プログラムＰＰが予め格納（インストール）される。また、記録装置２２３には、読み取り部２６０からの新バージョンのプログラムデータＰＤ及び新バージョンのテーブルデータＴＢが予め格納される。
【００４０】
読み取り部２６０は、ＣＤ（Compact Disc）−ＲＯＭ等の記録媒体Ｍを読み出すものである。記録媒体Ｍには、プログラムデータ書き換え用プログラムＰＰと、新バージョンのプログラムデータＰＤ及び新バージョンのテーブルデータＴＢとが予め記録されている。
【００４１】
なお、ここでは、プログラムデータ書き換え用プログラムＰＰ、プログラムデータＰＤ及びテーブルデータＴＢは、同じ記録媒体Ｍに記録しているが、別々の記録媒体に記録されてもよい。また、記録媒体Ｍは、ＣＤ−ＲＯＭ等の記録ディスクの他、ＵＳＢメモリやＳＤ（Secure Digital）メモリカードであってもよい。また、プログラムデータ書き換え用プログラムＰＰ、プログラムデータＰＤ及びテーブルデータＴＢは、ＣＤ−ＲＯＭ、ＵＳＢメモリやＳＤメモリカードを介して取得したものには限定されず、図示しないプログラムサーバからインターネット等の通信手段を介してダウンロードされたものであってもよい。
【００４２】
［ツール装置のソフトウェア構成］
次に、ツール装置２００のソフトウェア構成について図３を参照しながら以下に説明する。
【００４３】
図３に示すように、制御部２５０は、記録制御手段Ｑａ１、バージョン情報要求制御手段Ｑａ２、比較制御手段Ｑａ３、バージョン情報検出制御手段Ｑａ４、プログラムデータ送信制御手段Ｑａ５及びバージョン情報送信制御手段Ｑａ６として機能する。すなわち、プログラムデータ書き換え用プログラムＰＰは、記録制御手段Ｑａ１に対応する記録制御ステップと、バージョン情報要求制御手段Ｑａ２に対応するバージョン情報要求制御ステップと、比較制御手段Ｑａ３に対応する比較制御ステップと、バージョン情報検出制御手段Ｑａ４に対応するバージョン情報検出制御ステップと、プログラムデータ送信制御手段Ｑａ５に対応するプログラムデータ送信制御ステップと、バージョン情報送信制御手段Ｑａ６に対応するバージョン情報送信制御ステップとを制御部２５０に実行させる。
【００４４】
（記録制御ステップ）
記録制御ステップでは、制御部２５０は、新バージョンのプログラムデータＰＤのセクタ毎に関連付けられた新バージョンのバージョン情報ＶＩを有するテーブルデータＴＢを記録装置２２３に記録する。つまり、テーブルデータＴＢは、後述する図５に示すように、セクタ（この例ではプログラムデータＰＤのセクタ３〜セクタ２５５）とバージョン情報ＶＩとの対応関係を示すテーブルである。
【００４５】
（バージョン情報要求制御ステップ）
バージョン情報要求制御ステップでは、制御部２５０は、コントローラ１００の不揮発性メモリ１３０における旧バージョンのテーブルデータＴＢのバージョン情報ＶＩをツール装置２００に送信するようにコントローラ１００に要求する。
【００４６】
（比較制御ステップ）
比較制御ステップでは、制御部２５０は、記録制御ステップで記録した新バージョンのテーブルデータＴＢにおけるバージョン情報ＶＩとプログラムデータ要求制御ステップで要求して得られた旧バージョンのバージョン情報ＶＩとの互いのセクタにおいて何れのバージョン情報ＶＩが異なっているかをセクタ単位で比較する。
【００４７】
（バージョン情報検出制御ステップ）
バージョン情報検出制御ステップでは、制御部２５０は、比較制御ステップで比較した比較結果に基づいて、新バージョンのプログラムデータＰＤのうち、旧バージョンのバージョン情報ＶＩとは異なるプログラムデータＰＤに対応する全てのセクタを検出する。
【００４８】
（プログラムデータ送信制御ステップ）
プログラムデータ送信制御ステップでは、制御部２５０は、バージョン情報検出制御ステップで検出したセクタのうち、少なくとも一つのセクタに対応するプログラムデータＰＤのみをコントローラ１００に送信する。
【００４９】
詳しくは、プログラムデータ送信制御ステップでは、バージョン情報検出制御ステップで検出した複数のセクタのうち、複数のセクタに対応するプログラムデータＰＤをセクタの番号の順にコントローラ１００に送信するか或いはランダムにコントローラ１００に送信してもよいが、この例では、単一のセクタに対応するプログラムデータＰＤをセクタの番号の順にコントローラ１００に送信する。具体的には、バージョン情報検出制御ステップで検出した複数のセクタのうち、セクタの番号の小さい方から順（昇順）に一の単一のセクタに対応するプログラムデータを送信してコントローラ１００において該一の単一のセクタに対応するプログラムデータＰＤの書き換えが完了する毎に、他の単一のセクタに対応するプログラムデータＰＤを送信する。
【００５０】
（バージョン情報送信制御ステップ）
バージョン情報送送信制御ステップでは、制御部２５０は、記録装置２２３に記録されている新バージョンのテーブルデータＴＢにおけるバージョン情報ＶＩをコントローラ１００に送信する。
【００５１】
［コントローラのソフトウェア構成］
次に、コントローラ１００のソフトウェア構成について図１を参照しながら以下に説明する。
【００５２】
図１に示すように、制御部１１０は、バージョン情報送信制御手段Ｑｂ１と、プログラムデータ書き換え手段Ｑｂ２と、バージョン情報書き換え手段Ｑｂ３とを備える。
【００５３】
バージョン情報送信制御手段Ｑｂ１は、ツール装置２００からの要求に応じて、不揮発性メモリ１３０における旧バージョンのテーブルデータＴＢ（この例ではセクタ２）のバージョン情報ＶＩをツール装置２００に送信する。ここで、不揮発性メモリ１３０における旧バージョンのテーブルデータＴＢは、旧バージョンのプログラムデータＰＤのセクタ毎に関連付けられた旧バージョンのバージョン情報ＶＩを有している。つまり、テーブルデータＴＢは、図４に示すように、セクタ（この例ではプログラムデータＰＤのセクタ３〜セクタ２５５）とバージョン情報ＶＩとの対応関係を示すテーブルである。
【００５４】
プログラムデータ書き換え手段Ｑｂ２は、各セクタのバージョン情報ＶＩを集中管理しているデータ更新用プログラムＵＰにより、不揮発性メモリ１３０に記憶されている旧バージョンのプログラムデータＰＤのうち、ツール装置２００から送信されてきた新バージョンのプログラムデータＰＤのみを書き換える。詳しくは、プログラムデータ書き換え手段Ｑｂ２は、不揮発性メモリ１３０（この例ではプログラムデータＰＤのセクタ３〜セクタ２５５）において、ツール装置２００から送信されてきた新バージョンのセクタ（例えばセクタ３）の番号と同じ番号のセクタ（例えばセクタ３）に対応するプログラムデータＰＤをツール装置２００から送信されてきた新バージョンのセクタ（例えばセクタ３）に対応するプログラムデータＰＤに書き換える。
【００５５】
バージョン情報書き換え手段Ｑｂ３は、旧バージョンのテーブルデータＴＢにおけるバージョン情報ＶＩをツール装置２００から送信されてきた新バージョンのバージョン情報ＶＩに書き換える。詳しくは、バージョン情報書き換え手段Ｑｂ３は、不揮発性メモリ１３０（この例ではテーブルデータＴＢのセクタ２）において、旧バージョンのテーブルデータＴＢにおけるバージョン情報ＶＩをツール装置２００から送信されてきた新バージョンのテーブルデータＴＢにおけるバージョン情報ＶＩに更新する。
【００５６】
［プログラムデータ及びテーブルデータを含むデータのデータ構造］
次に、旧バージョン及び新バージョンのプログラムデータＰＤ並びに旧バージョン及び新バージョンのテーブルデータＴＢを含むデータのデータ構造について図４から図６を参照しながら以下に説明する。
【００５７】
図４及び図５は、それぞれ、旧バージョン及び新バージョンのプログラムデータＰＤ並びに旧バージョン及び新バージョンのテーブルデータＴＢを含むデータのデータ構造の一例を示す模式図である。また、図６は、バージョン情報ＶＩにおけるプログラムデータＰＤの番号及びバージョン番号を付ける位置を示すバージョン情報ＶＩの説明図である。
【００５８】
図４に示すように、旧バージョンのプログラムデータＰＤ及びテーブルデータＴＢは、コントローラ１００における不揮発性メモリ１３０（図１及び図２参照）の記録領域Ｍ１に記憶される。また、図５に示すように、新バージョンのプログラムデータＰＤ及びテーブルデータＴＢは、ツール装置２００における記録装置２２３（図３参照）の記録領域Ｍ２に記録される。
【００５９】
不揮発性メモリ１３０の記録領域Ｍ１及び記録装置２２３の記録領域Ｍ２は、セクタ毎に複数区分けされており、プログラムデータＰＤを含むバージョンに関する情報がセクタ単位で記録されている。
【００６０】
この例では、記憶領域Ｍ１，Ｍ２は、それぞれ、セクタ０〜セクタ２５５に区分けされており、それぞれのセクタ０には、起動プログラムであるブートプログラムＢＰ，ＢＰが格納され、それぞれのセクタ１には、プログラムデータ更新用プログラムＵＰ，ＵＰが格納され、それぞれのセクタ２には、旧バージョン及び新バージョンのテーブルデータＴＢ，ＴＢが格納され、それぞれのセクタ３〜セクタ２５５のうち何れかのセクタには、旧バージョン及び新バージョンのプログラムデータＰＤ〜ＰＤ，ＰＤ〜ＰＤがセクタ単位で格納されている。記憶領域Ｍ１におけるセクタ０〜セクタ２５５と、記憶領域Ｍ２におけるセクタ０〜セクタ２５５とは同じ記憶容量とされている。
【００６１】
テーブルデータＴＢは、バージョン情報ＶＩが一括した固定領域Ｆ（０）〜Ｆ（２５５）に集中して格納されている。
【００６２】
具体的には、旧バージョンのテーブルデータＴＢは、固定領域Ｆ（０）〜Ｆ（１８），…，Ｆ（２５４），Ｆ（２５５）に、それぞれ、バージョン情報ＶＩとして“０１０１”，“０１０１”，“０１０１”，“０１０１”，“０１０１”，“０１０１”，“００００”，“００００”，“００００”，“０１０１”，“０１０１”，“０１０１”，“００００”，“０１０１”，“０１０１”，“０１０１”，“０１０１”，“００００”，“００００”，…，“０１０１”，“００００”が格納されている。
【００６３】
一方、新バージョンのテーブルデータＴＢは、固定領域Ｆ（０）〜Ｆ（１８），…，Ｆ（２５４），Ｆ（２５５）に、それぞれ、バージョン情報ＶＩとして“０１０１”，“０１０１”，“０１０２”，“０１０２”，“０１０２”，“０１０２”，“０１０２”，“００００”，“００００”，“０１０１”，“０１０１”，“０１０１”，“００００”，“０１０１”，“０１０２”，“０１０２”，“０１０１”，“００００”，“００００”，…，“０１０１”，“００００”が格納されている。
【００６４】
ここで、バージョン情報ＶＩは、図６に示すように、上２桁がプログラムデータＰＤの番号であって互いに異なる複数種類のプログラムデータ間で一意となる番号を示しており、下２桁がプログラムデータＰＤのバージョン番号を示している。
【００６５】
なお、バージョン番号は、当然のことながら、新バージョンと旧バージョンとの間で同一の番号とならないように、かつ、新バージョンが最新の番号であることが認識できるようにしている。バージョン番号は、この例ではバージョンアップ毎に値を１つ大きくした番号としている。但し、それに限定されるものではなく、バージョン番号は、プログラムデータＰＤの値に基づいて新バージョンと旧バージョンとの間で実質的に同一の番号とならないように演算したチェックコードを含んでいてもよい。このチェックコードは、例えば、プログラムデータにおける各番地のバイナリー値を単純に加算した値を用いたチェックサムの値（例えば１６進数の値）を含んでいてもよいし、プログラムデータＰＤの値から算出した巡回冗長検査（ＣＲＣ：Cyclic Redundancy Check）の値（例えば１６進数の値）を含んでいてもよい。
【００６６】
旧バージョン及び新バージョンのプログラムデータＰＤ〜ＰＤは、各セクタの番号の小さい順（昇順）に格納されている。プログラムデータＰＤ〜ＰＤは、ここでは、制御プログラム、画像データ、フォントデータを含んでいる。
【００６７】
なお、プログラムデータＰＤは、その容量がそれを収めるセクタの容量を超えてバージョンアップされることを考慮して、該セクタの次の番号以降に存在する１つ又は連続する複数のセクタを予め空き領域（後述する図１０に示す旧バージョンのセクタ６〜８、セクタ１２、セクタ１７，１８，…、セクタ２５５参照）としておくことができる。ここでは、空き領域に対応するバージョンは、“００００”としており、空き領域のセクタにおけるデータは、全て“１”（具体的には１６進数で“ＦＦ”）とされている。
【００６８】
［プログラムデータ書き換えシステムにおけるプログラムデータ書き換え処理例］
次に、プログラムデータ書き換えシステム３００におけるプログラムデータ書き換え処理の一例について図７から図１０を参照しながら以下に説明する。
【００６９】
図７及び図８は、それぞれ、プログラムデータ書き換えシステム３００におけるプログラムデータ書き換え処理の一例の前半部分及び後半部分を示すフローチャートである。図９及び図１０は、図７及び図８に示すフローチャートの処理動作を説明するための説明図である。図９は、ツール装置２００とコントローラ１００との間でのデータの受け渡し状態を示している。また、図１０は、新バージョンのプログラムデータＰＤ及びテーブルデータＴＢを有するツール装置２００から旧バージョンのプログラムデータＰＤ及びテーブルデータＴＢを有するコントローラ１００にプログラムデータＰＤをセクタ毎に送信する際のプログラムデータＰＤの送信順を示している。
【００７０】
プログラムデータ書き換え処理のフローチャートでは、図７及び図９に示すように、先ず、ツール装置２００における制御部２５０は、プログラムデータ書き換え用プログラムＰＰにより、新バージョンのテーブルデータＴＢをツール装置２００におけるＲＡＭ２２２に記憶させる（ステップＳ１）。
【００７１】
次に、ツール装置２００における制御部２５０は、プログラムデータ書き換え用プログラムＰＰにより、コントローラ１００に対して不揮発性メモリ１３０における旧バージョンのテーブルデータＴＢを要求する（ステップＳ２）。
【００７２】
次に、コントローラ１００における制御部１１０は、データ更新用プログラムＵＰにより、ツール装置２００からの旧バージョンのテーブルデータＴＢの要求に応答して、不揮発性メモリ１３０における旧バージョンのテーブルデータＴＢをツール装置２００に送信する（ステップＳ３）。
【００７３】
次に、ツール装置２００における制御部２５０は、プログラムデータ書き換え用プログラムＰＰにより、コントローラ１００から送られてきた旧バージョンのテーブルデータＴＢをＲＡＭ２２２において新バージョンのテーブルデータＴＢの記憶領域とは異なる記憶領域に記憶させ（ステップＳ４）、ＲＡＭ２２２において新バージョンのテーブルデータＴＢにおけるバージョン情報ＶＩと旧バージョンのテーブルデータＴＢにおけるバージョン情報ＶＩとをセクタ単位で比較する（ステップＳ５）。
【００７４】
次に、ツール装置２００における制御部２５０は、プログラムデータ書き換え用プログラムＰＰにより、ステップＳ５で比較した比較結果に基づいて、ＲＡＭ２２２における新バージョンのプログラムデータＰＤのうち、ＲＡＭ２２２における旧バージョンのバージョン情報ＶＩとは異なる全てのセクタを検出する（ステップＳ６）。
【００７５】
この例では、図１０に示すように、セクタ２〜セクタ６、セクタ１４，セクタ１５の固定領域Ｆ（２）〜Ｆ（６），Ｆ（１４），Ｆ（１５）においてバージョン情報ＶＩ“０１０１”がバージョン情報ＶＩ“０１０２”にバージョンアップされている。
【００７６】
次に、ツール装置２００における制御部２５０は、図８から図１０に示すように、プログラムデータ書き換え用プログラムＰＰにより、ステップＳ６で検出したセクタに対応するプログラムデータＰＤのみをコントローラ１００に送信する（ステップＳ７）。詳しくは、ステップＳ７では、ステップＳ６で検出したセクタに対応するプログラムデータＰＤのみをコントローラ１００に送信するにあたり、単一のセクタ（例えば（１）番目のセクタ３）に対応するプログラムデータＰＤを送信する。
【００７７】
次に、コントローラ１００における制御部１１０において、データ更新用プログラムＵＰにより、不揮発性メモリ１３０に記憶されている旧バージョンのプログラムデータＰＤに対してツール装置２００から送られてきた新バージョンのプログラムデータＰＤに書き換える（ステップＳ８）。このとき、ツール装置２００における制御部２５０は、書き換え対象のセクタに対応するプログラムデータＰＤの書き換えが完了するまで、次のセクタに対応するプログラムデータを送信せずに待機させる。また、最初のセクタの書き換えを開始する前に書き換え中であることを示すフラグを立てても良い。例えば、バージョン情報を記憶するセクタ２の最終番地４バイトをチェックコードとして最終番地４バイト分を消去（全てＦＦ）することができる。
【００７８】
次に、プログラムデータＰＤの書き換えが完了すると、ツール装置２００における制御部２５０において、プログラムデータ書き換え用プログラムＰＰにより、ステップＳ６で検出したセクタに対応する他のプログラムデータＰＤがあるか否かを判断し（ステップＳ９）、他のプログラムデータＰＤがある場合には（ステップＳ９：Ｙｅｓ）、ステップＳ７に移行する。この例では、（１）番目の単一のセクタ３に対応するプログラムデータＰＤの書き換えが完了すると、次の（２）番目の単一のセクタ４に対応するプログラムデータを送信し、（２）番目の単一のセクタ４に対応するプログラムデータＰＤの書き換えが完了すると、次の（３）番目の単一のセクタ５に対応するプログラムデータを送信する。以下、（４）番目のセクタ６、（５）番目のセクタ１４、（６）番目のセクタ１５についても同様に処理していく。
【００７９】
詳しくは、コントローラ１００における制御部１１０は、データ更新用プログラムＵＰにより、不揮発性メモリ１３０において旧バージョンのテーブルデータＴＢにおけるバージョン情報ＶＩを新バージョンのバージョン情報ＶＩに書き換えるにあたり、ツール装置２００から送信されてきた単一のセクタのプログラムデータＰＤをコントローラ１００の揮発性メモリ１４０に一時的に記憶し、コントローラ１００の不揮発性メモリ１３０における書き換えるべきセクタのプログラムデータＰＤを消去した後、不揮発性メモリ１３０においてプログラムデータＰＤを消去したセクタに、揮発性メモリ１４０に一時的に記憶したプログラムデータＰＤを書き込む。
【００８０】
一方、ステップＳ９において、他のプログラムデータＰＤがない場合には（ステップＳ９：Ｎｏ）、ステップＳ１０に移行する。
【００８１】
次に、ツール装置２００における制御部２５０は、プログラムデータ書き換え用プログラムＰＰにより、ツール装置２００におけるＲＡＭ２２２に記録されている新バージョンのテーブルデータＴＢにおけるバージョン情報ＶＩをコントローラ１００に送信する（ステップＳ１０）。
【００８２】
次に、コントローラ１００における制御部１１０は、データ更新用プログラムＵＰにより、不揮発性メモリ１３０において旧バージョンのテーブルデータＴＢにおけるバージョン情報ＶＩをツール装置２００から送信されてきた新バージョンのバージョン情報ＶＩに書き換え（ステップＳ１１）、詳しくは、ツール装置２００から送信されてきた新バージョンのバージョン情報ＶＩをコントローラ１００の揮発性メモリ１４０に一時的に記憶し、コントローラ１００の不揮発性メモリ１３０におけるテーブルデータＴＢのセクタ２のバージョン情報ＶＩを消去した後、不揮発性メモリ１３０においてバージョン情報ＶＩを消去したセクタ２に、揮発性メモリ１４０に一時的に記憶したバージョン情報ＶＩを書き込み、処理を終了する。また、書き換え中のフラグを立てている場合はフラグを消去することができる。例えば、バージョン情報を記憶するセクタ２の最終番地４バイトをチェックコードとして最終番地４バイト分を消去（全てＦＦ）しているなら、何かしら（ＦＦ以外）の番号を書き込むことができる。
【００８３】
（本実施の形態について）
以上説明したように、本実施の形態によると、新バージョンのテーブルデータＴＢにおけるバージョン情報ＶＩと旧バージョンのバージョン情報ＶＩとをセクタ単位で比較して、新バージョンのプログラムデータＰＤのうち、旧バージョンのバージョン情報ＶＩとは異なるセクタに対応するプログラムデータＰＤのみをコントローラ１００に送信し、コントローラ１００においてデータ更新用プログラムＵＰにより、不揮発性メモリ１３０に格納されている旧バージョンのプログラムデータＰＤのうち、コントローラ１００に送信されてきた新バージョンのプログラムデータＰＤのみを書き換えるので、バージョンアップに関与しないセクタに対応するプログラムデータＰＤの送信動作を省くことができ、それだけ、プログラムデータＰＤを送信するための送信時間、ひいてはプログラムデータＰＤの更新時間の短縮化を実現させることが可能となる。
【００８４】
また、新バージョンのプログラムデータＰＤのうち、旧バージョンのバージョン情報ＶＩとは異なるセクタに対応するプログラムデータＰＤのみをコントローラ１００に送信するにあたり、一の単一のセクタに対応するプログラムデータＰＤを送信してコントローラ１００において該一の単一のセクタに対応するプログラムデータＰＤの書き換えが完了する毎に、他の単一のセクタに対応するプログラムデータＰＤを送信することで、コントローラ１００における揮発性メモリ１４０において、コントローラ１００に送信されてきた新バージョンのプログラムデータＰＤのメモリ容量を単一のセクタ分のメモリ容量とすることができ、これにより、揮発性メモリ１４０に一時的に書き込んで作業する場合の揮発性メモリ１４０のメモリ容量を単一のセクタ分のメモリ容量に抑えることができる。
【００８５】
また、バージョンアップにより容量が増加する可能性があるセクタのプログラムデータＰＤのために、該セクタの次の番号以降に存在する１つ又は連続する複数のセクタを空き領域として予め確保しておくことで、バージョンアップされたプログラムデータＰＤがたとえ該セクタの容量を超えたとしても、確保しておいた空き領域に、超えた分のプログラムデータＰＤを記憶させることが可能となる。
【００８６】
また、最初のステップ８の実行前に書き換え中のフラグを立てている場合は、コントローラ１００への電源投入時にこのフラグの有無を確認してフラグが立っていれば、プログラムを起動せずに書き換え待機状態とすることが可能となる。
【００８７】
本発明は、以上説明した実施の形態に限定されるものではなく、他のいろいろな形で実施することができる。そのため、かかる実施の形態はあらゆる点で単なる例示にすぎず、限定的に解釈してはならない。本発明の範囲は請求の範囲によって示すものであって、明細書本文には、なんら拘束されない。さらに、請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【符号の説明】
【００８８】
１００  コントローラ（制御装置の一例）
１１０  制御部
１２０  通信部
１３０  不揮発性メモリ（記憶部の一例）
１４０  揮発性メモリ
１５０  表示部
２００  ツール装置
２１０  操作入力部
２２０  記憶部
２３０  表示出力部
２４０  通信部
２５０  制御部
２６０  読み取り部
３００  プログラムデータ書き換えシステム
４１０  表示操作装置
４００  物品
Ｍ      記録媒体
ＰＤ    プログラムデータ
ＰＰ    プログラムデータ書き換え用プログラム
Ｑａ１  記録制御手段
Ｑａ２  バージョン情報要求制御手段
Ｑａ３  比較制御手段
Ｑａ４  バージョン情報検出制御
Ｑａ５  プログラムデータ送信制御手段
Ｑａ６  バージョン情報送信制御手段
ＵＰ    データ更新用プログラム
ＶＩ    バージョン情報
【図１】
2014211823.tif 000003
【図２】
2014211823.tif 000004
【図３】
2014211823.tif 000005
【図４】
2014211823.tif 000006
【図５】
2014211823.tif 000007
【図６】
2014211823.tif 000008
【図７】
2014211823.tif 000009
【図８】
2014211823.tif 000010
【図９】
2014211823.tif 000011
【図１０】
2014211823.tif 000012