(57)【特許請求の範囲】
【請求項１】
ホストコンピュータに接続される周辺装置において、
前記ホストコンピュータからのコマンドおよびデータを受信する手段と、
前記ホストコンピュータとの通信に影響しないエラーであって、当該エラーからの回復には前記周辺装置の電源の再投入あるいは前記周辺装置のリセットが必要なエラーを検出する手段と、
前記検出手段において前記エラーを検出した際に前記ホストコンピュータにエラー発生通知を送信する手段と、
前記ホストコンピュータからのコマンド、前記ホストコンピュータからのデータ、当該データを処理して得られたデータ、前記周辺装置の状態情報の少なくとも一を含むメモリデータを格納する揮発性メモリと、
前記エラー発生時に前記揮発性メモリに格納されたメモリデータを前記ホストコンピュータに送信する手段と、
前記周辺装置の電源が再投入あるいは前記周辺装置がリセットされたことにより前記揮発性メモリの内容が初期化された場合に、前記ホストコンピュータに初期化終了通知を送信する手段とを有することを特徴とする周辺装置。
【請求項２】
請求項１記載の周辺装置において、
前記ホストコンピュータからのコマンドがメモリ転送要求コマンドであった場合、前記揮発性メモリに格納されたメモリデータの送信を開始することを特徴とする周辺装置。
【請求項３】
請求項１又は２記載の周辺装置において、前記ホストコンピュータからのコマンドがメモリ転送コマンドであった場合、当該メモリ転送コマンドに続けて前記ホストコンピュータから送信されるメモリデータを前記揮発性メモリに格納することを特徴とする周辺装置。
【請求項４】
すくなくとも１本以上のデータ受信線と、すくなくとも１本以上のデータ送信線によりホストコンピュータと請求項１乃至３の何れかに記載の周辺装置とを接続したシステムにおいて、
前記ホストコンピュータは、前記周辺装置から前記エラー発生通知を受信した際に前記周辺装置に前記メモリ転送要求コマンドを送信し、前記周辺装置からのメモリデータを受信して前記ホストコンピュータの内部メモリに退避格納することを特徴とする該周辺装置を用いたシステム。
【請求項５】
請求項４記載のシステムにおいて、前記ホストコンピュータは、前記周辺装置からの前記エラー発生通知を受信した際に前記周辺装置のメモリデータの退避が必要であるか否かを判断し、退避不要であると判断した場合には前記周辺装置にメモリ転送不要通知を送信することを特徴とする該周辺装置を用いたシステム。
【請求項６】
請求項４記載のシステムにおいて、前記ホストコンピュータは、前記周辺装置からの前記初期化終了通知を受信した際に前記メモリ転送コマンドおよび前記内部メモリに退避格納した前記周辺装置のメモリデータを送信し、前記周辺装置のメモリデータをエラー発生直前の状態に復帰させることを特徴とする該周辺装置を用いたシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は双方向の通信が可能であり、インタフェースによりホストコンピュータと接続して使用する周辺装置および該周辺装置を用いたシステムに関する。
【０００２】
【従来の技術】
従来の周辺装置では、ホストコンピュータとの通信に影響しない部分の致命的なエラー（以下、復帰不可能エラーと称す）の発生を検出した場合、エラーの発生をホストコンピュータへ通知する。さらにはエラーＬＥＤの点灯や点滅、あるいはブザー等でエラーの発生をオペレータに知らせた後、電源オフあるいはリセットされるのを待っていた。
【０００３】
【発明が解決しようとする課題】
しかし、前述の従来技術ではバックアップ機能を内蔵していない周辺装置は発生したエラーから回復するための電源オフあるにはリセットにより、ホストコンピュータから受信したデータを格納している領域、前記受信データの処理は実行したが出力していないデータを格納している領域、周辺装置の状態を記憶しているフラグ、カウンタ、ポインタ等を格納している領域などがある周辺装置内部のメモリ内容が消滅してしまい、電源オフあるいはリセットにより前記周辺装置が前記エラーから回復しても、エラー発生直前の状態に復帰することはできないという欠点があった。また、周辺装置の前記メモリ内容が消滅してしまうことにより、ホストコンピュータから受信したデータを格納している領域に未処理データが残っていた場合、前記未処理データの消滅によりホストコンピュータが望む結果を得られないという欠点もあった。
【０００４】
本発明は、このような欠点を解決するためになされたものであり、バックアップ機能を内蔵していない周辺装置で発生したエラーをホストコンピュータに通知し、オペレータに表示すると共に、電源の再投入やリセットにより周辺装置がエラーから回復した際にエラー発生直前の状態からの継続動作を可能とし、さらにはエラー発生時に未処理となっていたデータの保護を目的とする。
【０００５】
【課題を解決するための手段】
本発明の周辺装置および該周辺装置を用いたシステムは、周辺装置がエラーを検出した時点でホストコンピュータへエラー発生を通知し、ホストコンピュータからデータを受信する。前記受信データがメモリ転送要求であった場合、周辺装置はメモリ内容をホストコンピュータに送信したのち周辺装置はオペレータに対するエラー表示を実行する。一方、前記受信データがメモリ転送要求でなかった場合、周辺装置はメモリ内容を送信せずにオペレータに対するエラー表示のみを実行する。
【０００６】
一方ホストコンピュータは周辺装置からのエラー発生通知を受信した場合、周辺装置がエラー回復した際に動作を継続させる必要があると判断した場合はメモリ転送要求を周辺装置に送信したのち、周辺装置から送信されるメモリ内容を受信しホストコンピュータのメモリに格納する。また、前記エラー発生通知を受信した際に周辺装置のエラー回復時に周辺装置の動作の継続が不要と判断した場合はメモリ転送不要通知を周辺装置に送信する。
【０００７】
この後、周辺装置の電源再投入やリセットにより周辺装置の初期化処理が終了しエラーから回復した場合、周辺装置は初期化終了通知をホストコンピュータに送信する。ホストコンピュータは周辺装置からの前記初期化終了通知の受信により、周辺装置から受信したエラー発生直前の周辺装置のメモリ内容を格納している場合、前記メモリ内容を周辺装置に送信する。周辺装置はホストコンピュータからの前記メモリ内容を受信しメモリに格納する。これにより周辺装置のメモリ内容はエラー発生直前の状態に戻り、電源を再投入したにもかかわらず動作の継続が可能となることを特徴とする。
【０００８】
【発明の実施の形態】
本発明の構成を図１に基づいて説明する。
【０００９】
周辺装置１２０はホストコンピュータ１００とコマンド、データ、通知等を送受信するための通信手段１２１と、コマンドやデータを受信する手段１２２と、前記ホストコンピュータ１００へ通知やデータを送信する手段１２３と、前記コマンド／データ受信手段１２２で受信した通常コマンドを処理する手段１２６と、前記コマンド／データ受信処理１２２で受信した通常データを処理する手段１２７と、前記ホストコンピュータ１００からのメモリ転送コマンドの処理手段１２８と、前記ホストコンピュータ１００から受信したメモリデータの書き込み手段１２９と、前記周辺装置１２０の初期化が終了した時点で初期化終了通知を処理する手段１３０と、復帰不可能エラーを検出する手段１３１と、前記エラー発生通知を処理する手段１２５と、前記エラー発生直前のメモリデータの読み出し手段１２４により構成される。
【００１０】
一方、ホストコンピュータ１００は周辺装置１２０とコマンド、データ、通知等を送受信するための通信手段１１０と、コマンドやデータを送信する手段１０７と、前記周辺装置１２０からの通知やデータを受信する手段１０９と、前記周辺装置１２０を制御するための通常コマンドを処理する手段１０１と、前記周辺装置１２０へ送信するデータを処理する手段１０２と、前記周辺装置１２０からのエラー発生通知を処理する手段１０５と、前記周辺装置１２０から受信したメモリデータの書き込み手段１０６と、前記周辺装置１２０からの初期化終了通知を処理する手段１０４と、前記初期化終了通知によりメモリ転送コマンドを処理する手段１０３と、前記メモリデータ書き込み手段１０６で格納したメモリデータの読み出し手段１０８により構成される。
【００１１】
図２以降は本発明の一実施例としてプリンタとホストコンピュータを接続したシステムを例に説明する。
【００１２】
図２はホストコンピュータからプリンタに送信するコマンドおよびデータの流れを示す図である。
【００１３】
プリンタ２１０はＣＰＵ２１２と、ＲＯＭ２１３と、ＲＡＭ２１１により構成されている。ホストコンピュータ２００から送信されたデータ２０１は前記プリンタ２１０の前記ＲＡＭ２１１内の受信データ格納メモリ２１４に格納される。前記データ２０１がプリンタ２１０の状態を制御するコマンドであった場合は状態記憶メモリ２１５のフラグやカウンタを変更する。前記データ２０１が印字データであった場合は、前記ＲＯＭ２１３に内蔵されているキャラジェネ２１８の文字パターンを前記状態記憶メモリ２１５の状態に従って展開し印字データ格納メモリ２１６に格納する。前記印字データ格納メモリ２１６に格納されている印字データは印字機構２１９により出力される。これらの処理は前記ＲＯＭ２１３内のプログラム２１７により制御されている。
【００１４】
図３はソフトウェアによる具体的なプリンタの処理を示すフローチャートである。
【００１５】
プリンタは電源投入時に印字機構部およびフラグやカウンタ等のメモリ内容のの初期化処理（ステップ３０１）を実行する。次に初期化終了通知をホストコンピュータに送信（ステップ３０２）し、通常処理を開始する。通常処理では復帰不可能エラー発生の有無を確認（ステップ３０３）する。前記復帰不可能エラー発生確認処理（ステップ３０３）でエラーが発生していない場合、ホストコンピュータからのデータ受信処理（ステップ３０４）を実行する。前記受信データがメモリ転送コマンドか否かの判断（ステップ３０５）を実行し、前記受信データがメモリ転送コマンドでなかった場合、通常コマンド処理（ステップ３０６）あるいは印字データ処理（ステップ３０７）を実行する。一方、前記受信データがメモリ転送コマンドであった場合、エラー復帰処理群（ステップ３０８）に移る。前記エラー復帰処理群（ステップ３０８）では、最初にホストコンピュータから転送されるメモリデータ数を受信（ステップ３０９）し、受信データ数カウンタを設定（ステップ３１０）する。次にホストコンピュータからメモリデータの受信（ステップ３１１）と、プリンタ内部メモリへの書き込み処理（ステップ３１２）を実行し、前記受信データ数カウンタ設定処理（ステップ３１０）で設定した受信データ数カウンタの更新（−１）処理（ステップ３１３）を実行する。前記メモリデータ受信処理（ステップ３１１）、前記メモリデータ書き込み処理（ステップ３１２）および前記受信データ数カウンタ更新処理（ステップ３１３）を前記受信データ数カウンタが０になるまで続ける。すべてのメモリデータの受信および格納が終了した時点で通常処理に戻る。
【００１６】
一方、前記復帰不可能エラー発生検出処理（ステップ３０３）でエラーを検出した場合、エラー発生処理群（ステップ３１５）に移る。前記エラー発生処理群（ステップ３１５）では最初にエラー発生通知をホストコンピュータに送信（ステップ３１６）した後、ホストコンピュータからのデータを受信（ステップ３１７）し、前記受信データがメモリ転送要求か否かの判断（ステップ３１８）を実行する。前記受信データがメモリ転送要求であった場合、転送するメモリデータ数をホストコンピュータへ送信（ステップ３１９）し、送信データ数カウンタを設定（ステップ３２０）する。次にメモリデータの読み出し処理（ステップ３２１）と、前記メモリデータのホストコンピュータへの送信処理（ステップ３２２）を実行し、前記送信データ数カウンタ設定処理（ステップ３２０）で設定した送信データ数カウンタの更新（−１）処理（ステップ３２３）を実行する。前記メモリデータ読み出し処理（ステップ３２１）、前記メモリデータ送信処理（ステップ３２２）および前記送信データ数カウンタ更新処理（ステップ３２３）を前記送信データ数カウンタが０になるまで続ける。すべてのメモリデータの送信が終了した時点で、エラー発生をオペレータに知らせるためのエラー表示処理（ステップ３２５）を実行し処理を終了する。
【００１７】
図４はソフトウェアによる具体的なホストコンピュータの処理を示すフローチャートである。
【００１８】
ホストコンピュータは通常処理群（ステップ４０１）においてプリンタ制御のための通常コマンドおよび印字データの送信処理（ステップ４０２）と、プリンタからの受信データ有無の確認処理（ステップ４０３）を実行する。前記受信データ有無の確認処理（ステップ４０３）において受信データ有を確認した場合、プリンタからのデータを受信（ステップ４０４）する。前記受信データが復帰不可能エラー発生通知でなかった場合は通常処理を継続する。
【００１９】
一方、前記受信データが復帰不可能エラー発生通知であった場合、エラー処理群（ステップ４０６）に移る。前記エラー処理群（ステップ４０６）では、最初にプリンタのデータ退避の必要性を確認（ステップ４０７）する。前記データ退避確認処理（ステップ４０７）ではプリンタがエラーから回復した際にエラー発生直前の動作を継続させる必要がある場合はデータ退避が必要であると判断する。また、継続動作の必要がない場合はプリンタに対しメモリ転送不要通知を送信（ステップ４０８）後、通常処理に戻る。前記データ退避の確認処理（ステップ４０７）でデータ退避が必要であると判断した場合はプリンタに対し転送要求通知を送信（ステップ４０９）する。次にプリンタから転送されるメモリデータ数を受信（ステップ４１０）し、受信データ数の記憶（ステップ４１１）と受信データ数カウンタの設定（ステップ４１２）を実行する。次にプリンタからメモリデータの受信（ステップ４１３）と、ホストコンピュータの内部メモリへの書き込み処理（ステップ４１４）を実行し、前記受信データ数カウンタ設定処理（ステップ４１２）で設定した受信データ数カウンタの更新（−１）処理（ステップ４１５）を実行する。前記メモリデータ受信処理（ステップ４１３）、前記メモリデータ書き込み処理（ステップ４１４）および前記受信データ数カウンタ更新処理（ステップ４１５）を前記受信データ数カウンタが０になるまで続ける。すべてのメモリデータの受信および格納が終了した時点で、エラー復帰処理群（ステップ４１７）に移る。
【００２０】
前記エラー復帰処理群（ステップ４１７）では、最初にプリンタからの初期化終了通知を受信（ステップ４１８）する。次にメモリ転送コマンドをプリンタへ送信（ステップ４１９）し、前記受信データ数記憶処理（ステップ４１１）で記憶した転送データ数のプリンタへの送信処理（ステップ４２０）と、送信データ数カウンタの設定（ステップ４２１）を実行する。次に前記メモリデータ書き込み処理（ステップ４１４）でホストコンピュータの内部メモリへ格納したメモリデータの読み出し処理（ステップ４２２）と、前記メモリデータのプリンタへの送信処理（ステップ４２３）を実行し、前記送信データ数カウンタ設定処理（ステップ４２１）で設定した送信データ数カウンタの更新（−１）処理（ステップ４２４）を実行する。前記メモリデータ読み出し処理（ステップ４２２）、前記メモリデータ送信処理（ステップ４２３）および前記送信データ数カウンタ更新処理（ステップ４２４）を前記送信データ数カウンタが０になるまで続ける。すべてのメモリデータの送信が終了した時点で、前記通常処理群（ステップ４０１）に戻る。
【００２１】
【発明の効果】
以上述べたように本発明によれば、バックアップ機能を持っていない周辺装置で復帰不可能エラーが発生し、エラー回復のために電源の再投入やリセット等が必要である周辺装置では、エラー発生時に周辺装置のメモリ内容をホストコンピュータのメモリに転送し、周辺装置の電源の再投入やリセット等により周辺装置がエラーから回復した時点で、ホストコンピュータに退避したエラー発生直前のメモリ内容を周辺装置のメモリに転送することにより周辺装置のメモリ内容はエラー発生直前の状態に復帰でき、周辺装置のメモリ内容が一旦消滅したにもかかわらずエラー発生以前と同じ状態での継続処理が可能となるという効果がある。
【００２２】
また、本発明によれば、周辺装置の電源再投入による初期化処理が終了した時点でホストコンピュータに初期化終了通知を送信することによりホストコンピュータは周辺装置のメモリ内容が初期化されたことを確認できるため、制御コマンドの再送信が可能となり周辺装置がホストコンピュータの管理外で初期化された場合でも常に同じ状態で周辺装置を制御できるという効果もある。
【図面の簡単な説明】
【図１】本発明の一実施例を示す構成図。
【図２】本発明の一実施例であるホストコンピュータとプリンタのシステムを例としたデータの流れを示す図。
【図３】本発明の一実施例であるプリンタの処理を示すフローチャート。
【図４】本発明のホストコンピュータの一実施例を示すフローチャート。
【符号の説明】
１００  ホストコンピュータ
１０１  ホストコンピュータの通常コマンド処理手段
１０２  ホストコンピュータの通常データ処理手段
１０３  ホストコンピュータのメモリ転送コマンド処理手段
１０４  ホストコンピュータの初期化終了通知処理手段
１０５  ホストコンピュータのエラー発生通知処理手段
１０６  ホストコンピュータのメモリデータ書き込み手段
１０７  ホストコンピュータのコマンド／データ送信手段
１０８  ホストコンピュータのメモリデータ読み出し手段
１０９  ホストコンピュータの通知／データ受信手段
１１０  ホストコンピュータの通信手段
１２０  周辺装置
１２１  周辺装置の通信手段
１２２  周辺装置のコマンド／データ受信手段
１２３  周辺装置の通知／データ送信手段
１２４  周辺装置のメモリデータ読み出し手段
１２５  周辺装置のエラー発生通知処理手段
１２６  周辺装置の通常コマンド処理手段
１２７  周辺装置の通常データ処理手段
１２８  周辺装置のメモリ転送コマンド処理手段
１２９  周辺装置のメモリデータ書き込み手段
１３０  周辺装置の初期化終了通知処理手段
１３１  周辺装置の復帰不可能エラー検出手段
２００  ホストコンピュータ
２０１  ホストコンピュータからの送信データ
２１０  プリンタ
２１１  プリンタのＲＡＭ
２１２  プリンタのＣＰＵ
２１３  プリンタのＲＯＭ
２１４  プリンタの受信データ格納メモリ
２１５  プリンタの状態記憶メモリ
２１６  プリンタの印字データ格納メモリ
２１７  プリンタのプログラム
２１８  プリンタのキャラジェネ
２１９  プリンタの印字機構
【図１】
0003564827.tif 000002
【図２】
0003564827.tif 000003
【図３】
0003564827.tif 000004
【図４】
0003564827.tif 000005