(57)【特許請求の範囲】
【請求項１】
外部装置と接続して、通信を行うとともに電力供給を受ける通信回路と、
制御回路と、
電源スイッチと、を備え、
初期状態において前記電源スイッチがオン状態で前記通信回路が外部装置と接続した場合に、前記制御回路は、
第１初期処理を行い、前記第１初期処理に成功したのちに、前記外部装置から電力供給を受けて動作を行うように制御し、
第１初期処理に失敗したときは、第２初期処理を行い、前記第２初期処理に成功したのちに、前記外部装置から電力供給を受けずに動作を行うように制御し、
前記制御回路は、
前記第１初期処理に成功した後に、外部装置との接続が継続された状態で、前記電源スイッチがオフされた場合は、外部装置との再接続を行ったのち、オフ状態で第３初期処理を行い、前記第３初期処理が成功したのちに、前記オフ状態で前記外部装置から電力供給を受けて電池の充電を行い、前記第３初期処理に失敗したときは、前記オフ状態で前記電池に充電を行わず、
一方、前記第１初期処理に失敗して前記第２初期処理を行った後に、外部装置との接続が継続された状態で、前記電源スイッチがオフされた場合は、前記オフ状態で前記第１初期処理を行わず前記電池の充電を行わず、
第１初期処理及び第３初期処理は、いずれも第２初期処理よりも大きな電力供給の要求を含む、ことを特徴とする電子機器。
【請求項２】
前記制御回路は、
前記電源スイッチがオンされる前のオフ状態において、前記第１初期処理を完了できた成功か、前記第１初期処理を完了できず前記第２初期処理を行った失敗かを示す値を記憶する不揮発性メモリーを備え、
前記電源スイッチがオンされた後、前記不揮発性メモリーの記憶が成功の旨の値であれば、前記第１初期処理を行い、前記不揮発性メモリーの記憶が失敗の旨の値であれば、前記第１初期処理を行わずに前記第２初期処理を行い、外部装置から電力供給を受けないことを特徴とする請求項１に記載の電子機器。
【請求項３】
外部装置と接続して、通信を行うとともに電力供給を受ける通信回路と、
制御回路と、
電源スイッチと、を備え、
初期状態において前記電源スイッチがオン状態で前記通信回路が外部装置と接続した場合に、前記制御回路は、
第１初期処理を行い、前記第１初期処理に成功したのちに、前記外部装置から電力供給を受けて動作を行うように制御し、
第１初期処理に失敗したときは、第２初期処理を行い、前記第２初期処理に成功したのちに、前記外部装置から電力供給を受けずに動作を行うように制御し、
前記制御回路は、
前記電源スイッチがオンされる前のオフ状態において、前記第１初期処理を完了できた成功か、前記第１初期処理を完了できず前記第２初期処理を行った失敗かを示す値を記憶する不揮発性メモリーを備え、
前記電源スイッチがオンされた後、前記不揮発性メモリーの記憶が成功の旨の値であれば、前記第１初期処理を行い、前記不揮発性メモリーの記憶が失敗の旨の値であれば、前記第１初期処理を行わずに前記第２初期処理を行い、外部装置から電力供給を受けず、
前記第１初期処理は前記第２初期処理よりも大きな電力供給の要求を含む、ことを特徴とする電子機器。
【請求項４】
外部装置と接続して、通信を行うとともに電力供給を受ける通信回路と、
制御回路と、
電源スイッチと、を備え、
初期状態において前記電源スイッチがオン状態で前記通信回路が外部装置と接続した場合に、前記制御回路は、
第１初期処理を行い、前記第１初期処理に成功したのちに、前記外部装置から電力供給を受けて動作を行うように制御し、
第１初期処理に失敗したときは、第２初期処理を行い、前記第２初期処理に成功したのちに、前記外部装置から電力供給を受けずに動作を行うように制御し、
前記制御回路は、前記電源スイッチがオフ状態のときの値よりもオン状態のときの値の方が短くなるように設定したタイムアウト時間を用いて、前記第１初期処理においてタイムアウトが発生した場合に、前記第１初期処理に失敗したと判断し、第１初期処理は第２初期処理よりも大きな電力供給の要求を含む、ことを特徴とする電子機器。
【請求項５】
前記制御回路は、前記電源スイッチがオフ状態のときの値よりもオン状態のときの値の方が短くなるように設定したタイムアウト時間を用いて、前記第１初期処理においてタイムアウトが発生した場合に、前記第１初期処理に失敗したと判断する、ことを特徴とする請求項１乃至３のいずれか一項に記載の電子機器。
【請求項６】
前記制御回路は、前記電源スイッチがオフ状態のときに前記タイムアウトと判定する際に用いるタイムアウト時間を、前記外部装置の起動所要時間に応じて設定する、ことを特徴とする請求項４又は５に記載の電子機器。
【請求項７】
前記制御回路は、前記通信回路を介して接続された前記外部装置から前記起動所要時間を取得し、前記タイムアウト時間を前記起動所要時間に応じた値に設定することを特徴とする請求項６に記載の電子機器。
【請求項８】
外部装置と接続して、通信を行うとともに電力供給を受ける通信回路と、
制御回路と、
電源スイッチと、を備え、
初期状態において前記電源スイッチがオン状態で前記通信回路が外部装置と接続した場合に、前記制御回路は、
第１初期処理を行い、前記第１初期処理に成功したのちに、前記外部装置から電力供給を受けて動作を行うように制御し、
第１初期処理に失敗したときは、第２初期処理を行い、前記第２初期処理に成功したのちに、前記外部装置から電力供給を受けずに動作を行うように制御し、
前記制御回路は、電池の残量又は残量の変化を示す値を計測し、前記電池の残量又は残量の変化を示す値が閾値を超えると、前記第１初期処理に失敗したと判断し、
前記第１初期処理は前記第２初期処理よりも大きな電力供給の要求を含む、ことを特徴とする電子機器。
【請求項９】
前記制御回路は、電池の残量又は残量の変化を示す値を計測し、前記電池の残量又は残量の変化を示す値が閾値を超えると、前記第１初期処理に失敗したと判断することを特徴とする請求項１乃至３のいずれか一項に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピューター（ＰＣ）等の外部装置との通信を確立して外部装置から電力供給を受ける電子機器に関する。
【背景技術】
【０００２】
例えば特許文献１には、通信モードにおいて、ＵＳＢ端子部がホスト装置（外部装置の一例）と接続された場合、ホスト装置からの電源供給でバッテリー（充電式の電池）を充電する電子機器の一例として携帯電話機が開示されている。この携帯電話機は、ＵＳＢ端子部を介してホスト装置との間でデータ転送を行うことによって初期処理（エニュメレーション）を開始すると共に第１電力（例えば電流値で１００ｍＡ）でバッテリーへの充電を行う。ＵＳＢ端子部がホスト装置に接続されてから所定時間以内に初期処理が完了した場合はその初期処理に基づいた処理を行う。一方、ＵＳＢ端子部がホスト装置に接続されてから所定時間以内に初期処理が完了しなかった場合は、第１電力よりも大きい第２電力（例えば電流値で５００ｍＡ）でバッテリーへの充電を行う。
【０００３】
第１電力よりも大きい第２電力でのバッテリーへの充電は、所定時間以内に初期処理が完了しなかった場合、プルダウンさせることによって、Ｄ＋端子とＤ−端子との電位を同電位にしてホスト装置との接続を擬似的に解除することで、第２電力を供給させることにより行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２０３７６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、電子機器の電源オン状態において、ホスト装置とＵＳＢ接続されたときに充電を行う場合、制御回路を構成するＣＰＵは、初期処理（エニュメレーション）において、ホスト装置に対して、第１電力より大きな第２電力の要求とクラス情報（一例としてプリンタークラス）とを含むディスクリプターと呼ばれる構成情報を送信する。ホスト装置は、クラス情報に基づいて電子機器がどのようなデバイス機器（一例としてプリンター）であるかを認識するとともに、第２電力を供給可能であれば、構成情報の設定を通知する初期処理完了通知を電子機器に送信する。電子機器は、初期処理完了通知を受信して初期処理を完了した後、ホスト装置から第２電力の供給を受けることで充電が可能となる。
【０００６】
しかし、ホスト装置は電子機器から要求された第２電力で電源供給ができない場合がある。例えばホスト装置と電子機器とがバスパワーで動作するハブを経由して接続されている場合が挙げられる。この場合、電子機器が初期処理において第２電力及びクラス情報を含む構成情報を送信しても、ホスト装置は第２電力での電源供給が不可能なハブ経由であることを認識し、その構成情報を設定しない。このため、ホスト装置から電子機器に対して、構成情報の設定を通知する初期処理完了通知（設定完了通知）は送信されない。この結果、電子機器はホスト装置から送信されることのない初期処理完了通知を待つことになる。
【０００７】
また、例えばホスト装置がバッテリー駆動であるときに電力の消費を抑えるため、最大供給電力（例えば電流値５００ｍＡ）未満の第３電力でしか電源供給を許可しない設定がなされている場合がある。電子機器からこの種のホスト装置に第３電力より大きな第２電力を要求した場合、ホスト装置は第２電力での電源供給ができないので、この場合もホスト装置から電子機器に対して初期処理完了通知が送信されない。このため、電子機器はホスト装置から送信されることのない初期処理完了通知を待つことになる。
【０００８】
特許文献１に記載の電子機器では、上記二つのケースを一例とする何らかの原因で、ＵＳＢ端子部がホスト装置に接続されてから所定時間以内に初期処理が完了しなかった場合、プルダウンしてＤ＋端子とＤ−端子との電位を同電位にしてホスト装置との接続が擬似的に解除されることによって、ホスト装置から第２電力の供給を受けることはできる。しかし、ホスト装置は、電子機器との接続が擬似的に解除されることで、その解除後の接続相手（電子機器）がどのようなデバイス機器であるかを認識できない。
【０００９】
このようにホスト装置が電子機器を認識できていないと、ユーザーがホスト装置から電子機器に指示しても、ホスト装置は接続相手の電子機器がその指示に基づく処理を行ってよいデバイス機器であるか否かを判断できず、電子機器にその指示された処理を行わせることができない。電子機器が例えばプリンターである場合、ユーザーがホスト装置から印刷の指示を行っても、ホスト装置は電子機器をプリンターと認識していないので、印刷データの生成及びその送信を行わず、プリンターにその指示された印刷を行わせることができない。特許文献１に記載された電子機器は、外部装置との初期処理を完了できず失敗し、外部装置との通信を確立できなかった場合、第２電力の供給を受けることができるものの、外部装置が電子機器を認識していないため、認識していれば外部装置が指示できたはずの処理を行うことができない。このように電子機器の電源オン状態では、外部装置から第２電力の供給を受けるよりも、電子機器と外部装置との通信の確立が優先される必要がある場合がある。
【００１０】
なお、上記の課題は、携帯電話機やプリンター（複合機を含む。）等の電子機器に限らず、スキャナー、プロジェクター、デジタルカメラ（撮影装置）、オーディオ装置（音響機器）など、ホスト装置（外部装置）と電源オン状態の下で接続されたときに、ホスト装置と初期処理を行う電子機器において概ね共通する。
【００１１】
本発明の目的は、電源オン状態の下で外部装置と接続された電子機器が、電力の要求を含む初期処理に失敗しても、外部装置との通信を確立することができる電子機器を提供することにある。
【課題を解決するための手段】
【００１２】
以下、上記課題を解決するための手段及びその作用効果について記載する。
上記課題を解決する電子機器は、外部装置と接続して、通信を行うとともに電力供給を受ける通信回路と、制御回路と、電源スイッチと、を備え、初期状態において前記電源スイッチがオン状態で前記通信回路が外部装置と接続した場合に、前記制御回路は、第１初期処理を行い、前記第１初期処理が完了したのちに、前記外部装置から電力供給を受け、第１初期処理に失敗したときは、第２初期処理を行い、前記外部装置から電力供給を受けず、第１初期処理は第２初期処理よりも大きな電力供給の要求を含む。ここで、初期状態とは、初期設定により第１初期処理が行われるように設定されている状態を指す。
上記課題を解決する電子機器は、外部装置と接続して、通信を行うとともに電力供給を受ける通信回路と、制御回路と、電源スイッチと、を備え、初期状態において前記電源スイッチがオン状態で前記通信回路が外部装置と接続した場合に、前記制御回路は、第１初期処理を行い、前記第１初期処理に成功したのちに、前記外部装置から電力供給を受けて動作を行うように制御し、第１初期処理に失敗したときは、第２初期処理を行い、前記第２初期処理に成功したのちに、前記外部装置から電力供給を受けずに動作を行うように制御し、第１初期処理は第２初期処理よりも大きな電力供給の要求を含む。
【００１３】
この構成によれば、初期状態において電源スイッチがオン状態で通信回路が外部装置と接続した場合に、制御回路は、第２初期処理よりも大きな電力供給の要求を含む第１初期処理を行う。第１初期処理が完了したのちに、電子機器は、外部装置から電力供給を受ける。一方、第１初期処理に失敗したときは、第２初期処理が行われる。よって、第１初期処理に失敗したときでも、第２初期処理を完了することができる。従って、制御回路は、通信回路を介して外部装置と通信可能に接続することができる。電源オン状態の下で外部装置と接続された電子機器が、電力の要求を含む初期処理に失敗しても、外部装置との通信を確立することができる。例えば外部装置は、第２初期処理の完了によって電子機器を認識できるので、電子機器に処理を指示することができる。
【００１４】
上記電子機器では、前記制御回路は、前記第２初期処理を行った後、外部装置との接続が途絶えた後に外部装置と接続した場合には、初期状態に戻って前記第１初期処理を開始することが好ましい。
【００１５】
この構成によれば、制御回路は、第２初期処理を行った後、外部装置との接続が継続している場合は、第１初期処理を行わずに第２初期処理を行う。このように外部装置が第１初期処理を一度失敗している同じ接続相手である場合、第１初期処理が行われることなく第２初期処理が行われる。このため、制御回路が第１初期処理を一度失敗している同じ外部装置と行うことによる電力の浪費を抑制できる。一方、制御回路は、第２初期処理を行った後、外部装置との接続が途絶えた後に外部装置と接続した場合は、初期状態に戻って第１初期処理を開始する。このように制御回路の接続相手が第１初期処理を一度失敗した外部装置と異なる外部装置である可能性がある場合は、初期状態に戻って第１初期処理が行われる。このとき、第１初期処理に成功すれば、外部装置から電力供給を受けることができる。
【００１６】
上記電子機器では、前記制御回路は、前記第１初期処理に成功した後に、外部装置との接続が継続された状態で、前記電源スイッチがオフされた場合は、オフ状態で前記第１初期処理を行い、前記第１初期処理が成功したのちに、前記オフ状態で前記外部装置から電力供給を受けて電池の充電を行い、前記第１初期処理に失敗したときは、前記オフ状態で前記電池に充電を行わず、一方、前記第２初期処理を行った後に、外部装置との接続が継続された状態で、前記電源スイッチがオフされた場合は、前記オフ状態で前記第１初期処理を行わず前記電池の充電を行わないことが好ましい。
上記課題を解決する電子機器は、外部装置と接続して、通信を行うとともに電力供給を受ける通信回路と、制御回路と、電源スイッチと、を備え、初期状態において前記電源スイッチがオン状態で前記通信回路が外部装置と接続した場合に、前記制御回路は、第１初期処理を行い、前記第１初期処理に成功したのちに、前記外部装置から電力供給を受けて動作を行うように制御し、第１初期処理に失敗したときは、第２初期処理を行い、前記第２初期処理に成功したのちに、前記外部装置から電力供給を受けずに動作を行うように制御し、前記制御回路は、前記第１初期処理に成功した後に、外部装置との接続が継続された状態で、前記電源スイッチがオフされた場合は、外部装置との再接続を行ったのち、オフ状態で第３初期処理を行い、前記第３初期処理が成功したのちに、前記オフ状態で前記外部装置から電力供給を受けて電池の充電を行い、前記第３初期処理に失敗したときは、前記オフ状態で前記電池に充電を行わず、一方、前記第１初期処理に失敗して前記第２初期処理を行った後に、外部装置との接続が継続された状態で、前記電源スイッチがオフされた場合は、前記オフ状態で前記第１初期処理を行わず前記電池の充電を行わず、第１初期処理及び第３初期処理は、いずれも第２初期処理よりも大きな電力供給の要求を含む。
【００１７】
この構成によれば、制御回路は、第１初期処理を成功した後に、外部装置との接続が継続された状態で、電源スイッチがオフされた場合は、オフ状態で第１初期処理を行い、第１初期処理が成功したのちに、オフ状態で充電式の電池の充電を行う。このように電源オン状態で第１初期処理を成功した同じ外部装置とは電源オフ後に第１初期処理を行う。このため、第１初期処理を成功すれば、電池が充電され、第１初期処理を失敗すれば、オフ状態で電池の充電は行われない。一方、制御回路は、第２初期処理を行った後に、外部装置との接続が継続された状態で、電源スイッチがオフされた場合は、オフ状態で第１初期処理を行わず、電池の充電は行われない。このように電源オン状態で第１初期処理に失敗し、第２初期処理を行った場合は、第１初期処理を失敗した同じ外部装置と電源オフ後に第１初期処理を行わず電池の充電は行われない。よって、電源スイッチがオフされた際に、制御回路が第１初期処理を一度失敗している同じ外部装置と第１初期処理を行うことによる電力の浪費を抑制できる。
【００１８】
上記電子機器では、前記制御回路は、前記電源スイッチがオンされる前のオフ状態において、前記第１初期処理を完了できた成功か、前記第１初期処理を完了できず前記第２初期処理を行った失敗かを示す値を記憶する不揮発性メモリーを備え、前記電源スイッチがオンされた後、前記不揮発性メモリーの記憶が成功の旨の値であれば、前記第１初期処理を行い、前記不揮発性メモリーの記憶が失敗の旨の値であれば、前記第１初期処理を行わずに前記第２初期処理を行い、外部装置から電力供給を受けないことが好ましい。
上記課題を解決する電子機器は、外部装置と接続して、通信を行うとともに電力供給を受ける通信回路と、制御回路と、電源スイッチと、を備え、初期状態において前記電源スイッチがオン状態で前記通信回路が外部装置と接続した場合に、前記制御回路は、第１初期処理を行い、前記第１初期処理に成功したのちに、前記外部装置から電力供給を受けて動作を行うように制御し、第１初期処理に失敗したときは、第２初期処理を行い、前記第２初期処理に成功したのちに、前記外部装置から電力供給を受けずに動作を行うように制御し、前記制御回路は、前記電源スイッチがオンされる前のオフ状態において、前記第１初期処理を完了できた成功か、前記第１初期処理を完了できず前記第２初期処理を行った失敗かを示す値を記憶する不揮発性メモリーを備え、前記電源スイッチがオンされた後、前記不揮発性メモリーの記憶が成功の旨の値であれば、前記第１初期処理を行い、前記不揮発性メモリーの記憶が失敗の旨の値であれば、前記第１初期処理を行わずに前記第２初期処理を行い、外部装置から電力供給を受けず、前記第１初期処理は前記第２初期処理よりも大きな電力供給の要求を含む。
【００１９】
この構成によれば、電源スイッチがオンされる前のオフ状態で行われた第１初期処理を完了できた成功か、第１初期処理を完了できず第２初期処理を行った失敗かを示す値が、制御回路によって不揮発性メモリーに記憶される。電源スイッチがオンされた後、不揮発性メモリーの記憶が成功の旨の値であれば、制御回路により第１初期処理が行われ、一方、不揮発性メモリーの記憶が失敗の旨の値であれば、制御回路により第１初期処理が行われることなく第２初期処理が行われ、外部装置から電力供給を受けない。よって、第１初期処理を失敗した後に、外部装置との接続が継続された状態で、電源スイッチがオンされた場合に、制御回路が電源オフ状態で一度失敗している同じ外部装置と第１初期処理を行うことによる電力の浪費を抑制できる。
【００２０】
上記電子機器では、前記制御回路は、前記第１初期処理においてタイムアウトが発生した場合に、前記第１初期処理に失敗したと判断することが好ましい。
この構成によれば、制御回路は、外部装置との第１初期処理においてタイムアウトが発生した場合に、第１初期処理に失敗したと判断する。タイムアウトを考慮することなく第１初期処理の完了まで待機する構成に比べ、早期に第２初期処理を行うことができるので、外部装置と電子機器との通信を早期に確立することができる。
【００２１】
上記電子機器では、前記制御回路は、定期的に外部装置から送られてくるはずの信号が送られてこなくなったことで、第１初期処理に失敗したと判断することが好ましい。
この構成によれば、制御回路は、外部から定期的に送られてくるはずの信号が送られてこなくなったことで、第１初期処理に失敗したと判断する。よって、第１初期処理に失敗したと判断した時点で、第２初期処理を早期に開始できる。例えばタイムアウトの発生を第１初期処理の失敗と判断する場合に比べ、第１初期処理の失敗時点で比較的早期に制御回路に第２初期処理を開始させることができる。このため、制御回路と外部装置との通信を比較的早期に確立することができる。
【００２２】
上記電子機器では、前記制御回路は、前記タイムアウトと判定する際に用いるタイムアウト時間を、前記電源スイッチがオフ状態のときの値よりもオン状態のときの値の方が短くなるように設定することが好ましい。
上記課題を解決する電子機器は、外部装置と接続して、通信を行うとともに電力供給を受ける通信回路と、制御回路と、電源スイッチと、を備え、初期状態において前記電源スイッチがオン状態で前記通信回路が外部装置と接続した場合に、前記制御回路は、第１初期処理を行い、前記第１初期処理に成功したのちに、前記外部装置から電力供給を受けて動作を行うように制御し、第１初期処理に失敗したときは、第２初期処理を行い、前記第２初期処理に成功したのちに、前記外部装置から電力供給を受けずに動作を行うように制御し、前記制御回路は、前記電源スイッチがオフ状態のときの値よりもオン状態のときの値の方が短くなるように設定したタイムアウト時間を用いて、前記第１初期処理においてタイムアウトが発生した場合に、前記第１初期処理に失敗したと判断し、第１初期処理は第２初期処理よりも大きな電力供給の要求を含む。
【００２３】
この構成によれば、タイムアウト時間が、電源スイッチがオフ状態のときの値よりもオン状態のときの値の方が短くなるように設定される。よって、電源オフ状態では電池の充電の頻度を高めることができ、電源オン状態ではユーザーが外部装置から指示した処理の開始遅れを短く抑えることができる。
【００２４】
上記電子機器では、前記電源スイッチがオフ状態のときに前記制御回路は、前記タイムアウトと判定する際に用いるタイムアウト時間を、前記外部装置の起動所要時間に応じて設定することが好ましい。
【００２５】
この構成によれば、制御回路は、電源オフ状態のときにタイムアウトと判定する際に用いるタイムアウト時間を、外部装置の起動所要時間に応じて設定する。よって、通信回路が接続している外部装置が起動途中の状態にあっても、その後起動した外部装置と第１初期処理を行って外部装置から通信回路が受け取った電力で電池を充電することができる。
【００２６】
上記電子機器では、データの入力のために操作される操作部を備え、前記制御回路が前記タイムアウトの発生を判定する際に用いるタイムアウト時間は、前記操作部の操作に基づいて設定されることが好ましい。
【００２７】
この構成によれば、制御回路がタイムアウトの発生を判定する際に用いるタイムアウト時間は、操作部の操作による入力結果に基づいて設定される。よって、ユーザーは使用環境（使用される第２種の装置の起動所要時間等）に合った適切なタイムアウト時間を設定できる。このため、外部装置の起動所要時間に合っていない短過ぎるタイムアウト時間を変更できないために、外部装置の起動途中でタイムアウトと判定されてしまい、少し待てば充電できたにも拘らず、少し早く失敗としたために充電されない不都合を減らすことができる。したがって、電池が充電される頻度を高めることができる。
【００２８】
上記電子機器では、前記制御回路は、前記通信回路を介して接続された前記外部装置から前記起動所要時間を取得し、前記タイムアウト時間を前記起動所要時間に応じた値に設定することが好ましい。
【００２９】
この構成によれば、制御回路は、外部装置に接続されたときは、外部装置の起動所要時間を取得し、その起動所要時間に応じたタイムアウト時間を設定する。よって、ユーザーの使用環境（使用される外部装置の起動所要時間等）に合った適切なタイムアウト時間を設定することができる。このため、外部装置の起動所要時間に合っていない短過ぎるタイムアウト時間が使用されたことが原因で、外部装置の起動途中でタイムアウトとなり、少し待てば外部装置から電力供給を受けることができたにも拘らず少し早く失敗としたために外部装置から電力供給を受けることができない不都合を減らすことができる。したがって、外部装置から電力供給を受ける頻度を高めることができる。
【００３０】
上記電子機器では、前記制御回路は、電池の残量又は残量の変化を示す値を計測し、前記電池の残量又は残量の変化を示す値が閾値を超えると、前記第１初期処理に失敗したと判断することが好ましい。
上記課題を解決する電子機器は、外部装置と接続して、通信を行うとともに電力供給を受ける通信回路と、制御回路と、電源スイッチと、を備え、初期状態において前記電源スイッチがオン状態で前記通信回路が外部装置と接続した場合に、前記制御回路は、第１初期処理を行い、前記第１初期処理に成功したのちに、前記外部装置から電力供給を受けて動作を行うように制御し、第１初期処理に失敗したときは、第２初期処理を行い、前記第２初期処理に成功したのちに、前記外部装置から電力供給を受けずに動作を行うように制御し、前記制御回路は、電池の残量又は残量の変化を示す値を計測し、前記電池の残量又は残量の変化を示す値が閾値を超えると、前記第１初期処理に失敗したと判断し、前記第１初期処理は前記第２初期処理よりも大きな電力供給の要求を含む。
【００３１】
この構成によれば、制御回路は、電池の残量又は残量の変化を示す値が閾値を超えたことをもって第１初期処理の失敗を判断するので、タイマー等の計時手段を用いなくても、あるいは外部装置から送られてくるはずの信号を監視しなくても、初期処理の失敗を判断することができる。
【００３２】
上記電子機器では、外部装置から供給を受けた電力で電池に充電を行う。この構成によれば、電子機器は、外部装置から供給を受けた電力で電池に充電を行うことができる。
【図面の簡単な説明】
【００３３】
【図１】第１実施形態におけるプリンターとホスト装置との電気的構成を示す模式図。
【図２】ホスト装置とプリンターとの初期処理成功時のシーケンス図。
【図３】ホスト装置とプリンターとの初期処理失敗時のシーケンス図。
【図４】ホスト装置とプリンターとがハブを介してＵＳＢ接続された例を示す模式図。
【図５】モード設定画面が表示された表示部を示す模式図。
【図６】（ａ），（ｂ）は不揮発性メモリーに記憶される設定情報を示す模式図。
【図７】電源ＯＦＦ時の充電処理のメインルーチンを示すフローチャート。
【図８】充電処理ルーチンを示すフローチャート。
【図９】バスパワー要求時の初期処理を示すフローチャート。
【図１０】電源ＯＮ時のＵＳＢ通信処理を示すフローチャート。
【図１１】第２実施形態におけるバスパワー要求時の初期処理を示すフローチャート。
【発明を実施するための形態】
【００３４】
以下、印刷システムの一実施形態について、図面を参照して説明する。
図１に示すように、電子機器の一例としてのプリンター１１（印刷装置）は、ＵＳＢ（Universal Serial Bus）規格上のＵＳＢデバイス１１Ａ（図４参照）として機能する。図１に示すプリンター１１は、ＵＳＢホスト３０Ａとして機能するホスト装置３０と通信ケーブルの一例であるＵＳＢケーブル３５を通じて通信可能に接続するためにそのコネクター３５Ａ（端子）が挿抜可能に接続されるＵＳＢコネクター１２を備えている。ＵＳＢコネクター１２は、電源供給路としての電源線（Ｐ，Ｇ）と、データを送受信するためのデータ線（Ｄ＋，Ｄ−）とを備えている。ＵＳＢケーブル３５のコネクター３５ＡがＵＳＢコネクター１２に接続された場合、データ線及び電源線のそれぞれ同じ極同士が接続され、ホスト装置３０とデータの送受信及びホスト装置３０からの電源供給が可能になる。ＵＳＢコネクター１２は、電源線とデータ線と各種の素子（例えば抵抗）等とを含む通信用の電気回路を有している。この点において、本実施形態では、ＵＳＢコネクター１２により、通信回路の一例が構成される。
【００３５】
ホスト装置３０は、例えばパーソナルコンピューター（ＰＣ）により構成されるが、ＵＳＢホスト３０Ａとして機能する限りにおいて、携帯情報端末（ＰＤＡ（Personal Digital Assistants））、タブレットＰＣ等のコンピューター類であってもよい。さらにホスト装置３０は、ＵＳＢホスト機能を有するプリンターであってもよい。ホスト装置３０は、図１に示すＵＳＢホスト３０Ａ及びＣＰＵ３０Ｂを備えている。ＵＳＢホスト３０Ａのソフトウェア部分の少なくとも一部は例えばＣＰＵ３０ＢがＵＳＢ用プログラムを実行することで構築される。なお、本実施形態では、ＵＳＢ規格として例えばＵＳＢ２．０を用いている。
【００３６】
図１に示すように、プリンター１１は、ＵＳＢコネクター１２と電源供給路１２Ａとデータ線１２Ｂで接続された制御回路１３を備えている。また、プリンター１１は、制御回路１３により充電制御される充電式の電池の一例としての二次電池１４と、制御回路１３からの指示を受け付ける駆動回路１５と、制御回路１３の指示によって駆動回路１５を介して制御される印刷機構１６とを備えている。
【００３７】
図１に示すように、ＵＳＢコネクター１２には、充電用のＵＳＢバッテリーチャージャー４０（電源アダプター）のコネクター４０Ａ（端子）が挿抜可能に接続される。また、プリンター１１は、ＵＳＢコネクター１２に加え、補助的に電源供給するための外部電源コネクター１７を備えている。外部電源コネクター１７は、制御回路１３と電源供給路１７Ａ及びデータ線１７Ｂを通じて接続されている。外部電源コネクター１７には、ＡＣアダプター５０（電源アダプター）のコネクター５０Ａ（端子）が挿抜可能に接続される。ＡＣアダプター５０のコネクター５０Ａは、他の一般的なＡＣアダプターのコネクターの形状と同様の円筒形状を有している。なお、本実施形態では、ホスト装置３０及びＵＳＢバッテリーチャージャー４０により、外部装置の一例が構成される。特にホスト装置３０により、後述する初期処理を行う外部装置の一例が構成される。また、ＵＳＢバッテリーチャージャー４０により第１の装置の一例が構成され、ホスト装置３０により第２の装置の一例が構成される。
【００３８】
また、図１に示すように、プリンター１１の本体１１ａには、操作パネル１９が設けられている。操作パネル１９は、プリンター１１に各種の指示等を入力するために操作される操作スイッチ群２０と、各種メニューや動作状況のメッセージ等が表示される表示部２１とを備えている。操作スイッチ群２０は制御回路１３と電気的に接続されている。また、表示部２１は制御回路１３に対して表示駆動回路１８を介して電気的に接続されている。
【００３９】
操作スイッチ群２０は、電源スイッチ２０Ａと、各種の指示入力や選択操作等によってデータの入力のために操作される操作スイッチ２０Ｂとを備えている。電源スイッチ２０Ａが操作されることで、プリンター１１の電源のオンとオフが切り替えられる。つまり、プリンター１１は、電源オフ状態の下で電源スイッチ２０Ａが操作されると電源オン状態に切り替わり、電源オン状態の下で電源スイッチ２０Ａが操作されると電源オフ状態に切り替わる。また、例えば表示部２１に表示されるメニューにおいてユーザーが操作スイッチ２０Ｂを操作して各種の項目を選択することで、制御回路１３はその選択結果を受け付けて印刷条件等を設定する。
【００４０】
制御回路１３は、プリンター１１の電源オフ中に、ＵＳＢコネクター１２が接続している相手がホスト装置３０又はＵＳＢバッテリーチャージャー４０である場合、充電モードになり、ホスト装置３０又はＵＳＢバッテリーチャージャー４０からＵＳＢコネクター１２を通じて供給される電力で二次電池１４を充電する充電制御を司る。但し、制御回路１３は、プリンター１１の電源オフ中に外部電源コネクター１７にＡＣアダプター５０が接続されている場合は、ＡＣアダプター５０からの供給電力による二次電池１４の充電を優先し、ホスト装置３０又はＵＳＢバッテリーチャージャー４０からの供給電力に基づく充電は行わない。
【００４１】
また、制御回路１３は、プリンター１１の電源オン中に、ホスト装置３０から受信した印刷ジョブデータに基づく文書や画像を用紙等の印刷媒体に印刷する印刷制御を司る。プリンター１１の電源オン中に、外部電源コネクター１７にＡＣアダプター５０が接続されている場合は、ＡＣアダプター５０から供給される電力によりプリンター１１は動作する。さらに制御回路１３は、外部電源コネクター１７にＡＣアダプター５０が接続されていないプリンター１１の電源オン状態においては、ＵＳＢコネクター１２が接続している相手がホスト装置３０であれば、ホスト装置３０から供給される電力によりプリンター１１は動作する。また、この電源オン状態において、ＵＳＢコネクター１２が接続している相手がＵＳＢバッテリーチャージャー４０であれば、ＵＳＢバッテリーチャージャー４０から供給される電力によりプリンター１１は動作する。本実施形態では、この電源オン状態において、ホスト装置３０又はＵＳＢバッテリーチャージャー４０から供給される電力のうちプリンター１１の動作に使用されない余った電力を二次電池１４の充電に使用する。もちろん、プリンター１１を電源オン状態で非充電モードとし、外部装置からの供給電力は、プリンター１１の動作に使用し、二次電池１４の充電には使用しない構成としてもよい。
【００４２】
本実施形態の印刷機構１６は、用紙等の印刷媒体にインクで印刷する不図示の印刷ヘッドと、印刷媒体を搬送する不図示の搬送装置とを備える。印刷ヘッドは、印刷媒体の搬送方向と交差する走査方向に印刷ヘッドを往復移動させつつ印刷するシリアル方式でもよいし、搬送方向と交差する幅方向の印刷幅を一度で印刷可能な長尺状の印刷ヘッド又はヘッド群により、一定速度で搬送される印刷媒体に印刷するラインヘッド方式でもよい。また、印刷ヘッドの方式は、インクジェット方式、ドットインパクト方式及び電子写真式のいずれであってもよい。また、インクジェット方式の場合、インクを噴射する圧力を発生させる駆動素子には、ノズルに連通する室を形成する板部を撓ませて圧力を発生させる圧電素子や静電素子、あるいは熱等を利用して瞬間的に気泡を発生させるバブル素子を使用することができる。また、プリンター１１は印刷に用いる印刷ジョブデータをホスト装置３０から有線又は無線による通信で受信できるうえ、メモリーカード等の記憶媒体から印刷に用いるデータを読み取るものでもよい。
【００４３】
図１に示すように、制御回路１３は、制御ＩＣ２２、電源回路２３、ＣＰＵ２４及び不揮発性メモリー２５を備えている。制御ＩＣ２２は、充電制御を行う集積回路である。ここで、制御回路１３内にＣＰＵ２４に加え、ＡＳＩＣ（Application Specific IC（特定用途向けＩＣ））を備え、印刷機構１６のうち一部（例えば印刷ヘッド）の制御をＡＳＩＣが行ってもよい。また、不揮発性メモリー２５には、プリンター１１の制御に必要な各種のプログラム及びプリンター１１の電源オフ中にも保存の必要がある各種の設定データ等が記憶されている。なお、プリンター１１は、ＣＰＵ２４が実行する際のプログラムや必要な各種データ等が一時的に格納されるＲＡＭ（図示せず）も備えている。
【００４４】
ＵＳＢコネクター１２の電源供給路１２Ａ及びデータ線１２Ｂは、制御回路１３内の制御ＩＣ２２に接続されている。また、外部電源コネクター１７の電源供給路１７Ａ及びデータ線１７Ｂは、制御ＩＣ２２に接続されている。制御ＩＣ２２は、各コネクター１２，１７への外部装置の接続を検出する接続検出機能、その検出された接続相手（外部装置）を判別する判別機能を有する。さらに制御ＩＣ２２は、充電モードにおいて二次電池１４に充電する充電制御を行うとともに、ＣＰＵ２４及び駆動回路１５等に電源電力を供給する電源供給路１２Ａ，１７Ａの管理、及びＣＰＵ２４等にデータを送信するデータ線１２Ｂ，１７Ｂの管理を行う。
【００４５】
制御ＩＣ２２は、ホスト装置３０からのＵＳＢケーブル３５のコネクター３５Ａ又はＵＳＢバッテリーチャージャー４０のコネクター４０Ａ等のいずれかがＵＳＢコネクター１２に接続されると、ＵＳＢ接続を検出する。制御ＩＣ２２は、ＵＳＢ接続を検出すると、例えばデータ線１２Ｂ（Ｄ＋，Ｄ−）について、（Ｄ＋）≠（Ｄ−）（異電位）である場合に、ＵＳＢコネクター１２がコンピューター類であるホスト装置３０に接続されていると判断する。一方、（Ｄ＋）＝（Ｄ−）（同電位）である場合に、制御ＩＣ２２は、ＵＳＢコネクター１２がＵＳＢバッテリーチャージャー４０に接続されていると判断する。つまり、制御ＩＣ２２は、ＵＳＢコネクター１２に接続されている接続相手（接続先）が、ホスト装置３０であるか、ＵＳＢバッテリーチャージャー４０であるかを判定可能である。この点において、本実施形態では、制御ＩＣ２２により、接続相手を判定する判定回路の一例が構成される。なお、制御ＩＣ２２は、他の判定手法により接続相手を判定してもよい。
【００４６】
電源供給路１２Ａにおける制御ＩＣ２２とＣＰＵ２４との間の部分には、電源回路２３が直列に介在されている。電源回路２３は、入力した直流電圧を必要に応じて変圧して制御ＩＣ２２及びＣＰＵ２４に必要な駆動電圧（例えば３〜６Ｖの範囲内の所定電圧）、印刷機構１６中の印刷ヘッドの駆動に必要な駆動電圧、印刷媒体を搬送する搬送装置の動力源となる搬送モーターの駆動に必要な駆動電圧等を生成する。二次電池１４は、電源供給路１２Ａのうち制御ＩＣ２２と電源回路２３とを接続する部分に第１スイッチ２６を介して接続されている。この第１スイッチ２６は制御ＩＣ２２によりオン・オフ制御される。第１スイッチ２６がオンになって導通しているときに電源供給路１２Ａからの電源電力によって二次電池１４が充電される。
【００４７】
また、電源供給路１２Ａのうち電源回路２３とＣＰＵ２４との間の部分には、プッシュ式の第２スイッチ２７と、半導体スイッチで構成される第３スイッチ２８とが互いに並列な状態で介在している。プッシュ式の第２スイッチ２７は、電源スイッチ２０Ａの操作に連動して機械的に押下され、電源スイッチ２０Ａの操作中のみオンし、電源スイッチ２０Ａの操作が止められるとオフする。また、電源回路２３と駆動回路１５とを接続する電源供給路１２Ｃ上には第４スイッチ２９が介在している。
【００４８】
制御ＩＣ２２は、その判断結果に基づいて第３スイッチ２８のオン（導通）とオフ（非導通）の切替え、データ線１２Ｂ上の不図示のスイッチのオン（導通）とオフ（非導通）の切替え、第１スイッチ２６のオン（導通）とオフ（非導通）の切替えを制御している。
【００４９】
プリンター１１の起動のトリガーとするのは、プッシュ式の第２スイッチ２７であり、プリンター１１の電源オフ状態の下でユーザーにより電源スイッチ２０Ａが押下されて第２スイッチ２７がオンされると、制御ＩＣ２２は第３スイッチ２８をオン状態に維持する。詳しくは、プッシュ式の第２スイッチ２７がオンした際のオン信号がＣＰＵ２４に入力されると、ＣＰＵ２４は、制御ＩＣ２２に対してプリンター１１の電源のオン／オフの切替えを指示する。制御ＩＣ２２は、プリンター１１の電源オフ状態の下でＣＰＵ２４から電源の切替え指示を受け付けると、第３スイッチ２８及び第４スイッチ２９をオンさせ、一方、プリンター１１の電源オン状態の下でＣＰＵ２４から電源の切替え指示を受け付けると、第３スイッチ２８及び第４スイッチ２９をオフさせる。
【００５０】
第３スイッチ２８がオンされることで電源回路２３からＣＰＵ２４へ必要な電力が供給され、第３スイッチ２８がオフされることで電源回路２３からＣＰＵ２４への電力の供給が遮断される。また、第４スイッチ２９がオンされることで電源回路２３から駆動回路１５へ必要な電力が供給され、第４スイッチ２９がオフされることで電源回路２３から駆動回路１５への電力供給が遮断される。なお、第４スイッチ２９は、駆動回路１５へ供給するべき電圧別に設けられた複数のスイッチからなるスイッチ群により構成されてもよい。
【００５１】
プリンター１１の電源オフ状態では、第３スイッチ２８及び第４スイッチ２９が共にオフ状態にある。また、この電源オフ状態において外部電源コネクター１７にＡＣアダプター５０が接続されておらず、ＵＳＢコネクター１２にホスト装置３０とＵＳＢバッテリーチャージャー４０のどちらも接続されていなければ、第１スイッチ２６はオフ状態にある。
【００５２】
制御ＩＣ２２は、プリンター１１の電源オフ状態であって、かつＡＣアダプター５０が接続されていない状態において、ＵＳＢコネクター１２へのＵＳＢ接続を検出したときにその接続先がホスト装置３０（ＵＳＢホスト３０Ａ）であり、そのとき二次電池１４の充電が必要であれば、それまでオフ状態にあった第３スイッチ２８をオンさせる。制御ＩＣ２２は、第３スイッチ２８のオンによって、二次電池１４の充電に先立ちホスト装置３０との間でエニュメレーションと呼ばれる初期処理を実行させるためにＣＰＵ２４を起動させる。このとき、制御ＩＣ２２は、内部のスイッチをオンさせてＣＰＵ２４を、データ線１２Ｂを通じたデータの送受信が可能な状態にする。
【００５３】
ＵＳＢコネクター１２がホスト装置３０と接続した場合、ホスト装置３０から第１電力（例えば保証電流値１００ｍＡ）が供給される。また、ＣＰＵ２４は初期処理を行うことによって、ＵＳＢコネクター１２が受け取る第１電力以上の電力を消費する。このため、ＣＰＵ２４がホスト装置３０から初期処理完了通知を受信することなく初期処理の途中で待機状態のまま放置された場合、その待機時間のうちにＣＰＵ２４の起動中の消費電力により二次電池１４の残量が低減してしまう。ここで、保証電力とは、ＵＳＢ規格上、ＵＳＢホストがＵＳＢ接続されたＵＳＢデバイスに供給しなければならない電力であり、ＵＳＢ規格では電流値で例えば１００ｍＡに定められている。
【００５４】
なお、本実施形態では、プリンター１１が電源オフ中にホスト装置３０とＵＳＢ接続されたときに、二次電池１４の充電に必要な初期処理を行わせるためのＣＰＵ２４の起動を、「充電起動」と呼ぶ。また、制御ＩＣ２２が第３スイッチ２８をオンさせてＣＰＵ２４を起動させることを「充電起動オン」、第３スイッチ２８をオフさせて充電起動中のＣＰＵ２４を電源オフさせることを「充電起動オフ」と呼ぶ場合がある。
【００５５】
また、制御ＩＣ２２は、プリンター１１が電源オン状態の下でＡＣアダプター５０又はＵＳＢバッテリーチャージャー４０等の電源アダプターに接続されているときは、各スイッチ２６，２８，２９をオン状態とすることにより電源アダプターから供給される電力でＣＰＵ２４及び駆動回路１５を動作させる。このとき、電源アダプターからの供給電力のうちプリンター１１の動作に使用されない余った電力があれば、この電力で二次電池１４を充電する。一方、制御ＩＣ２２は、プリンター１１が電源オフ状態の下でＡＣアダプター５０又はＵＳＢバッテリーチャージャー４０に接続されているときは、第１スイッチ２６をオン状態、各スイッチ２８，２９をオフ状態とすることにより電源アダプターから供給される電力で二次電池１４を充電する。
【００５６】
制御ＩＣ２２は、ＡＣアダプター５０又はＵＳＢバッテリーチャージャー４０からの電力で二次電池１４を充電する際は、初期処理を行う必要がないので、ＣＰＵ２４は起動されない。なお、ＵＳＢバッテリーチャージャー４０及びＡＣアダプター５０は、ＡＣ電源のコンセントに繋がっているものに限らず、ＤＣバッテリーに繋がっているものも含む。
【００５７】
ＣＰＵ２４に接続されている不揮発性メモリー２５には、ホスト装置３０と電源供給能力のネゴシエーションを含むエニュメレーションと呼ばれる初期処理を行うためのＵＳＢ通信用プログラムが記憶されている。ＵＳＢコネクター１２にホスト装置３０の接続が検出された場合、ＣＰＵ２４は初期処理（エニュメレーション）をホスト装置３０との間で行う。本実施形態では、ＣＰＵ２４が初期処理の全てを実行するが、初期処理の一部をＣＰＵ２４が実行し他の一部をＡＳＩＣ又は制御ＩＣ２２が実行する構成としてもよい。なお、本実施形態では、ＣＰＵ２４により、初期処理の少なくとも一部を実行する処理回路の一例が構成される。
【００５８】
また、図１に示すように、ＣＰＵ２４はタイマー２４Ａを備えている。タイマー２４Ａは、例えばＣＰＵ２４内のカウンターにより構成され、クロック信号のパルスを計数することでタイマーとして機能する。ＣＰＵ２４は、その起動時点からの経過時間を計時時間Ｔとしてタイマー２４Ａに計時させる。不揮発性メモリー２５には、初期処理が失敗であるか否かを判定する際に用いられる設定タイムアウト時間Ｔ１（以下、単に「タイムアウト時間Ｔ１」ともいう。）が記憶されている。ＣＰＵ２４は、タイマー２４Ａの計時時間Ｔが、ホスト装置３０から初期処理完了通知を受信することなく、タイムアウト時間Ｔ１に達してタイムアウトになると、制御ＩＣ２２に指示して電源オフさせることで、初期処理を充電開始前に中止する。一方、ＣＰＵ２４は、タイマー２４Ａの計時時間Ｔがタイムアウト時間Ｔ１に達する前に、ホスト装置３０から初期処理完了通知を受信すると、制御ＩＣ２２に充電開始を指示して第１スイッチ２６をオンさせることで、ホスト装置３０からの電源電力で二次電池１４を充電する充電処理を開始させる。なお、タイマー２４Ａは、プログラムにより計時処理を行うソフトウェアで構成されてもよいし、ＣＰＵ２４ではなく、制御ＩＣ２２又はＡＳＩＣに設けられたものでもよい。
【００５９】
ここで、タイムアウト時間Ｔ１は、使用が想定される複数種のホスト装置３０のうちＢＩＯＳ（Basic Input/Output System）起動所要時間が最長であるホスト装置３０のＢＩＯＳ起動所要時間以上、かつこのホスト装置３０のＢＩＯＳ起動所要時間にマージン時間を加えた時間以下の値に設定されている。ここで、マージン時間は、適宜設定できるが、一例としてＢＩＯＳ起動所要時間の１０％以下が好ましい。タイムアウト時間Ｔ１は、一例として３０〜１２０秒の範囲内の所定値に設定されている。もちろん、タイムアウト時間Ｔ１は、上記の範囲に限らず、ＢＩＯＳ起動所要時間と関連付けて、あるいはＢＩＯＳ起動所要時間と無関係に、例えば１０秒や２０秒などのより短い時間、あるいは３分や５分などのより長い時間とすることもできる。
【００６０】
次に図２及び図３を参照して、プリンター１１とホスト装置３０との通信接続状態を確立するために初期処理として実行されるエニュメレーション及びタイマー２４Ａによるタイムアウト処理について説明する。なお、図２及び図３では、電源オフ状態の下でＵＳＢ接続された際の初期処理の例について説明するが、電源オン状態の下でＵＳＢ接続された際の初期処理についても基本的に同様である。但し、タイムアウト時間Ｔ１は、電源オフ時の初期処理のときよりも電源オン時の初期処理のときの方が短く設定することが好ましい。
【００６１】
図２に示すように、プリンター１１がホスト装置３０との間でＵＳＢ接続されると、このＵＳＢ接続を検出したホスト装置３０とプリンター１１との間で初期処理としてエニュメレーションが実行される。
【００６２】
図２に示すように、エニュメレーションでは、まずプリンター１１は、ホスト装置３０からエニュメレーション開始に当たりリセット処理（バスリセット）を指示する「USB BusReset」を受信する。次にディスクリプターと呼ばれる構成情報を要求する「GetDescriptor」を受信する。そして、プリンター１１はこの要求に応答して構成情報をホスト装置３０へ応答する。構成情報には、ＵＳＢデバイス１１Ａのクラス情報と、バスパワーかセルフパワーかを示すパワーモード情報と、ホスト装置３０に要求する電力の値を示す要求電力値情報とが含まれる。ここで、プリンター１１の電源オフ時は、クラス情報は例えば「ヒューマンインターフェイスデバイス（ＨＩＤ）クラス」とされる。また、プリンター１１の電源オン時は、クラス情報は例えば「プリンタークラス」とされる。
【００６３】
本実施形態では、バスパワーを要求する初期処理が、第１初期処理の一例に相当する。また、セルフパワーを要求する初期処理が第２初期処理の一例に相当する。なお、以下の説明中で、バスパワーを要求する初期処理を第１初期処理と称し、セルフパワーを要求する初期処理を第２初期処理と称する場合がある。
【００６４】
また、バスパワーを要求する第１初期処理においては、要求電力値情報として、第１電力（保証電力（例えば電流値１００ｍＡ））よりも大きな第２電力が設定される。要求電力値情報は、所定の電源電圧（例えば５ボルト）の下で電流値を要求する要求電流値情報で示される。第２電力を要求する要求電流値情報は、ＵＳＢ規格で供給可能な最大電力に相当する例えば「５００ｍＡ」とされる。なお、第２電力は、最大電力に限らず、二次電池１４への充電が可能な電力であればよく、第１電力より大きくかつ最大電力未満の電力でもよい。さらに第２電力は、セルフパワーを要求する第２初期処理の完了後にホスト装置３０から供給される電力「０（零）」より大きく、かつ最大電力未満の電力であってもよい。
【００６５】
そして、ホスト装置３０は、クラス情報（例えば「ＨＩＤクラス」）に基づいてＵＳＢ接続されたＵＳＢデバイスがヒューマンインターフェイスデバイスであると認識する。また、ホスト装置３０は、要求電流値情報（例えば５００ｍＡ）に基づいて、その要求された第２電力での電源供給が可能であるか否かを判断し、第２電力での電源供給が可能であれば、その構成情報を設定するとともに、初期処理完了通知（設定完了通知）である「SetConfiguration」をプリンター１１に送信する。
【００６６】
図２に示すように、エニュメレーションにおいてプリンター１１から要求した第２電力での電源供給が許可されて初期処理完了通知「SetConfiguration」を受信するまでは、充電不可能な状態にある。そして、初期処理完了通知を受信した場合に、ホスト装置３０からプリンター１１に、要求した第２電力で電源供給されて二次電池１４の充電が可能になる。
【００６７】
本実施形態では、プリンター１１の電源オフ状態かつＡＣアダプター５０が非接続の状態の下でＵＳＢ接続が検出されたときの接続相手がホスト装置３０である場合、プリンター１１内のＣＰＵ２４が起動される（充電起動オン）。このＣＰＵ２４の充電起動とほぼ同時にＣＰＵ２４はタイマー２４Ａによる計時を開始させる。ＣＰＵ２４は、その起動時点からの経過時間をタイマー２４Ａで計時し、その計時時間Ｔがタイムアウト時間Ｔ１に達したか否かを判断する。計時時間Ｔがタイムアウト時間Ｔ１に達する前に初期処理完了通知「SetConfiguration」を受信すれば、ホスト装置３０から第２電力（例えば電流値で５００ｍＡ）での電源供給が開始されるため、その供給される第２電力で二次電池１４を充電する。
【００６８】
一方、図３に示すように、プリンター１１とホスト装置３０とのＵＳＢ接続が検出され、プリンター１１内のＣＰＵ２４が起動（充電起動オン）されて開始した初期処理において、プリンター１１が送信した構成情報がホスト装置３０で許可されない場合、プリンター１１は初期処理完了通知「SetConfiguration」を受信できない。この場合、プリンター１１では、初期処理完了通知を受信することなく、タイマー２４Ａの計時時間Ｔが、タイムアウト時間Ｔ１に達する。このように初期処理完了通知「SetConfiguration」を受信することなく、計時時間Ｔがタイムアウト時間Ｔ１に達すると、プリンター１１は充電を目的に内部的に電源オンさせたＣＰＵ２４の電源をオフにすることで、充電起動をオフにする（電源オフ）。
【００６９】
ここで、タイムアウト時間Ｔ１を経過しても初期処理完了通知を受信できない例として、以下の場合が挙げられる。例えば図４に示すように、ホスト装置３０とプリンター１１とがバスパワーで動作しているハブ６０（分岐装置）を経由して接続されている構成では、ハブ６０のポート６０ａが例えばＮポート（図４の例では５ポート）である場合、１ポート当たり５００／Ｎ（ｍＡ）の電流値（図４の例では１００ｍＡ）でしか電源供給ができない。そのため、プリンター１１がクラス情報及び要求電流値情報（例えば５００ｍＡ）を含む構成情報を送信しても、ホスト装置３０はハブ経由であることの認識をもって、第２電力（例えば電流値で５００ｍＡ）での電源供給ができないと判断する。このため、ホスト装置３０は、要求された第２電力での電源供給を許可できないため、構成情報を設定しない。この結果、図３に示すように、ホスト装置３０は、初期処理完了通知「SetConfiguration」をプリンター１１に送信しない。このため、プリンター１１はホスト装置３０から送信されることのない初期処理完了通知「SetConfiguration」の受信を待つ待機状態となる。
【００７０】
また、ホスト装置３０がバッテリー駆動時にＵＳＢデバイス（プリンター１１）への電源供給が最大電力（例えば電流値で５００ｍＡ）未満の所定電力以下に制限する設定がなされている場合がある。このようなホスト装置３０では、プリンター１１から要求された第２電力での電源供給ができないため、ホスト装置３０からプリンター１１へ初期処理完了通知「SetConfiguration」が送信されない。この場合も、プリンター１１はホスト装置３０から送信されることのない初期処理完了通知「SetConfiguration」の受信を待つ待機状態となる。
【００７１】
この待機状態においてＣＰＵ２４は起動状態（充電起動オン状態）で待機するため、二次電池１４の電力を消費する。この待機状態においてプリンター１１はホスト装置３０からＵＳＢケーブル３５を通じて第１電力（電流値で例えば１００ｍＡ）で電源供給を受けるものの、起動中のＣＰＵ２４が初期処理で消費する電力が、第１電力を上回るため、待機時間の経過と共に二次電池１４の残量が徐々に低下してしまう。
【００７２】
そこで、本実施形態では、前述のタイムアウト時間Ｔ１を設定し、初期処理完了通知を受信することなく計時時間Ｔがタイムアウト時間Ｔ１に達してタイムアウトになると、ホスト装置３０に応答した構成情報に含まれる要求が許可されず初期処理を失敗したとみなして、ＣＰＵ２４は電源をオフにする（充電起動オフ）。そして、タイムアウト時間Ｔ１を、ＵＳＢコネクター１２への接続が想定される複数種のホスト装置３０のうち最長のＢＩＯＳ起動所要時間に応じた値に設定しているので、ホスト装置３０のＢＩＯＳ起動を待つにほぼ十分な時間を待った後にタイムアウトとなる。このため、待機すれば充電できたにも拘らず短過ぎるタイムアウト時間によりタイムアウトになってしまい、二次電池１４の充電ができなくなる不都合を回避し易いタイムアウト時間Ｔ１に設定されている。
【００７３】
タイムアウト時間Ｔ１は、電源ＯＮ時と電源ＯＦＦ時とで同じでもよいが、本実施形態では、タイムアウト時間Ｔ１を、電源ＯＮ時と電源ＯＦＦ時とで異なる値に設定している。特に本実施形態では、電源ＯＮ時のタイムアウト時間Ｔ１２の方が電源ＯＦＦ時のタイムアウト時間Ｔ１１よりも短く設定している（Ｔ１１＞Ｔ１２）。このように設定するのは以下の理由による。電源ＯＦＦ中はユーザーがホスト装置３０からプリンター１１に処理（例えば印刷処理）を指示することがないので、電源ＯＦＦ時のタイムアウト時間Ｔ１１がホスト装置３０の起動所要時間に応じた多少長めの値に設定されても問題がない。しかし、電源ＯＮ時のタイムアウト時間Ｔ１２は、長くなると、ユーザーがホスト装置３０からプリンター１１に指示した処理の開始遅れの原因になる。このため、電源ＯＦＦ中は充電の頻度を高めるために相対的な長めのタイムアウト時間Ｔ１１を設定し、電源ＯＮ中はユーザーがホスト装置３０からプリンター１１に指示した処理の待ち時間の発生を短く抑えるために相対的な短めのタイムアウト時間Ｔ１２を設定している。なお、タイムアウト時間を、Ｔ１１＜Ｔ１２を満たすように設定してもよい。
【００７４】
操作スイッチ２０Ｂを操作して表示部２１でメニューの下位階層に進むと、図５に示すような、モード設定画面Ｇ１が表示される。このモード設定画面Ｇ１には、操作スイッチ２０Ｂの操作によって、バスパワーモードを設定する際に選択される第１ボタン７１と、セルフパワーモードを設定する際に選択される第２ボタン７２とが設けられている。ユーザーが操作スイッチ２０Ｂを操作して第１ボタン７１を選択することでバスパワーモードが設定され、第２ボタン７２を選択することでセルフパワーモードが設定される。このユーザー設定されたパワーモードは、ＣＰＵ２４により不揮発性メモリー２５の所定記憶領域（図６（ａ）参照）に書き込まれる。
【００７５】
図６に示すように、操作スイッチ２０Ｂの操作で「バスパワーモード」を選択し設定すると、不揮発性メモリー２５の第１記憶領域２５Ａにバスパワーの旨の値（一例として「１」）が記憶される。一方、操作スイッチ２０Ｂの操作で「セルフパワーモード」を選択し設定すると、不揮発性メモリー２５の第１記憶領域２５Ａにセルフパワーの旨（一例として「０」）が記憶される。このようにユーザーはバスパワーかセルフパワーかを選択できる。ユーザーが操作スイッチ２０Ｂを操作して設定したＵＳＢ通信モード設定内容（ユーザー設定内容）は、不揮発性メモリー２５の第１記憶領域２５Ａに記憶される。
【００７６】
ここで、バスパワーとは、ホスト装置３０とＵＳＢケーブル３５を通じて接続されたときにホスト装置３０からＵＳＢケーブル３５のバス線を通じて電力の供給を受ける電力供給モードを指す。一方、セルフパワーとは、ホスト装置３０とＵＳＢケーブル３５を通じて接続されたときにホスト装置３０から電力の供給を受けず電子機器（本例ではプリンター１１）が自分で電力を賄う非受電モードを指す。
【００７７】
また、不揮発性メモリー２５には、ユーザー設定内容とは別に、バスパワーの要求を含む初期処理（第１初期処理）の成功か失敗かを記憶する第２記憶領域が用意されている。本実施形態では、初期設定がバスパワーであり、ホスト装置とのＵＳＢ通信確立のために実行される初期処理に成功すればバスパワーの設定が維持され、初期処理に失敗するとセルフパワーの設定に切り替えられる。このため、図６に示すように、不揮発性メモリー２５の第２記憶領域２５Ｂには、前回のバスパワーを要求する初期処理の成否（成功／失敗）に関する情報が記憶される。つまり、バスパワーを要求する初期処理が成功した場合は、図６（ａ）に示すように第２記憶領域２５Ｂに成功の旨の値（例えば「１」）が書込まれ、その初期処理に失敗した場合は、図６（ｂ）に示すように第２記憶領域２５Ｂに失敗の旨を示す値（例えば「０」）が記憶される。
【００７８】
ＣＰＵ２４は、第２記憶領域２５Ｂに格納された値に基づき、バスパワーを要求した前回の初期処理（第１初期処理）が成功であれば、今回もバスパワーを要求して第１初期処理を実行し、一方、失敗であれば、今回はセルフパワーを要求する初期処理（第２初期処理）を実行する。第２記憶領域２５Ｂの設定内容は、ＵＳＢケーブル３５がＵＳＢコネクター１２から抜かれたことが検出されると、ＣＰＵ２４によりバスパワーの旨の初期設定時の値に書き替えられる。これは、ＵＳＢケーブル３５の接続が維持されている間は相手のホスト装置３０が同じであるので、一度成功しているホスト装置３０には、今回もバスパワーを要求する初期処理をしても高確率で成功するはずであり、一度失敗しているホスト装置には今回もバスパワーを要求する初期処理をしても高確率で失敗するはずだからである。このような理由から、ＣＰＵ２４は、ホスト装置３０とＵＳＢ接続が維持されている間は、次回の初期処理を行うタイミングで不揮発性メモリー２５のこの前回の成功／失敗の情報を確認し、今回の初期処理時の要求パワーモードを前回が成功であればバスパワーとし、前回が失敗であればセルフパワーとする。なお、不揮発性メモリー２５の第２記憶領域２５Ｂに記憶する値は、「１」、「０」である。ここでは、「１」、「０」を、説明の便宜上、成功／失敗の旨を示す値と表記したが、バスパワー／セルフパワーの旨を示す値としても同義である。
【００７９】
また、プリンター１１の不揮発性メモリー２５には、図７〜図９にフローチャートで示される電源ＯＦＦ時における充電処理用プログラム、及び図１０で示される電源ＯＮ時のＵＳＢ通信処理用プログラムが記憶されている。なお、このプログラムは制御ＩＣ２２に書き込まれた部分（ステップＳ１〜Ｓ５）と、不揮発性メモリー２５に記憶されてＣＰＵ２４により実行される部分（ステップＳ６）とを含んでいる。
【００８０】
次に図７〜図１０を参照してプリンター１１の作用を説明する。すなわち、プリンター１１内の制御ＩＣ２２及びＣＰＵ２４が実行する電源ＯＦＦ時の充電処理（図７〜図９）と、プリンター１１内のＣＰＵ２４が実行する電源ＯＮ時のＵＳＢ通信処理（図９及び図１０）とについて説明する。図７〜図９に示す充電処理は、プリンター１１が電源オフ状態にあり、かつＡＣアダプター５０が接続されておらずＡＣアダプター５０による二次電池１４への充電が行われていない状態の下で行われる。
【００８１】
なお、図６（ａ）に示すように、不揮発性メモリー２５（以下、単に「メモリー２５」ともいう。）における第１記憶領域２５Ａには「バスパワー」（例えば値「１」）が設定され、第２記憶領域２５Ｂには「成功（バスパワー）」（例えば値「１」）が設定されているものとする。つまり、第１記憶領域２５Ａと第２記憶領域２５Ｂの各設定値は、初期設定時の値となっている。このようにユーザー設定としてバスパワーが設定され、初期処理成否情報として成功の旨の値が設定されているものとする。
【００８２】
ＵＳＢコネクター１２に何らかのコネクターが接続され、ＵＳＢ接続を検出すると、制御ＩＣ２２が起動され、図７に示す充電処理が開始される。
まずステップＳ１では、接続先がホスト装置であるか否かを判断する。すなわち、制御ＩＣ２２は、接続先がＵＳＢホスト３０Ａとして機能するホスト装置３０であるかＵＳＢバッテリーチャージャー４０等の電源アダプターであるかを判断する。例えばデータ線が（Ｄ＋）≠（Ｄ−）である場合は接続先がホスト装置３０であると判断し、（Ｄ＋）＝（Ｄ−）である場合は接続先が電源アダプターであると判断する。接続先がホスト装置３０ではなく電源アダプターであればステップＳ１３に進み、ホスト装置３０であればステップＳ１４に進む。
【００８３】
ステップＳ２では、電源アダプターで充電を開始する。本例の場合、ＵＳＢバッテリーチャージャー４０からの電力で二次電池１４を充電する。
ステップＳ３では、二次電池の残量が閾値未満であるか否かを判断する。すなわち、二次電池１４の残量が、初期処理を行ううえで十分な残量である閾値未満であるか否かを判断する。二次電池１４の残量が閾値未満であればステップＳ４に進み、閾値未満でなければステップＳ５に進む。
【００８４】
ステップＳ４では、二次電池を第１電力（例えば１００ｍＡ）で充電する。この第１電力での充電は、二次電池１４の残量が閾値に達するまで行われる。そして、二次電池１４がその残量が閾値以上になるまで充電されると（Ｓ３で否定判定）、ステップＳ５に進む。
【００８５】
ステップＳ５では、ＣＰＵを起動させる（充電起動オン）。すなわち、制御ＩＣ２２は、第３スイッチ２８をオフからオンに切り替えることでＣＰＵ２４を起動させる。このように二次電池１４の充電を開始する前に必要なホスト装置３０との初期処理を行わせるためにＣＰＵ２４を起動させる。
【００８６】
ステップＳ６では、ＣＰＵによる充電処理を行う。この充電処理は、ＣＰＵ２４が図８に示す電源ＯＦＦ時の充電処理ルーチンを実行することにより行われる。以下、図８を参照してＣＰＵ２４による充電処理ルーチンについて説明する。
【００８７】
まずステップＳ１１では、パワーモードに係るユーザー設定を判断する。すなわち、ユーザー設定が、バスパワーであるかセルフパワーであるかを判断する。本例では、ユーザー設定は初期設定でバスパワーとなっており、ユーザーが操作スイッチ２０Ｂの操作でセルフパワーを選択した場合にセルフパワーが設定される。ＣＰＵ２４はメモリー２５の第１記憶領域２５Ａに格納された値に基づいてパワーモードがバスパワーかセルフパワーかを判断する。
【００８８】
ここで、ユーザーがセルフパワーを設定する目的の一つは、ホスト装置３０がハブ６０を介してプリンター１１と接続されて第２電力（電流値で例えば５００ｍＡ）での電力供給ができない場合でも、セルフパワーで初期処理を行うので、初期処理が失敗することがまずないようにするというものである。例えば電源ＯＮ時の初期処理であれば、その後ＵＳＢ通信が確実に確立され、プリンター１１がホスト装置３０からの印刷データに基づく印刷を行うことができる。但し、本実施形態では、バスパワーを要求する初期処理が、ハブ６０を介する等の理由により失敗しても、その失敗を検出してバスパワーからセルフパワーに切り替える制御を採用している。また、ユーザーがセルフパワーを設定する目的は、ホスト装置３０がノートパソコン等でバッテリーの電力で動作している場合に、ノートパソコン等のバッテリーの電力がプリンター１１に使われずに、長持ちするようにするというものである。ユーザー設定がバスパワーである場合はステップＳ１２に進み、セルフパワーの場合はステップＳ１７に進む。セルフパワーの場合は充電が行われないので、ステップＳ１７では、制御ＩＣ２２及びＣＰＵ２４の起動をオフすることで、充電起動をオフする（充電起動オフ）。
【００８９】
ステップＳ１２では、メモリー２５（第２記憶領域２５Ｂ）の値が成功であるか否かを判断する。「成功」の旨の値（例えば「１」）であればステップＳ１３に進み、成功の旨の値でなければ（つまり失敗の旨の値（例えば「０」）であれば）、ステップＳ１７に進む。セルフパワーの場合は充電が行われないので、ステップＳ１７では、制御ＩＣ２２及びＣＰＵ２４の起動をオフすることで、充電起動をオフする（充電起動オフ）。
【００９０】
ステップＳ１３では、プルアップを行う。すなわち、ＣＰＵ２４は、データ線Ｄ＋，Ｄ−の電圧を変動させてプルアップを行う。このプルアップによりホスト装置３０はＵＳＢデバイス１１Ａ（プリンター１１）の接続を検出し、初期処理（エニュメレーション）（図２、図３を参照）を開始する。
【００９１】
ステップＳ１４では、バスパワーを要求する初期処理（第１初期処理）を実行し、その初期処理が成功したか否かを判断する。このステップＳ１４の処理は、ＣＰＵ２４が図９にフローチャートで示す初期処理ルーチンを実行することにより行われ、その詳細は以下のように行われる。
【００９２】
まず図９のステップＳ３１において、タイマーの計時を開始する。すなわち、ＣＰＵ２４はタイマー２４Ａに計時を開始させる。この結果、タイマー２４ＡはＣＰＵ２４の起動時点（正確にはプルアップ時点）からの経過時間（計時時間Ｔ）を計時する。なお、タイマー２４Ａによる計時開始処理（Ｓ３１）とプルアップ処理（Ｓ１３）との順番は逆でもよい。
【００９３】
ステップＳ３２では、バスパワーを要求する初期処理（第１初期処理）を行う。ホスト装置３０からの要求に対してディスクリプターと呼ばれる構成情報を送信する。構成情報には、ＵＳＢデバイスのクラスを示すクラス情報と、ＵＳＢホストに要求するパワーモードの情報（要求パワーモード情報）と、ＵＳＢホストに要求する電力の情報（要求電力情報）とが含まれる。クラス情報には、プリンタークラス及びヒューマンインターフェイスデバイス（ＨＩＤ）クラスのうち一方が用いられる。電源オフ中は印刷は行われないので、ＨＩＤクラスが用いられる。本例のプリンター１１は、電源オフ状態での充電モードにおいて、「バスパワー」を要求しそのときの供給電力として第２電力（電流値で例えば５００ｍＡ）を要求する。このため、プリンター１１は、ＨＩＤクラスを指定し、バスパワーで第２電力を要求する構成情報をホスト装置３０に応答する。なお、電源オン中に行われる初期処理では、構成情報中のクラス情報としてプリンタークラスが用いられ、ホスト装置３０は、ＵＳＢデバイス１１Ａをプリンターと認識する。また、ＨＩＤクラスに替えてマスストレージクラス等の他のクラスを用いてもよい。
【００９４】
このバスパワーを要求する初期処理は、図２に示すように行われる。プルアップによりＵＳＢ接続が検出されると、ホスト装置３０とプリンター１１との間で初期処理としてエニュメレーションが開始される。まずホスト装置３０からプリンター１１へバスリセットを指示する「USB BusReset」が送信され、この指示を受信したプリンター１１はバスリセットする。次にホスト装置３０からプリンター１１へ構成情報（ディスクリプター）を要求する「GetDescriptor」が送信される。「GetDescriptor」を受信したプリンター１１は、クラス情報（例えば「ＨＩＤ」）、パワーモード情報（「バスパワー」）及び要求電力情報（「第２電力（例えば５００ｍＡ）」）を含む構成情報を送信する。
【００９５】
ホスト装置３０は、プリンター１１から受信した構成情報に基づき、要求された条件でＵＳＢ通信接続を許可しうるか否かを判断する。そして、ホスト装置３０は、バスパワーかつ第２電力で電源供給が可能と判断すれば、プリンター１１の構成情報をメモリーに書き込んでデバイス構成等を設定するとともに、図２に示すように、プリンター１１へ初期処理完了の旨の初期処理完了通知「SetConfiguration」を送信する。
【００９６】
一方、図４に示すように、ホスト装置３０とプリンター１１とがバスパワーハブ経由で接続されている場合、プリンター１１が、バスパワーかつ第２電力を含む構成情報を送信しても、ホスト装置３０はハブ経由との認識から、要求された第２電力での電源供給が不可能と判断し、ＵＳＢ通信の確立を許可しない。この場合、図３に示すように、ホスト装置３０からプリンター１１へ初期処理完了通知「SetConfiguration」は送信されない。よって、プリンター１１内のＣＰＵ２４は、ホスト装置３０から送信されることのない初期処理完了通知「SetConfiguration」を、起動状態のまま待機することになる。この待機中は、起動中（充電起動オン状態）のＣＰＵ２４が電力を浪費し、二次電池１４の残量が低減する。
【００９７】
また、ホスト装置３０がバッテリー駆動時に、ＵＳＢデバイス１１Ａへの供給電力が最大電力（電流値で５００ｍＡ）未満の所定電力以下に制限する設定がなされている場合、プリンター１１から要求された第２電力（電流値で５００ｍＡ）での電源供給ができない。このため、ホスト装置３０からプリンター１１へ初期処理完了通知「SetConfiguration」が送信されない。この場合も、プリンター１１内のＣＰＵ２４は、ホスト装置３０から送信されることのない初期処理完了通知「SetConfiguration」を、起動状態のまま待機することになる。この待機中は、起動中のＣＰＵ２４により、二次電池１４の電力が浪費される。これらの場合、ホスト装置３０からＵＳＢケーブル３５を通じて第１電力（電流値で１００ｍＡ）が供給されるものの、起動中のＣＰＵ２４が初期処理で消費する電力が第１電力を上回る場合、二次電池１４の残量が徐々に低下してしまう。
【００９８】
ステップＳ３３では、初期処理完了通知を受信したか否かを判断する。そして、ＣＰＵ２４は、初期処理完了通知を受信しなければステップＳ３４に進み、初期処理完了通知を受信して初期処理が成功すればステップＳ１５（図８）へ進む。
【００９９】
ステップＳ３４では、タイムアウトになったか否かを判断する。すなわち、タイマー２４Ａの計時時間Ｔがタイムアウト時間Ｔ１に達したか否かを判断する。タイムアウトでなければステップＳ３３に戻る。こうして初期処理完了通知を受信するか（Ｓ３３で肯定判定）、タイムアウトになる（Ｓ３４で肯定判定）まで、ステップＳ３３，Ｓ３４の処理を繰り返し実行する。タイムアウトになって初期処理に失敗した場合は、ステップＳ１６（図８）へ進む。
【０１００】
図８に戻って、上記のステップＳ１４の処理（図９）において、初期処理完了通知を受信して初期処理を成功した場合はステップＳ１５に進み、一方、初期処理完了通知を受信する前にタイムアウトとなって初期処理を失敗した場合はステップＳ１６に進むことになる。
【０１０１】
ステップＳ１５では、二次電池を第２電力（電流値で５００ｍＡ）で充電する。つまり、ホスト装置３０から電源供給される第２電力で二次電池１４を充電する。
一方、初期処理に失敗した場合は、ステップＳ１６において、メモリーに失敗の旨の値を書き込む。ＣＰＵ２４はメモリー２５の第２記憶領域２５Ｂに、例えば図６（ｂ）に示すように失敗の旨の値（例えば「０」）を書き込む。なお、ステップＳ１４において初期処理に成功した場合は、そのときメモリー２５の第２記憶領域２５Ｂには、初期処理成否情報として初期設定時の成功の旨の値（初期値（例えば「１」））が格納されているので、特に書き替えは行わない。もちろん、メモリー２５に成功の旨の値を書き込んでもよい。
【０１０２】
そして、次のステップＳ１７では、ＣＰＵ２４と制御ＩＣ２２とをオフにすることで、充電起動をオフにする（充電起動オフ）。詳しくは、初期処理完了通知を受信することなく、ＣＰＵ起動時点からの経過時間である計時時間Ｔがタイムアウト時間Ｔ１に達した場合、起動状態にあるＣＰＵ２４及び制御ＩＣ２２の電源を共にオフし、二次電池１４の充電をその開始前に中止する。この充電起動オフ処理は、例えばＣＰＵ２４からのオフ指示に従って制御ＩＣ２２が、第３スイッチ２８をオフにすることでＣＰＵ２４の電源をオフにし、その後、自身の電源をオフにすることで行われる。こうしてＣＰＵ２４が初期処理の失敗により送られてくることのない初期処理完了通知を待ち続けることによる電力の浪費及び二次電池１４の残量の減少を抑制できる。
【０１０３】
このようにバスパワー要求での初期処理に成功した場合は二次電池の充電が行われ、初期処理に失敗した場合は、その失敗の旨をメモリー２５に保存したうえで、ＵＳＢ接続検出をトリガーに起動された制御ＩＣ２２及びＣＰＵ２４の電源がオフされる。
【０１０４】
この充電中又は電源オフ中において、ＣＰＵ２４は次の処理を行う。すなわち、充電中においては、ステップＳ１８で電源ＯＮ操作があったか否かの判断、ステップＳ１９でＵＳＢケーブルが抜かれたか否かの判断、ステップＳ２０でＵＳＢ充電終了条件が成立したか否かの判断を、このうち１つの判断処理で肯定判定が得られるまで繰り返し実行する。例えばステップＳ１８で電源ＯＮ操作があれば、ステップＳ２１に進んで電源ＯＮ処理を行う。すなわち、電源スイッチ２０Ａの操作でその操作中のみ第２スイッチ２７がオンされ、電源回路２３からＣＰＵ２４に電力が供給されることでＣＰＵ２４が起動され、ＣＰＵ２４が制御ＩＣ２２に指示することで第３スイッチ２８が接続される。このため、電源スイッチ２０Ａを押してから手を離しても、ＣＰＵ２４への電力供給が維持される。なお、本実施形態での電源ＯＮ処理では、プリンター１１の一部のみ起動させている充電起動を一旦オフした後、プリンター１１全体を電源ＯＮに切り替える処理を含む。これは一部のみ起動されているときに、残りの他の一部のみを起動させる処理を行うことは、起動中の一部がどれなのか監視する必要があるうえ、停止中の他の一部を選択して起動させる面倒な制御が必要なため、一旦起動中の一部の電源をオフしてからプリンター１１全体の電源を入れ直すことで、監視の負担及び制御の負担を軽減できるからである。
【０１０５】
次のステップＳ２２では、ＵＳＢ再接続処理を行う。すなわち、プルアップ状態を一旦解除する。そして、その処理を電源ＯＮ時のＵＳＢ通信処理ルーチン（図１０）へ移行させる。これによりＵＳＢケーブル３５が接続されたまま、電源ＯＮ時のＵＳＢ通信処理ルーチンにおける後述のステップＳ４３又はＳ４４でプルアップした際に、ホスト装置３０のＵＳＢホスト３０ＡがＵＳＢデバイス１１Ａとの再接続（ＵＳＢ接続）を検出する。このため、再接続によって、ホスト装置３０はプリンター１１との間で初期処理（Ｓ４５又はＳ４９）を行うことが可能になる。
【０１０６】
また、ステップＳ１９で、ＵＳＢケーブルが抜かれた場合（肯定判定）は、当該ルーチンを終了する。このとき、ＵＳＢケーブル３５が抜かれることで二次電池１４への充電は中止される。
【０１０７】
さらにステップＳ２０で、ＵＳＢ充電終了条件が成立すると、ステップＳ２３に進んで、ＣＰＵ２４及び制御ＩＣ２２の電源をオフにすることで、充電起動をオフにする。ここで、ＵＳＢ充電終了条件とは、ＵＳＢケーブル３５を通じたホスト装置３０とのＵＳＢ接続が維持されたまま二次電池１４の充電を終了させる条件を指し、(1)二次電池１４が満充電になったこと、(2)ホスト装置３０よりも充電の電源として優先されるＡＣアダプター５０等の電源アダプターが接続されたことが、その条件として挙げられる。ここで、制御ＩＣ２２は二次電池１４の充電中にその残量を監視し、二次電池１４が満充電されると、第１スイッチ２６をオフにすることで、二次電池１４の充電を終了させる。この二次電池１４の満充電の旨は制御ＩＣ２２からＣＰＵ２４へ通知される。これらの二条件のうちいずれか一方が成立すると、二次電池１４へのＵＳＢ充電を中止して、充電起動をオフさせる。例えばＡＣアダプター５０が接続された場合、その接続を検出した制御ＩＣ２２がＣＰＵ２４の起動を停止させる。そして、電源がＵＳＢ経由のホスト装置３０からＡＣアダプター５０に切り替えられ、以後、ＡＣアダプター５０を介して供給される電力で二次電池１４への充電が行われる。そして、充電起動オフ後、充電起動オフ中の処理の一つであるステップＳ２６に進む。
【０１０８】
一方、充電起動オフ（Ｓ１７）後においては、ステップＳ２４で電源ＯＮ操作があったか否かの判断と、ステップＳ２５でＵＳＢケーブルが抜かれたか否かの判断と、ステップＳ２６でＵＳＢ充電開始条件が成立したか否かの判断とを、このうち１つの判断処理で肯定判定が得られるまで繰り返し実行する。例えばステップＳ２４で電源ＯＮ操作があれば、ステップＳ２１に進んで、充電中の電源オン操作時と同様の電源ＯＮ処理を行い、さらにステップＳ２２でＵＳＢ再接続処理を行った後、その処理を電源ＯＮ時のＵＳＢ通信処理ルーチンへ移行させる。
【０１０９】
また、ステップＳ２５で、ＵＳＢケーブルが抜かれた場合（肯定判定）は、ステップＳ２７に進んで、メモリー２５を成功の旨の値に書き替え、その後、当該ルーチンを終了する。ここで、メモリー２５を成功の旨の値に書き替えるのは、ＵＳＢケーブル３５が抜かれたことで、次にＵＳＢ接続されたときのホスト装置３０が変更される可能性があるため、ホスト装置３０が変更されれば初期処理が成功する可能性が高いので、バスパワーによる初期処理を試行できるようにするためである。
【０１１０】
さらにステップＳ２６で、ＵＳＢ充電開始条件が成立すると、ステップＳ２８に進んで、ＣＰＵ２４及び制御ＩＣ２２の電源をオフにすることで、充電起動をオフにする。ここで、ＵＳＢ充電開始条件とは、ＵＳＢケーブル３５を通じたホスト装置３０とのＵＳＢ接続が維持されたまま充電起動オフ状態の下で、二次電池１４の充電を開始させる条件を指す。このＵＳＢ充電開始条件には、(3)二次電池１４の残量が満充電より所定レベル少ない値に設定された閾値（例えば満充電の９０〜９９％の範囲内の所定値（％））を下回ったこと、(4)ホスト装置３０よりも充電の電源として優先されるＡＣアダプター５０等の電源アダプターの接続が外されたことが、その条件として挙げられる。これらの二条件のうちいずれか一方が成立すると、ステップＳ２８に進む。
【０１１１】
そして、ステップＳ２８では、制御ＩＣ２２及びＣＰＵ２４を起動させることで、充電起動をオンさせる（充電起動オン）。この充電起動オンの後、Ｓ１１に戻る。つまり、当該ルーチンの終了前にＣＰＵ２４を起動状態にすることで、ＣＰＵ２４が充電開始条件の成立に基づく当該ルーチンを再び開始することができる。このようにＵＳＢ充電終了条件の成立後（Ｓ２０で肯定判定）、ＵＳＢケーブル３５が抜かれることなくホスト装置３０との接続を継続する状態で、ＵＳＢ充電開始条件が成立して充電起動し（Ｓ２６，Ｓ２８）、次のステップＳ１３でプルアップすることで、プリンター１１はホスト装置３０と再接続することになる。
【０１１２】
例えばＵＳＢケーブル３５を通じたホスト装置３０とのＵＳＢ接続を維持したまま、メモリー２５に失敗の旨の値が書き込まれた状態で、上記の充電処理ルーチンを終了した場合は、次の処理が行われる。すなわち、ステップＳ１２におけるメモリーの値が失敗なので、初期処理（Ｓ１４）に進むことなく、充電起動をオフする（Ｓ１７）。
【０１１３】
つまりＵＳＢケーブル３５が抜かれていない場合は、ＵＳＢ接続の接続相手は、前回の初期処理実施時のホスト装置３０と同じになる。そのため、前回失敗であれば、今回も失敗になるので、前回の初期処理で失敗した旨がメモリーに保存されていれば、バスパワーを要求する第１初期処理を行わず充電起動をオフする。このため、無駄な初期処理の実行に伴う電力の浪費及び二次電池１４の残量低減を抑制することができる。
【０１１４】
一方、ＵＳＢケーブル３５が抜かれた場合は、次にＵＳＢ接続の検出時の接続相手は、ＵＳＢケーブル３５が抜かれたときと異なるホスト装置３０である可能性がある。仮に前回のホスト装置３０で初期処理に失敗していても、ＵＳＢケーブル３５が前回抜かれたときにメモリー２５（第２記憶領域２５Ｂ）の値が「失敗」から「成功」の旨の値に書き替えられる（Ｓ２７）。このため、その後、当該ルーチン再開後のステップＳ１２で成功の旨の値であることから、プルアップ（Ｓ１３）を経て進んだステップＳ１４において、バスパワーを要求する第１初期処理を実行することができる。このため、接続相手が前回と異なるホスト装置３０であって、バスパワーかつ第２電力が許可されれば、バスパワーで供給された第２電力（電流値で５００ｍＡ）で二次電池１４を充電することができる。
【０１１５】
また、初期処理を失敗したときのホスト装置３０とＵＳＢケーブル３５を通じて接続された状態で電源ＯＮ操作されてプリンター１１が起動したときは、メモリー２５（第２記憶領域２５Ｂ）の値は「失敗」の旨の値のままとなる。また、初期処理を成功したときのホスト装置３０とＵＳＢケーブル３５を通じて接続された状態で電源ＯＮ操作されてプリンター１１が起動したときは、メモリー２５（第２記憶領域２５Ｂ）の値は「成功」の旨の値となる。
【０１１６】
次に図１０を参照して、電源ＯＮ時のＵＳＢ通信処理ルーチンについて説明する。ユーザーが電源スイッチ２０Ａを操作してＵＳＢケーブル３５を介してホスト装置３０と接続しているプリンター１１の電源をオンした際に、ＣＰＵ２４は図１０に示すＵＳＢ通信処理ルーチンを実行する。また、プリンター１１の電源がオン状態でＵＳＢ接続していないときに、ＵＳＢが接続された際にも、ＣＰＵ２４は図１０に示すＵＳＢ通信処理ルーチンを実行する。プリンター１１が電源オン状態にあるとき、ユーザーはホスト装置３０の入力装置（図示せず）を操作して印刷を指示すると、印刷データがホスト装置３０からＵＳＢケーブル３５を通じてプリンター１１へ送信される。但し、ホスト装置からの指示でプリンター１１に印刷させるためには、初期処理が成功して両者の間でＵＳＢ通信が確立される必要がある。
【０１１７】
まずステップＳ４１〜４３は、図８におけるステップＳ１１〜Ｓ１３と同様の処理である。すなわち、ステップＳ４１で、ユーザー設定が、バスパワーであるかセルフパワーであるかを判断する。詳しくは、ＣＰＵ２４はメモリー２５の第１記憶領域２５Ａに格納された値に基づいてユーザー設定されたパワーモードがバスパワーかセルフパワーかを判断する。ユーザー設定がバスパワーである場合はステップＳ４２に進み、セルフパワーの場合はステップＳ４４に進む。
【０１１８】
ここで、ユーザーがセルフパワーを設定する目的の一つは、ホスト装置３０がハブ６０を介してプリンター１１と接続されて第２電力（電流値で例えば５００ｍＡ）での電力供給ができない場合でも、セルフパワーで初期処理を行って、電源ＯＮ時にＵＳＢ通信を確立し、ホスト装置３０からの印刷データに基づく印刷をできるようにすることにある。但し、本実施形態では、ユーザー設定がバスパワーであっても、初期処理の失敗を検出してバスパワーからセルフパワーに切り替える制御を採用している。
【０１１９】
ステップＳ４２では、メモリー２５（第２記憶領域２５Ｂ）の値が成功であるか否かを判断する。「成功」の旨の値（例えば「１」）であればステップＳ４３に進み、成功の旨の値でなければ（つまり失敗の旨の値（例えば「０」）であれば）、ステップＳ４４に進む。
【０１２０】
ステップＳ４３では、プルアップを行う。すなわち、ＣＰＵ２４は、データ線Ｄ＋，Ｄ−の電圧を変動させてプルアップを行う。このプルアップによりホスト装置３０はＵＳＢデバイス１１Ａ（プリンター１１）の接続を検出し、初期処理（エニュメレーション）（図２、図３を参照）を開始する。
【０１２１】
次のステップＳ４５では、バスパワーを要求する初期処理（第１初期処理）を実行し、その初期処理が成功したか否かを判断する。このステップＳ４５の処理は、ＣＰＵ２４が図９にフローチャートで示す初期処理ルーチンを実行することにより行われ、その詳細は以下のように行われる。
【０１２２】
まず図９のステップＳ３１において、タイマーの計時を開始する。すなわち、ＣＰＵ２４はタイマー２４Ａに計時を開始させる。この結果、タイマー２４ＡはＣＰＵ２４の起動時点（正確にはプルアップ時点）からの経過時間（計時時間Ｔ）を計時する。なお、タイマー２４Ａによる計時開始処理（Ｓ３１）とプルアップ処理（Ｓ１３）との順番は逆でもよい。
【０１２３】
ステップＳ３２では、バスパワーを要求する初期処理（第１初期処理）を行う。ここで、ＣＰＵ２４は、ホスト装置３０からの要求に対してディスクリプターと呼ばれる構成情報を送信する。このとき、プリンター１１の電源オン中は印刷が行われることを前提とするため、プリンタークラスが用いられる。ＣＰＵ２４は、プリンタークラスを指定し、バスパワーで第２電力（電流値で例えば５００ｍＡ）を要求する構成情報をホスト装置３０に応答する。ホスト装置３０は、構成情報中のクラス情報がプリンタークラスであることから、ＵＳＢデバイス１１Ａをプリンターと認識する。このため、ホスト装置３０は、印刷要求を受け付ければ、印刷データをＵＳＢ通信を通じてプリンター１１へ送信する。
【０１２４】
この第１初期処理は、電源ＯＮ時も電源０ＦＦ時と同様に、図２に示すように行われる。プルアップによりＵＳＢ接続が検出されると、ホスト装置３０とプリンター１１との間で初期処理としてエニュメレーションが開始される。ホスト装置３０から「GetDescriptor」を受信すると、プリンター１１は、クラス情報（例えば「プリンター」）、パワーモード情報（「バスパワー」）及び要求電力情報（「第２電力（例えば５００ｍＡ）」）を含む構成情報（ディスクリプター）を送信する。
【０１２５】
ホスト装置３０は、プリンター１１から受信した構成情報に基づき、要求された条件でＵＳＢ通信接続を許可しうるか否かを判断する。そして、ホスト装置３０は、バスパワーかつ第２電力で電源供給が可能と判断すれば、プリンター１１の構成情報をメモリーに書き込んでデバイス構成等を設定するとともに、図２に示すように、プリンター１１へ初期処理完了通知「SetConfiguration」を送信する。
【０１２６】
一方、図４に示すように、ホスト装置３０とプリンター１１とがバスパワーハブ経由で接続されている場合、プリンター１１が、バスパワーかつ第２電力を含む構成情報を送信しても、ホスト装置３０はハブ経由との認識から、要求された第２電力での電源供給が不可能と判断し、ＵＳＢ通信の確立を許可しない。この場合、図３に示すように、ホスト装置３０からプリンター１１へ初期処理完了通知「SetConfiguration」は送信されない。よって、プリンター１１は、ホスト装置３０から送信されることのない初期処理完了通知「SetConfiguration」を、起動状態のまま待機することになる。この待機中は、起動中のＣＰＵ２４によって電力が浪費される。
【０１２７】
また、ホスト装置３０がバッテリー駆動時に、ＵＳＢデバイス１１Ａへの供給電力が制限されている場合、プリンター１１から要求された第２電力（電流値で５００ｍＡ）を許可できない。この場合も、プリンター１１内のＣＰＵ２４は、ホスト装置３０から送信されることのない初期処理完了通知「SetConfiguration」を起動状態のまま待機することになり、電力を浪費する。これらの場合、初期処理完了通知が送られてくるまでの待機中に、ホスト装置３０からＵＳＢケーブル３５を通じて第１電力（電流値で１００ｍＡ）が供給されるものの、起動中のＣＰＵ２４が初期処理で消費する電力が第１電力を上回る場合、二次電池１４の残量が徐々に低下してしまう。
【０１２８】
ステップＳ３３では、初期処理完了通知を受信したか否かを判断する。そして、ＣＰＵ２４は、初期処理完了通知を受信しなければステップＳ３４に進み、初期処理完了通知を受信して初期処理が成功すればステップＳ４６（図１０）へ進む。
【０１２９】
ステップＳ３４では、タイムアウトになったか否かを判断する。すなわち、タイマー２４Ａの計時時間Ｔがタイムアウト時間Ｔ１に達したか否かを判断する。タイムアウトでなければステップＳ３３に戻る。こうして初期処理完了通知を受信して初期処理を成功するか（Ｓ３３で肯定判定）、タイムアウトになって初期処理を失敗する（Ｓ３４で肯定判定）まで、ステップＳ３３，Ｓ３４の処理を繰り返し実行する。タイムアウトになって初期処理に失敗した場合は、ステップＳ４７（図１０）へ進む。
【０１３０】
図１０に戻って、上記のステップＳ４５の処理（図９）において、初期処理完了通知を受信して初期処理を成功した場合はステップＳ４６に進み、一方、初期処理完了通知を受信する前にタイムアウトとなって初期処理を失敗した場合はステップＳ４７に進むことになる。
【０１３１】
ステップＳ４６では、バスパワーでＵＳＢ通信処理を行う。ここで、ＵＳＢ通信処理とは、電源オン中のプリンター１１がホスト装置３０とＵＳＢ通信を介して行う処理を指し、例えば印刷処理やインク残量通知を含む各種の通知処理等が含まれる。このとき、バスパワーで供給される第２電力（電流値で５００ｍＡ）を用いて印刷処理などのＵＳＢ通信処理が行われる。なお、第２電力のうちＵＳＢ通信処理で使用されない余りの電力があれば、その余りの電力を電源ＯＮ中における二次電池１４の充電に使用してもよい。
【０１３２】
一方、初期処理に失敗した場合は、ステップＳ４７において、メモリーに失敗の旨の値を書き込み、セルフパワーに切り替える。ＣＰＵ２４はメモリー２５の第２記憶領域２５Ｂに、例えば図６（ｂ）に示すように失敗の旨の値（例えば「０」）を書き込む。ＣＰＵ２４は、以後、メモリー２５の値を参照して成功か失敗かを判定するので（Ｓ４２）、このメモリー２５の失敗の旨の値への書替えによって、バスパワーからセルフパワーに切り替えられる。なお、ステップＳ４５において初期処理に成功した場合は、そのときメモリー２５の第２記憶領域２５Ｂに初期設定時の成功の旨の値（初期値（例えば「１」））が格納されているので、特に書き替えは行わない。もちろん、メモリー２５に成功の旨の値を書き込んでもよい。
【０１３３】
次のステップＳ４８では、ＵＳＢ再接続処理を行う。すなわち、プルアップ状態を一旦解除した後、再びプルアップする。これによりＵＳＢケーブル３５が接続されたまま、ホスト装置３０のＵＳＢホスト３０ＡがＵＳＢデバイス１１Ａとの接続（ＵＳＢ接続）を検出する。この結果、ホスト装置３０はプリンター１１との間で初期処理を行うことが可能になる。
【０１３４】
こうしてユーザー設定がセルフパワーである場合（Ｓ４１）、メモリー２５の値が失敗の旨の値である場合（Ｓ４２で否定判定）、バスパワー要求時の初期処理を失敗した場合（Ｓ４５で否定判定）は、共にプルアップ（Ｓ４４又はＳ４８）の後、ステップＳ４９に進むことになる。
【０１３５】
次のステップＳ４９では、セルフパワーを要求する初期処理（第２初期処理）を実行する。
ここで、ＣＰＵ２４は、ホスト装置３０からの要求に対して、プリンタークラスを指定し、セルフパワーを要求する構成情報をホスト装置３０に応答する。このセルフパワー要求時の初期処理は、バスパワー要求時の初期処理と同様に、図２に示すように行われる。プルアップによりＵＳＢ接続が検出されてホスト装置３０とプリンター１１との間で初期処理が開始されると、プリンター１１は、ホスト装置３０からの要求「GetDescriptor」に対し、クラス情報「プリンタークラス」、パワーモード情報「セルフパワー」及び要求電力情報（例えば０〜１０ｍＡの範囲内の値）を含む構成情報を応答する。
【０１３６】
ホスト装置３０は、プリンター１１から受信した構成情報に基づき、要求された条件でＵＳＢ通信接続を許可しうるか否かを判断し、セルフパワーなので、ＵＳＢ通信の確立を許可する。ホスト装置３０は、プリンター１１の構成情報をメモリーに書き込んでデバイス構成等を設定するとともに、図２に示すように、プリンター１１へ初期処理完了通知「SetConfiguration」を送信する。この結果、初期処理は成功する。また、ホスト装置３０は、構成情報中のクラス情報がプリンタークラスであることから、ＵＳＢデバイス１１Ａをプリンターと認識する。このため、ホスト装置３０は、印刷要求を受け付ければ、印刷データをプリンター１１へ送信する。
【０１３７】
ステップＳ５０では、セルフパワーでＵＳＢ通信処理を行う。セルフパワーなので、ホスト装置３０からの電源供給がないものの、ホスト装置３０から印刷データを受信すれば、その印刷データに基づく印刷処理をＵＳＢ通信処理の一つとして行う。このとき、プリンター１１は、ＡＣアダプター５０等の電源アダプターと接続されていれば、電源アダプターを通じて供給される電力で印刷動作を行い、電源アダプターと接続されていなければ、二次電池１４の電力で印刷動作を行う。
【０１３８】
このように、当初、バスパワーを要求する第１初期処理を行って、その初期処理に失敗すれば、セルフパワーに切り替え、セルフパワーを要求する第２初期処理を行うので、プリンター１１とホスト装置３０とのＵＳＢ通信を確立することができる。このため、ユーザーはホスト装置３０からの指示でプリンター１１に印刷処理を行わせることができる。例えば、第１初期処理を行って初期処理完了通知を受信できず、ＣＰＵ２４が待機状態になった場合、いつまで経ってもＵＳＢ通信が接続されないので、ユーザーはホスト装置３０からの指示でプリンター１１に印刷処理を行わせることができない。
【０１３９】
しかし、本実施形態によれば、初期処理の失敗時にセルフパワーに切り替えて、再度、初期処理を行うので、プリンター１１とホスト装置３０とをより確実にＵＳＢ接続させることができる。この結果、印刷できない不都合を回避し、ホスト装置３０からの指示でプリンター１１に印刷させることができる。
【０１４０】
また、電源ＯＦＦ中の充電処理でバスパワーを要求する第１初期処理に失敗した場合、その失敗の旨の値をメモリー２５に保存し、その後、電源ＯＮ時にメモリー２５から読み出した値が失敗の旨の値であれば、セルフパワーを要求する第２初期処理を行う。このため、一旦、第１初期処理を行って、失敗したらセルフパワーに切り替えて第２初期処理を再度行う手順をとる場合に比べ、プリンター１１とホスト装置３０とのＵＳＢ通信をより速やかに確立することができる。よって、ユーザーはＵＳＢケーブルを通じてプリンター１１とホスト装置３０とを接続した後、比較的速やかにホスト装置３０から指示した印刷をプリンター１１に行わせることができる。
【０１４１】
このＵＳＢ通信処理中において、ＣＰＵ２４は次の処理を行う。すなわち、ＵＳＢ通信処理中においては、ステップＳ５１で電源ＯＦＦ操作があったか否かの判断、ステップＳ５２でＵＳＢケーブルが抜かれたか否かの判断を、このうち１つの判断処理で肯定判定が得られるまで繰り返し実行する。例えばステップＳ５１で電源ＯＮ操作があれば、ステップＳ５３に進んで電源ＯＦＦ処理を行う。すなわち、電源スイッチ２０Ａの操作で第２スイッチ２７のオンを検知すると、ＣＰＵ２４は制御ＩＣ２２に指示して第３スイッチ２８を遮断させる。また、二次電池１４を電源としていた場合は、ＣＰＵ２４は制御ＩＣ２２に指示して第１スイッチ２６も遮断させる。この電源ＯＦＦ処理の終了後、ＣＰＵ２４は、その処理を、電源ＯＦＦ時の充電処理ルーチンへ移行させる。
【０１４２】
また、ステップＳ５２で、ＵＳＢケーブルが抜かれた場合（肯定判定）は、ステップＳ５４に進んで、メモリーを「成功」の旨の値に書き替えた後、当該ルーチンを終了する。この後は、プリンター１１は、ＡＣアダプター５０等の電源アダプターと接続されていれば、電源アダプターを通じて供給される電力で印刷動作を行い、電源アダプターと接続されていなければ、二次電池１４の電力で印刷動作を行う。また、このとき、ＵＳＢケーブル３５が抜かれることで、プリンター１１とホスト装置３０とのＵＳＢ通信は遮断される。このため、ＵＳＢケーブルが抜かれてホスト装置３０との接続が途絶えた後に、ホスト装置３０とＵＳＢ接続されたときには、再開されたＵＳＢ通信処理ルーチン（図１０）で、メモリーの値が「成功」（Ｓ４２で肯定判定）なので、バスパワーを要求する第１初期処理（Ｓ４５）が行われる。
【０１４３】
また、ＵＳＢケーブル３５が抜かれることなくホスト装置３０との接続を継続する状態で（Ｓ５２で否定判定）、電源ＯＦＦ操作があった場合（Ｓ５１で肯定判定）は、電源ＯＦＦ処理（Ｓ５３）の後に、電源ＯＦＦ時の充電処理ルーチン（図８）へ移行する。これによりプルアップ（Ｓ１３）によってホスト装置３０とプリンター１１とが再接続され、メモリーの値がこの電源ＯＦＦになる前の前回の電源オン状態で第１初期処理を完了した「成功」であれば、第１初期処理を行い（Ｓ４５）、一方、第１初期処理を失敗し第２初期処理を行っていた「失敗」であれば、充電は行われない（Ｓ１７）。
【０１４４】
バスパワーを要求する初期処理を失敗してセルフパワーで初期処理を行ってＵＳＢ通信が確立された状態でＵＳＢケーブル３５が接続されたまま電源ＯＦＦされた場合、メモリー２５には失敗の旨の値が保存されている。このため、図８に示す電源ＯＦＦ時の充電処理ルーチンにおいて、メモリー２５の値が失敗の旨の値なので（Ｓ１２で否定判定）、充電起動をオフにする（Ｓ１７）。このとき、プリンター１１の電源ＯＮ中のＵＳＢ通信処理を目的とする初期処理の失敗の旨の情報を利用するので、第１初期処理を試行することなく充電起動をオフさせる。例えば第１初期処理を行った際に、送られてくることのない初期処理完了通知をタイムアウトになるまで待ち続けることによるＣＰＵ２４の電力の浪費及び二次電池１４の残量の低減を抑制することができる。
【０１４５】
以上詳述した本実施形態によれば、以下に示す効果を得ることができる。
（１）制御回路１３は、電源スイッチ２０Ａがオフ状態でＵＳＢコネクター１２が接続している相手がＵＳＢバッテリーチャージャー４０（第１の装置の一例）であれば、初期処理（エニュメレーション）を行わずにＵＳＢコネクター１２が受け取った電力で二次電池１４を充電する。また、ＵＳＢコネクター１２が接続している相手がホスト装置３０（第２の装置の一例）であれば、制御回路１３は初期処理を行い、初期処理が完了した後に、二次電池１４を充電する。一方、ＵＳＢコネクター１２が接続している相手がホスト装置３０であり、初期処理に失敗したときは、二次電池１４の充電を行わない。よって、電源スイッチ２０Ａがオフ状態でＵＳＢコネクター１２が接続している相手がホスト装置３０であり、初期処理に失敗したときは、制御回路１３（特にＣＰＵ２４）の電源をオフすることができ、電池１４への充電をその開始前に中止できる。このため、初期処理が失敗しても長時間に亘って制御回路１３が起動状態のまま放置されることによる電気の浪費や電池１４の残量の低減を抑制することができる。
【０１４６】
（２）制御回路１３は、ＵＳＢコネクター１２が接続している相手を判定する制御ＩＣ２２（判定回路の一例）と、初期処理の少なくとも一部を実行するＣＰＵ２４（処理回路の一例）とを備える。ＵＳＢコネクター１２が接続している相手がＵＳＢバッテリーチャージャー４０（第１の装置の一例）と判定すれば、ＣＰＵ２４を電源オフ状態に維持する。また、ＵＳＢコネクター１２が接続している相手がホスト装置３０（第２の装置の一例）と判定すれば、ＣＰＵ２４を電源オン状態に移行させる。このため、電源オン状態に移行したＣＰＵ２４はホスト装置３０との間で初期処理を行うことができる。
【０１４７】
（３）初期状態において電源スイッチ２０Ａがオン状態でＵＳＢコネクター１２がホスト装置３０と接続した場合に、制御回路１３は、第２初期処理（セルフパワーを要求する初期処理）よりも大きな供給電力の要求を含む第１初期処理（バスパワーを要求する初期処理）を行う。第１初期処理が完了（成功）したのちに、二次電池１４に充電を行う。この充電は、第１初期処理が完了したのちに供給される相対的に大きな電力（第２電力）で行われる。つまり、この充電は、第２初期処理が完了したのちに供給される相対的に小さな電力（供給電力が零の場合も含む）よりも大きな電力（第２電力）の供給を受けて行われる。一方、制御回路１３は、第１初期処理を完了できず失敗したときは、より小さな供給電力を要求する第２初期処理を行う。よって、第１初期処理に失敗したときでも、第２初期処理を完了することができる。従って、制御回路１３は、ＵＳＢコネクター１２を介してホスト装置３０と通信を確立することができる。また、第２初期処理を完了できた後は、その小さな供給電力を用いて二次電池１４の充電は行われないので、供給電力が小さな割にプリンター１１が印刷処理等の処理を行う電力が比較的確保され易い。
【０１４８】
（４）制御回路１３は、第２初期処理を行った後、ホスト装置３０との接続が継続している場合には、第１初期処理を行わずに第２初期処理を行う。一方、第２初期処理を行った後、ホスト装置３０との接続が途絶えた後にホスト装置３０と接続した場合には、初期状態に戻って第１初期処理を開始する。このようにそのホスト装置３０が第１初期処理を一度失敗している同じ接続相手である場合、第１初期処理は行われず、第２初期処理が行われる。このため、制御回路１３が第１初期処理を一度失敗している同じホスト装置３０と行うことによる電力の浪費を抑制できる。一方、制御回路１３は、第２初期処理を行った後、ホスト装置３０との接続が途絶えた後にホスト装置３０と接続した場合は、初期状態に戻って第１初期処理を行う。このように制御回路１３の接続相手が第１初期処理を一度失敗したホスト装置と異なるホスト装置３０である可能性がある場合は、初期状態に戻って第１初期処理が行われる。このとき、第１初期処理に成功すれば、ホスト装置３０からの供給電力で二次電池１４の充電を行うことができる。よって、二次電池１４が充電される頻度を高めることができる。
【０１４９】
（５）制御回路１３は、第１初期処理を完了した後に、ホスト装置３０との接続が継続された状態で、電源スイッチ２０Ａがオフされた場合は、第１初期処理を行い、第１初期処理が完了したのちに、二次電池１４の充電を行う。このように電源オン状態で第１初期処理を成功した同じホスト装置３０とは電源オフ後に第１初期処理を行う。このため、第１初期処理を完了すれば、二次電池１４が充電され、第１初期処理を失敗すれば、二次電池１４の充電は行われない。一方、制御回路１３は、第２初期処理を行った後に、ホスト装置３０との接続が継続された状態で、電源スイッチ２０Ａがオフされた場合は、第１初期処理を行わず、二次電池１４の充電は行われない。このように電源オン状態で第１初期処理に失敗し、第２初期処理を行った場合は、第１初期処理を失敗した同じホスト装置３０と電源オフ後に第１初期処理を行わないことで、二次電池１４の充電は行われない。よって、電源スイッチ２０Ａがオフされた際に、制御回路１３が第１初期処理を一度失敗している同じホスト装置３０と第１初期処理を行うことによる電力の浪費を抑制できる。
【０１５０】
（６）制御回路１３は、電源スイッチ２０Ａがオンされる前のオフ状態で行われた第１初期処理を完了できた成功か、第１初期処理を完了できず第２初期処理を行った失敗かを示す値を不揮発性メモリー２５に記憶する。電源スイッチ２０Ａがオンされた後、不揮発性メモリー２５の第２記憶領域２５Ｂの記憶内容が成功の旨の値であれば、第１初期処理を行う。一方、不揮発性メモリー２５の第２記憶領域２５Ｂの記憶内容が失敗の旨の値であれば、第１初期処理を行わずに第２初期処理が行われ、二次電池１４の充電は行われない。よって、第１初期処理を失敗した後に、ホスト装置３０との接続が継続された状態で、電源スイッチ２０Ａがオンされた場合に、制御回路１３が電源オフ状態で一度失敗している同じホスト装置３０と第１初期処理を行うことによる電力の浪費を抑制することができる。
【０１５１】
（７）初期状態においてＵＳＢコネクター１２がホスト装置３０と接続した場合に、制御回路１３は、第１初期処理を行い、第１初期処理が完了したのちに、二次電池１４に充電を行う。第１初期処理に失敗したときは、二次電池１４に充電を行わない。また、第１初期処理が完了してホスト装置３０との接続が継続している状態でホスト装置３０と再接続を行う場合には、第１初期処理を行い、第１初期処理が完了したのちに、二次電池１４に充電が行われる。一方、第１初期処理が失敗してホスト装置３０との接続が継続している状態でホスト装置３０と再接続を行う場合には、第１初期処理を行わず、電池に充電を行わない。よって、第１初期処理を失敗している同じホスト装置３０と再接続する場合に、制御回路１３が第１初期処理を失敗している同じホスト装置３０と第１初期処理を行うことによる電力の浪費を抑制できる。
【０１５２】
（８）制御回路１３は、ホスト装置３０との接続が途絶えた後にホスト装置３０と接続した場合には、ホスト装置３０との接続が途絶える前に第１初期処理が完了（成功）したか失敗したかに関わらず、初期状態に戻って、第１初期処理を開始する。よって、ホスト装置３０との接続が途絶えた後にホスト装置３０と接続した場合は、その接続相手は、接続が途絶える前のホスト装置３０と異なる可能性（第１初期処理が成功する可能性）があるので、初期状態に戻って第１初期処理が行われる。第１初期処理に成功すれば、二次電池１４への充電が可能になる。例えば第１初期処理を失敗したホスト装置３０と接続が途絶え、次に接続したホスト装置３０がそれまでのホスト装置と異なる可能性があるにも拘らず、第１初期処理を行わず、充電の機会を逸することを回避できる。よって、二次電池１４が充電される頻度を高めることができる。
【０１５３】
（９）制御回路１３は、プリンター１１の電源がオン状態であれば、プリンター（第１種の装置の一例）である旨のクラス情報（プリンタークラス（第１のクラス））の通知をすることで、プリンターとして第１初期処理を行う。一方、プリンター１１の電源がオフ状態であれば、プリンターと異なるヒューマンインターフェイスデバイス（ＨＩＤ）（第２種の装置の一例）である旨のクラス情報（ＨＩＤクラス（第２のクラス））の通知をすることで、ＨＩＤとして第１初期処理を行う。よって、ホスト装置３０は、電源オン状態にあるプリンター１１をプリンターと認識し、プリンターとして扱う。一方、ホスト装置３０は、電源オフ状態にあるプリンター１１をＨＩＤと認識し、ＨＩＤとして扱う。よって、電源オン状態にあるプリンター１１をＨＩＤと認識して印刷ができなくなる不都合や、電源オフ状態にあるプリンター１１をプリンターと認識して電源オフ中であるにも拘らず印刷データを送信するなどの不都合を回避できる。
【０１５４】
（１０）制御回路１３は、プリンター１１の電源がオン状態の下で行った第１初期処理に失敗したときに、第１初期処理よりも小さい電力要求を含む第２初期処理を行う。第２初期処理が完了してホスト装置３０との接続が継続している状態で、ホスト装置３０と再接続を行う場合には、プリンター１１の電源がオン状態であれば、第１初期処理を行わずに第２初期処理を行う。よって、第２初期処理が完了してホスト装置３０との接続が継続している状態でホスト装置３０と再接続を行う場合は、同じホスト装置３０と一度失敗した第１初期処理を行わず第２初期処理を行う。よって、一度失敗している第１初期処理を行うことによる制御回路１３の電力の浪費を抑制できるうえ、第１初期処理を省く分だけ早期に印刷開始可能状態となり、再接続後の印刷を早期に開始させることができる。
【０１５５】
（１１）制御回路１３は、ホスト装置３０との初期処理においてタイムアウトが発生した場合に、第１初期処理に失敗したと判断する。このため、タイムアウトを考慮することなく初期処理完了通知を受信するまで待機する構成である場合に比べ、早期に第２初期処理を行うことができるので、ホスト装置３０とプリンター１１との通信を早期に確立することができる。
【０１５６】
（１２）制御回路１３は、タイムアウトと判定する際に用いるタイムアウト時間Ｔ１を、ホスト装置３０のＢＩＯＳ起動所要時間（起動所要時間の一例）に応じて設定する。よって、ＵＳＢコネクター１２が接続しているホスト装置３０が起動途中の状態にあっても、その起動後のホスト装置３０と初期処理を行ってホスト装置３０からの電源供給により第２電力（例えば電流値５００ｍＡ）で二次電池１４を充電することができる。このため、ホスト装置３０の起動所要時間に合っていない短過ぎるタイムアウト時間が設定されているために、ホスト装置３０の起動途中でタイムアウトと判定されてしまい、少し待てば充電できたにも拘らず少し早くに失敗としたために充電されない不都合を減らすことができる。従って、二次電池１４が充電される頻度を高めることができる。
【０１５７】
（１３）特にタイムアウト時間Ｔ１を、接続が想定される複数種のホスト装置３０の起動所要時間のうち最長時間のものに所定のマージン時間を加えて設定している。よって、少し待てば充電できたにも拘らず短過ぎるタイムアウト時間によりホスト装置３０の起動途中でタイムアウトになって第１初期処理が失敗と判断されたために、二次電池１４を充電できなくなる事態を極力抑えることができる。このため、二次電池１４が充電される頻度を一層高めることができる。
【０１５８】
（１４）電源ＯＦＦ時の初期処理におけるタイムアウト時間Ｔ１１よりも、電源ＯＮ時のタイムアウト時間Ｔ１２の方を短く設定している。よって、電源ＯＦＦ中は二次電池１４の充電の頻度を高めることができ、電源ＯＮ中はユーザーがホスト装置３０からプリンター１１に指示した処理の開始遅れを短く抑えることができる。
【０１５９】
（第２実施形態）
次に図１１を参照して第２実施形態を説明する。本実施形態では、タイムアウトに加え、他の方法によっても、ＣＰＵ２４が第１初期処理を失敗と判断する。なお、プリンター１１の構成は第１実施形態と同様であり、ＣＰＵ２４が実行する初期処理の失敗の判定方法が一部異なるだけなので、第１実施形態と共通の構成及び共通の処理については同一の符号を用いてその説明を省略し、特に異なる部分についてのみ説明する。
【０１６０】
本実施形態では、初期処理の失敗を、第１実施形態と同様のタイムアウトの発生に加え、ホスト装置３０のサスペンド状態（一時停止状態）への移行によっても判断する。ホスト装置３０の種類によってはＵＳＢ接続中においてＳＯＦ（スタートオブフレーム）信号を定期的（例えば１ミリ秒未満の所定時間毎）にプリンター１１に送信する。ＳＯＦ信号は、例えば１０マイクロ秒〜１ミリ秒の範囲内の一定時間Ｔｏの間隔毎にホスト装置３０からプリンター１１へ送信される信号である。
【０１６１】
このため、初期処理中においてもホスト装置３０からプリンター１１へＳＯＦ信号が送信される。そして、ホスト装置３０は、第１初期処理においてプリンター１１から受信した構成情報に含まれるバスパワーでの要求電力（第２電力）を許可できない場合、構成情報の設定を行わず、サスペンド状態に移行する。このサスペンド状態への移行の際、ホスト装置３０は、プリンター１１へのＳＯＦ信号の送信を停止する。
【０１６２】
プリンター１１内の制御回路１３を構成するＣＰＵ２４は、ホスト装置３０とのＵＳＢ接続中においてホスト装置３０から送られてくるはずのＳＯＦ信号が途絶えて送られてこなくなると、ホスト装置３０がサスペンド状態へ移行し、第１初期処理が失敗したとみなす。電源ＯＦＦ時の充電処理においては、ＣＰＵ２４は、ホスト装置３０から送られてくるはずのＳＯＦ信号が設定時間Ｔ２の間、途絶えて送られてこなくなると、ホスト装置３０がサスペンド状態へ移行して第１初期処理が失敗したとみなす。
【０１６３】
この場合、電源ＯＦＦ時の充電処理（図８）中であれば、第１初期処理を失敗すると、その失敗の旨を不揮発性メモリー２５に書き込んだ（Ｓ１６）後、ＣＰＵ２４の電源をオフにする（Ｓ１７の充電起動オフ）。また、電源ＯＮ時のＵＳＢ通信処理（図１０）中であれば、第１初期処理を失敗すると、その失敗の旨を不揮発性メモリー２５に書き込んでセルフパワーに切り替えるとともに（Ｓ４７）、再接続処理（Ｓ４８）を行った後、セルフパワーを要求する第２初期処理を実行する（Ｓ４９）。
【０１６４】
設定時間Ｔ２は、例えば１〜１０ミリ秒の範囲内でかつＴ２＞Ｔｏを満たす一定時間に設定されている。つまり、ＳＯＦ信号が途絶えて設定時間Ｔ２以上アイドル状態になった時点で、第１初期処理を失敗したと判断する。
【０１６５】
次に図１１を参照して、本実施形態のプリンター１１の作用を説明する。図１１においてステップＳ３１〜Ｓ３４の各処理は、第１実施形態における図９で示されたステップＳ３１〜Ｓ３４の各処理と同様である。
【０１６６】
ステップＳ３１でタイマーの計時を開始する。ステップＳ３２では、バスパワーを要求する初期処理（第１初期処理）を行い、ホスト装置３０からの要求に対してクラス情報（例えば「ＨＩＤ」）と、パワーモード情報（「バスパワー」）と、要求電力情報（第２電力（電流値で５００ｍＡ））とが含まれる構成情報を送信する。
【０１６７】
ステップＳ３３では、初期処理完了通知を受信したか否かを判断する。ここで、ホスト装置３０は、初期処理において受信した構成情報中で要求された第２電力での電源供給を許可できるか否かを判断する。ホスト装置３０は、第２電力での電源供給を許可できる場合は、その構成情報を設定するとともに初期処理完了通知「SetConfiguration」をプリンター１１に送信する。そして、プリンター１１のＣＰＵ２４は、初期処理完了通知を受信しなければステップＳ３４に進み、初期処理完了通知を受信して第１初期処理を成功すれば、ステップＳ１５（図８の充電処理ルーチン）又はＳ４６（図１０のＵＳＢ通信処理ルーチン）に進む。
【０１６８】
初期処理完了通知を受信しない場合（Ｓ３３で否定判定）は、ステップＳ３４において、タイムアウトか否かを判断する。すなわち、タイマー２４Ａの計時時間Ｔがタイムアウト時間Ｔ１に達したか否かを判断する。タイムアウトでなければステップＳ３５に進み、一方、タイムアウトであれば、第１初期処理の失敗とみなし、ステップＳ１６（図８の充電処理ルーチン）又はＳ４７（図１０のＵＳＢ通信処理ルーチン）に進む。
【０１６９】
ステップＳ３５では、ＳＯＦ信号の受信が設定時間Ｔ２以上ないか否かを判断する。つまり、ＣＰＵ２４は、ＵＳＢ接続中はホスト装置３０から送られてくるはずのＳＯＦ信号の受信が設定時間Ｔ２以上途絶えたアイドル状態になったか否かを判断する。ＳＯＦ信号の受信が途切れたアイドル状態が設定時間Ｔ２に達していなければステップＳ３３に戻り、そのアイドル状態が設定時間Ｔ２以上継続すれば、第１初期処理の失敗とみなし、ステップＳ１６（図８）又はＳ４７（図１０）に進む。
【０１７０】
こうして初期処理完了通知を受信するか（Ｓ３３）、タイムアウトになるか（Ｓ３４）、ＳＯＦ信号の受信が設定時間Ｔ２以上ないか（Ｓ３５）の各判定処理のうちいずれか１つが成立するまで、ステップＳ３３，Ｓ３４，Ｓ３５の各処理を繰り返す。
【０１７１】
タイムアウトになる前（Ｓ３４で否定判定）に、ＳＯＦ信号の受信が設定時間Ｔ２以上途切れることなく（Ｓ３５で否定判定）、初期処理完了通知を受信すれば（Ｓ３３で肯定判定）、第１初期処理が完了し、これをもって第１初期処理の成功とする。第１初期処理が成功した場合、電源ＯＦＦ時の充電処理中であれば、ステップＳ１５に進んで、第２電力で二次電池１４を充電する。一方、電源ＯＮ時のＵＳＢ通信処理中であれば、ステップＳ４６に進んで、ＵＳＢ通信処理と充電とを行う。
【０１７２】
一方、タイムアウトになる前（Ｓ３４で否定判定）に、初期処理完了通知を受信することなく（Ｓ３３で否定判定）、ＳＯＦ信号の受信が設定時間Ｔ２以上途切れると（Ｓ３５で肯定判定）、第１初期処理が失敗したとみなす。また、初期処理完了通知を受信することなく（Ｓ３３で否定判定）、かつＳＯＦ信号の受信が設定時間Ｔ２以上途切れることなく（Ｓ３５で否定判定）、タイムアウトになると（Ｓ３４で肯定判定）、第１初期処理が失敗したとみなす。第１初期処理が失敗した場合、電源ＯＦＦ時の充電処理（図８）中であれば、不揮発性メモリー２５に失敗の旨を書き込んだうえ（Ｓ１６）、ＣＰＵ２４の充電起動をオフする（Ｓ１７）。一方、電源ＯＮ時のＵＳＢ通信処理（図１０）中であれば、ステップＳ４６に進んで、ＵＳＢ通信処理と充電とを行う。
【０１７３】
この第２実施形態によれば、第１実施形態と同様の効果が得られるうえ、更に以下に示す効果が得られる。
（１５）プリンター１１のＣＰＵ２４は、ＵＳＢ接続中はホスト装置３０から定期的に送られてくるはずのＳＯＦ信号が設定時間Ｔ２以上なくなると、第１初期処理が失敗したと判断する。このため、ＣＰＵ２４の起動時点からタイムアウト時間Ｔ１を待つことなく、第１初期処理の失敗をほぼリアルタイムに検出できる。このため、電源０ＦＦ時の充電処理においては、タイムアウトを待つことなく第１初期処理の失敗を早期に検出し、失敗の検出時点でＣＰＵ２４等の充電起動を早期にオフさせることができる。このため、タイムアウトをもって第１初期処理の失敗とする構成に比べ、ＣＰＵ２４等の電力の浪費を一層抑制することができる。例えば制御回路１３が起動状態に放置されることによる二次電池１４の残量の低減を一層抑制できる。また、電源ＯＮ時のＵＳＢ通信処理においては、タイムアウトを待つことなく第１初期処理の失敗を早期に検出し、セルフパワーを要求する初期処理（第２初期処理）を早期に開始できる。この結果、タイムアウトのみを失敗とする前記第１実施形態の構成に比べ、プリンター１１が早期にＵＳＢ通信処理を開始できる。例えばユーザーがホスト装置３０から指示した印刷をプリンター１１に早期に開始させることができる。
【０１７４】
（１６）第１初期処理の失敗の判定方法として、ホスト装置３０から定期的に送られてくるはずのＳＯＦ信号が設定時間Ｔ２以上ないか否かの判定と、ＣＰＵ２４の起動時点からタイムアウト時間Ｔ１を経過したか否かの判定との複数種の判定方法を用いている。よって、ＳＯＦ信号を送信する機能を有するホスト装置が接続相手である場合、第１初期処理の失敗をほぼリアルタイムに検出でき、ＳＯＦ信号を送信する機能を有しないホスト装置であっても、タイムアウトをもって第１初期処理の失敗を検出できる。
【０１７５】
なお、上記各実施形態は以下のような形態に変更したり、これらを組み合わせたりすることもできる。
・ユーザーの動作環境に応じてタイムアウト時間を変更できるようにしてもよい。データの入力のために操作される操作部の一例としての操作スイッチ２０Ｂを備え、制御回路１３は、タイムアウトと判定する際に用いるタイムアウト時間Ｔ１を、操作スイッチ２０Ｂの操作による入力結果に基づき設定できる構成としてもよい。この場合、操作スイッチ２０Ｂの操作によりタイムアウト時間Ｔ１を数値で入力設定してもよいし、タイムアウト時間Ｔ１の選択肢の中から所望の一つを選択する構成としてもよい。この構成によれば、操作スイッチ２０Ｂを操作した入力結果に基づき、ユーザーが使用環境に合った適切なタイムアウト時間Ｔ１を設定することができる。よって、使用されるホスト装置３０のＢＩＯＳ起動所要時間に合っていない短過ぎるタイムアウト時間が変更不能な状態で設定されているために、少し待てば充電できるにも拘らず、少し早くに失敗としたためにホスト装置３０の起動途中でタイムアウトと判断されてしまい充電されない不都合を低減できる。この結果、二次電池１４が充電される頻度を高めることができる。
【０１７６】
・タイムアウト時間Ｔ１を一定値としたが可変としてもよい。制御回路１３は、ＵＳＢコネクター１２が接続している相手が第２の装置の一例であるホスト装置３０であるときは、ホスト装置３０から起動所要時間情報を取得するか、又はホスト装置３０の起動所要時間を制御回路１３内のタイマーで計時するかして取得し、その取得した起動所要時間に応じてタイムアウト時間Ｔ１を設定してもよい。この構成によれば、制御回路１３は、取得した起動所要時間に応じたタイムアウト時間Ｔ１を設定できるので、ユーザーの使用環境に合った適切なタイムアウト時間Ｔ１を設定することができる。このため、ホスト装置３０の起動所要時間に合っていない短過ぎるタイムアウト時間が設定されているために、ホスト装置３０の起動途中でタイムアウトと判断されてしまい、もう少し待てば充電できたにも拘らず、少し早くにタイムアウト（失敗）になったために、充電されない不都合を減らすことができる。この結果、電池１４が充電される頻度を高めることができる。また、制御回路１３は、最大Ｍ個の起動所要時間のデータをメモリー２５に記憶し、新規の起動所要時間を取得する度にＭ個を超える過去のデータのうち一番旧いデータを消去し、Ｍ個のうち最も長い起動所要時間に応じてタイムアウト時間を設定する。また、過去Ｍ個のうち予め設定された最長設定時間を超えるデータは採用せず、最長設定時間以下の起動所要時間のデータのうち最も長い起動所要時間に応じてタイムアウト時間Ｔ１を設定してもよい。これらの構成であれば、ユーザーがたまたま１回だけ起動所要時間の非常に長いホスト装置３０をプリンター１１に接続したために、そのホスト装置３０の非常に長い起動所要時間に基づく長過ぎるタイムアウト時間が設定されることを回避し、適切なタイムアウト時間Ｔ１を設定できる。
【０１７７】
・制御回路１３は、二次電池１４の残量又は残量の変化を示す値を計測し、二次電池１４の残量又は残量の変化を示す値が閾値を超えると、初期処理に失敗したと判断してもよい。この場合、二次電池の残量の変化を示す値は、変化量でもよいし変化率でもよい。この構成によれば、制御回路１３は、二次電池１４の残量又は残量の変化を示す値（例えば変化量又は変化率）が閾値を超えたことをもって、初期処理に失敗したと判断する。このため、タイマー等の計時手段を用いなくても初期処理の失敗を判定することができる。また、残量の変化率を用いた場合、二次電池１４の残量が相対的に少ないときは相対的に早めに初期処理の失敗と判断され、二次電池１４の残量が相対的に多いときは相対的に遅めに初期処理の失敗と判断される。このため、二次電池１４の残量が少ないにも拘らず、初期処理の失敗の判断が遅れて残量が極めて少なくなる事態を回避し易い。また、二次電池１４の残量に応じてタイムアウト時間Ｔ１を設定した場合、例えば二次電池１４の残量が閾値未満と少ない場合はタイムアウト時間Ｔ１を相対的に短く設定し、その残量が多い場合はタイムアウト時間Ｔ１を相対的に長く設定してもよい。
【０１７８】
・タイムアウト時間Ｔ１は、接続が想定される複数種のホスト装置３０のうち最も長い起動所要時間（ＢＩＯＳ起動所要時間）に応じた値に設定することが好ましいが、ホスト装置のＢＩＯＳ起動所要時間と同じ時間又はＢＩＯＳ起動所要時間よりも短い時間を設定してもよい。例えばＢＩＯＳ起動所要時間の１／２又は１／３の時間でもよい。また、ＢＩＯＳ起動所要時間を考慮しないタイムアウト時間Ｔ１を設定してもよい。例えばタイムアウト時間Ｔ１をエニュメレーション所要時間以上、エニュメレーション所要時間に所定のマージン時間（例えば１〜１０秒）を加えた時間以下の値に設定してもよい。
【０１７９】
・計時時間Ｔの計時開始時期は、ＣＰＵの起動時点（充電起動オン時点）に限定されない。例えばＵＳＢ接続時点（例えばＵＳＢ接続検出時点）に、タイマー２４Ａの計時を開始してもよい。この場合、例えば制御ＩＣ２２内のタイマー（例えばカウンター）により計時を行えば、ＣＰＵの起動前であっても計時を開始できる。また、ＣＰＵ起動時点から所定時間経過時点にタイマーの計時を開始させてもよい。例えば構成情報の送信時点からタイマーによる計時を開始してもよい。
【０１８０】
・第２実施形態において、ホスト装置３０が、ＵＳＢ接続中に定期的にＳＯＦ信号をＵＳＢデバイス１１Ａに送信することが前提であれば、図１１に示すフローチャートにおいてタイムアウトであるか否かを判断する処理（Ｓ３４）を廃止してもよい。
【０１８１】
・初期状態がバスパワーであれば、操作スイッチ２０Ｂの操作でパワーモードを設定するユーザー設定は無くてもよい。また、第１初期処理の成功／失敗の旨を不揮発性メモリーに保存する構成は廃止してもよい。この場合、初期処理はまず第１初期処理を行い、第１初期処理に失敗したら、第２初期処理を行う。
【０１８２】
・図１０において、電源ＯＮ中にＵＳＢ通信処理と充電とを行ったが、充電を行わない構成としてもよい。
・前記各実施形態では、第１初期処理がバスパワー、第２初期処理がセルフパワーをそれぞれ要求する構成としたが、第１初期処理及び第２初期処理が共にバスパワーを要求し、かつ第２初期処理が第１初期処理よりも小さな供給電力の要求を含むものであってもよい。例えば第１初期処理がバスパワーかつ５００ｍＡで、第２初期処理がバスパワーかつ１００ｍＡであってもよい。
【０１８３】
・電子機器が外部装置から供給を受けた電力は、二次電池１４の充電への使用に限定されない。電子機器が例えばプリンターである場合、外部装置から供給された電力を、例えば印刷機構１６の印刷動作に使用してもよい。また、電子機器が例えばスキャナー装置である場合、外部装置から供給された電力を、例えば原稿の読取り動作に使用してもよい。
【０１８４】
・電源がＯＮからＯＦＦへ、又はＯＦＦからＯＮへ切り換えられた場合、仮に制御回路が外部装置との接続を継続していても初期状態に戻してもよい。
・ＵＳＢ規格はＵＳＢ２．０に限定されることなく、ＵＳＢ３．０、ＵＳＢ３．１に適用してもよい。また、ＵＳＢ１．０やＵＳＢ１．１に適用してもよい。また、ＵＳＢ規格に限定されず、他の通信規格に適用してもよい。要するに、ホスト装置と電子機器との間で初期処理が行われ、初期処理完了通知（ＵＳＢ規格の「Set Configuration」に相当する通知）の受信をトリガーにして初期処理が完了し、この初期処理の完了をもってホスト装置から充電に必要な電力の供給を受ける構成であれば、他の通信規格でもよい。例えばＩＥＥＥ１３９４、ＳＣＳＩ（Small Computer System Interface）、ＡＴＡ（Advanced Technology Attachment）でもよい。また、通信方式は有線通信方式に限定されず、ホスト装置から電子機器への電源供給が可能な限りにおいて無線通信方式でもよい。
【０１８５】
・電源スイッチ２０Ａは、プッシュ式に限定されず、トグル式でもよい。その他、電源のオンとオフを切り替え可能に操作されるスイッチであればよい。また、センサー式の電源スイッチでもよく、接触センサー式又は非接触センサー式の電源スイッチでもよい。
【０１８６】
・制御回路を、ハードウェアで構成される制御ＩＣ２２と、プログラムを実行するＣＰＵによるソフトウェアとを備えた構成としたが、制御ＩＣ２２やＡＳＩＣ等の電子回路によりハードウェアで実現したり、ソフトウェアのみにより実現したりしてもよい。
【０１８７】
・プリンター（印刷装置）は、印刷専用機に限らず、コピー機能やスキャナー機能を備えた複合機であってもよい。さらに、プリンターは、シリアルプリンター、ラインプリンターの他、ページプリンターのいずれであってもよい。また、プリンターは、携帯型、小型、中型プリンター及び大型プリンターでもよい。例えばビジネス用プリンターや大判プリンターでもよい。
【０１８８】
・電子機器は、プリンター（複合機を含む。）に限らず、スキャナー、プロジェクター、デジタルカメラ（撮影装置）、デジタルオーディオ装置（音響機器）などであってもよい。
【符号の説明】
【０１８９】
１１…電子機器の一例としてのプリンター、１２…通信回路の一例としてのＵＳＢコネクター、１３…制御回路、１４…充電式の電池の一例としての二次電池、１５…駆動回路、１６…印刷機構、２０Ａ…電源スイッチ、２０Ｂ…操作部の一例としての操作スイッチ、２２…判定回路の一例としての制御ＩＣ、２３…電源回路、２４…処理回路の一例としてのＣＰＵ、２５…メモリー、２６…第１スイッチ、３０…外部装置及び第２の装置の一例としてのホスト装置、３５…通信ケーブルの一例としてのＵＳＢケーブル、４０…外部装置及び第１の装置の一例としてのＵＳＢバッテリーチャージャー、Ｔ１…タイムアウト時間の一例としての設定タイムアウト時間、Ｔ２…設定時間。
【図１】
0006364991.tif 000002
【図２】
0006364991.tif 000003
【図３】
0006364991.tif 000004
【図４】
0006364991.tif 000005
【図５】
0006364991.tif 000006
【図６】
0006364991.tif 000007
【図７】
0006364991.tif 000008
【図８】
0006364991.tif 000009
【図９】
0006364991.tif 000010
【図１０】
0006364991.tif 000011
【図１１】
0006364991.tif 000012