(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
通常、電子機器装置は通信線を介して上位装置と接続され、上位装置からの指令に従って処理を実行するようになっている。このように、上位装置と電子機器装置(下位装置)との通信を確立するためには、RS232C方式、パラレルポート方式、USB接続方式など種々の通信方式が採用されている。
【0003】
RS232C方式やパラレルポート方式という従来型の接続方式は、データ線以外に各種制御線を実装することが可能であり、下位装置に応じたきめ細かい制御を行うことができる。一方、近年主流となっているUSB接続方式は、メーカーを問わずに外部機器を接続可能なので外部機器接続のデファクトスタンダードとして手軽ではあるが、USB規格が電力供給とデータ交換に主眼を置いていることから、それ以外の制御自由度がほとんどない。
【0004】
そのため、従来型の接続方式では、上位装置が何らかの手段で通信異常を検知すると、各種制御線を介して下位装置を復旧させることが可能であるが、USB接続方式では、ソフトウェア的に下位装置の異常を検知することはできても、上位装置からの指令によって下位装置を復旧させることは汎用的な構成では不可能である。
【0005】
例えば、特許文献1は、ホスト機器とデバイス機器とを専用線を介して信号を送受信する専用インタフェース回路を備え、専用線を介した信号の送受信によってハングアップの復旧を実現している。
【0006】
また、特許文献2は、ホスト機器とUSB機器とをUSBケーブルを介して信号を送受信するものであり、ホストからのUSB規格上のバスリセットを検出してUSB機器はリセット動作を実行している。
【0007】
【特許文献1】特開2003−131956号公報(
図1)
【特許文献2】特開2005−352942号公報(
図1)
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1に見られる従来型の接続方式では、専用線を接続するための専用インタフェース回路を上位装置と下位装置に設ける必要がある。また、上位装置からの指令に従って処理を実行するためには、上位装置に下位装置の電源を制御する電源制御用回路を設けて下位装置を制御する必要がある。これらは上位装置の構成の変更やそれに伴う構成の複雑化、コスト増の要因となりえる。特に既存装置の動作安定性を向上させる場合、すなわち、上位装置との通信において電子機器装置を安定して動作させる場合はより顕著となる。
【0009】
また、特許文献2に見られる近年主流のUSB接続方式では、良好な通信環境下では下位装置の動作安定性に支障を来たすことはないが、下位装置が発する電磁波等によりノイズにさらされるような通信環境下では、通信が停止したり、通信の不具合が発生することがある。このときに、上位装置に不具合が発生しているのか、下位装置に不具合が発生しているのか、そもそも通信の不具合なのかを外部から検出することは非常に困難であり、結果的に上位装置及び下位装置双方の復旧を図るということになり、システム効率が下がるという問題がある。
【0010】
また、単一のUSBケーブルで上位装置と下位装置を接続した場合は、通信環境は正常で下位装置に不具合がある状態を検出することができない。具体的には、USB機能を内蔵しているCPUを使用する場合、USB標準コマンドへの応答をハードウェア的に処理してしまうことがあるため、下位装置におけるソフトウェアの暴走などで下位装置が異常動作しても、それを外部から検出することができない。その結果、下位装置が正常に動作しているか否かの監視ができないという問題がある。
【0011】
本発明は、このような点に鑑みてなされたものであり、その目的は、上位装置と電子機器装置(下位装置)との通信構成を複雑化させることなく電子機器装置を安定して動作させることのできる電子機器装置を提供することにある。また、上位装置との通信において電子機器装置を安定して動作させることができる電子機器装置を提供することにある。
【課題を解決するための手段】
【0012】
以上のような課題を解決するために、本発明は、以下のものを提供する。
【0013】
(1) 上位装置からの指令に従って処理を実行する電子機器装置であって、電子機器装置の動作の制御機能を有する第1の情報処理手段と、電子機器装置の動作状態の監視機能を有する第2の情報処理手段と、前記第1の情報処理手段と上位装置との間で、各種データの送受信を行う第1の汎用性通信手段と、前記第2の情報処理手段と上位装置との間で、電子機器装置の動作状態を示す動作状態信号を通信する第2の汎用性通信手段と、
前記第1の情報処理手段に対するリセット信号又は電源ON/OFF信号を生成する第1のリセット回路又は第1の電源回路と、前記第2の情報処理手段に対するリセット信号又は電源ON/OFF信号を生成する第2のリセット回路又は第2の電源回路と、を有
し、前記第1の情報処理手段で実行されるリセット信号又は電源ON/OFF信号は、前記第2のリセット回路からのリセット信号又は前記第2の電源回路からの電源ON/OFF信号を受信した前記第2の情報処理手段の指令に基づいて、前記第1のリセット回路又は前記第1の電源回路で生成されることを特徴とする電子機器装置。
【0014】
本発明によれば、電子機器装置は、第1の汎用性通信手段及び第2の汎用性通信手段によって上位装置と別々に接続され、第1の汎用性通信手段は上位装置からの指令に従って電子機器装置の動作の制御を行う第1の情報処理手段に接続され、第2の汎用性通信手段は電子機器装置の動作状態の監視を行う第2の情報処理手段に接続されていることから、第2の情報処理手段は第1の情報処理手段の動作状態を監視しつつ、第1の情報処理手段は上位装置からの指令に従って電子機器装置の動作の制御を行うことができ、電子機器装置の動作に不具合が生じた場合でも、第2の情報処理手段による復旧が可能となることから、上位装置によらずに電子機器装置を安定して動作させることができる。
【0015】
(2) 前記第2の情報処理手段は、前記第1の情報処理手段に対するソフトウェアの更新機能を有することを特徴とする電子機器装置。
【0016】
本発明によれば、第2の情報処理手段は、第1の情報処理手段に対してソフトウェアの更新を行うことができることから、第1の情報処理手段が実行するプログラム等のソフトウェア全体に対する更新が可能となり、電子機器装置の動作に不具合が生じた場合でも、上位装置によらずに正常なソフトウェアの導入によって電子機器装置を安定して動作させることができる。
【0017】
(3) 前記第2の情報処理手段が
前記第1の情報処理手段の動作状態の監視に成功していないと判断したときは、前記第2の情報処理手段は前記第1の情報処理手段に対してリセット信号を送信して
又は電源ON/OFF信号を送信して電子機器装置の電源を入れ直して、電子機器装置を初期状態に設定することを特徴とする電子機器装置。
【0018】
本発明によれば、電子機器装置の動作に不具合が生じて第2の情報処理手段が監視に成功していない場合は、第2の情報処理手段は第1の情報処理手段に対してリセット信号を送信して電子機器装置を初期状態に設定することができることから、上位装置によらずに第2の情報処理手段による復旧が可能となり、電子機器装置を安定して動作させることができる。
【0019】
(4) 前記リセット信号
又は前記電源ON/OFF信号を受信した第1の情報処理手段が電子機器装置の初期状態への設定に成功していないと判断したときは、その旨を
上位装置に通知し、前記第2の情報処理手段は前記第1の情報処理手段に対して電源
OFF信号を送信し
て電子機器装置の電源を
OFF状態にし、上位装置による復旧によって電子機器装置の電源を入れ直すことを特徴とする電子機器装置。
【0020】
本発明によれば、第1の情報処理手段に対するリセット信号の入力によって電子機器装置を初期状態に設定することができない場合は、第1の情報処理手段に対して電源ON/OFF信号を送信して電子機器装置の電源を入れ直すことができることから、上位装置によらずに第2の情報処理手段による復旧が可能となり、電子機器装置を安定して動作させることができる。
【発明の効果】
【0021】
本発明に係る電子機器装置は、動作異常時に自己復旧を図ったり、上位装置からの復旧動作によって復旧が可能となり、上位装置はそのままの状態でよいからシステム効率が下がることはなく、電子機器装置の動作安定性の向上につながる。
【0022】
また、本発明に係る電子機器装置は、第2の情報処理手段が第1の情報処理手段をブートモードに制御可能であるから、ソフトウェア全体を更新することができるようになり、電子機器装置の動作安定性の向上や保守性の向上につながる。
【発明を実施するための形態】
【0024】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【0025】
[機能ブロックの説明]
図1は、本発明の実施の形態に係る上位装置10と電子機器装置30のシステム構成を示すブロック図であり、上位装置10と電子機器装置30とは2本のUSBケーブル21,22でUSB接続されている。
【0026】
上位装置10は、USBケーブル21,22を介して電子機器装置30に信号の送受信を行うUSBホストコントローラ11を備えている。なお、上位装置10はパーソナルコンピュータとして、図示を省略するCPU、RAM,ROM、HDD等も備えている。
【0027】
電子機器装置30は、USBケーブル21,22を介して上位装置10に信号の送受信を行うUSBデバイスコントローラ31,35を備えている。
【0028】
USBケーブル21は、本発明の第1の汎用性通信手段に相当し、
図1において、USBホストコントローラ11とUSBデバイスコントローラ31との間を接続している。また、USBケーブル22は、本発明の第2の汎用性通信手段に相当し、
図1において、USBホストコントローラ11とUSBデバイスコントローラ35との間を接続している。
【0029】
メインCPU32は、電子機器装置30の動作の制御機能を総合的に司る第1の情報処理手段としての中核をなし、リセット回路33からのリセット信号に基づいて電子機器装置30のリセット命令を実行する。また、電源回路34からの電源ON/OFF信号に基づいて電子機器装置30の電源のON/OFF命令を実行する。さらに、リセット回路37にリセット信号を送信したり、電源回路38に電源ON/OFF信号を送信したりする。なお、本発明の実施の形態では、メインCPU32は、サブCPU36に対してブートモード設定の信号を送信してブートモード設定命令を実行することができるようになっている。
【0030】
リセット回路33は、サブCPU36からのリセット信号を受信して、メインCPU32を含む電子機器装置30全体にハードリセットをかけ、CPU32を初期化する。電源回路34は、サブCPU36からの電源ON/OFF信号に基づいてメインCPU32を含む電子機器装置30全体に電源のON/OFFをかける。
【0031】
サブCPU36は、電子機器装置30の動作状態の監視機能を司る第2の情報処理手段としての中核をなし、リセット回路37からのリセット信号に基づいてリセット回路33にリセット信号を送信したり、電源回路38からの電源ON/OFF信号に基づいて電源回路34に電源ON/OFF信号を送信したりする。なお、本発明の実施の形態では、サブCPU36は、メインCPU32に対してブートモード設定の信号を送信し、ブートモード設定により電子機器装置30のソフトウエアを書き換えることができるようになっている。
【0032】
上記構成によれば、メインCPU32は電子機器装置30本来の機能(主機能)を発揮するために設けられ、サブCPU36は電子機器装置30の動作状態を監視する機能(動作監視機能)を発揮するために設けられており、サブCPU36による動作監視の状況に応じて、メインCPU32を含むリセット回路33や電源回路34による総合的な電子機器装置30の動作の制御をすることができる。なお、動作状態とは、電子機器装置30が期待した機能を実現可能な状態をいう。
【0033】
なお、本発明の実施の形態によれば、電子機器装置30において、メインCPU32およびサブCPU36はそれぞれブートモード設定の機能を有している。このため、サブCPU36がメインCPU32に対してブートモード設定の信号を送信することによって、メインCPU32をブートモードに遷移させてソフトウェアの更新(アップデート)をすることができる。また、メインCPU32がサブCPU36に対してブートモード設定の信号を送信することによって、サブCPU36をブートモードに遷移させてソフトウェアの更新(アップデート)をすることができる。これにより、メインCPU32とサブCPU36とによる相乗効果により、ソフトウェアの保守性を向上させることができる。また、更新の際には、更新用のソフトウェアをフラッシュメモリ等の記憶部に常駐させることなく、メインCPU32やサブCPU36をブートモードに制御可能にしたことから、更新用ソフトウェア自身を更新することが可能となり、ソフトウェアの部分的更新ではなく全体的更新をすることができ、ソフトウェアの保守性をより向上させることができる。
【0034】
[メインCPUによる制御機能]
図2は、本発明の実施の形態に係る電子機器装置30のメインCPU32による制御機能を説明するためのフロー図である。
【0035】
USBケーブル21で接続された上位装置10と電子機器装置30とにおいて、電子機器装置30に電源が供給されると、メインCPU32は、エニミュレーション、つまり、USB規格に定めた電子機器装置30が上位装置10に接続された際の起動処理を実行してその処理が完了したかどうかを判断する(ステップS201)。より具体的には、このエニミュレーションは、例えば、上位装置10と電子機器装置30とがUSBケーブル21で接続されると、上位装置10は、電子機器装置30を識別する固有番号を付与され、この固有番号に基づき、上位装置10と電子機器装置30との間で通信等が行われる。なお、エニミュレーションとは、USB規格で定義された通信確立手順のことであり、具体的な手順は公知であるので、ここでの詳細な説明は省略する。
【0036】
エニミュレーション処理が完了後、電子機器装置30のメインCPU32の初期化が行われる。ここで、初期化とは、電子機器装置30が使用可能な状態となるように準備を行うための動作をいい、この初期化動作は、電子機器装置30の電源投入時、始業開始前あるいは所定のエラー処理後等に行われる。例えば、電子機器装置30内のROM/RAMチェック、ポート設定、変数設定等のソフトウェア処理のことをいう。初期化を行った後に、初期化完了信号をセットして(ステップS202)、CPUの出力ポートをON(High)にする。
【0037】
エニミュレーションと初期化が完了すると、メインCPU32は上位装置10からの指令に従って電子機器装置30の主機能の処理を実行する(ステップS203)。主機能の処理とは、例えば、電子機器装置30としてカードリーダーを採用する場合には、カードの読み取り機能、取り込み機能等、カードのリード/ライトに付随するすべての機能を発揮する。
【0038】
メインCPU32は、サブCPU36からの生存確認信号がセットされたか否かを判断し(ステップS204)、生存確認信号がセットされたと判定すれば生存確認信号をクリアする一方(ステップS205)、生存確認信号がセットされていないと判定すれば処理をステップS203に戻して、電子機器装置30の主機能の処理を実行する。例えば、サブCPU36がメインCPU32に対して生存確認信号を送信し、メインCPU32は生存確認信号がセットされた状態となり、この生存確認信号がセット(送信)された時点から所定の異常判断時間が経過するまでに、メインCPU32から生存確認信号に対する所定の応答信号を受信すれば、サブCPU36は、セットされた状態がクリアされた状態となり、サブCPU36はメインCPU32の動作が正常であると判断する。もし、異常判断時間内に応答信号を受信できなければ、サブCPU36はメインCPU32に暴走や故障などの異常が発生したと判断する。
【0039】
[サブCPUによる監視機能]
図3は、本発明の実施の形態に係る電子機器装置30のサブCPU36による動作監視機能を説明するためのフロー図である。
【0040】
USBケーブル22で接続された上位装置10と電子機器装置30とにおいて、サブCPU36は、上述のエニミュレーションを実行してその処理が完了したかどうかを判断する(ステップS301)。次いで、サブCPU36の初期化を行った後に、初期化完了信号をセットする(ステップS302)。
【0041】
エニミュレーションと初期化が完了すると、サブCPU36は電子機器装置30の電源がON状態になっているか否かを判断し(ステップS303)、電源がON状態になっていないと判定すると、ON状態になるまでステップS303の処理を繰り返す。ステップS303にて電子機器装置30の電源がON状態になっていると判定すると、初期化監視タイマーを例えば5秒間にセットする(ステップS304)。
【0042】
サブCPU36による初期化監視タイマーのセットが完了すると、メインCPU32の初期化が完了したか否かを判断し(ステップS305)、初期化が完了したと判定すると、ステップS309に処理を進める一方、初期化が完了していないと判定すると、初期化監視タイマーがタイムアップしたか否かをサブCPU36は判定する(ステップS306)。なお、ステップS305においてサブCPU36は初期化が完了したと判定すると、メインCPU32にその旨が通知され、メインCPU32は初期化完了信号をセットすることになる(
図2のステップS202)。
【0043】
ステップS306にて初期化監視タイマーがタイムアップしていない、すなわち、上記例示した5秒間を経過していないと判定すると、処理をステップS305に戻し、メインCPU32の初期化が完了したか否かを判断する。一方、ステップS306にて初期化監視タイマーがタイムアップした、すなわち、上記例示した5秒間を経過したと判定すると、後述するリセット処理(ステップS307)や電源ON/OFF処理(ステップS308)を実行する。
【0044】
ステップS309においては、サブCPU36は生存確認タイマーを例えば1秒間にセットする。次いで、サブCPU36はメインCPU32に対して生存確認信号をセットする(ステップS310)。メインCPU32に生存確認信号がセットされたか否かは、
図2のステップS204にて判断される。
【0045】
次いで、サブCPU36は生存確認信号がクリアされたか否かを判断する(ステップS311)。これは、
図2のステップS205において、メインCPU32は生存確認信号をクリアすると、サブCPU36は生存確認信号がクリアされたと判定し、処理をステップS309に戻す。
【0046】
一方、ステップS311において、生存確認信号がクリアされていないと判定すると、生存確認タイマーがタイムアップしたか否かをサブCPU36は判定する(ステップS312)。ステップS306にて生存確認タイマーがタイムアップしていない、すなわち、上記例示した1秒間を経過していないと判定すると、処理をステップS311に戻し、メインCPU32にて生存確認信号がクリアされたか否かを判断する。一方、ステップS312にて生存確認タイマーがタイムアップした、すなわち、上記例示した1秒間を経過したと判定すると、後述するリセット処理(ステップS313)や電源ON/OFF処理(ステップS314)を実行する。
【0047】
このように、動作監視機能を有するサブCPU36は、メインCPU32の初期化が完了したか否かを監視して初期化が正常に完了していない場合や、メインCPU32の生存確認を監視して生存確認ができない場合には、メインCPU32のリセット処理や電源ON/OFF処理を実行することができるので、電子機器装置30の通信不具合や機能不具合が発生しても、上位装置10の再起動若しくはシャットダウンといった上位装置10による復旧を試みることなく、電子機器装置30自体で自己復旧を図ることができることから、電子機器装置を安定して動作させることができる
【0048】
[リセット処理]
図4は、本発明の実施の形態に係る電子機器装置30のサブCPU36で実行されるリセット処理(ステップS307,ステップS313)の内容を説明するためのフロー図である。
【0049】
まず、電子機器装置30のリセット、すなわちメインCPU32をリセットするために、リセット信号を入力する(ステップS401)。リセット信号は、サブCPU36の指令によってリセット回路33で生成された後に、メインCPU32に入力される。
【0050】
次いで、初期化監視タイマーを例えば5秒間にセットする(ステップS402)。サブCPU36による初期化監視タイマーのセットが完了すると、メインCPU32の初期化が完了したか否かを判断し(ステップS403)、初期化が完了したと判定すると、本サブルーチンを終了する。一方、初期化が完了していないと判定すると、初期化監視タイマーがタイムアップしたか否かをサブCPU36は判定する(ステップS404)。
【0051】
ステップS404にて初期化監視タイマーがタイムアップしていない、すなわち、上記例示した5秒間を経過していないと判定すると、処理をステップS403に戻し、メインCPU32の初期化が完了したか否かを判断する。一方、ステップS404にて初期化監視タイマーがタイムアップした、すなわち、上記例示した5秒間を経過したと判定すると、上位装置10に異常を通知して、電子機器装置30の電源をOFF状態にする(ステップS405)。本サブルーチンを終了する。
【0052】
[電源ON/OFF処理]
図5は、本発明の実施の形態に係る電子機器装置30のサブCPU36で実行される電源ON/OFF処理(ステップS308,ステップS314)の内容を説明するためのフロー図である。
【0053】
まず、電子機器装置30の電源を入れ直すために、メインCPU32に対しての電源をOFFにした後、ONの電源信号を入力する(ステップS501)。電源ON/OFF信号は、サブCPU36の指令によって電源回路34で生成された後に、メインCPU32に入力される。
【0054】
次いで、初期化監視タイマーを例えば5秒間にセットする(ステップS502)。
【0055】
サブCPU36による初期化監視タイマーのセットが完了すると、メインCPU32の初期化が完了したか否かを判断し(ステップS503)、初期化が完了したと判定すると、本サブルーチンを終了する。一方、初期化が完了していないと判定すると、初期化監視タイマーがタイムアップしたか否かをサブCPU36は判定する(ステップS504)。
【0056】
ステップS504にて初期化監視タイマーがタイムアップしていない、すなわち、上記例示した5秒間を経過していないと判定すると、処理をステップS503に戻し、メインCPU32の初期化が完了したか否かを判断する。一方、ステップS504にて初期化監視タイマーがタイムアップした、すなわち、上記例示した5秒間を経過したと判定すると、上位装置10に異常を通知して、電子機器装置30の電源をOFF状態にする(ステップS505)。
【0057】
[実施の形態の主な効果]
このように、メインCPU32に対するサブCPU36からの電源ON/OFF処理によって、電子機器装置30自体が電源のON/OFF処理を実行することができるので、電子機器装置30の通信不具合や機能不具合が発生しても、上位装置10の再起動若しくはシャットダウンといった上位装置10による復旧を試みることなく、電子機器装置30自体で自己復旧を図ることができる。このため、電子機器装置を安定して動作させることができる。また、メインCPU32に対するサブCPU36からの
リセット処理又は電源ON/OFF処理によっても自己復旧できない場合は、上位装置10に電子機器装置30の異常を通知して、電子機器装置30の電源をOFF状態にすることにより、上位装置10の再起動若しくはシャットダウン等による上位装置による復旧を試みることができる。すなわち、上位装置10が電子機器装置30の状態を監視するのみならず、電子機器装置30が上位装置10の状態を監視することによって監視状態の相互補完を実現しており、上位装置10は電子機器装置30の異常を検出すると再起動させることができ、電子機器装置30は上位装置10の異常を検出すると第2の汎用性通信手段を使って上位装置10に通知する。
【0058】
[他の実施の形態]
なお、本発明の実施の形態によれば、第2の汎用性通信手段としてUSB接続を用いたが、USB接続をイーサーネット(登録商標)接続に変更することで、ネットワーク経由での状態監視機能の実現も可能である。例えば、上位装置10の基に複数の電子機器装置30が接続される場合には、ネットワーク経由で複数の電子機器装置30の状態監視を上位装置10で一括管理することが可能である。
【0059】
また、上述では、サブCPU36がメインCPU32の状態を監視する電子機器装置30の状態監視を主眼として説明したが、メインCPU32がサブCPU36の状態を監視する機能を付加して、相互監視をすることで、さらに動作安定性を向上させることができる。すなわち、相互監視とは、メインCPU32とサブCPU36とがお互いに状態を監視しており、お互いに前述した生存確認を行う。この場合には、リセット信号は、メインCPU32の指令によってリセット回路37で生成された後に、サブCPU36に入力され、電源ON/OFF信号は、メインCPU32の指令によって電源回路38で生成された後に、サブCPU36に入力される。
【0060】
また、電子機器装置30の電源ON/OFF制御やリセット制御、更にはソフトウェアの更新制御用にサブCPU36を搭載したことにより、上位装置からの要求に応じて電子機器装置30の電源ON/OFF、メインCPU32のリセットを行うことが可能となる。
【0061】
なお、上位装置10からサブCPU36は、仮想COMポート又はHIDデバイスとして制御することも可能であり、仮想COMポートとしてサブCPU36を実装した場合は、従来の接続方式でそのまま使用可能となり、HIDデバイスとして実装した場合は、別にコマンド体系を実装して制御することが可能となる。
【0062】
また、本実施形態では上位装置と電子機器装置を1対1で接続しているが、上位装置と複数の電子機器装置というように1対多数の場合でもよく、USB接続に限らずにイーサーネット接続であってもよい。