(57)【特許請求の範囲】
【請求項１】
紙幣の繰出部，搬送部，識別部，及び一時保留部等から成る処理機構をブロック化して複数ユニットで装置を構成した紙幣処理機で、且つ、前記ユニットのそれぞれに、少なくともメモリ領域及び一部のＩ／Ｏ領域のアドレスが同一に構成されたＣＰＵを含むと共に外部から前記メモリ領域にプログラムを書込むことができる制御用電気回路基板を搭載した紙幣処理機に適用される方法であって、
前記ユニットに搭載される前記制御用電気回路基板のＩ／Ｏポートには、他の制御用電気回路基板とはＩ／Ｏの構成が異なるセンサ，アクチュエータ類が接続されており、
前記制御用電気回路基板には、ＣＰＵからは書換えることができない読出ポートに他の基板とは異なって割り当てられている基板認識用のＩＤ番号を記憶するＩＤ番号記憶部を持ち、
前記プログラムを実行するにあたり前記ＩＤ番号記憶部に記憶しているＩＤ番号を読出し、該ＩＤ番号と前記プログラムが有しているプログラム内のＩＤ番号とを比較し、
一致する場合は、前記センサ，アクチュエータ類を対象としたＩ／Ｏポートの初期化処理を実行し、
一致しない場合は、前記プログラムが、前記制御用電気回路基板が搭載されているユニット用のプログラムではないと判定し、前記Ｉ／Ｏポートの初期化処理を実行しないようにしたことを特徴とする同型ＣＰＵを備えた複数ユニットから成る紙幣処理機の初期化方法。
【請求項２】
前記ＩＤ番号記憶部が、前記ＣＰＵの内蔵メモリの記憶領域のうち、前記プログラムの書換え処理を制御するダウンロード制御プログラムが記憶されている領域の一部に設けられていることを特徴とする請求項１に記載の同型ＣＰＵを備えた複数ユニットから成る紙幣処理機の初期化方法。
【請求項３】
前記ＩＤ番号記憶部が前記ＣＰＵのＩ／Ｏポートを介して接続される外部メモリに設けられていることを特徴とする請求項１に記載の同型ＣＰＵを備えた複数ユニットから成る紙幣処理機の初期化方法。
【請求項４】
前記ＩＤ番号記憶部が、前記ＣＰＵの内蔵メモリを介しての間接的なアクセスが可能な外部記録媒体に設けられていることを特徴とする請求項１に記載の同型ＣＰＵを備えた複数ユニットから成る紙幣処理機の初期化方法。
【請求項５】
前記ＩＤ番号記憶部の読出しアドレスが前記ＣＰＵのメモリ領域にある場合に前記プログラムの書換え処理を制御するダウンロード制御プログラムの領域内にあるＩＤ番号とダウンロードしたプログラム領域内にあるＩＤ番号とを比較するようになっている請求項１に記載の同型ＣＰＵを備えた複数ユニットから成る紙幣処理機の初期化方法。
【請求項６】
前記ＩＤ番号記憶部の読出しアドレスが前記ＣＰＵのメモリ領域内若しくは外部の書換え可能なメモリ領域内にある請求項１に記載の同型ＣＰＵを備えた複数ユニットから成る紙幣処理機の初期化方法。
【請求項７】
前記ＩＤ番号記憶部が前記ＣＰＵの内蔵メモリ及び前記ＣＰＵのＩ／Ｏポートを介して接続される外部メモリにある場合、前記内蔵メモリに記憶しているＩＤ番号と、前記外部メモリにあるＩＤ番号と、新たに書込んだプログラム内のＩＤ番号とを比較し、互換性の無いプログラムがロードされたと判断した時には前記プログラムを実行しないようになっている請求項１に記載の同型ＣＰＵを備えた複数ユニットから成る紙幣処理機の初期化方法。
【請求項８】
前記読出ポートを用いて前記ＩＤ番号記憶部を読出すものであって、前記ＩＤ番号記憶部が前記ＣＰＵを搭載した回路基板ではなく、ユニット本体側に設けられていることを特徴とする請求項１に記載の同型ＣＰＵを備えた複数ユニットから成る紙幣処理機の初期化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、実行する機械語が同一の同型ＣＰＵを備えた複数ユニットから成る装置の初期化方法に関し、特に、プログラムの初期書込み時やその後の書込み時に同型ＣＰＵの内蔵メモリに誤ったプログラムが書込まれて実行されるのを回避するようにした、同型ＣＰＵを備えた複数ユニットから成る装置の初期化方法に関する。
【０００２】
【従来の技術】
プログラムを通信によりダウンロードする場合には、ダウンロード時にダウンロード先のＩＤをチェックして不都合があればダウンロードをしないというものが一般的である。また、１つの通信ポートを用いて、複数のＣＰＵのプログラムをダウンロードする場合には、どのＣＰＵのプログラムをダウンロードするのかという情報によりダウンロードする場所を決定しているのが通常である。
【０００３】
ところで、従来よりプログラムを格納するフラッシュメモリ及びデータを格納するＲＡＭを内蔵するワンチップＣＰＵが用いられているが、ワンチップＣＰＵの場合、外部からのデータを無条件にフラッシュメモリに書込むことができるものが一般的である。このようなワンチップＣＰＵの場合、例えば外部とワンチップＣＰＵの基板とを通信アダプタ等を介して接続し、外部からプログラムをダウンロードしてフラッシュメモリに書込むようにしているが、誤ったプログラムを書込んでしまった時の考慮がされていないのが現状である。
【０００４】
【発明が解決しようとする課題】
上述したように、ワンチップＣＰＵの場合、内蔵メモリへのプログラムの初期書込みやその後の書込み時（更新時）に、外部から誤ったプログラムをダウンロードしてしまう危険がある。特に、同型ＣＰＵ（実行する機械語が同一のＣＰＵ）を備えた複数ユニットから成る装置の場合、他のユニット用のプログラムをダウンロードする危険性がある。その場合、他のユニット用のプログラムを実行すると、動作が正規のものと異なるタイミングで行われるので、Ｉ／Ｏポートに接続されている周辺機器の部品の破壊を招くことがある。このような誤ったプログラムの実行に伴うトラブルは、例えばあるユニットに搭載されているワンチップＣＰＵ内のプログラムを書込む際に、上記のように異なる基板用のプログラムを外部からダウンロードするなど誤ったプログラムをダウンロードした場合、或いは、誤ったプログラムが記録されているＲＯＭを差した場合に発生する。個々のユニットに同型ＣＰＵを備えた複数ユニットから成る装置の場合、該当プログラムはそのメモリの配置が同じため暴走せずに実行されるが、Ｉ／Ｏの構成が異なるために駆動部品を異なったタイミングで駆動してしまい、装置を破壊してしまうという不具合が生じる。従来は、このように間違えて他のユニットのプログラムを実行するなど、誤ったプログラムの実行に伴う機器の破損を防止するような対策が施されていなかった。
【０００５】
本発明は上述のような事情から成されたものであり、本発明の目的は、同型ＣＰＵを備えた複数ユニットから成る装置において個々のユニットに誤ったプログラムを書込んで実行した場合、特に間違えて他のユニットのプログラムを書込んで実行した場合に生じる部品の破壊を未然に防ぐことができる方法を提供することにある。
【０００６】
【課題を解決するための手段】
本発明は、同型ＣＰＵを備えた複数ユニットから成る紙幣処理機の初期化方法に関するものであり、本発明の上記目的は、紙幣の繰出部，搬送部，識別部，及び一時保留部等から成る処理機構をブロック化して複数ユニットで装置を構成した紙幣処理機で、且つ、前記ユニットのそれぞれに、少なくともメモリ領域及び一部のＩ／Ｏ領域のアドレスが同一に構成されたＣＰＵを含むと共に外部から前記メモリ領域にプログラムを書込むことができる制御用電気回路基板を搭載した紙幣処理機に適用される方法であって、前記ユニットに搭載される前記制御用電気回路基板のＩ／Ｏポートには、他の制御用電気回路基板とはＩ／Ｏの構成が異なるセンサ，アクチュエータ類が接続されており、前記制御用電気回路基板には、ＣＰＵからは書換えることができない読出ポートに他の基板とは異なって割り当てられている基板認識用のＩＤ番号を記憶するＩＤ番号記憶部を持ち、前記プログラムを実行するにあたり前記ＩＤ番号記憶部に記憶しているＩＤ番号を読出し、該ＩＤ番号と前記プログラムが有しているプログラム内のＩＤ番号とを比較し、一致する場合は、前記センサ，アクチュエータ類を対象としたＩ／Ｏポートの初期化処理を実行し、一致しない場合は、前記プログラムが、前記制御用電気回路基板が搭載されているユニット用のプログラムではないと判定し、前記Ｉ／Ｏポートの初期化処理を実行しないようにすることによって達成される。
【０００７】
また、前記ＩＤ番号記憶部が、前記ＣＰＵの内蔵メモリの記憶領域のうち、前記プログラムの書換え処理を制御するダウンロード制御プログラムが記憶されている領域の一部に設けられていること；前記ＩＤ番号記憶部が前記ＣＰＵのＩ／Ｏポートを介して接続される外部メモリに設けられていること；前記ＩＤ番号記憶部が、前記ＣＰＵの内蔵メモリを介しての間接的なアクセスが可能な外部記録媒体に設けられていること；前記ＩＤ番号記憶部の読出しアドレスが前記ＣＰＵのメモリ領域にある場合に前記プログラムの書換え処理を制御するダウンロード制御プログラムの領域内にあるＩＤ番号とダウンロードしたプログラム領域内にあるＩＤ番号とを比較すること；前記ＩＤ番号記憶部の読出しアドレスが前記ＣＰＵのメモリ領域内若しくは外部の書換え可能なメモリ領域内にあること；によってそれぞれ一層効果的に達成される。
【０００８】
さらに、前記ＩＤ番号記憶部が前記ＣＰＵの内蔵メモリ及び前記ＣＰＵのＩ／Ｏポートを介して接続される外部メモリにある場合、前記内蔵メモリに記憶しているＩＤ番号と、前記外部メモリにあるＩＤ番号と、新たに書込んだプログラム内のＩＤ番号とを比較し、互換性の無いプログラムがロードされたと判断した時には前記プログラムを実行しないようにすること；前記読出ポートを用いて前記ＩＤ番号記憶部を読出すものであって、前記ＩＤ番号記憶部が前記ＣＰＵを搭載した回路基板ではなく、ユニット本体側に設けられていること；によってそれぞれ一層効果的に達成される。
【０００９】
【発明の実施の形態】
本発明は、実行する機械語が同一の同型ＣＰＵを備えた複数ユニットから成る装置に適用され、詳しくは、各々にプログラムが必要なＣＰＵ、いわゆる“セントラルプロセッサーユニット”又は“マイクロコンピュータ”と呼ばれ、特に、メモリや周辺回路を含んだ“ワンチップマイクロコンピュータ”若しくは“ワンチップＣＰＵ”と呼ばれるもの（以下「ワンチップＣＰＵ」とし、ワンチップＣＰＵ又は単にＣＰＵと呼ぶ）を搭載した基板（制御用電気回路基板）を設けた複数のユニットから構成される装置で、且つ各ユニットのＣＰＵが同一のもので構成される装置に適用される。そして、ＣＰＵのメモリ領域が同等で且つＩ／Ｏ（入出力）構成が異なっている回路基板を備えたユニットを複数具備し、ＣＰＵ内のプログラムの書込みが通信データによるプログラム用メモリの書換え又はＲＯＭの差替えによって成されるものに好適に適用される。
【００１０】
上記のような装置において、本発明では、例えば基板認識用のコード（以下、「ＩＤ番号」とする）を記憶したＩＤ番号記憶部を各ユニットの基板に設けておき、当該ユニットのＣＰＵ内のプログラムを実行するにあたり、上記のＩＤ番号記憶部からＩＤ情報を読出してプログラム中のＩＤ情報と比較し、該当プログラムがそのユニット用のプログラムであると判断したときのみ、センサ／アクチュエータ類を対象とした当該ポートの初期化処理を実行し、それ以外は、上記ポートの初期化処理を実行しないようにすることで、誤ったプログラムの実行に伴う部品の破壊等のトラブルが生じるのを未然に防ぐようにしている。
【００１１】
上記のようなポートの初期化制御は、ダウンロード（上位からの通信によるダウンロード、ＩＣメモリーカードから読出した当該プログラムの書込みによるフラッシュメモリ書換え後）若しくは、交換したＲＯＭのプログラムにより起動されるプログラムにより行い、ＩＤ情報に基づくプログラムの検証は、上記プログラム若しくはコンパレータ等のハードウエアにより行う。
【００１２】
以下、図面に基づいて本発明の好適な実施例について詳細に説明する。なお、上記のような同型ＣＰＵを備えた複数ユニットから成る装置として、紙幣入金機を例として説明する。
【００１３】
図１は本発明を適用した紙幣入金機の外観構成を示し、図２はその内部構成をブロック図で示している。本例での紙幣入金機１０は、筐体正面に設けられている取込口１０ａに挿入された紙幣を受け付け、繰出部１１ａで筐体内に繰出して全体制御部（搬送部）１６ａ内の搬送手段により識別部１２ａへと搬送し、識別部１２ａでその入金紙幣を識別して入金額を確定させ、一時保留部１４ａに収納させる。この一時保留部１４ａに収納させた紙幣は入金の確認の指示（上位コンピュータからの指示）を得ることにより、回収部１５ａヘ収納される。また、返却の指示がされたされた場合には一時保留部１４ａから払出部１３ａに紙幣を搬送し、重積した状態で返却口１０ｂから一括返却を行うように構成されている。
【００１４】
この紙幣入金機１０は、上記のような処理機構をブロック化して複数ユニットで装置を構成し、各々のユニットに制御用ＣＰＵを設けている。図３は各ユニットの構成例を示しており、本例での紙幣入金機は、ワンチップＣＰＵが搭載された基板等から成る制御部を有する複数のユニット１１〜１７で構成されており、ユニット名で言うと、繰出ユニット（入金繰出ユニット）１１，認識ユニット（識別部）１２，払出ユニット１３，一時保留ユニット１４、金庫ユニット１５，全体制御ユニット（全体制御部，搬送部）１６，及びスイッチング電源等から成る電源ユニット１７で構成されている。
【００１５】
ここでは、ＣＰＵが同一のものを採用（例えば、日立製作所製のＨ８／３００ＨＣＰＵをコアに用いた１６ビットワンチップマイクロコンピュータのＨＤ６４Ｆ３０４８を使用）した場合を例に説明する。該当ＣＰＵはメモリを内蔵しており、フラッシュメモリ，ＲＡＭ，割り込みコントローラ，タイマカウンタ、ＳＣＩ(シリアル通信インターフェース)，ＰＩＯ（パラレル入出力インターフェース）及びＡＤコンバータを備えている。
【００１６】
紙幣入金機１０は、同一ＣＰＵを採用するということから、必然的にプログラム領域、Ｉ／Ｏの空間、メモリ領域は各ユニットで共通となる。そこで、プログラムのダウンロードを間違えた場合には、プログラムのコードはどの基板にあるＣＰＵにも理解でき実行可能なのでプログラムは実行できるが、Ｉ／Ｏポート（ＰＩＯ）の先に接続されるセンサ、アクチュエータが異なるので、入力と出力とが入れ替わることには深刻な問題は生じないが、アクチュエータ同志が入れ替わることになると駆動タイミングがでたらめとなるために不具合が生じる。図４は、紙幣入金機の内部構造とセンサ／アクチュエータ類の配置構成の一例で、符号“Ｐ…”はセンサを示し、符号“Ｍ…”及び“Ｓ…”はアクチュエータを示しており、アクチュエータ同志が入れ替わることになると、例えば、紙幣の収納モータ“ＭＧ１”が回りっぱなしとか、搬送モータ“ＭＭ１”が回りっぱなしになってしまうとか、ソレノイド“ＳＤＭ１”と“ＳＤＭ２”の切り替え位置がでたらめであるとかといった問題が発生する。
【００１７】
例として一時保留ユニット１４と、繰出ユニット１１とを例に取って説明する。図５，図６はそれぞれ一時保留ユニット１４の構成例と繰出ユニット１１の構成例をブロック図で示しており、各ユニットに搭載される制御用電気回路基板のＩ／Ｏポートには、図中に示すような周辺機器が接続されると共に、通信ケーブル（本例ではＲＳ−２３２Ｃインターフェース）４５を介して全体制御ユニット１６と接続されている。
【００１８】
図７，図８は、各ポートの接続状況や設定値等を記憶するポートテーブルの構成例を示しており、図７は一時保留ユニット１４のポートテーブルＰＴ４、図８は繰出ユニット１１のポートテーブルＰＴ１をそれぞれ示している。これらの図５〜図８に示すような構成において、ワンチップＣＰＵの「メモリマップ」は各ユニット共通であるが、Ｉ／Ｏポートの利用形態はユニットによって異なっている。例えば、図８中に示す繰出ユニットのポート１のＦＦＦＣ２Ｈ番地のビットＤ２は「出力モード」に設定されているのに対し、一時保留ユニットの同一番地のビットＤ２は「入カモード」に設定されており、仮に一時保留ユニット１４に繰出ユニット１１のプログラムがロードされた場合には周辺が入力となっているポートに対して出力にセットされるので、出力同志がぶつかり合うことになり回路によっては壊れる可能性がある。
【００１９】
このような回路の破壊等のトラブルを回避するため、本例では、ポートアドレスが各基板共通のＩ／Ｏポートで、ＣＰＵからは書換えることができない読出ポートを基板認識用の専用ポート（以下、「基板認識ポート」と言う）とし、この基板認識ポートに、少なくとも基板認識コード（例えば基板（本例では、ユニットとＣＰＵと基板とは１対１の対応）を特定するＩＤ番号）を含むＩＤ情報を記憶したＩＤ番号記憶部を設ける構成とし、以下に説明する処理によって上記基板認識コードとプログラム内のコードに基づいてプログラムの正当性を検証するようにしている。なお、図７及び図８の例では、Ｉ／Ｏポート１とＩ／Ｏポート５を基板認識ポートとし、Ｉ／Ｏポート５内のビットＤ０〜Ｄ３、Ｉ／Ｏポート１内のビットＤ６〜Ｄ７をＩＤ情報の読出しアドレスとしている。
【００２０】
以下、本発明に係るプログラムの正当性検証方法とＩ／Ｏポートの初期化方法について説明する。
【００２１】
図９（Ａ）及び（Ｂ）は、ＣＰＵに内蔵されるフラッシュメモリの構成を示しており、フラッシュメモリ１のユーザプログラム領域は、フラッシュメモリ書換え用のプログラム（以下、書込みプログラム若しくは書換えプログラムと言う）等の基本プログラムを格納する領域（以下「ＩＰＬ部」と言う）１Ａと、ユーザプログラム（ミドル／アプリケーションプログラム）を格納する書込み領域（以下「プログラム部」と言う）１Ｂとから構成される。ＣＰＵの基板には、この他にブートプログラムエリア，ユーザプログラム転送エリア，リザーブ領域から成るＲＡＭ５と、ブート時にＲＡＭ内にハードウェア転送されるプログラムが格納されたマスクＲＯＭ６が設けられている。初期書込み時は、ＩＰＬ部１Ａ及びプログラム部１Ｂの全体の書込み、プログラム更新時は、変更対象のプログラムを含む領域（プログラム部１Ｂ，ＩＰＬ部１Ａ，又は両者）に書込んで更新する。本発明では、図９（Ｂ）に示すように、プログラム部１Ｂのプログラム内、及びＩＰＬ部１Ａの書換えプログラム内にそれぞれＩＤ情報を設定しておき、後述するＩＤ番号記憶部のＩＤ情報と照合することで、プログラムの正当性を検査するようにしている。
【００２２】
上記フラッシュメモリ１の書換え，消去は、ＣＰＵの動作モードを所定のモード（本例ではブートモード又はユーザプログラムモード）に設定することで可能となる。ここでは、ユーザプログラムモードに設定してプログラムの書換えを行う場合を例として図１０のフローチャートに沿って説明する。なお、紙幣入金機の各ユニットに搭載される各種基板に対する書換え形態や具体的な操作手順については後述するものとし、ここでは、フラッシュメモリの書換え時のユーザプログラムの実行手順を説明する。
【００２３】
フラッシュメモリの書換えを行う場合は、先ず、ＣＰＵの動作モードをユーザプログラムモードに設定する。この動作モードの設定はＣＰＵのモード端子によって設定する（ステップＳ１）。この状態でリセットによりＣＰＵを起動すると（ステップＳ２）、フラッシュメモリ上の書込みプログラムがＣＰＵのＲＡＭ内部に転送されて（ステップＳ３）、書込みプログラムが実行される。なお、フラッシュメモリ内のＩＰＬ部をＲＡＭに移して実行させるのはフラッシュメモリの書込みモードに設定するとプログラムの読出しができなくなるためである（ステップＳ４）。そして、この書込みプログラムによりフラッシュメモリの書換えを実行する。書換え対象となるプログラムの転送元は、通信媒体又はメモリカード等の外部記録媒体であり、書込みプログラムでは、当該プログラムを外部からダウンロード若しくは外部記録媒体から転送してフラッシュメモリの書換えを行う。
【００２４】
なお、プログラムの書込み時は、書込みコマンドによりＣＰＵのモードを書込みモードとし、消去コマンドにより書込み領域（プログラム部）を消去した後、プログラムデータを所定の分割ブロック単位でＣＰＵに送信して当該ＣＰＵの書込み領域内に転送する。その際、書込みプログラム等の基本プログラムが格納される領域（ＩＰＬ部１Ａ）も変更する場合は、例えば基本プログラムをプログラム部１Ｂに転送し、ＩＰＬ部１Ａを消去した後にプログラム部１Ｂの基本プログラムをＩＰＬ部１Ａに書込み、その後にプログラム部１Ｂを書込む（ステップＳ５）。この方法では、ＩＰＬ部１Ａも、プログラム部１Ｂの書換えも元のＩＰＬプログラムに依存するが書換え可能である。この場合、ＩＰＬ部のプログラムはユーザの設計によるものなので、プログラムＩＤ、バージョンのチェックは可能である。
【００２５】
フラッシュメモリの書換え終了後、プログラム部のユーザプログラムが起動されるが、本発明では、この時点でプログラムの正当性の検証処理等を実施する（ステップＳ６）。なお、ブートモードに設定された場合は、リセット解除後に予め組込まれているブートプログラムが起動され、所定の初期化処理が行われた後、外部からのプログラムデータの受信が可能となり、上記ステップＳ４以降の処理（全領域の書換え処理）が実行される。このブートモードでは受信データのチェックを行うことなくフラッシュメモリに順次書込みがされる。
【００２６】
以下に、上記ステップＳ６におけるプログラムの正当性の検証処理とＩ／Ｏポートの初期化処理について、図１１のフローチャートの流れに沿って詳細に説明する。なお、以下の処理は、プログラム部１Ｂのプログラム内に組み込まれる。
【００２７】
フラッシュメモリの書換え後に起動されたプログラムでは、先ず、基板認識ポート（ＩＤ読出ポート）のモードの初期設定（入力モード、出力モード、出力の箇所は初期値を設定）をして（ステップＳ１１）、基板認識ポートを介して上記ＩＤ番号記憶部に記憶されている内容を読込む。この基板認識ポートのアドレスは全ての基板とも同一アドレスが設定されており、図７，図８の例では、ＣＰＵの内蔵ポートでアドレスＦＦＦＣ２Ｈ番地（Ｈは１６進表記を示す符号：以下同様）のビットＤ６，Ｄ７と、ＦＦＦＣＡＨ番地の下４ビットＤ０〜Ｄ３を読出して、合計６ビットから成る基板認識コードを読込む。本例では、ＩＤ番号記憶部に記憶されている基板認識コードは、各基板（各ワンチップＣＰＵ）を特定するＩＤ番号であり、例えば、紙幣繰出ユニットであれば“０６Ｈ”が、一時保留ユニットであれば“０３Ｈ”となっている（ステップＳ１２）。
【００２８】
ここで、上記ＩＤ番号記憶部の設置場所とプログラムの検証形態について説明する。図１２（Ａ）は、ＩＤ番号記憶部の存在する場所の例を概念図で示しており、フラッシュメモリ１のメモリ空間のＩＰＬ部（ユーザ作成のダウンロード制御プログラム等の書換えプログラム領域内）１ＡにＩＤ番号記憶部２を設けた例である。この場合、ＩＤ番号記憶部２のメモリアドレスの内容２ａを読出してプログラム部１Ｂに書込まれたプログラム中の特定アドレスに設定されているＩＤ情報（後述するプログラム種類コード）１ｂと比較することにより当該プログラムの正当性を検証する。図１２（Ｂ）は、Ｉ／Ｏ空間（外部メモリ等）にＩＤ番号記憶部２を設けた例である。この場合、基板認識ポート４を介して読出したＩＤ番号記憶部２のＩＤ情報２ａと、ＩＰＬ部１Ａ及びプログラム部１Ｂの各プログラム中のＩＤ情報１ａ，１ｂとを比較して検証する。また、図１２（Ｃ）は、ワンチップＣＰＵが直接アクセスすることができない領域のメモリ空間、例えば読出し及び書込みの方法が通常とは異なっている領域のメモリ空間に設けた例であり、本例ではシリアル通信のポート４ａを経由した外部記録媒体２ＡにＩＤ番号記憶部２を設けた例を示している。この場合、外部記録媒体２Ａとしては、例えば書込みが１回のみ可能で以降は読出しオンリーとなる“ワンタイムＲＯＭ”又は“ＥＥＰＲＯＭ”を使用するのが好ましい。なお、Ｉ／Ｏポートに接続される外部記憶部を基板の外に設けずに、基板上に設けるようにしても良い。
【００２９】
図１２（Ｄ）は、メモリ空間とＩ／Ｏ空間の両者にＩＤ番号記憶部２を設けた例を示している。この場合は、次のステップＳ１３において、メモリ空間のＩＤ番号記憶部２に記憶されている内容２ａ’と、Ｉ／Ｏ空間のＩＤ番号記憶部に記憶されている内容２ａ”と、プログラム中のプログラム種類コード１ｂとをそれぞれ比較して検証する。なお、比較処理は本例ではソフトウェアで行う形態としているが、ハードウェア（コンパレータ）で行うようにしても良い。さらに、図１２（Ｅ）に示すように、各ユニットの基板の外部にＩＤ番号記憶部２を設けて、コネクタケーブル５等を介して読出すようにしてもよい。
【００３０】
上記のＩＤ番号記憶部２をメモリ空間或いは、外部の書換え可能なメモリ空間に設けた場合は、プログラムの版数（バージョン）情報をＩＤ番号と共に記憶しておくのが望ましい。以下に説明するステップＳ１３，Ｓ１４の処理においては、プログラム中の特定アドレスに格納されている版数情報とＩＤ番号記憶部内の版数情報とを比較し、異なる場合は、互換性の無いプログラムと判断して当該プログラムを実行しないようにすることで、互換性の無いプログラムがロードされた時にはプログラムを実行しないようにしている。
【００３１】
続いて、ステップＳ１３以降の処理を説明する。上記ステップＳ１２でのＩＤ番号記憶部の内容の読込みに続いて、フラッシュメモリに書込まれたプログラム内のプログラム種類コード（ＩＤ番号，バージョン情報）を読込む。このプログラム種類コードは、プログラム中の一定アドレスに格納されており、複数のプログラムが存在する場合は、各プログラム中のプログラム種類コードを全て読込む（ステップＳ１３）。そして、ＩＤ番号記憶部に記憶されている内容と、全てのプログラム種類コードとを比較し、全プログラムが現在の基板で動作可能か否かを検証する。本例では、ＩＤ番号及びバージョン情報が全て一致する場合に動作可能と判定するようにしている（ステップＳ１４，Ｓ１５）。全プログラムが現在の基板で動作可能と判定した場合は、センサ／アクチュエータ類を対象としたＩ／Ｏポートの初期化処理を実行し（ステップ１６）、通常の処理を続行する。
【００３２】
これ以降の処理は従来と同様であり、例えば、当該ポートに接続されている機器のリセット動作，各センサのチェック等による動作確認を行い、異常が無ければ待機状態とする（ステップ１７）。上記ステップＳ１６において、いずれかのプログラム種類コードが基板認識コードとは異なる場合、すなわち、現在の基板で動作不能と判定した場合は、センサ／アクチュエータ類のＩ／Ｏポートの初期化処理をせずに、例えば全体制御ユニットのエラー処理部を介して外部コンピュータ側でエラー表示するなど、所定のエラー処理を行い（ステップ１８）、プログラムを停止する（ステップ１９）。なお、上記ステップＳ１１〜Ｓ１９の処理は、プログラム書換え時以外の動作確認時にも実施される。例えば、紙幣入金機の場合は、紙幣入金機のパワーオン時に、選択されたＣＰＵの動作モードに従って上記処理が実行される。
【００３３】
次に、紙幣入金機の各ユニットに搭載される各種基板に対する書換え形態と、具体的な操作手順について説明する。
【００３４】
各種基板に対する書換え形態としては、大別すると次の（ａ），（ｂ）に示す形態がある。
（ａ）外部コンピュータから通信によりダウンロードして書換える形態
この形態は、外部コンピュータ（本例ではＰＣ：パーソナルコンピュータ）から通信により該当プログラムをダウンロードして書換える形態であり、主に、工場で基板の実装組立が完了した時点で行うものである。すなわち、この形態（ａ）によってフラッシュメモリへのプログラム初期書込みを行い、後に行うプログラムの書込みは通常は次に示す（ｂ）の形態で行うことになる。形態（ａ）では、ＰＣと基板とを通信媒体（例えばＲＳ−２３２Ｃケーブル）を介して通信により１対１で接続し、書換え対象のＣＰＵの選択メニューをＰＣ側で表示し、選択されたＣＰＵのＩＰＬ部とプログラム部のプログラムをフロッピ−ディスク等の記録媒体から読込み、ＰＣから紙幣入金機側にダウンロードして基板単体に書込む。この場合、本体制御基板と接続し、本体制御基板経由で他の基板に当該プログラムを転送して各基板のフラッシュメモリに書込むようにしても良い。
【００３５】
（ｂ）メモリカードを基板に装填して書換える形態
この形態は、メモリカードから該当プログラムをＣＰＵのメモリに転送して書換える形態であり、ＩＰＬ部を書換えることも可能であるが、主に装置搬入後の現地でのプログラム部のバージョンアップ時に使用する。
（ｂ−１）本体制御基板の書換え
本体の全体制御ユニット１６に搭載されている本体制御基板の場合、メモリカード１を本体制御基板に装填して、本体制御基板のＣＰＵのフラッシュメモリを書換える。
（ｂ−２）本体制御基板以外の各種基板の書換え
本体基板以外の基板は、メモリカードを本体制御基板に装填して本体制御基板から各種基板にダウンロードする。例えば紙幣入金機のパネル操作で基板を選択し、本体制御基板のＣＰＵでメモリカードの当該データ（ＩＰＬ部又はプログラム部）を該当のＣＰＵのメモリに転送して書換える。
【００３６】
次に、前記（ａ）の形態、すなわち外部コンピュータから通信によりダウンロードして該当のＣＰＵのプログラムを書換える形態（以下、第１の書換え形態と言う）と、前記（ｂ）の形態、すなわち基板に装填可能な外部記録媒体（本例ではメモリカード）を全体制御ユニットの制御基板に装填して各ＣＰＵのプログラムを書換える形態（以下、第２の書換え形態と言う）について、それぞれ書換え時の操作手順の具体例を示して全体の流れを説明する。以下、貨幣処理システムに適用した場合を例として説明する。
【００３７】
図１３は、貨幣処理システムの構成の一例を示しており、例えば銀行の窓口などで使用されるテラーズマシンに適用される。この貨幣処理システムは、紙幣入金機１０と紙幣出金機２０とが紙幣処理機の筐体内に設けられ、筐体の正面には、扉開閉インターロックスイッチにより開閉される扉が設けられている。上記紙幣入金機１０と紙幣出金機２０、及び硬貨処理機３０は、それぞれ通信ケーブル４５を介して上位ＰＣ（外部コンピュータ）４０と接続され、上位ＰＣ４０には、ＣＲＴ４１，キーボード４２，プリンタ４３，通信Ｉ／Ｆ装置４４等の周辺機器が接続されている。
【００３８】
このような構成において、第１の書換え形態におけるプログラム書換え手順を、図１４のフローチャートの流れに沿って説明する。ここでは、各装置のうち、紙幣入金機１０を例として、基板の工場内での実装組立が完了した直後の作業手順について説明する。
【００３９】
先ず、図１５に示すように、上位ＰＣ４０と各制御基板（１０Ａ〜１６Ａのうちの１枚）とを通信アダプタ４５ａを介して接続し、ブートモードに設定した後（ステップＳ２１）、接続した制御基板をパワーオンする（ステップＳ２２）。次に、上位ＰＣ４０側のＣＲＴ４１に表示される図１６に示すようなプログラム選択メニューの中から、書換え対象のＣＰＵを選択する。書換え対象のＣＰＵ，すなわちプログラムが選択されると（ステップＳ２３）、上位ＰＣ４０ではＦＤ等の記憶媒体から当該プログラムを読込んでそのプログラム名と版数（バージョン）をＣＲＴ４１に表示した後、前述のプログラム書換え手順により上位ＰＣ４０から当該プログラムをＣＰＵのメモリに転送し、当該メモリ（ＩＰＬ部，プログラム部）への書込みを行う（ステップＳ２４）。
【００４０】
そして、フラッシュメモリへの書込みが完了した基板を紙幣入金機１０の当該ユニットに実装し（ステップＳ２５，Ｓ２６）、動作確認を行う。この動作確認では当該ユニットに接続される周辺機器の動作確認が行われるが、その前の時点で前述の正当性の検証処理とＩ／Ｏポートの初期化処理が実行される。すなわち、フラッシュメモリ１のＩＰＬ部及びプログラム部の各プログラム内のＩＤ番号（及びバージョン情報）と、ＩＤ番号記憶部２のＩＤ番号（及びバージョン情報）とが照合され、正当と判断されたのであれば、前述のＩ／Ｏポートの初期化処理に続いて動作確認が実行されるようにしている。そして、動作確認がＯＫであれば、処理を終了して待機状態とする（ステップＳ２７）。
【００４１】
次に、第２の書換え形態におけるプログラム書換え手順を、図１７のフローチャートの流れに沿って説明する。
【００４２】
第２の書換え形態は、メモリカード等のプログラムを記録した外部記録媒体を本体制御基板１６Ａに装着し、外部記録媒体から各ＣＰＵのプログラムを本体制御基板１６Ａから転送して各ＣＰＵのプログラムを書換える形態であり、以下、基板に装填可能なメモリカードを用いた場合を例として説明する。
【００４３】
図１８は、各ＣＰＵのプログラムを記録したメモリカードのメモリマップを示しており、紙幣入金機の各ユニットに対応して当該プログラムが配置された構成となっている。この例では、メモリカード３には、紙幣入金機１０を構成する本体（全体制御ユニット）１６，繰出ユニット１１，リサイクル（一時保留）ユニット１４，回収（金庫）ユニット１５，及び払出ユニット１３の順に各ＣＰＵのプログラムが格納されており、各プログラム中には前述のプログラム種類コード（ＩＤ番号，バージョン情報）が記録されている。
【００４４】
先ず、上記のような各ＣＰＵのプログラムが書込まれたメモリカード３を、紙幣入金機本体の制御基板のソケットに差し込んで装着した後（ステップＳ３１，Ｓ３２）、紙幣入金機本体の電源を投入する（ステップＳ３３）。次に、紙幣入金機１０の操作パネルを操作して書換えた対象のユニット（ＣＰＵ）を選択する（ステップＳ３４）。全体制御ユニット１６のＣＰＵでは、選択された書換え対象のプログラム名とその版数（バージョン）を表示して確認を促す（ステップＳ３５）。確認ＯＫであれば、前述のプログラム書換え手順によりメモリカードから当該プログラムをＣＰＵのメモリに転送し、旧プログラムを消去して新プログラムの当該メモリ（ＩＰＬ部又はプログラム部）への書込みを行う。
【００４５】
その際、本体基板以外の基板は、本体制御基板のＣＰＵの制御により各種基板のＣＰＵ内のフラッシュメモリにダウンロードする（ステップＳ３６）。そして、フラッシュメモリの書換え完了後、前述の正当性の検証処理を実行し（ステップＳ３７）、正常であればセンサ／アクチュエータ類を対象としたＩ／Ｏポートの初期化処理を実行し（ステップＳ３８）、周辺機器の動作確認を行う（ステップＳ３９）。そして、正常であれば紙幣入金機本体の電源をオフしてメモリカードを抜取り（Ｓ４０，Ｓ４１）、プログラムの書込み作業を終了する。上記ステップＳ３７で書換え後のプログラムが誤っている場合は、エラー表示が表示されるので、その表示内容等により原因（メモリカードの内容の誤り、基板への装填ミス等）を追求し、判明して対処したのであれば、ステップＳ３１から再度実施する。なお、フラッシュメモリのＩＰＬ部１Ａに格納されている書換えプログラム（ＩＰＬ部）の書込みを行う場合でも上記と同様の流れとなる。
【００４６】
上述した実施の形態では、紙幣入金機を例として説明したが、同型ＣＰＵを備えた複数ユニットから成る装置であれば本発明を適用することができる。なお、フラッシュメモリを例として説明したが、書換え可能なフラッシュメモリを使わず従来のＲＯＭを用いる場合には、ユーザプログラム内のＩＤと外部ボートのＩＤとの一致を見ることにより、誤まって他のＣＰＵ用のＲＯＭを差した場合でも部品の破損を招くことなく対処できる。
【００４７】
【発明の効果】
以上に説明したように本発明によれば、実行する機械語が同一の同型ＣＰＵが搭載されるユニットを複数備えた装置において、個々のユニットのプログラムを書換えた場合で、特に、間違えて他のユニットのプログラムで書換えてしまった場合に、書換えたプログラムの実行前に間違えを検出してＩ／Ｏポートのモードセット等の初期化を行わないようにしたので、機器の損傷を防止することができる。さらに、Ｉ／Ｏポートに接続される外部記憶部を基板の外に設け、ＩＤ番号記憶部が基板の取替えに関係無くＩＤの設定が保持されるものであれば、基板の交換が有ってプログラムの変更を忘れていても当該ユニットの破損を防止することができる。
【図面の簡単な説明】
【図１】本発明を適用した紙幣入金機の外観構成の一例を示す斜視図である。
【図２】紙幣入金機の内部構成の一例を示すブロック図である。
【図３】紙幣入金機のユニット構成の一例を示すブロック図である。
【図４】紙幣入金機の内部構造とセンサ／アクチュエータ類の配置構成の一例を示す構造図である。
【図５】一時保留ユニットの構成例を示すブロック図である。
【図６】繰出ユニットの構成例を示すブロック図である。
【図７】一時保留ユニットのポートテーブルの構成例を示す図である。
【図８】繰出ユニットのポートテーブルの構成例を示す図である。
【図９】ＣＰＵに内蔵されるフラッシュメモリの構成を示す図である。
【図１０】フラッシュメモリの書換え時の実行手順を説明するためのフローチャートである。
【図１１】本発明に係るプログラムの正当性の検証処理とＩ／Ｏポートの初期化処理を説明するためのフローチャートである。
【図１２】本発明に係るＩＤ番号記憶部の設置場所を示す模式図である。
【図１３】本発明を適用した貨幣処理システムの構成の一例を示すブロック図である。
【図１４】本発明に係る第１の書換え形態におけるプログラム書換え手順を説明するためのフローチャートである。
【図１５】上位ＰＣと紙幣出金機側の本体制御基板との接続形態を示す模式図である。
【図１６】書換え対象の選択画面の一例を示す図である。
【図１７】本発明に係る第２の書換え形態におけるプログラム書換え手順を説明するためのフローチャートである。
【図１８】本発明に係るメモリカードのメモリマップを示す図である。
【符号の説明】
１  フラッシュメモリ
１Ａ  ＩＰＬ部
１ａ  ＩＤ情報
１Ｂ  プログラム部
１ｂ  ＩＤ情報
２  ＩＤ番号記憶部
２Ａ  外部記録媒体
２ａ  ＩＤ情報
２ａ’  ＩＤ情報
２ａ”  ＩＤ情報
３  メモリカード
４  基板認識ポート
４ａ  シリアル通信ポート
５  ＲＡＭ
６  マスクＲＯＭ
１０  紙幣入金機
１０ａ  取込口
１０ｂ  返却口
１１  繰出ユニット
１１ａ  繰出部
１２  認識ユニット
１２ａ  識別部
１３  払出ユニット
１３ａ  払出部
１４  一時保留ユニット
１４ａ  一時保留部
１５  金庫ユニット
１５ａ  回収部
１６  全体制御ユニット（全体制御部，搬送部）
１６Ａ  本体制御基板
１７  電源ユニット
２０  紙幣出金機
３０  紙幣処理機
４０  上位ＰＣ
４１  ＣＲＴ
４２  キーボード
４３  プリンタ
４４  通信Ｉ／Ｆ装置
４５  通信ケーブル
４５ａ  通信アダプタ
ＰＴ１  繰出ユニットのポートテーブル
ＰＴ４  一時保留ユニットのポートテーブル
【図１】
0003945616.tif 000002
【図２】
0003945616.tif 000003
【図３】
0003945616.tif 000004
【図４】
0003945616.tif 000005
【図５】
0003945616.tif 000006
【図６】
0003945616.tif 000007
【図７】
0003945616.tif 000008
【図８】
0003945616.tif 000009
【図９】
0003945616.tif 000010
【図１０】
0003945616.tif 000011
【図１１】
0003945616.tif 000012
【図１２】
0003945616.tif 000013
【図１３】
0003945616.tif 000014
【図１４】
0003945616.tif 000015
【図１５】
0003945616.tif 000016
【図１６】
0003945616.tif 000017
【図１７】
0003945616.tif 000018
【図１８】
0003945616.tif 000019