JP2014127152A - 周辺装置、周辺装置の制御方法、ファームウェアのダウンロードシステム、およびプログラム - Google Patents

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

Info

Publication number
JP2014127152A
JP2014127152A JP2012285599A JP2012285599A JP2014127152A JP 2014127152 A JP2014127152 A JP 2014127152A JP 2012285599 A JP2012285599 A JP 2012285599A JP 2012285599 A JP2012285599 A JP 2012285599A JP 2014127152 A JP2014127152 A JP 2014127152A
Authority
JP
Japan
Prior art keywords
identification information
program data
rewrite
download
host device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012285599A
Other languages
English (en)
Other versions
JP6101073B2 (ja
Inventor
Tsutomu Orii
勉 折井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nidec Instruments Corp
Original Assignee
Nidec Sankyo Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nidec Sankyo Corp filed Critical Nidec Sankyo Corp
Priority to JP2012285599A priority Critical patent/JP6101073B2/ja
Priority to BR112014032634A priority patent/BR112014032634A2/pt
Priority to US14/409,761 priority patent/US9361138B2/en
Priority to PCT/JP2013/077702 priority patent/WO2014103473A1/ja
Priority to CN201380032294.XA priority patent/CN104412237B/zh
Publication of JP2014127152A publication Critical patent/JP2014127152A/ja
Application granted granted Critical
Publication of JP6101073B2 publication Critical patent/JP6101073B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】旧型の周辺装置に対応したプログラムデータが上位装置からダウンロードされることを防止しつつ、周辺装置を含むシステムのダウンを回避できる周辺装置、周辺装置の制御方法、ファームウェアのダウンロードシステム、およびプログラムを提供する。
【解決手段】周辺装置30Aは、上位装置20に記憶されるダウンロードファイル23に、プログラムデータに書き換えることを許可させるための書き換え許可データが含まれていれば、プログラムデータを上位装置20から送られるプログラムデータに書き換えて、データ書き換えの正常完了応答を上位装置20へ返し、含まれていなければ、周辺装置30Aに記憶されているプログラムデータを上位装置20から送られるプログラムデータに書き換えずに、データ書き換えの正常完了応答を上位装置20へ返し、ダウンロードファイルに含まれるその識別情報を周辺装置30Aの識別情報格納部32Aに格納する。
【選択図】図1

Description

本発明は、上位装置に接続される周辺装置であって、周辺装置を動作させるファームウェアのプログラムデータを上位装置からダウンロード可能な周辺装置に関するものである。また、本発明は、この周辺装置の制御方法、および周辺装置が接続可能な上位装置を備えるファームウェアのダウンロードシステム、並びにプログラムに関するものである。
上位装置からカードリーダへファームウェアのプログラムデータをダウンロードするためのファームウェアのダウンロード方法が提案されている(たとえば、特許文献1参照)。
特許文献1に記載のダウンロード方法では、プログラムデータを含むダウンロードファイルが上位装置に記憶されており、上位装置に記憶されているダウンロードファイルのレビジョン情報と、上位装置がカードリーダに対して発行したレビジョン取得コマンドのレスポンスとが一致しない場合に、上位装置からカードリーダへプログラムデータがダウンロードされる。
特開2004−13782号公報
ところで、上位装置に接続されるカードリーダは、その機能を向上させたり、使用されている部品の製造中止に対処したりするために、旧型のものから新型のものへ交換されることがある。
一方で、上位装置に記憶されているファームウェアのプログラムデータが新型のカードリーダに対応したプログラムデータである保障はない。たとえば、上位装置に記憶されているファームウェアのプログラムデータが旧型のカードリーダに対応したプログラムデータである場合に、新型のカードリーダが上位装置に接続される場合がある。
上位装置に新型のカードリーダが接続され、かつ、旧型のカードリーダに対応したプログラムデータが上位装置に記憶されている場合に、特許文献1に記載のダウンロード方法でダウンロードが行われると、旧型のカードリーダに対応したプログラムデータが新型のカードリーダにダウンロードされてしまうおそれがある。
すなわち、上位装置に記憶されているプログラムデータによっては、機能の向上を図るために、あるいは、使用部品の製造中止に対処するために生産された新型のカードリーダに、旧型のカードリーダに対応したプログラムデータがダウンロードされてしまうおそれがある。
その結果、上位装置に接続されるカードリーダを新型のものに交換したにもかかわらず、その機能の向上を図ったり、使用部品の製造中止に対処したりすることができなくなるおそれがある。
また、新型のカードリーダに、旧型のカードリーダに対応したプログラムデータがダウンロードされると、新型のカードリーダが動作しなくなるおそれがある。
旧型のカードリーダに対応したプログラムデータが新型のカードリーダにダウンロードされることを防止するには、旧型のカードリーダに対応したプログラムデータが上位装置に記憶されている場合に、旧型のカードリーダに対応したプログラムデータのダウンロードを新型のカードリーダが拒否すれば良い。
すなわち、上位装置からのプログラムデータのダウンロードコマンド等に対して、新型のカードリーダがダウンロードの拒否応答を返せば良い。
しかしながら、新型のカードリーダがダウンロードの拒否応答を返すと、上位装置側のダウンロード処理を正常に終了させることができずに、上位装置を含むシステムがダウンしてしまう、すなわち、システム全体の動作が停止してしまうおそれがある。
本発明の目的は、旧型の周辺装置に対応したプログラムデータが上位装置からダウンロードされることを防止しつつ、周辺装置を含むシステムのダウンを回避することが可能な周辺装置、周辺装置の制御方法、ファームウェアのダウンロードシステム、およびプログラムを提供することにある。
本発明の第1の観点は、上位装置に接続され、動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置であって、前記ダウンロードファイルの識別情報を格納可能な識別情報格納部と、少なくともプログラムデータを書き換え可能に格納するプログラム格納部と、前記プログラム格納部に格納されている前記プログラムデータの書き換えを制御する制御部と、を有し、前記ダウンロードファイルには、当該ダウンロードファイルの識別情報、および前記制御部に、前記プログラム格納部に格納されているプログラムデータを書き換えることを許可する書き換え許可データのうちの少なくとも前記識別情報を含み、前記制御部は、前記ダウンロードファイルに前記書き換え許可データが含まれている場合には、正常書き換えとして、前記プログラム格納部に格納されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、前記データ書き換えの正常完了応答を前記上位装置へ返し、前記ダウンロードファイルに前記書き換え許可データが含まれていない場合には、疑似書き換えとして、前記プログラム格納部に格納されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返し、前記ダウンロードファイルの前記識別情報を前記識別情報格納部に格納する。
本発明の第2の観点は、上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置の制御方法において、前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを許可させるための書き換え許可データが、前記上位装置からダウンロードされるダウンロードファイルに含まれているか否かを判別する書き換え許可判別ステップと、前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書き換えの正常完了応答を前記上位装置へ返す正常書き換えステップと、前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返す疑似書き換えステップと、前記ダウンロードファイルに含まれる当該ダウンロードファイルの識別情報を前記周辺装置の識別情報格納部に格納する識別情報格納ステップと、前記上位装置から前記識別情報の送信要求を受けた場合、前記識別情報格納部に格納されている前記識別情報を前記上位装置へ返す識別情報返信ステップとを有する。
本発明の第3の観点のファームウェアのダウンロードシステムは、少なくとも一つの周辺装置と、前記周辺装置が接続され、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記周辺装置へダウンロード可能な上位装置と、を有し、前記周辺装置は、少なくとも上述した周辺装置により構成されている。
本発明の第4の観点は、上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置の制御処理を実行する制御部のプログラムにおいて、前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを許可させるための書き換え許可データが、前記上位装置からダウンロードされるダウンロードファイルに含まれているか否かを判別する書き換え許可判別処理と、前記書き換え許可判別処理で、前記書き換え許可データが前記ダウンロードファイルに含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書き換えの正常完了応答を前記上位装置へ返す正常書き換え処理と、前記書き換え許可判別処理で、前記書き換え許可データが前記ダウンロードファイルに含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返す疑似書き換え処理と、前記ダウンロードファイルに含まれる当該ダウンロードファイルの識別情報を前記周辺装置の識別情報格納部に格納する識別情報格納処理と、前記上位装置から前記識別情報の送信要求を受けた場合、前記識別情報格納部に格納されている前記識別情報を前記上位装置へ返す識別情報返信処理とを有する周辺装置の制御処理を実行する制御部のプログラムである。
本発明によれば、旧型の周辺装置に対応したプログラムデータが上位装置からダウンロードされることを防止しつつ、周辺装置を含むシステムのダウンを回避することが可能となる。
本発明の実施形態に係るファームウェアのダウンロードシステムの概略構成を示すブロック図である。 図1に示す上位装置に記憶されるダウンロードファイルのデータ構造の一例を示す概念図である。 図1に示す上位装置に接続されるカードリーダと上位装置に記憶されるダウンロードファイルとの組み合わせパターンを説明するための概念図である。 図1に示す上位装置における、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。 図1に示すカードリーダにおける、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。 本発明の他の実施形態に係るダウンロードファイルのデータ構造の一例を示す概念図である。 本発明の他の実施形態に係るカードリーダにおける、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。 本発明の他の実施形態に係るファームウェアのダウンロードシステムの概略構成を示すブロック図である。 本発明のさらに他の実施形態に係るファームウェアのダウンロードシステムの概略構成を示すブロック図である。
以下、本発明の実施形態を図面に関連付けて説明する。
<ファームウェアのダウンロードシステムの構成>
図1は、本発明の実施形態に係るファームウェアのダウンロードシステム10の概略構成を示すブロック図である。
図2は、図1に示す上位装置20に記憶されるダウンロードファイルのデータ構造の一例を示す概念図である。
図3は、図1に示す上位装置20に接続されるカードリーダ30と上位装置20に記憶されるダウンロードファイルとの組合せパターンを説明するための概念図である。
本実施形態のファームウェアのダウンロードシステム10(以下、「ダウンロードシステム10」という)は、図1に示すように、ホストコンピュータ等の上位装置20、および上位装置20に通信可能に接続される周辺装置としてのカードリーダ30(30A,30B)を有している。
上位装置20とカードリーダ30とは、RS232CやUSB(Universal Serial Bus)等の通信インタフェースを介して通信可能に接続されている。
このダウンロードシステム10は、周辺装置としてのカードリーダ30を動作させるファームウェアのプログラムデータ231(図2参照)を上位装置20からカードリーダ30へダウンロードする。
本実施形態のダウンロードシステム10においては、一例として、機能を向上させたり、使用されている部品の製造中止に対処したりするために製造された新型のカードリーダ30である第1カードリーダ30Aと、第1カードリーダ30Aよりも旧型のカードリーダ30である第2カードリーダ30Bとが、上位装置20に接続可能となっている。
本実施形態において、上位装置20には、たとえば、第1カードリーダ30Aまたは第2カードリーダ30Bのいずれか1台が接続される。
本実施形態の第1カードリーダ30Aは周辺装置(第1周辺装置)に相当し、第2カードリーダ30Bは第2周辺装置に相当する。
[上位装置の構成例]
上位装置20は、ダウンロード制御部21、およびハードディスクドライブ等の外部記憶部22を含んで構成されている。
ダウンロード制御部21は、上位装置20内の通信機能部や制御用プログラム等を含んで構成されている。
ダウンロード制御部21は、カードリーダ30にプログラムデータ231(図2)をダウンロードするための制御を行う。
また、外部記憶部22には、プログラムデータ231を含むダウンロードファイル23が記憶されている。
本実施形態では、上位装置20の外部記憶部22には、一例として、第1カードリーダ30Aに対応するプログラムデータ231を含むダウンロードファイル23A(図3(A)、(C)参照)、または、第2カードリーダ30Bに対応するプログラムデータ231を含むダウンロードファイル23B(図3(B)、(D)参照)のいずれかが記憶される。
<ダウンロードファイルの構造例>
ここで、本実施形態に係るダウンロードファイル23の構造例について図2に関連付けて説明する。
ダウンロードファイル23は、図2の例では、プログラムデータ231に加えて、1行目のレビジョン情報(レビジョン・ヘッダ)232、2行目のイレースコマンド233、3行目以降の各行のプログラムデータ231の先頭に配置されたダウンロードコマンド234、および最終行のEOF(End Of File mark、ファイル末端コード)235が記述(記載)されている。
すなわち、図2の例では、ダウンロードファイル23において、レビジョン情報232は、ダウンロードファイル23の1行目に記述され、イレースコマンド233は、ダウンロードファイル23の2行目に記述されている。
ダウンロードコマンド234およびプログラムデータ231は、ダウンロードファイル23の3行目以降に記述され、EOF235は、ダウンロードファイル23の最終行に記述されている。
レビジョン情報232は、ダウンロードファイル23におけるプログラムデータ231の改訂情報である。
レビジョン情報232のフォーマットは、たとえば、上位装置20がカードリーダ30に対してプログラムデータのレビジョン取得コマンドを発行した場合に得られるカードリーダ30からのレスポンス(応答)と、同一フォーマットとなっている。
レビジョン取得コマンドは、カードリーダ30に記憶されているプログラムデータのレビジョン情報を取得するためのコマンドである。
なお、ダウンロードファイル23の先頭行(1行目)のレビジョン情報(レビジョン・ヘッダ)232は、上位装置20用の情報で、基本的に周辺装置であるカードリーダ30には送信されない。
イレースコマンド233は、カードリーダ30の後述するプログラム格納部としてのファームウェア格納部の中の指定した領域を消去(イレース)するためのコマンドである。
ダウンロードファイル23の中の3行目以降の各行のプログラムデータ231のそれぞれは、上位装置20とカードリーダ30との間の通信プロトコルに適合した規定のデータ形式およびデータ長に予め整形されており、かつ、ダウンロードコマンド234にセットされている。
また、図2の例では、たとえば、3行目のプログラムデータ231に(プログラムデータとしては1行目に)、ダウンロード先のカードリーダ30で、プログラムデータの書き換えることを許可する書き換え許可データ236が記述されている。
本実施形態では、たとえば第1カードリーダ30Aに対応するプログラムデータ231を含むダウンロードファイル23Aの中の3行目のプログラムデータ231には、カードリーダ30Aに記憶されているプログラムデータを外部記憶部22に記憶されるダウンロードファイル23Aのプログラムデータ231に書き換えることを、カードリーダ側の書き換え制御部に許可させるための書き換え許可データ236が記述されている。
一方、第2カードリーダ30Bに対応するプログラムデータ231を含むダウンロードファイル23Bの中の3行目のプログラムデータ231には、この書き換え許可データ236が記述されていない。
なお、書き換え許可データ236は、暗号化された暗号文によってプログラムデータ231の中に記述されても良いし、暗号化されていない平文によってプログラムデータ231の中に記述されても良い。
さらに、図2の例では、5行目のプログラムデータ231に(プログラムデータとしては3行目に)、ダウンロードするダウンロードファイル23の識別情報(識別用ID)237が記述(記載)されている。
なお、識別情報237は、暗号化された暗号文によってプログラムデータ231の中に記述されても良いし、暗号化されていない平文によってプログラムデータ231の中に記述されても良い。
本実施形態においては、レビジョン情報(レビジョン・ヘッダ)232と識別情報(識別用ID)237とは同じデータを使用している。
図2はあくまでも一例であり、プログラムデータ231中に記述される書き換え許可データ236や識別情報237は、あらかじめ設定した所定の位置に配置されていればよく、上位装置20やカードリーダ30側で早期に認識して取得可能なように、プログラムデータ231の先頭の方に配置されることが望ましい。
本実施形態において、ダウンロード制御部21は、上位装置20からカードリーダ30へプログラムデータ231をダウンロードする際には、ダウンロードファイル23の1行目から読み込んだレビジョン情報232と、レビジョン取得コマンドの応答として受け取ったカードリーダ30側のプログラムデータのレビジョンが一致しないときにダウンロード処理を実行する。
そして、ダウンロード制御部21は、カードリーダ30側がダウンロードモードに遷移していることを確認し、確認がとれた場合に、ダウンロードファイル23の2行目以降を1行毎に読み込み、読み込んだ1行をコマンドとしてカードリーダ30に対して発行する。
ダウンロード制御部21は、たとえば、読み込んだ1行がダウンロードファイル23の2行目であれば、イレースコマンド233をカードリーダ30に対して発行する。
また、ダウンロード制御部21は、読み込んだ1行がダウンロードファイル23の3行目以降であれば、ダウンロードコマンド234を整形されたプログラムデータ231とともにカードリーダ30に対して発行する。
ダウンロード制御部21は、カードリーダ30の応答に基づいてコマンドが正常に実行されたか否かを正常完了応答の受信の有無に応じて判断する。
書き込み許可データ236および識別情報237のダウンロードに関連した適用のされ方については、後で詳述する。
また、本実施形態のダウンロード制御部21は、状況に応じて、先頭のレビジョン情報(レビジョンヘッダ)行をコマンド化して、識別情報(識別用ID)送付コマンドとして送信する機能を有する。
本実施形態では、ダウンロードファイルのプログラムデータ231の所定位置に識別情報(識別用ID)が配置してあるが、他の周辺装置を含めて考えると、その配置場所は全てで統一されていない。
したがって、本実施形態において、現状では周辺装置に送信されない、識別情報(識別用ID)をテキストにした識別用ID通知コマンドを新設する。
ダウンロード制御部21が、そのような送付コマンドを生成する処理等をして送信し、そのコマンドに正常応答の受信で実現する。
[カードリーダ(周辺装置)の構成例]
カードリーダ30は、たとえば、カードを手動で移動させながらカードに記録された磁気データの読取り等を行う手動式のカードリーダ、あるいは、カードの搬送機構によってカードを搬送させながらカードに記録された磁気データの読取り等を行うカード搬送式のカードリーダにより構成される。
基本的に、カードリーダ30は、カードリーダ制御部31および識別情報格納部32を主構成要素として有している。
カードリーダ制御部31は、ROM、RAM、不揮発性メモリ等の記憶手段やCPU等の演算手段等を含んで構成され、カードリーダ30の全体の動作等を制御する。
カードリーダ制御部31は、図1に示すように、プログラム格納部としてのファームウェア格納部311および書き換え制御部312を有する。
ファームウェア格納部311は、プログラムデータを含むファームウェアが格納(記憶)される。
ファームウェア格納部311は、メモリ等により構成され、プログラムデータを書き換え可能に格納(記憶)する。
また、ファームウェア格納部311は、格納しているプログラムデータのレビジョン情報を格納(記憶)する。
書き換え制御部312は、ファームウェア格納部311に格納されているプログラムデータの書き換えを制御する。
識別情報格納部32は、カードリーダ制御部31に含まれる形で配置され、カードリーダ制御部31、本実施形態では書き換え制御部312の制御の下、ダウンロードファイル23に記述されている識別情報が消去可能に格納される。この制御については後述する。
以上は、カードリーダ30の基本的な構成例であるが、新型の第1カードリーダ30Aと旧型の第2カードリーダ30Bの場合も、基本的に同様の機能を含んで同様に構成される。ただし、旧型の第2カードリーダ30Bには、識別情報格納部32は配置されていない。
すなわち、カードリーダ30Aは、カードリーダ制御部31Aおよび識別情報格納部32Aを主構成要素として有している。
カードリーダ制御部31Aは、ROM、RAM、不揮発性メモリ等の記憶手段やCPU等の演算手段等を含んで構成され、カードリーダ30Aの全体の動作等を制御する。
カードリーダ制御部31Aは、図1に示すように、プログラム格納部としてのファームウェア格納部311Aおよび書き換え制御部312Aを有する。
ファームウェア格納部311Aは、プログラムデータを含むファームウェアが格納(記憶)される。
ファームウェア格納部311Aは、メモリ等により構成され、プログラムデータを書き換え可能に格納(記憶)する。
また、ファームウェア格納部311Aは、格納しているプログラムデータのレビジョン情報を格納(記憶)する。
書き換え制御部312Aは、ファームウェア格納部311Aに格納されているプログラムデータの書き換えを制御する。
識別情報格納部32Aは、カードリーダ制御部31Aに含まれる形で配置され、カードリーダ制御部31A、本実施形態では書き換え制御部312Aの制御の下、ダウンロードファイル23に記述されている識別情報が消去可能に格納される。
同様に、カードリーダ30Bは、カードリーダ制御部31Bを主構成要素として有している。
カードリーダ制御部31Bは、ROM、RAM、不揮発性メモリ等の記憶手段やCPU等の演算手段等を含んで構成され、カードリーダ30Bの全体の動作等を制御する。
カードリーダ制御部31Bは、図1に示すように、プログラム格納部としてのファームウェア格納部311Bおよび書き換え制御部312Bを有する。
ファームウェア格納部311Bは、プログラムデータを含むファームウェアが格納(記憶)される。
ファームウェア格納部311Bは、メモリ等により構成され、プログラムデータを書き換え可能に格納(記憶)する。
また、ファームウェア格納部311Bは、格納しているプログラムデータのレビジョン情報を格納(記憶)する。
書き換え制御部312Bは、ファームウェア格納部311Bに格納されているプログラムデータの書き換えを制御する。
なお、識別情報237を格納する識別情報格納部32(A)は、たとえばフラッシュメモリ等の不揮発性メモリにより構成される。
また、図1の例では、ファームウェア格納部311(A,B)はカードリーダ制御部31(A,B)に含まれるような構成として示されているが、カードリーダ制御部31(A,B)の書き換え制御部312の制御下にあればよく、図1の構成に限定されるものではない。
また、カードリーダ制御部31(A)および書き換え制御部312(A)の少なくとも一方により、本発明に係る制御部が構成される。
次に、カードリーダ30を例に、本実施形態に係るカードリーダ30側におけるダウンロードファイルのダウンロードの制御処理について説明する。
カードリーダ30のカードリーダ制御部31は、上位装置20からダウンロードされるダウンロードファイル23に、書き換え制御部312に対して、ファームウェア格納部311に格納されているプログラムデータを書き換えることを許可する書き換え許可データ236が含まれている場合には、次の処理を行う。
この場合、カードリーダ制御部31は、正常書き換えとして、プログラム格納部としてのファームウェア格納部311に格納されているプログラムデータを上位装置20から送られるプログラムデータ231に書き換えて、データ書き換えの正常完了応答を上位装置20へ返す。
カードリーダ制御部31は、上位装置20からダウンロードされるダウンロードファイル23に書き換え許可データが含まれていない場合には、次の処理を行う。
この場合、カードリーダ制御部31は、疑似書き換えとして、プログラム格納部としてのファームウェア格納部311に格納されているプログラムデータを上位装置20から送られるプログラムデータに書き換えずに、データ書き換えの正常完了応答を上位装置20へ返す。
カードリーダ制御部31は、書き換え処理と並行して、受信したダウンロードファイル23に記述されている識別情報237を取得(抽出)して識別情報格納部32に格納する。
本実施形態において、カードリーダ制御部31は、上記した疑似書き換え時に、ダウンロードファイル23に含まれる識別情報237を取得して識別情報格納部32に格納する。
そして、カードリーダ制御部31は、上位装置20から識別情報の送信要求を受けた場合、識別情報格納部32に格納されている識別情報を上位装置20へ返す。
また、本実施形態において、カードリーダ制御部31は、上記した正常書き換え時において、上位装置20からダウンロードされるダウンロードファイル23を正常に受信した場合に識別情報格納部32に格納されている識別情報を消去する。
なお、ここでは、上位装置20からダウンロードされるダウンロードファイル23を正常に受信した場合に識別情報格納部32に格納されている識別情報を消去することを一例として挙げている。この場合、識別情報格納部32に格納されている識別情報の取得(読み取り)を不可とできればよく、識別情報の格納領域へのアクセスを以降禁止するなど、消去の他にも種々の態様が可能である。
カードリーダ制御部31は、正常書き換えを行った場合に、上位装置20から識別情報の送信要求を受けた場合、正当な(通常の)識別情報を上位装置20へ返す。
すなわち、本実施形態のカードリーダ30において、カードリーダ制御部31が、ダウンロードファイルのダウンロード時に以下の制御を行う。
(1)ダウンロードの可能性がある、旧仕様用(旧型)のダウンロードファイルを受信した場合、正常にコマンドを受信したと上位装置20に疑似的にレスポンス(応答)を返すだけでなく、受信データの中から、その無効扱いの識別情報237を抽出(取得)し、周辺装置であるカードリーダ30内の不揮発性メモリ等の識別情報格納部32内に保持する。
そして、識別情報格納部32に無効扱いの識別情報が記憶されているときには、要求に応じて識別情報として返す。
(2)新仕様用のダウンロードファイルを正常受信時は、まず、識別情報格納部32の無効扱いの識別情報の格納場所を消去する。
すなわち、起動時に無効扱いの識別情報の格納場所が消去されていれば、要求に応じて、通常の識別情報を返す。
(3)また、受信するダウンロードファイル23の所定位置に識別情報がない場合は、上述したように、上位装置20が認識可能なダウンロードファイル23の識別情報を、新送付コマンドを用いて周辺装置であるカードリーダ30に送付する。
カードリーダ30は、たとえば新コマンドで受信した識別情報を不揮発性メモリ等の識別情報格納部32内に格納(記憶)し、保持する。
<カードリーダ30におけるダウンロードの具体的な制御処理>
[本実施形態ではない通常処理の場合]
通常は、まず「イレース」コマンド受信でファームウェア格納部311のプログラムデータが格納されている書き換え領域(エリア)を消去し、「ダウンロード」コマンド受信で書き込みを行う。
[本実施形態の処理]
本実施形態では、以下の(1)〜(5)に示すような処理が行われる。
(1)「イレース」コマンド受信時にはファームウェア格納部311のプログラムデータが格納されている書き換えエリアを消去せず、最初の「ダウンロード」コマンド受信時に、そのコマンドのプログラムデータ231内に組み込まれた書き換え許可データ(照合用IDデータ)236による判定を行う。
そして、そのプログラムデータ231の正当性を確認すれば(正常書き換えの場合)、ファームウェア格納部311の書き換えエリアのプログラムデータおよび不揮発性メモリ等の識別情報格納部32の識別情報を消去し、最初の「ダウンロード」コマンドのプログラムデータを書き込む。
(2)書き換え許可データ(照合用IDデータ)による判定で正当性が確認できなかった場合、本実施形態では、書き込むべきダウンロードファイルではないと判断され、「イレース」や「ダウンロード」コマンドにて書き換えず正常応答だけ返す。
すなわち、このコマンドに対応した処理を行わず、疑似書き換え処理を行う。
(3)この疑似書き換え処理の過程で、受信したダウンロードファイル23の所定位置に組み込まれた識別情報(識別用ID)を取得し、内部に一時的に保持する。
(4)この疑似書き換え処理で、最後まで正常にダウンロードしたかのように振る舞うことになる。
最後まで終了したら、一時的に保持した識別情報(識別用ID)を不揮発性メモリ等の識別情報格納部32に格納(記憶)する。
(5)ダウンロード実施後、不揮発性メモリ等の識別情報格納部32に識別情報(識別用ID)が記録されていた場合、上位装置20からの送信要求に対してその識別情報(識別用ID)を応答として返すようにする。
本実施形態においては、このように、識別情報を用いたダウンロード処理を行うことにより、以下の利点を有する。
上位装置20が新仕様用(新型)のダウンロードファイルに入れ替えられていない場合であっても、送付されたダウンロードファイルに関して疑似書き換えを行うだけでなく、上位装置20から識別情報(識別用ID)の送信要求を受けた場合には、疑似書き換えした無効のダウンロードファイルの識別情報(識別用ID)が返されるので、それ以降のダウンロード処理が起動されず、処理の短縮化が図れる。
上位装置20から識別情報(識別用ID)の送信要求を受けた場合、ダウンロード直後でも疑似書き換えしたダウンロードファイルの識別情報(識別用ID)が返されるので、システム停止を回避することができる。
上位装置20から、適用不可のダウンロードファイルの適用指示を排除するので、自身の動作環境が守られ、継続して使用することが可能となる。
<上位装置20に接続されるカードリーダ30と上位装置20に記憶されるダウンロードファイル23との組合せ>
ところで、本実施形態においては、上述のように、上位装置20には、第1カードリーダ30Aと第2カードリーダ30Bとが接続可能となっている。
また、外部記憶部22には、第1カードリーダ30Aに対応するプログラムデータ231を含むダウンロードファイル23A、または、第2カードリーダ30Bに対応するプログラムデータ231を含むダウンロードファイル23Bが記憶されている。
そのため、上位装置20に接続されるカードリーダ30と上位装置20に記憶されるダウンロードファイル23との組合せとして、図3に示す4つのパターンが考えられる。
すなわち、図3(A)に示すように、上位装置20に第1カードリーダ30Aが接続され、外部記憶部22にダウンロードファイル23Aが記憶されるパターンが考えられる。
図3(B)に示すように、上位装置20に第1カードリーダ30Aが接続され、外部記憶部22にダウンロードファイル23Bが記憶されるパターンが考えられる。
図3(C)に示すように、上位装置20に第2カードリーダ30Bが接続され、外部記憶部22にダウンロードファイル23Aが記憶されるパターンが考えられる。
そして、図3(D)に示すように、上位装置20に第2カードリーダ30Bが接続され、外部記憶部22にダウンロードファイル23Bが記憶されるパターンが考えられる。
なお、外部記憶部22にダウンロードファイル23Aが記憶されている場合、ダウンロードファイル23Aに含まれるプログラムデータ231のレビジョンは、たとえば、図3(A)、(C)に示すように、“Rev.B”である。
また、外部記憶部22にダウンロードファイル23Bが記憶されている場合、ダウンロードファイル23Bに含まれるプログラムデータ231のレビジョンは、たとえば、図3(B)、(D)に示すように、“Rev.b”である。
また、第1カードリーダ30Aのファームウェア格納部311Aに記憶されているプログラムデータのレビジョンは、たとえば、図3(A)、(B)に示すように、“Rev.A” である。
第2カードリーダ30Bのファームウェア格納部311Bに記憶されているプログラムデータのレビジョンは、たとえば、図3(C)、(D)に示すように、“Rev.a”である。
また、本実施形態では、第1カードリーダ30Aに対応するプログラムデータ231が第2カードリーダ30Bにダウンロードされた場合であっても、第2カードリーダ30Bは、正常に動作する。
一方、第2カードリーダ30Bに対応するプログラムデータ231が第1カードリーダ30Aにダウンロードされると、第1カードリーダ30Aは、正常に動作しなくなる。
以下に、本実施形態におけるファームウェアのダウンロード処理を、上位装置20における処理と、周辺装置であるカードリーダ30における処理に分け、それぞれフローチャートに関連付けて説明する。
<ファームウェアのダウンロード処理:上位装置における処理>
まず、上位装置20におけるダウンロード処理を図4に関連付けて説明する。
図4は、図1に示す上位装置20における、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
上位装置20からカードリーダ30へプログラムデータ231をダウンロードする際には、まず、ダウンロード制御部21は、ダウンロードファイル23の1行目を読み込んで、レビジョン情報232を読み取り(ステップST1)、カードリーダ30に対してレビジョン取得コマンドを発行する(ステップST2)。
その後、ダウンロード制御部21は、ダウンロードファイル23から読み取ったレビジョン情報232と、レビジョン取得コマンドに対するカードリーダ30からの応答とを比較する(ステップST3)。
すなわち、ステップST3では、上位装置20に(具体的には、外部記憶部22に)記憶されているダウンロードファイル23に含まれるプログラムデータ231のレビジョンと、カードリーダ30のファームウェア格納部311に記憶されているプログラムデータのレビジョンとを比較する。
ステップST3で、上位装置20に記憶されているダウンロードファイル23に含まれるプログラムデータ231のレビジョンと、ファームウェア格納部311(A,B)に記憶されているプログラムデータのレビジョンとが一致しない場合には(ステップST3で“No”の場合には)、ダウンロード制御部21は、ダウンロード処理を実行するべく、カードリーダ30に対して初期化コマンドを発行する(ステップST4)。
すなわち、たとえばダウンロード制御部21は、図3(A)に示すように、上位装置20(具体的には、外部記憶部22)に記憶されているダウンロードファイル23Aに含まれるプログラムデータ231のレビジョンが“Rev.B”であり、ファームウェア格納部311Aに記憶されているプログラムデータのレビジョンが“Rev.A”である場合に、初期化コマンドを発行する。
また、ダウンロード制御部21は、図3(B)に示すように、上位装置20に記憶されているダウンロードファイル23Bに含まれるプログラムデータ231のレビジョンが“Rev.b”であり、ファームウェア格納部311Aに記憶されているプログラムデータのレビジョンが“Rev.A”である場合に、初期化コマンドを発行する。
また、ダウンロード制御部21は、図3(C)に示すように、上位装置20に記憶されているダウンロードファイル23Aに含まれるプログラムデータ231のレビジョンが“Rev.B”であり、ファームウェア格納部311Bに記憶されているプログラムデータのレビジョンが“Rev.a”である場合に、初期化コマンドを発行する。
また、ダウンロード制御部21は、図3(D)に示すように、上位装置20に記憶されているダウンロードファイル23Bに含まれるプログラムデータ231のレビジョンが“Rev.b”であり、ファームウェア格納部311Bに記憶されているプログラムデータのレビジョンが“Rev.a”である場合に、初期化コマンドを発行する。
上記したような場合に、上位装置20に記憶されているダウンロードファイル23に含まれるプログラムデータ231のレビジョンと、ファームウェア格納部311(A,B)に記憶されているプログラムデータのレビジョンとが一致しないため、ステップST4で、ダウンロード制御部21は、カードリーダ30に対して初期化コマンドを発行する。
その後、ダウンロード制御部21は、この初期化コマンドに対するカードリーダ30のレスポンス(応答)から、カードリーダ30がプログラムデータ231のダウンロードが可能な状態のダウンロードモードであるか否かを判断する(ステップST5)。
ステップST5で、カードリーダ30がダウンロードモードでなければ(ステップST5で“No”の場合には)、ダウンロード制御部21は、カードリーダ30に対してモード切替コマンドを発行して(ステップST6)、カードリーダ30をダウンロードモードに遷移させてからステップST4へ戻る。
一方、ステップST5で、カードリーダ30がダウンロードモードであれば(ステップST5で“Yes”の場合には)、ダウンロード制御部21は、ダウンロードファイル23の2行目以降を1行毎に読み込み(ステップST7)、読み込んだ1行が最終行(EOF235)であるか否かを判断する(ステップST8)。
ステップST8で、読み込んだ1行が最終行でなければ(ステップST8で“No”の場合には)、ダウンロード制御部21は、この読み込んだダウンロードファイル23の1行をコマンドとしてカードリーダ30に対して発行する。
たとえば、読み込んだ1行がダウンロードファイル23の2行目であれば、イレースコマンド233がカードリーダ30に対して発行される。
また、読み込んだ1行がダウンロードファイル23の3行目以降であれば、ダウンロードコマンド234が整形されたプログラムデータ231とともにカードリーダ30に対して発行される。
その後、ダウンロード制御部21は、カードリーダ30の応答に基づいてコマンドが正常に実行されたか否かを判断する(ステップST10)。
カードリーダ30の応答が正常応答であれば(ステップST10で“Yes”の場合には)、ステップST7へ戻り、ダウンロードファイル23の次の行を読み込む。
一方、カードリーダ30の応答が異常応答であれば(ステップST10で“No”の場合には)、ダウンロード制御部21は、プログラムデータ231のダウンロード失敗と判断して、ダウンロード処理を終了する。
なお、この場合には、ダウンロードシステム10がダウンする(ダウンロードシステム10の動作が停止してしまう)ことがある。
また、ステップST8で、ダウンロードファイル23から読み込んだ1行が最終行となると(ステップST8で“Yes”の場合)、プログラムデータ231のダウンロードは正常終了となる。
また、ステップST3で、上位装置20に記憶されているプログラムデータ231のレビジョンと、ファームウェア格納部311(A,B)に記憶されているプログラムデータのレビジョンとが一致している場合には(ステップST3で“Yes”の場合には)、ダウンロード制御部21は、プログラムデータ231のダウンロードは不要と判断して、ダウンロード処理を終了する。
たとえば、図3(A)において、上位装置20に記憶されているプログラムデータ231のレビジョンが“Rev.A”である場合には、上位装置20に記憶されているプログラムデータ231のレビジョンと、ファームウェア格納部311Aに記憶されているプログラムデータのレビジョンとが一致しているため、ダウンロード制御部21は、ダウンロード処理を終了する。
<ファームウェアのダウンロード処理:カードリーダにおける処理>
次に、本実施形態に係る周辺装置であるカードリーダ30におけるダウンロード処理を図5に関連付けて説明する。
図5は、図1に示すカードリーダ30における、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
図3(C)、(D)に示すように、上位装置20に第2カードリーダ30Bが接続されている場合には、ダウンロードファイル23A、23Bのいずれが上位装置20に記憶されている場合であっても、第2カードリーダ30Bでは、ファームウェアのダウンロード時に、通常の(たとえば上述した特許文献1に記載された)カードリーダの処理と同様の処理が行われる。
すなわち、上述のステップST7で読み込まれた1行がダウンロードファイル23の2行目であれば、ステップST9で発行されるイレースコマンド233に基づいて、カードリーダ制御部31Bは、イレースコマンド233を実行する。
具体的には、書き換え制御部312Bが、ファームウェア格納部311Bの中の指定された領域を消去する。
より具体的には、書き換え制御部312Bが、プログラムデータ231に対応するファームウェア格納部311B内のプログラムデータを消去する。
また、カードリーダ制御部31Bは、イレースコマンド233が正常に実行されたとの正常応答をダウンロード制御部21へ返す。
また、ステップST7で読み込まれた1行がダウンロードファイル23の3行目以降であれば、ステップST9で発行されるダウンロードコマンド234に基づいて、カードリーダ制御部31Bは、ダウンロードコマンド234を実行する。
具体的には、書き換え制御部312Bが、上位装置20から送られてくるプログラムデータ231を、ファームウェア格納部311Bの中の指定された領域に格納(記憶)する。
すなわち、書き換え制御部312Bが、上位装置20から送られてくるプログラムデータ231を、ファームウェア格納部311Bに書き込む。また、書き換え制御部312Bは、ダウンロードコマンド234が正常に実行されたとの正常応答をダウンロード制御部21へ返す。
一方、図3(A)、(B)に示すように、上位装置20に第1カードリーダ30Aが接続されている場合には、第1カードリーダ30Aでは、ファームウェアのダウンロード時に、通常の(たとえば上述した特許文献1に記載されたカードリーダ)の処理と異なる処理が行われる。
具体的には、第1カードリーダ30Aでは、図5に示すフローに従って、以下のように処理が行われる。
上述のステップST7で読み込まれた1行がダウンロードファイル23の2行目であって、ステップST9で発行されたダウンロードファイル23の2行目、すなわちイレースコマンド233を書き換え制御部312Aが受信する(ステップST21)。
書き換え制御部312Aは、この2行目のイレースコマンド233を実行せずに、イレースコマンド233が正常に実行されたとの正常応答をダウンロード制御部21へ返す(ステップST22)。
すなわち、ステップST22では、書き換え制御部312Aが、ファームウェア格納部311Aに記憶されているプログラムデータを消去することなく、イレースコマンド233が正常に実行されたとの正常応答をダウンロード制御部21へ返す。
その後、ステップST9で発行されたダウンロードファイル23の3行目、すなわちダウンロードコマンド234およびプログラムデータ231を書き換え制御部312Aが受信する(ステップST23)。
書き換え制御部312Aは、3行目のプログラムデータ231に書き換え許可データ236が記述されているか否かを判断する(ステップST24)。
すなわち、ステップST24において、書き換え制御部312Aは、上位装置20に記憶されているプログラムデータ231が第1カードリーダ30Aに対応するプログラムデータ231であるか否かを判別する。
たとえば、図3(A)に示すように、上位装置20にダウンロードファイル23Aが記憶されており、ステップST24で、3行目のプログラムデータ231に書き換え許可データ236が記述されている場合、カードリーダ制御部31Aおよび書き換え制御部312Aは、次の処理を行う。
すなわち、ダウンロードファイル23Aに書き換え許可データ236が含まれている場合(ステップST24で“Yes”の場合)には、カードリーダ制御部31Aの書き換え制御部312Aが、不揮発性メモリである識別情報格納部32Aの識別情報(識別用ID)の格納領域を消去する(ステップST25)。
この場合、カードリーダ制御部31Aあるいは書き換え制御部312Aが、識別情報格納部32Aに識別情報(識別用ID)が実際に格納されている場合に消去を行うように構成する、あるいは、無条件に識別情報格納部32Aの識別情報の格納領域を消去するように構成する等、種々の態様が可能である。
そして、ダウンロードファイル23に書き換え許可データ236が含まれていることから、書き換え制御部312Aは、ダウンロードファイル23Aの2行目のコマンドおよび3行目のコマンド、すなわち、イレースコマンド233およびダウンロードコマンド234を実行する。そして、書き換え制御部312Aは、ダウンロードコマンド234が正常に実行されたとの正常応答をダウンロード制御部21へ返す(ステップST26)。
具体的には、ステップST26で、書き換え制御部312Aが、ファームウェア格納部311Aに記憶されているプログラムデータを消去し、かつ、上位装置20から送られてくるプログラムデータ231をファームウェア格納部311Aの中の指定された領域に格納(記憶)して、正常応答をダウンロード制御部21へ返す。
なお、ステップST25における識別情報格納部32Aに対する消去処理と、ステップST26におけるダウンロードファイル23Aの2行目のイレースコマンド233に応答したファームウェア格納部311Aの所定領域に対する消去処理は、いずれか先であっても後であっても良い。
その後、書き換え制御部312Aは、ダウンロードファイル23Aの4行目以降を順次、受信し(ステップST27)、受信した行のダウンロードコマンド234を順次、実行する(ステップST28)。
すなわち、書き換え制御部312Aは、上位装置20から送られてくるプログラムデータ231をファームウェア格納部311Aの中の指定された領域に格納(記憶)して、ダウンロードコマンド234が正常に実行されたとの正常応答をダウンロード制御部21へ返す(ステップST28)。
一方、図3(B)に示すように、上位装置20にダウンロードファイル23Bが記憶されており、ステップST24で、3行目のプログラムデータ231に書き換え許可データ236が記述されていない場合、カードリーダ制御部31Aおよび書き換え制御部312Aは、次の処理を行う。
すなわち、ダウンロードファイル23Bに書き換え許可データ236が含まれていない場合(ステップST24で“No”の場合)には、書き換え制御部312Aは、ダウンロードファイル23Bの3行目のコマンド、すなわち、ダウンロードコマンド234を実行せずに、ダウンロードコマンド234が正常に実行されたとの正常応答をダウンロード制御部21へ返す(ステップST29)。
具体的には、ステップST29では、書き換え制御部312Aが、上位装置20から送られてくるプログラムデータ231をファームウェア格納部311Aに格納(記憶)せずに、正常応答をダウンロード制御部21へ返す。
その後、書き換え制御部312Aは、ダウンロードファイル23Bの4行目以降を順次、受信する(ステップST30)。
次に、書き換え制御部312Aは、受信したダウンロードファイル23Bに識別情報237が有るか否か(含まれているか否か)の判別を行う(ステップST31)。
ダウンロードファイル23Bに識別情報237が含まれている場合(ステップST31で“Yes”の場合)には、書き換え制御部312Aは、受信したプログラムデータ231の中から、識別情報(識別用ID)237を抽出して取得し(ステップST32)、内部のメモリやレジスタ等に一時的に保持する(ステップST33)。
ここで取得し、保持するダウンロードファイル23Bの識別情報237は、第1カードリーダ30Aに対して無効扱いされるダウンロードファイル23Bの識別情報である。
ステップST33の処理後、あるいはダウンロードファイル23Bに識別情報237が含まれていない場合(ステップST31で“No”の場合)には、書き換え制御部312Aは、受信した行のダウンロードコマンド234を実行せずに、擬似的な書き換え処理を行って、ダウンロードコマンド234が正常に実行されたとの正常応答(擬似応答)をダウンロード制御部21へ返す(ステップST34)。
そして、書き換え制御部312Aは、ステップST34においてダウンロードファイル23Bの最終行まで上記擬似書き換え処理を行ってダウンロードコマンド234が正常に実行されたとの正常応答(擬似応答)をダウンロード制御部21へ返した後、ステップST33で内部に一時的に保持していた無効扱いの識別情報237を識別情報格納部32Aに格納(記憶)する(ステップST35)。
たとえば、ステップST35の処理後に上位装置20から識別情報の送信要求を受けた場合(ステップST36)、カードリーダ制御部31Aあるいは書き換え制御部312Aは、識別情報格納部32Aに格納されている無効扱いの識別情報を上位装置20に返す(ステップST37)。
また、ステップST36で上位装置20からの送信要求がない場合(ステップST36で“No”の場合)、ステップST37の処理を実行せず上位装置20からの次のステップ待ちとなる。
また、ステップST28の処理後に上位装置20から識別情報の送信要求を受けた場合(ステップST38)、このとき、識別情報格納部32Aには識別情報が格納されておらず、カードリーダ制御部31Aあるいは書き換え制御部312Aは、正常なダウンロードファイル23Aに記述されていた正当な識別情報を上位装置20に返す(ステップST39)。
また、ステップST38で上位装置20からの送信要求がない場合(ステップST38で“No”の場合)、ステップST39の処理を実行せず上位装置20からの次のステップ待ちとなる。
本実施形態のステップST24は、書き換え許可データ236がダウンロードファイル23に含まれているか否かを判別する書き換え許可判別ステップである。
また、本実施形態のステップST26、ST28は、書き換え許可データ236がダウンロードファイル23に含まれている場合に、カードリーダ30に記憶されているプログラムデータを上位装置20から送られるプログラムデータ231に書き換えて、データ書換えの正常完了応答を上位装置20へ返す正常書き換えステップである。
本実施形態のステップST29、ST34は、書き換え許可データ236がダウンロードファイル23に含まれていない場合に、カードリーダ30に記憶されているプログラムデータを上位装置20から送られるプログラムデータ231に書き換えずに、データ書換えの正常完了応答を上位装置20へ返す擬似書き換えステップである。
さらに、本実施形態のステップST35は、ダウンロードファイル23に含まれるこのダウンロードファイルの識別情報237をカードリーダ30の識別情報格納部32に格納する識別情報格納ステップである。
本実施形態のステップST37は、上位装置20から識別情報の送信要求を受けた場合、識別情報格納部32に格納されている識別情報を上位装置20へ返す識別情報返信ステップである。
<本実施形態の主な効果>
以上説明したように、本実施形態によれば、ダウンロードファイル23に書き換え許可データ236が含まれている場合には、カードリーダ30に記憶されているプログラムデータが上位装置20から送られてくるプログラムデータ231に書き換えられる。
一方、ダウンロードファイル23に書き換え許可データ236が含まれていない場合には、カードリーダ30に記憶されているプログラムデータが上位装置20から送られてくるプログラムデータ231に書き換えられない。
すなわち、本実施形態によれば、基本的に、第1カードリーダ30Aに対応するプログラムデータ231が上位装置20に記憶されている場合には、第1カードリーダ30Aに記憶されているプログラムデータが上位装置20から送られてくるプログラムデータ231に書き換えられる。
一方、第2カードリーダ30Bに対応するプログラムデータ231が上位装置20に記憶されている場合には、第1カードリーダ30Aに記憶されているプログラムデータが上位装置20から送られてくるプログラムデータ231に書き換えられない。
そのため、本実施形態によれば、旧型の第2カードリーダ30Bに対応するプログラムデータ231が上位装置20から新型の第1カードリーダ30Aにダウンロードされることを防止することができる。
したがって、本実施形態によれば、旧型の第2カードリーダ30Bに対応するプログラムデータ231が第1カードリーダ30Aにダウンロードされて、第1カードリーダ30Aが正常に動作しなくなるといった不具合を回避することが可能になる。
本実施形態によれば、ダウンロードファイル23に書き換え許可データ236が含まれておらず、第1カードリーダ30Aに記憶されているプログラムデータが上位装置20から送られるプログラムデータ231に書き換えられない場合、すなわち、イレースコマンド233およびダウンロードコマンド234を書き換え制御部312が実行しない場合であっても、書き換え制御部312は、データ書き換えの正常完了応答を上位装置20へ返している。
そのため、上位装置20から第1カードリーダ30Aへプログラムデータ231がダウンロードされなくても、上位装置20のダウンロード処理を正常に終了させることができる。したがって、本実施形態では、ダウンロードシステム10のダウンを回避することが可能になる。
本実施形態によれば、上位装置20に第2カードリーダ30Bが接続されている場合、第2カードリーダ30Bは、ダウンロードファイル23に書き換え許可データ236が含まれるか否かを判別せずに、第2カードリーダ30Bに記憶されているプログラムデータを上位装置20から送られるプログラムデータ231に書き換えている。
そのため、第1カードリーダ30Aに対応するプログラムデータ231が上位装置20に記憶されている場合には、このプログラムデータ231によって、第2カードリーダ30Bを動作させることができる。
すなわち、本実施形態によれば、第1カードリーダ30Aに対応する1個のプログラムデータ231によって、第1カードリーダ30Aおよび第2カードリーダ30Bを動作させることができる。
また、第2カードリーダ30Bに対応するプログラムデータ231が上位装置20に記憶されている場合には、このプログラムデータ231は、第2カードリーダ30Bにはダウンロードされるが、第1カードリーダ30Aにはダウンロードされない。
そのため、第1カードリーダ30Aに対応するプログラムデータによって第1カードリーダ30Aを動作させ、かつ、第2カードリーダ30Bに対応するプログラムデータによって第2カードリーダ30Bを動作させることができる。
したがって、本実施形態よれば、上位装置20に記憶されているプログラムデータ231が1個であっても、第1カードリーダ30Aおよび第2カードリーダ30Bを適切に動作させることが可能になる。
このように、本実施形態によれば、上位装置20に記憶されているプログラムデータ231が1個であっても、第1カードリーダ30Aおよび第2カードリーダ30Bを適切に動作させることが可能になる。このため、上位装置20に第1カードリーダ30Aが接続されるのか、あるいは、第2カードリーダ30Bが接続されるのかによって、上位装置20を変更する必要がなくなる。
したがって、本実施形態では、ダウンロードシステム10を使用するユーザの利便性を高めることが可能になる。
さらに、本実施形態によれば、ダウンロードファイル23のプログラムデータ231に、書き換え許可データ236の他に、識別情報(識別用ID)237が記述(記載)されており、カードリーダ30において、カードリーダ制御部31が、ダウンロードファイルのダウンロード時に以下の制御を行う。
すなわち、ダウンロードの可能性がある、旧仕様用(旧型)のダウンロードファイルを受信した場合、正常にコマンドを受信したと上位装置20に疑似的にレスポンス(応答)を返すだけでなく、受信データの中から、その無効扱いの識別情報237を抽出し、周辺装置であるカードリーダ30内の不揮発性メモリ等の識別情報格納部32内に保持する。
そして、識別情報格納部32に無効扱いの識別情報が記憶されているときには、上位装置20からの識別情報の送信要求に応じて識別情報として返す。
新仕様用(新型)のダウンロードファイルを正常受信時は、まず、識別情報格納部32の無効扱いの識別情報の格納場所を消去する。
すなわち、起動時に無効扱いの識別情報の格納場所が消去されていれば、上位装置20からの識別情報の送信要求に応じて、上位装置20には通常の(正当な)識別情報が返される。
したがって、本実施形態によれば、さらに以下の効果を得ることが可能となる。
すなわち、上位装置が新仕様用のダウンロードファイルに入れ替えられていない場合であっても、送付されたダウンロードファイル23を擬似的に書き換えた振りをして、正常応答を返すだけでなく、上位装置20から識別情報(認識用ID)の送信要求を受けた場合には、擬似書き換えを行ったダウンロードファイルの識別情報(識別用ID)が返されるので、それ以降のダウンロード処理が起動されず、処理の短縮化が図れる。
上位装置20から識別情報(認識用ID)の送信要求を受けた場合、ダウンロード直後でも擬似書き換えを行ったダウンロードファイルの識別情報(識別用ID)が返されるので、システム停止を回避することができる。
上位装置20から、適用不可のダウンロードファイルの適用指示を排除するので、自身の動作環境が守られ、継続して使用することが可能となる。
さらに、本実施形態によれば、受信するダウンロードファイル23の所定位置に識別情報がない場合は、上述したように、上位装置20が認識可能なダウンロードファイル23の識別情報を、新送付コマンドを用いて周辺装置であるカードリーダ30に送付する。
カードリーダ30は、新コマンドで受信した識別情報を不揮発性メモリ等の識別情報格納部32内に格納(記憶)し、保持する。
基本的に、本実施形態では、ダウンロードファイルの所定位置に識別情報(識別用ID)が配置してあるが、他の周辺装置を含めて考えると、その配置場所は全てで統一されていない場合が有り、このような場合に適応することが可能となる。
<ダウンロードファイルおよびダウンロード方法の変形例>
次に、他の実施形態として、ダウンロードファイルおよびダウンロード方法の変形例について説明する。
図6は、本発明の他の実施形態に係るダウンロードファイル23のデータ構造の一例を示す概念図である。
上述した実施形態では、図2に示すように、ダウンロードファイル23に、カードリーダ30に記憶されているプログラムデータを上位装置20に記憶されているプログラムデータ231に書き換えても良いか否かを判別するための書き換え照合コマンド238が含まれていない。
これに対して、この他の実施形態においては、図6に示すように、ダウンロードファイル23(C)に書き換え照合コマンド238が含まれていても良い。図6の例では、プログラムデータ231に書き換え許可データ236は記述されていない。
この場合には、たとえば、書き換え照合コマンド238に、カードリーダ30に記憶されているプログラムデータを外部記憶部22に記憶されるプログラムデータ231に書き換えることを、カードリーダ30側の書き換え制御部312に許可させるための書き換え許可データが付されている。
また、第1カードリーダ30Aに対応するダウンロードファイル23Aの書き換え照合コマンド238に付される書き換え許可データと、第2カードリーダ30Bに対応するダウンロードファイル23Bの書き換え照合コマンド238に付される書き換え許可データとは異なっている。
この変形例に係るダウンロードファイル23(C)では、図6に示すように、書き換え照合コマンド238は、ダウンロードファイル23(C)の2行目に記述され、イレースコマンド233は、ダウンロードファイル23の3行目に記述され、ダウンロードコマンド234およびプログラムデータ231は、ダウンロードファイル23(C)の4行目以降に記述されている。
また、書き換え制御部312Aには、ダウンロードファイル23Aの書き換え照合コマンド238に付される書き換え許可データに一致する、または、この書き換え許可データに1対1で対応する許可データが記憶されている。
書き換え制御部312Bには、ダウンロードファイル23Bの書き換え照合コマンド238に付される書き換え許可データに一致する、または、この書き換え許可データに1対1で対応する許可データが記憶されている。
<本他の実施形態のカードリーダ30におけるダウンロードの具体的な制御処理>
[他の実施形態ではない通常処理の場合]
通常は、まず「照合」コマンドで書き換え(書き込み)照合を行い、照合がとれれば「イレース」コマンド受信でファームウェア格納部311のプログラムデータが格納されている書き換え領域(エリア)を消去し、「ダウンロード」コマンド受信で書き込みを行う。
[本他の実施形態の処理]
本実施形態では、以下の(1)〜(6)に示すような処理が行われる。
(1)「照合」コマンドで書き換え(書き込み)照合が取れた場合(正常書き換えの場合)、「イレース」コマンド受信時にはファームウェア格納部311のプログラムデータが格納されている書き換えエリアを消去し、かつ、不揮発性メモリ等の識別情報格納部32の識別情報を消去し、次からの「ダウンロード」コマンドでプログラムデータの書き込みを行う。
(2)「照合」コマンドで書き換え(書き込み)照合が取れないだけではなく、旧型製品(旧型カードリーダ)を指定するものであると、カードリーダ制御部31で判断された場合には、書き込みをすべきダウンロードファイルではないと判断され、次の「イレース」や「ダウンロード」コマンドにて書き換えず正常応答だけ返す。
すなわち、このコマンドに対応した処理を行わず、疑似書き換え処理を行う。
(3)この疑似書き換え処理の過程で、受信したダウンロードファイル23の所定位置に組み込まれた識別情報(識別用ID)を取得し、内部に一時的に保持する。
(4)この疑似書き換え処理で、最後まで正常にダウンロードしたかのように振る舞うことになる。
最後まで終了したら、一時的に保持した識別情報(識別用ID)を不揮発性メモリ等の識別情報格納部32に格納(記憶)する。
(5)ダウンロード実施後、不揮発性メモリ等の識別情報格納部32に識別情報(識別用ID)が記録されていた場合、その識別情報(識別用ID)を応答として返すようにする。
(6)「照合」コマンドの書き換え(書き込み)照合が取れず、旧型機種用でもない場合には、上位装置20に異常応答を返す。
<他の実施形態におけるファームウェアのダウンロード処理:カードリーダにおける処理>
次に、本他の実施形態に係る周辺装置であるカードリーダ30におけるダウンロード処理を図7に関連付けて説明する。
図7は、本発明の他の実施形態に係るカードリーダ30における、ファームウェアのダウンロード時の処理フローの一例を示すフローチャートである。
この他の実施形態における変形例では、まず、図7に示すように、上述のステップST9(図4)で発行されたダウンロードファイル23の2行目、すなわち、書き換え照合コマンド238をカードリーダ制御部31Aおよび書き換え制御部312Aが受信する(ステップST41)。
書き換え制御部312Aは、書き換え照合コマンド238に付された書き換え許可データが、書き換え制御部312Aに記憶される許可データと一致するか(あるいは、この許可データと対応するか)否かを判断する(ステップST42)。
すなわち、書き換え制御部312Aは、ステップST42において、書き換え照合が取れるか否かを判断する。
上位装置20にダウンロードファイル23Aが記憶されており、ステップST42で、書き換え照合が取れる場合(ステップST42で“Yes”の場合)には、カードリーダ制御部31Aおよび書き換え制御部312Aは、書き換え照合が取れたとの正常応答をダウンロード制御部21へ返す(ステップST43)。
そして、書き換え照合が取れ、正常応答を返したことに伴い、カードリーダ制御部31Aおよび書き換え制御部312Aは、次の処理を行う。
すなわち、カードリーダ制御部31Aの書き換え制御部312Aが、不揮発性メモリである識別情報格納部32Aの識別情報(識別用ID)の格納領域を消去する(ステップST44)。
この場合も、カードリーダ制御部31Aあるいは書き換え制御部312Aが、識別情報格納部32Aに識別情報(識別用ID)が実際に格納されている場合に消去を行うように構成する、あるいは、無条件に識別情報格納部32Aの識別情報の格納領域を消去するように構成する等、種々の態様が可能である。
その後、書き換え制御部312Aは、受信したダウンロードファイル23Aの3行目のコマンドおよび4行目のコマンド、すなわち、イレースコマンド233およびダウンロードコマンド234を実行する。そして、書き換え制御部312Aは、ダウンロードコマンド234が正常に実行されたとの正常応答をダウンロード制御部21へ返す(ステップST45)。
具体的には、ステップST45で、書き換え制御部312Aが、ファームウェア格納部311Aに記憶されているプログラムデータを消去し、かつ、上位装置20から送られてくるプログラムデータ231をファームウェア格納部311Aの中の指定された領域に格納(記憶)して、正常応答をダウンロード制御部21へ返す。
なお、ステップST44における識別情報格納部32Aに対する消去処理と、ステップST45におけるダウンロードファイル23Aの3行目のイレースコマンド233に応答したファームウェア格納部311Aの所定領域に対する消去処理は、いずれか先であっても後であっても良い。
その後、書き換え制御部312Aは、ダウンロードファイル23Aの5行目以降を順次、受信し(ステップST45)、受信した行のダウンロードコマンド234を順次、実行する(ステップST46)。
すなわち、書き換え制御部312Aは、上位装置20から送られてくるプログラムデータ231をファームウェア格納部311Aの中の指定された領域に格納(記憶)して、ダウンロードコマンド234が正常に実行されたとの正常応答をダウンロード制御部21へ返す(ステップST46)。
一方、ステップST42で、書き換え照合が取れない場合(ステップST42で“No”の場合)には、書き換え制御部312Aは、次の処理を行う。
書き換え制御部312Aは、書き換え照合コマンド238に付された書き換え許可データが、ダウンロードファイル23Bの書き換え照合コマンド238に付された書き換え許可データであるのか、それとも、異なる機種のカードリーダ等のダウンロードファイルの書き換え照合コマンドに付された書き換え許可データであるのかを判断する(ステップST47)。
すなわち、ステップST47において、書き換え制御部312Aは、上位装置20に記憶されているプログラムデータが旧型の第2カードリーダ30Bに対応するものであるのか、それとも、異なる機種のカードリーダ等に対応するものであるのかを判断する。
ステップST47で、上位装置20に記憶されているプログラムデータが第2カードリーダ30Bに対応するものである場合、すなわち、上位装置20にダウンロードファイル23Bが記憶されている場合(ステップST47で“Yes”の場合)には、書き換え制御部312Aは、書き換え照合が取れていないにもかかわらず書き換え照合が取れたとの正常応答をダウンロード制御部21へ返す(ステップST48)。
その後、書き換え制御部312Aは、ダウンロードファイル23Bの3行目以降を順次、受信する(ステップST49)。
次に、書き換え制御部312Aは、受信したダウンロードファイル23Bに識別情報237が有るか否か(含まれているか否か)の判別を行う(ステップST50)。
ダウンロードファイル23Bに識別情報237が含まれている場合(ステップST50で“Yes”の場合)には、書き換え制御部312Aは、受信したプログラムデータ231の中から、識別情報(識別用ID)237を抽出して取得し(ステップST51)、内部のメモリやレジスタ等に一時的に保持する(ステップST52)。
ここで取得し、保持するダウンロードファイル23Bの識別情報237は、第1カードリーダ30Aに対して無効扱いされるダウンロードファイル23Bの識別情報である。
ステップST52の処理後、あるいはダウンロードファイル23Bに識別情報237が含まれていない場合(ステップST50で“No”の場合)には、書き換え制御部312Aは、受信した行のダウンロードコマンド234を実行せずに、擬似的な書き換え処理を行って、ダウンロードコマンド234が正常に実行されたとの正常応答(擬似応答)をダウンロード制御部21へ返す(ステップST53)。
そして、書き換え制御部312Aは、ステップST53においてダウンロードファイル23Bの最終行まで上記擬似書き換え処理を行ってダウンロードコマンド234が正常に実行されたとの正常応答(擬似応答)をダウンロード制御部21へ返した後、ステップST52で内部に一時的に保持していた無効扱いの識別情報237を識別情報格納部32Aに格納(記憶)する(ステップS54)。
また、ステップST47で、上位装置20に記憶されているプログラムデータが異なる機種のカードリーダ等に対応するものである場合(ステップST47で“No”の場合)には、書き換え制御部312Aは、異常応答をダウンロード制御部21へ返す(ステップST55)。
異常応答を受信したダウンロード制御部21は、プログラムデータ231のダウンロード失敗と判断して、ダウンロード処理を終了する。
またたとえば、ステップST54の処理後に上位装置20から識別情報の送信要求を受けた場合(ステップST56)、カードリーダ制御部31Aあるいは書き換え制御部312Aは、識別情報格納部32Aに格納されている識別情報を上位装置20に返す(ステップST57)。
また、ステップST56で上位装置20からの送信要求がない場合(ステップST56で“No”の場合)、ステップST57の処理を実行せず上位装置20からの次のステップ待ちとなる。
また、ステップST46の処理後に上位装置20から識別情報の送信要求を受けた場合(ステップST58)、このとき、識別情報格納部32Aには識別情報が格納されておらず、カードリーダ制御部31Aあるいは書き換え制御部312Aは、正常なダウンロードファイル23Aに記述されていた正当な識別情報を上位装置20に返す(ステップST59)。
また、ステップST58で上位装置20からの送信要求がない場合(ステップST58で“No”の場合)、ステップST59の処理を実行せず上位装置20からの次のステップ待ちとなる。
この変形例においても、上述した形態と同様の効果を得ることができる。また、この変形例では、プログラムデータ231に書き換え許可データ236を含ませる必要がなくなるため、プログラムデータ231の構造を一部簡素化することが可能になる。
なお、プログラムデータ231に書き換え許可データ236が含まれている場合には、ダウンロードファイル23に書き換え照合コマンド238が含まれていない場合や書き換え照合コマンド238をカードリーダ30が受け付けない場合であっても、ダウンロードファイル23に書き換え許可データが含まれているか否かを判別することが可能になる。
そして、本他の実施形態においては、このように、書き換え照合コマンドおよび識別情報を用いたダウンロード処理を行うことにより、前述した実施形態と同様の効果を得ることができる。
すなわち、上位装置が新仕様用のダウンロードファイルに入れ替えられていない場合であっても、送付されたダウンロードファイルに関して疑似書き換えを行うだけでなく、上位装置20から識別情報(識別用ID)の送信要求を受けた場合には、疑似書き換えした無効のダウンロードファイルの識別情報(識別用ID)が返されるので、それ以降のダウンロード処理が起動されず、処理の短縮化が図れる。
上位装置20から識別情報(識別用ID)の送信要求を受けた場合、ダウンロード直後でも疑似書き換えしたダウンロードファイルの識別情報(識別用ID)が返されるので、システム停止を回避することができる。
上位装置から、適用不可のダウンロードファイルの適用指示を排除するので、自身の動作環境が守られ、継続して使用することが可能となる。
なお、この変形例におけるステップST42は、第1カードリーダ30Aに記憶されているプログラムデータを上位装置20に記憶されているプログラムデータ231に書き換えることを書き換え制御部312Aに許可させるための書き換え許可データがダウンロードファイル23(C)に含まれているか否かを判別する書き換え許可判別ステップである。
また、ステップST46は、第1カードリーダ30Aに記憶されているプログラムデータを上位装置20に記憶されているプログラムデータ231に書き換えることを書き換え制御部312Aに許可させるための書き換え許可データがダウンロードファイル23(C)に含まれている場合に、第1カードリーダ30Aに記憶されているプログラムデータを上位装置20から送られるプログラムデータ231に書き換えて、データ書換えの正常完了応答を上位装置20へ返す正常書き換えステップである。
さらに、ステップST53は、第1カードリーダ30Aに記憶されているプログラムデータを上位装置20に記憶されているプログラムデータ231に書き換えることを書き換え制御部312Aに許可させるための書き換え許可データがダウンロードファイル23(C)に含まれていない場合に、第1カードリーダ30Aに記憶されているプログラムデータを上位装置20から送られるプログラムデータ231に書き換えずに、データ書換えの正常完了応答を上位装置20へ返す擬似書き換えステップである。
さらに、本実施形態のステップST54は、ダウンロードファイル23(C)に含まれるこのダウンロードファイルの識別情報237をカードリーダ30の識別情報格納部32に格納する識別情報格納ステップである。
本実施形態のステップST57は、上位装置20から識別情報の送信要求を受けた場合、識別情報格納部32に格納されている識別情報を上位装置20へ返す識別情報返信ステップである。
<他の実施形態>
上述した実施形態および変形例は、本発明の好適な実施形態の一例ではあるが、これに限定されるものではなく本発明の要旨を変更しない範囲において種々変形実施が可能である。
上述した実施形態では、上位装置20に対して一つのカードリーダ30(30Aまたは30B)を接続するように構成した。
他の実施形態として、図8に示すように、上位装置20に対して同型のカードリーダ30を複数並列に接続して、周辺装置としての各カードリーダ30を動作させるファームウェアのプログラムデータ231を上位装置20から各カードリーダ30へダウンロードするように構成することも可能である。
また、上述した実施形態では、識別情報格納部32をカードリーダ制御部31に含まれるように構成されている。
ただし、さらに他の実施形態として、図9に示すように、識別情報格納部32をカードリーダ制御部31の外部に配置する構成を採用することも可能である。
この場合、識別情報格納部32は、カードリーダ制御部31が直接アクセス制御する、書き換え制御部312がアクセス制御する等、種々の態様が可能である。
なお、図9は図1の構成に対応する他の実施形態として示しているが、図8に対応する場合等にも、同様に、図9中に括弧を付して示すように、識別情報格納部32をカードリーダ制御部31の外部に配置する構成も採用することも可能である。
上述した実施形態では、書き換え許可データ236は、ダウンロードファイル23Aの中の3行目のプログラムデータ231に記述されている。
この他にもたとえば、書き換え許可データ236は、ダウンロードファイル23Aの中の4行目以降のn行目のプログラムデータ231に記述されても良い。
この場合には、書き換え制御部312は、n行目のプログラムデータ231に書き換え許可データ236が記述されているか否かを判断した後に、2行目からn行目までのコマンドを実行して正常応答をダウンロード制御部21へ返すか、あるいは、2行目からn行目までのコマンドを実行せずに正常応答をダウンロード制御部21へ返す。
また、本実施形態において、識別情報に関しては、図2および図6に示すように、大きく分けて2種類のダウンロードファイル形式が用いられる。基本的に、先頭行のレビジョン情報(レビジョンヘッダ)は上位装置用の情報で、周辺装置に送信されない。
本実施形態においては、ダウンロードファイル内の書き換え許可データや「照合」コマンドの有無で、ダウンロードファイルが正規か否かを判断する手段は変化するが、「照合」コマンドを受け付けない製品の場合、プログラムデータ内に書き換え許可データ(照合用ID)および識別情報(識別用ID)を含めている。
「照合」コマンドに相当する書き換え許可データの記述があっても、直ちにダウンロードを不可とせず、旧型製品と判断した場合のみコマンドを実際には実行した疑似書き換え中に、識別情報(識別用ID)の取得を行う。
応用例としては、すでに述べた部分もあるが、識別情報(識別用ID)を暗号文で書く、あるいは識別情報(識別用ID)を平文で書くこともあげることも可能である。
これも前述したが、先頭のレビジョンヘッダ行をコマンド化して、識別用ID送付コマンドとして送信するように構成することも可能である。
本実施形態では、ダウンロードファイルの所定位置に識別情報(識別用ID)が配置してあるが、他の周辺装置を含めて考えると、その配置場所は全てで統一されていない。
したがって、現状では周辺装置に送信されない、識別情報(識別用ID)をテキストにして識別情報(識別用ID)通知コマンドを新たに設けるようにすることも可能であり、ダウンロード制御部21部が、そのコマンドを正常受信した場合にだけ、そのような送付コマンドを生成する処理等をして実現するように構成することも可能である。
また、上述した実施形態においては、レビジョン情報(レビジョン・ヘッダ)232と識別情報(識別用ID)237とは同じデータを使用している例を説明したが、両データは同じデータでなくともよく、一般的には、識別情報(識別用ID)237のデータ(量)は、レビジョン情報232よりも多く、詳細なものとなっている。
上述した実施形態では、上位装置20に通信可能に接続される周辺装置、第2周辺装置は、カードリーダ30であるが、上位装置20に通信可能に接続される周辺装置、第2周辺装置は、カードプリンタ等のカードリーダ30以外の各種の装置であっても良い。
なお、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、CPU等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
10,10A,10B・・・ダウンロードシステム(ファームウェアのダウンロードシステム)、20・・・上位装置、21・・・ダウンロード制御部、22・・・外部記憶部、23・・・ダウンロードファイル、231・・・プログラムデータ、232・・・レビジョン情報、233・・・イレースコマンド、234・・・ダウンロードコマンド、235・・・EOF、236・・・書き換え許可データ、237・・・識別情報、238・・・書き換え照合コマンド、30・・・カードリーダ(周辺装置)、31・・・カードリーダ制御部、311・・・ファームウェア格納部(プログラム格納部)、312・・・書き換え制御部、32・・・識別情報格納部(不揮発性メモリ(NVM))、30A・・・第1カードリーダ(周辺装置、第1周辺装置)、31A・・・カードリーダ制御部、311A・・・ファームウェア格納部(プログラム格納部)、312A・・・書き換え制御部、32A・・・識別情報格納部(不揮発性メモリ(NVM))、30B・・・第2カードリーダ(周辺装第2周辺装置)、31B・・・カードリーダ制御部、311B・・・ファームウェア格納部(プログラム格納部)、312B・・・書き換え制御部。

Claims (13)

  1. 上位装置に接続され、動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置であって、
    前記ダウンロードファイルの識別情報を格納可能な識別情報格納部と、
    少なくともプログラムデータを書き換え可能に格納するプログラム格納部と、
    前記プログラム格納部に格納されている前記プログラムデータの書き換えを制御する制御部と、を有し、
    前記ダウンロードファイルには、当該ダウンロードファイルの識別情報、および前記制御部に、前記プログラム格納部に格納されているプログラムデータを書き換えることを許可する書き換え許可データのうちの少なくとも前記識別情報を含み、
    前記制御部は、
    前記ダウンロードファイルに前記書き換え許可データが含まれている場合には、正常書き換えとして、前記プログラム格納部に格納されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、前記データ書き換えの正常完了応答を前記上位装置へ返し、
    前記ダウンロードファイルに前記書き換え許可データが含まれていない場合には、疑似書き換えとして、前記プログラム格納部に格納されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返し、
    前記ダウンロードファイルの前記識別情報を前記識別情報格納部に格納する
    周辺装置。
  2. 前記制御部は、
    前記疑似書き換え時に、前記ダウンロードファイルに含まれる識別情報を取得して前記識別情報格納部に格納する
    請求項1記載の周辺装置。
  3. 前記制御部は、
    前記上位装置から前記識別情報の送信要求を受けた場合、前記識別情報格納部に格納されている前記識別情報を前記上位装置へ返す
    請求項1または2記載の周辺装置。
  4. 前記制御部は、
    前記正常書き換え時において、前記ダウンロードファイルを正常に受信した場合に前記識別情報格納部に格納されている識別情報を取得不可とする
    請求項1から3のいずれか一に記載の周辺装置。
  5. 前記識別情報は、
    前記ダウンロードファイルのプログラムデータの所定の位置に記載されている
    請求項1から4のいずれか一に記載の周辺装置。
  6. 前記制御部は、
    受信した前記ダウンロードファイル内に識別情報が含まれていない場合、前記上位装置からの新たなコマンドを識別情報として受信可能である
    請求項1から4のいずれか一に記載の周辺装置。
  7. 上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置の制御方法において、
    前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを許可させるための書き換え許可データが、前記上位装置からダウンロードされるダウンロードファイルに含まれているか否かを判別する書き換え許可判別ステップと、
    前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書き換えの正常完了応答を前記上位装置へ返す正常書き換えステップと、
    前記書き換え許可判別ステップで、前記書き換え許可データが前記ダウンロードファイルに含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返す疑似書き換えステップと、
    前記ダウンロードファイルに含まれる当該ダウンロードファイルの識別情報を前記周辺装置の識別情報格納部に格納する識別情報格納ステップと、
    前記上位装置から前記識別情報の送信要求を受けた場合、前記識別情報格納部に格納されている前記識別情報を前記上位装置へ返す識別情報返信ステップと
    を有する周辺装置の制御方法。
  8. 前記識別情報格納ステップは、
    前記疑似書き換えステップが処理されるときに並列的に行われる
    請求項7記載の周辺装置の制御方法。
  9. 前記正常書き換えステップにおいて、前記ダウンロードファイルを正常に受信した場合に前記識別情報格納部に格納されている識別情報を取得不可とする格納情報取得不可ステップを有する
    請求項7または8記載の周辺装置の制御方法。
  10. 前記識別情報は、
    前記ダウンロードファイルのプログラムデータの所定の位置に記載されている
    請求項7から9のいずれか一に記載の周辺装置の制御方法。
  11. 受信した前記ダウンロードファイル内に識別情報が含まれていない場合、前記上位装置からの新たなコマンドを識別情報として受信可能である
    請求項7から9のいずれか一に記載の周辺装置の制御方法。
  12. 少なくとも一つの周辺装置と、
    前記周辺装置が接続され、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記周辺へダウンロード可能な上位装置と、を有し、
    前記周辺装置は、請求項1から6のいずれか一に記載の周辺装置により構成されている
    ファームウェアのダウンロードシステム。
  13. 上位装置に接続される周辺装置であって、前記周辺装置を動作させるファームウェアのプログラムデータを含むダウンロードファイルを前記上位装置からダウンロード可能な周辺装置の制御処理をコンピュータに実行させるプログラムにおいて、
    前記周辺装置に記憶されている前記プログラムデータを前記上位装置に記憶されている前記プログラムデータに書き換えることを許可させるための書き換え許可データが、前記上位装置からダウンロードされるダウンロードファイルに含まれているか否かを判別する書き換え許可判別処理と、
    前記書き換え許可判別処理で、前記書き換え許可データが前記ダウンロードファイルに含まれている場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えて、データ書き換えの正常完了応答を前記上位装置へ返す正常書き換え処理と、
    前記書き換え許可判別処理で、前記書き換え許可データが前記ダウンロードファイルに含まれていない場合に、前記周辺装置に記憶されている前記プログラムデータを前記上位装置から送られる前記プログラムデータに書き換えずに、データ書き換えの正常完了応答を前記上位装置へ返す疑似書き換え処理と、
    前記ダウンロードファイルに含まれる当該ダウンロードファイルの識別情報を前記周辺装置の識別情報格納部に格納する識別情報格納処理と、
    前記上位装置から前記識別情報の送信要求を受けた場合、前記識別情報格納部に格納されている前記識別情報を前記上位装置へ返す識別情報返信処理と
    を有する周辺装置の制御処理をコンピュータに実行させるプログラム。
JP2012285599A 2012-12-27 2012-12-27 周辺装置、周辺装置の制御方法、ファームウェアのダウンロードシステム、およびプログラム Active JP6101073B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012285599A JP6101073B2 (ja) 2012-12-27 2012-12-27 周辺装置、周辺装置の制御方法、ファームウェアのダウンロードシステム、およびプログラム
BR112014032634A BR112014032634A2 (pt) 2012-12-27 2013-10-11 dispositivo periférico, método de controle de dispositivo periférico, sistema de transferência (via download) de firmware e programa
US14/409,761 US9361138B2 (en) 2012-12-27 2013-10-11 Peripheral device, method of controlling peripheral device, firmware download system and program
PCT/JP2013/077702 WO2014103473A1 (ja) 2012-12-27 2013-10-11 周辺装置、周辺装置の制御方法、ファームウェアのダウンロードシステム、およびプログラム
CN201380032294.XA CN104412237B (zh) 2012-12-27 2013-10-11 外围设备、外围设备的控制方法以及固件的下载系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012285599A JP6101073B2 (ja) 2012-12-27 2012-12-27 周辺装置、周辺装置の制御方法、ファームウェアのダウンロードシステム、およびプログラム

Publications (2)

Publication Number Publication Date
JP2014127152A true JP2014127152A (ja) 2014-07-07
JP6101073B2 JP6101073B2 (ja) 2017-03-22

Family

ID=51020573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012285599A Active JP6101073B2 (ja) 2012-12-27 2012-12-27 周辺装置、周辺装置の制御方法、ファームウェアのダウンロードシステム、およびプログラム

Country Status (5)

Country Link
US (1) US9361138B2 (ja)
JP (1) JP6101073B2 (ja)
CN (1) CN104412237B (ja)
BR (1) BR112014032634A2 (ja)
WO (1) WO2014103473A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016033762A (ja) * 2014-07-31 2016-03-10 東芝テック株式会社 プリンタ及びそのファームウェア更新制御プログラム
JP2018185755A (ja) * 2017-04-27 2018-11-22 グローリー株式会社 釣銭機、貨幣処理システム及び動作設定方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108187B2 (en) * 2014-03-14 2018-10-23 Omron Corporation Control device, control system, support device, and control-device maintenance management method
WO2016106277A2 (en) 2014-12-22 2016-06-30 Capital One Services, LLC. A system, method and apparatus for reprogramming a transaction card
RU2701056C2 (ru) * 2015-05-29 2019-09-24 Хиве Технолоджи Способ и устройство для выбора действия беспроводного считывателя, применяемые для выходных данных, полученных от беспроводного устройства идентификации
US10268483B2 (en) * 2016-09-27 2019-04-23 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Data protocol for managing peripheral devices
TWI710953B (zh) * 2019-05-31 2020-11-21 緯創資通股份有限公司 韌體更新裝置以及韌體更新方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09223075A (ja) * 1996-02-19 1997-08-26 Nec Corp Pcカード
JP2003216375A (ja) * 2002-01-25 2003-07-31 Canon Inc プリントシステム及びユーザインタフェースを制御する方法
JP2004013782A (ja) * 2002-06-11 2004-01-15 Sankyo Seiki Mfg Co Ltd ファームウェアのダウンロード方法
JP2004259224A (ja) * 2003-02-28 2004-09-16 Canon Inc 周辺装置
JP2007293514A (ja) * 2006-04-24 2007-11-08 Canon Inc バージョン管理および自動アップデート機能

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6930785B1 (en) * 2000-03-17 2005-08-16 Hewlett-Packard Development Company, L.P. Automatic remote firmware upgrade
US7082603B2 (en) * 2001-01-03 2006-07-25 Intel Corporation Upgrading peripheral devices
US7178141B2 (en) * 2001-07-30 2007-02-13 International Business Machines Corporation Method and system for identifying compatibility between firmware images
US7146412B2 (en) * 2001-08-27 2006-12-05 Hewlett-Packard Development Company, L.P. System and methods for the automatic discovery, notification and installation of firmware upgrades
US7010624B1 (en) * 2002-04-01 2006-03-07 Adaptec, Inc. System and method of software/firmware uploading and upgrading for peripheral devices
US20030217357A1 (en) * 2002-05-14 2003-11-20 Parry Travis J. Monitoring firmware
US20040030877A1 (en) * 2002-08-06 2004-02-12 Aleksandr Frid Using system BIOS to update embedded controller firmware
JP2004259244A (ja) * 2003-02-26 2004-09-16 Toshiki Suzuki Rom・ram兼用メモリー
US7555657B2 (en) * 2003-03-28 2009-06-30 Ricoh Company, Ltd. Communication device, software update device, software update system, software update method, and program
CN1228718C (zh) * 2003-05-30 2005-11-23 威盛电子股份有限公司 防止覆写dmi数据中外围端子的mac地址的方法
US20050027807A1 (en) * 2003-07-30 2005-02-03 Lynda Fengler Systems and methods for facilitating peripheral device firmware installation
US7770165B2 (en) * 2006-08-25 2010-08-03 Microsoft Corporation Providing firmware updates to portable media devices
US7730295B1 (en) * 2006-09-05 2010-06-01 Western Digital Technologies, Inc. Updating firmware of a peripheral device
US8122447B2 (en) * 2007-07-31 2012-02-21 Hewlett-Packard Development Company, L.P. Firmware installation
US8713559B2 (en) * 2010-11-15 2014-04-29 Schneider Electric It Corporation System and method for updating firmware
US8745614B2 (en) * 2011-05-13 2014-06-03 Lsi Corporation Method and system for firmware upgrade of a storage subsystem hosted in a storage virtualization environment
JP5734139B2 (ja) * 2011-09-01 2015-06-10 日本電産サンキョー株式会社 周辺装置、周辺装置の制御方法およびファームウェアのダウンロードシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09223075A (ja) * 1996-02-19 1997-08-26 Nec Corp Pcカード
JP2003216375A (ja) * 2002-01-25 2003-07-31 Canon Inc プリントシステム及びユーザインタフェースを制御する方法
JP2004013782A (ja) * 2002-06-11 2004-01-15 Sankyo Seiki Mfg Co Ltd ファームウェアのダウンロード方法
JP2004259224A (ja) * 2003-02-28 2004-09-16 Canon Inc 周辺装置
JP2007293514A (ja) * 2006-04-24 2007-11-08 Canon Inc バージョン管理および自動アップデート機能

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016033762A (ja) * 2014-07-31 2016-03-10 東芝テック株式会社 プリンタ及びそのファームウェア更新制御プログラム
JP2018185755A (ja) * 2017-04-27 2018-11-22 グローリー株式会社 釣銭機、貨幣処理システム及び動作設定方法

Also Published As

Publication number Publication date
US20150293770A1 (en) 2015-10-15
CN104412237A (zh) 2015-03-11
CN104412237B (zh) 2017-05-10
JP6101073B2 (ja) 2017-03-22
WO2014103473A1 (ja) 2014-07-03
US9361138B2 (en) 2016-06-07
BR112014032634A2 (pt) 2017-06-27

Similar Documents

Publication Publication Date Title
JP6101073B2 (ja) 周辺装置、周辺装置の制御方法、ファームウェアのダウンロードシステム、およびプログラム
US8296752B2 (en) Implementation of in-system programming to update firmware on memory cards
JP5454933B2 (ja) 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法
JP4955099B2 (ja) 光ディスクドライブ装置
JP5804853B2 (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP2010020753A (ja) 初期ブート画像のインストール方法、初期ブート画像の更新方法、及び記憶装置
KR20080089586A (ko) 명령 패스 스로우 메커니즘을 가지는 미디어 카드
JP2002024046A (ja) マイクロコンピュータ及びそのメモリ内容変更システム並びにメモリ内容変更方法
JP2013037417A (ja) メモリシステム、情報処理装置、メモリ装置、およびメモリシステムの動作方法
JP2006113823A (ja) 書き換え可能な不揮発性メモリ、電子機器、書き換え可能な不揮発性メモリの書き換え方法、及び書き換えプログラム
KR101590275B1 (ko) 주변 장치, 주변 장치의 제어 방법 및 펌웨어의 다운로드 시스템
JP2004348342A (ja) Icカードとicカードの処理方法
JP2011154513A (ja) コンピュータープログラム、コンピュータープログラムの更新方法、コンピューター、および、記録装置
JP2008201001A (ja) 印刷装置及び制御方法
JP4324100B2 (ja) データ書込制御装置及びデータ書込制御方法
JP4575112B2 (ja) ファームウェアの書換方法、ディスクドライブ装置、及び情報処理システム
JP5365239B2 (ja) Icカードの発行システム
US8554795B2 (en) Method for writing data and applications into identification media
JP5358599B2 (ja) ソフトウエア書き換え装置およびその装置を用いたソフトウエアの書き換え方法
JP2008059380A (ja) 記憶媒体
JP6819535B2 (ja) 画像形成装置、画像形成方法及びデータ消去プログラム
JP4859574B2 (ja) セキュリティ管理装置およびセキュリティ管理方法
JP2012008677A (ja) Ftpを用いたバージョンアップ用ファイルの自動判別装置及び自動判別方法
JP5706835B2 (ja) 印刷装置、印刷方法、及びプログラム
JP2008052514A (ja) 通信システム及びそれに使用する周辺装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170224

R150 Certificate of patent or registration of utility model

Ref document number: 6101073

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150