(57)【特許請求の範囲】
【請求項１】
上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを前記上位装置からダウンロード可能な周辺装置において、
前記周辺装置に記憶されている前記プログラムデータの書き換えを制御する書き換え制御部を備え、
前記プログラムデータを含むとともに前記上位装置に記憶されるダウンロードファイルに、前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを前記書き換え制御部に許可させるための書き換え許可データが含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書換えの正常完了応答を前記上位装置へ返すとともに、
前記ダウンロードファイルに前記書き換え許可データが含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書換えの正常完了応答を前記上位装置へ返すことを特徴とする周辺装置。
【請求項２】
上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを前記上位装置からダウンロード可能な周辺装置の制御方法において、
前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを許可させるための書き換え許可データが、前記プログラムデータを含むとともに前記上位装置に記憶されるダウンロードファイルに含まれているか否かを判別する書き換え許可判別ステップと、
前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書換えの正常完了応答を前記上位装置へ返す書き換えステップと、
前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書換えの正常完了応答を前記上位装置へ返す擬似書き換えステップとを備えることを特徴とする周辺装置の制御方法。
【請求項３】
請求項１に記載の周辺装置、または、請求項２に記載の周辺装置の制御方法で制御される周辺装置が接続可能な前記上位装置を備えることを特徴とするファームウェアのダウンロードシステム。
【請求項４】
前記書き換え許可データは、前記ダウンロードファイルの前記プログラムデータの中に含まれていることを特徴とする請求項３記載のファームウェアのダウンロードシステム。
【請求項５】
前記ダウンロードファイルには、前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えても良いか否かを判別するための書き換え照合コマンドが含まれ、
前記書き換え許可データは、前記書き換え照合コマンドに付されていることを特徴とする請求項３記載のファームウェアのダウンロードシステム。
【請求項６】
前記上位装置には、前記周辺装置よりも旧型の第２周辺装置が接続可能であり、
前記第２周辺装置は、前記ダウンロードファイルに前記書き換え許可データが含まれているか否かを判別せずに、前記第２周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えることを特徴とする請求項３から５のいずれかに記載のファームウェアのダウンロードシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置に接続される周辺装置であって、周辺装置を動作させるファームウェアのプログラムデータを上位装置からダウンロード可能な周辺装置に関する。また、本発明は、この周辺装置の制御方法、および、この周辺装置が接続可能な上位装置を備えるファームウェアのダウンロードシステムに関する。
【背景技術】
【０００２】
従来、上位装置からカードリーダへファームウェアのプログラムデータをダウンロードするためのファームウェアのダウンロード方法が提案されている（たとえば、特許文献１参照）。特許文献１に記載のダウンロード方法では、プログラムデータを含むダウンロードファイルが上位装置に記憶されており、上位装置に記憶されているダウンロードファイルのレビジョン情報と、上位装置がカードリーダに対して発行したレビジョン取得コマンドのレスポンスとが一致しない場合に、上位装置からカードリーダへプログラムデータがダウンロードされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１３７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上位装置に接続されるカードリーダは、その機能を向上させたり、使用されている部品の製造中止に対処したりするために、旧型のものから新型のものへ交換されることがある。一方で、上位装置に記憶されているファームウェアのプログラムデータが新型のカードリーダに対応したプログラムデータである保障はなく、たとえば、上位装置に記憶されているファームウェアのプログラムデータが旧型のカードリーダに対応したプログラムデータである場合に、新型のカードリーダが上位装置に接続される場合がある。
【０００５】
上位装置に新型のカードリーダが接続され、かつ、旧型のカードリーダに対応したプログラムデータが上位装置に記憶されている場合に、特許文献１に記載のダウンロード方法でダウンロードが行われると、旧型のカードリーダに対応したプログラムデータが新型のカードリーダにダウンロードされてしまうおそれがある。すなわち、上位装置に記憶されているプログラムデータによっては、機能の向上を図るために、あるいは、使用部品の製造中止に対処するために生産された新型のカードリーダに、旧型のカードリーダに対応したプログラムデータがダウンロードされてしまうおそれがあり、その結果、上位装置に接続されるカードリーダを新型のものに交換したにもかかわらず、その機能の向上を図ったり、使用部品の製造中止に対処したりすることができなくなるおそれがある。また、新型のカードリーダに、旧型のカードリーダに対応したプログラムデータがダウンロードされると、新型のカードリーダが動作しなくなるおそれもある。
【０００６】
旧型のカードリーダに対応したプログラムデータが新型のカードリーダにダウンロードされるのを防止するには、旧型のカードリーダに対応したプログラムデータが上位装置に記憶されている場合に、旧型のカードリーダに対応したプログラムデータのダウンロードを新型のカードリーダが拒否すれば良い。すなわち、上位装置からのプログラムデータのダウンロードコマンド等に対して、新型のカードリーダがダウンロードの拒否応答を返せば良い。しかしながら、新型のカードリーダがダウンロードの拒否応答を返すと、上位装置側のダウンロード処理を正常に終了させることができずに、上位装置を含むシステムがダウンしてしまう（すなわち、システム全体の動作が停止してしまう）おそれがある。
【０００７】
そこで、本発明の課題は、旧型の周辺装置に対応したプログラムデータが上位装置からダウンロードされるのを防止しつつ、周辺装置を含むシステムのダウンを回避することが可能な周辺装置を提供することにある。また、本発明の課題は、旧型の周辺装置に対応したプログラムデータが上位装置からダウンロードされるのを防止しつつ、周辺装置を含むシステムのダウンを回避することが可能となる周辺装置の制御方法を提供することにある。さらに、本発明の課題は、かかる周辺装置が接続可能な上位装置を備えるファームウェアのダウンロードシステムを提供することにある。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明の周辺装置は、上位装置に接続される周辺装置であって、周辺装置を動作させるファームウェアのプログラムデータを上位装置からダウンロード可能な周辺装置において、周辺装置に記憶されているプログラムデータの書き換えを制御する書き換え制御部を備え、プログラムデータを含むとともに上位装置に記憶されるダウンロードファイルに、周辺装置に記憶されているプログラムデータを上位装置に記憶されているプログラムデータに書き換えることを書き換え制御部に許可させるための書き換え許可データが含まれている場合に、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えて、データ書換えの正常完了応答を上位装置へ返すとともに、ダウンロードファイルに書き換え許可データが含まれていない場合に、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えずに、データ書換えの正常完了応答を上位装置へ返すことを特徴とする。
【０００９】
本発明の周辺装置では、上位装置に記憶されるダウンロードファイルに書き換え許可データが含まれている場合には、周辺装置に記憶されているプログラムデータが上位装置から送られるプログラムデータに書き換えられているが、ダウンロードファイルに書き換え許可データが含まれていない場合には、周辺装置に記憶されているプログラムデータが上位装置から送られるプログラムデータに書き換えられていない。そのため、本発明では、新型の周辺装置に対応したプログラムデータが含まれるダウンロードファイルの中に書き換え許可データを含ませることで、旧型の周辺装置に対応したプログラムデータが上位装置から新型の周辺装置へダウンロードされるのを防止することが可能になる。
【００１０】
また、本発明の周辺装置は、ダウンロードファイルに書き換え許可データが含まれておらず、周辺装置に記憶されているプログラムデータが上位装置から送られるプログラムデータに書き換えられない場合であっても、データ書換えの正常完了応答を上位装置へ返している。そのため、上位装置から周辺装置へプログラムデータがダウンロードされなくても、上位装置側のダウンロード処理を正常に終了させることが可能になる。したがって、本発明では、周辺装置を含むシステムのダウンを回避することが可能になる。
【００１１】
また、上記の課題を解決するため、本発明の周辺装置の制御方法は、上位装置に接続される周辺装置であって、周辺装置を動作させるファームウェアのプログラムデータを上位装置からダウンロード可能な周辺装置の制御方法において、周辺装置に記憶されているプログラムデータを上位装置に記憶されているプログラムデータに書き換えることを許可させるための書き換え許可データが、プログラムデータを含むとともに上位装置に記憶されるダウンロードファイルに含まれているか否かを判別する書き換え許可判別ステップと、書き換え許可判別ステップで、書き換え許可データがダウンロードファイルに含まれている場合に、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えて、データ書換えの正常完了応答を上位装置へ返す書き換えステップと、書き換え許可判別ステップで、書き換え許可データがダウンロードファイルに含まれていない場合に、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えずに、データ書換えの正常完了応答を上位装置へ返す擬似書き換えステップとを備えることを特徴とする。
【００１２】
本発明の周辺装置の制御方法では、書き換え許可判別ステップで、書き換え許可データがダウンロードファイルに含まれている場合には、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えているが、書き換え許可判別ステップで、書き換え許可データがダウンロードファイルに含まれていない場合には、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えていない。そのため、本発明では、新型の周辺装置に対応したプログラムデータが含まれるダウンロードファイルの中に書き換え許可データを含ませることで、旧型の周辺装置に対応したプログラムデータが上位装置から新型の周辺装置へダウンロードされるのを防止することが可能になる。
【００１３】
また、本発明の周辺装置の制御方法では、書き換え許可判別ステップで、書き換え許可データがダウンロードファイルに含まれておらず、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えない場合であっても、擬似書き換えステップで、データ書換えの正常完了応答を上位装置へ返している。そのため、上位装置から周辺装置へプログラムデータがダウンロードされなくても、上位装置側のダウンロード処理を正常に終了させることが可能になる。したがって、本発明では、周辺装置を含むシステムのダウンを回避することが可能になる。
【００１４】
本発明の周辺装置、または、本発明の制御方法で制御される周辺装置は、この周辺装置が接続可能な上位装置を備えるファームウェアのダウンロードシステムに用いることができる。このファームウェアのダウンロードシステムでは、旧型の周辺装置に対応したプログラムデータが上位装置から新型の周辺装置へダウンロードされるのを防止しつつ、システムのダウンを回避することが可能になる。
【００１５】
本発明において、書き換え許可データは、ダウンロードファイルのプログラムデータの中に含まれていることが好ましい。このように構成すると、たとえば、周辺装置に記憶されているプログラムデータを上位装置に記憶されているプログラムデータに書き換えても良いか否かを判別するための書き換え照合コマンドがダウンロードファイルに含まれていない場合や、ダウンロードファイルに含まれる書き換え照合コマンドを周辺装置が受け付けない場合であっても、ダウンロードファイルに書き換え許可データが含まれているか否かを判別することが可能になる。
【００１６】
本発明において、ダウンロードファイルには、周辺装置に記憶されているプログラムデータを上位装置に記憶されているプログラムデータに書き換えても良いか否かを判別するための書き換え照合コマンドが含まれ、書き換え許可データは、書き換え照合コマンドに付されていても良い。この場合には、たとえば、プログラムデータに書き換え許可データを含ませる必要がなくなるため、プログラムデータの構造を簡素化することが可能になる。
【００１７】
本発明において、上位装置には、周辺装置よりも旧型の第２周辺装置が接続可能であり、第２周辺装置は、ダウンロードファイルに書き換え許可データが含まれているか否かを判別せずに、第２周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えることが好ましい。このように構成すると、新型の周辺装置に対応するプログラムデータが上位装置に記憶されている場合には、このプログラムデータが上位装置から第２周辺装置へダウンロードされるため、このプログラムデータによって、第２周辺装置を動作させることが可能になる。すなわち、上位装置に記憶されている新型の周辺装置に対応の１個のプログラムデータによって、周辺装置および第２周辺装置を動作させることが可能になる。
【００１８】
また、このように構成すると、第２周辺装置に対応するプログラムデータが上位装置に記憶されている場合、このプログラムデータは、第２周辺装置にはダウンロードされるが、周辺装置にはダウンロードされない。したがって、この場合には、周辺装置に対応するプログラムデータによって周辺装置を動作させ、かつ、第２周辺装置に対応するプログラムデータによって第２周辺装置を動作させることが可能になる。すなわち、上位装置に記憶されているプログラムデータが１個であっても、周辺装置および第２周辺装置を適切に動作させることが可能になる。
【００１９】
その結果、このように構成すると、上位装置に周辺装置が接続されるのか、あるいは、第２周辺装置が接続されるのかによって、上位装置を変更する必要がなくなる。したがって、ダウンロードシステムを使用するユーザの利便性を高めることが可能になる。
【発明の効果】
【００２０】
以上のように、本発明の周辺装置、周辺装置の制御方法、および、ファームウェアのダウンロードシステムでは、旧型の周辺装置に対応したプログラムデータが上位装置から新型の周辺装置へダウンロードされるのを防止しつつ、周辺装置を含むシステムのダウンを回避することが可能になる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態にかかるファームウェアのダウンロードシステムの概略構成を示すブロック図である。
【図２】図１に示す上位装置に記憶されるダウンロードファイルのデータ構造の一例を示す概念図である。
【図３】図１に示す上位装置に接続されるカードリーダと上位装置に記憶されるダウンロードファイルとの組合せパターンを説明するための概念図である。
【図４】図１に示す上位装置での、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【図５】図１に示すカードリーダでの、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【図６】本発明の他の実施の形態にかかるダウンロードファイルのデータ構造の一例を示す概念図である。
【図７】本発明の他の実施の形態にかかるカードリーダでの、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、図面を参照しながら、本発明の実施の形態を説明する。
【００２３】
（ファームウェアのダウンロードシステムの構成）
図１は、本発明の実施の形態にかかるファームウェアのダウンロードシステム１の概略構成を示すブロック図である。図２は、図１に示す上位装置２に記憶されるダウンロードファイル７のデータ構造の一例を示す概念図である。図３は、図１に示す上位装置２に接続されるカードリーダ３と上位装置２に記憶されるダウンロードファイル７との組合せパターンを説明するための概念図である。
【００２４】
本形態のファームウェアのダウンロードシステム１（以下、「ダウンロードシステム１」とする）は、ホストコンピュータ等の上位装置２と、上位装置２に通信可能に接続されるカードリーダ３とを備えている。このダウンロードシステム１は、カードリーダ３を動作させるファームウェアのプログラムデータ４（図２参照）を上位装置２からカードリーダ３へダウンロードする。
【００２５】
本形態では、機能を向上させたり、使用されている部品の製造中止に対処したりするために製造された新型のカードリーダ３であるカードリーダ３Ａと、カードリーダ３Ａよりも旧型のカードリーダ３であるカードリーダ３Ｂとが、上位装置２に接続可能となっており、上位装置２には、たとえば、カードリーダ３Ａまたはカードリーダ３Ｂのいずれか１台が接続されている。本形態のカードリーダ３Ａは、周辺装置であり、カードリーダ３Ｂは、第２周辺装置である。
【００２６】
上位装置２は、カードリーダ３にプログラムデータ４をダウンロードするための制御を行うダウンロード制御部５を備えている。ダウンロード制御部５は、上位装置２内の通信手段や制御用プログラム等によって構成されている。また、上位装置２は、ハードディスクドライブ等の外部記憶部６を備えている。外部記憶部６には、プログラムデータ４を含むダウンロードファイル７が記憶されている。本形態では、カードリーダ３Ａに対応するプログラムデータ４を含むダウンロードファイル７Ａ（図３（Ａ）、（Ｃ）参照）、または、カードリーダ３Ｂに対応するプログラムデータ４を含むダウンロードファイル７Ｂ（図３（Ｂ）、（Ｄ）参照）のいずれかが外部記憶部６に記憶されている。
【００２７】
カードリーダ３は、たとえば、カードを手動で移動させながらカードに記録された磁気データの読取り等を行う手動式のカードリーダ、あるいは、カードの搬送機構によってカードを搬送させながらカードに記録された磁気データの読取り等を行うカード搬送式のカードリーダである。
【００２８】
カードリーダ３Ａは、カードリーダ３Ａを制御するカードリーダ制御部８を備えている。カードリーダ制御部８は、ＲＯＭ、ＲＡＭ、不揮発性メモリ等の記憶手段やＣＰＵ等の演算手段等によって構成されている。また、カードリーダ制御部８は、カードリーダ３Ａに記憶されているプログラムデータの書き換えを制御する書き換え制御部９と、プログラムデータを含むファームウェアが格納（記憶）されるファームウェア格納部１０とを備えている。
【００２９】
カードリーダ３Ｂは、カードリーダ３Ｂを制御するカードリーダ制御部１３を備えている。カードリーダ制御部１３は、ＲＯＭ、ＲＡＭ、不揮発性メモリ等の記憶手段やＣＰＵ等の演算手段等によって構成されている。また、カードリーダ制御部１３は、カードリーダ３Ｂに記憶されているプログラムデータの書き換えを制御する書き換え制御部１４と、プログラムデータを含むファームウェアが格納されるファームウェア格納部１５とを備えている。
【００３０】
ダウンロードファイル７には、プログラムデータ４に加え、プログラムデータ４のレビジョン情報１７と、イレースコマンド１８と、ダウンロードコマンド１９と、ＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｉｌｅ  ｍａｒｋ、ファイル末端コード）２０とが記述されている。レビジョン情報１７は、ダウンロードファイル７の１行目に記述され、イレースコマンド１８は、ダウンロードファイル７の２行目に記述されている。ダウンロードコマンド１９およびプログラムデータ４は、ダウンロードファイル７の３行目以降に記述され、ＥＯＦ２０は、ダウンロードファイル７の最終行に記述されている。
【００３１】
レビジョン情報１７は、ダウンロードファイル７におけるプログラムデータ４の改訂情報である。レビジョン情報１７のフォーマットは、たとえば、上位装置２がカードリーダ３に対してプログラムデータのレビジョン取得コマンドを発行した場合に得られるカードリーダ３からのレスポンス（応答）と、同一フォーマットとなっている。レビジョン取得コマンドは、カードリーダ３に記憶されているプログラムデータのレビジョン情報を取得するためのコマンドである。
【００３２】
イレースコマンド１８は、カードリーダ３のファームウェア格納部１０、１５の中の指定した領域を消去（イレース）するためのコマンドである。
【００３３】
ダウンロードファイル７の中の３行目以降の各行のプログラムデータ４のそれぞれは、上位装置２とカードリーダ３との間の通信プロトコルに適合した規定のデータ形式およびデータ長に予め整形されており、かつ、ダウンロードコマンド１９にセットされている。また、カードリーダ３Ａに対応するプログラムデータ４を含むダウンロードファイル７Ａの中の３行目のプログラムデータ４には、カードリーダ３Ａに記憶されているプログラムデータを外部記憶部６に記憶されるダウンロードファイル７Ａのプログラムデータ４に書き換えることを書き換え制御部９に許可させるための書き換え許可データ２２が記述されている。一方、カードリーダ３Ｂに対応するプログラムデータ４を含むダウンロードファイル７Ｂの中の３行目のプログラムデータ４には、この書き換え許可データ２２が記述されていない。なお、書き換え許可データ２２は、暗号化された暗号文によってプログラムデータ４の中に記述されても良いし、暗号化されていない平文によってプログラムデータ４の中に記述されても良い。
【００３４】
上述のように、上位装置２には、カードリーダ３Ａとカードリーダ３Ｂとが接続可能となっている。また、外部記憶部６には、カードリーダ３Ａに対応するプログラムデータ４を含むダウンロードファイル７Ａ、または、カードリーダ３Ｂに対応するプログラムデータ４を含むダウンロードファイル７Ｂが記憶されている。そのため、上位装置２に接続されるカードリーダ３と上位装置２に記憶されるダウンロードファイル７との組合せとして、図３に示す４つのパターンが考えられる。
【００３５】
すなわち、図３（Ａ）に示すように、上位装置２にカードリーダ３Ａが接続され、外部記憶部６にダウンロードファイル７Ａが記憶されるパターンと、図３（Ｂ）に示すように、上位装置２にカードリーダ３Ａが接続され、外部記憶部６にダウンロードファイル７Ｂが記憶されるパターンと、図３（Ｃ）に示すように、上位装置２にカードリーダ３Ｂが接続され、外部記憶部６にダウンロードファイル７Ａが記憶されるパターンと、図３（Ｄ）に示すように、上位装置２にカードリーダ３Ｂが接続され、外部記憶部６にダウンロードファイル７Ｂが記憶されるパターンとの４つのパターンが考えられる。
【００３６】
なお、外部記憶部６にダウンロードファイル７Ａが記憶されている場合、ダウンロードファイル７Ａに含まれるプログラムデータ４のレビジョンは、たとえば、図３（Ａ）、（Ｃ）に示すように、“Ｒｅｖ．Ｂ”である。また、外部記憶部６にダウンロードファイル７Ｂが記憶されている場合、ダウンロードファイル７Ｂに含まれるプログラムデータ４のレビジョンは、たとえば、図３（Ｂ）、（Ｄ）に示すように、“Ｒｅｖ．ｂ”である。また、カードリーダ３Ａのファームウェア格納部１０に記憶されているプログラムデータのレビジョンは、たとえば、図３（Ａ）、（Ｂ）に示すように、“Ｒｅｖ．Ａ”であり、カードリーダ３Ｂのファームウェア格納部１５に記憶されているプログラムデータのレビジョンは、たとえば、図３（Ｃ）、（Ｄ）に示すように、“Ｒｅｖ．ａ”である。
【００３７】
また、本形態では、カードリーダ３Ａに対応するプログラムデータ４がカードリーダ３Ｂにダウンロードされた場合であっても、カードリーダ３Ｂは、正常に動作する。一方、カードリーダ３Ｂに対応するプログラムデータ４がカードリーダ３Ａにダウンロードされると、カードリーダ３Ａは、正常に動作しなくなる。
【００３８】
（ファームウェアのダウンロード方法：上位装置での処理）
図４は、図１に示す上位装置２での、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【００３９】
上位装置２からカードリーダ３へプログラムデータ４をダウンロードする際には、まず、ダウンロード制御部５は、ダウンロードファイル７の１行目を読み込んで、レビジョン情報１７を読み取り（ステップＳ１）、カードリーダ３に対してレビジョン取得コマンドを発行する（ステップＳ２）。その後、ダウンロード制御部５は、ダウンロードファイル７から読み取ったレビジョン情報１７と、レビジョン取得コマンドに対するカードリーダ３からの応答とを比較する（ステップＳ３）。すなわち、ステップＳ３では、上位装置２に（具体的には、外部記憶部６に）記憶されているダウンロードファイル７に含まれるプログラムデータ４のレビジョンと、ファームウェア格納部１０、１５に記憶されているプログラムデータのレビジョンとを比較する。
【００４０】
ステップＳ３で、上位装置２に記憶されているダウンロードファイル７に含まれるプログラムデータ４のレビジョンと、ファームウェア格納部１０、１５に記憶されているプログラムデータのレビジョンとが一致しない場合には（ステップＳ３で“Ｎｏ”の場合には）、ダウンロード制御部５は、ダウンロード処理を実行するべく、カードリーダ３に対して初期化コマンドを発行する（ステップＳ４）。
【００４１】
すなわち、図３（Ａ）に示すように、上位装置２（具体的には、外部記憶部６）に記憶されているダウンロードファイル７Ａに含まれるプログラムデータ４のレビジョンが“Ｒｅｖ．Ｂ”であり、ファームウェア格納部１０に記憶されているプログラムデータのレビジョンが“Ｒｅｖ．Ａ”である場合、図３（Ｂ）に示すように、上位装置２に記憶されているダウンロードファイル７Ｂに含まれるプログラムデータ４のレビジョンが“Ｒｅｖ．ｂ”であり、ファームウェア格納部１０に記憶されているプログラムデータのレビジョンが“Ｒｅｖ．Ａ”である場合、図３（Ｃ）に示すように、上位装置２に記憶されているダウンロードファイル７Ａに含まれるプログラムデータ４のレビジョンが“Ｒｅｖ．Ｂ”であり、ファームウェア格納部１５に記憶されているプログラムデータのレビジョンが“Ｒｅｖ．ａ”である場合、図３（Ｄ）に示すように、上位装置２に記憶されているダウンロードファイル７Ｂに含まれるプログラムデータ４のレビジョンが“Ｒｅｖ．ｂ”であり、ファームウェア格納部１５に記憶されているプログラムデータのレビジョンが“Ｒｅｖ．ａ”である場合等には、上位装置２に記憶されているダウンロードファイル７に含まれるプログラムデータ４のレビジョンと、ファームウェア格納部１０、１５に記憶されているプログラムデータのレビジョンとが一致しないため、ステップＳ４で、ダウンロード制御部５は、カードリーダ３に対して初期化コマンドを発行する。
【００４２】
その後、ダウンロード制御部５は、この初期化コマンドに対するカードリーダ３のレスポンスから、カードリーダ３がダウンロードモード（プログラムデータ４のダウンロードが可能な状態）であるか否かを判断する（ステップＳ５）。ステップＳ５で、カードリーダ３がダウンロードモードでなければ（ステップＳ５で“Ｎｏ”の場合には）、ダウンロード制御部５は、カードリーダ３に対してモード切替コマンドを発行して（ステップＳ６）、カードリーダ３をダウンロードモードに遷移させてからステップＳ４へ戻る。
【００４３】
一方、ステップＳ５で、カードリーダ３がダウンロードモードであれば（ステップＳ５で“Ｙｅｓ”の場合には）、ダウンロード制御部５は、ダウンロードファイル７の２行目以降を１行毎に読み込み（ステップＳ７）、読み込んだ１行が最終行（ＥＯＦ２０）であるか否かを判断する（ステップＳ８）。
【００４４】
ステップＳ８で、読み込んだ１行が最終行でなければ（ステップＳ８で“Ｎｏ”の場合には）、ダウンロード制御部５は、この読み込んだダウンロードファイル７の１行をコマンドとしてカードリーダ３に対して発行する。たとえば、読み込んだ１行がダウンロードファイル７の２行目であれば、イレースコマンド１８がカードリーダ３に対して発行される。また、読み込んだ１行がダウンロードファイル７の３行目以降であれば、ダウンロードコマンド１９が整形されたプログラムデータ４とともにカードリーダ３に対して発行される。
【００４５】
その後、ダウンロード制御部５は、カードリーダ３の応答に基づいてコマンドが正常に実行されたか否かを判断する（ステップＳ１０）。カードリーダ３の応答が正常応答であれば（ステップＳ１０で“Ｙｅｓ”の場合には）、ステップＳ７へ戻り、ダウンロードファイル７の次の行を読み込む。一方、カードリーダ３の応答が異常応答であれば（ステップＳ１０で“Ｎｏ”の場合には）、ダウンロード制御部５は、プログラムデータ４のダウンロード失敗と判断して、ダウンロード処理を終了する。なお、この場合には、ダウンロードシステム１がダウンする（ダウンロードシステム１の動作が停止してしまう）ことがある。
【００４６】
また、ステップＳ８で、ダウンロードファイル７から読み込んだ１行が最終行となると（ステップＳ８で“Ｙｅｓ”の場合）、プログラムデータ４のダウンロードは正常終了となる。
【００４７】
また、ステップＳ３で、上位装置２に記憶されているプログラムデータ４のレビジョンと、ファームウェア格納部１０、１５に記憶されているプログラムデータのレビジョンとが一致している場合には（ステップＳ３で“Ｙｅｓ”の場合には）、ダウンロード制御部５は、プログラムデータ４のダウンロードは不要と判断して、ダウンロード処理を終了する。たとえば、図３（Ａ）において、上位装置２に記憶されているプログラムデータ４のレビジョンが“Ｒｅｖ．Ａ”である場合には、上位装置２に記憶されているプログラムデータ４のレビジョンと、ファームウェア格納部１０に記憶されているプログラムデータのレビジョンとが一致しているため、ダウンロード制御部５は、ダウンロード処理を終了する。
【００４８】
（ファームウェアのダウンロード方法：カードリーダでの処理）
図５は、図１に示すカードリーダ３での、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【００４９】
図３（Ｃ）、（Ｄ）に示すように、上位装置２にカードリーダ３Ｂが接続されている場合には、ダウンロードファイル７Ａ、７Ｂのいずれが上位装置２に記憶されている場合であっても、カードリーダ３Ｂでは、ファームウェアのダウンロード時に、上述した特許文献１に記載されたカードリーダの処理と同様の処理が行われる。
【００５０】
すなわち、上述のステップＳ７で読み込まれた１行がダウンロードファイル７の２行目であれば、ステップＳ９で発行されるイレースコマンド１８に基づいて、カードリーダ制御部１３は、イレースコマンド１８を実行する。具体的には、書き換え制御部１４が、ファームウェア格納部１５の中の指定された領域を消去する。より具体的には、書き換え制御部１４が、プログラムデータ４に対応するファームウェア格納部１５内のプログラムデータを消去する。また、カードリーダ制御部１３は、イレースコマンド１８が正常に実行されたとの正常応答をダウンロード制御部５へ返す。
【００５１】
また、ステップＳ７で読み込まれた１行がダウンロードファイル７の３行目以降であれば、ステップＳ９で発行されるダウンロードコマンド１９に基づいて、カードリーダ制御部１３は、ダウンロードコマンド１９を実行する。具体的には、書き換え制御部１４が、上位装置２から送られてくるプログラムデータ４を、ファームウェア格納部１５の中の指定された領域に格納（記憶）する。すなわち、書き換え制御部１４が、上位装置２から送られてくるプログラムデータ４を、ファームウェア格納部１５に書き込む。また、書き換え制御部１４は、ダウンロードコマンド１９が正常に実行されたとの正常応答をダウンロード制御部５へ返す。
【００５２】
一方、図３（Ａ）、（Ｂ）に示すように、上位装置２にカードリーダ３Ａが接続されている場合には、カードリーダ３Ａでは、ファームウェアのダウンロード時に、上述した特許文献１に記載されたカードリーダの処理と異なる処理が行われる。具体的には、カードリーダ３Ａでは、図５に示すフローにしたがって、以下のように処理が行われる。
【００５３】
上述のステップＳ７で読み込まれた１行がダウンロードファイル７の２行目であって、ステップＳ９で発行されたダウンロードファイル７の２行目（すなわち、イレースコマンド１８）を書き換え制御部９が受信すると（ステップＳ２１）、書き換え制御部９は、この２行目のイレースコマンド１８を実行せずに、イレースコマンド１８が正常に実行されたとの正常応答をダウンロード制御部５へ返す（ステップＳ２２）。すなわち、ステップＳ２２では、書き換え制御部９が、ファームウェア格納部１０に記憶されているプログラムデータを消去することなく、イレースコマンド１８が正常に実行されたとの正常応答をダウンロード制御部５へ返す。
【００５４】
その後、ステップＳ９で発行されたダウンロードファイル７の３行目（すなわち、ダウンロードコマンド１９およびプログラムデータ４）を書き換え制御部９が受信すると（ステップＳ２３）、書き換え制御部９は、３行目のプログラムデータ４に書き換え許可データ２２が記述されているか否かを判断する（ステップＳ２４）。すなわち、ステップＳ２４において、書き換え制御部９は、上位装置２に記憶されているプログラムデータ４がカードリーダ３Ａに対応するプログラムデータ４であるか否かを判別する。
【００５５】
図３（Ａ）に示すように、上位装置２にダウンロードファイル７Ａが記憶されており、ステップＳ２４で、３行目のプログラムデータ４に書き換え許可データ２２が記述されている場合（すなわち、ダウンロードファイル７に書き換え許可データ２２が含まれている場合、ステップＳ２４で“Ｙｅｓ”の場合）には、書き換え制御部９は、ダウンロードファイル７Ａの２行目のコマンドおよび３行目のコマンド（すなわち、イレースコマンド１８およびダウンロードコマンド１９）を実行し、ダウンロードコマンド１９が正常に実行されたとの正常応答をダウンロード制御部５へ返す（ステップＳ２５）。具体的には、ステップＳ２５で、書き換え制御部９が、ファームウェア格納部１０に記憶されているプログラムデータを消去し、かつ、上位装置２から送られてくるプログラムデータ４をファームウェア格納部１０の中の指定された領域に格納（記憶）して、正常応答をダウンロード制御部５へ返す。
【００５６】
その後、書き換え制御部９は、ダウンロードファイル７Ａの４行目以降を順次、受信し（ステップＳ２６）、受信した行のダウンロードコマンド１９を順次、実行して（すなわち、上位装置２から送られてくるプログラムデータ４をファームウェア格納部１０の中の指定された領域に格納（記憶）して）、ダウンロードコマンド１９が正常に実行されたとの正常応答をダウンロード制御部５へ返す（ステップＳ２７）。
【００５７】
一方、図３（Ｂ）に示すように、上位装置２にダウンロードファイル７Ｂが記憶されており、ステップＳ２４で、３行目のプログラムデータ４に書き換え許可データ２２が記述されていない場合（すなわち、ダウンロードファイル７に書き換え許可データ２２が含まれていない場合、ステップＳ２４で“Ｎｏ”の場合）には、書き換え制御部９は、ダウンロードファイル７Ｂの３行目のコマンド（すなわち、ダウンロードコマンド１９）を実行せずに、ダウンロードコマンド１９が正常に実行されたとの正常応答をダウンロード制御部５へ返す（ステップＳ２８）。具体的には、ステップＳ２８では、書き換え制御部９が、上位装置２から送られてくるプログラムデータ４をファームウェア格納部１０に格納（記憶）せずに、正常応答をダウンロード制御部５へ返す。
【００５８】
その後、書き換え制御部９は、ダウンロードファイル７Ｂの４行目以降を順次、受信し（ステップＳ２９）、受信した行のダウンロードコマンド１９を実行せずに、ダウンロードコマンド１９が正常に実行されたとの正常応答をダウンロード制御部５へ返す（ステップＳ３０）。
【００５９】
本形態のステップＳ２４は、書き換え許可データ２２がダウンロードファイル７に含まれているか否かを判別する書き換え許可判別ステップである。また、本形態のステップＳ２５、Ｓ２７は、書き換え許可データ２２がダウンロードファイル７に含まれている場合に、カードリーダ３Ａに記憶されているプログラムデータを上位装置２から送られるプログラムデータ４に書き換えて、データ書換えの正常完了応答を上位装置２へ返す書き換えステップである。さらに、本形態のステップＳ２８、Ｓ３０は、書き換え許可データ２２がダウンロードファイル７に含まれていない場合に、カードリーダ３Ａに記憶されているプログラムデータを上位装置２から送られるプログラムデータ４に書き換えずに、データ書換えの正常完了応答を上位装置２へ返す擬似書き換えステップである。
【００６０】
（本形態の主な効果）
以上説明したように、本形態では、ダウンロードファイル７に書き換え許可データ２２が含まれている場合には、カードリーダ３Ａに記憶されているプログラムデータが上位装置２から送られてくるプログラムデータ４に書き換えられているが、ダウンロードファイル７に書き換え許可データ２２が含まれていない場合には、カードリーダ３Ａに記憶されているプログラムデータが上位装置２から送られてくるプログラムデータ４に書き換えられていない。すなわち、本形態では、カードリーダ３Ａに対応するプログラムデータ４が上位装置２に記憶されている場合には、カードリーダ３Ａに記憶されているプログラムデータが上位装置２から送られてくるプログラムデータ４に書き換えられているが、カードリーダ３Ｂに対応するプログラムデータ４が上位装置２に記憶されている場合には、カードリーダ３Ａに記憶されているプログラムデータが上位装置２から送られてくるプログラムデータ４に書き換えられていない。そのため、本形態では、旧型のカードリーダ３Ｂに対応するプログラムデータ４が上位装置２から新型のカードリーダ３Ａにダウンロードされるのを防止することができる。したがって、本形態では、旧型のカードリーダ３Ｂに対応するプログラムデータ４がカードリーダ３Ａにダウンロードされて、カードリーダ３Ａが正常に動作しなくなるといった不具合を回避することが可能になる。
【００６１】
本形態では、ダウンロードファイル７に書き換え許可データ２２が含まれておらず、カードリーダ３Ａに記憶されているプログラムデータが上位装置２から送られるプログラムデータ４に書き換えられない場合であっても（すなわち、イレースコマンド１８およびダウンロードコマンド１９を書き換え制御部９が実行しない場合であっても）、書き換え制御部９は、データ書換えの正常完了応答を上位装置２へ返している。そのため、上位装置２からカードリーダ３Ａへプログラムデータ４がダウンロードされなくても、上位装置２のダウンロード処理を正常に終了させることができる。したがって、本形態では、ダウンロードシステム１のダウンを回避することが可能になる。
【００６２】
本形態では、上位装置２にカードリーダ３Ｂが接続されている場合、カードリーダ３Ｂは、ダウンロードファイル７に書き換え許可データ２２が含まれるか否かを判別せずに、カードリーダ３Ｂに記憶されているプログラムデータを上位装置２から送られるプログラムデータ４に書き換えている。そのため、カードリーダ３Ａに対応するプログラムデータ４が上位装置２に記憶されている場合には、このプログラムデータ４によって、カードリーダ３Ｂを動作させることができる。すなわち、本形態では、カードリーダ３Ａに対応する１個のプログラムデータ４によって、カードリーダ３Ａ、３Ｂを動作させることができる。
【００６３】
また、カードリーダ３Ｂに対応するプログラムデータ４が上位装置２に記憶されている場合には、このプログラムデータ４は、カードリーダ３Ｂにはダウンロードされるが、カードリーダ３Ａにはダウンロードされない。そのため、カードリーダ３Ａに対応するプログラムデータによってカードリーダ３Ａを動作させ、かつ、カードリーダ３Ｂに対応するプログラムデータによってカードリーダ３Ｂを動作させることができる。したがって、本形態では、上位装置２に記憶されているプログラムデータ４が１個であっても、カードリーダ３Ａ、３Ｂを適切に動作させることが可能になる。
【００６４】
このように、本形態では、上位装置２に記憶されているプログラムデータ４が１個であっても、カードリーダ３Ａ、３Ｂを適切に動作させることが可能になるため、上位装置２にカードリーダ３Ａが接続されるのか、あるいは、カードリーダ３Ｂが接続されるのかによって、上位装置２を変更する必要がなくなる。したがって、本形態では、ダウンロードシステム１を使用するユーザの利便性を高めることが可能になる。
【００６５】
（ダウンロードファイルおよびダウンロード方法の変形例）
図６は、本発明の他の実施の形態にかかるダウンロードファイル７のデータ構造の一例を示す概念図である。図７は、本発明の他の実施の形態にかかるカードリーダ３での、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【００６６】
上述した形態では、ダウンロードファイル７に、カードリーダ３に記憶されているプログラムデータを上位装置２に記憶されているプログラムデータ４に書き換えても良いか否かを判別するための書き換え照合コマンド２３が含まれていないが、図６に示すように、ダウンロードファイル７に書き換え照合コマンド２３が含まれていても良い。この場合には、たとえば、書き換え照合コマンド２３に、カードリーダ３に記憶されているプログラムデータを外部記憶部６に記憶されるプログラムデータ４に書き換えることを書き換え制御部９、１４に許可させるための書き換え許可データが付されている。また、ダウンロードファイル７Ａの書き換え照合コマンド２３に付される書き換え許可データと、ダウンロードファイル７Ｂの書き換え照合コマンド２３に付される書き換え許可データとは異なっている。
【００６７】
この変形例にかかるダウンロードファイル７では、図６に示すように、書き換え照合コマンド２３は、ダウンロードファイル７の２行目に記述され、イレースコマンド１８は、ダウンロードファイル７の３行目に記述され、ダウンロードコマンド１９およびプログラムデータ４は、ダウンロードファイル７の４行目以降に記述されている。また、書き換え制御部９には、ダウンロードファイル７Ａの書き換え照合コマンド２３に付される書き換え許可データに一致する、または、この書き換え許可データに１対１で対応する許可データが記憶され、書き換え制御部１４には、ダウンロードファイル７Ｂの書き換え照合コマンド２３に付される書き換え許可データに一致する、または、この書き換え許可データに１対１で対応する許可データが記憶されている。
【００６８】
この変形例では、図７に示すように、上述のステップＳ９で発行されたダウンロードファイル７の２行目（すなわち、書き換え照合コマンド２３）を書き換え制御部９が受信すると（ステップＳ４１）、書き換え制御部９は、書き換え照合コマンド２３に付された書き換え許可データが、書き換え制御部９に記憶される許可データと一致するか（あるいは、この許可データと対応するか）否かを判断する（ステップＳ４２）。すなわち、書き換え制御部９は、ステップＳ４２において、書き換え照合が取れるか否かを判断する。
【００６９】
上位装置２にダウンロードファイル７Ａが記憶されており、ステップＳ４２で、書き換え照合が取れる場合（ステップＳ４２で“Ｙｅｓ”の場合）には、書き換え制御部９は、書き換え照合が取れたとの正常応答をダウンロード制御部５へ返す（ステップＳ４３）。その後、書き換え制御部９は、ダウンロードファイル７Ａの３行目以降を順次、受信し（ステップＳ４４）、受信した行のイレースコマンド１８やダウンロードコマンド１９を順次、実行して、イレースコマンド１８やダウンロードコマンド１９が正常に実行されたとの正常応答をダウンロード制御部５へ返す（ステップＳ４５）。
【００７０】
一方、ステップＳ４２で、書き換え照合が取れない場合（ステップＳ４２で“Ｎｏ”の場合）には、書き換え制御部９は、書き換え照合コマンド２３に付された書き換え許可データが、ダウンロードファイル７Ｂの書き換え照合コマンド２３に付された書き換え許可データであるのか、それとも、異なる機種のカードリーダ等のダウンロードファイルの書き換え照合コマンドに付された書き換え許可データであるのかを判断する（ステップＳ４６）。すなわち、ステップＳ４６において、書き換え制御部９は、上位装置２に記憶されているプログラムデータが旧型のカードリーダ３Ｂに対応するものであるのか、それとも、異なる機種のカードリーダ等に対応するものであるのかを判断する。
【００７１】
ステップＳ４６で、上位装置２に記憶されているプログラムデータがカードリーダ３Ｂに対応するものである場合（すなわち、上位装置２にダウンロードファイル７Ｂが記憶されている場合、ステップＳ４６で“Ｙｅｓ”の場合）には、書き換え制御部９は、書き換え照合が取れていないにもかかわらず書き換え照合が取れたとの正常応答をダウンロード制御部５へ返す（ステップＳ４７）。その後、書き換え制御部９は、ダウンロードファイル７Ｂの３行目以降を順次、受信し（ステップＳ４８）、受信した行のイレースコマンド１８やダウンロードコマンド１９を実行せずに、イレースコマンド１８やダウンロードコマンド１９が正常に実行されたとの正常応答をダウンロード制御部５へ返す（ステップＳ４９）。
【００７２】
また、ステップＳ４６で、上位装置２に記憶されているプログラムデータが異なる機種のカードリーダ等に対応するものである場合（ステップＳ４６で“Ｎｏ”の場合）には、書き換え制御部９は、異常応答をダウンロード制御部５へ返す（ステップＳ５０）。異常応答を受信したダウンロード制御部５は、プログラムデータ４のダウンロード失敗と判断して、ダウンロード処理を終了する。
【００７３】
この変形例においても、上述した形態と同様の効果を得ることができる。また、この変形例では、プログラムデータ４に書き換え許可データ２２を含ませる必要がなくなるため、プログラムデータ４の構造を簡素化することが可能になる。なお、プログラムデータ４に書き換え許可データ２２が含まれている場合には、ダウンロードファイル７に書き換え照合コマンド２３が含まれていない場合や書き換え照合コマンド２３をカードリーダ３Ａが受け付けない場合であっても、ダウンロードファイル７に書き換え許可データが含まれているか否かを判別することが可能になる。
【００７４】
なお、この変形例におけるステップＳ４２は、カードリーダ３Ａに記憶されているプログラムデータを上位装置２に記憶されているプログラムデータ４に書き換えることを書き換え制御部９に許可させるための書き換え許可データがダウンロードファイル７に含まれているか否かを判別する書き換え許可判別ステップである。また、ステップＳ４５は、カードリーダ３Ａに記憶されているプログラムデータを上位装置２に記憶されているプログラムデータ４に書き換えることを書き換え制御部９に許可させるための書き換え許可データがダウンロードファイル７に含まれている場合に、カードリーダ３Ａに記憶されているプログラムデータを上位装置２から送られるプログラムデータ４に書き換えて、データ書換えの正常完了応答を上位装置２へ返す書き換えステップである。さらに、ステップＳ４９は、カードリーダ３Ａに記憶されているプログラムデータを上位装置２に記憶されているプログラムデータ４に書き換えることを書き換え制御部９に許可させるための書き換え許可データがダウンロードファイル７に含まれていない場合に、カードリーダ３Ａに記憶されているプログラムデータを上位装置２から送られるプログラムデータ４に書き換えずに、データ書換えの正常完了応答を上位装置２へ返す擬似書き換えステップである。
【００７５】
（他の実施の形態）
上述した形態および変形例は、本発明の好適な形態の一例ではあるが、これに限定されるものではなく本発明の要旨を変更しない範囲において種々変形実施が可能である。
【００７６】
上述した形態では、書き換え許可データ２２は、ダウンロードファイル７Ａの中の３行目のプログラムデータ４に記述されている。この他にもたとえば、書き換え許可データ２２は、ダウンロードファイル７Ａの中の４行目以降のｎ行目のプログラムデータ４に記述されても良い。この場合には、書き換え制御部９は、ｎ行目のプログラムデータ４に書き換え許可データ２２が記述されているか否かを判断した後に、２行目からｎ行目までのコマンドを実行して正常応答をダウンロード制御部５へ返すか、あるいは、２行目からｎ行目までのコマンドを実行せずに正常応答をダウンロード制御部５へ返す。
【００７７】
上述した形態では、上位装置２に通信可能に接続される周辺装置、第２周辺装置は、カードリーダ３であるが、上位装置２に通信可能に接続される周辺装置、第２周辺装置は、カードプリンタ等のカードリーダ３以外の各種の装置であっても良い。
【符号の説明】
【００７８】
１  ダウンロードシステム（ファームウェアのダウンロードシステム）
２  上位装置
３（３Ａ）  カードリーダ（周辺装置）
３（３Ｂ）  カードリーダ（第２周辺装置）
４  プログラムデータ
７（７Ａ、７Ｂ）  ダウンロードファイル
９  書き換え制御部
２２  書き換え許可データ
２３  書き換え照合コマンド
Ｓ２４、Ｓ４２  書き換え許可判別ステップ
Ｓ２５、Ｓ２７、Ｓ４５  書き換えステップ
Ｓ２８、Ｓ３０、Ｓ４９  擬似書き換えステップ
【図１】
0005734139.tif 000002
【図２】
0005734139.tif 000003
【図３】
0005734139.tif 000004
【図４】
0005734139.tif 000005
【図５】
0005734139.tif 000006
【図６】
0005734139.tif 000007
【図７】
0005734139.tif 000008