(57)【特許請求の範囲】
【請求項１】
印刷装置において、
外部端末と通信を行う通信手段と、
前記通信手段にて前記外部端末より受信した印刷データを記憶する記憶手段と、
前記記憶手段に記憶された印刷データを印刷する印刷手段と、
前記通信手段により前記外部端末と通信を行う場合において、当該外部端末をして、前記印刷装置を記憶デバイスとして認識させる駆動状態と、印刷デバイスとして認識させる駆動状態とを切り替える切替手段と、
前記外部端末に送信する送信パケット、又は、前記外部端末より受信する受信パケットが格納される送受信バッファであって、第一送受信バッファ、および、前記第一送受信バッファよりも容量の小さい第二送受信バッファと、
前記切替手段により切り替えられた駆動状態に基づき、前記送信パケットを前記第一送受信バッファに格納し前記受信パケットを前記第二送受信バッファに格納するか、又は、前記送信パケットを前記第二送受信バッファに格納し前記受信パケットを前記第一送受信バッファに格納するかを決定することによって、前記外部端末に送信する送信パケットのデータサイズと、前記外部端末より受信する受信パケットのデータサイズとを決定する決定手段と
を備えた印刷装置。
【請求項２】
前記決定手段は、
前記切替手段にて駆動状態が切り替えられ、前記外部端末をして前記印刷装置を記憶デバイスとして認識させる駆動状態となっている場合には、前記送信パケットを前記第一送受信バッファに格納し前記受信パケットを前記第二送受信バッファに格納することによって、受信パケットのデータサイズより送信パケットのデータサイズを大きくし、
前記切替手段にて駆動状態が切り替えられ、前記外部端末をして前記印刷装置を印刷デバイスとして認識させる駆動状態となっている場合には、前記送信パケットを前記第二送受信バッファに格納し前記受信パケットを前記第一送受信バッファに格納することによって、送信パケットのデータサイズより受信パケットのデータサイズを大きくすることを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記印刷装置を記憶デバイスとして認識させる駆動状態とするか、印刷デバイスとして認識させる駆動状態とするかの情報を受け付ける駆動状態受付手段を備え、
前記切替手段は、
前記駆動状態受付手段において受け付けた情報に基づいて、駆動状態を切り替えることを特徴とする請求項１又は２に記載の印刷装置。
【請求項４】
前記通信手段は、
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）デバイスドライバを使用し、ＵＳＢを介して前記外部端末と通信を行い、
前記外部端末をして前記印刷装置を記憶デバイスとして認識させる駆動状態となっている場合には、前記ＵＳＢデバイスドライバとしてマスストレージクラスドライバを使用し、
前記外部端末をして前記印刷装置を印刷デバイスとして認識させる駆動状態となっている場合には、前記ＵＳＢデバイスドライバとしてプリンタクラスドライバを使用することを特徴とする請求項１乃至３のいずれかに記載の印刷装置。
【請求項５】
前記記憶手段は、プログラムの実行ファイルをさらに記憶しており、
前記通信手段は、
前記切替手段にて、前記外部端末をして記憶デバイスとして認識させる駆動状態に切り替えられた後、前記実行ファイルを前記外部端末に送信することにより、
前記外部端末において前記プログラムの駆動を可能とすることを特徴とする請求項１乃至４のいずれかに記載の印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷装置に関する。そしてより詳細には、外部端末との通信時におけるパケットのデータサイズを切り替えることが可能な印刷装置に関する。
【背景技術】
【０００２】
印刷装置と外部端末とを接続し、外部端末からの指示により印刷装置にて印刷処理を実行させる場合において、双方を接続するインターフェースとしてＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）が広く使用されている。ここで、外部端末より印刷装置に対して送信される印刷データのデータ量は、撮影機器の高性能化（高解像度化）に伴い増加傾向にある。また、印刷データ以外の関連データを印刷装置と外部端末との間で通信する要求が高まっている。このような中、高速にデータを転送する必要がある場合に高速転送モードに切り替え、それ以外の場合には低速転送モードに切り替えることにより、短時間で大量のデータを転送することが可能なデータ転送装置が提案されている（特許文献１参照）。
【特許文献１】特開２００５−２０８８１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、高速転送モードにて動作可能なＵＳＢコントローラデバイスは一般的に高価である。従って、短時間で大量のデータをＵＳＢにて転送しなければならない場合、このような高価なデバイスを使用することにより、機器全体のコストが増大してしまうという問題点があった。
【０００４】
本発明は上述の問題点を解決するためになされたものであり、安価なＵＳＢコントローラデバイスを使用しつつ、短時間で大量のデータを転送することが可能な印刷装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、請求項１に係る発明の印刷装置では、外部端末と通信を行う通信手段と、前記通信手段にて前記外部端末より受信した印刷データを記憶する記憶手段と、前記記憶手段に記憶された印刷データを印刷する印刷手段と、前記通信手段により前記外部端末と通信を行う場合において、当該外部端末をして、前記印刷装置を記憶デバイスとして認識させる駆動状態と、印刷デバイスとして認識させる駆動状態とを切り替える切替手段と、前記外部端末に送信する送信パケット、又は、前記外部端末より受信する受信パケットが格納される送受信バッファであって、第一送受信バッファ、および、前記第一送受信バッファよりも容量の小さい第二送受信バッファと、前記切替手段により切り替えられた駆動状態に基づき、前記送信パケットを前記第一送信バッファに格納し前記受信パケットを前記第二送信バッファに格納するか、又は、前記送信パケットを前記第二送受信バッファに格納し前記受信パケットを前記第一送受信バッファに格納するかを決定することによって、前記外部端末に送信する送信パケットのデータサイズと、前記外部端末より受信する受信パケットのデータサイズとを決定する決定手段とを備えている。
【０００６】
また、請求項２に係る発明の印刷装置では、請求項１に記載の発明の構成に加えて、前記決定手段は、前記切替手段にて駆動状態が切り替えられ、前記外部端末をして前記印刷装置を記憶デバイスとして認識させる駆動状態となっている場合には、前記送信パケットを前記第一送受信バッファに格納し前記受信パケットを前記第二送受信バッファに格納することによって、受信パケットのデータサイズより送信パケットのデータサイズを大きくし、前記切替手段にて駆動状態が切り替えられ、前記外部端末をして前記印刷装置を印刷デバイスとして認識させる駆動状態となっている場合には、前記送信パケットを前記第二送受信バッファに格納し前記受信パケットを前記第一送受信バッファに格納することによって、送信パケットのデータサイズより受信パケットのデータサイズを大きくすることを特徴とする。
【０００７】
また、請求項３に係る発明の印刷装置では、請求項１又は２に記載の発明の構成に加えて、前記印刷装置を記憶デバイスとして認識させる駆動状態とするか、印刷デバイスとして認識させる駆動状態とするかの情報を受け付ける駆動状態受付手段を備え、前記切替手段は、前記駆動状態受付手段において受け付けた情報に基づいて、駆動状態を切り替えることを特徴とする。
【０００８】
また、請求項４に係る発明の印刷装置では、請求項１乃至３のいずれかに記載の発明の構成に加えて、前記通信手段は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）デバイスドライバを使用し、ＵＳＢを介して前記外部端末と通信を行い、前記外部端末をして前記印刷装置を記憶デバイスとして認識させる駆動状態となっている場合には、前記ＵＳＢデバイスドライバとしてマスストレージクラスドライバを使用し、前記外部端末をして前記印刷装置を印刷デバイスとして認識させる駆動状態となっている場合には、前記ＵＳＢデバイスドライバとしてプリンタクラスドライバを使用することを特徴とする。
【０００９】
また、請求項５に係る発明の印刷装置では、請求項１乃至４のいずれかに記載の発明の構成に加えて、前記記憶手段は、プログラムの実行ファイルをさらに記憶しており、前記通信手段は、前記切替手段にて、前記外部端末をして記憶デバイスとして認識させる駆動状態に切り替えられた後、前記実行ファイルを前記外部端末に送信することにより、前記外部端末において前記プログラムの駆動を可能とすることを特徴とする。
【発明の効果】
【００１０】
請求項１に係る発明の印刷装置では、外部端末をして、前記印刷装置を記憶デバイスとして認識させる駆動状態と、印刷デバイスとして認識させる駆動状態との夫々の認識状態に応じてパケットのデータサイズを変更することができるので、通信データ量の多い通信方向（送信方向又は受信方向）にデータサイズの大きなパケットを割り当てることが可能となる。これにより、外部端末と印刷装置との間の通信に要する時間を短縮することが可能となり、印刷装置における各処理が迅速化する。
【００１１】
また、請求項２に係る発明の印刷装置では、印刷装置を記憶デバイスとして認識させる駆動状態では、印刷装置より外部端末に対して送信されるデータ量の方が、印刷装置が外部端末より受信するデータ量と比較して大きいことが想定されるので、送信パケットのデータサイズを大きくする。また、印刷装置を印刷デバイスとして認識させる駆動状態では、印刷装置が外部端末より受信するデータ量の方が、印刷装置より外部端末に対して送信されるデータ量と比較して大きいことが想定されるので、受信パケットのデータサイズを大きくする。これにより、請求項１に記載の発明の効果に加えて、印刷装置における双方の駆動状態において外部端末との通信に要する時間を短縮することが可能となり、印刷装置に対するデータ閲覧処理、及び印刷処理を迅速化することが可能となる。
【００１２】
また、請求項３に係る発明の印刷装置では、駆動状態受付手段において受け付けた情報に基づいて、駆動状態を切り替えることが可能となる。従って、請求項１又は２に記載の発明の効果に加えて、ユーザは、印刷処理に実行させる処理態様に応じて、印刷装置を記憶デバイスとして使用するか印刷デバイスとして使用するかを切り替えて動作させることが可能となる。
【００１３】
また、請求項４に係る発明の印刷装置では、汎用的なインターフェースであるＵＳＢを使用することによって、既存のＰＣ等に印刷装置を接続して使用することが可能となる。また、マスストレージクラスドライバとプリンタクラスドライバとを実装することによって、印刷装置に外部端末が接続された場合に、自動的に印刷装置が記憶デバイスであるか印刷デバイスであるかを外部端末にて認識することが可能となる。従って、請求項１乃至３のいずれかに記載の発明の効果に加えて、ユーザによる煩わしい設定作業が不要となり、ユーザの使用利便性が向上する。
【００１４】
また、請求項５に係る発明の印刷装置では、プログラムの実行ファイルをさらに記憶しているので、このプログラムを外部端末から起動して動作させることが可能となる。これにより、請求項１乃至４のいずれかに記載の発明の効果に加えて、予め外部端末にプログラムをインストールしておく必要がなくなるので、印刷データの編集作業時等においてユーザの使用利便性が向上する。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を具体化した印刷装置の実施の形態について、図面を参照して説明する。なお、これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものであり、記載されている装置の構成、各種処理のフローチャートなどは、特に特定的な記載がない限り、それのみに限定する趣旨ではなく、単なる説明例である。
【００１６】
はじめに、図１を参照し、本発明の印刷装置１０、及び印刷装置１０に接続されるパソコン２０を含む印刷システム１について説明する。図１は、印刷システム１を示す模式図である。
【００１７】
図１に示すように、印刷システム１は、印刷装置１０とパソコン２０とがＵＳＢケーブル１１を介して接続された構成を有している。印刷装置１０は、印字テープに印刷を行う所謂ラベルプリンタである。また、パソコン２０は、本体２２、ディスプレイ２１、キーボード２３、及びマウス２４等を備えたデスクトップコンピュータである。そしてパソコン２０は、印刷装置１０に対して印刷処理の実行を指示する、印刷システム１のホストとして位置づけられる。
【００１８】
次に、印刷装置１０の電気的構成について、図２を参照して説明する。図２は、印刷装置１０の電気的構成を示す模式図である。
【００１９】
図２に示すように、印刷装置１０は、装置全体の制御を司るＣＰＵ３１、制御プログラム等を記憶し、書き換え可能であり、電源を切ってもデータが消えない不揮発性記憶素子であるＦＬＡＳＨ  ＲＯＭ３４、ＣＰＵ３１が制御プログラムを実行する場合において発生する一時的なデータ等が記憶される揮発性記憶素子であるＳＲＡＭ３３、及び、印刷装置１０のパラメータ情報や履歴情報等が記憶される不揮発性記憶素子であるＥＥＰＲＯＭ３５を備えている。そして、ＣＰＵ３１よりＦＬＡＳＨ  ＲＯＭ３４、ＳＲＡＭ３３、及びＥＥＰＲＯＭ３５に記憶されている情報を参照可能なように、双方間はバスを介して接続している。
【００２０】
また印刷装置１０は、入出力インターフェース３６を備えている。入出力インターフェース３６は、ＣＰＵ３１と、ＣＰＵ３１に接続される各種デバイス（操作キー３７、ディスプレイコントローラ（ＬＣＤＣ）３８、駆動回路４３、駆動回路４４、ＵＳＢコントローラ４２）との間に挿入される。そして、入出力信号間の電圧変換処理、インピーダンス変換処理、タイミング調整処理等を行うことにより、ＣＰＵ３１から各種デバイスに対して出力される信号を各種デバイスにて認識可能となると共に、各種デバイスよりＣＰＵ３１に対して送信される信号をＣＰＵ３１にて認識可能となる。
【００２１】
また印刷装置１０は、操作キー３７を備えている。操作キー３７は、ユーザの操作により、印刷装置１０に対して所望する様々な動作を起こさせるために設けられている。そして、ユーザにより操作キー３７を操作された場合における操作内容をＣＰＵ３１にて認識することが可能なように、操作キー３７と入出力インターフェース３６とは電気的に接続している。
【００２２】
また印刷装置１０は、ディスプレイコントローラ（以下、「ＬＣＤＣ３８」という。）、及び液晶ディスプレイ（以下、「ＬＣＤ３９」という。）を備えている。ＬＣＤＣ３８は、表示データを記憶する表示用ＲＡＭ（図示外）を備えており、ＬＣＤ３９を制御して表示データを表示させるために、ＬＣＤ３９と電気的に接続している。また、ＬＣＤＣ３８は、ＣＰＵ３１より制御可能なように、入出力インターフェース３６と電気的に接続している。
【００２３】
また印刷装置１０は、サーマルヘッド４０と、サーマルヘッド４０を制御可能な駆動回路４３とを備えている。サーマルヘッド４０は、インクリボン（図示外）に熱を加えることにより印字テープにインクを転写することが可能なデバイスである。また駆動回路４３は、サーマルヘッド４０を制御して印字テープに印刷データを印刷させることが可能なように、サーマルヘッド４０と電気的に接続している。また駆動回路４３は、ＣＰＵ３１より制御可能なように、入出力インターフェース３６と電気的に接続している。
【００２４】
また印刷装置１０は、テープ送りローラ４１と、テープ送りローラ４１を制御可能な駆動回路４４とを備えている。テープ送りローラ４１は、サーマルヘッド４０によるインク転写時において印字テープを送出するために設けられている。また駆動回路４４は、サーマルヘッド４０による印字テープへの印刷データの印字時において、テープ送りローラ４１を制御して印字テープを送出させることが可能なように、テープ送りローラ４１と電気的に接続している。また駆動回路４４は、ＣＰＵ３１より制御可能なように、入出力インターフェース３６と電気的に接続している。
【００２５】
また印刷装置１０は、ＵＳＢコントローラ４２を備えている。ＵＳＢコントローラ４２は、パソコン２０とＵＳＢケーブル１１を介して接続した状態で、パソコン２０と通信を行うことが可能なように、電圧変換処理及びインピーダンス変換処理を行うためのコントローラデバイスである。そして、ＵＳＢケーブル１１を介してパソコン２０より受信した信号をＣＰＵ３１にて認識可能とするために、又はＣＰＵ３１より送信された信号をＵＳＢケーブル１１を介してパソコン２０に送信することが可能なように、ＵＳＢコントローラ４２と入出力インターフェース３６とは電気的に接続している。
【００２６】
次に、印刷装置１０が備える記憶素子であるＦＬＡＳＨ  ＲＯＭ３４、ＳＲＡＭ３３、の記憶領域について、図３、図４を参照して説明する。図３は、ＦＬＡＳＨ  ＲＯＭ３４の記憶領域を示す模式図であり、図４は、ＳＲＡＭ３３の記憶領域を示す模式図である。
【００２７】
図３を参照し、ＦＬＡＳＨ  ＲＯＭ３４の記憶領域について説明する。ＦＬＡＳＨ  ＲＯＭ３４には、制御プログラム領域５１が設けられている。制御プログラム領域５１には、ＣＰＵ３１が各種デバイスを制御して処理を実行する場合の制御プログラムが記憶されている。制御プログラムは、ＣＰＵ３１が各種処理を実行する場合において、ＣＰＵ３１より読み出される。また、制御プログラム領域５１には、アプリケーションプログラム領域５２、ＵＳＢデバイスドライバ領域５３、及びその他の領域が設けられている。
【００２８】
制御プログラム領域５１のうちアプリケーションプログラム領域５２には、ＣＰＵ３１が実行する制御プログラムのうち、上位レベルの制御プログラム（ファイル操作（書き込み、読み出し）、ファイルの内容に基づく判断、各種ドライバプログラムへの命令等）が記憶されている。
【００２９】
制御プログラム領域５１のうちＵＳＢデバイスドライバ領域５３には、ＵＳＢケーブル１１を介した通信のプロトコル制御を実行するＵＳＢデバイスドライバが記憶されている。具体的には、ＵＳＢデバイスドライバとして、マスストレージクラスドライバとプリンタクラスドライバとが記憶されている。これらは、印刷装置１０がＵＳＢケーブル１１を介してパソコン２０と通信を行う場合において、必要に応じていずれかのＵＳＢデバイスドライバがＣＰＵ３１より読み出され使用される。
【００３０】
ＣＰＵ３１により、ＵＳＢデバイスドライバとしてプリンタクラスドライバが選択され使用される場合には、印刷装置１０はパソコンより印刷デバイスとして認識される。これにより、従来の一般的な印刷装置の使用方法と同様に、パソコン２０から印刷装置１０に対して印刷データを送信することによって、印刷装置１０にて印字テープに印刷を行うことが可能となる。以下、印刷デバイスとして認識されるような駆動状態を「印刷デバイス状態」という。
【００３１】
またＣＰＵ３１により、ＵＳＢデバイスドライバとしてマスストレージクラスドライバが選択され使用される場合には、印刷装置１０はパソコン２０より記憶デバイスとして認識される。これにより、印刷装置１０内の特定の記憶領域（ＦＬＡＳＨ  ＲＯＭ３４中ディスク領域５５、後述）がパソコン２０の記憶領域として使用可能となる。以下、記憶デバイスとして認識されるような駆動状態を「記憶デバイス状態」という。
【００３２】
またＦＬＡＳＨ  ＲＯＭ３４には、ディスク領域５５が設けられている。ディスク領域５５は、印刷装置１０がパソコン２０より記憶デバイスとして認識された状態において、パソコン２０の記憶領域として使用可能なように設定されている。ディスク領域５５には、印刷データを編集するためのプログラムの実行ファイルである編集プログラム実行ファイルが少なくとも記憶される。
【００３３】
次に、図４を参照し、ＳＲＡＭ３３の記憶領域について説明する。ＳＲＡＭ３３には、ローカル領域６４が設けられている。ローカル領域６４は、ＣＰＵ３１にて処理が実行される場合において必要となる情報を記憶するための領域である。
【００３４】
ローカル領域６４には、印字テープに印字を行う場合の印刷データが一時的に記憶される印刷バッファ領域が設けられている。また、フラグ情報を記憶するフラグ領域が設けられている。また、印刷装置１０がパソコン２０より印刷デバイスとして認識されている状態においてパソコン２０より受信するデータが記憶されるリングバッファ領域が設けられている。また、印刷装置１０がパソコン２０より記憶デバイスとして認識されている状態においてパソコン２０より受信するデータが記憶される受信バッファ領域が設けられている。
【００３５】
次に、印刷装置１０のＣＰＵ３１がパソコン２０と通信を行う場合における、印刷装置１０内のデータの流れについて、図５を参照して説明する。図５は、印刷装置１０〜パソコン２０間のデータの流れを示す内部ブロック図である。
【００３６】
図５に示すように、ＦＬＡＳＨ  ＲＯＭ３４は、制御プログラムとしてアプリケーションプログラム５６とＵＳＢデバイスドライバ５７とを備えている。また、ＵＳＢデバイスドライバ５７としてプリンタクラスドライバ５８とマスストレージクラスドライバ５９とを備えている。ＵＳＢデバイスドライバ５７は、実際にＵＳＢコントローラ４２を制御してパソコン２０とＵＳＢケーブル１１を介した通信を実行する場合において、事前にＣＰＵ３１により読み出されて使用されるプログラムである。
【００３７】
ＣＰＵ３１は、ＵＳＢデバイスドライバとしてプリンタクラスドライバ５８とマスストレージクラスドライバ５９とのいずれかを選択して読み出し、使用することによって、パソコン２０とＵＳＢケーブル１１を介した通信を実行している。そして、ＣＰＵ３１がＵＳＢデバイスドライバ５７としてマスストレージクラスドライバ５９を選択した場合には、パソコン２０は印刷装置１０を記憶デバイスとして認識する。これにより、パソコン２０が印刷装置１０とＵＳＢケーブル１１を介して接続した状態で、ディスク領域５５がパソコン２０の記憶領域として使用可能となる。
【００３８】
また、ＣＰＵ３１がＵＳＢデバイスドライバ５７としてプリンタクラスドライバ５８を選択した場合には、パソコン２０は印刷装置１０を印刷デバイスとして認識する。これにより、パソコン２０が印刷装置１０とＵＳＢケーブル１１を介して接続した状態で、パソコン２０より印刷装置１０に対して印刷データを転送し印刷指示を行うことによって、印刷装置１０に印刷処理を実行させることが可能な状態となる。
【００３９】
次いで、ＵＳＢコントローラ４２について説明する。ＵＳＢコントローラ４２は、エンドポイント（ＥＰ）を使用してＵＳＢケーブル１１を介したパケットの送受信を実行する。ＥＰとは、ＦＩＦＯ構造を有する送受信用バッファである。そして、送信用に割り当てられたＥＰ（送信用ＥＰ）にデータが記憶された場合に、ＵＳＢコントローラ４２は記憶されたデータをパケット化してＵＳＢケーブル１１に対して送信可能となる。一方、ＵＳＢコントローラ４２がＵＳＢケーブル１１を介してパケットを受信した場合には、パケット中のデータは受信用に割り当てられたＥＰ（受信用ＥＰ）に記憶される。従ってＣＰＵ３１は、送信用ＥＰに送信データを記憶することにより、パソコン２０に対してパケットを送信することが可能となる。またＣＰＵ３１は、受信用ＥＰに記憶されたデータを読み出すことにより、パソコン２０からのパケットを認識することが可能となる。
【００４０】
図５に示す例では、ＵＳＢコントローラ４２は、３つのＥＰ（ＥＰ０、ＥＰ１、ＥＰ２）をそれぞれ有している。また、それぞれのＥＰは、設定により送信用／受信用のいずれかに切り替えて使用される。また、ＥＰ０は８バイトのバッファサイズを有し、８バイトのデータを記憶することが可能であり、ＥＰ１は６４バイトのバッファサイズを有し、６４バイトのデータを記憶することが可能であり、ＥＰ２は１６バイトのバッファサイズを有し、１６バイトのデータを記憶することが可能な状態となっている。
【００４１】
なおＥＰ０は、通信制御のために必要なコントロールパケットを送受信するために専用に設けられたＥＰであるので、任意のパケットの通信のための使用はできない。従って、印刷装置１０〜パソコン２０間でパケットの通信を行う場合に使用可能なＥＰは、ＥＰ１、及びＥＰ２となる。また、印刷装置１０〜パソコン２０間では双方向通信を行う必要があるため、ＥＰ１とＥＰ２とのうち一方が送信用に割り当てられ、他方が受信用に割り当てられる。
【００４２】
具体的には、ＥＰ１が送信用（印刷装置１０→パソコン２０）に割り当てられ、ＥＰ２が受信用（パソコン２０→印刷装置１０）に割り当てられた場合には、送信パケットのデータサイズは６４バイトとなり、受信パケットのデータサイズは１６バイトとなる。また、ＥＰ２が送信用（印刷装置１０→パソコン２０）に割り当てられ、ＥＰ１が受信用（パソコン２０→印刷装置１０）に割り当てられた場合には、送信パケットのデータサイズは１６バイトとなり、受信パケットのデータサイズは６４バイトとなる。
【００４３】
上述のように、パケットのデータサイズはＥＰのバッファサイズに依存する。従って、ＥＰのバッファサイズを大きくすれば、データサイズの大きなパケットを使用した通信が可能であるので、印刷装置１０〜パソコン２０間の通信を高速に実行できることになる。しかしながら一般的に、ＥＰのバッファサイズは、ＵＳＢコントローラ４２の価格に比例する。従ってバッファサイズの大きなＥＰを有するＵＳＢコントローラは、バッファサイズの小さなＥＰを有するＵＳＢコントローラと比較して高価となる。本発明の要旨は、安価で小さなバッファサイズのＥＰを有するＵＳＢコントローラを使用し、短時間で大量のデータ通信を可能とする点にある。
【００４４】
次いで、ＵＳＢコントローラ４２のパケット通信時における動作について概説する。ＵＳＢコントローラ４２とＣＰＵ３１との間には、ＵＳＢコントローラ４２の状態をＣＰＵ３１に通知するための制御信号として、バルクＩＮ転送要求線６２と、バルクＯＵＴ転送要求線６３とが少なくとも設けられている。ここで、バルクＩＮ転送要求線６２は、送信用ＥＰにデータが記憶された場合に、ＵＳＢコントローラ４２が電位を変位させる。ＣＰＵ３１は、バルクＩＮ転送要求線６２の電位が変位したことを検出した場合に、ＵＳＢコントローラ４２がパソコン２０に対してパケットを送信可能な状態であると判断する。そしてＣＰＵ３１は、パソコン２０に対してパケットを送信することが可能なタイミングでＵＳＢコントローラ４２を制御し、送信用ＥＰに記憶されているデータをパケット化させてパソコン２０に送信させる。
【００４５】
一方、バルクＯＵＴ転送要求線６３は、受信用ＥＰにデータが記憶された場合に、ＵＳＢコントローラ４２が電位を変位させる。ＵＳＢケーブル１１を介してＵＳＢコントローラ４２が受信したパケットのデータは受信用ＥＰに自動的に格納されるので、ＣＰＵ３１は、バルクＯＵＴ転送要求線６３の電位が変位したことを検出した場合に、ＵＳＢコントローラ４２がパソコン２０よりパケットを受信したと判断する。そしてＣＰＵ３１は、ＵＳＢコントローラ４２を制御し、当該ＥＰに記憶されているデータを読み出してＳＲＡＭ３３に記憶する。
【００４６】
以上概説した処理を実行することにより、ＣＰＵ３１は、ＵＳＢケーブル１１を介して接続された状態のパソコン２０に対するパケット送信処理、及びパソコン２０からのパケット受信処理を実行している。
【００４７】
次に、印刷装置１０〜パソコン２０間で実行される通信シーケンスについて、図６を参照して説明する。図６は印刷装置１０〜パソコン２０間の通信シーケンスを示す模式図である。
【００４８】
図６に示すように、はじめに、印刷装置１０とパソコン２０とがＵＳＢケーブル１１を介して接続される（８１）。なおこの状態では、印刷装置１０の電源スイッチがＯＮ状態となっていないので、パソコン２０は印刷装置１０を認識できておらず、印刷装置１０〜パソコン２０との間で通信はなされていない。
【００４９】
次いで、印刷装置１０の電源スイッチがＯＮ状態とされる（７０）。本実施の形態では、印刷装置１０は電源スイッチがＯＮとされた直後は、ＵＳＢデバイスドライバとしてマスストレージクラスドライバを選択して読み込む。これにより、印刷装置１０はパソコン２０より記憶デバイスとして認識される状態、すなわち記憶デバイス状態となる。また、ＵＳＢコントローラ４２のＥＰ１が送信用ＥＰとして割り当てられ、ＥＰ２が受信用ＥＰとして割り当てられる。これにより、印刷装置１０より送信されるパケットのデータサイズが６４バイトに設定され、印刷装置１０が受信するパケットのデータサイズが１６バイトに設定される。
【００５０】
また、印刷装置１０は電源スイッチがＯＮされるのと同時に、ＵＳＢケーブル１１の信号線のうちＤ＋信号をプルアップする。そして、パソコン２０にてＤ＋信号のプルアップ状態が検出された場合に、パソコン２０は印刷装置１０がＵＳＢケーブル１１を介して接続されたと判断する。
【００５１】
パソコン２０にて印刷装置１０が接続されたと判断された場合、次いで、印刷装置１０〜パソコン２０間でプラグアンドプレイ通信（ＰｎＰ通信）が実行される（８２）。ＰｎＰ通信では、ホストとして機能するパソコン２０が、ターゲットとして機能する印刷装置１０の駆動状態を把握するためのパケット通信が実行される。またこの場合、印刷装置１０ではＵＳＢコントローラ４２のＥＰ０が使用され、パケットの送受信が実行される。そしてＰｎＰ通信により、パソコン２０は、接続された印刷装置１０の駆動状態が記憶デバイス状態となっており、印刷装置１０のＦＬＡＳＨ  ＲＯＭ３４のディスク領域５５（図３参照）がパソコン２０の記憶領域として使用可能な状態であることを認識する。また、パソコン２０より送信可能なパケットのデータサイズが１６バイトであり、パソコン２０が受信するパケットのデータサイズが６４バイトであると認識する。
【００５２】
ＰｎＰ通信（８２）が終了した以後は、印刷装置１０のＦＬＡＳＨ  ＲＯＭ３４のディスク領域５５のデータがパソコン２０より参照される度に、参照されるデータを含むパケットが印刷装置１０よりパソコン２０に対して転送される（８３）。この転送パケットのデータサイズは、既述のように６４バイトとなる。また、パソコン２０より印刷装置１０のＦＬＡＳＨ  ＲＯＭ３４のディスク領域５５にデータを記憶する場合に、記憶されるデータを含むパケットがパソコン２０より印刷装置１０に対して転送される（８４）。この転送パケットのデータサイズは、既述のように１６バイトとなる。
【００５３】
次いで、印刷装置１０が記憶デバイス状態となっている場合において、パソコン２０より印刷装置１０に対して印刷処理を実行させる場合の具体例について、図６を参照しつつ説明する。このような場合には、はじめに、パソコン２０を操作するユーザにより、印刷装置１０のＦＬＡＳＨ  ＲＯＭ３４のディスク領域５５に記憶されている印刷データの編集プログラムが選択される。すると、編集プログラムの実行ファイルが印刷装置１０よりパソコン２０に対して転送される（８３）。そしてパソコン２０の記憶領域（図示外）に転送された編集プログラムの実行ファイルが記憶される。この状態でユーザは編集プログラムが使用可能となるので、編集プログラムを使用して印刷データを作成する。
【００５４】
印刷データの作成が終了すると、作成された印刷データは、ユーザにより印刷装置１０のＦＬＡＳＨ  ＲＯＭ３４のディスク領域５５に記憶される。この場合、作成された印刷データがパソコン２０より印刷装置１０に対して転送され（８４）、ディスク領域５５に記憶される。そして、印刷装置１０に対して印刷データの印刷指示がなされた場合に、印刷装置１０はディスク領域５５に記憶している印刷データに基づいて印刷処理を実行する。
【００５５】
ここで、編集プログラムの実行ファイルの転送速度は、ユーザによる編集プログラム操作により編集プログラムが選択されてから起動されるまでの起動時間に影響を及ぼす。転送速度が遅い場合、編集プログラムの起動時間が遅くなってしまうので、ユーザは編集プログラムが使用可能となるまで待機しなければならない。ところが本実施の形態では、印刷装置１０が記憶デバイス状態となっている場合には、印刷装置１０→パソコン２０の方向に転送されるパケットのデータサイズが大きくなるように、ＥＰの設定を行っている（印刷装置１０→パソコン２０：６４バイト、パソコン２０→印刷装置：１６バイト）。これにより、編集プログラムの起動時間が速くなり、ユーザは編集プログラムの選択後、直ぐに編集プログラムを使用することが可能となる。
【００５６】
次いで、印刷装置１０の駆動状態が切り替えられる場合について説明する。印刷装置１０が記憶デバイス状態にて駆動している状態で、ユーザによる操作キー３７の操作、及び、パソコン２０のキーボード２３及びマウス２４の操作により、印刷装置１０の駆動状態の切り替え指示が入力される（７１）。するとパソコン２０は、印刷装置１０に対して駆動状態を切り替える旨の情報である駆動状態情報を送信する（８５）。
【００５７】
駆動状態情報を受信した印刷装置１０は、ＵＳＢデバイスドライバとして使用していたマスストレージクラスドライバをプリンタクラスドライバに切り替える。はじめに、一旦パソコン２０との接続状態を解除するために、ＵＳＢケーブル１１の信号線のうちＤ＋信号のプルアップ状態をクリアし、ハイインピーダンス状態とする。そして、パソコン２０にてＤ＋信号のプルアップ状態のクリアが検出された場合に、パソコン２０は印刷装置１０との接続状態が解除されたものと判断する。
【００５８】
次いで、印刷装置１０は、ＵＳＢデバイスドライバとしてプリンタクラスドライバを選択して読み込む。これにより、印刷装置１０はパソコン２０より印刷デバイスとして認識される状態、すなわち印刷デバイス状態となる。また、ＵＳＢコントローラ４２のＥＰ２が送信用ＥＰとして割り当てられ、ＥＰ１が受信用ＥＰとして割り当てられる。これにより、印刷装置１０より送信されるパケットのデータサイズが１６バイトに設定され、印刷装置１０が受信するパケットのデータサイズが６４バイトに設定される。
【００５９】
そして再度、ＵＳＢケーブル１１の信号線のうちＤ＋信号をプルアップ状態とする。そして、パソコン２０にてＤ＋信号のプルアップ状態が検出された場合に、パソコン２０は印刷装置１０がＵＳＢケーブル１１を介して再接続されたと判断する（８６）。
【００６０】
パソコン２０にて印刷装置が再接続されたことを検出した場合、次いで、印刷装置１０〜パソコン２０間でＰｎＰ通信が実行される（８７）。ＰｎＰ通信では、電源スイッチＯＮ時のＰｎＰ通信（８２）と同様に、ホストとして機能するパソコン２０が、ターゲットとして機能する印刷装置１０の状態を把握するためのパケット通信が実行される。そして、パソコン２０は、駆動状態が印刷デバイス状態となっており、印刷データを転送することにより印字テープへの印刷処理が実行可能な状態であることを認識する。また、パソコン２０より送信可能なパケットのデータサイズが６４バイトであり、パソコン２０が受信するパケットのデータサイズが１６バイトであると認識する。
【００６１】
ＰｎＰ通信（８７）が終了した後、パソコン２０より印刷装置１０に対して印刷処理を実行させるために印刷データを送信する度に、印刷データを含むパケットがパソコン２０より印刷装置１０に対して転送される（８８）。この転送パケットのデータサイズは、既述のように６４バイトとなる。一方、印刷装置１０よりパソコン２０に対して転送される転送パケットのデータサイズは、既述のように１６バイトとなる（８９）。
【００６２】
次いで、印刷装置１０が印刷デバイス状態となっている場合において、パソコン２０より印刷装置１０に対して印刷処理を実行させる場合の具体例について、図６を参照しつつ説明する。このような場合は、はじめに、パソコン２０にて印刷データの作成処理が実行される。ここでは、ユーザにより、予めパソコン２０にインストールされている編集プログラムが操作され、印刷データの作成作業が実行される。
【００６３】
印刷データの作成が終了すると、作成された印刷データはパソコン２０の記憶領域（図示外）に記憶される。次いで、パソコン２０より印刷装置１０に対して印刷データの印刷指示がなされる場合、記憶されている印刷データが印刷装置１０に転送される。さらに、転送した印刷データの印刷を開始させるための印刷開始コマンドデータが印刷装置１０に転送される。印刷装置１０では、転送された印刷データに基づき、印刷開始コマンドデータによる指示に従って印刷処理を実行する。
【００６４】
ここで、印刷データの容量が大きい場合は、印刷データの転送に要する時間が長くなってしまい、印刷処理に要する時間が長くなってしまう。ところが本実施の形態では、印刷装置１０が印刷デバイス状態となっている場合には、パソコン２０→印刷装置１０の方向に転送されるパケットのデータサイズが大きくなるように、ＥＰの設定を行っている（パソコン２０→印刷装置１０：６４バイト、印刷装置１０→パソコン２０：１６バイト）。印刷装置１０が印刷デバイス状態にて駆動している場合、印刷装置１０→パソコン２０の方向に転送されるパケットは少量であるので、この方向に転送されるパケットのデータサイズは小さくても、印刷装置１０の印刷処理に及ぼす影響は小さい。よって、ユーザは、作成した印刷データを短時間で印刷装置１０に転送し、印刷処理を実行させることが可能となる。
【００６５】
以上説明したように、ＥＰを切り替えることによって、印刷装置１０〜パソコン２０間の通信を高速化している。本実施の形態の印刷システム１では、印刷装置１０が記憶デバイス状態の場合には、パソコン２０→印刷装置１０の方向と比較して、印刷装置１０→パソコン２０の方向の方が転送されるデータ量が大きいことが想定される。一方、印刷装置１０が印刷デバイス状態の場合には、印刷装置１０→パソコン２０の方向と比較して、パソコン２０→印刷装置１０の方向の方が転送されるデータ量が大きいことが想定される。従って印刷装置１０は、データ量の大きい方向にＥＰ１を割り当て、パケットのデータサイズが大きくなるように設定している。これにより、印刷装置１０が記憶デバイス状態の場合には、パソコン２０による編集プログラムの起動時間を短縮することが可能となるとともに、印刷装置１０が印刷デバイス状態の場合には、パソコン２０から印刷装置１０への印刷データの転送時間を短縮することが可能となっている。
【００６６】
次いで、印刷装置１０のＣＰＵ３１にて実行されるパケットサイズ切替処理について、図７〜図１２を参照して説明する。図７は、パケットサイズ切替処理のメイン処理のフローチャートであり、図８は、モード切替処理のフローチャートであり、図９は、プリンタ処理のフローチャートであり、図１０は、マスストレージ処理のフローチャートであり、図１１は、コマンド処理のフローチャートであり、図１２は、印刷動作制御処理のフローチャートである。
【００６７】
はじめに、図７を参照して、メイン処理のフローチャートについて説明する。図７に示すメイン処理は、印刷装置１０の電源スイッチがＯＮとされた場合において、ＣＰＵ３１により起動される処理である。
【００６８】
図７に示すようにＣＰＵ３１は、はじめに初期化処理を実行する（Ｓ１１）。初期化処理では、印刷装置１０による印刷処理が実行可能なように、駆動回路４３、駆動回路４４、及びＵＳＢコントローラ４２が初期化される。ＣＰＵ３１は、所定の初期化条件に基づいて、駆動回路４３、及び駆動回路４４を初期化（デバイスリセット、初期化設定等）する。これにより、サーマルヘッド４０、及びテープ送りローラ４１を駆動させ、印字テープに印刷を行うことが可能な状態とする。
【００６９】
またＣＰＵ３１は、所定の初期化条件に基づいて、ＵＳＢコントローラ４２を初期化（デバイスリセット、初期化設定）する。これにより、ＵＳＢコントローラ４２が使用可能な状態となる。なおこの状態では、ＵＳＢコントローラ４２のＥＰの設定、及びＣＰＵ３１によるＵＳＢデバイスドライバ選択及び読み出しの処理はなされていない。
【００７０】
次いでＣＰＵ３１は、モード切替処理を実行する（Ｓ１３）。モード切替処理では、操作キー３７の操作により実行された駆動状態の設定操作の内容に基づいて、ＵＳＢコントローラ４２のＥＰ設定処理、及びパソコン２０との再接続処理を実行する。印刷装置１０は、操作キー３７からの操作により、駆動状態（記憶デバイス状態、又は印刷デバイス状態）の設定が可能な状態となっている。ＣＰＵ３１は、ユーザによりなされた設定内容を判断し、設定された駆動状態にて駆動するために必要な処理を実行する。
【００７１】
なお、印刷装置１０に対する設定の方法は、上述のような操作キー３７からの入力による方法に限定されるものではない。従って、その他の方法により駆動状態が設定されても構わない。例えば、ＵＳＢケーブル１１を介して接続されるパソコン２０を介して駆動状態を設定する方法であってもよい。
【００７２】
図８を参照して、モード切替処理について説明する。図８に示すようにＣＰＵ３１は、はじめに、ユーザにより操作キー３７を介して設定された駆動状態を検出する（Ｓ３３）。そして、設定された駆動状態が記憶デバイス状態であるか印刷デバイス状態であるかを判断する。ＣＰＵ３１は、設定された駆動状態が記憶デバイス状態である場合には、ＵＳＢデバイスドライバとしてマスストレージクラスドライバを読み出して使用し、パソコン２０と通信を行う必要がある。またこの場合、ＵＳＢコントローラ４２のＥＰの割り当てを、送信用ＥＰ：ＥＰ１、受信用ＥＰ：ＥＰ２に設定する必要がある。他方、設定された駆動状態が印刷デバイス状態である場合には、ＵＳＢデバイスドライバとしてプリンタクラスドライバを読み出して使用し、パソコン２０と通信を行う必要がある。またこの場合、ＵＳＢコントローラ４２のＥＰの割り当てを、送信用ＥＰ：ＥＰ２、受信用ＥＰ：ＥＰ１に設定する必要がある。
【００７３】
ＣＰＵ３１は、はじめに現在の駆動状態を判断する。現在の駆動状態の情報は、ＳＲＡＭ３３のローカル領域６４中フラグ領域に記憶されている駆動状態フラグに記憶されている。そこでＣＰＵ３１は、駆動状態フラグを読み出して現在の駆動状態を判断する（Ｓ３３）。そして、現在の駆動状態と、ユーザにより操作キー３７を介して設定された駆動状態とを比較する（Ｓ３５）。なお、電源スイッチＯＮ直後においては、駆動状態フラグは「設定なし」の状態となっているので、本判定においては、必ず、ユーザにより異なる駆動状態が設定されたものと判断する。
【００７４】
現在の駆動状態と、ユーザにより設定された駆動状態とが同一である場合は（Ｓ３５：ＮＯ）、印刷装置１０は既にユーザにより設定された駆動状態にて駆動しており、ＵＳＢクラスドライバを新たに読み出して変更する必要はなく、ＵＳＢコントローラ４２のＥＰの割り当て設定も不要である。従って特段の処理を行うことなく、モード切替処理を終了してメイン処理（図７参照）に戻る。
【００７５】
現在の駆動状態と、ユーザにより設定された駆動状態とが異なる場合には（Ｓ３５：ＹＥＳ）、使用するＵＳＢクラスドライバを変更して駆動状態を変更するとともに、ＵＳＢコントローラ４２のＥＰの設定を変更する必要がある。さらに、接続中のパソコン２０が変更後の印刷装置１０の駆動状態を認識するように、ＵＳＢの再接続処理を実行する必要がある。
【００７６】
そこでＣＰＵ３１は、ＳＲＡＭ３３のローカル領域６４中フラグ領域の駆動状態フラグに駆動状態の情報を記憶した後、ＵＳＢの再接続処理として、はじめにＵＳＢケーブル１１の信号線のうちＤ＋信号のプルアップ設定を解除し、Ｄ＋信号をハイインピーダンス状態とする。そしてパソコン２０がＤ＋信号のハイインピーダンス状態を検出すると、パソコン２０は、印刷装置１０との接続状態が解除され、印刷装置１０が取り外されたものと判断する。
【００７７】
そしてこの状態でＣＰＵ３１は、ユーザにより設定されたＵＳＢデバイスドライバを新たに読み出し、使用可能な状態とする。そしてその後、ＵＳＢケーブル１１の信号線のうちＤ＋信号のプルアップ設定を有効とし、Ｄ＋信号をプルアップ状態とする。そしてパソコン２０がＤ＋信号のプルアップ状態を検出すると、パソコン２０は、印刷装置１０がＵＳＢケーブル１１を介して新たに接続されたと判断する。
【００７８】
以上説明した処理を実行することにより、ＵＳＢの再接続処理が実行される（Ｓ３７）。これにより、パソコン２０は印刷装置１０とＵＳＢケーブル１１を介して再接続した状態であると認識するので、次いで、印刷装置１０の駆動状態を認識して通信を実行可能とするための通信（ＰｎＰ通信）が実行される。
【００７９】
次いでＣＰＵ３１は、現在の駆動状態を判断し（Ｓ４１）、駆動状態に応じてＵＳＢコントローラ４２のＥＰの設定を切り替える処理を実行する。具体的には、Ｓ３７において、ＵＳＢデバイスドライバとしてプリンタクラスドライバが読み出されており、印刷デバイス状態として駆動している場合には（Ｓ４１：ＹＥＳ）、送信用ＥＰとしてＥＰ２を割り当て、受信用ＥＰとしてＥＰ１を割り当てるように、ＵＳＢコントローラ４２を設定する。これにより、印刷装置１０よりパソコン２０に対して送信されるパケットのデータサイズは１６バイトとなり、印刷装置１０がパソコン２０より受信するパケットのデータサイズは６４バイトとなる（Ｓ４３）。
【００８０】
また、Ｓ３７において、ＵＳＢデバイスドライバとしてマスストレージクラスが読み出されており、記憶デバイス状態として駆動している場合には（Ｓ４１：ＮＯ）、送信用ＥＰとしてＥＰ１を割り当て、受信用ＥＰとしてＥＰ２を割り当てるように、ＵＳＢコントローラ４２を設定する。これにより、印刷装置１０よりパソコン２０に対して送信されるパケットのデータサイズは６４バイトとなり、印刷装置１０がパソコン２０より受信するパケットのデータサイズは１６バイトとなる（Ｓ４５）。
【００８１】
そしてＥＰが設定された状態で、印刷装置１０とパソコン２０との間でＰｎＰ通信が実行される（Ｓ４７）。ＰｎＰ通信により、ホストとなるパソコン２０は、印刷装置１０の駆動状態を判断し、印刷装置１０を記憶デバイス状態として認識するか、印刷デバイス状態として認識するかを判断する。また、パソコン２０→印刷装置１０の方向、及び印刷装置１０→パソコン２０の方向に転送されるパケットのデータサイズを判断する。そして、モード切替処理を終了してメイン処理（図７参照）に戻る。
【００８２】
モード切替処理（Ｓ１３、図８参照）において、印刷装置１０の駆動状態とパケットのデータサイズが確定すると、次いでＣＰＵ３１は、電源スイッチの状態を監視する（Ｓ１５）。ユーザにより電源スイッチがＯＦＦ状態に操作されたことを検出した場合には（Ｓ１５：ＹＥＳ）、ＯＦＦ処理（Ｓ１７）にて後処理等を行った後、メイン処理を終了する。
【００８３】
ユーザにより電源スイッチがＯＦＦ状態に操作されなかった場合（Ｓ１５：ＮＯ）、次いで、駆動状態に対応したパケット通信処理が実行される（Ｓ２１、Ｓ２３）。ＣＰＵ３１は、ＳＲＡＭ３３の駆動状態フラグを参照して既存の駆動状態を判断する（Ｓ１９）。そして、判断した駆動状態が印刷デバイス状態である場合には（Ｓ１９：ＹＥＳ）、印刷デバイス状態おけるパソコン２０との通信処理であるプリンタ処理（Ｓ２１）を実行する。他方、判断した駆動状態が記憶デバイス状態である場合には（Ｓ１９：ＮＯ）、記憶デバイス状態におけるパソコン２０との通信処理であるマスストレージ処理（Ｓ２３）を実行する。
【００８４】
図９を参照して、プリンタ処理について説明する。なお既述のように、印刷デバイス状態におけるＵＳＢコントローラ４２のＥＰは、送信用ＥＰ：ＥＰ２、受信用ＥＰ：ＥＰ１のように設定されている。
【００８５】
図９に示すようにＣＰＵ３１は、はじめに、ＵＳＢコントローラ４２からのバルクＯＵＴ転送要求線６３の状態を監視し、バルクＯＵＴ転送要求があったかどうかを判断する（Ｓ５１）。ホストであるパソコン２０からターゲットである印刷装置１０に対してパケットが送信され、これをＵＳＢコントローラ４２が受信し、ＥＰ１に受信パケットのデータが格納された場合には、バルクＯＵＴ転送要求線６３の電位が変位する。従って、これを検出した場合には（Ｓ５１：ＹＥＳ）、ＣＰＵ３１は、ＵＳＢコントローラ４２がパソコン２０よりパケットを受信したと判断する。次いでＣＰＵ３１は、ＥＰ１に格納された状態のパケットのデータを読み出し、ＳＲＡＭ３３のローカル領域６４中リングバッファ領域に読み出したデータを記憶する（Ｓ５７）。そしてプリンタ処理を終了してメイン処理（図７参照）に戻る。
【００８６】
一方バルクＯＵＴ転送要求線６３の電位が変位しない場合には（Ｓ５１：ＮＯ）、ＣＰＵ３１は、ＵＳＢコントローラ４２がパケットを受信していないと判断する。次いでＣＰＵ３１は、ＵＳＢコントローラ４２からのバルクＩＮ転送要求線６２の状態を監視し、バルクＩＮ転送要求があったかどうかを判断する（Ｓ５３）。ホストであるパソコン２０に対してターゲットである印刷装置１０よりパケットの送信要求がされ、ＥＰ２に送信パケットのデータが格納された場合には、バルクＩＮ転送要求線６２の電位が変位する。従って、これを検出した場合に（Ｓ５３：ＹＥＳ）ＣＰＵ３１は、ＵＳＢコントローラ４２のＥＰ２に格納されているデータをパケット化させ、パソコン２０にパケットを送信させるために、ＵＳＢコントローラ４２を制御する。これにより、印刷装置１０よりパソコン２０に対してパケットが送信される（Ｓ５５）。そして処理を終了してメイン処理（図７参照）に戻る。また、バルクＩＮ転送要求を検出しなかった場合には（Ｓ５３：ＮＯ）、プリンタ処理を終了してメイン処理（図７参照）に戻る。
【００８７】
以上説明したプリンタ処理が実行されることによって、印刷装置１０が印刷デバイス状態として駆動している場合において、パソコン２０とＵＳＢケーブル１１を介してパケット通信が可能となる。
【００８８】
次に、図１０を参照して、マスストレージ処理について説明する。なお既述のように、記憶デバイス状態におけるＵＳＢコントローラ４２のＥＰは、送信用ＥＰ：ＥＰ１、受信用ＥＰ：ＥＰ２のように設定されている。
【００８９】
図１０に示すようにＣＰＵ３１は、はじめに、ＵＳＢコントローラ４２からのバルクＯＵＴ転送要求線６３の状態を監視し、バルクＯＵＴ転送要求があったかどうかを判断する（Ｓ６１）。ホストであるパソコン２０からターゲットである印刷装置１０に対してパケットが送信され、これをＵＳＢコントローラ４２が受信し、ＥＰ２に受信パケットのデータが格納された場合には、バルクＯＵＴ転送要求線６３の電位が変位する。従って、これを検出した場合に（Ｓ６１：ＹＥＳ）、ＣＰＵ３１は、ＵＳＢコントローラ４２がパソコン２０よりパケットを受信したと判断する。次いでＣＰＵ３１は、ＥＰ２に格納された状態のパケットのデータを読み出し、ＳＲＡＭ３３のローカル領域６４中受信バッファに読み出したデータを記憶する（Ｓ６７）。そしてマスストレージ処理を終了してメイン処理（図７参照）に戻る。
【００９０】
一方バルクＯＵＴ転送要求線６３の電位が変位しない場合には（Ｓ６１：ＮＯ）、ＣＰＵ３１は、ＵＳＢコントローラ４２はパケットを受信していないと判断する。次いでＣＰＵ３１は、ＵＳＢコントローラ４２からのバルクＩＮ転送要求線６２の状態を監視し、バルクＩＮ転送要求があったかどうかを判断する（Ｓ６３）。ホストであるパソコン２０に対してターゲットである印刷装置１０よりパケットの送信要求がされ、ＥＰ１に送信パケットのデータが格納された場合には、バルクＩＮ転送要求線６２の電位が変位する。従って、これを検出した場合に（Ｓ６３：ＹＥＳ）ＣＰＵ３１は、ＵＳＢコントローラ４２のＥＰ１に格納されているデータをパケット化させ、パソコン２０にパケットを送信させるために、ＵＳＢコントローラ４２を制御する。これにより、印刷装置１０よりパソコン２０に対してパケットが送信される（Ｓ６５）。そして処理を終了してメイン処理（図７参照）に戻る。また、バルクＩＮ転送要求を検出しなかった場合には（Ｓ６３：ＮＯ）、マスストレージ処理を終了してメイン処理（図７参照）に戻る。
【００９１】
以上説明したマスストレージ処理が実行されることによって、印刷装置１０が記憶デバイス状態として駆動している場合において、パソコン２０とＵＳＢケーブル１１を介してパケット通信が可能となる。
【００９２】
プリンタ処理（図９参照）又はマスストレージ処理（図１０参照）が終了した後のメイン処理では、図７に示すように、プリンタ処理（Ｓ２１）においてパソコン２０よりデータを受信しているか否かが判断される（Ｓ２５）。印刷デバイス状態にてパソコン２０より受信するデータは、印刷データ又は印刷開始コマンドデータであり（図６参照）、これらのデータを受信した場合には、ＣＰＵ３１は印刷処理を実行する必要がある。受信したデータはＳＲＡＭ３３のローカル領域６４中リングバッファ領域に記憶されるので（Ｓ５７、図９参照）、ＣＰＵ３１はリングバッファ領域に記憶されているデータを参照する（Ｓ２５）。そして、リングバッファ領域にデータが記憶されていると判断した場合には（Ｓ２５：ＹＥＳ）、ＣＰＵ３１は、記憶されているデータに基づく処理であるコマンド処理を実行する（Ｓ２７）。又、マスストレージ処理においてもプリンタ処理と同様にディスク領域の印刷データをリングバッファ領域に展開する。そしてリングバッファ領域にデータが記憶されていると判断した場合には、ＣＰＵ３１は、記憶されているデータに基づく処理であるコマンド処理を実行する。一方、リングバッファ領域にデータが記憶されていないと判断した場合には（Ｓ２５：ＮＯ）、Ｓ１３の処理に戻る。
【００９３】
コマンド処理について、図１１を参照して説明する。図１１に示すようにＣＰＵ３１は、はじめに、リングバッファに印刷データが記憶されており、パソコン２０より印刷データを受信したかどうかを判断する（Ｓ７３）。印刷データを受信していると判断した場合には（Ｓ７３：ＹＥＳ）、ＣＰＵ３１は、受信した印刷データに基づいて印刷処理を実行可能なように、ＳＲＡＭ３３中ローカル領域６４の印刷バッファ領域に印刷データの一部を記憶する（Ｓ８１）。なお、印刷データがラスタ形式である場合には、１回の走査により印刷可能な印刷データを抽出して印刷バッファに記憶する。また、印刷データがＥＳＣ／Ｐ形式である場合には、キャラクタコードの文字データを文字発生し、印刷バッファ領域内の所定位置に記憶する。これにより、続いてパソコン２０より印刷開始コマンドデータを受信した場合に、印刷バッファ領域に記憶した印刷データを印刷することが可能な状態となる。そしてコマンド処理を終了してメイン処理（図７参照）に戻る。
【００９４】
一方、リングバッファ領域に記憶されているデータが印刷データではなく（Ｓ７３：ＮＯ）、印刷開始指示データである場合（Ｓ７５：ＹＥＳ）、Ｓ８１にて印刷バッファ領域に記憶された印刷データに基づいて印刷処理を行う印刷動作制御処理を実行する（Ｓ７９）。
【００９５】
図１２を参照して、印刷動作制御処理について説明する。図１２に示すようにＣＰＵ３１は、はじめに、供給されている電源電圧が所定の範囲内であるかどうかを判断する（Ｓ９１）。供給電源電圧が所定範囲外である場合には（Ｓ９１：ＮＯ）、ＣＰＵ３１は、供給電源電圧が異常であり駆動回路４３、駆動回路４４、サーマルヘッド４０、テープ送りローラ４１等が駆動不能であるので印刷処理を行うことが不可能であると判断する。そしてＳ１０１のエラー処理に移行する。
【００９６】
供給されている電源電圧が所定の範囲内である場合（Ｓ９１：ＹＥＳ）、次いでＣＰＵ３１は、電池の充電容量が所定の範囲内であるかどうかを判断する（Ｓ９３）。電池充電容量が所定範囲外である場合には（Ｓ９３：ＮＯ）、電池の充電容量が異常であるので印刷処理を行うことが不可能であると判断し、Ｓ１０１のエラー処理に移行する。
【００９７】
電池の充電容量が所定の範囲内である場合（Ｓ９３：ＹＥＳ）、次いでＣＰＵ３１は、印刷装置１０及びサーマルヘッド４０の温度が所定の範囲内であるかどうかを判断する（Ｓ９５）。温度が所定の範囲外である場合には（Ｓ９５：ＮＯ）、温度が異常でありサーマルヘッド４０等が駆動不能であるので印刷処理を行うことが不可能であると判断する。そしてＳ１０１のエラー処理に移行する。
【００９８】
印刷装置１０及びサーマルヘッド４０の温度が所定の範囲内である場合（Ｓ９５：ＹＥＳ）、次いでＣＰＵ３１は、印字テープのテープカセットが収容されているかどうかを判断する（Ｓ９７）。テープカセットが収容されていない場合には（Ｓ９７：ＮＯ）、印刷処理を行うことはできないので、Ｓ１０１のエラー処理に移行する。
【００９９】
テープカセットが収容されている場合（Ｓ９７：ＹＥＳ）、印刷処理を行うために必要な条件を満たしているものと判断する。そしてＣＰＵ３１は、Ｓ８１（図１１参照）において印刷バッファに記憶された印刷データに基づいて、駆動回路４３、駆動回路４４を制御し、印字テープへの印刷処理を実行する（Ｓ９９）。そして印刷動作制御処理を終了し、コマンド処理（図１１参照）に戻る。
【０１００】
また、Ｓ９１〜Ｓ９７のいずれかの判断にて印刷処理を行うことが不可能であると判断した場合、Ｓ１０１においてＣＰＵ３１は、印刷装置１０に付随したＬＥＤ（図示外）を点灯させ、異常状態であることをユーザに通知する。また、パソコン２０に対して通知を行い、ディスプレイ２１に異常状態が発生し印刷が不可能である旨を表示させる（Ｓ１０１）。そして印刷動作制御処理を終了し、コマンド処理（図１１参照）に戻る。
【０１０１】
図１１のコマンド処理では、印刷動作制御処理（Ｓ７９）が終了した後、コマンド処理を終了してメイン処理（図７参照）に戻る。
【０１０２】
また、リングバッファに記憶されているデータが印刷データでも印刷開始指示データでもなく（Ｓ７３：ＮＯ、Ｓ７５：ＮＯ）、所定のその他のデータである場合には（Ｓ７７：ＹＥＳ）、ＣＰＵ３１は、リングバッファ領域に記憶されているデータに従って所定の処理を実行する（Ｓ８３）。その後、コマンド処理を終了してメイン処理（図７参照）に戻る。また、リングバッファに記憶されているデータが所定のデータでなかった場合には（Ｓ７７：ＮＯ）、特段の処理を行うことなくコマンド処理を終了してメイン処理（図７参照）に戻る。
【０１０３】
図７に示すメイン処理では、コマンド処理（Ｓ２７）が終了すると、Ｓ１３に移行する。そして、上述した処理を継続して実行する。
【０１０４】
以上説明したように、印刷装置１０は、ユーザの入力に従い、駆動状態を記憶デバイス状態、又は印刷デバイス状態のいずれかに設定して駆動することが可能となっている。ここで、記憶デバイス状態にて駆動する場合には、送信パケットのデータサイズが６４バイト、及び受信パケットのデータサイズが１６バイトとなるようにＵＳＢコントローラ４２のＥＰを設定する。印刷装置１０が記憶デバイス状態として駆動する場合においては、印刷装置１０よりパソコン２０に対して編集プログラムの実行ファイルが送信されるので、送信パケットのデータサイズが大きくなるようにＥＰを設定することによって、パソコン２０における編集プログラムの起動時間を短縮することが可能となる。
【０１０５】
一方、印刷装置１０が印刷デバイス状態にて駆動する場合には、送信パケットのデータサイズが１６バイト、及び受信パケットのデータサイズが６４バイトとなるようにＵＳＢコントローラ４２のＥＰを設定する。印刷装置１０が印刷デバイス状態として駆動する場合においては、印刷装置１０はパソコン２０より印刷データを受信するので、受信パケットのデータサイズが大きくなるようにＥＰを設定することによって、印刷処理の処理時間を短縮することが可能となる。
【０１０６】
さらに、上述の処理を実行することにより、ＥＰのバッファサイズの小さいＵＳＢコントローラを使用して短時間で大量のデータを転送することが可能となるので、ＵＳＢコントローラのコストを削減することが可能となり、印刷装置１０全体のコストを低く抑えることが可能となる。
【０１０７】
なお、図１のパソコン２０が本発明の「外部端末」に相当し、図９のＳ５５、Ｓ５７、図１０のＳ６５、Ｓ６７において、パソコン２０よりパケットを受信する処理、及びパソコン２０に対してパケットを送信する処理を行うＣＰＵ３１が、本発明の「通信手段」に相当し、図４のＦＬＡＳＨ  ＲＯＭ３４及びＳＲＡＭ３３が、本発明の「記憶手段」に相当し、図１２のＳ９９において印刷処理を実行するための処理を行うＣＰＵ３１が、本発明の「印刷手段」に相当し、図８に示すモード切替処理により、印刷装置１０の駆動状態を切り替える処理を行うＣＰＵ３１が、本発明の「切替手段」に相当し、図８のＳ４３、Ｓ４５において、送信用ＥＰ及び受信用ＥＰの設定を行うＣＰＵ３１が、本発明の「決定手段」に相当し、図８のＳ３５において、設定された駆動状態による判別を行うために、図１に示す操作キー３７や、パソコン２０を介してユーザより入力される駆動状態を受け付ける処理を行うＣＰＵ３１が、本発明の「駆動状態受付手段」に相当する。
【０１０８】
なお、本発明は上記実施の形態に限定されるものではなく、発明の要旨を変更しない範囲での変更が可能である。
【０１０９】
上記実施の形態では、ＵＳＢコントローラ４２はＣＰＵ３１とは独立したデバイスとする構成を想定したが、この構成に限定されない。従って、ＣＰＵ３１がＵＳＢコントローラ４２の機能を内蔵する構成であっても構わない。
【０１１０】
また、上記実施の形態では、印刷装置１０のＣＰＵ３１は、電源ＯＮを検出後マスストレージクラスドライバを読み出して使用することによって記憶デバイス状態にて起動していたが、この起動方法に限定されない。従って、印刷装置１０のＣＰＵ３１は、電源ＯＮを検出後プリンタクラスドライバを読み出して使用することよって印刷デバイス状態にて起動する起動方法としても構わない。
【０１１１】
また、上記実施の形態では、印刷装置１０が記憶デバイス状態である場合のパケットのデータサイズ（送信：６４バイト、受信：１６バイト）、及び、印刷デバイス状態である場合のパケットのデータサイズ（送信：１６バイト、受信：６４バイト）を既述のように定めたが、これらのデータサイズに限定されるものではない。従って、異なるデータサイズのパケットを用いて通信を行うこととしても構わない。
【０１１２】
また、上記実施の形態では、印刷装置１０が記憶デバイス状態にて駆動している場合における主要な転送パケットのデータとして、印刷装置１０に記憶されている編集プログラムの実行ファイルを想定し、印刷装置１０が印刷デバイス状態にて駆動している場合における主要な転送パケットのデータとして、印刷データを想定した。しかしながら、印刷装置１０とパソコン２０との間でおこなわれる通信の主要なデータはこれらに限定されない。
【０１１３】
また、上記実施の形態では、印刷装置１０の駆動状態を切り替える場合において、図８のＳ３７にて説明した再接続処理を実行していたが、この切替方法に限定されるものではない。従って、ＰｎＰ通信を実行せず、コマンド通信によって、パソコン２０からの印刷装置１０の認識状態を切り替える方法を採用しても構わない。
【図面の簡単な説明】
【０１１４】
【図１】印刷システム１を示す模式図である。
【図２】印刷装置１０の電気的構成を示す模式図である。
【図３】ＦＬＡＳＨ  ＲＯＭ３４の記憶領域を示す模式図である。
【図４】ＳＲＡＭ３３の記憶領域を示す模式図である。
【図５】印刷装置１０〜パソコン２０間のデータの流れを示す内部ブロック図である    。
【図６】印刷装置１０〜パソコン２０間の通信シーケンスを示す模式図である。
【図７】パケットサイズ切替処理のメイン処理のフローチャートである。
【図８】モード切替処理のフローチャートである。
【図９】プリンタ処理のフローチャートである。
【図１０】マスストレージ処理のフローチャートである。
【図１１】コマンド処理のフローチャートである。
【図１２】印刷動作制御処理のフローチャートである。
【符号の説明】
【０１１５】
１    印刷システム
１０    印刷装置
１１    ＵＳＢケーブル
２０    パソコン
３３    ＳＲＡＭ
３４    ＦＬＡＳＨ  ＲＯＭ
３７    操作キー
５１    制御プログラム領域
５２    アプリケーションプログラム領域
５３    デバイスドライバ領域
５５    ディスク領域
６４    ローカル領域
【図１】
0004941399.tif 000002
【図２】
0004941399.tif 000003
【図３】
0004941399.tif 000004
【図４】
0004941399.tif 000005
【図５】
0004941399.tif 000006
【図６】
0004941399.tif 000007
【図７】
0004941399.tif 000008
【図８】
0004941399.tif 000009
【図９】
0004941399.tif 000010
【図１０】
0004941399.tif 000011
【図１１】
0004941399.tif 000012
【図１２】
0004941399.tif 000013