説明

周辺装置、周辺装置の制御方法およびファームウェアのダウンロードシステム

【課題】旧型の周辺装置に対応したプログラムデータが上位装置から新型の周辺装置にダウンロードされるのを防止しつつ、周辺装置を含むシステムのダウンを回避することが可能な周辺装置を提供する。
【解決手段】ファームウェアのプログラムデータを上位装置2からダウンロード可能な周辺装置3Aは、上位装置2に記憶されるダウンロードファイル7に、周辺装置3Aに記憶されているプログラムデータを上位装置2に記憶されているプログラムデータに書き換えることを許可させるための書き換え許可データが含まれていれば、周辺装置3Aに記憶されているプログラムデータを上位装置2から送られるプログラムデータに書き換えて、データ書換えの正常完了応答を上位装置2へ返し、含まれていなければ、周辺装置3Aに記憶されているプログラムデータを上位装置2から送られるプログラムデータに書き換えずに、データ書換えの正常完了応答を上位装置2へ返す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、上位装置に接続される周辺装置であって、周辺装置を動作させるファームウェアのプログラムデータを上位装置からダウンロード可能な周辺装置に関する。また、本発明は、この周辺装置の制御方法、および、この周辺装置が接続可能な上位装置を備えるファームウェアのダウンロードシステムに関する。
【背景技術】
【0002】
従来、上位装置からカードリーダへファームウェアのプログラムデータをダウンロードするためのファームウェアのダウンロード方法が提案されている(たとえば、特許文献1参照)。特許文献1に記載のダウンロード方法では、プログラムデータを含むダウンロードファイルが上位装置に記憶されており、上位装置に記憶されているダウンロードファイルのレビジョン情報と、上位装置がカードリーダに対して発行したレビジョン取得コマンドのレスポンスとが一致しない場合に、上位装置からカードリーダへプログラムデータがダウンロードされている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−13782号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上位装置に接続されるカードリーダは、その機能を向上させたり、使用されている部品の製造中止に対処したりするために、旧型のものから新型のものへ交換されることがある。一方で、上位装置に記憶されているファームウェアのプログラムデータが新型のカードリーダに対応したプログラムデータである保障はなく、たとえば、上位装置に記憶されているファームウェアのプログラムデータが旧型のカードリーダに対応したプログラムデータである場合に、新型のカードリーダが上位装置に接続される場合がある。
【0005】
上位装置に新型のカードリーダが接続され、かつ、旧型のカードリーダに対応したプログラムデータが上位装置に記憶されている場合に、特許文献1に記載のダウンロード方法でダウンロードが行われると、旧型のカードリーダに対応したプログラムデータが新型のカードリーダにダウンロードされてしまうおそれがある。すなわち、上位装置に記憶されているプログラムデータによっては、機能の向上を図るために、あるいは、使用部品の製造中止に対処するために生産された新型のカードリーダに、旧型のカードリーダに対応したプログラムデータがダウンロードされてしまうおそれがあり、その結果、上位装置に接続されるカードリーダを新型のものに交換したにもかかわらず、その機能の向上を図ったり、使用部品の製造中止に対処したりすることができなくなるおそれがある。また、新型のカードリーダに、旧型のカードリーダに対応したプログラムデータがダウンロードされると、新型のカードリーダが動作しなくなるおそれもある。
【0006】
旧型のカードリーダに対応したプログラムデータが新型のカードリーダにダウンロードされるのを防止するには、旧型のカードリーダに対応したプログラムデータが上位装置に記憶されている場合に、旧型のカードリーダに対応したプログラムデータのダウンロードを新型のカードリーダが拒否すれば良い。すなわち、上位装置からのプログラムデータのダウンロードコマンド等に対して、新型のカードリーダがダウンロードの拒否応答を返せば良い。しかしながら、新型のカードリーダがダウンロードの拒否応答を返すと、上位装置側のダウンロード処理を正常に終了させることができずに、上位装置を含むシステムがダウンしてしまう(すなわち、システム全体の動作が停止してしまう)おそれがある。
【0007】
そこで、本発明の課題は、旧型の周辺装置に対応したプログラムデータが上位装置からダウンロードされるのを防止しつつ、周辺装置を含むシステムのダウンを回避することが可能な周辺装置を提供することにある。また、本発明の課題は、旧型の周辺装置に対応したプログラムデータが上位装置からダウンロードされるのを防止しつつ、周辺装置を含むシステムのダウンを回避することが可能となる周辺装置の制御方法を提供することにある。さらに、本発明の課題は、かかる周辺装置が接続可能な上位装置を備えるファームウェアのダウンロードシステムを提供することにある。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明の周辺装置は、上位装置に接続される周辺装置であって、周辺装置を動作させるファームウェアのプログラムデータを上位装置からダウンロード可能な周辺装置において、周辺装置に記憶されているプログラムデータの書き換えを制御する書き換え制御部を備え、プログラムデータを含むとともに上位装置に記憶されるダウンロードファイルに、周辺装置に記憶されているプログラムデータを上位装置に記憶されているプログラムデータに書き換えることを書き換え制御部に許可させるための書き換え許可データが含まれている場合に、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えて、データ書換えの正常完了応答を上位装置へ返すとともに、ダウンロードファイルに書き換え許可データが含まれていない場合に、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えずに、データ書換えの正常完了応答を上位装置へ返すことを特徴とする。
【0009】
本発明の周辺装置では、上位装置に記憶されるダウンロードファイルに書き換え許可データが含まれている場合には、周辺装置に記憶されているプログラムデータが上位装置から送られるプログラムデータに書き換えられているが、ダウンロードファイルに書き換え許可データが含まれていない場合には、周辺装置に記憶されているプログラムデータが上位装置から送られるプログラムデータに書き換えられていない。そのため、本発明では、新型の周辺装置に対応したプログラムデータが含まれるダウンロードファイルの中に書き換え許可データを含ませることで、旧型の周辺装置に対応したプログラムデータが上位装置から新型の周辺装置へダウンロードされるのを防止することが可能になる。
【0010】
また、本発明の周辺装置は、ダウンロードファイルに書き換え許可データが含まれておらず、周辺装置に記憶されているプログラムデータが上位装置から送られるプログラムデータに書き換えられない場合であっても、データ書換えの正常完了応答を上位装置へ返している。そのため、上位装置から周辺装置へプログラムデータがダウンロードされなくても、上位装置側のダウンロード処理を正常に終了させることが可能になる。したがって、本発明では、周辺装置を含むシステムのダウンを回避することが可能になる。
【0011】
また、上記の課題を解決するため、本発明の周辺装置の制御方法は、上位装置に接続される周辺装置であって、周辺装置を動作させるファームウェアのプログラムデータを上位装置からダウンロード可能な周辺装置の制御方法において、周辺装置に記憶されているプログラムデータを上位装置に記憶されているプログラムデータに書き換えることを許可させるための書き換え許可データが、プログラムデータを含むとともに上位装置に記憶されるダウンロードファイルに含まれているか否かを判別する書き換え許可判別ステップと、書き換え許可判別ステップで、書き換え許可データがダウンロードファイルに含まれている場合に、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えて、データ書換えの正常完了応答を上位装置へ返す書き換えステップと、書き換え許可判別ステップで、書き換え許可データがダウンロードファイルに含まれていない場合に、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えずに、データ書換えの正常完了応答を上位装置へ返す擬似書き換えステップとを備えることを特徴とする。
【0012】
本発明の周辺装置の制御方法では、書き換え許可判別ステップで、書き換え許可データがダウンロードファイルに含まれている場合には、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えているが、書き換え許可判別ステップで、書き換え許可データがダウンロードファイルに含まれていない場合には、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えていない。そのため、本発明では、新型の周辺装置に対応したプログラムデータが含まれるダウンロードファイルの中に書き換え許可データを含ませることで、旧型の周辺装置に対応したプログラムデータが上位装置から新型の周辺装置へダウンロードされるのを防止することが可能になる。
【0013】
また、本発明の周辺装置の制御方法では、書き換え許可判別ステップで、書き換え許可データがダウンロードファイルに含まれておらず、周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えない場合であっても、擬似書き換えステップで、データ書換えの正常完了応答を上位装置へ返している。そのため、上位装置から周辺装置へプログラムデータがダウンロードされなくても、上位装置側のダウンロード処理を正常に終了させることが可能になる。したがって、本発明では、周辺装置を含むシステムのダウンを回避することが可能になる。
【0014】
本発明の周辺装置、または、本発明の制御方法で制御される周辺装置は、この周辺装置が接続可能な上位装置を備えるファームウェアのダウンロードシステムに用いることができる。このファームウェアのダウンロードシステムでは、旧型の周辺装置に対応したプログラムデータが上位装置から新型の周辺装置へダウンロードされるのを防止しつつ、システムのダウンを回避することが可能になる。
【0015】
本発明において、書き換え許可データは、ダウンロードファイルのプログラムデータの中に含まれていることが好ましい。このように構成すると、たとえば、周辺装置に記憶されているプログラムデータを上位装置に記憶されているプログラムデータに書き換えても良いか否かを判別するための書き換え照合コマンドがダウンロードファイルに含まれていない場合や、ダウンロードファイルに含まれる書き換え照合コマンドを周辺装置が受け付けない場合であっても、ダウンロードファイルに書き換え許可データが含まれているか否かを判別することが可能になる。
【0016】
本発明において、ダウンロードファイルには、周辺装置に記憶されているプログラムデータを上位装置に記憶されているプログラムデータに書き換えても良いか否かを判別するための書き換え照合コマンドが含まれ、書き換え許可データは、書き換え照合コマンドに付されていても良い。この場合には、たとえば、プログラムデータに書き換え許可データを含ませる必要がなくなるため、プログラムデータの構造を簡素化することが可能になる。
【0017】
本発明において、上位装置には、周辺装置よりも旧型の第2周辺装置が接続可能であり、第2周辺装置は、ダウンロードファイルに書き換え許可データが含まれているか否かを判別せずに、第2周辺装置に記憶されているプログラムデータを上位装置から送られるプログラムデータに書き換えることが好ましい。このように構成すると、新型の周辺装置に対応するプログラムデータが上位装置に記憶されている場合には、このプログラムデータが上位装置から第2周辺装置へダウンロードされるため、このプログラムデータによって、第2周辺装置を動作させることが可能になる。すなわち、上位装置に記憶されている新型の周辺装置に対応の1個のプログラムデータによって、周辺装置および第2周辺装置を動作させることが可能になる。
【0018】
また、このように構成すると、第2周辺装置に対応するプログラムデータが上位装置に記憶されている場合、このプログラムデータは、第2周辺装置にはダウンロードされるが、周辺装置にはダウンロードされない。したがって、この場合には、周辺装置に対応するプログラムデータによって周辺装置を動作させ、かつ、第2周辺装置に対応するプログラムデータによって第2周辺装置を動作させることが可能になる。すなわち、上位装置に記憶されているプログラムデータが1個であっても、周辺装置および第2周辺装置を適切に動作させることが可能になる。
【0019】
その結果、このように構成すると、上位装置に周辺装置が接続されるのか、あるいは、第2周辺装置が接続されるのかによって、上位装置を変更する必要がなくなる。したがって、ダウンロードシステムを使用するユーザの利便性を高めることが可能になる。
【発明の効果】
【0020】
以上のように、本発明の周辺装置、周辺装置の制御方法、および、ファームウェアのダウンロードシステムでは、旧型の周辺装置に対応したプログラムデータが上位装置から新型の周辺装置へダウンロードされるのを防止しつつ、周辺装置を含むシステムのダウンを回避することが可能になる。
【図面の簡単な説明】
【0021】
【図1】本発明の実施の形態にかかるファームウェアのダウンロードシステムの概略構成を示すブロック図である。
【図2】図1に示す上位装置に記憶されるダウンロードファイルのデータ構造の一例を示す概念図である。
【図3】図1に示す上位装置に接続されるカードリーダと上位装置に記憶されるダウンロードファイルとの組合せパターンを説明するための概念図である。
【図4】図1に示す上位装置での、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【図5】図1に示すカードリーダでの、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【図6】本発明の他の実施の形態にかかるダウンロードファイルのデータ構造の一例を示す概念図である。
【図7】本発明の他の実施の形態にかかるカードリーダでの、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【発明を実施するための形態】
【0022】
以下、図面を参照しながら、本発明の実施の形態を説明する。
【0023】
(ファームウェアのダウンロードシステムの構成)
図1は、本発明の実施の形態にかかるファームウェアのダウンロードシステム1の概略構成を示すブロック図である。図2は、図1に示す上位装置2に記憶されるダウンロードファイル7のデータ構造の一例を示す概念図である。図3は、図1に示す上位装置2に接続されるカードリーダ3と上位装置2に記憶されるダウンロードファイル7との組合せパターンを説明するための概念図である。
【0024】
本形態のファームウェアのダウンロードシステム1(以下、「ダウンロードシステム1」とする)は、ホストコンピュータ等の上位装置2と、上位装置2に通信可能に接続されるカードリーダ3とを備えている。このダウンロードシステム1は、カードリーダ3を動作させるファームウェアのプログラムデータ4(図2参照)を上位装置2からカードリーダ3へダウンロードする。
【0025】
本形態では、機能を向上させたり、使用されている部品の製造中止に対処したりするために製造された新型のカードリーダ3であるカードリーダ3Aと、カードリーダ3Aよりも旧型のカードリーダ3であるカードリーダ3Bとが、上位装置2に接続可能となっており、上位装置2には、たとえば、カードリーダ3Aまたはカードリーダ3Bのいずれか1台が接続されている。本形態のカードリーダ3Aは、周辺装置であり、カードリーダ3Bは、第2周辺装置である。
【0026】
上位装置2は、カードリーダ3にプログラムデータ4をダウンロードするための制御を行うダウンロード制御部5を備えている。ダウンロード制御部5は、上位装置2内の通信手段や制御用プログラム等によって構成されている。また、上位装置2は、ハードディスクドライブ等の外部記憶部6を備えている。外部記憶部6には、プログラムデータ4を含むダウンロードファイル7が記憶されている。本形態では、カードリーダ3Aに対応するプログラムデータ4を含むダウンロードファイル7A(図3(A)、(C)参照)、または、カードリーダ3Bに対応するプログラムデータ4を含むダウンロードファイル7B(図3(B)、(D)参照)のいずれかが外部記憶部6に記憶されている。
【0027】
カードリーダ3は、たとえば、カードを手動で移動させながらカードに記録された磁気データの読取り等を行う手動式のカードリーダ、あるいは、カードの搬送機構によってカードを搬送させながらカードに記録された磁気データの読取り等を行うカード搬送式のカードリーダである。
【0028】
カードリーダ3Aは、カードリーダ3Aを制御するカードリーダ制御部8を備えている。カードリーダ制御部8は、ROM、RAM、不揮発性メモリ等の記憶手段やCPU等の演算手段等によって構成されている。また、カードリーダ制御部8は、カードリーダ3Aに記憶されているプログラムデータの書き換えを制御する書き換え制御部9と、プログラムデータを含むファームウェアが格納(記憶)されるファームウェア格納部10とを備えている。
【0029】
カードリーダ3Bは、カードリーダ3Bを制御するカードリーダ制御部13を備えている。カードリーダ制御部13は、ROM、RAM、不揮発性メモリ等の記憶手段やCPU等の演算手段等によって構成されている。また、カードリーダ制御部13は、カードリーダ3Bに記憶されているプログラムデータの書き換えを制御する書き換え制御部14と、プログラムデータを含むファームウェアが格納されるファームウェア格納部15とを備えている。
【0030】
ダウンロードファイル7には、プログラムデータ4に加え、プログラムデータ4のレビジョン情報17と、イレースコマンド18と、ダウンロードコマンド19と、EOF(End Of File mark、ファイル末端コード)20とが記述されている。レビジョン情報17は、ダウンロードファイル7の1行目に記述され、イレースコマンド18は、ダウンロードファイル7の2行目に記述されている。ダウンロードコマンド19およびプログラムデータ4は、ダウンロードファイル7の3行目以降に記述され、EOF20は、ダウンロードファイル7の最終行に記述されている。
【0031】
レビジョン情報17は、ダウンロードファイル7におけるプログラムデータ4の改訂情報である。レビジョン情報17のフォーマットは、たとえば、上位装置2がカードリーダ3に対してプログラムデータのレビジョン取得コマンドを発行した場合に得られるカードリーダ3からのレスポンス(応答)と、同一フォーマットとなっている。レビジョン取得コマンドは、カードリーダ3に記憶されているプログラムデータのレビジョン情報を取得するためのコマンドである。
【0032】
イレースコマンド18は、カードリーダ3のファームウェア格納部10、15の中の指定した領域を消去(イレース)するためのコマンドである。
【0033】
ダウンロードファイル7の中の3行目以降の各行のプログラムデータ4のそれぞれは、上位装置2とカードリーダ3との間の通信プロトコルに適合した規定のデータ形式およびデータ長に予め整形されており、かつ、ダウンロードコマンド19にセットされている。また、カードリーダ3Aに対応するプログラムデータ4を含むダウンロードファイル7Aの中の3行目のプログラムデータ4には、カードリーダ3Aに記憶されているプログラムデータを外部記憶部6に記憶されるダウンロードファイル7Aのプログラムデータ4に書き換えることを書き換え制御部9に許可させるための書き換え許可データ22が記述されている。一方、カードリーダ3Bに対応するプログラムデータ4を含むダウンロードファイル7Bの中の3行目のプログラムデータ4には、この書き換え許可データ22が記述されていない。なお、書き換え許可データ22は、暗号化された暗号文によってプログラムデータ4の中に記述されても良いし、暗号化されていない平文によってプログラムデータ4の中に記述されても良い。
【0034】
上述のように、上位装置2には、カードリーダ3Aとカードリーダ3Bとが接続可能となっている。また、外部記憶部6には、カードリーダ3Aに対応するプログラムデータ4を含むダウンロードファイル7A、または、カードリーダ3Bに対応するプログラムデータ4を含むダウンロードファイル7Bが記憶されている。そのため、上位装置2に接続されるカードリーダ3と上位装置2に記憶されるダウンロードファイル7との組合せとして、図3に示す4つのパターンが考えられる。
【0035】
すなわち、図3(A)に示すように、上位装置2にカードリーダ3Aが接続され、外部記憶部6にダウンロードファイル7Aが記憶されるパターンと、図3(B)に示すように、上位装置2にカードリーダ3Aが接続され、外部記憶部6にダウンロードファイル7Bが記憶されるパターンと、図3(C)に示すように、上位装置2にカードリーダ3Bが接続され、外部記憶部6にダウンロードファイル7Aが記憶されるパターンと、図3(D)に示すように、上位装置2にカードリーダ3Bが接続され、外部記憶部6にダウンロードファイル7Bが記憶されるパターンとの4つのパターンが考えられる。
【0036】
なお、外部記憶部6にダウンロードファイル7Aが記憶されている場合、ダウンロードファイル7Aに含まれるプログラムデータ4のレビジョンは、たとえば、図3(A)、(C)に示すように、“Rev.B”である。また、外部記憶部6にダウンロードファイル7Bが記憶されている場合、ダウンロードファイル7Bに含まれるプログラムデータ4のレビジョンは、たとえば、図3(B)、(D)に示すように、“Rev.b”である。また、カードリーダ3Aのファームウェア格納部10に記憶されているプログラムデータのレビジョンは、たとえば、図3(A)、(B)に示すように、“Rev.A”であり、カードリーダ3Bのファームウェア格納部15に記憶されているプログラムデータのレビジョンは、たとえば、図3(C)、(D)に示すように、“Rev.a”である。
【0037】
また、本形態では、カードリーダ3Aに対応するプログラムデータ4がカードリーダ3Bにダウンロードされた場合であっても、カードリーダ3Bは、正常に動作する。一方、カードリーダ3Bに対応するプログラムデータ4がカードリーダ3Aにダウンロードされると、カードリーダ3Aは、正常に動作しなくなる。
【0038】
(ファームウェアのダウンロード方法:上位装置での処理)
図4は、図1に示す上位装置2での、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【0039】
上位装置2からカードリーダ3へプログラムデータ4をダウンロードする際には、まず、ダウンロード制御部5は、ダウンロードファイル7の1行目を読み込んで、レビジョン情報17を読み取り(ステップS1)、カードリーダ3に対してレビジョン取得コマンドを発行する(ステップS2)。その後、ダウンロード制御部5は、ダウンロードファイル7から読み取ったレビジョン情報17と、レビジョン取得コマンドに対するカードリーダ3からの応答とを比較する(ステップS3)。すなわち、ステップS3では、上位装置2に(具体的には、外部記憶部6に)記憶されているダウンロードファイル7に含まれるプログラムデータ4のレビジョンと、ファームウェア格納部10、15に記憶されているプログラムデータのレビジョンとを比較する。
【0040】
ステップS3で、上位装置2に記憶されているダウンロードファイル7に含まれるプログラムデータ4のレビジョンと、ファームウェア格納部10、15に記憶されているプログラムデータのレビジョンとが一致しない場合には(ステップS3で“No”の場合には)、ダウンロード制御部5は、ダウンロード処理を実行するべく、カードリーダ3に対して初期化コマンドを発行する(ステップS4)。
【0041】
すなわち、図3(A)に示すように、上位装置2(具体的には、外部記憶部6)に記憶されているダウンロードファイル7Aに含まれるプログラムデータ4のレビジョンが“Rev.B”であり、ファームウェア格納部10に記憶されているプログラムデータのレビジョンが“Rev.A”である場合、図3(B)に示すように、上位装置2に記憶されているダウンロードファイル7Bに含まれるプログラムデータ4のレビジョンが“Rev.b”であり、ファームウェア格納部10に記憶されているプログラムデータのレビジョンが“Rev.A”である場合、図3(C)に示すように、上位装置2に記憶されているダウンロードファイル7Aに含まれるプログラムデータ4のレビジョンが“Rev.B”であり、ファームウェア格納部15に記憶されているプログラムデータのレビジョンが“Rev.a”である場合、図3(D)に示すように、上位装置2に記憶されているダウンロードファイル7Bに含まれるプログラムデータ4のレビジョンが“Rev.b”であり、ファームウェア格納部15に記憶されているプログラムデータのレビジョンが“Rev.a”である場合等には、上位装置2に記憶されているダウンロードファイル7に含まれるプログラムデータ4のレビジョンと、ファームウェア格納部10、15に記憶されているプログラムデータのレビジョンとが一致しないため、ステップS4で、ダウンロード制御部5は、カードリーダ3に対して初期化コマンドを発行する。
【0042】
その後、ダウンロード制御部5は、この初期化コマンドに対するカードリーダ3のレスポンスから、カードリーダ3がダウンロードモード(プログラムデータ4のダウンロードが可能な状態)であるか否かを判断する(ステップS5)。ステップS5で、カードリーダ3がダウンロードモードでなければ(ステップS5で“No”の場合には)、ダウンロード制御部5は、カードリーダ3に対してモード切替コマンドを発行して(ステップS6)、カードリーダ3をダウンロードモードに遷移させてからステップS4へ戻る。
【0043】
一方、ステップS5で、カードリーダ3がダウンロードモードであれば(ステップS5で“Yes”の場合には)、ダウンロード制御部5は、ダウンロードファイル7の2行目以降を1行毎に読み込み(ステップS7)、読み込んだ1行が最終行(EOF20)であるか否かを判断する(ステップS8)。
【0044】
ステップS8で、読み込んだ1行が最終行でなければ(ステップS8で“No”の場合には)、ダウンロード制御部5は、この読み込んだダウンロードファイル7の1行をコマンドとしてカードリーダ3に対して発行する。たとえば、読み込んだ1行がダウンロードファイル7の2行目であれば、イレースコマンド18がカードリーダ3に対して発行される。また、読み込んだ1行がダウンロードファイル7の3行目以降であれば、ダウンロードコマンド19が整形されたプログラムデータ4とともにカードリーダ3に対して発行される。
【0045】
その後、ダウンロード制御部5は、カードリーダ3の応答に基づいてコマンドが正常に実行されたか否かを判断する(ステップS10)。カードリーダ3の応答が正常応答であれば(ステップS10で“Yes”の場合には)、ステップS7へ戻り、ダウンロードファイル7の次の行を読み込む。一方、カードリーダ3の応答が異常応答であれば(ステップS10で“No”の場合には)、ダウンロード制御部5は、プログラムデータ4のダウンロード失敗と判断して、ダウンロード処理を終了する。なお、この場合には、ダウンロードシステム1がダウンする(ダウンロードシステム1の動作が停止してしまう)ことがある。
【0046】
また、ステップS8で、ダウンロードファイル7から読み込んだ1行が最終行となると(ステップS8で“Yes”の場合)、プログラムデータ4のダウンロードは正常終了となる。
【0047】
また、ステップS3で、上位装置2に記憶されているプログラムデータ4のレビジョンと、ファームウェア格納部10、15に記憶されているプログラムデータのレビジョンとが一致している場合には(ステップS3で“Yes”の場合には)、ダウンロード制御部5は、プログラムデータ4のダウンロードは不要と判断して、ダウンロード処理を終了する。たとえば、図3(A)において、上位装置2に記憶されているプログラムデータ4のレビジョンが“Rev.A”である場合には、上位装置2に記憶されているプログラムデータ4のレビジョンと、ファームウェア格納部10に記憶されているプログラムデータのレビジョンとが一致しているため、ダウンロード制御部5は、ダウンロード処理を終了する。
【0048】
(ファームウェアのダウンロード方法:カードリーダでの処理)
図5は、図1に示すカードリーダ3での、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【0049】
図3(C)、(D)に示すように、上位装置2にカードリーダ3Bが接続されている場合には、ダウンロードファイル7A、7Bのいずれが上位装置2に記憶されている場合であっても、カードリーダ3Bでは、ファームウェアのダウンロード時に、上述した特許文献1に記載されたカードリーダの処理と同様の処理が行われる。
【0050】
すなわち、上述のステップS7で読み込まれた1行がダウンロードファイル7の2行目であれば、ステップS9で発行されるイレースコマンド18に基づいて、カードリーダ制御部13は、イレースコマンド18を実行する。具体的には、書き換え制御部14が、ファームウェア格納部15の中の指定された領域を消去する。より具体的には、書き換え制御部14が、プログラムデータ4に対応するファームウェア格納部15内のプログラムデータを消去する。また、カードリーダ制御部13は、イレースコマンド18が正常に実行されたとの正常応答をダウンロード制御部5へ返す。
【0051】
また、ステップS7で読み込まれた1行がダウンロードファイル7の3行目以降であれば、ステップS9で発行されるダウンロードコマンド19に基づいて、カードリーダ制御部13は、ダウンロードコマンド19を実行する。具体的には、書き換え制御部14が、上位装置2から送られてくるプログラムデータ4を、ファームウェア格納部15の中の指定された領域に格納(記憶)する。すなわち、書き換え制御部14が、上位装置2から送られてくるプログラムデータ4を、ファームウェア格納部15に書き込む。また、書き換え制御部14は、ダウンロードコマンド19が正常に実行されたとの正常応答をダウンロード制御部5へ返す。
【0052】
一方、図3(A)、(B)に示すように、上位装置2にカードリーダ3Aが接続されている場合には、カードリーダ3Aでは、ファームウェアのダウンロード時に、上述した特許文献1に記載されたカードリーダの処理と異なる処理が行われる。具体的には、カードリーダ3Aでは、図5に示すフローにしたがって、以下のように処理が行われる。
【0053】
上述のステップS7で読み込まれた1行がダウンロードファイル7の2行目であって、ステップS9で発行されたダウンロードファイル7の2行目(すなわち、イレースコマンド18)を書き換え制御部9が受信すると(ステップS21)、書き換え制御部9は、この2行目のイレースコマンド18を実行せずに、イレースコマンド18が正常に実行されたとの正常応答をダウンロード制御部5へ返す(ステップS22)。すなわち、ステップS22では、書き換え制御部9が、ファームウェア格納部10に記憶されているプログラムデータを消去することなく、イレースコマンド18が正常に実行されたとの正常応答をダウンロード制御部5へ返す。
【0054】
その後、ステップS9で発行されたダウンロードファイル7の3行目(すなわち、ダウンロードコマンド19およびプログラムデータ4)を書き換え制御部9が受信すると(ステップS23)、書き換え制御部9は、3行目のプログラムデータ4に書き換え許可データ22が記述されているか否かを判断する(ステップS24)。すなわち、ステップS24において、書き換え制御部9は、上位装置2に記憶されているプログラムデータ4がカードリーダ3Aに対応するプログラムデータ4であるか否かを判別する。
【0055】
図3(A)に示すように、上位装置2にダウンロードファイル7Aが記憶されており、ステップS24で、3行目のプログラムデータ4に書き換え許可データ22が記述されている場合(すなわち、ダウンロードファイル7に書き換え許可データ22が含まれている場合、ステップS24で“Yes”の場合)には、書き換え制御部9は、ダウンロードファイル7Aの2行目のコマンドおよび3行目のコマンド(すなわち、イレースコマンド18およびダウンロードコマンド19)を実行し、ダウンロードコマンド19が正常に実行されたとの正常応答をダウンロード制御部5へ返す(ステップS25)。具体的には、ステップS25で、書き換え制御部9が、ファームウェア格納部10に記憶されているプログラムデータを消去し、かつ、上位装置2から送られてくるプログラムデータ4をファームウェア格納部10の中の指定された領域に格納(記憶)して、正常応答をダウンロード制御部5へ返す。
【0056】
その後、書き換え制御部9は、ダウンロードファイル7Aの4行目以降を順次、受信し(ステップS26)、受信した行のダウンロードコマンド19を順次、実行して(すなわち、上位装置2から送られてくるプログラムデータ4をファームウェア格納部10の中の指定された領域に格納(記憶)して)、ダウンロードコマンド19が正常に実行されたとの正常応答をダウンロード制御部5へ返す(ステップS27)。
【0057】
一方、図3(B)に示すように、上位装置2にダウンロードファイル7Bが記憶されており、ステップS24で、3行目のプログラムデータ4に書き換え許可データ22が記述されていない場合(すなわち、ダウンロードファイル7に書き換え許可データ22が含まれていない場合、ステップS24で“No”の場合)には、書き換え制御部9は、ダウンロードファイル7Bの3行目のコマンド(すなわち、ダウンロードコマンド19)を実行せずに、ダウンロードコマンド19が正常に実行されたとの正常応答をダウンロード制御部5へ返す(ステップS28)。具体的には、ステップS28では、書き換え制御部9が、上位装置2から送られてくるプログラムデータ4をファームウェア格納部10に格納(記憶)せずに、正常応答をダウンロード制御部5へ返す。
【0058】
その後、書き換え制御部9は、ダウンロードファイル7Bの4行目以降を順次、受信し(ステップS29)、受信した行のダウンロードコマンド19を実行せずに、ダウンロードコマンド19が正常に実行されたとの正常応答をダウンロード制御部5へ返す(ステップS30)。
【0059】
本形態のステップS24は、書き換え許可データ22がダウンロードファイル7に含まれているか否かを判別する書き換え許可判別ステップである。また、本形態のステップS25、S27は、書き換え許可データ22がダウンロードファイル7に含まれている場合に、カードリーダ3Aに記憶されているプログラムデータを上位装置2から送られるプログラムデータ4に書き換えて、データ書換えの正常完了応答を上位装置2へ返す書き換えステップである。さらに、本形態のステップS28、S30は、書き換え許可データ22がダウンロードファイル7に含まれていない場合に、カードリーダ3Aに記憶されているプログラムデータを上位装置2から送られるプログラムデータ4に書き換えずに、データ書換えの正常完了応答を上位装置2へ返す擬似書き換えステップである。
【0060】
(本形態の主な効果)
以上説明したように、本形態では、ダウンロードファイル7に書き換え許可データ22が含まれている場合には、カードリーダ3Aに記憶されているプログラムデータが上位装置2から送られてくるプログラムデータ4に書き換えられているが、ダウンロードファイル7に書き換え許可データ22が含まれていない場合には、カードリーダ3Aに記憶されているプログラムデータが上位装置2から送られてくるプログラムデータ4に書き換えられていない。すなわち、本形態では、カードリーダ3Aに対応するプログラムデータ4が上位装置2に記憶されている場合には、カードリーダ3Aに記憶されているプログラムデータが上位装置2から送られてくるプログラムデータ4に書き換えられているが、カードリーダ3Bに対応するプログラムデータ4が上位装置2に記憶されている場合には、カードリーダ3Aに記憶されているプログラムデータが上位装置2から送られてくるプログラムデータ4に書き換えられていない。そのため、本形態では、旧型のカードリーダ3Bに対応するプログラムデータ4が上位装置2から新型のカードリーダ3Aにダウンロードされるのを防止することができる。したがって、本形態では、旧型のカードリーダ3Bに対応するプログラムデータ4がカードリーダ3Aにダウンロードされて、カードリーダ3Aが正常に動作しなくなるといった不具合を回避することが可能になる。
【0061】
本形態では、ダウンロードファイル7に書き換え許可データ22が含まれておらず、カードリーダ3Aに記憶されているプログラムデータが上位装置2から送られるプログラムデータ4に書き換えられない場合であっても(すなわち、イレースコマンド18およびダウンロードコマンド19を書き換え制御部9が実行しない場合であっても)、書き換え制御部9は、データ書換えの正常完了応答を上位装置2へ返している。そのため、上位装置2からカードリーダ3Aへプログラムデータ4がダウンロードされなくても、上位装置2のダウンロード処理を正常に終了させることができる。したがって、本形態では、ダウンロードシステム1のダウンを回避することが可能になる。
【0062】
本形態では、上位装置2にカードリーダ3Bが接続されている場合、カードリーダ3Bは、ダウンロードファイル7に書き換え許可データ22が含まれるか否かを判別せずに、カードリーダ3Bに記憶されているプログラムデータを上位装置2から送られるプログラムデータ4に書き換えている。そのため、カードリーダ3Aに対応するプログラムデータ4が上位装置2に記憶されている場合には、このプログラムデータ4によって、カードリーダ3Bを動作させることができる。すなわち、本形態では、カードリーダ3Aに対応する1個のプログラムデータ4によって、カードリーダ3A、3Bを動作させることができる。
【0063】
また、カードリーダ3Bに対応するプログラムデータ4が上位装置2に記憶されている場合には、このプログラムデータ4は、カードリーダ3Bにはダウンロードされるが、カードリーダ3Aにはダウンロードされない。そのため、カードリーダ3Aに対応するプログラムデータによってカードリーダ3Aを動作させ、かつ、カードリーダ3Bに対応するプログラムデータによってカードリーダ3Bを動作させることができる。したがって、本形態では、上位装置2に記憶されているプログラムデータ4が1個であっても、カードリーダ3A、3Bを適切に動作させることが可能になる。
【0064】
このように、本形態では、上位装置2に記憶されているプログラムデータ4が1個であっても、カードリーダ3A、3Bを適切に動作させることが可能になるため、上位装置2にカードリーダ3Aが接続されるのか、あるいは、カードリーダ3Bが接続されるのかによって、上位装置2を変更する必要がなくなる。したがって、本形態では、ダウンロードシステム1を使用するユーザの利便性を高めることが可能になる。
【0065】
(ダウンロードファイルおよびダウンロード方法の変形例)
図6は、本発明の他の実施の形態にかかるダウンロードファイル7のデータ構造の一例を示す概念図である。図7は、本発明の他の実施の形態にかかるカードリーダ3での、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
【0066】
上述した形態では、ダウンロードファイル7に、カードリーダ3に記憶されているプログラムデータを上位装置2に記憶されているプログラムデータ4に書き換えても良いか否かを判別するための書き換え照合コマンド23が含まれていないが、図6に示すように、ダウンロードファイル7に書き換え照合コマンド23が含まれていても良い。この場合には、たとえば、書き換え照合コマンド23に、カードリーダ3に記憶されているプログラムデータを外部記憶部6に記憶されるプログラムデータ4に書き換えることを書き換え制御部9、14に許可させるための書き換え許可データが付されている。また、ダウンロードファイル7Aの書き換え照合コマンド23に付される書き換え許可データと、ダウンロードファイル7Bの書き換え照合コマンド23に付される書き換え許可データとは異なっている。
【0067】
この変形例にかかるダウンロードファイル7では、図6に示すように、書き換え照合コマンド23は、ダウンロードファイル7の2行目に記述され、イレースコマンド18は、ダウンロードファイル7の3行目に記述され、ダウンロードコマンド19およびプログラムデータ4は、ダウンロードファイル7の4行目以降に記述されている。また、書き換え制御部9には、ダウンロードファイル7Aの書き換え照合コマンド23に付される書き換え許可データに一致する、または、この書き換え許可データに1対1で対応する許可データが記憶され、書き換え制御部14には、ダウンロードファイル7Bの書き換え照合コマンド23に付される書き換え許可データに一致する、または、この書き換え許可データに1対1で対応する許可データが記憶されている。
【0068】
この変形例では、図7に示すように、上述のステップS9で発行されたダウンロードファイル7の2行目(すなわち、書き換え照合コマンド23)を書き換え制御部9が受信すると(ステップS41)、書き換え制御部9は、書き換え照合コマンド23に付された書き換え許可データが、書き換え制御部9に記憶される許可データと一致するか(あるいは、この許可データと対応するか)否かを判断する(ステップS42)。すなわち、書き換え制御部9は、ステップS42において、書き換え照合が取れるか否かを判断する。
【0069】
上位装置2にダウンロードファイル7Aが記憶されており、ステップS42で、書き換え照合が取れる場合(ステップS42で“Yes”の場合)には、書き換え制御部9は、書き換え照合が取れたとの正常応答をダウンロード制御部5へ返す(ステップS43)。その後、書き換え制御部9は、ダウンロードファイル7Aの3行目以降を順次、受信し(ステップS44)、受信した行のイレースコマンド18やダウンロードコマンド19を順次、実行して、イレースコマンド18やダウンロードコマンド19が正常に実行されたとの正常応答をダウンロード制御部5へ返す(ステップS45)。
【0070】
一方、ステップS42で、書き換え照合が取れない場合(ステップS42で“No”の場合)には、書き換え制御部9は、書き換え照合コマンド23に付された書き換え許可データが、ダウンロードファイル7Bの書き換え照合コマンド23に付された書き換え許可データであるのか、それとも、異なる機種のカードリーダ等のダウンロードファイルの書き換え照合コマンドに付された書き換え許可データであるのかを判断する(ステップS46)。すなわち、ステップS46において、書き換え制御部9は、上位装置2に記憶されているプログラムデータが旧型のカードリーダ3Bに対応するものであるのか、それとも、異なる機種のカードリーダ等に対応するものであるのかを判断する。
【0071】
ステップS46で、上位装置2に記憶されているプログラムデータがカードリーダ3Bに対応するものである場合(すなわち、上位装置2にダウンロードファイル7Bが記憶されている場合、ステップS46で“Yes”の場合)には、書き換え制御部9は、書き換え照合が取れていないにもかかわらず書き換え照合が取れたとの正常応答をダウンロード制御部5へ返す(ステップS47)。その後、書き換え制御部9は、ダウンロードファイル7Bの3行目以降を順次、受信し(ステップS48)、受信した行のイレースコマンド18やダウンロードコマンド19を実行せずに、イレースコマンド18やダウンロードコマンド19が正常に実行されたとの正常応答をダウンロード制御部5へ返す(ステップS49)。
【0072】
また、ステップS46で、上位装置2に記憶されているプログラムデータが異なる機種のカードリーダ等に対応するものである場合(ステップS46で“No”の場合)には、書き換え制御部9は、異常応答をダウンロード制御部5へ返す(ステップS50)。異常応答を受信したダウンロード制御部5は、プログラムデータ4のダウンロード失敗と判断して、ダウンロード処理を終了する。
【0073】
この変形例においても、上述した形態と同様の効果を得ることができる。また、この変形例では、プログラムデータ4に書き換え許可データ22を含ませる必要がなくなるため、プログラムデータ4の構造を簡素化することが可能になる。なお、プログラムデータ4に書き換え許可データ22が含まれている場合には、ダウンロードファイル7に書き換え照合コマンド23が含まれていない場合や書き換え照合コマンド23をカードリーダ3Aが受け付けない場合であっても、ダウンロードファイル7に書き換え許可データが含まれているか否かを判別することが可能になる。
【0074】
なお、この変形例におけるステップS42は、カードリーダ3Aに記憶されているプログラムデータを上位装置2に記憶されているプログラムデータ4に書き換えることを書き換え制御部9に許可させるための書き換え許可データがダウンロードファイル7に含まれているか否かを判別する書き換え許可判別ステップである。また、ステップS45は、カードリーダ3Aに記憶されているプログラムデータを上位装置2に記憶されているプログラムデータ4に書き換えることを書き換え制御部9に許可させるための書き換え許可データがダウンロードファイル7に含まれている場合に、カードリーダ3Aに記憶されているプログラムデータを上位装置2から送られるプログラムデータ4に書き換えて、データ書換えの正常完了応答を上位装置2へ返す書き換えステップである。さらに、ステップS49は、カードリーダ3Aに記憶されているプログラムデータを上位装置2に記憶されているプログラムデータ4に書き換えることを書き換え制御部9に許可させるための書き換え許可データがダウンロードファイル7に含まれていない場合に、カードリーダ3Aに記憶されているプログラムデータを上位装置2から送られるプログラムデータ4に書き換えずに、データ書換えの正常完了応答を上位装置2へ返す擬似書き換えステップである。
【0075】
(他の実施の形態)
上述した形態および変形例は、本発明の好適な形態の一例ではあるが、これに限定されるものではなく本発明の要旨を変更しない範囲において種々変形実施が可能である。
【0076】
上述した形態では、書き換え許可データ22は、ダウンロードファイル7Aの中の3行目のプログラムデータ4に記述されている。この他にもたとえば、書き換え許可データ22は、ダウンロードファイル7Aの中の4行目以降のn行目のプログラムデータ4に記述されても良い。この場合には、書き換え制御部9は、n行目のプログラムデータ4に書き換え許可データ22が記述されているか否かを判断した後に、2行目からn行目までのコマンドを実行して正常応答をダウンロード制御部5へ返すか、あるいは、2行目からn行目までのコマンドを実行せずに正常応答をダウンロード制御部5へ返す。
【0077】
上述した形態では、上位装置2に通信可能に接続される周辺装置、第2周辺装置は、カードリーダ3であるが、上位装置2に通信可能に接続される周辺装置、第2周辺装置は、カードプリンタ等のカードリーダ3以外の各種の装置であっても良い。
【符号の説明】
【0078】
1 ダウンロードシステム(ファームウェアのダウンロードシステム)
2 上位装置
3(3A) カードリーダ(周辺装置)
3(3B) カードリーダ(第2周辺装置)
4 プログラムデータ
7(7A、7B) ダウンロードファイル
9 書き換え制御部
22 書き換え許可データ
23 書き換え照合コマンド
S24、S42 書き換え許可判別ステップ
S25、S27、S45 書き換えステップ
S28、S30、S49 擬似書き換えステップ

【特許請求の範囲】
【請求項1】
上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを前記上位装置からダウンロード可能な周辺装置において、
前記周辺装置に記憶されている前記プログラムデータの書き換えを制御する書き換え制御部を備え、
前記プログラムデータを含むとともに前記上位装置に記憶されるダウンロードファイルに、前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを前記書き換え制御部に許可させるための書き換え許可データが含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書換えの正常完了応答を前記上位装置へ返すとともに、
前記ダウンロードファイルに前記書き換え許可データが含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書換えの正常完了応答を前記上位装置へ返すことを特徴とする周辺装置。
【請求項2】
上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを前記上位装置からダウンロード可能な周辺装置の制御方法において、
前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを許可させるための書き換え許可データが、前記プログラムデータを含むとともに前記上位装置に記憶されるダウンロードファイルに含まれているか否かを判別する書き換え許可判別ステップと、
前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書換えの正常完了応答を前記上位装置へ返す書き換えステップと、
前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書換えの正常完了応答を前記上位装置へ返す擬似書き換えステップとを備えることを特徴とする周辺装置の制御方法。
【請求項3】
請求項1に記載の周辺装置、または、請求項2に記載の周辺装置の制御方法で制御される周辺装置が接続可能な前記上位装置を備えることを特徴とするファームウェアのダウンロードシステム。
【請求項4】
前記書き換え許可データは、前記ダウンロードファイルの前記プログラムデータの中に含まれていることを特徴とする請求項3記載のファームウェアのダウンロードシステム。
【請求項5】
前記ダウンロードファイルには、前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えても良いか否かを判別するための書き換え照合コマンドが含まれ、
前記書き換え許可データは、前記書き換え照合コマンドに付されていることを特徴とする請求項3記載のファームウェアのダウンロードシステム。
【請求項6】
前記上位装置には、前記周辺装置よりも旧型の第2周辺装置が接続可能であり、
前記第2周辺装置は、前記ダウンロードファイルに前記書き換え許可データが含まれているか否かを判別せずに、前記第2周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えることを特徴とする請求項3から5のいずれかに記載のファームウェアのダウンロードシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−54426(P2013−54426A)
【公開日】平成25年3月21日(2013.3.21)
【国際特許分類】
【出願番号】特願2011−190465(P2011−190465)
【出願日】平成23年9月1日(2011.9.1)
【出願人】(000002233)日本電産サンキョー株式会社 (1,337)
【Fターム(参考)】