以下、本発明を具体化した印刷装置の実施の形態について、図面を参照して説明する。なお、これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものであり、記載されている装置の構成、各種処理のフローチャートなどは、特に特定的な記載がない限り、それのみに限定する趣旨ではなく、単なる説明例である。
はじめに、図1を参照し、本発明の印刷装置10、及び印刷装置10に接続されるパソコン20を含む印刷システム1について説明する。図1は、印刷システム1を示す模式図である。
図1に示すように、印刷システム1は、印刷装置10とパソコン20とがUSBケーブル11を介して接続された構成を有している。印刷装置10は、印字テープに印刷を行う所謂ラベルプリンタである。また、パソコン20は、本体22、ディスプレイ21、キーボード23、及びマウス24等を備えたデスクトップコンピュータである。そしてパソコン20は、印刷装置10に対して印刷処理の実行を指示する、印刷システム1のホストとして位置づけられる。
次に、印刷装置10の電気的構成について、図2を参照して説明する。図2は、印刷装置10の電気的構成を示す模式図である。
図2に示すように、印刷装置10は、装置全体の制御を司るCPU31、制御プログラム等を記憶し、書き換え可能であり、電源を切ってもデータが消えない不揮発性記憶素子であるFLASH ROM34、CPU31が制御プログラムを実行する場合において発生する一時的なデータ等が記憶される揮発性記憶素子であるSRAM33、及び、印刷装置10のパラメータ情報や履歴情報等が記憶される不揮発性記憶素子であるEEPROM35を備えている。そして、CPU31よりFLASH ROM34、SRAM33、及びEEPROM35に記憶されている情報を参照可能なように、双方間はバスを介して接続している。
また印刷装置10は、入出力インターフェース36を備えている。入出力インターフェース36は、CPU31と、CPU31に接続される各種デバイス(操作キー37、ディスプレイコントローラ(LCDC)38、駆動回路43、駆動回路44、USBコントローラ42)との間に挿入される。そして、入出力信号間の電圧変換処理、インピーダンス変換処理、タイミング調整処理等を行うことにより、CPU31から各種デバイスに対して出力される信号を各種デバイスにて認識可能となると共に、各種デバイスよりCPU31に対して送信される信号をCPU31にて認識可能となる。
また印刷装置10は、操作キー37を備えている。操作キー37は、ユーザの操作により、印刷装置10に対して所望する様々な動作を起こさせるために設けられている。そして、ユーザにより操作キー37を操作された場合における操作内容をCPU31にて認識することが可能なように、操作キー37と入出力インターフェース36とは電気的に接続している。
また印刷装置10は、ディスプレイコントローラ(以下、「LCDC38」という。)、及び液晶ディスプレイ(以下、「LCD39」という。)を備えている。LCDC38は、表示データを記憶する表示用RAM(図示外)を備えており、LCD39を制御して表示データを表示させるために、LCD39と電気的に接続している。また、LCDC38は、CPU31より制御可能なように、入出力インターフェース36と電気的に接続している。
また印刷装置10は、サーマルヘッド40と、サーマルヘッド40を制御可能な駆動回路43とを備えている。サーマルヘッド40は、インクリボン(図示外)に熱を加えることにより印字テープにインクを転写することが可能なデバイスである。また駆動回路43は、サーマルヘッド40を制御して印字テープに印刷データを印刷させることが可能なように、サーマルヘッド40と電気的に接続している。また駆動回路43は、CPU31より制御可能なように、入出力インターフェース36と電気的に接続している。
また印刷装置10は、テープ送りローラ41と、テープ送りローラ41を制御可能な駆動回路44とを備えている。テープ送りローラ41は、サーマルヘッド40によるインク転写時において印字テープを送出するために設けられている。また駆動回路44は、サーマルヘッド40による印字テープへの印刷データの印字時において、テープ送りローラ41を制御して印字テープを送出させることが可能なように、テープ送りローラ41と電気的に接続している。また駆動回路44は、CPU31より制御可能なように、入出力インターフェース36と電気的に接続している。
また印刷装置10は、USBコントローラ42を備えている。USBコントローラ42は、パソコン20とUSBケーブル11を介して接続した状態で、パソコン20と通信を行うことが可能なように、電圧変換処理及びインピーダンス変換処理を行うためのコントローラデバイスである。そして、USBケーブル11を介してパソコン20より受信した信号をCPU31にて認識可能とするために、又はCPU31より送信された信号をUSBケーブル11を介してパソコン20に送信することが可能なように、USBコントローラ42と入出力インターフェース36とは電気的に接続している。
次に、印刷装置10が備える記憶素子であるFLASH ROM34、SRAM33、の記憶領域について、図3、図4を参照して説明する。図3は、FLASH ROM34の記憶領域を示す模式図であり、図4は、SRAM33の記憶領域を示す模式図である。
図3を参照し、FLASH ROM34の記憶領域について説明する。FLASH ROM34には、制御プログラム領域51が設けられている。制御プログラム領域51には、CPU31が各種デバイスを制御して処理を実行する場合の制御プログラムが記憶されている。制御プログラムは、CPU31が各種処理を実行する場合において、CPU31より読み出される。また、制御プログラム領域51には、アプリケーションプログラム領域52、USBデバイスドライバ領域53、及びその他の領域が設けられている。
制御プログラム領域51のうちアプリケーションプログラム領域52には、CPU31が実行する制御プログラムのうち、上位レベルの制御プログラム(ファイル操作(書き込み、読み出し)、ファイルの内容に基づく判断、各種ドライバプログラムへの命令等)が記憶されている。
制御プログラム領域51のうちUSBデバイスドライバ領域53には、USBケーブル11を介した通信のプロトコル制御を実行するUSBデバイスドライバが記憶されている。具体的には、USBデバイスドライバとして、マスストレージクラスドライバとプリンタクラスドライバとが記憶されている。これらは、印刷装置10がUSBケーブル11を介してパソコン20と通信を行う場合において、必要に応じていずれかのUSBデバイスドライバがCPU31より読み出され使用される。
CPU31により、USBデバイスドライバとしてプリンタクラスドライバが選択され使用される場合には、印刷装置10はパソコンより印刷デバイスとして認識される。これにより、従来の一般的な印刷装置の使用方法と同様に、パソコン20から印刷装置10に対して印刷データを送信することによって、印刷装置10にて印字テープに印刷を行うことが可能となる。以下、印刷デバイスとして認識されるような駆動状態を「印刷デバイス状態」という。
またCPU31により、USBデバイスドライバとしてマスストレージクラスドライバが選択され使用される場合には、印刷装置10はパソコン20より記憶デバイスとして認識される。これにより、印刷装置10内の特定の記憶領域(FLASH ROM34中ディスク領域55、後述)がパソコン20の記憶領域として使用可能となる。以下、記憶デバイスとして認識されるような駆動状態を「記憶デバイス状態」という。
またFLASH ROM34には、ディスク領域55が設けられている。ディスク領域55は、印刷装置10がパソコン20より記憶デバイスとして認識された状態において、パソコン20の記憶領域として使用可能なように設定されている。ディスク領域55には、印刷データを編集するためのプログラムの実行ファイルである編集プログラム実行ファイルが少なくとも記憶される。
次に、図4を参照し、SRAM33の記憶領域について説明する。SRAM33には、ローカル領域64が設けられている。ローカル領域64は、CPU31にて処理が実行される場合において必要となる情報を記憶するための領域である。
ローカル領域64には、印字テープに印字を行う場合の印刷データが一時的に記憶される印刷バッファ領域が設けられている。また、フラグ情報を記憶するフラグ領域が設けられている。また、印刷装置10がパソコン20より印刷デバイスとして認識されている状態においてパソコン20より受信するデータが記憶されるリングバッファ領域が設けられている。また、印刷装置10がパソコン20より記憶デバイスとして認識されている状態においてパソコン20より受信するデータが記憶される受信バッファ領域が設けられている。
次に、印刷装置10のCPU31がパソコン20と通信を行う場合における、印刷装置10内のデータの流れについて、図5を参照して説明する。図5は、印刷装置10〜パソコン20間のデータの流れを示す内部ブロック図である。
図5に示すように、FLASH ROM34は、制御プログラムとしてアプリケーションプログラム56とUSBデバイスドライバ57とを備えている。また、USBデバイスドライバ57としてプリンタクラスドライバ58とマスストレージクラスドライバ59とを備えている。USBデバイスドライバ57は、実際にUSBコントローラ42を制御してパソコン20とUSBケーブル11を介した通信を実行する場合において、事前にCPU31により読み出されて使用されるプログラムである。
CPU31は、USBデバイスドライバとしてプリンタクラスドライバ58とマスストレージクラスドライバ59とのいずれかを選択して読み出し、使用することによって、パソコン20とUSBケーブル11を介した通信を実行している。そして、CPU31がUSBデバイスドライバ57としてマスストレージクラスドライバ59を選択した場合には、パソコン20は印刷装置10を記憶デバイスとして認識する。これにより、パソコン20が印刷装置10とUSBケーブル11を介して接続した状態で、ディスク領域55がパソコン20の記憶領域として使用可能となる。
また、CPU31がUSBデバイスドライバ57としてプリンタクラスドライバ58を選択した場合には、パソコン20は印刷装置10を印刷デバイスとして認識する。これにより、パソコン20が印刷装置10とUSBケーブル11を介して接続した状態で、パソコン20より印刷装置10に対して印刷データを転送し印刷指示を行うことによって、印刷装置10に印刷処理を実行させることが可能な状態となる。
次いで、USBコントローラ42について説明する。USBコントローラ42は、エンドポイント(EP)を使用してUSBケーブル11を介したパケットの送受信を実行する。EPとは、FIFO構造を有する送受信用バッファである。そして、送信用に割り当てられたEP(送信用EP)にデータが記憶された場合に、USBコントローラ42は記憶されたデータをパケット化してUSBケーブル11に対して送信可能となる。一方、USBコントローラ42がUSBケーブル11を介してパケットを受信した場合には、パケット中のデータは受信用に割り当てられたEP(受信用EP)に記憶される。従ってCPU31は、送信用EPに送信データを記憶することにより、パソコン20に対してパケットを送信することが可能となる。またCPU31は、受信用EPに記憶されたデータを読み出すことにより、パソコン20からのパケットを認識することが可能となる。
図5に示す例では、USBコントローラ42は、3つのEP(EP0、EP1、EP2)をそれぞれ有している。また、それぞれのEPは、設定により送信用/受信用のいずれかに切り替えて使用される。また、EP0は8バイトのバッファサイズを有し、8バイトのデータを記憶することが可能であり、EP1は64バイトのバッファサイズを有し、64バイトのデータを記憶することが可能であり、EP2は16バイトのバッファサイズを有し、16バイトのデータを記憶することが可能な状態となっている。
なおEP0は、通信制御のために必要なコントロールパケットを送受信するために専用に設けられたEPであるので、任意のパケットの通信のための使用はできない。従って、印刷装置10〜パソコン20間でパケットの通信を行う場合に使用可能なEPは、EP1、及びEP2となる。また、印刷装置10〜パソコン20間では双方向通信を行う必要があるため、EP1とEP2とのうち一方が送信用に割り当てられ、他方が受信用に割り当てられる。
具体的には、EP1が送信用(印刷装置10→パソコン20)に割り当てられ、EP2が受信用(パソコン20→印刷装置10)に割り当てられた場合には、送信パケットのデータサイズは64バイトとなり、受信パケットのデータサイズは16バイトとなる。また、EP2が送信用(印刷装置10→パソコン20)に割り当てられ、EP1が受信用(パソコン20→印刷装置10)に割り当てられた場合には、送信パケットのデータサイズは16バイトとなり、受信パケットのデータサイズは64バイトとなる。
上述のように、パケットのデータサイズはEPのバッファサイズに依存する。従って、EPのバッファサイズを大きくすれば、データサイズの大きなパケットを使用した通信が可能であるので、印刷装置10〜パソコン20間の通信を高速に実行できることになる。しかしながら一般的に、EPのバッファサイズは、USBコントローラ42の価格に比例する。従ってバッファサイズの大きなEPを有するUSBコントローラは、バッファサイズの小さなEPを有するUSBコントローラと比較して高価となる。本発明の要旨は、安価で小さなバッファサイズのEPを有するUSBコントローラを使用し、短時間で大量のデータ通信を可能とする点にある。
次いで、USBコントローラ42のパケット通信時における動作について概説する。USBコントローラ42とCPU31との間には、USBコントローラ42の状態をCPU31に通知するための制御信号として、バルクIN転送要求線62と、バルクOUT転送要求線63とが少なくとも設けられている。ここで、バルクIN転送要求線62は、送信用EPにデータが記憶された場合に、USBコントローラ42が電位を変位させる。CPU31は、バルクIN転送要求線62の電位が変位したことを検出した場合に、USBコントローラ42がパソコン20に対してパケットを送信可能な状態であると判断する。そしてCPU31は、パソコン20に対してパケットを送信することが可能なタイミングでUSBコントローラ42を制御し、送信用EPに記憶されているデータをパケット化させてパソコン20に送信させる。
一方、バルクOUT転送要求線63は、受信用EPにデータが記憶された場合に、USBコントローラ42が電位を変位させる。USBケーブル11を介してUSBコントローラ42が受信したパケットのデータは受信用EPに自動的に格納されるので、CPU31は、バルクOUT転送要求線63の電位が変位したことを検出した場合に、USBコントローラ42がパソコン20よりパケットを受信したと判断する。そしてCPU31は、USBコントローラ42を制御し、当該EPに記憶されているデータを読み出してSRAM33に記憶する。
以上概説した処理を実行することにより、CPU31は、USBケーブル11を介して接続された状態のパソコン20に対するパケット送信処理、及びパソコン20からのパケット受信処理を実行している。
次に、印刷装置10〜パソコン20間で実行される通信シーケンスについて、図6を参照して説明する。図6は印刷装置10〜パソコン20間の通信シーケンスを示す模式図である。
図6に示すように、はじめに、印刷装置10とパソコン20とがUSBケーブル11を介して接続される(81)。なおこの状態では、印刷装置10の電源スイッチがON状態となっていないので、パソコン20は印刷装置10を認識できておらず、印刷装置10〜パソコン20との間で通信はなされていない。
次いで、印刷装置10の電源スイッチがON状態とされる(70)。本実施の形態では、印刷装置10は電源スイッチがONとされた直後は、USBデバイスドライバとしてマスストレージクラスドライバを選択して読み込む。これにより、印刷装置10はパソコン20より記憶デバイスとして認識される状態、すなわち記憶デバイス状態となる。また、USBコントローラ42のEP1が送信用EPとして割り当てられ、EP2が受信用EPとして割り当てられる。これにより、印刷装置10より送信されるパケットのデータサイズが64バイトに設定され、印刷装置10が受信するパケットのデータサイズが16バイトに設定される。
また、印刷装置10は電源スイッチがONされるのと同時に、USBケーブル11の信号線のうちD+信号をプルアップする。そして、パソコン20にてD+信号のプルアップ状態が検出された場合に、パソコン20は印刷装置10がUSBケーブル11を介して接続されたと判断する。
パソコン20にて印刷装置10が接続されたと判断された場合、次いで、印刷装置10〜パソコン20間でプラグアンドプレイ通信(PnP通信)が実行される(82)。PnP通信では、ホストとして機能するパソコン20が、ターゲットとして機能する印刷装置10の駆動状態を把握するためのパケット通信が実行される。またこの場合、印刷装置10ではUSBコントローラ42のEP0が使用され、パケットの送受信が実行される。そしてPnP通信により、パソコン20は、接続された印刷装置10の駆動状態が記憶デバイス状態となっており、印刷装置10のFLASH ROM34のディスク領域55(図3参照)がパソコン20の記憶領域として使用可能な状態であることを認識する。また、パソコン20より送信可能なパケットのデータサイズが16バイトであり、パソコン20が受信するパケットのデータサイズが64バイトであると認識する。
PnP通信(82)が終了した以後は、印刷装置10のFLASH ROM34のディスク領域55のデータがパソコン20より参照される度に、参照されるデータを含むパケットが印刷装置10よりパソコン20に対して転送される(83)。この転送パケットのデータサイズは、既述のように64バイトとなる。また、パソコン20より印刷装置10のFLASH ROM34のディスク領域55にデータを記憶する場合に、記憶されるデータを含むパケットがパソコン20より印刷装置10に対して転送される(84)。この転送パケットのデータサイズは、既述のように16バイトとなる。
次いで、印刷装置10が記憶デバイス状態となっている場合において、パソコン20より印刷装置10に対して印刷処理を実行させる場合の具体例について、図6を参照しつつ説明する。このような場合には、はじめに、パソコン20を操作するユーザにより、印刷装置10のFLASH ROM34のディスク領域55に記憶されている印刷データの編集プログラムが選択される。すると、編集プログラムの実行ファイルが印刷装置10よりパソコン20に対して転送される(83)。そしてパソコン20の記憶領域(図示外)に転送された編集プログラムの実行ファイルが記憶される。この状態でユーザは編集プログラムが使用可能となるので、編集プログラムを使用して印刷データを作成する。
印刷データの作成が終了すると、作成された印刷データは、ユーザにより印刷装置10のFLASH ROM34のディスク領域55に記憶される。この場合、作成された印刷データがパソコン20より印刷装置10に対して転送され(84)、ディスク領域55に記憶される。そして、印刷装置10に対して印刷データの印刷指示がなされた場合に、印刷装置10はディスク領域55に記憶している印刷データに基づいて印刷処理を実行する。
ここで、編集プログラムの実行ファイルの転送速度は、ユーザによる編集プログラム操作により編集プログラムが選択されてから起動されるまでの起動時間に影響を及ぼす。転送速度が遅い場合、編集プログラムの起動時間が遅くなってしまうので、ユーザは編集プログラムが使用可能となるまで待機しなければならない。ところが本実施の形態では、印刷装置10が記憶デバイス状態となっている場合には、印刷装置10→パソコン20の方向に転送されるパケットのデータサイズが大きくなるように、EPの設定を行っている(印刷装置10→パソコン20:64バイト、パソコン20→印刷装置:16バイト)。これにより、編集プログラムの起動時間が速くなり、ユーザは編集プログラムの選択後、直ぐに編集プログラムを使用することが可能となる。
次いで、印刷装置10の駆動状態が切り替えられる場合について説明する。印刷装置10が記憶デバイス状態にて駆動している状態で、ユーザによる操作キー37の操作、及び、パソコン20のキーボード23及びマウス24の操作により、印刷装置10の駆動状態の切り替え指示が入力される(71)。するとパソコン20は、印刷装置10に対して駆動状態を切り替える旨の情報である駆動状態情報を送信する(85)。
駆動状態情報を受信した印刷装置10は、USBデバイスドライバとして使用していたマスストレージクラスドライバをプリンタクラスドライバに切り替える。はじめに、一旦パソコン20との接続状態を解除するために、USBケーブル11の信号線のうちD+信号のプルアップ状態をクリアし、ハイインピーダンス状態とする。そして、パソコン20にてD+信号のプルアップ状態のクリアが検出された場合に、パソコン20は印刷装置10との接続状態が解除されたものと判断する。
次いで、印刷装置10は、USBデバイスドライバとしてプリンタクラスドライバを選択して読み込む。これにより、印刷装置10はパソコン20より印刷デバイスとして認識される状態、すなわち印刷デバイス状態となる。また、USBコントローラ42のEP2が送信用EPとして割り当てられ、EP1が受信用EPとして割り当てられる。これにより、印刷装置10より送信されるパケットのデータサイズが16バイトに設定され、印刷装置10が受信するパケットのデータサイズが64バイトに設定される。
そして再度、USBケーブル11の信号線のうちD+信号をプルアップ状態とする。そして、パソコン20にてD+信号のプルアップ状態が検出された場合に、パソコン20は印刷装置10がUSBケーブル11を介して再接続されたと判断する(86)。
パソコン20にて印刷装置が再接続されたことを検出した場合、次いで、印刷装置10〜パソコン20間でPnP通信が実行される(87)。PnP通信では、電源スイッチON時のPnP通信(82)と同様に、ホストとして機能するパソコン20が、ターゲットとして機能する印刷装置10の状態を把握するためのパケット通信が実行される。そして、パソコン20は、駆動状態が印刷デバイス状態となっており、印刷データを転送することにより印字テープへの印刷処理が実行可能な状態であることを認識する。また、パソコン20より送信可能なパケットのデータサイズが64バイトであり、パソコン20が受信するパケットのデータサイズが16バイトであると認識する。
PnP通信(87)が終了した後、パソコン20より印刷装置10に対して印刷処理を実行させるために印刷データを送信する度に、印刷データを含むパケットがパソコン20より印刷装置10に対して転送される(88)。この転送パケットのデータサイズは、既述のように64バイトとなる。一方、印刷装置10よりパソコン20に対して転送される転送パケットのデータサイズは、既述のように16バイトとなる(89)。
次いで、印刷装置10が印刷デバイス状態となっている場合において、パソコン20より印刷装置10に対して印刷処理を実行させる場合の具体例について、図6を参照しつつ説明する。このような場合は、はじめに、パソコン20にて印刷データの作成処理が実行される。ここでは、ユーザにより、予めパソコン20にインストールされている編集プログラムが操作され、印刷データの作成作業が実行される。
印刷データの作成が終了すると、作成された印刷データはパソコン20の記憶領域(図示外)に記憶される。次いで、パソコン20より印刷装置10に対して印刷データの印刷指示がなされる場合、記憶されている印刷データが印刷装置10に転送される。さらに、転送した印刷データの印刷を開始させるための印刷開始コマンドデータが印刷装置10に転送される。印刷装置10では、転送された印刷データに基づき、印刷開始コマンドデータによる指示に従って印刷処理を実行する。
ここで、印刷データの容量が大きい場合は、印刷データの転送に要する時間が長くなってしまい、印刷処理に要する時間が長くなってしまう。ところが本実施の形態では、印刷装置10が印刷デバイス状態となっている場合には、パソコン20→印刷装置10の方向に転送されるパケットのデータサイズが大きくなるように、EPの設定を行っている(パソコン20→印刷装置10:64バイト、印刷装置10→パソコン20:16バイト)。印刷装置10が印刷デバイス状態にて駆動している場合、印刷装置10→パソコン20の方向に転送されるパケットは少量であるので、この方向に転送されるパケットのデータサイズは小さくても、印刷装置10の印刷処理に及ぼす影響は小さい。よって、ユーザは、作成した印刷データを短時間で印刷装置10に転送し、印刷処理を実行させることが可能となる。
以上説明したように、EPを切り替えることによって、印刷装置10〜パソコン20間の通信を高速化している。本実施の形態の印刷システム1では、印刷装置10が記憶デバイス状態の場合には、パソコン20→印刷装置10の方向と比較して、印刷装置10→パソコン20の方向の方が転送されるデータ量が大きいことが想定される。一方、印刷装置10が印刷デバイス状態の場合には、印刷装置10→パソコン20の方向と比較して、パソコン20→印刷装置10の方向の方が転送されるデータ量が大きいことが想定される。従って印刷装置10は、データ量の大きい方向にEP1を割り当て、パケットのデータサイズが大きくなるように設定している。これにより、印刷装置10が記憶デバイス状態の場合には、パソコン20による編集プログラムの起動時間を短縮することが可能となるとともに、印刷装置10が印刷デバイス状態の場合には、パソコン20から印刷装置10への印刷データの転送時間を短縮することが可能となっている。
次いで、印刷装置10のCPU31にて実行されるパケットサイズ切替処理について、図7〜図12を参照して説明する。図7は、パケットサイズ切替処理のメイン処理のフローチャートであり、図8は、モード切替処理のフローチャートであり、図9は、プリンタ処理のフローチャートであり、図10は、マスストレージ処理のフローチャートであり、図11は、コマンド処理のフローチャートであり、図12は、印刷動作制御処理のフローチャートである。
はじめに、図7を参照して、メイン処理のフローチャートについて説明する。図7に示すメイン処理は、印刷装置10の電源スイッチがONとされた場合において、CPU31により起動される処理である。
図7に示すようにCPU31は、はじめに初期化処理を実行する(S11)。初期化処理では、印刷装置10による印刷処理が実行可能なように、駆動回路43、駆動回路44、及びUSBコントローラ42が初期化される。CPU31は、所定の初期化条件に基づいて、駆動回路43、及び駆動回路44を初期化(デバイスリセット、初期化設定等)する。これにより、サーマルヘッド40、及びテープ送りローラ41を駆動させ、印字テープに印刷を行うことが可能な状態とする。
またCPU31は、所定の初期化条件に基づいて、USBコントローラ42を初期化(デバイスリセット、初期化設定)する。これにより、USBコントローラ42が使用可能な状態となる。なおこの状態では、USBコントローラ42のEPの設定、及びCPU31によるUSBデバイスドライバ選択及び読み出しの処理はなされていない。
次いでCPU31は、モード切替処理を実行する(S13)。モード切替処理では、操作キー37の操作により実行された駆動状態の設定操作の内容に基づいて、USBコントローラ42のEP設定処理、及びパソコン20との再接続処理を実行する。印刷装置10は、操作キー37からの操作により、駆動状態(記憶デバイス状態、又は印刷デバイス状態)の設定が可能な状態となっている。CPU31は、ユーザによりなされた設定内容を判断し、設定された駆動状態にて駆動するために必要な処理を実行する。
なお、印刷装置10に対する設定の方法は、上述のような操作キー37からの入力による方法に限定されるものではない。従って、その他の方法により駆動状態が設定されても構わない。例えば、USBケーブル11を介して接続されるパソコン20を介して駆動状態を設定する方法であってもよい。
図8を参照して、モード切替処理について説明する。図8に示すようにCPU31は、はじめに、ユーザにより操作キー37を介して設定された駆動状態を検出する(S33)。そして、設定された駆動状態が記憶デバイス状態であるか印刷デバイス状態であるかを判断する。CPU31は、設定された駆動状態が記憶デバイス状態である場合には、USBデバイスドライバとしてマスストレージクラスドライバを読み出して使用し、パソコン20と通信を行う必要がある。またこの場合、USBコントローラ42のEPの割り当てを、送信用EP:EP1、受信用EP:EP2に設定する必要がある。他方、設定された駆動状態が印刷デバイス状態である場合には、USBデバイスドライバとしてプリンタクラスドライバを読み出して使用し、パソコン20と通信を行う必要がある。またこの場合、USBコントローラ42のEPの割り当てを、送信用EP:EP2、受信用EP:EP1に設定する必要がある。
CPU31は、はじめに現在の駆動状態を判断する。現在の駆動状態の情報は、SRAM33のローカル領域64中フラグ領域に記憶されている駆動状態フラグに記憶されている。そこでCPU31は、駆動状態フラグを読み出して現在の駆動状態を判断する(S33)。そして、現在の駆動状態と、ユーザにより操作キー37を介して設定された駆動状態とを比較する(S35)。なお、電源スイッチON直後においては、駆動状態フラグは「設定なし」の状態となっているので、本判定においては、必ず、ユーザにより異なる駆動状態が設定されたものと判断する。
現在の駆動状態と、ユーザにより設定された駆動状態とが同一である場合は(S35:NO)、印刷装置10は既にユーザにより設定された駆動状態にて駆動しており、USBクラスドライバを新たに読み出して変更する必要はなく、USBコントローラ42のEPの割り当て設定も不要である。従って特段の処理を行うことなく、モード切替処理を終了してメイン処理(図7参照)に戻る。
現在の駆動状態と、ユーザにより設定された駆動状態とが異なる場合には(S35:YES)、使用するUSBクラスドライバを変更して駆動状態を変更するとともに、USBコントローラ42のEPの設定を変更する必要がある。さらに、接続中のパソコン20が変更後の印刷装置10の駆動状態を認識するように、USBの再接続処理を実行する必要がある。
そこでCPU31は、SRAM33のローカル領域64中フラグ領域の駆動状態フラグに駆動状態の情報を記憶した後、USBの再接続処理として、はじめにUSBケーブル11の信号線のうちD+信号のプルアップ設定を解除し、D+信号をハイインピーダンス状態とする。そしてパソコン20がD+信号のハイインピーダンス状態を検出すると、パソコン20は、印刷装置10との接続状態が解除され、印刷装置10が取り外されたものと判断する。
そしてこの状態でCPU31は、ユーザにより設定されたUSBデバイスドライバを新たに読み出し、使用可能な状態とする。そしてその後、USBケーブル11の信号線のうちD+信号のプルアップ設定を有効とし、D+信号をプルアップ状態とする。そしてパソコン20がD+信号のプルアップ状態を検出すると、パソコン20は、印刷装置10がUSBケーブル11を介して新たに接続されたと判断する。
以上説明した処理を実行することにより、USBの再接続処理が実行される(S37)。これにより、パソコン20は印刷装置10とUSBケーブル11を介して再接続した状態であると認識するので、次いで、印刷装置10の駆動状態を認識して通信を実行可能とするための通信(PnP通信)が実行される。
次いでCPU31は、現在の駆動状態を判断し(S41)、駆動状態に応じてUSBコントローラ42のEPの設定を切り替える処理を実行する。具体的には、S37において、USBデバイスドライバとしてプリンタクラスドライバが読み出されており、印刷デバイス状態として駆動している場合には(S41:YES)、送信用EPとしてEP2を割り当て、受信用EPとしてEP1を割り当てるように、USBコントローラ42を設定する。これにより、印刷装置10よりパソコン20に対して送信されるパケットのデータサイズは16バイトとなり、印刷装置10がパソコン20より受信するパケットのデータサイズは64バイトとなる(S43)。
また、S37において、USBデバイスドライバとしてマスストレージクラスが読み出されており、記憶デバイス状態として駆動している場合には(S41:NO)、送信用EPとしてEP1を割り当て、受信用EPとしてEP2を割り当てるように、USBコントローラ42を設定する。これにより、印刷装置10よりパソコン20に対して送信されるパケットのデータサイズは64バイトとなり、印刷装置10がパソコン20より受信するパケットのデータサイズは16バイトとなる(S45)。
そしてEPが設定された状態で、印刷装置10とパソコン20との間でPnP通信が実行される(S47)。PnP通信により、ホストとなるパソコン20は、印刷装置10の駆動状態を判断し、印刷装置10を記憶デバイス状態として認識するか、印刷デバイス状態として認識するかを判断する。また、パソコン20→印刷装置10の方向、及び印刷装置10→パソコン20の方向に転送されるパケットのデータサイズを判断する。そして、モード切替処理を終了してメイン処理(図7参照)に戻る。
モード切替処理(S13、図8参照)において、印刷装置10の駆動状態とパケットのデータサイズが確定すると、次いでCPU31は、電源スイッチの状態を監視する(S15)。ユーザにより電源スイッチがOFF状態に操作されたことを検出した場合には(S15:YES)、OFF処理(S17)にて後処理等を行った後、メイン処理を終了する。
ユーザにより電源スイッチがOFF状態に操作されなかった場合(S15:NO)、次いで、駆動状態に対応したパケット通信処理が実行される(S21、S23)。CPU31は、SRAM33の駆動状態フラグを参照して既存の駆動状態を判断する(S19)。そして、判断した駆動状態が印刷デバイス状態である場合には(S19:YES)、印刷デバイス状態おけるパソコン20との通信処理であるプリンタ処理(S21)を実行する。他方、判断した駆動状態が記憶デバイス状態である場合には(S19:NO)、記憶デバイス状態におけるパソコン20との通信処理であるマスストレージ処理(S23)を実行する。
図9を参照して、プリンタ処理について説明する。なお既述のように、印刷デバイス状態におけるUSBコントローラ42のEPは、送信用EP:EP2、受信用EP:EP1のように設定されている。
図9に示すようにCPU31は、はじめに、USBコントローラ42からのバルクOUT転送要求線63の状態を監視し、バルクOUT転送要求があったかどうかを判断する(S51)。ホストであるパソコン20からターゲットである印刷装置10に対してパケットが送信され、これをUSBコントローラ42が受信し、EP1に受信パケットのデータが格納された場合には、バルクOUT転送要求線63の電位が変位する。従って、これを検出した場合には(S51:YES)、CPU31は、USBコントローラ42がパソコン20よりパケットを受信したと判断する。次いでCPU31は、EP1に格納された状態のパケットのデータを読み出し、SRAM33のローカル領域64中リングバッファ領域に読み出したデータを記憶する(S57)。そしてプリンタ処理を終了してメイン処理(図7参照)に戻る。
一方バルクOUT転送要求線63の電位が変位しない場合には(S51:NO)、CPU31は、USBコントローラ42がパケットを受信していないと判断する。次いでCPU31は、USBコントローラ42からのバルクIN転送要求線62の状態を監視し、バルクIN転送要求があったかどうかを判断する(S53)。ホストであるパソコン20に対してターゲットである印刷装置10よりパケットの送信要求がされ、EP2に送信パケットのデータが格納された場合には、バルクIN転送要求線62の電位が変位する。従って、これを検出した場合に(S53:YES)CPU31は、USBコントローラ42のEP2に格納されているデータをパケット化させ、パソコン20にパケットを送信させるために、USBコントローラ42を制御する。これにより、印刷装置10よりパソコン20に対してパケットが送信される(S55)。そして処理を終了してメイン処理(図7参照)に戻る。また、バルクIN転送要求を検出しなかった場合には(S53:NO)、プリンタ処理を終了してメイン処理(図7参照)に戻る。
以上説明したプリンタ処理が実行されることによって、印刷装置10が印刷デバイス状態として駆動している場合において、パソコン20とUSBケーブル11を介してパケット通信が可能となる。
次に、図10を参照して、マスストレージ処理について説明する。なお既述のように、記憶デバイス状態におけるUSBコントローラ42のEPは、送信用EP:EP1、受信用EP:EP2のように設定されている。
図10に示すようにCPU31は、はじめに、USBコントローラ42からのバルクOUT転送要求線63の状態を監視し、バルクOUT転送要求があったかどうかを判断する(S61)。ホストであるパソコン20からターゲットである印刷装置10に対してパケットが送信され、これをUSBコントローラ42が受信し、EP2に受信パケットのデータが格納された場合には、バルクOUT転送要求線63の電位が変位する。従って、これを検出した場合に(S61:YES)、CPU31は、USBコントローラ42がパソコン20よりパケットを受信したと判断する。次いでCPU31は、EP2に格納された状態のパケットのデータを読み出し、SRAM33のローカル領域64中受信バッファに読み出したデータを記憶する(S67)。そしてマスストレージ処理を終了してメイン処理(図7参照)に戻る。
一方バルクOUT転送要求線63の電位が変位しない場合には(S61:NO)、CPU31は、USBコントローラ42はパケットを受信していないと判断する。次いでCPU31は、USBコントローラ42からのバルクIN転送要求線62の状態を監視し、バルクIN転送要求があったかどうかを判断する(S63)。ホストであるパソコン20に対してターゲットである印刷装置10よりパケットの送信要求がされ、EP1に送信パケットのデータが格納された場合には、バルクIN転送要求線62の電位が変位する。従って、これを検出した場合に(S63:YES)CPU31は、USBコントローラ42のEP1に格納されているデータをパケット化させ、パソコン20にパケットを送信させるために、USBコントローラ42を制御する。これにより、印刷装置10よりパソコン20に対してパケットが送信される(S65)。そして処理を終了してメイン処理(図7参照)に戻る。また、バルクIN転送要求を検出しなかった場合には(S63:NO)、マスストレージ処理を終了してメイン処理(図7参照)に戻る。
以上説明したマスストレージ処理が実行されることによって、印刷装置10が記憶デバイス状態として駆動している場合において、パソコン20とUSBケーブル11を介してパケット通信が可能となる。
プリンタ処理(図9参照)又はマスストレージ処理(図10参照)が終了した後のメイン処理では、図7に示すように、プリンタ処理(S21)においてパソコン20よりデータを受信しているか否かが判断される(S25)。印刷デバイス状態にてパソコン20より受信するデータは、印刷データ又は印刷開始コマンドデータであり(図6参照)、これらのデータを受信した場合には、CPU31は印刷処理を実行する必要がある。受信したデータはSRAM33のローカル領域64中リングバッファ領域に記憶されるので(S57、図9参照)、CPU31はリングバッファ領域に記憶されているデータを参照する(S25)。そして、リングバッファ領域にデータが記憶されていると判断した場合には(S25:YES)、CPU31は、記憶されているデータに基づく処理であるコマンド処理を実行する(S27)。又、マスストレージ処理においてもプリンタ処理と同様にディスク領域の印刷データをリングバッファ領域に展開する。そしてリングバッファ領域にデータが記憶されていると判断した場合には、CPU31は、記憶されているデータに基づく処理であるコマンド処理を実行する。一方、リングバッファ領域にデータが記憶されていないと判断した場合には(S25:NO)、S13の処理に戻る。
コマンド処理について、図11を参照して説明する。図11に示すようにCPU31は、はじめに、リングバッファに印刷データが記憶されており、パソコン20より印刷データを受信したかどうかを判断する(S73)。印刷データを受信していると判断した場合には(S73:YES)、CPU31は、受信した印刷データに基づいて印刷処理を実行可能なように、SRAM33中ローカル領域64の印刷バッファ領域に印刷データの一部を記憶する(S81)。なお、印刷データがラスタ形式である場合には、1回の走査により印刷可能な印刷データを抽出して印刷バッファに記憶する。また、印刷データがESC/P形式である場合には、キャラクタコードの文字データを文字発生し、印刷バッファ領域内の所定位置に記憶する。これにより、続いてパソコン20より印刷開始コマンドデータを受信した場合に、印刷バッファ領域に記憶した印刷データを印刷することが可能な状態となる。そしてコマンド処理を終了してメイン処理(図7参照)に戻る。
一方、リングバッファ領域に記憶されているデータが印刷データではなく(S73:NO)、印刷開始指示データである場合(S75:YES)、S81にて印刷バッファ領域に記憶された印刷データに基づいて印刷処理を行う印刷動作制御処理を実行する(S79)。
図12を参照して、印刷動作制御処理について説明する。図12に示すようにCPU31は、はじめに、供給されている電源電圧が所定の範囲内であるかどうかを判断する(S91)。供給電源電圧が所定範囲外である場合には(S91:NO)、CPU31は、供給電源電圧が異常であり駆動回路43、駆動回路44、サーマルヘッド40、テープ送りローラ41等が駆動不能であるので印刷処理を行うことが不可能であると判断する。そしてS101のエラー処理に移行する。
供給されている電源電圧が所定の範囲内である場合(S91:YES)、次いでCPU31は、電池の充電容量が所定の範囲内であるかどうかを判断する(S93)。電池充電容量が所定範囲外である場合には(S93:NO)、電池の充電容量が異常であるので印刷処理を行うことが不可能であると判断し、S101のエラー処理に移行する。
電池の充電容量が所定の範囲内である場合(S93:YES)、次いでCPU31は、印刷装置10及びサーマルヘッド40の温度が所定の範囲内であるかどうかを判断する(S95)。温度が所定の範囲外である場合には(S95:NO)、温度が異常でありサーマルヘッド40等が駆動不能であるので印刷処理を行うことが不可能であると判断する。そしてS101のエラー処理に移行する。
印刷装置10及びサーマルヘッド40の温度が所定の範囲内である場合(S95:YES)、次いでCPU31は、印字テープのテープカセットが収容されているかどうかを判断する(S97)。テープカセットが収容されていない場合には(S97:NO)、印刷処理を行うことはできないので、S101のエラー処理に移行する。
テープカセットが収容されている場合(S97:YES)、印刷処理を行うために必要な条件を満たしているものと判断する。そしてCPU31は、S81(図11参照)において印刷バッファに記憶された印刷データに基づいて、駆動回路43、駆動回路44を制御し、印字テープへの印刷処理を実行する(S99)。そして印刷動作制御処理を終了し、コマンド処理(図11参照)に戻る。
また、S91〜S97のいずれかの判断にて印刷処理を行うことが不可能であると判断した場合、S101においてCPU31は、印刷装置10に付随したLED(図示外)を点灯させ、異常状態であることをユーザに通知する。また、パソコン20に対して通知を行い、ディスプレイ21に異常状態が発生し印刷が不可能である旨を表示させる(S101)。そして印刷動作制御処理を終了し、コマンド処理(図11参照)に戻る。
図11のコマンド処理では、印刷動作制御処理(S79)が終了した後、コマンド処理を終了してメイン処理(図7参照)に戻る。
また、リングバッファに記憶されているデータが印刷データでも印刷開始指示データでもなく(S73:NO、S75:NO)、所定のその他のデータである場合には(S77:YES)、CPU31は、リングバッファ領域に記憶されているデータに従って所定の処理を実行する(S83)。その後、コマンド処理を終了してメイン処理(図7参照)に戻る。また、リングバッファに記憶されているデータが所定のデータでなかった場合には(S77:NO)、特段の処理を行うことなくコマンド処理を終了してメイン処理(図7参照)に戻る。
図7に示すメイン処理では、コマンド処理(S27)が終了すると、S13に移行する。そして、上述した処理を継続して実行する。
以上説明したように、印刷装置10は、ユーザの入力に従い、駆動状態を記憶デバイス状態、又は印刷デバイス状態のいずれかに設定して駆動することが可能となっている。ここで、記憶デバイス状態にて駆動する場合には、送信パケットのデータサイズが64バイト、及び受信パケットのデータサイズが16バイトとなるようにUSBコントローラ42のEPを設定する。印刷装置10が記憶デバイス状態として駆動する場合においては、印刷装置10よりパソコン20に対して編集プログラムの実行ファイルが送信されるので、送信パケットのデータサイズが大きくなるようにEPを設定することによって、パソコン20における編集プログラムの起動時間を短縮することが可能となる。
一方、印刷装置10が印刷デバイス状態にて駆動する場合には、送信パケットのデータサイズが16バイト、及び受信パケットのデータサイズが64バイトとなるようにUSBコントローラ42のEPを設定する。印刷装置10が印刷デバイス状態として駆動する場合においては、印刷装置10はパソコン20より印刷データを受信するので、受信パケットのデータサイズが大きくなるようにEPを設定することによって、印刷処理の処理時間を短縮することが可能となる。
さらに、上述の処理を実行することにより、EPのバッファサイズの小さいUSBコントローラを使用して短時間で大量のデータを転送することが可能となるので、USBコントローラのコストを削減することが可能となり、印刷装置10全体のコストを低く抑えることが可能となる。
なお、図1のパソコン20が本発明の「外部端末」に相当し、図9のS55、S57、図10のS65、S67において、パソコン20よりパケットを受信する処理、及びパソコン20に対してパケットを送信する処理を行うCPU31が、本発明の「通信手段」に相当し、図4のFLASH ROM34及びSRAM33が、本発明の「記憶手段」に相当し、図12のS99において印刷処理を実行するための処理を行うCPU31が、本発明の「印刷手段」に相当し、図8に示すモード切替処理により、印刷装置10の駆動状態を切り替える処理を行うCPU31が、本発明の「切替手段」に相当し、図8のS43、S45において、送信用EP及び受信用EPの設定を行うCPU31が、本発明の「決定手段」に相当し、図8のS35において、設定された駆動状態による判別を行うために、図1に示す操作キー37や、パソコン20を介してユーザより入力される駆動状態を受け付ける処理を行うCPU31が、本発明の「駆動状態受付手段」に相当する。
なお、本発明は上記実施の形態に限定されるものではなく、発明の要旨を変更しない範囲での変更が可能である。
上記実施の形態では、USBコントローラ42はCPU31とは独立したデバイスとする構成を想定したが、この構成に限定されない。従って、CPU31がUSBコントローラ42の機能を内蔵する構成であっても構わない。
また、上記実施の形態では、印刷装置10のCPU31は、電源ONを検出後マスストレージクラスドライバを読み出して使用することによって記憶デバイス状態にて起動していたが、この起動方法に限定されない。従って、印刷装置10のCPU31は、電源ONを検出後プリンタクラスドライバを読み出して使用することよって印刷デバイス状態にて起動する起動方法としても構わない。
また、上記実施の形態では、印刷装置10が記憶デバイス状態である場合のパケットのデータサイズ(送信:64バイト、受信:16バイト)、及び、印刷デバイス状態である場合のパケットのデータサイズ(送信:16バイト、受信:64バイト)を既述のように定めたが、これらのデータサイズに限定されるものではない。従って、異なるデータサイズのパケットを用いて通信を行うこととしても構わない。
また、上記実施の形態では、印刷装置10が記憶デバイス状態にて駆動している場合における主要な転送パケットのデータとして、印刷装置10に記憶されている編集プログラムの実行ファイルを想定し、印刷装置10が印刷デバイス状態にて駆動している場合における主要な転送パケットのデータとして、印刷データを想定した。しかしながら、印刷装置10とパソコン20との間でおこなわれる通信の主要なデータはこれらに限定されない。
また、上記実施の形態では、印刷装置10の駆動状態を切り替える場合において、図8のS37にて説明した再接続処理を実行していたが、この切替方法に限定されるものではない。従って、PnP通信を実行せず、コマンド通信によって、パソコン20からの印刷装置10の認識状態を切り替える方法を採用しても構わない。