(57)【特許請求の範囲】
【請求項１】
通信装置であって、
通信を停止するための停止情報を送信する仕組みを備える第１通信手段と、
通信を停止するための停止情報を送信する仕組みを備えない第２通信手段と、
端末装置から受信したデータが前記通信装置において解釈できないデータであり、かつ、前記データが前記第１通信手段を用いて受信された場合、前記データの解釈中に前記データの受信を停止し、
端末装置から受信したデータが前記通信装置において解釈できないデータであり、かつ、前記データが前記第２通信手段を用いて受信された場合、前記データの終端まで受信し、受信が完了したことを示す応答を前記端末装置に送信する制御手段を備え、
前記端末装置により送信されたデータを受信している最中に前記通信装置の電源状態をオフに変更するための指示が入力された場合、前記制御手段は、前記データの解釈中に前記データの受信を停止することを特徴とする通信装置。
【請求項２】
前記端末装置により送信されたデータを受信している最中に前記通信装置の電源状態をオフに変更するための指示が入力された場合、前記データの受信に前記第１通信手段が使用されているかまたは前記第２通信手段が使用されているかを判定する第１判定手段と、
前記第２通信手段が使用されていると判定された場合、電源状態がオフの状態でデータを受信した場合に電源状態をオンの状態へ自動的に変更する自動電源オン機能が有効であるか否かを判定する第２判定手段を更に有し、
前記自動電源オン機能が有効であると判定された場合、前記データは終端まで受信されて、前記受信が完了したことを示す応答が前記端末装置に送信され、前記自動電源オン機能が無効であると判定された場合、前記データの解釈中に前記データの受信を停止することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第１通信手段は、ネットワークを介してデータの通信を実行し、
前記第２通信手段は、ＵＳＢを介してデータの通信を実行することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記第１および第２通信手段を用いた通信は、ＨＴＴＰプロトコルを用いて実行されることを特徴する請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
前記第１および第２通信手段を用いた通信は、ＩＰＰプロトコルを用いて実行されることを特徴する請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
通信装置であって、
端末装置からデータを受信する受信手段と、
前記データの受信中に前記通信装置の電源をオフへ変更する指示が入力され、かつ、前記データの受信に使用された通信方式が第１通信方式である場合、前記データの解釈中に前記データの受信を停止して、受信が中断したことに関わる応答を前記端末装置に送信し、
前記データの受信中に前記通信装置の電源状態をオフに変更するための指示が入力され、かつ、前記データの受信に使用された通信方式が前記第１通信方式と異なる第２通信方式である場合、前記データの終端まで受信し、受信が完了したことを示す応答を前記端末装置に送信する制御手段を備える通信装置。
【請求項７】
前記データが印刷データであることを特徴する請求項１乃至６のいずれか１項に記載の通信装置。
【請求項８】
前記印刷データに基づいて印刷処理を実行する印刷手段を備えることを特徴とする請求項７に記載の通信装置。
【請求項９】
通信装置における制御方法であって、
通信を停止するための停止情報を送信する仕組みを備える第１通信工程と、
通信を停止するための停止情報を送信する仕組みを備えない第２通信工程と、
端末装置から受信したデータが前記通信装置において解釈できないデータであり、かつ、前記データが前記第１通信工程を用いて受信された場合、前記データの解釈中に前記データの受信を停止し、
端末装置から受信したデータが前記通信装置において解釈できないデータであり、かつ、前記データが前記第２通信工程を用いて受信された場合、前記データの終端まで受信し、受信が完了したことを示す応答を前記端末装置に送信する制御工程を備え、
前記端末装置により送信されたデータを受信している最中に前記通信装置の電源状態をオフに変更するための指示が入力された場合、前記データの解釈中に前記データの受信が停止されることを特徴とする制御方法。
【請求項１０】
通信装置において実行される制御方法であって、
端末装置からデータを受信する受信工程と、
前記データの受信中に前記通信装置の電源をオフへ変更する指示が入力され、かつ、前記データの受信に使用された通信方式が第１通信方式である場合、前記データの解釈中に前記データの受信を停止して、受信が中断したことに関わる応答を前記端末装置に送信し、
前記データの受信中に前記通信装置の電源状態をオフに変更するための指示が入力され、かつ、前記データの受信に使用された通信方式が前記第１通信方式と異なる第２通信方式である場合、前記データの終端まで受信し、受信が完了したことを示す応答を前記端末装置に送信する制御工程を備える制御方法。
【請求項１１】
通信を停止するための停止情報を送信する仕組みを備える第１通信手段と、通信を停止するための停止情報を送信する仕組みを備えない第２通信手段とを備える通信装置のコンピュータに、
端末装置から受信したデータが前記通信装置において解釈できないデータであり、かつ、前記データが前記第１通信手段を用いて受信された場合、前記データの解釈中に前記データの受信を停止し、
端末装置から受信したデータが前記通信装置において解釈できないデータであり、かつ、前記データが前記第２通信手段を用いて受信された場合、前記データの終端まで受信し、受信が完了したことを示す応答を前記端末装置に送信する制御工程を前記コンピュータに実行させ、
前記端末装置により送信されたデータを受信している最中に前記通信装置の電源状態をオフに変更するための指示が入力された場合、前記データの解釈中に前記データの受信が停止されることを特徴とする前記コンピュータが読取可能なプログラム。
【請求項１２】
前記プログラムは、前記端末装置により送信されたデータを受信している最中に前記通信装置の電源状態をオフに変更するための指示が入力された場合、前記データの受信に前記第１通信手段が使用されているかまたは前記第２通信手段が使用されているかを判定する第１判定工程と、
前記第２通信手段が使用されていると判定された場合、電源状態がオフの状態でデータを受信した場合に電源状態をオンの状態へ自動的に変更する自動電源オン機能が有効であるか否かを判定する第２判定工程を前記コンピュータに実行させ、
前記自動電源オン機能が有効であると判定された場合、前記データは終端まで受信されて、前記受信が完了したことを示す応答が前記端末装置に送信され、前記自動電源オン機能が無効であると判定された場合、前記データの解釈中に前記データの受信を停止することを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記第１通信手段は、ネットワークを介してデータの通信を実行し、
前記第２通信手段は、ＵＳＢを介してデータの通信を実行することを特徴とする請求項１１または１２に記載のプログラム。
【請求項１４】
前記第１および第２通信手段を用いた通信は、ＨＴＴＰプロトコルを用いて実行されることを特徴する請求項１１乃至１３のいずれか１項に記載のプログラム。
【請求項１５】
前記第１および第２通信手段を用いた通信は、ＩＰＰプロトコルを用いて実行されることを特徴する請求項１１乃至１４のいずれか１項に記載のプログラム。
【請求項１６】
通信装置のコンピュータに、
端末装置からデータを受信する受信工程と、
前記データの受信中に前記通信装置の電源状態をオフに変更するための指示が入力され、かつ、前記データの受信に使用された通信方式が第１通信方式である場合、前記データの解釈中に前記データの受信を停止して、受信が中断したことに関わる応答を前記端末装置に送信し、
前記データの受信中に前記通信装置の電源状態をオフに変更するための指示が入力され、かつ、前記データの受信に使用された通信方式が前記第１通信方式と異なる第２通信方式である場合、前記データの終端まで受信し、受信が完了したことを示す応答を前記端末装置に送信する制御工程を実行させるための前記コンピュータが読み取り可能なプログラム。
【請求項１７】
前記データが印刷データであることを特徴する請求項１１乃至１６のいずれか１項に記載のプログラム。
【請求項１８】
前記印刷データに基づいて印刷処理を実行する印刷手段を備えることを特徴とする請求項１７に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信インターフェースを有す通信装置、制御方法、プログラムに関する。
【背景技術】
【０００２】
近年、ネットワーク対応機器の増加に伴い、ネットワーク上のデバイス同士の為の通信プロトコル、デバイスのディスカバリの仕組み、デバイスのインストールの仕組み、印刷・スキャン等の各種サービスの仕様が標準規格化されている。さらに、この標準規格化はネットワークのみならずＵＳＢにおいても拡大されつつある。例えば、ＵＳＢ  Ｐｒｉｎｔ  Ｉｎｔｅｒｆａｃｅ  Ｃｌａｓｓ  ＩＰＰ  Ｐｒｏｔｏｃｏｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＰＰ  ＵＳＢ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）がある。
【０００３】
ネットワークやＵＳＢを用いてホストコンピュータがプリンタに印刷データを送信する技術が知られている。
【０００４】
特許文献１には、プリンタとホストコンピュータとがネットワークで接続されていることが示されている。そして、プリンタがホストコンピュータから印刷データの受信中にネットワークの状態がオフライン状態に遷移した場合、プリンタは印刷データの読み捨てを開始するとともに受信バッファをクリアすることが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−６２２６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術では、ネットワークの状態がオフライン状態になった際のデータの処理について記載している。データの送信元であるホストコンピュータも、ネットワークの状態を把握できる。そのため、ネットワークの状態がオフライン状態になったことで、ホストコンピュータは、データを送信できなくなった理由を把握できる。また、ホストコンピュータは、プリンタから印刷データの受信が完了したことを示すレスポンスが送信されてこない理由を把握できる。その結果、ホストコンピュータは、データの送信処理を適切に完了することが可能となる。
【０００７】
しかしながら、データを受信する受信装置は、ネットワークの状態がオフライン状態に遷移する以外の理由でデータの受信を停止することもある。例えば、受信装置が、受信したデータを解釈できないと判定した場合に、データの受信を停止することもある。このようなケースにおいて、受信装置がデータ受信を停止した理由をホストコンピュータに送信しない場合、ホストコンピュータは、データが適切に受信装置において受信されたか否かを確認することはできない。そのため、ホストコンピュータは、データの送信処理を適切に完了することができなくなるおそれがあった。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の通信装置は、通信を停止するための停止情報を送信する仕組みを備える第１通信手段と、通信を停止するための停止情報を送信する仕組みを備えない第２通信手段と、端末装置から受信したデータが前記通信装置において解釈できないデータであり、かつ、前記データが前記第１通信手段を用いて受信された場合、前記データの解釈中に前記データの受信を停止し、端末装置から受信したデータが前記通信装置において解釈できないデータであり、かつ、前記データが前記第２通信手段を用いて受信された場合、前記データの終端まで受信し、受信が完了したことを示す応答を前記端末装置に送信する制御手段を備え、前記端末装置により送信されたデータを受信している最中に前記通信装置の電源状態をオフに変更するための指示が入力された場合、前記制御手段は、前記データの解釈中に前記データの受信を停止することを特徴とする。
【発明の効果】
【０００９】
本発明によると、データの送信元の端末装置が、データ送信処理を適切に完了することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１に関わるプリンタ１００の概略構成を示す機能ブロック図
【図２】本発明の実施例１及び２に関わるＰＣ２００の概略構成を示す機能ブロック図
【図３】本発明の実施例１及び２に関わるプリンタ１００のＳ／Ｗのブロック図
【図４】本発明の実施例１に関わるプリンタ１００のデータ受信のフローチャート
【図５】本発明の実施例１に関わるプリンタ１００のエラー制御のフローチャート
【図６】本発明の実施例２に関わるプリンタ６００の概略構成を示す機能ブロック図
【図７】本発明の実施例２に関わるプリンタ６００のデータ受信のフローチャート
【図８】本発明の実施例２に関わるプリンタ６００のエラー制御のフローチャート
【発明を実施するための形態】
【００１１】
以下に、図面を参照しながら、本発明の実施形態を例示的に詳しく説明する。但し、本実施形態に記載されている構成要素の相対配置、表示画面等はそれらのみに限定する趣旨のものではない。
【００１２】
＜実施例１＞
図１は、本実施例であるプリンタ１００の概略構成を示すブロック図である。プリンタ１００において、ＣＰＵ１０１は、システム制御部であり、プリンタ１００の全体を制御する。ＲＯＭ１０２は、ＣＰＵ１０１が実行する制御プログラムやデータテーブル、組み込みオペレーティングシステム（ＯＳ）プログラム等の固定データを格納する。本実施例では、ＲＯＭ１０２に格納されている各制御プログラムは、ＲＯＭ１０２に格納されている組み込みＯＳの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウェア実行制御を行う。ＲＡＭ１０３は、一時的にプログラムや画像データを記憶し、処理を高速に動作させるためのものである。なお、本実施例のプリンタは、データの通信処理を実行するため単に通信装置と呼ぶこともある。また、プリンタに限らず、印刷機能、スキャン機能等を備えた複合機に本実施例を適用しても構わない。
【００１３】
印刷部１０４は、印刷用紙などのシートに画像を印刷する印刷処理を実行する。操作表示部１０５は、数値入力キー、モード設定キー、決定キー、取り消しキー等のキーと、ＬＥＤ（発光ダイオード）やＬＣＤ（液晶ディスプレイ）などから構成され、ユーザーによってプリンタとしての各種機能の起動や各種設定を行うことができる。ＵＳＢデバイス制御部１０６は、ＵＳＢインターフェースの通信制御を行うものであり、ＵＳＢ通信規格に従って、プロトコル制御を行う。ＵＳＢデバイス制御部１０６は、ＣＰＵ１０１が実行するＵＳＢデバイス制御タスクにより生成されたデータを、パケットに変換し、図２に示すＰＣ２００にＵＳＢパケット送信を行う。逆に、ＵＳＢデバイス制御部１０６は、ＰＣ２００から送信されたＵＳＢパケットをデータに変換して、ＣＰＵ１０１に対し送信する。また、ＵＳＢデバイス制御部１０６は、ＰＣ２００とＵＳＢで接続されたことを検知する。ＷＬＡＮユニット１０７は、無線通信によってネットワーク（ＴＣＰ／ＩＰに従った通信が可能なネットワーク）上の端末と通信する。ＷＬＡＮユニット１０７は、不図示のアクセスポイント（以下、ＡＰと呼ぶ）やＰＣ２００と、例えばＩＥＥＥ８０２．１１シリーズに準拠したＷＬＡＮシステムにおけるデータ（パケット）通信が可能である。上記構成要素１０１〜１０７は、ＣＰＵ１０１が管理するＣＰＵバス１０８を介して、相互に接続されている。なお、図１のプリンタ１００は、有線ＬＡＮユニットを備えていても構わない。
【００１４】
図２は、本実施例におけるＰＣ２００の概略構成を示すブロック図である。ＣＰＵ２０１は、ＲＯＭ２０２、ＲＡＭ２０３、または、内部記録装置２０４、外部記憶装置２０５により外部記憶媒体２０５から読み出されたプログラムに従って、システムバスを介してＰＣ２００全体の動作を制御する。ＲＯＭ２０２は、ＣＰＵ２０１の制御プログラム等を格納している。ＲＡＭ２０３は、一時的にプログラムや画像データを記憶し、ＣＰＵ２０１のワークメモリとして使用される。内部記録装置２０４には、オペレーティングシステム等が格納されている。操作部２０６は、ユーザーからの指示入力手段としてのキーボードやマウス（不図示）を制御する。表示部２０７は、ユーザーに対して各種表示を行う。ＷＬＡＮユニット２０８は、無線通信により、不図示のＡＰやプリンタ１００との間で通信を行う。ＷＬＡＮユニット１０７と同様の説明となるので、ここでの詳細な説明は省略する。ＵＳＢホスト制御部２０９は、ＵＳＢ通信におけるホストの機能を有し、プリンタ１００との間で通信を行う。上記構成要素２０１〜２０９は、ＣＰＵ２０１が管理するＣＰＵバス２１０を介して、相互に接続されている。
【００１５】
図３は本実施例におけるプリンタ１００のソフトウェア（Ｓ／Ｗ）概略構成のブロック３００である。図３に示すように、プリンタ１００は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）３０１上で各ソフトウェアモジュールが動作するように構成されている。ＯＳ３０１上には、ネットワークの通信を担当するミドルウェア層３０２と、さらにその上位に、ネットワークによるデータ送受信を利用して動作するアプリケーション３０３とが存在している。
【００１６】
ミドルウェア層３０２の最下位層には、ＵＳＢデバイス制御部１０６とＷＬＡＮユニット１０７をそれぞれ制御するためのＵＳＢドライバ３０４、ＬＡＮドライバ３０６がある。その上位にはＵＳＢの基本的な通信制御を行なうＵＳＢ通信モジュール３０５と、ネットワークの基本的な通信制御を行なうＴＣＰ／ＩＰ通信モジュール３０７が存在している。３０４〜３０７はＨ／Ｗに依存し、ＵＳＢを介した通信であればＵＳＢドライバ３０４、ＵＳＢ通信モジュール３０５が通信し、ネットワークを介した通信であれば、ＬＡＮドライバ３０６、ＴＣＰ／ＩＰ通信モジュール３０７が通信する。さらにその上位には、Ｈ／Ｗに依存せず、ＵＳＢ通信モジュール３０５とＴＣＰ／ＩＰ通信モジュール３０７にまたがってＨＴＴＰ通信モジュール３０８およびＩＰＰ通信モジュール３０９が存在している。ＨＴＴＰ通信モジュール３０８およびＩＰＰ通信モジュール３０９は下位層を意識せずにアプリケーションの通信を実現する。なお、ＨＴＴＰ通信モジュール３０８は、ＨＴＴＰプロトコルを用いた通信を実行し、ＩＰＰ通信モジュール３０９は、ＩＰＰプロトコルを用いた通信を実行する。
【００１７】
アプリケーションの通信を実現するプロトコルの通信モジュールは特にＨＴＴＰ通信モジュール３０８およびＩＰＰ通信モジュール３０９に限定しない。
【００１８】
プリンタ１００とＰＣ２００はネットワークまたはＵＳＢを介してＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコルにて通信し、画像データ（または印刷データ）を送受信できる。ＨＴＴＰ通信は、ネットワークを介した通信の場合ではインターネットやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのＴＣＰ／ＩＰの仕様に準拠し、ＵＳＢを介した通信の場合はＩＰＰ  ｏｖｅｒ  ＵＳＢの仕様（Ｖｅｒｓｉｏｎ１．０）に準拠する。
【００１９】
図４はＨＴＴＰ通信でプリンタ１００がＰＣ２００からｈｔｔｐデータを受信するフローチャートである。なお、本実施例におけるフローチャートは、ＣＰＵ１０１がフローチャートに関係するプログラムを読み出して実行することで実現される。また、本実施例で送受信されるｈｔｔｐデータは、ヘッダ部分とボディ部分で構成される。ヘッダ部分にはデータに関するサイズ情報等が記載されている。ボディ部分には、用紙に印刷されるテキストやイメージに関するデータが含まれる。
【００２０】
ＣＰＵ１０１は、Ｓ４０１で任意のサイズのデータを受信し、Ｓ４０２でエラーチェックを行なう。エラーチェック（Ｓ４０２）において、ＣＰＵ１０１は、データ受信中にエラーが発生したか否かを判定する。具体的には、ＣＰＵ１０１は、Ｓ４０１にて受信したデータが解析できないデータであると判定した場合、エラーが発生していると判定する。また、ＣＰＵ１０１は、受信したデータにデータの終端を示すコマンドが含まれない場合、エラーが発生していると判定する（Ｓ４０２−ＮＧ）。その他、ＣＰＵ１０１は、データの受信中に操作表示部１０９により電源オフ操作が行われたかどうかを確認し、電源オフ操作が行われたと判定した場合、エラーが発生したと判定する（Ｓ４０２−ＮＧ）。なお、本実施例における電源オフとはプリンタ１００の、少なくとも印刷部１０４、ＵＳＢデバイス制御部１０６、ＷＬＡＮユニット１０７に対する電源供給を遮断することを指す。なお、電源オフ操作とは、プリンタ１００の電源状態をオフに変更するための操作である。
【００２１】
Ｓ４０２でエラーが発生していると判定された場合（Ｓ４０２−ＮＧ）、ＣＰＵ１０１は、Ｓ４０４でエラー制御処理を実施し、フローを終了する。なお、Ｓ４０４の詳細は、図５にて後述する。一方、Ｓ４０２でエラーが発生していない判定された場合、図４の処理はＳ４０３へ遷移する。そして、ＣＰＵ１０１は、Ｓ４０３で受信したデータがデータの終端を示すか否かを判定する。ＣＰＵ１０１が、データの終端であると判定した場合（Ｓ４０３−Ｙｅｓ）、図４のフローチャートはし、終端でなければ再びＳ４０１に戻る。ＣＰＵ１０１は、Ｓ４０３においてＹｅｓと判定するまでＳ４０１〜Ｓ４０３を繰り返す。
【００２２】
図５は、図４におけるエラー制御処理（Ｓ４０４）を詳細に説明するためのフローチャートである。ＣＰＵ１０１がＰＣ２００からデータを受信している最中に、エラーチェックＳ４０２でＮＧと判定した場合に図５のフローチャートの処理が開始される。
【００２３】
ＣＰＵ１０１は、Ｓ５０１でエラー要因を判定する。エラーの要因によって、判定処理（Ｓ５０２）を実行するか否かが決まるためである。なお、エラー要因が、プリンタ１００が解釈できないデータの受信である場合にＳ５０３が必要で、電源オフの場合にＳ５０３が不要となる理由については後述する。
【００２４】
（１）プリンタ１００が解釈できないデータを受信した場合
ＣＰＵ１０１は、Ｓ５０２にてデータを受信する際に使用してした通信インターフェースを確認する。例えば、データがＵＳＢデバイス制御部１０６を介して受信された場合、ＣＰＵ１０１は、通信インターフェースとしてＵＳＢが使用されていることを確認できる。一方、データがＷＬＡＮユニット１０７を介して受信された場合、ＣＰＵ１０１は、通信インターフェースとしてネットワークが使用されていることを確認できる。
【００２５】
ネットワークを用いてデータが受信されたと判定された場合、ＣＰＵ１０１は、Ｓ５０５でデータの受信を停止する。その際、ＰＣ２００との通信を切断する。
【００２６】
一方、ＵＳＢを用いてデータが受信されたと判定された場合、ＣＰＵ１０１は、Ｓ５０３でデータの終端まで受信を継続する。そして、ＣＰＵ１０１は、データの終端まで受信した場合、Ｓ５０４でＰＣ２００に対し応答（以下、レスポンス）を送信する。なお、Ｓ５０４の応答はデータの受信完了を示す。これにより、ＰＣ２００は、データがプリンタ１００において受信されたことを認識できる。
【００２７】
ここで、通信インターフェースの違いによって処理を切り替えている理由について説明する。
【００２８】
ＣＰＵ１０１が、ネットワークを介してデータを受信している最中にエラー発生（プリンタ１００が解釈できないデータの受信）を認識した場合、直ちにデータ受信を停止し、ＦＩＮパケットを送信するなどして通信中のＴＣＰ／ＩＰ層のみ通信を切断する。そうすることでＰＣ２００との通信を容易に終了させることができ、ＰＣ２００（具体的にはプリンタドライバ）もエラー発生後に不要な通信をしなくても済む。また、ＣＰＵ２０１は、ＦＩＮパケットによってデータの送信を途中で停止して良い理由を把握できるため、プリンタドライバまたは印刷を指示したアプリケーションを適切に停止できる。なお、ＦＩＮパケットとは、ＴＣＰ／ＩＰにおいて通信を終了する際に使用され、通信を停止するための停止情報と呼ぶこともできる。
【００２９】
一方で、ＣＰＵ１０１が、ＵＳＢを介してデータを受信している最中にエラー発生を認識した場合、データの受信を停止することはできるが、ネットワーク通信のようにＴＣＰ／ＩＰのＦＩＮパケットを送信できない。つまり、ＴＣＰ／ＩＰを用いたネットワーク通信は、通信を停止するための停止情報（ＦＩＮパケット）を送信する仕組みを備え、ＵＳＢ通信は、通信を停止するための停止情報（ＦＩＮパケット）を送信する仕組みを備えない。したがって、プリンタ１００が一方的にデータ受信を停止し通信を終了したとしても、ＰＣ２００とプリンタ１００の間がＵＳＢ接続されている限り、ＰＣ２００のＣＰＵ２０１は、プリンタ１００においてデータの受信が停止されたことを検知できない。その結果、ＰＣ２００のＣＰＵ２０１は、データ送信を継続する。しかしながら、データ送信の継続によりデータの送信が完了したとしてもプリンタ１００から一切レスポンスが送信されてこないため、ＰＣ２００のＣＰＵ２０１は、プリンタにおいてデータが正常に受信されたかを認識できない。その結果、ＰＣ２００のＣＰＵ２０１は、プリンタドライバまたは印刷を指示したアプリケーションを停止（正常終了）することができない。そして、ＣＰＵ２０１は、データの送信完了から所定時間経過した後に、プリンタドライバまたは印刷を指示したアプリケーションを強制終了することになる。この強制終了は、可能な限り行われない方が良い。このような強制終了を回避するために、ＣＰＵ１０１が、ＵＳＢを介してデータを受信している最中にエラー発生を認識したとしてもデータを最後まで受信し（Ｓ５０３）、レスポンスをＰＣ２００へ送信する（Ｓ５０４）。その結果、ＰＣ２００のＣＰＵ２０１は、プリンタにおいてデータが正常に受信されたことを認識でき、プリンタドライバまたは印刷を指示したアプリケーションを停止（正常終了）することが可能となる。なお、ＣＰＵ１０１は、プリンタ１００が解釈できないと判定されたデータをＳ５０３においてデータ終端まで受信するが、Ｓ５０４の処理の前またはＳ５０４の処理の後に受信したデータを読み捨てる（削除する）。
【００３０】
（２）データ受信中（またはデータ解釈中）に電源オフ操作された場合
データ受信中に電源オフ操作が実行された場合、ＵＳＢデバイス制御部１０６およびＷＬＡＮユニット１０７に対する電源供給は遮断される。したがって通信は物理的に不可能になるため、ＣＰＵ１０１は、通信インターフェースによらず、データ受信を停止する（Ｓ５０５）。このＳ５０５の処理により、ＰＣ２００とプリンタ１００は、不要な通信をしなくても済む。そして、ＣＰＵ１０１は、Ｓ５０５の後に、電源オフ操作を実行することで、ＵＳＢデバイス制御部１０６およびＷＬＡＮユニット１０７に対する電源供給を遮断する。
【００３１】
ここで、電源オフ操作が行われた場合にＳ５０５の処理を実行する理由について説明する。詳細には、Ｓ５０２のような判定処理が不要となる理由について説明する。
【００３２】
ネットワークを介した通信においては、ＣＰＵ１０１は、データ受信停止後、ＦＩＮパケットを送信するなどしてＴＣＰ／ＩＰ層の通信を切断し、ＰＣ２００との通信を終了させることができる。
【００３３】
一方でＵＳＢを介した通信においては、データ受信停止後、ＰＣ２００とプリンタ１００の間がＵＳＢ接続されている限り通信が継続される。そのため、ＣＰＵ１０１がデータ受信を停止してからプリンタ１００の電源がオフされるまでの間は、データは受信されないが、ＰＣ２００とプリンタ１００の間の通信は継続されたままの状態になる。しかし電源オフされればＵＳＢはＨ／Ｗ的に切断され、通信は終了する。ＰＣ２００もＨ／Ｗの切断であれば、通信の終了を検知できる可能性が高い。
【００３４】
そのため、ＰＣ２００とプリンタ１００の間の通信がネットワーク接続により実行されていてもＵＳＢ接続により実行されていても、プリンタ１００の電源がオフ状態に遷移されることで、ＰＣ２００のＣＰＵ１０１は通信が停止されたことを認識できる。よって、ＰＣ２００のＣＰＵ１０１は、プリンタドライバまたは印刷を指示したアプリケーションを停止（正常終了）することが可能となる。
【００３５】
以上により、データ受信中に電源オフ操作された場合は、ＣＰＵ１０１がレスポンス送信を実行しなくてもＰＣ２００のＣＰＵ１０１が適切にプリンタドライバまたは印刷を指示したアプリケーションを停止（正常終了）できる。そのため、Ｓ５０５の処理のみが実行されることとなる。
【００３６】
本実施例では、図５の処理（特にＳ５０２−ネットワークからＳ５０５の処理、Ｓ５０１−電源オフからＳ５０５の処理）を実行することで、ＰＣ２００が無駄なデータを送信することを防ぐことができる。また、図５の処理（特にＳ５０２−ＵＳＢからＳ５０４の処理）を実行することで、ＰＣ２００は、データ送信処理を適切に完了することが可能となる。
【００３７】
＜実施例２＞
実施例１では、データ受信中にプリンタ１００で電源オフ操作された場合に、通信インターフェースによらずデータ受信を停止する制御方法を示した。しかしながら、近年は自動電源オンという機能を搭載したプリンタも存在する。ここで自動電源オン機能について説明する。自動電源オン機能が有効化されたプリンタは、プリンタの電源がオフ状態でＰＣやタブレット等の端末装置から印刷等の動作要求を受信した場合、自動的に（ユーザーからプリンタの電源オン操作を受け付けることなく）電源オフ状態から電源オン状態となる。よって、プリンタの電源がオフ状態であっても、自動電源オン機能が有効化されている場合、ＵＳＢデバイス制御部１０６やＷＬＡＮユニット１０７等の通信部への電力供給は維持される。その結果、電源オフ状態であってもＵＳＢのＨ／Ｗは切断されず、実施例１で示す通信制御手段は効果的ではない。特にＳ５０１において電源オフと判定された場合にＳ５０５のみを実行する処理が効果的ではない。なお、その理由については後述する。
【００３８】
本実施例では、実施例２特有の処理について説明するが、実施例１と同様の部分については説明を省略することもある。
【００３９】
図６は本実施例に関するプリンタ６００である。プリンタ６００はプリンタ１００と同等の装置構成に加え、電源オフ状態の電力を制御するための電力制御部６０１を搭載し、自動電源オン機能を有している。自動電源オン設定が有効の場合は、電源オフした状態であっても外部端末装置と通信できるようにＵＳＢデバイス制御部１０６とＷＬＡＮユニット１０７などの通信部に電力が供給される。一方で、自動電源オン設定が無効の場合には、電源オフした状態でＵＳＢデバイス制御部１０６とＷＬＡＮユニット１０７などの通信部に電力は供給されず、ＵＳＢもネットワークも切断された状態になる。プリンタ６００もプリンタ１００同様、ＰＣ２００とＵＳＢデバイス制御部１０６またはＷＬＡＮユニット１０７を通してＰＣ２００と接続して通信可能である。
【００４０】
図７はＨＴＴＰ通信でプリンタ６００がＰＣ２００からｈｔｔｐデータを受信する際に実行されるフローチャートである。
【００４１】
なお、Ｓ７０１−Ｓ７０３は、図４のＳ４０１−Ｓ４０３と同じ処理であるため詳細な説明は省略する。Ｓ７０２でエラーと判定された場合、ＣＰＵ１０１は、実施例２のエラー制御（Ｓ７０４）を実施し、フローを終了する。
【００４２】
図８は、図７における実施例２のエラー制御（Ｓ７０４）を詳細に説明するためのフローチャートである。ＣＰＵ１０１がＰＣ２００からデータを受信している最中に、エラーチェックＳ７０２でＮＧになった場合に本フローがスタートする。
【００４３】
まずＳ８０１でＣＰＵ１０１はエラー要因を判定する。エラー要因を判定する理由については実施例１と同様である。
【００４４】
（１）プリンタ１００が解釈できないデータを受信した場合
ＣＰＵ１０１は、Ｓ８０１においてエラー要因が、プリンタ１００が解釈できないデータの受信であると判定した場合、実施例１のＳ５０２−Ｓ５０５の処理を実行する。プリンタ１００が解釈できないデータを受信したケースは、自動電源オンの設定による影響を受けないため、実施例１のＳ５０２−Ｓ５０５が実行される。
【００４５】
（２）データ受信中に電源オフ操作された場合
ＣＰＵ１０１は、Ｓ８０１においてエラー要因が電源オフであると判定した場合、Ｓ８０３にてデータの受信に使用された通信インターフェースを確認する。
【００４６】
ネットワークを用いてデータが受信されたと判定した場合、ＣＰＵ１０１は、Ｓ８０８でデータの受信を停止する。その際、ＣＰＵ１０１は、ＰＣ２００との通信を切断する。
【００４７】
一方、ＵＳＢを用いてデータが受信されたと判定された場合、ＣＰＵ１０１は、Ｓ８０４でさらに自動電源オン設定が有効か無効かを確認する。自動電源オン設定が有効であると判定された場合、ＣＰＵ１０１は、Ｓ８０５でデータ終端までデータ受信を継続する。そして、ＣＰＵ１０１は、データの終端まで受信した場合、Ｓ８０６でＰＣ２００に対してレスポンスを送信する。なお、このレスポンスもデータの受信が完了したことを示す。
【００４８】
一方で、Ｓ８０４において自動電源オン設定が無効であると判定された場合、ＣＰＵ１０１は、Ｓ８０７に遷移してデータ受信を停止する。
【００４９】
ここで自動電源オンの設定内容により処理を切り替える理由について説明する。
【００５０】
自動電源オン設定が有効の場合は、ＵＳＢデバイス制御部１０６に電力が供給されたまま電源オフされる。したがって、ＰＣ２００とプリンタ１００の間のＵＳＢの接続状態は“接続されたまま”となる。そのため、実施例１でＳ５０３〜Ｓ５０４に示すＵＳＢのエラー制御における理由と同様に、Ｓ８０５でデータを終端まで受信してＳ８０６でレスポンス応答する必要がある。例えば、１−１０ページの印刷を実行するための印刷データを受信し、５ページ目の印刷中に電源オフが指示された場合、ＣＰＵ１０１は、６ページ目以降の印刷を停止し、６ページ目以降のデータの受信を停止したとする。上述したようにＵＳＢ接続にてデータ通信を行っている場合、ＣＰＵ１０１は、データの受信停止のみをレスポンスを送信しない。また、自動電源オンが有効である場合、ＵＳＢデバイス制御部１０６への電源は供給され続ける。その結果、データ送信の継続によりデータの送信が完了したとしてもプリンタ１００から一切レスポンスが送信されてこないため、ＰＣ２００のＣＰＵ２０１は、プリンタにおいてデータが正常に受信されたかを認識できない。また、ＵＳＢ通信の接続状態も“接続されたまま”となるため、ＰＣ２００のＣＰＵ２０１は、レスポンスが返ってこない理由を把握できない。その結果、ＰＣ２００のＣＰＵ２０１は、プリンタドライバまたは印刷を指示したアプリケーションを停止（正常終了）することができなくなる。よって、ＣＰＵ１０１が、Ｓ８０５でデータを終端まで受信してＳ８０６でレスポンス応答することで、ＰＣ２００のＣＰＵ２０１は、プリンタドライバまたは印刷を指示したアプリケーションを停止（正常終了）することが可能となる。
【００５１】
一方で自動電源オン設定が無効の場合は、ＵＳＢデバイス制御部１０６に電力は供給されなくなり、その時点でＵＳＢ通信は物理的に“切断状態”となる。これは実施例１のＳ５０１からＳ５０５へ遷移するフローと同様である。したがって、ＣＰＵ１０１は、Ｓ８０７でデータ受信を停止する。
【００５２】
このように、データ受信中に何らかのエラーが発生した場合、エラー要因や通信インターフェースの種類、装置の状態によって通信制御を切り替えることで、可能な限り自装置と通信相手である端末装置の負荷を軽減し、効率的に通信を終了させることができる。
【００５３】
＜その他の実施形態＞
上述した実施例１および２は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムを実行するコンピュータは、１つであってもよいし、複数のコンピュータが協働してプログラムを実行するものであってもよい。さらに、プログラムの一部を実行する回路等のハードウェアを設け、そのハードウェアと、ソフトウェアを実行するコンピュータが協働して、本実施形態で説明した処理を実行する場合であってもよい。
【符号の説明】
【００５４】
１００  プリンタ
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
【図１】
0006460905.tif 000002
【図２】
0006460905.tif 000003
【図３】
0006460905.tif 000004
【図４】
0006460905.tif 000005
【図５】
0006460905.tif 000006
【図６】
0006460905.tif 000007
【図７】
0006460905.tif 000008
【図８】
0006460905.tif 000009