(57)【要約】【課題】旧型の周辺装置に対応したプログラムデータが上位装置からダウンロードされることを防止しつつ、周辺装置を含むシステムのダウンを回避できる周辺装置、周辺装置の制御方法、ファームウェアのダウンロードシステム、およびプログラムを提供する。【解決手段】周辺装置３０Ａは、上位装置２０に記憶されるダウンロードファイル２３に、プログラムデータに書き換えることを許可させるための書き換え許可データが含まれていれば、プログラムデータを上位装置２０から送られるプログラムデータに書き換えて、データ書き換えの正常完了応答を上位装置２０へ返し、含まれていなければ、周辺装置３０Ａに記憶されているプログラムデータを上位装置２０から送られるプログラムデータに書き換えずに、データ書き換えの正常完了応答を上位装置２０へ返し、ダウンロードファイルに含まれるその識別情報を周辺装置３０Ａの識別情報格納部３２Ａに格納する。【選択図】図１
2014127152.tif 000002
【特許請求の範囲】
【請求項１】
上位装置に接続され、動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置であって、
前記ダウンロードファイルの識別情報を格納可能な識別情報格納部と、
少なくともプログラムデータを書き換え可能に格納するプログラム格納部と、
前記プログラム格納部に格納されている前記プログラムデータの書き換えを制御する制御部と、を有し、
前記ダウンロードファイルには、当該ダウンロードファイルの識別情報、および前記制御部に、前記プログラム格納部に格納されているプログラムデータを書き換えることを許可する書き換え許可データのうちの少なくとも前記識別情報を含み、
前記制御部は、
前記ダウンロードファイルに前記書き換え許可データが含まれている場合には、正常書き換えとして、前記プログラム格納部に格納されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、前記データ書き換えの正常完了応答を前記上位装置へ返し、
前記ダウンロードファイルに前記書き換え許可データが含まれていない場合には、疑似書き換えとして、前記プログラム格納部に格納されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返し、
前記ダウンロードファイルの前記識別情報を前記識別情報格納部に格納する
周辺装置。
【請求項２】
前記制御部は、
前記疑似書き換え時に、前記ダウンロードファイルに含まれる識別情報を取得して前記識別情報格納部に格納する
請求項１記載の周辺装置。
【請求項３】
前記制御部は、
前記上位装置から前記識別情報の送信要求を受けた場合、前記識別情報格納部に格納されている前記識別情報を前記上位装置へ返す
請求項１または２記載の周辺装置。
【請求項４】
前記制御部は、
前記正常書き換え時において、前記ダウンロードファイルを正常に受信した場合に前記識別情報格納部に格納されている識別情報を取得不可とする
請求項１から３のいずれか一に記載の周辺装置。
【請求項５】
前記識別情報は、
前記ダウンロードファイルのプログラムデータの所定の位置に記載されている
請求項１から４のいずれか一に記載の周辺装置。
【請求項６】
前記制御部は、
受信した前記ダウンロードファイル内に識別情報が含まれていない場合、前記上位装置からの新たなコマンドを識別情報として受信可能である
請求項１から４のいずれか一に記載の周辺装置。
【請求項７】
上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置の制御方法において、
前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを許可させるための書き換え許可データが、前記上位装置からダウンロードされるダウンロードファイルに含まれているか否かを判別する書き換え許可判別ステップと、
前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書き換えの正常完了応答を前記上位装置へ返す正常書き換えステップと、
前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返す疑似書き換えステップと、
前記ダウンロードファイルに含まれる当該ダウンロードファイルの識別情報を前記周辺装置の識別情報格納部に格納する識別情報格納ステップと、
前記上位装置から前記識別情報の送信要求を受けた場合、前記識別情報格納部に格納されている前記識別情報を前記上位装置へ返す識別情報返信ステップと
を有する周辺装置の制御方法。
【請求項８】
前記識別情報格納ステップは、
前記疑似書き換えステップが処理されるときに並列的に行われる
請求項７記載の周辺装置の制御方法。
【請求項９】
前記正常書き換えステップにおいて、前記ダウンロードファイルを正常に受信した場合に前記識別情報格納部に格納されている識別情報を取得不可とする格納情報取得不可ステップを有する
請求項７または８記載の周辺装置の制御方法。
【請求項１０】
前記識別情報は、
前記ダウンロードファイルのプログラムデータの所定の位置に記載されている
請求項７から９のいずれか一に記載の周辺装置の制御方法。
【請求項１１】
受信した前記ダウンロードファイル内に識別情報が含まれていない場合、前記上位装置からの新たなコマンドを識別情報として受信可能である
請求項７から９のいずれか一に記載の周辺装置の制御方法。
【請求項１２】
少なくとも一つの周辺装置と、
前記周辺装置が接続され、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記周辺へダウンロード可能な上位装置と、を有し、
前記周辺装置は、請求項１から６のいずれか一に記載の周辺装置により構成されている
ファームウェアのダウンロードシステム。
【請求項１３】
上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置の制御処理をコンピュータに実行させるプログラムにおいて、
前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを許可させるための書き換え許可データが、前記上位装置からダウンロードされるダウンロードファイルに含まれているか否かを判別する書き換え許可判別処理と、
前記書き換え許可判別処理で、前記書き換え許可データが前記ダウンロードファイルに含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書き換えの正常完了応答を前記上位装置へ返す正常書き換え処理と、
前記書き換え許可判別処理で、前記書き換え許可データが前記ダウンロードファイルに含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返す疑似書き換え処理と、
前記ダウンロードファイルに含まれる当該ダウンロードファイルの識別情報を前記周辺装置の識別情報格納部に格納する識別情報格納処理と、
前記上位装置から前記識別情報の送信要求を受けた場合、前記識別情報格納部に格納されている前記識別情報を前記上位装置へ返す識別情報返信処理と
を有する周辺装置の制御処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置に接続される周辺装置であって、周辺装置を動作させるファームウェアのプログラムデータを上位装置からダウンロード可能な周辺装置に関するものである。また、本発明は、この周辺装置の制御方法、および周辺装置が接続可能な上位装置を備えるファームウェアのダウンロードシステム、並びにプログラムに関するものである。
【背景技術】
【０００２】
上位装置からカードリーダへファームウェアのプログラムデータをダウンロードするためのファームウェアのダウンロード方法が提案されている（たとえば、特許文献１参照）。
【０００３】
特許文献１に記載のダウンロード方法では、プログラムデータを含むダウンロードファイルが上位装置に記憶されており、上位装置に記憶されているダウンロードファイルのレビジョン情報と、上位装置がカードリーダに対して発行したレビジョン取得コマンドのレスポンスとが一致しない場合に、上位装置からカードリーダへプログラムデータがダウンロードされる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１３７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上位装置に接続されるカードリーダは、その機能を向上させたり、使用されている部品の製造中止に対処したりするために、旧型のものから新型のものへ交換されることがある。
【０００６】
一方で、上位装置に記憶されているファームウェアのプログラムデータが新型のカードリーダに対応したプログラムデータである保障はない。たとえば、上位装置に記憶されているファームウェアのプログラムデータが旧型のカードリーダに対応したプログラムデータである場合に、新型のカードリーダが上位装置に接続される場合がある。
【０００７】
上位装置に新型のカードリーダが接続され、かつ、旧型のカードリーダに対応したプログラムデータが上位装置に記憶されている場合に、特許文献１に記載のダウンロード方法でダウンロードが行われると、旧型のカードリーダに対応したプログラムデータが新型のカードリーダにダウンロードされてしまうおそれがある。
すなわち、上位装置に記憶されているプログラムデータによっては、機能の向上を図るために、あるいは、使用部品の製造中止に対処するために生産された新型のカードリーダに、旧型のカードリーダに対応したプログラムデータがダウンロードされてしまうおそれがある。
【０００８】
その結果、上位装置に接続されるカードリーダを新型のものに交換したにもかかわらず、その機能の向上を図ったり、使用部品の製造中止に対処したりすることができなくなるおそれがある。
また、新型のカードリーダに、旧型のカードリーダに対応したプログラムデータがダウンロードされると、新型のカードリーダが動作しなくなるおそれがある。
【０００９】
旧型のカードリーダに対応したプログラムデータが新型のカードリーダにダウンロードされることを防止するには、旧型のカードリーダに対応したプログラムデータが上位装置に記憶されている場合に、旧型のカードリーダに対応したプログラムデータのダウンロードを新型のカードリーダが拒否すれば良い。
すなわち、上位装置からのプログラムデータのダウンロードコマンド等に対して、新型のカードリーダがダウンロードの拒否応答を返せば良い。
【００１０】
しかしながら、新型のカードリーダがダウンロードの拒否応答を返すと、上位装置側のダウンロード処理を正常に終了させることができずに、上位装置を含むシステムがダウンしてしまう、すなわち、システム全体の動作が停止してしまうおそれがある。
【００１１】
本発明の目的は、旧型の周辺装置に対応したプログラムデータが上位装置からダウンロードされることを防止しつつ、周辺装置を含むシステムのダウンを回避することが可能な周辺装置、周辺装置の制御方法、ファームウェアのダウンロードシステム、およびプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明の第１の観点は、上位装置に接続され、動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置であって、前記ダウンロードファイルの識別情報を格納可能な識別情報格納部と、少なくともプログラムデータを書き換え可能に格納するプログラム格納部と、前記プログラム格納部に格納されている前記プログラムデータの書き換えを制御する制御部と、を有し、前記ダウンロードファイルには、当該ダウンロードファイルの識別情報、および前記制御部に、前記プログラム格納部に格納されているプログラムデータを書き換えることを許可する書き換え許可データのうちの少なくとも前記識別情報を含み、前記制御部は、前記ダウンロードファイルに前記書き換え許可データが含まれている場合には、正常書き換えとして、前記プログラム格納部に格納されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、前記データ書き換えの正常完了応答を前記上位装置へ返し、前記ダウンロードファイルに前記書き換え許可データが含まれていない場合には、疑似書き換えとして、前記プログラム格納部に格納されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返し、前記ダウンロードファイルの前記識別情報を前記識別情報格納部に格納する。
【００１３】
本発明の第２の観点は、上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置の制御方法において、前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを許可させるための書き換え許可データが、前記上位装置からダウンロードされるダウンロードファイルに含まれているか否かを判別する書き換え許可判別ステップと、前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書き換えの正常完了応答を前記上位装置へ返す正常書き換えステップと、前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返す疑似書き換えステップと、前記ダウンロードファイルに含まれる当該ダウンロードファイルの識別情報を前記周辺装置の識別情報格納部に格納する識別情報格納ステップと、前記上位装置から前記識別情報の送信要求を受けた場合、前記識別情報格納部に格納されている前記識別情報を前記上位装置へ返す識別情報返信ステップとを有する。
【００１４】
本発明の第３の観点のファームウェアのダウンロードシステムは、少なくとも一つの周辺装置と、前記周辺装置が接続され、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記周辺装置へダウンロード可能な上位装置と、を有し、前記周辺装置は、少なくとも上述した周辺装置により構成されている。
【００１５】
本発明の第４の観点は、上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置の制御処理を実行する制御部のプログラムにおいて、前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを許可させるための書き換え許可データが、前記上位装置からダウンロードされるダウンロードファイルに含まれているか否かを判別する書き換え許可判別処理と、前記書き換え許可判別処理で、前記書き換え許可データが前記ダウンロードファイルに含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書き換えの正常完了応答を前記上位装置へ返す正常書き換え処理と、前記書き換え許可判別処理で、前記書き換え許可データが前記ダウンロードファイルに含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返す疑似書き換え処理と、前記ダウンロードファイルに含まれる当該ダウンロードファイルの識別情報を前記周辺装置の識別情報格納部に格納する識別情報格納処理と、前記上位装置から前記識別情報の送信要求を受けた場合、前記識別情報格納部に格納されている前記識別情報を前記上位装置へ返す識別情報返信処理とを有する周辺装置の制御処理を実行する制御部のプログラムである。
【発明の効果】
【００１６】
本発明によれば、旧型の周辺装置に対応したプログラムデータが上位装置からダウンロードされることを防止しつつ、周辺装置を含むシステムのダウンを回避することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係るファームウェアのダウンロードシステムの概略構成を示すブロック図である。
【図２】図１に示す上位装置に記憶されるダウンロードファイルのデータ構造の一例を示す概念図である。
【図３】図１に示す上位装置に接続されるカードリーダと上位装置に記憶されるダウンロードファイルとの組み合わせパターンを説明するための概念図である。
【図４】図１に示す上位装置における、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【図５】図１に示すカードリーダにおける、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【図６】本発明の他の実施形態に係るダウンロードファイルのデータ構造の一例を示す概念図である。
【図７】本発明の他の実施形態に係るカードリーダにおける、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【図８】本発明の他の実施形態に係るファームウェアのダウンロードシステムの概略構成を示すブロック図である。
【図９】本発明のさらに他の実施形態に係るファームウェアのダウンロードシステムの概略構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態を図面に関連付けて説明する。
【００１９】
＜ファームウェアのダウンロードシステムの構成＞
図１は、本発明の実施形態に係るファームウェアのダウンロードシステム１０の概略構成を示すブロック図である。
図２は、図１に示す上位装置２０に記憶されるダウンロードファイルのデータ構造の一例を示す概念図である。
図３は、図１に示す上位装置２０に接続されるカードリーダ３０と上位装置２０に記憶されるダウンロードファイルとの組合せパターンを説明するための概念図である。
【００２０】
本実施形態のファームウェアのダウンロードシステム１０（以下、「ダウンロードシステム１０」という）は、図１に示すように、ホストコンピュータ等の上位装置２０、および上位装置２０に通信可能に接続される周辺装置としてのカードリーダ３０（３０Ａ，３０Ｂ）を有している。
上位装置２０とカードリーダ３０とは、ＲＳ２３２ＣやＵＳＢ(Universal Serial Bus)等の通信インタフェースを介して通信可能に接続されている。
このダウンロードシステム１０は、周辺装置としてのカードリーダ３０を動作させるファームウェアのプログラムデータ２３１（図２参照）を上位装置２０からカードリーダ３０へダウンロードする。
【００２１】
本実施形態のダウンロードシステム１０においては、一例として、機能を向上させたり、使用されている部品の製造中止に対処したりするために製造された新型のカードリーダ３０である第１カードリーダ３０Ａと、第１カードリーダ３０Ａよりも旧型のカードリーダ３０である第２カードリーダ３０Ｂとが、上位装置２０に接続可能となっている。
本実施形態において、上位装置２０には、たとえば、第１カードリーダ３０Ａまたは第２カードリーダ３０Ｂのいずれか１台が接続される。
本実施形態の第１カードリーダ３０Ａは周辺装置（第１周辺装置）に相当し、第２カードリーダ３０Ｂは第２周辺装置に相当する。
【００２２】
［上位装置の構成例］
上位装置２０は、ダウンロード制御部２１、およびハードディスクドライブ等の外部記憶部２２を含んで構成されている。
ダウンロード制御部２１は、上位装置２０内の通信機能部や制御用プログラム等を含んで構成されている。
ダウンロード制御部２１は、カードリーダ３０にプログラムデータ２３１（図２）をダウンロードするための制御を行う。
【００２３】
また、外部記憶部２２には、プログラムデータ２３１を含むダウンロードファイル２３が記憶されている。
【００２４】
本実施形態では、上位装置２０の外部記憶部２２には、一例として、第１カードリーダ３０Ａに対応するプログラムデータ２３１を含むダウンロードファイル２３Ａ（図３（Ａ）、（Ｃ）参照）、または、第２カードリーダ３０Ｂに対応するプログラムデータ２３１を含むダウンロードファイル２３Ｂ（図３（Ｂ）、（Ｄ）参照）のいずれかが記憶される。
【００２５】
＜ダウンロードファイルの構造例＞
ここで、本実施形態に係るダウンロードファイル２３の構造例について図２に関連付けて説明する。
【００２６】
ダウンロードファイル２３は、図２の例では、プログラムデータ２３１に加えて、１行目のレビジョン情報（レビジョン・ヘッダ）２３２、２行目のイレースコマンド２３３、３行目以降の各行のプログラムデータ２３１の先頭に配置されたダウンロードコマンド２３４、および最終行のＥＯＦ（End Of File mark、ファイル末端コード）２３５が記述（記載）されている。
【００２７】
すなわち、図２の例では、ダウンロードファイル２３において、レビジョン情報２３２は、ダウンロードファイル２３の１行目に記述され、イレースコマンド２３３は、ダウンロードファイル２３の２行目に記述されている。
ダウンロードコマンド２３４およびプログラムデータ２３１は、ダウンロードファイル２３の３行目以降に記述され、ＥＯＦ２３５は、ダウンロードファイル２３の最終行に記述されている。
【００２８】
レビジョン情報２３２は、ダウンロードファイル２３におけるプログラムデータ２３１の改訂情報である。
レビジョン情報２３２のフォーマットは、たとえば、上位装置２０がカードリーダ３０に対してプログラムデータのレビジョン取得コマンドを発行した場合に得られるカードリーダ３０からのレスポンス（応答）と、同一フォーマットとなっている。
レビジョン取得コマンドは、カードリーダ３０に記憶されているプログラムデータのレビジョン情報を取得するためのコマンドである。
【００２９】
なお、ダウンロードファイル２３の先頭行（１行目）のレビジョン情報（レビジョン・ヘッダ）２３２は、上位装置２０用の情報で、基本的に周辺装置であるカードリーダ３０には送信されない。
【００３０】
イレースコマンド２３３は、カードリーダ３０の後述するプログラム格納部としてのファームウェア格納部の中の指定した領域を消去（イレース）するためのコマンドである。
【００３１】
ダウンロードファイル２３の中の３行目以降の各行のプログラムデータ２３１のそれぞれは、上位装置２０とカードリーダ３０との間の通信プロトコルに適合した規定のデータ形式およびデータ長に予め整形されており、かつ、ダウンロードコマンド２３４にセットされている。
【００３２】
また、図２の例では、たとえば、３行目のプログラムデータ２３１に（プログラムデータとしては１行目に）、ダウンロード先のカードリーダ３０で、プログラムデータの書き換えることを許可する書き換え許可データ２３６が記述されている。
【００３３】
本実施形態では、たとえば第１カードリーダ３０Ａに対応するプログラムデータ２３１を含むダウンロードファイル２３Ａの中の３行目のプログラムデータ２３１には、カードリーダ３０Ａに記憶されているプログラムデータを外部記憶部２２に記憶されるダウンロードファイル２３Ａのプログラムデータ２３１に書き換えることを、カードリーダ側の書き換え制御部に許可させるための書き換え許可データ２３６が記述されている。
一方、第２カードリーダ３０Ｂに対応するプログラムデータ２３１を含むダウンロードファイル２３Ｂの中の３行目のプログラムデータ２３１には、この書き換え許可データ２３６が記述されていない。
【００３４】
なお、書き換え許可データ２３６は、暗号化された暗号文によってプログラムデータ２３１の中に記述されても良いし、暗号化されていない平文によってプログラムデータ２３１の中に記述されても良い。
【００３５】
さらに、図２の例では、５行目のプログラムデータ２３１に（プログラムデータとしては３行目に）、ダウンロードするダウンロードファイル２３の識別情報（識別用ＩＤ）２３７が記述（記載）されている。
なお、識別情報２３７は、暗号化された暗号文によってプログラムデータ２３１の中に記述されても良いし、暗号化されていない平文によってプログラムデータ２３１の中に記述されても良い。
【００３６】
本実施形態においては、レビジョン情報（レビジョン・ヘッダ）２３２と識別情報（識別用ＩＤ）２３７とは同じデータを使用している。
【００３７】
図２はあくまでも一例であり、プログラムデータ２３１中に記述される書き換え許可データ２３６や識別情報２３７は、あらかじめ設定した所定の位置に配置されていればよく、上位装置２０やカードリーダ３０側で早期に認識して取得可能なように、プログラムデータ２３１の先頭の方に配置されることが望ましい。
【００３８】
本実施形態において、ダウンロード制御部２１は、上位装置２０からカードリーダ３０へプログラムデータ２３１をダウンロードする際には、ダウンロードファイル２３の１行目から読み込んだレビジョン情報２３２と、レビジョン取得コマンドの応答として受け取ったカードリーダ３０側のプログラムデータのレビジョンが一致しないときにダウンロード処理を実行する。
そして、ダウンロード制御部２１は、カードリーダ３０側がダウンロードモードに遷移していることを確認し、確認がとれた場合に、ダウンロードファイル２３の２行目以降を１行毎に読み込み、読み込んだ１行をコマンドとしてカードリーダ３０に対して発行する。
ダウンロード制御部２１は、たとえば、読み込んだ１行がダウンロードファイル２３の２行目であれば、イレースコマンド２３３をカードリーダ３０に対して発行する。
また、ダウンロード制御部２１は、読み込んだ１行がダウンロードファイル２３の３行目以降であれば、ダウンロードコマンド２３４を整形されたプログラムデータ２３１とともにカードリーダ３０に対して発行する。
ダウンロード制御部２１は、カードリーダ３０の応答に基づいてコマンドが正常に実行されたか否かを正常完了応答の受信の有無に応じて判断する。
【００３９】
書き込み許可データ２３６および識別情報２３７のダウンロードに関連した適用のされ方については、後で詳述する。
【００４０】
また、本実施形態のダウンロード制御部２１は、状況に応じて、先頭のレビジョン情報（レビジョンヘッダ）行をコマンド化して、識別情報（識別用ＩＤ）送付コマンドとして送信する機能を有する。
本実施形態では、ダウンロードファイルのプログラムデータ２３１の所定位置に識別情報（識別用ＩＤ）が配置してあるが、他の周辺装置を含めて考えると、その配置場所は全てで統一されていない。
したがって、本実施形態において、現状では周辺装置に送信されない、識別情報（識別用ＩＤ）をテキストにした識別用ＩＤ通知コマンドを新設する。
ダウンロード制御部２１が、そのような送付コマンドを生成する処理等をして送信し、そのコマンドに正常応答の受信で実現する。
【００４１】
［カードリーダ（周辺装置）の構成例］
カードリーダ３０は、たとえば、カードを手動で移動させながらカードに記録された磁気データの読取り等を行う手動式のカードリーダ、あるいは、カードの搬送機構によってカードを搬送させながらカードに記録された磁気データの読取り等を行うカード搬送式のカードリーダにより構成される。
【００４２】
基本的に、カードリーダ３０は、カードリーダ制御部３１および識別情報格納部３２を主構成要素として有している。
カードリーダ制御部３１は、ＲＯＭ、ＲＡＭ、不揮発性メモリ等の記憶手段やＣＰＵ等の演算手段等を含んで構成され、カードリーダ３０の全体の動作等を制御する。
カードリーダ制御部３１は、図１に示すように、プログラム格納部としてのファームウェア格納部３１１および書き換え制御部３１２を有する。
ファームウェア格納部３１１は、プログラムデータを含むファームウェアが格納（記憶）される。
ファームウェア格納部３１１は、メモリ等により構成され、プログラムデータを書き換え可能に格納（記憶）する。
また、ファームウェア格納部３１１は、格納しているプログラムデータのレビジョン情報を格納（記憶）する。
書き換え制御部３１２は、ファームウェア格納部３１１に格納されているプログラムデータの書き換えを制御する。
識別情報格納部３２は、カードリーダ制御部３１に含まれる形で配置され、カードリーダ制御部３１、本実施形態では書き換え制御部３１２の制御の下、ダウンロードファイル２３に記述されている識別情報が消去可能に格納される。この制御については後述する。
【００４３】
以上は、カードリーダ３０の基本的な構成例であるが、新型の第１カードリーダ３０Ａと旧型の第２カードリーダ３０Ｂの場合も、基本的に同様の機能を含んで同様に構成される。ただし、旧型の第２カードリーダ３０Ｂには、識別情報格納部３２は配置されていない。
【００４４】
すなわち、カードリーダ３０Ａは、カードリーダ制御部３１Ａおよび識別情報格納部３２Ａを主構成要素として有している。
カードリーダ制御部３１Ａは、ＲＯＭ、ＲＡＭ、不揮発性メモリ等の記憶手段やＣＰＵ等の演算手段等を含んで構成され、カードリーダ３０Ａの全体の動作等を制御する。
カードリーダ制御部３１Ａは、図１に示すように、プログラム格納部としてのファームウェア格納部３１１Ａおよび書き換え制御部３１２Ａを有する。
ファームウェア格納部３１１Ａは、プログラムデータを含むファームウェアが格納（記憶）される。
ファームウェア格納部３１１Ａは、メモリ等により構成され、プログラムデータを書き換え可能に格納（記憶）する。
また、ファームウェア格納部３１１Ａは、格納しているプログラムデータのレビジョン情報を格納（記憶）する。
書き換え制御部３１２Ａは、ファームウェア格納部３１１Ａに格納されているプログラムデータの書き換えを制御する。
識別情報格納部３２Ａは、カードリーダ制御部３１Ａに含まれる形で配置され、カードリーダ制御部３１Ａ、本実施形態では書き換え制御部３１２Ａの制御の下、ダウンロードファイル２３に記述されている識別情報が消去可能に格納される。
【００４５】
同様に、カードリーダ３０Ｂは、カードリーダ制御部３１Ｂを主構成要素として有している。
カードリーダ制御部３１Ｂは、ＲＯＭ、ＲＡＭ、不揮発性メモリ等の記憶手段やＣＰＵ等の演算手段等を含んで構成され、カードリーダ３０Ｂの全体の動作等を制御する。
カードリーダ制御部３１Ｂは、図１に示すように、プログラム格納部としてのファームウェア格納部３１１Ｂおよび書き換え制御部３１２Ｂを有する。
ファームウェア格納部３１１Ｂは、プログラムデータを含むファームウェアが格納（記憶）される。
ファームウェア格納部３１１Ｂは、メモリ等により構成され、プログラムデータを書き換え可能に格納（記憶）する。
また、ファームウェア格納部３１１Ｂは、格納しているプログラムデータのレビジョン情報を格納（記憶）する。
書き換え制御部３１２Ｂは、ファームウェア格納部３１１Ｂに格納されているプログラムデータの書き換えを制御する。
【００４６】
なお、識別情報２３７を格納する識別情報格納部３２（Ａ）は、たとえばフラッシュメモリ等の不揮発性メモリにより構成される。
また、図１の例では、ファームウェア格納部３１１（Ａ，Ｂ）はカードリーダ制御部３１（Ａ，Ｂ）に含まれるような構成として示されているが、カードリーダ制御部３１（Ａ，Ｂ）の書き換え制御部３１２の制御下にあればよく、図１の構成に限定されるものではない。
また、カードリーダ制御部３１（Ａ）および書き換え制御部３１２（Ａ）の少なくとも一方により、本発明に係る制御部が構成される。
【００４７】
次に、カードリーダ３０を例に、本実施形態に係るカードリーダ３０側におけるダウンロードファイルのダウンロードの制御処理について説明する。
【００４８】
カードリーダ３０のカードリーダ制御部３１は、上位装置２０からダウンロードされるダウンロードファイル２３に、書き換え制御部３１２に対して、ファームウェア格納部３１１に格納されているプログラムデータを書き換えることを許可する書き換え許可データ２３６が含まれている場合には、次の処理を行う。
この場合、カードリーダ制御部３１は、正常書き換えとして、プログラム格納部としてのファームウェア格納部３１１に格納されているプログラムデータを上位装置２０から送られるプログラムデータ２３１に書き換えて、データ書き換えの正常完了応答を上位装置２０へ返す。
【００４９】
カードリーダ制御部３１は、上位装置２０からダウンロードされるダウンロードファイル２３に書き換え許可データが含まれていない場合には、次の処理を行う。
この場合、カードリーダ制御部３１は、疑似書き換えとして、プログラム格納部としてのファームウェア格納部３１１に格納されているプログラムデータを上位装置２０から送られるプログラムデータに書き換えずに、データ書き換えの正常完了応答を上位装置２０へ返す。
【００５０】
カードリーダ制御部３１は、書き換え処理と並行して、受信したダウンロードファイル２３に記述されている識別情報２３７を取得（抽出）して識別情報格納部３２に格納する。
本実施形態において、カードリーダ制御部３１は、上記した疑似書き換え時に、ダウンロードファイル２３に含まれる識別情報２３７を取得して識別情報格納部３２に格納する。
そして、カードリーダ制御部３１は、上位装置２０から識別情報の送信要求を受けた場合、識別情報格納部３２に格納されている識別情報を上位装置２０へ返す。
【００５１】
また、本実施形態において、カードリーダ制御部３１は、上記した正常書き換え時において、上位装置２０からダウンロードされるダウンロードファイル２３を正常に受信した場合に識別情報格納部３２に格納されている識別情報を消去する。
なお、ここでは、上位装置２０からダウンロードされるダウンロードファイル２３を正常に受信した場合に識別情報格納部３２に格納されている識別情報を消去することを一例として挙げている。この場合、識別情報格納部３２に格納されている識別情報の取得（読み取り）を不可とできればよく、識別情報の格納領域へのアクセスを以降禁止するなど、消去の他にも種々の態様が可能である。
カードリーダ制御部３１は、正常書き換えを行った場合に、上位装置２０から識別情報の送信要求を受けた場合、正当な（通常の）識別情報を上位装置２０へ返す。
【００５２】
すなわち、本実施形態のカードリーダ３０において、カードリーダ制御部３１が、ダウンロードファイルのダウンロード時に以下の制御を行う。
（１）ダウンロードの可能性がある、旧仕様用（旧型）のダウンロードファイルを受信した場合、正常にコマンドを受信したと上位装置２０に疑似的にレスポンス（応答）を返すだけでなく、受信データの中から、その無効扱いの識別情報２３７を抽出（取得）し、周辺装置であるカードリーダ３０内の不揮発性メモリ等の識別情報格納部３２内に保持する。
そして、識別情報格納部３２に無効扱いの識別情報が記憶されているときには、要求に応じて識別情報として返す。
（２）新仕様用のダウンロードファイルを正常受信時は、まず、識別情報格納部３２の無効扱いの識別情報の格納場所を消去する。
すなわち、起動時に無効扱いの識別情報の格納場所が消去されていれば、要求に応じて、通常の識別情報を返す。
（３）また、受信するダウンロードファイル２３の所定位置に識別情報がない場合は、上述したように、上位装置２０が認識可能なダウンロードファイル２３の識別情報を、新送付コマンドを用いて周辺装置であるカードリーダ３０に送付する。
カードリーダ３０は、たとえば新コマンドで受信した識別情報を不揮発性メモリ等の識別情報格納部３２内に格納（記憶）し、保持する。
【００５３】
＜カードリーダ３０におけるダウンロードの具体的な制御処理＞
［本実施形態ではない通常処理の場合］
通常は、まず「イレース」コマンド受信でファームウェア格納部３１１のプログラムデータが格納されている書き換え領域（エリア）を消去し、「ダウンロード」コマンド受信で書き込みを行う。
【００５４】
［本実施形態の処理］
本実施形態では、以下の（１）〜（５）に示すような処理が行われる。
【００５５】
（１）「イレース」コマンド受信時にはファームウェア格納部３１１のプログラムデータが格納されている書き換えエリアを消去せず、最初の「ダウンロード」コマンド受信時に、そのコマンドのプログラムデータ２３１内に組み込まれた書き換え許可データ（照合用ＩＤデータ）２３６による判定を行う。
そして、そのプログラムデータ２３１の正当性を確認すれば（正常書き換えの場合）、ファームウェア格納部３１１の書き換えエリアのプログラムデータおよび不揮発性メモリ等の識別情報格納部３２の識別情報を消去し、最初の「ダウンロード」コマンドのプログラムデータを書き込む。
【００５６】
（２）書き換え許可データ（照合用ＩＤデータ）による判定で正当性が確認できなかった場合、本実施形態では、書き込むべきダウンロードファイルではないと判断され、「イレース」や「ダウンロード」コマンドにて書き換えず正常応答だけ返す。
すなわち、このコマンドに対応した処理を行わず、疑似書き換え処理を行う。
【００５７】
（３）この疑似書き換え処理の過程で、受信したダウンロードファイル２３の所定位置に組み込まれた識別情報（識別用ＩＤ）を取得し、内部に一時的に保持する。
【００５８】
（４）この疑似書き換え処理で、最後まで正常にダウンロードしたかのように振る舞うことになる。
最後まで終了したら、一時的に保持した識別情報（識別用ＩＤ）を不揮発性メモリ等の識別情報格納部３２に格納（記憶）する。
【００５９】
（５）ダウンロード実施後、不揮発性メモリ等の識別情報格納部３２に識別情報（識別用ＩＤ）が記録されていた場合、上位装置２０からの送信要求に対してその識別情報（識別用ＩＤ）を応答として返すようにする。
【００６０】
本実施形態においては、このように、識別情報を用いたダウンロード処理を行うことにより、以下の利点を有する。
上位装置２０が新仕様用（新型）のダウンロードファイルに入れ替えられていない場合であっても、送付されたダウンロードファイルに関して疑似書き換えを行うだけでなく、上位装置２０から識別情報（識別用ＩＤ）の送信要求を受けた場合には、疑似書き換えした無効のダウンロードファイルの識別情報（識別用ＩＤ）が返されるので、それ以降のダウンロード処理が起動されず、処理の短縮化が図れる。
上位装置２０から識別情報（識別用ＩＤ）の送信要求を受けた場合、ダウンロード直後でも疑似書き換えしたダウンロードファイルの識別情報（識別用ＩＤ）が返されるので、システム停止を回避することができる。
上位装置２０から、適用不可のダウンロードファイルの適用指示を排除するので、自身の動作環境が守られ、継続して使用することが可能となる。
【００６１】
＜上位装置２０に接続されるカードリーダ３０と上位装置２０に記憶されるダウンロードファイル２３との組合せ＞
ところで、本実施形態においては、上述のように、上位装置２０には、第１カードリーダ３０Ａと第２カードリーダ３０Ｂとが接続可能となっている。
また、外部記憶部２２には、第１カードリーダ３０Ａに対応するプログラムデータ２３１を含むダウンロードファイル２３Ａ、または、第２カードリーダ３０Ｂに対応するプログラムデータ２３１を含むダウンロードファイル２３Ｂが記憶されている。
そのため、上位装置２０に接続されるカードリーダ３０と上位装置２０に記憶されるダウンロードファイル２３との組合せとして、図３に示す４つのパターンが考えられる。
【００６２】
すなわち、図３（Ａ）に示すように、上位装置２０に第１カードリーダ３０Ａが接続され、外部記憶部２２にダウンロードファイル２３Ａが記憶されるパターンが考えられる。
図３（Ｂ）に示すように、上位装置２０に第１カードリーダ３０Ａが接続され、外部記憶部２２にダウンロードファイル２３Ｂが記憶されるパターンが考えられる。
図３（Ｃ）に示すように、上位装置２０に第２カードリーダ３０Ｂが接続され、外部記憶部２２にダウンロードファイル２３Ａが記憶されるパターンが考えられる。
そして、図３（Ｄ）に示すように、上位装置２０に第２カードリーダ３０Ｂが接続され、外部記憶部２２にダウンロードファイル２３Ｂが記憶されるパターンが考えられる。
【００６３】
なお、外部記憶部２２にダウンロードファイル２３Ａが記憶されている場合、ダウンロードファイル２３Ａに含まれるプログラムデータ２３１のレビジョンは、たとえば、図３（Ａ）、（Ｃ）に示すように、“Ｒｅｖ．Ｂ”である。
また、外部記憶部２２にダウンロードファイル２３Ｂが記憶されている場合、ダウンロードファイル２３Ｂに含まれるプログラムデータ２３１のレビジョンは、たとえば、図３（Ｂ）、（Ｄ）に示すように、“Ｒｅｖ．ｂ”である。
また、第１カードリーダ３０Ａのファームウェア格納部３１１Ａに記憶されているプログラムデータのレビジョンは、たとえば、図３（Ａ）、（Ｂ）に示すように、“Ｒｅｖ．Ａ” である。
第２カードリーダ３０Ｂのファームウェア格納部３１１Ｂに記憶されているプログラムデータのレビジョンは、たとえば、図３（Ｃ）、（Ｄ）に示すように、“Ｒｅｖ．ａ”である。
【００６４】
また、本実施形態では、第１カードリーダ３０Ａに対応するプログラムデータ２３１が第２カードリーダ３０Ｂにダウンロードされた場合であっても、第２カードリーダ３０Ｂは、正常に動作する。
一方、第２カードリーダ３０Ｂに対応するプログラムデータ２３１が第１カードリーダ３０Ａにダウンロードされると、第１カードリーダ３０Ａは、正常に動作しなくなる。
【００６５】
以下に、本実施形態におけるファームウェアのダウンロード処理を、上位装置２０における処理と、周辺装置であるカードリーダ３０における処理に分け、それぞれフローチャートに関連付けて説明する。
【００６６】
＜ファームウェアのダウンロード処理：上位装置における処理＞
まず、上位装置２０におけるダウンロード処理を図４に関連付けて説明する。
図４は、図１に示す上位装置２０における、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【００６７】
上位装置２０からカードリーダ３０へプログラムデータ２３１をダウンロードする際には、まず、ダウンロード制御部２１は、ダウンロードファイル２３の１行目を読み込んで、レビジョン情報２３２を読み取り（ステップＳＴ１）、カードリーダ３０に対してレビジョン取得コマンドを発行する（ステップＳＴ２）。
その後、ダウンロード制御部２１は、ダウンロードファイル２３から読み取ったレビジョン情報２３２と、レビジョン取得コマンドに対するカードリーダ３０からの応答とを比較する（ステップＳＴ３）。
すなわち、ステップＳＴ３では、上位装置２０に（具体的には、外部記憶部２２に）記憶されているダウンロードファイル２３に含まれるプログラムデータ２３１のレビジョンと、カードリーダ３０のファームウェア格納部３１１に記憶されているプログラムデータのレビジョンとを比較する。
【００６８】
ステップＳＴ３で、上位装置２０に記憶されているダウンロードファイル２３に含まれるプログラムデータ２３１のレビジョンと、ファームウェア格納部３１１（Ａ，Ｂ）に記憶されているプログラムデータのレビジョンとが一致しない場合には（ステップＳＴ３で“Ｎｏ”の場合には）、ダウンロード制御部２１は、ダウンロード処理を実行するべく、カードリーダ３０に対して初期化コマンドを発行する（ステップＳＴ４）。
【００６９】
すなわち、たとえばダウンロード制御部２１は、図３（Ａ）に示すように、上位装置２０（具体的には、外部記憶部２２）に記憶されているダウンロードファイル２３Ａに含まれるプログラムデータ２３１のレビジョンが“Ｒｅｖ．Ｂ”であり、ファームウェア格納部３１１Ａに記憶されているプログラムデータのレビジョンが“Ｒｅｖ．Ａ”である場合に、初期化コマンドを発行する。
また、ダウンロード制御部２１は、図３（Ｂ）に示すように、上位装置２０に記憶されているダウンロードファイル２３Ｂに含まれるプログラムデータ２３１のレビジョンが“Ｒｅｖ．ｂ”であり、ファームウェア格納部３１１Ａに記憶されているプログラムデータのレビジョンが“Ｒｅｖ．Ａ”である場合に、初期化コマンドを発行する。
また、ダウンロード制御部２１は、図３（Ｃ）に示すように、上位装置２０に記憶されているダウンロードファイル２３Ａに含まれるプログラムデータ２３１のレビジョンが“Ｒｅｖ．Ｂ”であり、ファームウェア格納部３１１Ｂに記憶されているプログラムデータのレビジョンが“Ｒｅｖ．ａ”である場合に、初期化コマンドを発行する。
また、ダウンロード制御部２１は、図３（Ｄ）に示すように、上位装置２０に記憶されているダウンロードファイル２３Ｂに含まれるプログラムデータ２３１のレビジョンが“Ｒｅｖ．ｂ”であり、ファームウェア格納部３１１Ｂに記憶されているプログラムデータのレビジョンが“Ｒｅｖ．ａ”である場合に、初期化コマンドを発行する。
【００７０】
上記したような場合に、上位装置２０に記憶されているダウンロードファイル２３に含まれるプログラムデータ２３１のレビジョンと、ファームウェア格納部３１１（Ａ，Ｂ）に記憶されているプログラムデータのレビジョンとが一致しないため、ステップＳＴ４で、ダウンロード制御部２１は、カードリーダ３０に対して初期化コマンドを発行する。
【００７１】
その後、ダウンロード制御部２１は、この初期化コマンドに対するカードリーダ３０のレスポンス（応答）から、カードリーダ３０がプログラムデータ２３１のダウンロードが可能な状態のダウンロードモードであるか否かを判断する（ステップＳＴ５）。
ステップＳＴ５で、カードリーダ３０がダウンロードモードでなければ（ステップＳＴ５で“Ｎｏ”の場合には）、ダウンロード制御部２１は、カードリーダ３０に対してモード切替コマンドを発行して（ステップＳＴ６）、カードリーダ３０をダウンロードモードに遷移させてからステップＳＴ４へ戻る。
【００７２】
一方、ステップＳＴ５で、カードリーダ３０がダウンロードモードであれば（ステップＳＴ５で“Ｙｅｓ”の場合には）、ダウンロード制御部２１は、ダウンロードファイル２３の２行目以降を１行毎に読み込み（ステップＳＴ７）、読み込んだ１行が最終行（ＥＯＦ２３５）であるか否かを判断する（ステップＳＴ８）。
【００７３】
ステップＳＴ８で、読み込んだ１行が最終行でなければ（ステップＳＴ８で“Ｎｏ”の場合には）、ダウンロード制御部２１は、この読み込んだダウンロードファイル２３の１行をコマンドとしてカードリーダ３０に対して発行する。
たとえば、読み込んだ１行がダウンロードファイル２３の２行目であれば、イレースコマンド２３３がカードリーダ３０に対して発行される。
また、読み込んだ１行がダウンロードファイル２３の３行目以降であれば、ダウンロードコマンド２３４が整形されたプログラムデータ２３１とともにカードリーダ３０に対して発行される。
【００７４】
その後、ダウンロード制御部２１は、カードリーダ３０の応答に基づいてコマンドが正常に実行されたか否かを判断する（ステップＳＴ１０）。
カードリーダ３０の応答が正常応答であれば（ステップＳＴ１０で“Ｙｅｓ”の場合には）、ステップＳＴ７へ戻り、ダウンロードファイル２３の次の行を読み込む。
一方、カードリーダ３０の応答が異常応答であれば（ステップＳＴ１０で“Ｎｏ”の場合には）、ダウンロード制御部２１は、プログラムデータ２３１のダウンロード失敗と判断して、ダウンロード処理を終了する。
なお、この場合には、ダウンロードシステム１０がダウンする（ダウンロードシステム１０の動作が停止してしまう）ことがある。
【００７５】
また、ステップＳＴ８で、ダウンロードファイル２３から読み込んだ１行が最終行となると（ステップＳＴ８で“Ｙｅｓ”の場合）、プログラムデータ２３１のダウンロードは正常終了となる。
【００７６】
また、ステップＳＴ３で、上位装置２０に記憶されているプログラムデータ２３１のレビジョンと、ファームウェア格納部３１１（Ａ，Ｂ）に記憶されているプログラムデータのレビジョンとが一致している場合には（ステップＳＴ３で“Ｙｅｓ”の場合には）、ダウンロード制御部２１は、プログラムデータ２３１のダウンロードは不要と判断して、ダウンロード処理を終了する。
たとえば、図３（Ａ）において、上位装置２０に記憶されているプログラムデータ２３１のレビジョンが“Ｒｅｖ．Ａ”である場合には、上位装置２０に記憶されているプログラムデータ２３１のレビジョンと、ファームウェア格納部３１１Ａに記憶されているプログラムデータのレビジョンとが一致しているため、ダウンロード制御部２１は、ダウンロード処理を終了する。
【００７７】
＜ファームウェアのダウンロード処理：カードリーダにおける処理＞
次に、本実施形態に係る周辺装置であるカードリーダ３０におけるダウンロード処理を図５に関連付けて説明する。
図５は、図１に示すカードリーダ３０における、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【００７８】
図３（Ｃ）、（Ｄ）に示すように、上位装置２０に第２カードリーダ３０Ｂが接続されている場合には、ダウンロードファイル２３Ａ、２３Ｂのいずれが上位装置２０に記憶されている場合であっても、第２カードリーダ３０Ｂでは、ファームウェアのダウンロード時に、通常の（たとえば上述した特許文献１に記載された）カードリーダの処理と同様の処理が行われる。
【００７９】
すなわち、上述のステップＳＴ７で読み込まれた１行がダウンロードファイル２３の２行目であれば、ステップＳＴ９で発行されるイレースコマンド２３３に基づいて、カードリーダ制御部３１Ｂは、イレースコマンド２３３を実行する。
具体的には、書き換え制御部３１２Ｂが、ファームウェア格納部３１１Ｂの中の指定された領域を消去する。
より具体的には、書き換え制御部３１２Ｂが、プログラムデータ２３１に対応するファームウェア格納部３１１Ｂ内のプログラムデータを消去する。
また、カードリーダ制御部３１Ｂは、イレースコマンド２３３が正常に実行されたとの正常応答をダウンロード制御部２１へ返す。
【００８０】
また、ステップＳＴ７で読み込まれた１行がダウンロードファイル２３の３行目以降であれば、ステップＳＴ９で発行されるダウンロードコマンド２３４に基づいて、カードリーダ制御部３１Ｂは、ダウンロードコマンド２３４を実行する。
具体的には、書き換え制御部３１２Ｂが、上位装置２０から送られてくるプログラムデータ２３１を、ファームウェア格納部３１１Ｂの中の指定された領域に格納（記憶）する。
すなわち、書き換え制御部３１２Ｂが、上位装置２０から送られてくるプログラムデータ２３１を、ファームウェア格納部３１１Ｂに書き込む。また、書き換え制御部３１２Ｂは、ダウンロードコマンド２３４が正常に実行されたとの正常応答をダウンロード制御部２１へ返す。
【００８１】
一方、図３（Ａ）、（Ｂ）に示すように、上位装置２０に第１カードリーダ３０Ａが接続されている場合には、第１カードリーダ３０Ａでは、ファームウェアのダウンロード時に、通常の（たとえば上述した特許文献１に記載されたカードリーダ）の処理と異なる処理が行われる。
具体的には、第１カードリーダ３０Ａでは、図５に示すフローに従って、以下のように処理が行われる。
【００８２】
上述のステップＳＴ７で読み込まれた１行がダウンロードファイル２３の２行目であって、ステップＳＴ９で発行されたダウンロードファイル２３の２行目、すなわちイレースコマンド２３３を書き換え制御部３１２Ａが受信する（ステップＳＴ２１）。
書き換え制御部３１２Ａは、この２行目のイレースコマンド２３３を実行せずに、イレースコマンド２３３が正常に実行されたとの正常応答をダウンロード制御部２１へ返す（ステップＳＴ２２）。
すなわち、ステップＳＴ２２では、書き換え制御部３１２Ａが、ファームウェア格納部３１１Ａに記憶されているプログラムデータを消去することなく、イレースコマンド２３３が正常に実行されたとの正常応答をダウンロード制御部２１へ返す。
【００８３】
その後、ステップＳＴ９で発行されたダウンロードファイル２３の３行目、すなわちダウンロードコマンド２３４およびプログラムデータ２３１を書き換え制御部３１２Ａが受信する（ステップＳＴ２３）。
書き換え制御部３１２Ａは、３行目のプログラムデータ２３１に書き換え許可データ２３６が記述されているか否かを判断する（ステップＳＴ２４）。
すなわち、ステップＳＴ２４において、書き換え制御部３１２Ａは、上位装置２０に記憶されているプログラムデータ２３１が第１カードリーダ３０Ａに対応するプログラムデータ２３１であるか否かを判別する。
【００８４】
たとえば、図３（Ａ）に示すように、上位装置２０にダウンロードファイル２３Ａが記憶されており、ステップＳＴ２４で、３行目のプログラムデータ２３１に書き換え許可データ２３６が記述されている場合、カードリーダ制御部３１Ａおよび書き換え制御部３１２Ａは、次の処理を行う。
すなわち、ダウンロードファイル２３Ａに書き換え許可データ２３６が含まれている場合（ステップＳＴ２４で“Ｙｅｓ”の場合）には、カードリーダ制御部３１Ａの書き換え制御部３１２Ａが、不揮発性メモリである識別情報格納部３２Ａの識別情報（識別用ＩＤ）の格納領域を消去する（ステップＳＴ２５）。
この場合、カードリーダ制御部３１Ａあるいは書き換え制御部３１２Ａが、識別情報格納部３２Ａに識別情報（識別用ＩＤ）が実際に格納されている場合に消去を行うように構成する、あるいは、無条件に識別情報格納部３２Ａの識別情報の格納領域を消去するように構成する等、種々の態様が可能である。
【００８５】
そして、ダウンロードファイル２３に書き換え許可データ２３６が含まれていることから、書き換え制御部３１２Ａは、ダウンロードファイル２３Ａの２行目のコマンドおよび３行目のコマンド、すなわち、イレースコマンド２３３およびダウンロードコマンド２３４を実行する。そして、書き換え制御部３１２Ａは、ダウンロードコマンド２３４が正常に実行されたとの正常応答をダウンロード制御部２１へ返す（ステップＳＴ２６）。
具体的には、ステップＳＴ２６で、書き換え制御部３１２Ａが、ファームウェア格納部３１１Ａに記憶されているプログラムデータを消去し、かつ、上位装置２０から送られてくるプログラムデータ２３１をファームウェア格納部３１１Ａの中の指定された領域に格納（記憶）して、正常応答をダウンロード制御部２１へ返す。
【００８６】
なお、ステップＳＴ２５における識別情報格納部３２Ａに対する消去処理と、ステップＳＴ２６におけるダウンロードファイル２３Ａの２行目のイレースコマンド２３３に応答したファームウェア格納部３１１Ａの所定領域に対する消去処理は、いずれか先であっても後であっても良い。
【００８７】
その後、書き換え制御部３１２Ａは、ダウンロードファイル２３Ａの４行目以降を順次、受信し（ステップＳＴ２７）、受信した行のダウンロードコマンド２３４を順次、実行する（ステップＳＴ２８）。
すなわち、書き換え制御部３１２Ａは、上位装置２０から送られてくるプログラムデータ２３１をファームウェア格納部３１１Ａの中の指定された領域に格納（記憶）して、ダウンロードコマンド２３４が正常に実行されたとの正常応答をダウンロード制御部２１へ返す（ステップＳＴ２８）。
【００８８】
一方、図３（Ｂ）に示すように、上位装置２０にダウンロードファイル２３Ｂが記憶されており、ステップＳＴ２４で、３行目のプログラムデータ２３１に書き換え許可データ２３６が記述されていない場合、カードリーダ制御部３１Ａおよび書き換え制御部３１２Ａは、次の処理を行う。
すなわち、ダウンロードファイル２３Ｂに書き換え許可データ２３６が含まれていない場合（ステップＳＴ２４で“Ｎｏ”の場合）には、書き換え制御部３１２Ａは、ダウンロードファイル２３Ｂの３行目のコマンド、すなわち、ダウンロードコマンド２３４を実行せずに、ダウンロードコマンド２３４が正常に実行されたとの正常応答をダウンロード制御部２１へ返す（ステップＳＴ２９）。
具体的には、ステップＳＴ２９では、書き換え制御部３１２Ａが、上位装置２０から送られてくるプログラムデータ２３１をファームウェア格納部３１１Ａに格納（記憶）せずに、正常応答をダウンロード制御部２１へ返す。
【００８９】
その後、書き換え制御部３１２Ａは、ダウンロードファイル２３Ｂの４行目以降を順次、受信する（ステップＳＴ３０）。
次に、書き換え制御部３１２Ａは、受信したダウンロードファイル２３Ｂに識別情報２３７が有るか否か（含まれているか否か）の判別を行う（ステップＳＴ３１）。
ダウンロードファイル２３Ｂに識別情報２３７が含まれている場合（ステップＳＴ３１で“Ｙｅｓ”の場合）には、書き換え制御部３１２Ａは、受信したプログラムデータ２３１の中から、識別情報（識別用ＩＤ）２３７を抽出して取得し（ステップＳＴ３２）、内部のメモリやレジスタ等に一時的に保持する（ステップＳＴ３３）。
ここで取得し、保持するダウンロードファイル２３Ｂの識別情報２３７は、第１カードリーダ３０Ａに対して無効扱いされるダウンロードファイル２３Ｂの識別情報である。
【００９０】
ステップＳＴ３３の処理後、あるいはダウンロードファイル２３Ｂに識別情報２３７が含まれていない場合（ステップＳＴ３１で“Ｎｏ”の場合）には、書き換え制御部３１２Ａは、受信した行のダウンロードコマンド２３４を実行せずに、擬似的な書き換え処理を行って、ダウンロードコマンド２３４が正常に実行されたとの正常応答（擬似応答）をダウンロード制御部２１へ返す（ステップＳＴ３４）。
【００９１】
そして、書き換え制御部３１２Ａは、ステップＳＴ３４においてダウンロードファイル２３Ｂの最終行まで上記擬似書き換え処理を行ってダウンロードコマンド２３４が正常に実行されたとの正常応答（擬似応答）をダウンロード制御部２１へ返した後、ステップＳＴ３３で内部に一時的に保持していた無効扱いの識別情報２３７を識別情報格納部３２Ａに格納（記憶）する（ステップＳＴ３５）。
【００９２】
たとえば、ステップＳＴ３５の処理後に上位装置２０から識別情報の送信要求を受けた場合（ステップＳＴ３６）、カードリーダ制御部３１Ａあるいは書き換え制御部３１２Ａは、識別情報格納部３２Ａに格納されている無効扱いの識別情報を上位装置２０に返す（ステップＳＴ３７）。
また、ステップＳＴ３６で上位装置２０からの送信要求がない場合（ステップＳＴ３６で“Ｎｏ”の場合）、ステップＳＴ３７の処理を実行せず上位装置２０からの次のステップ待ちとなる。
【００９３】
また、ステップＳＴ２８の処理後に上位装置２０から識別情報の送信要求を受けた場合（ステップＳＴ３８）、このとき、識別情報格納部３２Ａには識別情報が格納されておらず、カードリーダ制御部３１Ａあるいは書き換え制御部３１２Ａは、正常なダウンロードファイル２３Ａに記述されていた正当な識別情報を上位装置２０に返す（ステップＳＴ３９）。
また、ステップＳＴ３８で上位装置２０からの送信要求がない場合（ステップＳＴ３８で“Ｎｏ”の場合）、ステップＳＴ３９の処理を実行せず上位装置２０からの次のステップ待ちとなる。
【００９４】
本実施形態のステップＳＴ２４は、書き換え許可データ２３６がダウンロードファイル２３に含まれているか否かを判別する書き換え許可判別ステップである。
また、本実施形態のステップＳＴ２６、ＳＴ２８は、書き換え許可データ２３６がダウンロードファイル２３に含まれている場合に、カードリーダ３０に記憶されているプログラムデータを上位装置２０から送られるプログラムデータ２３１に書き換えて、データ書換えの正常完了応答を上位装置２０へ返す正常書き換えステップである。
本実施形態のステップＳＴ２９、ＳＴ３４は、書き換え許可データ２３６がダウンロードファイル２３に含まれていない場合に、カードリーダ３０に記憶されているプログラムデータを上位装置２０から送られるプログラムデータ２３１に書き換えずに、データ書換えの正常完了応答を上位装置２０へ返す擬似書き換えステップである。
さらに、本実施形態のステップＳＴ３５は、ダウンロードファイル２３に含まれるこのダウンロードファイルの識別情報２３７をカードリーダ３０の識別情報格納部３２に格納する識別情報格納ステップである。
本実施形態のステップＳＴ３７は、上位装置２０から識別情報の送信要求を受けた場合、識別情報格納部３２に格納されている識別情報を上位装置２０へ返す識別情報返信ステップである。
【００９５】
＜本実施形態の主な効果＞
以上説明したように、本実施形態によれば、ダウンロードファイル２３に書き換え許可データ２３６が含まれている場合には、カードリーダ３０に記憶されているプログラムデータが上位装置２０から送られてくるプログラムデータ２３１に書き換えられる。
一方、ダウンロードファイル２３に書き換え許可データ２３６が含まれていない場合には、カードリーダ３０に記憶されているプログラムデータが上位装置２０から送られてくるプログラムデータ２３１に書き換えられない。
すなわち、本実施形態によれば、基本的に、第１カードリーダ３０Ａに対応するプログラムデータ２３１が上位装置２０に記憶されている場合には、第１カードリーダ３０Ａに記憶されているプログラムデータが上位装置２０から送られてくるプログラムデータ２３１に書き換えられる。
一方、第２カードリーダ３０Ｂに対応するプログラムデータ２３１が上位装置２０に記憶されている場合には、第１カードリーダ３０Ａに記憶されているプログラムデータが上位装置２０から送られてくるプログラムデータ２３１に書き換えられない。
そのため、本実施形態によれば、旧型の第２カードリーダ３０Ｂに対応するプログラムデータ２３１が上位装置２０から新型の第１カードリーダ３０Ａにダウンロードされることを防止することができる。
したがって、本実施形態によれば、旧型の第２カードリーダ３０Ｂに対応するプログラムデータ２３１が第１カードリーダ３０Ａにダウンロードされて、第１カードリーダ３０Ａが正常に動作しなくなるといった不具合を回避することが可能になる。
【００９６】
本実施形態によれば、ダウンロードファイル２３に書き換え許可データ２３６が含まれておらず、第１カードリーダ３０Ａに記憶されているプログラムデータが上位装置２０から送られるプログラムデータ２３１に書き換えられない場合、すなわち、イレースコマンド２３３およびダウンロードコマンド２３４を書き換え制御部３１２が実行しない場合であっても、書き換え制御部３１２は、データ書き換えの正常完了応答を上位装置２０へ返している。
そのため、上位装置２０から第１カードリーダ３０Ａへプログラムデータ２３１がダウンロードされなくても、上位装置２０のダウンロード処理を正常に終了させることができる。したがって、本実施形態では、ダウンロードシステム１０のダウンを回避することが可能になる。
【００９７】
本実施形態によれば、上位装置２０に第２カードリーダ３０Ｂが接続されている場合、第２カードリーダ３０Ｂは、ダウンロードファイル２３に書き換え許可データ２３６が含まれるか否かを判別せずに、第２カードリーダ３０Ｂに記憶されているプログラムデータを上位装置２０から送られるプログラムデータ２３１に書き換えている。
そのため、第１カードリーダ３０Ａに対応するプログラムデータ２３１が上位装置２０に記憶されている場合には、このプログラムデータ２３１によって、第２カードリーダ３０Ｂを動作させることができる。
すなわち、本実施形態によれば、第１カードリーダ３０Ａに対応する１個のプログラムデータ２３１によって、第１カードリーダ３０Ａおよび第２カードリーダ３０Ｂを動作させることができる。
【００９８】
また、第２カードリーダ３０Ｂに対応するプログラムデータ２３１が上位装置２０に記憶されている場合には、このプログラムデータ２３１は、第２カードリーダ３０Ｂにはダウンロードされるが、第１カードリーダ３０Ａにはダウンロードされない。
そのため、第１カードリーダ３０Ａに対応するプログラムデータによって第１カードリーダ３０Ａを動作させ、かつ、第２カードリーダ３０Ｂに対応するプログラムデータによって第２カードリーダ３０Ｂを動作させることができる。
したがって、本実施形態よれば、上位装置２０に記憶されているプログラムデータ２３１が１個であっても、第１カードリーダ３０Ａおよび第２カードリーダ３０Ｂを適切に動作させることが可能になる。
【００９９】
このように、本実施形態によれば、上位装置２０に記憶されているプログラムデータ２３１が１個であっても、第１カードリーダ３０Ａおよび第２カードリーダ３０Ｂを適切に動作させることが可能になる。このため、上位装置２０に第１カードリーダ３０Ａが接続されるのか、あるいは、第２カードリーダ３０Ｂが接続されるのかによって、上位装置２０を変更する必要がなくなる。
したがって、本実施形態では、ダウンロードシステム１０を使用するユーザの利便性を高めることが可能になる。
【０１００】
さらに、本実施形態によれば、ダウンロードファイル２３のプログラムデータ２３１に、書き換え許可データ２３６の他に、識別情報（識別用ＩＤ）２３７が記述（記載）されており、カードリーダ３０において、カードリーダ制御部３１が、ダウンロードファイルのダウンロード時に以下の制御を行う。
すなわち、ダウンロードの可能性がある、旧仕様用（旧型）のダウンロードファイルを受信した場合、正常にコマンドを受信したと上位装置２０に疑似的にレスポンス（応答）を返すだけでなく、受信データの中から、その無効扱いの識別情報２３７を抽出し、周辺装置であるカードリーダ３０内の不揮発性メモリ等の識別情報格納部３２内に保持する。
そして、識別情報格納部３２に無効扱いの識別情報が記憶されているときには、上位装置２０からの識別情報の送信要求に応じて識別情報として返す。
新仕様用（新型）のダウンロードファイルを正常受信時は、まず、識別情報格納部３２の無効扱いの識別情報の格納場所を消去する。
すなわち、起動時に無効扱いの識別情報の格納場所が消去されていれば、上位装置２０からの識別情報の送信要求に応じて、上位装置２０には通常の（正当な）識別情報が返される。
【０１０１】
したがって、本実施形態によれば、さらに以下の効果を得ることが可能となる。
すなわち、上位装置が新仕様用のダウンロードファイルに入れ替えられていない場合であっても、送付されたダウンロードファイル２３を擬似的に書き換えた振りをして、正常応答を返すだけでなく、上位装置２０から識別情報（認識用ＩＤ）の送信要求を受けた場合には、擬似書き換えを行ったダウンロードファイルの識別情報（識別用ＩＤ）が返されるので、それ以降のダウンロード処理が起動されず、処理の短縮化が図れる。
上位装置２０から識別情報（認識用ＩＤ）の送信要求を受けた場合、ダウンロード直後でも擬似書き換えを行ったダウンロードファイルの識別情報（識別用ＩＤ）が返されるので、システム停止を回避することができる。
上位装置２０から、適用不可のダウンロードファイルの適用指示を排除するので、自身の動作環境が守られ、継続して使用することが可能となる。
【０１０２】
さらに、本実施形態によれば、受信するダウンロードファイル２３の所定位置に識別情報がない場合は、上述したように、上位装置２０が認識可能なダウンロードファイル２３の識別情報を、新送付コマンドを用いて周辺装置であるカードリーダ３０に送付する。
カードリーダ３０は、新コマンドで受信した識別情報を不揮発性メモリ等の識別情報格納部３２内に格納（記憶）し、保持する。
基本的に、本実施形態では、ダウンロードファイルの所定位置に識別情報（識別用ＩＤ）が配置してあるが、他の周辺装置を含めて考えると、その配置場所は全てで統一されていない場合が有り、このような場合に適応することが可能となる。
【０１０３】
＜ダウンロードファイルおよびダウンロード方法の変形例＞
次に、他の実施形態として、ダウンロードファイルおよびダウンロード方法の変形例について説明する。
図６は、本発明の他の実施形態に係るダウンロードファイル２３のデータ構造の一例を示す概念図である。
【０１０４】
上述した実施形態では、図２に示すように、ダウンロードファイル２３に、カードリーダ３０に記憶されているプログラムデータを上位装置２０に記憶されているプログラムデータ２３１に書き換えても良いか否かを判別するための書き換え照合コマンド２３８が含まれていない。
これに対して、この他の実施形態においては、図６に示すように、ダウンロードファイル２３（Ｃ）に書き換え照合コマンド２３８が含まれていても良い。図６の例では、プログラムデータ２３１に書き換え許可データ２３６は記述されていない。
この場合には、たとえば、書き換え照合コマンド２３８に、カードリーダ３０に記憶されているプログラムデータを外部記憶部２２に記憶されるプログラムデータ２３１に書き換えることを、カードリーダ３０側の書き換え制御部３１２に許可させるための書き換え許可データが付されている。
また、第１カードリーダ３０Ａに対応するダウンロードファイル２３Ａの書き換え照合コマンド２３８に付される書き換え許可データと、第２カードリーダ３０Ｂに対応するダウンロードファイル２３Ｂの書き換え照合コマンド２３８に付される書き換え許可データとは異なっている。
【０１０５】
この変形例に係るダウンロードファイル２３（Ｃ）では、図６に示すように、書き換え照合コマンド２３８は、ダウンロードファイル２３（Ｃ）の２行目に記述され、イレースコマンド２３３は、ダウンロードファイル２３の３行目に記述され、ダウンロードコマンド２３４およびプログラムデータ２３１は、ダウンロードファイル２３（Ｃ）の４行目以降に記述されている。
また、書き換え制御部３１２Ａには、ダウンロードファイル２３Ａの書き換え照合コマンド２３８に付される書き換え許可データに一致する、または、この書き換え許可データに１対１で対応する許可データが記憶されている。
書き換え制御部３１２Ｂには、ダウンロードファイル２３Ｂの書き換え照合コマンド２３８に付される書き換え許可データに一致する、または、この書き換え許可データに１対１で対応する許可データが記憶されている。
【０１０６】
＜本他の実施形態のカードリーダ３０におけるダウンロードの具体的な制御処理＞
［他の実施形態ではない通常処理の場合］
通常は、まず「照合」コマンドで書き換え（書き込み）照合を行い、照合がとれれば「イレース」コマンド受信でファームウェア格納部３１１のプログラムデータが格納されている書き換え領域（エリア）を消去し、「ダウンロード」コマンド受信で書き込みを行う。
【０１０７】
［本他の実施形態の処理］
本実施形態では、以下の（１）〜（６）に示すような処理が行われる。
【０１０８】
（１）「照合」コマンドで書き換え（書き込み）照合が取れた場合（正常書き換えの場合）、「イレース」コマンド受信時にはファームウェア格納部３１１のプログラムデータが格納されている書き換えエリアを消去し、かつ、不揮発性メモリ等の識別情報格納部３２の識別情報を消去し、次からの「ダウンロード」コマンドでプログラムデータの書き込みを行う。
【０１０９】
（２）「照合」コマンドで書き換え（書き込み）照合が取れないだけではなく、旧型製品（旧型カードリーダ）を指定するものであると、カードリーダ制御部３１で判断された場合には、書き込みをすべきダウンロードファイルではないと判断され、次の「イレース」や「ダウンロード」コマンドにて書き換えず正常応答だけ返す。
すなわち、このコマンドに対応した処理を行わず、疑似書き換え処理を行う。
【０１１０】
（３）この疑似書き換え処理の過程で、受信したダウンロードファイル２３の所定位置に組み込まれた識別情報（識別用ＩＤ）を取得し、内部に一時的に保持する。
【０１１１】
（４）この疑似書き換え処理で、最後まで正常にダウンロードしたかのように振る舞うことになる。
最後まで終了したら、一時的に保持した識別情報（識別用ＩＤ）を不揮発性メモリ等の識別情報格納部３２に格納（記憶）する。
【０１１２】
（５）ダウンロード実施後、不揮発性メモリ等の識別情報格納部３２に識別情報（識別用ＩＤ）が記録されていた場合、その識別情報（識別用ＩＤ）を応答として返すようにする。
【０１１３】
（６）「照合」コマンドの書き換え（書き込み）照合が取れず、旧型機種用でもない場合には、上位装置２０に異常応答を返す。
【０１１４】
＜他の実施形態におけるファームウェアのダウンロード処理：カードリーダにおける処理＞
次に、本他の実施形態に係る周辺装置であるカードリーダ３０におけるダウンロード処理を図７に関連付けて説明する。
図７は、本発明の他の実施形態に係るカードリーダ３０における、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【０１１５】
この他の実施形態における変形例では、まず、図７に示すように、上述のステップＳＴ９（図４）で発行されたダウンロードファイル２３の２行目、すなわち、書き換え照合コマンド２３８をカードリーダ制御部３１Ａおよび書き換え制御部３１２Ａが受信する（ステップＳＴ４１）。
書き換え制御部３１２Ａは、書き換え照合コマンド２３８に付された書き換え許可データが、書き換え制御部３１２Ａに記憶される許可データと一致するか（あるいは、この許可データと対応するか）否かを判断する（ステップＳＴ４２）。
すなわち、書き換え制御部３１２Ａは、ステップＳＴ４２において、書き換え照合が取れるか否かを判断する。
【０１１６】
上位装置２０にダウンロードファイル２３Ａが記憶されており、ステップＳＴ４２で、書き換え照合が取れる場合（ステップＳＴ４２で“Ｙｅｓ”の場合）には、カードリーダ制御部３１Ａおよび書き換え制御部３１２Ａは、書き換え照合が取れたとの正常応答をダウンロード制御部２１へ返す（ステップＳＴ４３）。
そして、書き換え照合が取れ、正常応答を返したことに伴い、カードリーダ制御部３１Ａおよび書き換え制御部３１２Ａは、次の処理を行う。
すなわち、カードリーダ制御部３１Ａの書き換え制御部３１２Ａが、不揮発性メモリである識別情報格納部３２Ａの識別情報（識別用ＩＤ）の格納領域を消去する（ステップＳＴ４４）。
この場合も、カードリーダ制御部３１Ａあるいは書き換え制御部３１２Ａが、識別情報格納部３２Ａに識別情報（識別用ＩＤ）が実際に格納されている場合に消去を行うように構成する、あるいは、無条件に識別情報格納部３２Ａの識別情報の格納領域を消去するように構成する等、種々の態様が可能である。
【０１１７】
その後、書き換え制御部３１２Ａは、受信したダウンロードファイル２３Ａの３行目のコマンドおよび４行目のコマンド、すなわち、イレースコマンド２３３およびダウンロードコマンド２３４を実行する。そして、書き換え制御部３１２Ａは、ダウンロードコマンド２３４が正常に実行されたとの正常応答をダウンロード制御部２１へ返す（ステップＳＴ４５）。
具体的には、ステップＳＴ４５で、書き換え制御部３１２Ａが、ファームウェア格納部３１１Ａに記憶されているプログラムデータを消去し、かつ、上位装置２０から送られてくるプログラムデータ２３１をファームウェア格納部３１１Ａの中の指定された領域に格納（記憶）して、正常応答をダウンロード制御部２１へ返す。
【０１１８】
なお、ステップＳＴ４４における識別情報格納部３２Ａに対する消去処理と、ステップＳＴ４５におけるダウンロードファイル２３Ａの３行目のイレースコマンド２３３に応答したファームウェア格納部３１１Ａの所定領域に対する消去処理は、いずれか先であっても後であっても良い。
【０１１９】
その後、書き換え制御部３１２Ａは、ダウンロードファイル２３Ａの５行目以降を順次、受信し（ステップＳＴ４５）、受信した行のダウンロードコマンド２３４を順次、実行する（ステップＳＴ４６）。
すなわち、書き換え制御部３１２Ａは、上位装置２０から送られてくるプログラムデータ２３１をファームウェア格納部３１１Ａの中の指定された領域に格納（記憶）して、ダウンロードコマンド２３４が正常に実行されたとの正常応答をダウンロード制御部２１へ返す（ステップＳＴ４６）。
【０１２０】
一方、ステップＳＴ４２で、書き換え照合が取れない場合（ステップＳＴ４２で“Ｎｏ”の場合）には、書き換え制御部３１２Ａは、次の処理を行う。
書き換え制御部３１２Ａは、書き換え照合コマンド２３８に付された書き換え許可データが、ダウンロードファイル２３Ｂの書き換え照合コマンド２３８に付された書き換え許可データであるのか、それとも、異なる機種のカードリーダ等のダウンロードファイルの書き換え照合コマンドに付された書き換え許可データであるのかを判断する（ステップＳＴ４７）。
すなわち、ステップＳＴ４７において、書き換え制御部３１２Ａは、上位装置２０に記憶されているプログラムデータが旧型の第２カードリーダ３０Ｂに対応するものであるのか、それとも、異なる機種のカードリーダ等に対応するものであるのかを判断する。
【０１２１】
ステップＳＴ４７で、上位装置２０に記憶されているプログラムデータが第２カードリーダ３０Ｂに対応するものである場合、すなわち、上位装置２０にダウンロードファイル２３Ｂが記憶されている場合（ステップＳＴ４７で“Ｙｅｓ”の場合）には、書き換え制御部３１２Ａは、書き換え照合が取れていないにもかかわらず書き換え照合が取れたとの正常応答をダウンロード制御部２１へ返す（ステップＳＴ４８）。
その後、書き換え制御部３１２Ａは、ダウンロードファイル２３Ｂの３行目以降を順次、受信する（ステップＳＴ４９）。
【０１２２】
次に、書き換え制御部３１２Ａは、受信したダウンロードファイル２３Ｂに識別情報２３７が有るか否か（含まれているか否か）の判別を行う（ステップＳＴ５０）。
ダウンロードファイル２３Ｂに識別情報２３７が含まれている場合（ステップＳＴ５０で“Ｙｅｓ”の場合）には、書き換え制御部３１２Ａは、受信したプログラムデータ２３１の中から、識別情報（識別用ＩＤ）２３７を抽出して取得し（ステップＳＴ５１）、内部のメモリやレジスタ等に一時的に保持する（ステップＳＴ５２）。
ここで取得し、保持するダウンロードファイル２３Ｂの識別情報２３７は、第１カードリーダ３０Ａに対して無効扱いされるダウンロードファイル２３Ｂの識別情報である。
【０１２３】
ステップＳＴ５２の処理後、あるいはダウンロードファイル２３Ｂに識別情報２３７が含まれていない場合（ステップＳＴ５０で“Ｎｏ”の場合）には、書き換え制御部３１２Ａは、受信した行のダウンロードコマンド２３４を実行せずに、擬似的な書き換え処理を行って、ダウンロードコマンド２３４が正常に実行されたとの正常応答（擬似応答）をダウンロード制御部２１へ返す（ステップＳＴ５３）。
【０１２４】
そして、書き換え制御部３１２Ａは、ステップＳＴ５３においてダウンロードファイル２３Ｂの最終行まで上記擬似書き換え処理を行ってダウンロードコマンド２３４が正常に実行されたとの正常応答（擬似応答）をダウンロード制御部２１へ返した後、ステップＳＴ５２で内部に一時的に保持していた無効扱いの識別情報２３７を識別情報格納部３２Ａに格納（記憶）する（ステップＳ５４）。
【０１２５】
また、ステップＳＴ４７で、上位装置２０に記憶されているプログラムデータが異なる機種のカードリーダ等に対応するものである場合（ステップＳＴ４７で“Ｎｏ”の場合）には、書き換え制御部３１２Ａは、異常応答をダウンロード制御部２１へ返す（ステップＳＴ５５）。
異常応答を受信したダウンロード制御部２１は、プログラムデータ２３１のダウンロード失敗と判断して、ダウンロード処理を終了する。
【０１２６】
またたとえば、ステップＳＴ５４の処理後に上位装置２０から識別情報の送信要求を受けた場合（ステップＳＴ５６）、カードリーダ制御部３１Ａあるいは書き換え制御部３１２Ａは、識別情報格納部３２Ａに格納されている識別情報を上位装置２０に返す（ステップＳＴ５７）。
また、ステップＳＴ５６で上位装置２０からの送信要求がない場合（ステップＳＴ５６で“Ｎｏ”の場合）、ステップＳＴ５７の処理を実行せず上位装置２０からの次のステップ待ちとなる。
【０１２７】
また、ステップＳＴ４６の処理後に上位装置２０から識別情報の送信要求を受けた場合（ステップＳＴ５８）、このとき、識別情報格納部３２Ａには識別情報が格納されておらず、カードリーダ制御部３１Ａあるいは書き換え制御部３１２Ａは、正常なダウンロードファイル２３Ａに記述されていた正当な識別情報を上位装置２０に返す（ステップＳＴ５９）。
また、ステップＳＴ５８で上位装置２０からの送信要求がない場合（ステップＳＴ５８で“Ｎｏ”の場合）、ステップＳＴ５９の処理を実行せず上位装置２０からの次のステップ待ちとなる。
【０１２８】
この変形例においても、上述した形態と同様の効果を得ることができる。また、この変形例では、プログラムデータ２３１に書き換え許可データ２３６を含ませる必要がなくなるため、プログラムデータ２３１の構造を一部簡素化することが可能になる。
なお、プログラムデータ２３１に書き換え許可データ２３６が含まれている場合には、ダウンロードファイル２３に書き換え照合コマンド２３８が含まれていない場合や書き換え照合コマンド２３８をカードリーダ３０が受け付けない場合であっても、ダウンロードファイル２３に書き換え許可データが含まれているか否かを判別することが可能になる。
【０１２９】
そして、本他の実施形態においては、このように、書き換え照合コマンドおよび識別情報を用いたダウンロード処理を行うことにより、前述した実施形態と同様の効果を得ることができる。
すなわち、上位装置が新仕様用のダウンロードファイルに入れ替えられていない場合であっても、送付されたダウンロードファイルに関して疑似書き換えを行うだけでなく、上位装置２０から識別情報（識別用ＩＤ）の送信要求を受けた場合には、疑似書き換えした無効のダウンロードファイルの識別情報（識別用ＩＤ）が返されるので、それ以降のダウンロード処理が起動されず、処理の短縮化が図れる。
上位装置２０から識別情報（識別用ＩＤ）の送信要求を受けた場合、ダウンロード直後でも疑似書き換えしたダウンロードファイルの識別情報（識別用ＩＤ）が返されるので、システム停止を回避することができる。
上位装置から、適用不可のダウンロードファイルの適用指示を排除するので、自身の動作環境が守られ、継続して使用することが可能となる。
【０１３０】
なお、この変形例におけるステップＳＴ４２は、第１カードリーダ３０Ａに記憶されているプログラムデータを上位装置２０に記憶されているプログラムデータ２３１に書き換えることを書き換え制御部３１２Ａに許可させるための書き換え許可データがダウンロードファイル２３（Ｃ）に含まれているか否かを判別する書き換え許可判別ステップである。
また、ステップＳＴ４６は、第１カードリーダ３０Ａに記憶されているプログラムデータを上位装置２０に記憶されているプログラムデータ２３１に書き換えることを書き換え制御部３１２Ａに許可させるための書き換え許可データがダウンロードファイル２３（Ｃ）に含まれている場合に、第１カードリーダ３０Ａに記憶されているプログラムデータを上位装置２０から送られるプログラムデータ２３１に書き換えて、データ書換えの正常完了応答を上位装置２０へ返す正常書き換えステップである。
さらに、ステップＳＴ５３は、第１カードリーダ３０Ａに記憶されているプログラムデータを上位装置２０に記憶されているプログラムデータ２３１に書き換えることを書き換え制御部３１２Ａに許可させるための書き換え許可データがダウンロードファイル２３（Ｃ）に含まれていない場合に、第１カードリーダ３０Ａに記憶されているプログラムデータを上位装置２０から送られるプログラムデータ２３１に書き換えずに、データ書換えの正常完了応答を上位装置２０へ返す擬似書き換えステップである。
さらに、本実施形態のステップＳＴ５４は、ダウンロードファイル２３（Ｃ）に含まれるこのダウンロードファイルの識別情報２３７をカードリーダ３０の識別情報格納部３２に格納する識別情報格納ステップである。
本実施形態のステップＳＴ５７は、上位装置２０から識別情報の送信要求を受けた場合、識別情報格納部３２に格納されている識別情報を上位装置２０へ返す識別情報返信ステップである。
【０１３１】
＜他の実施形態＞
上述した実施形態および変形例は、本発明の好適な実施形態の一例ではあるが、これに限定されるものではなく本発明の要旨を変更しない範囲において種々変形実施が可能である。
【０１３２】
上述した実施形態では、上位装置２０に対して一つのカードリーダ３０（３０Ａまたは３０Ｂ）を接続するように構成した。
他の実施形態として、図８に示すように、上位装置２０に対して同型のカードリーダ３０を複数並列に接続して、周辺装置としての各カードリーダ３０を動作させるファームウェアのプログラムデータ２３１を上位装置２０から各カードリーダ３０へダウンロードするように構成することも可能である。
【０１３３】
また、上述した実施形態では、識別情報格納部３２をカードリーダ制御部３１に含まれるように構成されている。
ただし、さらに他の実施形態として、図９に示すように、識別情報格納部３２をカードリーダ制御部３１の外部に配置する構成を採用することも可能である。
この場合、識別情報格納部３２は、カードリーダ制御部３１が直接アクセス制御する、書き換え制御部３１２がアクセス制御する等、種々の態様が可能である。
なお、図９は図１の構成に対応する他の実施形態として示しているが、図８に対応する場合等にも、同様に、図９中に括弧を付して示すように、識別情報格納部３２をカードリーダ制御部３１の外部に配置する構成も採用することも可能である。
【０１３４】
上述した実施形態では、書き換え許可データ２３６は、ダウンロードファイル２３Ａの中の３行目のプログラムデータ２３１に記述されている。
この他にもたとえば、書き換え許可データ２３６は、ダウンロードファイル２３Ａの中の４行目以降のｎ行目のプログラムデータ２３１に記述されても良い。
この場合には、書き換え制御部３１２は、ｎ行目のプログラムデータ２３１に書き換え許可データ２３６が記述されているか否かを判断した後に、２行目からｎ行目までのコマンドを実行して正常応答をダウンロード制御部２１へ返すか、あるいは、２行目からｎ行目までのコマンドを実行せずに正常応答をダウンロード制御部２１へ返す。
【０１３５】
また、本実施形態において、識別情報に関しては、図２および図６に示すように、大きく分けて２種類のダウンロードファイル形式が用いられる。基本的に、先頭行のレビジョン情報（レビジョンヘッダ）は上位装置用の情報で、周辺装置に送信されない。
本実施形態においては、ダウンロードファイル内の書き換え許可データや「照合」コマンドの有無で、ダウンロードファイルが正規か否かを判断する手段は変化するが、「照合」コマンドを受け付けない製品の場合、プログラムデータ内に書き換え許可データ（照合用ＩＤ）および識別情報（識別用ＩＤ）を含めている。
「照合」コマンドに相当する書き換え許可データの記述があっても、直ちにダウンロードを不可とせず、旧型製品と判断した場合のみコマンドを実際には実行した疑似書き換え中に、識別情報（識別用ＩＤ）の取得を行う。
応用例としては、すでに述べた部分もあるが、識別情報（識別用ＩＤ）を暗号文で書く、あるいは識別情報（識別用ＩＤ）を平文で書くこともあげることも可能である。
これも前述したが、先頭のレビジョンヘッダ行をコマンド化して、識別用ＩＤ送付コマンドとして送信するように構成することも可能である。
本実施形態では、ダウンロードファイルの所定位置に識別情報（識別用ＩＤ）が配置してあるが、他の周辺装置を含めて考えると、その配置場所は全てで統一されていない。
したがって、現状では周辺装置に送信されない、識別情報（識別用ＩＤ）をテキストにして識別情報（識別用ＩＤ）通知コマンドを新たに設けるようにすることも可能であり、ダウンロード制御部２１部が、そのコマンドを正常受信した場合にだけ、そのような送付コマンドを生成する処理等をして実現するように構成することも可能である。
【０１３６】
また、上述した実施形態においては、レビジョン情報（レビジョン・ヘッダ）２３２と識別情報（識別用ＩＤ）２３７とは同じデータを使用している例を説明したが、両データは同じデータでなくともよく、一般的には、識別情報（識別用ＩＤ）２３７のデータ（量）は、レビジョン情報２３２よりも多く、詳細なものとなっている。
【０１３７】
上述した実施形態では、上位装置２０に通信可能に接続される周辺装置、第２周辺装置は、カードリーダ３０であるが、上位装置２０に通信可能に接続される周辺装置、第２周辺装置は、カードプリンタ等のカードリーダ３０以外の各種の装置であっても良い。
【０１３８】
なお、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【符号の説明】
【０１３９】
１０，１０Ａ，１０Ｂ・・・ダウンロードシステム（ファームウェアのダウンロードシステム）、２０・・・上位装置、２１・・・ダウンロード制御部、２２・・・外部記憶部、２３・・・ダウンロードファイル、２３１・・・プログラムデータ、２３２・・・レビジョン情報、２３３・・・イレースコマンド、２３４・・・ダウンロードコマンド、２３５・・・ＥＯＦ、２３６・・・書き換え許可データ、２３７・・・識別情報、２３８・・・書き換え照合コマンド、３０・・・カードリーダ（周辺装置）、３１・・・カードリーダ制御部、３１１・・・ファームウェア格納部（プログラム格納部）、３１２・・・書き換え制御部、３２・・・識別情報格納部（不揮発性メモリ（ＮＶＭ））、３０Ａ・・・第１カードリーダ（周辺装置、第１周辺装置）、３１Ａ・・・カードリーダ制御部、３１１Ａ・・・ファームウェア格納部（プログラム格納部）、３１２Ａ・・・書き換え制御部、３２Ａ・・・識別情報格納部（不揮発性メモリ（ＮＶＭ））、３０Ｂ・・・第２カードリーダ（周辺装第２周辺装置）、３１Ｂ・・・カードリーダ制御部、３１１Ｂ・・・ファームウェア格納部（プログラム格納部）、３１２Ｂ・・・書き換え制御部。
【図１】
2014127152.tif 000003
【図２】
2014127152.tif 000004
【図３】
2014127152.tif 000005
【図４】
2014127152.tif 000006
【図５】
2014127152.tif 000007
【図６】
2014127152.tif 000008
【図７】
2014127152.tif 000009
【図８】
2014127152.tif 000010
【図９】
2014127152.tif 000011