(57)【要約】【課題】ＵＳＢホストが、不揮発性メモリ書換えデータのダウンロードを指示するベンダリクエストをサポートすることで、ＵＳＢ接続された周辺装置の不揮発性メモリをオンボードにて書換え可能にする。【解決手段】ＰＣ１の保守プログラム５は、記憶部３の書換えデータ２をプリンタ８にダウンロードするベンダリクエストの作成および送信をＵＳＢホストドライバ６０に指示し、プリンタ８の不揮発性メモリ書換えプログラム１３は、ＵＳＢホストコントローラ７、ＵＳＢファンクションコントローラ１８、ＵＳＢファンクションドライバ９０を介して受信した書換えデータ２で不揮発性メモリ１０のデータを書換える。また、書換え制御プログラム１４が電源監視部１１、操作／表示部１２による特定の操作を検出することで不揮発性メモリ書換えプログラム１３を制御して書換えデータ２のダウンロードおよび不揮発性メモリ１０の書換えを行う。【選択図】  図１
2004288005.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに格納された所定の制御プログラムデータにより制御され、ホストとＵＳＢインタフェースにより接続される印刷装置において、
前記制御プログラムデータを書き替えるための固有のベンダリクエストを設定する設定手段と、
前記ホストから前記ＵＳＢインタフェースを介して前記設定手段で設定されたベンダリクエストを受信するベンダリクエスト受信手段と、
前記ＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御するデータ受信禁止制御手段と、
前記ベンダリクエスト受信手段で前記ベンダリクエストを受信し、かつ前記データ受信禁止制御手段により他のインタフェースからのデータ受信禁止状態に制御された後に、前記ホストから送信される制御プログラムデータを受信して該受信した制御プログラムデータで前記不揮発性メモリに格納された制御プログラムデータを書き替える制御プログラムデータ書替制御手段と
を具備することを特徴とする印刷装置。
【請求項２】
前記ホストから受信した制御プログラムデータが正しいか否かを確認する確認手段
を更に具備し、
前記確認手段により前記ホストから受信した制御プログラムデータが正しいと確認されたことを条件に該ホストから受信した制御プログラムデータで前記不揮発性メモリに格納された制御プログラムデータを書き替える
ことを特徴とする請求項１記載の印刷装置。
【請求項３】
前記データ受信禁止制御手段は、
前記ベンダリクエスト受信手段により前記ベンダリクエストを受信することにより、前記ＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御する
ことを特徴とする請求項１記載の印刷装置。
【請求項４】
操作パネルの特定のスイッチを押下状態で電源スイッチを投入されたことを検出する検出手段
を更に具備し、
前記受信手段は、
前記検出手段の検出出力に基づきによる前記ベンダリクエストの受信可能状態に設定される
ことを特徴とする請求項１記載の印刷装置。
【請求項５】
操作パネルの特定のスイッチを押下状態で電源スイッチを投入されたことを検出する検出手段
を更に具備し、
前記データ受信禁止制御手段は、
前記検出手段の検出出力に基づき前記ＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御する
ことを特徴とする請求項１記載の印刷装置。
【請求項６】
不揮発性メモリに格納された所定の制御プログラムデータにより制御され、ホストとＵＳＢインタフェースにより接続される印刷装置の制御方法において、
前記制御プログラムデータを書き替えるための固有のベンダリクエストを前記ホストから前記ＵＳＢインタフェースを介して受信するとともに、
前記ＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御し、
前記ベンダリクエストを受信し、かつ前記他のインタフェースからのデータ受信禁止状態に制御された後に、前記ホストから送信される制御プログラムデータを受信して該受信した制御プログラムデータで前記不揮発性メモリに格納された制御プログラムデータを書き替える
ことを特徴とする印刷装置の制御方法。
【請求項７】
前記ホストから受信した制御プログラムデータが正しいか否かを確認し、
該確認により前記ホストから受信した制御プログラムデータが正しいことを条件に該ホストから受信した制御プログラムデータで前記不揮発性メモリに格納された制御プログラムデータを書き替える
ことを特徴とする請求項６記載の印刷装置の制御方法。
【請求項８】
前記ホストから前記ベンダリクエストを受信することにより、前記ＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御する
ことを特徴とする請求項６記載の印刷装置の制御方法。
【請求項９】
操作パネルの特定のスイッチを押下状態で電源スイッチを投入されたことを検出し、
該検出に基づきに前記ホストからの前記ベンダリクエストの受信可能状態に設定する
ことを特徴とする請求項６記載の印刷装置の制御方法。
【請求項１０】
操作パネルの特定のスイッチを押下状態で電源スイッチを投入されたことを検出し、
該検出に基づき前記ＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御する
ことを特徴とする請求項６記載の印刷装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ホストに複数の周辺装置をＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）方式により接続して周辺装置機器を制御するシステムおよび方法であって、特に、ホストから送信されるベンダリクエストにより周辺装置のデータ書換えを指示し、書換えデータを送信する通信路を確保する印刷装置およびその制御方法に関する。
【０００２】
【従来の技術】
従来におけるＵＳＢ方式を使用した周辺装置の制御システムおよび制御方法に関する技術として、特許文献１記載の「周辺機器制御システム」にて開示されている。
【０００３】
この特許文献１記載の発明は、デバイスディスクリプタの切替えを要求するベンダリクエストをホストおよび周辺装置にサポートすることで、ホストのデバイスドライバを複雑化することなく複数種類のデバイスに対応したＵＳＢの通信路を確保し、周辺装置との間で、各種デバイス用の通信路、デバック・メンテナンス用の通信路の切替えを可能としている。
【０００４】
【特許文献１】
特開２００１−２２２５０３号公報。
【０００５】
【発明が解決しようとする課題】
ところで、上記特許文献１記載の発明を適用して、ＵＳＢ接続された周辺装置をデバック、もしくはメンテナンスする際、デバック・メンテナンス通信路による周辺装置とのデータ送受信は可能であるが、周辺装置が不揮発性メモリに記憶した制御情報および制御プログラムによって動作する機器の場合、ＵＳＢのデバック・メンテナンス通信路を使用した不揮発性メモリの書換えまでは対応することができない。
【０００６】
従って、周辺装置を分解して不揮発性メモリを書換えなければならいという手間が生じてしまう。
【０００７】
この発明は、ＵＳＢ接続された周辺装置（印刷装置）、特に、不揮発性メモリに記憶した制御情報、制御プログラムにて稼動する周辺装置に対し、データ書換えのベンダリクエストをサポートすることにより、オンボードでの不揮発性メモリの書換えを可能とする印刷装置およびその制御方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成する為に、請求項１の発明は、不揮発性メモリに格納された所定の制御プログラムデータにより制御され、ホストとＵＳＢインタフェースにより接続される印刷装置において、制御プログラムデータを書き替えるための固有のベンダリクエストを設定する設定手段と、ホストからＵＳＢインタフェースを介して設定手段で設定されたベンダリクエストを受信するベンダリクエスト受信手段と、ＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御するデータ受信禁止制御手段と、ベンダリクエスト受信手段でベンダリクエストを受信し、かつデータ受信禁止制御手段により他のインタフェースからのデータ受信禁止状態に制御された後に、ホストから送信される制御プログラムデータを受信して受信した制御プログラムデータで不揮発性メモリに格納された制御プログラムデータを書き替える制御プログラムデータ書替制御手段とを具備することを特徴とする。
【０００９】
また、請求項２の発明は、請求項１の発明において、ホストから受信した制御プログラムデータが正しいか否かを確認する確認手段を更に具備し、確認手段によりホストから受信した制御プログラムデータが正しいと確認されたことを条件にホストから受信した制御プログラムデータで不揮発性メモリに格納された制御プログラムデータを書き替えることを特徴とする。
【００１０】
また、請求項３の発明は、請求項１の発明において、データ受信禁止制御手段は、ベンダリクエスト受信手段によりベンダリクエストを受信することにより、ＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御することを特徴とする。
【００１１】
また、請求項４の発明は、請求項１の発明において、操作パネルの特定のスイッチを押下状態で電源スイッチを投入されたことを検出する検出手段を更に具備し、受信手段は、検出手段の検出出力に基づきによるベンダリクエストの受信可能状態に設定されることを特徴とする。
【００１２】
また、請求項５の発明は、請求項１の発明において、操作パネルの特定のスイッチを押下状態で電源スイッチを投入されたことを検出する検出手段を更に具備し、データ受信禁止制御手段は、検出手段の検出出力に基づきＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御することを特徴とする。
【００１３】
また、請求項６の発明は、不揮発性メモリに格納された所定の制御プログラムデータにより制御され、ホストとＵＳＢインタフェースにより接続される印刷装置の制御方法において、制御プログラムデータを書き替えるための固有のベンダリクエストをホストからＵＳＢインタフェースを介して受信するとともに、ＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御し、ベンダリクエストを受信し、かつ他のインタフェースからのデータ受信禁止状態に制御された後に、ホストから送信される制御プログラムデータを受信して受信した制御プログラムデータで不揮発性メモリに格納された制御プログラムデータを書き替えることを特徴とする。
【００１４】
また、請求項７の発明は、請求項６の発明において、ホストから受信した制御プログラムデータが正しいか否かを確認し、確認によりホストから受信した制御プログラムデータが正しいことを条件にホストから受信した制御プログラムデータで不揮発性メモリに格納された制御プログラムデータを書き替えることを特徴とする。
【００１５】
また、請求項８の発明は、請求項６の発明において、ホストからベンダリクエストを受信することにより、ＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御することを特徴とする。
【００１６】
また、請求項９の発明は、請請求項６の発明において、操作パネルの特定のスイッチを押下状態で電源スイッチを投入されたことを検出し、検出に基づきにホストからのベンダリクエストの受信可能状態に設定することを特徴とする。
【００１７】
また、請求項１０の発明は、請求項６の発明において、操作パネルの特定のスイッチを押下状態で電源スイッチを投入されたことを検出し、検出に基づきＵＳＢインタフェース以外の他のインタフェースからのデータの受信を禁止状態に制御することを特徴とする。
【００１８】
【発明の実施の形態】
以下、この発明の実施の形態について添付図面を参照して詳細に説明する。
【００１９】
図１は、この発明に係わる印刷装置およびその制御方法の例として、ＵＳＢホストとしてのＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）と、ＵＳＢファンクションとしてプリンタとがＵＳＢ接続された時の構成を示すシステム構成図である。
【００２０】
ＰＣ１は、プリンタ８とのＵＳＢ接続をハードウェアレベルで制御するＵＳＢホストコントローラ７と、ＵＳＢホストコントローラ７を制御するＵＳＢホストドライバ６０と、プリンタ８にて印刷する画像を編集するアプリケーションプログラム４、接続したＵＳＢファンクションに対し、書換えデータ２をプリンタ８にダウンロードする機能を備える保守プログラム５と、ＰＣ１の制御データ、制御用プログラム、プリンタ８に対してダウンロードする書換えデータ２を記憶する記憶部３とで構成される。
【００２１】
一方、ＰＣ１に対してＵＳＢケーブルを介して接続されるプリンタ８は、プリンタ制御プログラム１５、ＲＡＭ１６、不揮発性メモリ１０、電源監視部１１、操作／表示部１２、不揮発性メモリ書換えプログラム１３と、書換えプログラム制御部１４、ＵＳＢファンクションドライバ９０、他インタフェース制御部１７、ＵＳＢファンクションコントローラ１８を具備して構成される。
【００２２】
プリンタ８におけるＵＳＢファンクションコントローラ１８は、ＵＳＢにて接続されたホストとのＵＳＢ通信をハードウェアレベルで制御する。
【００２３】
ＵＳＢファンクションドライバ９０は、プリンタ制御プログラム１５、不揮発性メモリ書換えプログラム１３等、プリンタ８におけるアプリケーションレベルの各プログラムとＵＳＢファンクションドライバ９０との間に実装される。
【００２４】
ＵＳＢファンクションドライバ９０は、ＵＳＢファンクションコントローラ１８をレジスタレベルで制御し、上位のアプリケーションとの間においては、ＵＳＢファンクションコントローラ１８を介してデータの入出力制御を行う。
【００２５】
プリンタ制御プログラム１５は、プリンタ８全体の制御を行い、ＵＳＢファンクションコントローラ１８およびＵＳＢファンクションドライバ９０を介して受信した印刷データに基づいて印刷を行うための画像処理および画像形成処理を行う。
【００２６】
他インタフェース制御部１７は、プリンタ８において、ＵＳＢインタフェース以外の接続インタフェース（ネットワーク、セントロニクス等）に対して制御を行う。
【００２７】
不揮発性メモリ書換えプログラム１３は、ＲＡＭ１６および不揮発性メモリ１０とのデータ入出力手段を含み、ＵＳＢファンクションドライバ９０を介して指示されるＰＣ１から受信する不揮発メモリの書換え要求および書換えデータ２を受信して、不揮発性メモリ１０の書換えを行う。
【００２８】
書換えプログラム制御部１４は、電源監視部１１、操作／表示部１２に接続して、電源監視部１１から通知されるプリンタ８に対する給電状態（電源ＯＮ／ＯＦＦ、電源断）を検出し、操作／表示部１２におけるユーザの操作を検出し、所定の条件によって、不揮発性メモリ書換えプログラム１３に対して起動制御を行う。
【００２９】
次に、ＰＣ１におけるＵＳＢホストドライバ６０および、プリンタ８のＵＳＢファンクションドライバ９０のドライバ構成について説明する。
【００３０】
図２は、ＰＣ１のＵＳＢホストドライバ６０におけるドライバ構成の例を示すブロック図である。
【００３１】
ＵＳＢホストドライバ６０は、ＵＳＢバスクラスドライバ６３と、プリンタドライバ６１、メンテナンス用ドライバ６２を含む各ファンクション機能に対応したドライバ層とによる階層構造をもって実装される。
【００３２】
ＵＳＢバスクラスドライバ６３はＵＳＢホストドライバ６０の下位層に属し、ＵＳＢホストコントローラ７に接続し、各周辺装置の機能を利用するための制御を行う。
【００３３】
ＵＳＢバスクラスドライバ６３はできるだけハードウエアに依存しないように実装され、ハードウエア依存部分に関しては、ミニドライバ（ＭＤ）を別に設ける構造をとっている。
【００３４】
例えば、仮に、ＵＳＢバスクラスドライバ６３がＩＥＥＥ１３９４バスクラスドライバになったとしてもできるだけ影響を受けないかたちで作られており、その依存部分もやはりミニドライバ（ＭＤ）が吸収するように構成される。
【００３５】
図２の例では、プリンタ８機能を使用するためのプリンタドライバ６１、プリンタ８に対するメンテナンス機能を使用するためのメンテナンス用ドライバ６２、プリンタ８ＭＤ（図示せず）、メンテナンス用ＭＤ（図示せず）を備える。
【００３６】
ここで、プリンタドライバ６１、メンテナンス用ドライバ６２は、ＵＳＢプロトコル制御において、ＵＳＢホストがＵＳＢファンクションに対して送信するデバイスリクエスト発行機能を備える。
【００３７】
ＵＳＢホストが送信するデバイスリクエストのフォーマットは、ＵＳＢ仕様書にて標準化され、図３に示す５つのフィールドで構成される。
【００３８】
各フィールドにおいて、ｂｍＲｅｑｕｅｓｔＴｙｐｅは、ベンダリクエストが、標準デバイスリクエスト、クラスリクエスト、ベンダリクエスト等、リクエストの特性を設定するフィールドである。
【００３９】
ここで、図３に示すデバイスリクストは全てベンダリクエストなのでｂｍＲｅｑｕｅｓｔＴｙｐｅに０ｘ４０がセットされる。
【００４０】
ｂＲｅｑｕｅｓｔは、ｂｍＲｅｑｕｅｓｔＴｙｐｅで指定されたリクエストの特定をさらに細分化して指定するフィールドである。
【００４１】
ｗＶａｌｕｅ、ｗＩｎｄｅｘ、ｗＬｅｎｇｔｈは、ｂＲｅｑｕｅｓｔにて特定されるリクエストに応じてそれぞれ定められた値が設定されるフィールドである。
【００４２】
図３は、ベンダリクエストにおいて、特に、ベンダリクエストの４つの例を示したフォーマット図である。
【００４３】
図３（Ａ）に示すベンダリクエストは、デバイスディスクリプタ切替え要求を指示するときのフィールドの設定例であり、ｂＲｅｑｕｅｓｔに０ｘ０１がセットされている。
【００４４】
図３（Ｂ）のｂＲｅｑｕｅｓｔには、不揮発性メモリ１０の書換えを指示する０ｘ０２がセットされる。
【００４５】
図３（Ｃ）のベンダリクエストにおいて、ｂＲｅｑｕｅｓｔには、書換えデータ２の送信（ファンクション側においては受信）を指示する０ｘ０３がセットされ、ｗＩｎｄｅｘにはデータ領域のオフセット値、ｗＬｅｎｇｔｈにはそのサイズがセットされる。
【００４６】
図３（Ｄ）のベンダリクエストのｂＲｅｑｕｅｓｔには書換えデータ２処理に関するデータ受信（ファンクション側においては送信）を指示する０ｘ０４がセットされ、ｗＩｎｄｅｘにはデータ領域のオフセット値、ｗＬｅｎｇｔｈにはそのサイズがセットされる。
【００４７】
次に、ＵＳＢファンクションドライバ９０について説明する。
【００４８】
図４は、ＵＳＢファンクションドライバ９０のドライバ構成を示したブロック図である。
【００４９】
ＵＳＢファンクションドライバ９０は、ＵＳＢファンクションコントローラ１８のレジスタを操作することで、ＵＳＢファンクションコントローラ１８を制御する。
【００５０】
通常、ＵＳＢファンクションコントローラ１８の内部ではエンドポイント（以下ＥＰと称す）毎のデータ送受信を行うように構成され、図４の例においては、ＥＰ１、ＥＰ２は、ＤＭＡによるバルク転送を行うことができる。
【００５１】
また、ＥＰ０はレジスタアクセス用のポートであり、ＥＰ０は、ＵＳＢホストからのデバイスリクストを受信して処理を行う。
【００５２】
ＵＳＢファンクションコントローラ１８のこれらのＥＰは、ＵＳＢファンクションドライバ９０内のＥＰ０管理部９２、ＥＰ１管理部９７、ＥＰ２管理部９８によってそれぞれ制御される。
【００５３】
ＥＰ０管理部９２は、ＥＰ０におけるコントロール転送を解析する。
【００５４】
特に、コントロール転送におけるデバイス定義情報の取得および設定の管理は、ディスクリプタ管理部９３で行う。
【００５５】
ここで、ディスクリプタとは、ＵＳＢファンクションが保持する機能を管理するためのフォーマットであり、ＵＳＢ仕様にて定義されている。
【００５６】
また、ＵＳＢホストは、デバイスリクストによってファンクション装置からこのディスクリプタを読み出すことによって、ファンクション装置が保持する機能を知る事が可能となる。
【００５７】
さらに、ＵＳＢホストは、セットコンフィグレーション（デバイスリクエストの一つ）を使用することで、ディスクリプタの内容の変更、選択が可能となり、ＵＳＢファンクションは、ファンクションのＥＰ０以外の構成が決定され、決定した各ＥＰの機能を使用することができる。
【００５８】
図５は、図１に示したプリンタ８のディスクリプタの例であり、プリンタ機能に関する情報をＣｏｎｆｉｇｒａｔｉｏｎ＃１（５１）に定義し、メンテナンス機能に関する情報をＣｏｎｆｉｇｒａｔｉｏｎ＃２（５４）に定義している。
【００５９】
また、さらに、Ｃｏｎｆｉｇｒａｔｉｏｎ＃１のプリンタ機能に関しては、データ受信のみのモード（５２）と、データ送受信のモード（５３）が排他的に切替え可能に定義されている。
【００６０】
また、このディスクリプタの定義と、ＰＣ１からのセットコンフィグレーションの指示で、プリンタ８は、プリンタ機能における２つの通信モードの切替え、さらに、メンテナンスモードへの切替え制御が排他的に可能となる。
【００６１】
再度、図４のブロック図に戻り、ＥＰ１管理部９７は、コントロール転送において、バルクアウト転送を検出した場合、ＵＳＢホストからの受信データ管理部９４にデータを転送する。
【００６２】
ＥＰ２管理部９８は、バルクイン転送によるデータ転送を管理し、送信データ管理部９５にあるデータをＵＳＢホストに転送する。
【００６３】
ＥＰ０管理部９２、ディスクリプタ管理部９３、受信データ管理部９４、送信データ管理部９５は、ＵＳＢデバイスＩ／Ｆ９１を介して、プリンタ制御プログラム、不揮発性メモリ書換えプログラム１３、書換えプログラム制御部１４、他インタフェース制御部１７とのデータ通信を行う。
【００６４】
また、ＥＰ０管理部９２は、コントロール転送およびＵＳＢケーブルの電源ラインの監視も行う。
【００６５】
電源ラインの監視は、ＵＳＢケーブルの抜き差し（擬似的に発生させることも可能）を、Ｖｃｃの入力電圧のプルアップ、プルダウンにて検出する。
【００６６】
次に、図１のシステム構成、および図２、図４に示したＵＳＢのドライバ構成に基づいて、ＵＳＢ方式のコントロール転送、特に、デバイスリクエストを使用して、ＰＣ１に記憶された書換えデータ２を、プリンタ８へダウンロードして不揮発性メモリ１０のデータを書換える処理手順について説明する。
【００６７】
不揮発性メモリ１０の書換え処理は、２つのケースがあり、ＵＳＢホストからのベンダリクエストをトリガとして処理されるケース（図６のシーケンス）と、データ書換え中のエラー、もしくは、プリンタ８（ファンクション）側からの自発的な処理により行われるケース（図７のシーケンス）がある。
【００６８】
また、上記２つのケースによる不揮発性メモリの書換え完了後のプリンタモードへの復帰動作については、図８のシーケンス図を参照しながら説明する。
【００６９】
図６は、ＵＳＢホストからのベンダデバイスリクエストによって、プリンタ８におけるプリンタモードからメンテナンスモードへの切替えと、ＰＣ１からプリンタ８への書換えデータ２のダウンロード後に、不揮発性メモリ１０の書換えを行う手順を示すシーケンス図である。
【００７０】
ＰＣ１は、保守プログラム５によって指示されるダウンロード指示によって、ＵＳＢドライバは、図３（Ａ）に示すメンテナンスモードへの切替えを支持するベンダリクエストを作成してプリンタ８に送信する（ステップＳ１０１）。
【００７１】
プリンタ８のデバイスリクエスト管理部９６は、受信したベンダリクエストがメンテナンスモードへの切替え指示であることを検出し、ＵＳＢデバイスＩ／Ｆ９１を介して、他インタフェース制御部１７に対するＵＳＢ以外の通信を遮断する指示を出力する（ステップＳ１０２）。
【００７２】
また、デバイスリクエスト管理部９６は、ディスクリプタ管理部９３に対してメンテナンスモードへの切替え指示を通知し、不揮発性メモリ書換えプログラム１３および、書換えプログラム制御部１４との通信路をＵＳＢデバイスＩ／Ｆ９１を介して確保する（ステップＳ１０３）。
【００７３】
さらに、デバイスリクエスト管理部９６は、メンテナンスモードへのデバイス切替えが発生したことをＰＣ１に通知するために、ベンダリクエストに対するＡＣＫの送信をＥＰ０管理部９２に指示する（ステップＳ１０４）。
【００７４】
ベンダリクエストの応答（ＡＣＫ）を受信したＰＣ１のメンテナンス用ドライバ６２は、ＰＣ１側で管理しているプリンタ８のディスクリプタをメンテナンスモードに切替える（ステップＳ１０５）。
【００７５】
メンテナンス用ドライバ６２は、プリンタ８に不揮発性メモリ１０の書換えデータ２のダウンロードおよび書換えを支持する図３（Ｂ）のようなベンダリクエストを作成してプリンタ８に送信する（ステップＳ１０６）。
【００７６】
ＰＣ１のデバイスリクエスト管理部９６は、受信したベンダリクエストを解析し、ＥＰ０管理部は、ベンダリクエスト応答を返すＡＣＫをＰＣ１に送信する（ステップＳ１０７）。
【００７７】
不揮発性メモリ１０書換え指示に対するＡＣＫを受信したメンテナンス用ドライバ６２は、保守プログラム５に対して書換えデータ２の開始を指示する。
【００７８】
保守プログラム５は、記憶部３に記憶された書換え用データを読み出し、読み出したデータを順次、メンテナンス用ドライバ６２に出力する。
【００７９】
メンテナンス用ドライバ６２は、受信した書換えデータ２をデータステージ付きのコントロール転送で送信するためのベンダリクエスト（例えば、図３の
（Ｃ））を作成しプリンタ８へ送信する（ステップＳ１０８）。
【００８０】
プリンタ８のベンダリクエスト管理部は、データ受信が成功したことをＰＣ１に応答するＡＣＫをＰＣ１に送信する。
【００８１】
ＥＰ０管理部９２は、受信した書換えデータ２をＵＳＢデバイスＩ／Ｆ９１を介して、不揮発性メモリ書換えプログラム１３に転送する。
【００８２】
不揮発性メモリ書換えプログラム１３は、受信した書換えデータ２を、ＲＡＭ１６に一時的に記憶し（ステップＳ１０９）、アプリケーションレベルでのデータチェック等を行い（ステップＳ１１０）、不揮発性メモリ１０のデータ書換え処理を行う（ステップＳ１１１）。
【００８３】
ここで、不揮発性メモリ１０のデータ書換え方法は、不揮発性メモリ１０の種類毎に規定されている公知の技術にて行うものとし、ここでの詳細な手順は省略する。
【００８４】
なお、書換えデータ２のサイズが、ベンダリクエストの１回の送信にて転送可能なサイズを超える場合、最初に送信するベンダリクエストにて送信データ全体のサイズを通知し、複数のベンダリクエストに分割して送信することも可能である。
【００８５】
また、書換えデータ２の送信方法においては、データステージ付きのコントロール転送以外に、バルク転送を使用して行うことも可能である。
【００８６】
次に、プリンタ８からの自発的な要求、もしくは、ダウンロード中に発生した電源断、通信障害等により、プリンタ８からＰＣ１に対して再度ダウンロードを指示するケースの処理手順について図７を参照しながら説明する。
【００８７】
図７は、プリンタ８の操作／表示部１２における処置のボタン操作に伴い、電源がＯＮされることで、プリンタ８がＵＳＢホストに対して、書換えデータ２のダウンロード要求を行う処理を示したシーケンス図である。
【００８８】
プリンタ８の書換えプログラム制御部１４は、プリンタ８側からＰＣ１に対する書換えデータ２のダウンロード要求する所定の操作（例えば、操作／表示部１２の特定のボタン操作を伴う電源ＯＮ等）を電源監視部１１および操作／表示部１２からの信号により検出し、不揮発性メモリ書換えプログラム１３に通知する（ステップＳ２０１）。
【００８９】
そして、不揮発メモリ書換えプログラム１３は、ＵＳＢデバイスＩ／Ｆ９１を介して接続される他インタフェース制御部１７に対し、ＵＳＢ以外のインタフェース（ネットワーク、セントロニクス等）との通信を遮断するよう指示する（ステップＳ２０２）。
【００９０】
また、不揮発性メモリ書換えプログラム１３は、ディスクリプタ管理部９３に対して、メンテナンスモードへの切替えを指示する（ステップＳ２０３）。
【００９１】
ディスクリプタ管理部９３は、ＥＰ０管理部９２を介し、ＵＳＢファンクションコントローラ１８に対して、Ｄ＋信号のプルアップを発生させるべく指示を行う（ステップＳ２０４）。
【００９２】
ＰＣ１のＵＳＢホストコントローラ７は、Ｄ＋信号のプルアップ信号の検出により、デバイス接続をＵＳＢホストドライバ６０に通知する。
【００９３】
ＵＳＢホストドライバ６０のプリンタドライバ６１は、プリンタ８が保持するデバイス機能の通知を指示するゲットディスクリプトをプリンタ８に送信する（ステップＳ２０５）。
【００９４】
プリンタ８のＥＰ０管理部９２は、ゲットディスクリプトの受信を検出し、ディスクリプト管理部に対してデバイス機能の一覧を管理するディスクリプタの通知を指示する。
【００９５】
プリンタ８で定義されたディスクリプタを通知する要求を受けたＥＰ０管理部９２は、ディスクリプタを通知するベンダリクエスト応答を作成してＰＣ１へ送信する（ステップＳ２０６）。
【００９６】
さらに、ＰＣ１は、受信したディスクリプタの内容をＵＳＢホストドライバ６０にて解析し、メンテナンス用ドライバ６２への切替えを行う（ステップＳ２０７）。
【００９７】
メンテナンス用ドライバ６２は、保守プログラム５に対して、ダウンロードの開始を指示する（ステップＳ２０８）。
【００９８】
以下の、ダウンロード開始後の処理シーケンスは、図６のＢ６０に示す処理シーケンスに重複するので説明は省略する。
【００９９】
図８は、図６、図７に示したそれぞれの処理シーケンスにおいて、不揮発性メモリ１０の書換え完了後に、プリンタ８機能へ復帰するときの処理手順を示したシーケンス図である。
【０１００】
図６および図７において、Ｂ６０のダウンロード処理シーケンスが終了すると、プリンタ８の不揮発性メモリ書換えプログラム１３は、デバイスリクエスト管理部９６に書換え完了を通知する。
【０１０１】
デバイスリクエスト管理部９６は、不揮発性メモリ１０の書換え完了を示すベンダリクエストを作成し、ＥＰ０管理部９２を介してＰＣ１に送信する（ステップＳ３０１）。
【０１０２】
ＰＣ１のメンテナンス用ドライバ６２は、ベンダリクエストを受信し、受信しベンダリクエスト応答のＡＣＫをプリンタ８に送信する（ステップＳ３０２）。
【０１０３】
また、メンテナンス用ドライバ６２は、プリンタ８に対してメンテナンスモードからプリンタモードへの切替え要求を行うベンダリクエストを作成し、プリンタ８に送信する（ステップＳ３０３）。
【０１０４】
デバイスリクエスト管理部９６は、ベンダリクエストを受信し、ディスクリプタ管理部９３に対してメンテナンスモードからプリンタモードへの切替えを指示する。
【０１０５】
ディスクリプタ管理部９３は、各ＥＰの設定をプリンタ８モードの設定に切替え、ＵＳＢデバイスＩ／Ｆ９１に対し、プリンタ制御プログラム１５との通信を再開する指示を行う（ステップＳ３０４）。
【０１０６】
デバイスリクエスト管理部９６は、プリンタモードへの切替え完了を通知するベンダリクエスト応答としてＡＣＫをＰＣ１に送信する（ステップＳ３０５）。
【０１０７】
また、デバイスリクエスト管理部９６は、他インタフェース制御部１７に対して他のインタフェースとの通信を再開する指示をＵＳＢデバイスＩ／Ｆ９１を介して行い（ステップＳ３０６）、プリンタモードでの動作を再開する（ステップＳ３０８）。
【０１０８】
メンテナンス用ドライバ６２は、プリンタ８から送信されたベンダリクエスト応答のＡＣＫを受信すると、プリンタドライバ６１へ処理を移譲し保守プログラム５からアプリケーションプログラム４への切替えを行う（ステップＳ３０７）。
【０１０９】
以降、ＰＣ１とプリンタ８は、プリンタモードに復帰して印刷処理を行う（ステップＳ３０９）。
【０１１０】
なお、図６、図７、図８に示した不揮発性メモリ１０の書換え処理のタイミングは、この実施例に示すように必ずしもダウンロード直後である必要は無く、プリンタ８あるいはＰＣ１側からの別の指示によって書換え処理を行う構成にすることも可能である。
【０１１１】
また、ＵＳＢファンクション装置としては、この実施の形態で示したプリンタ以外に、スキャナ、コピー、ＦＡＸの複数機能を備えたマルチファンクション装置においても、デスクリプタの定義を追加し、ＵＳＢファンクションドライバがサポートすることによってこの発明を適用することが可能である。
【０１１２】
【発明の効果】
以上説明したようにこの発明によれば、印刷装置本体を分解することなく、制御プログラムデータをＰＣからダウンロードし、オンボードにて不揮発性メモリの制御プログラムデータを書換えることが可能となる。これによって、印刷装置に対する保守作業、特に不揮発性メモリを備える装置に対する作業負荷を軽減し、保守費用を抑えるといった効果が得られる。
【０１１３】
また、印刷装置からの指示による不揮発メモリの書換えも可能となるため、印刷装置側の都合に合わせた不揮発性メモリの書換えが可能となり、ＵＳＢホスト側からの指示によるダウンロード時のトラブルに対しても、再度ＵＳＢファンクション側からの操作を行うことで回避可能となり、印刷装置の不揮発性メモリに対するデータ書換え作業を確実に行うことができる。
【図面の簡単な説明】
【図１】この発明に係わる印刷装置およびその制御方法の一例として、ＵＳＢホストしてのＰＣと、ＵＳＢファンクションとしてのプリンタとがＵＳＢ接続された時の構成を示すシステム構成図である。
【図２】ＰＣのＵＳＢホストドライバにおけるドライバ構成の例を示すブロック図である。
【図３】ベンダリクエストにおいて、特に、ベンダリクエストの４つの例を示したフォーマット図である。
【図４】ＵＳＢファンクションドライバのドライバ構成を示したブロック図である。
【図５】図１に示したプリンタのデバイス機能を定義するディスクリプタのデータフォマット図である。
【図６】ＰＣからからのベンダデバイスリクエストによって、プリンタにおけるプリンタモードからメンテナンスモードへの切替えと、ＰＣからプリンタへの書換えデータのダウンロード後に、不揮発性メモリの書換えを行う手順を示すシーケンス図である。
【図７】プリンタの操作／表示部における処置のボタン操作に伴い、電源がＯＮされることで、プリンタがＵＳＢホストに対して、書換えデータのダウンロード要求を行う処理を示したシーケンス図である。
【図８】図６、図７に示したそれぞれの処理シーケンスにおいて、不揮発性メモリの書換え完了後に、プリンタモードへ復帰するときの処理手順を示したシーケンス図である。
【符号の説明】
１    ＰＣ
２    書換えデータ
３    記憶部
４    アプリケーションプログラム
５    保守プログラム
６０    ＵＳＢホストドライバ
６１    プリンタドライバ
６２    メンテナンス用ドライバ
６３    ＵＳＢバスクラスドライバ
７    ＵＳＢホストコントローラ
８    プリンタ
９０    ＵＳＢファンクションドライバ
９１    ＵＳＢデバイスＩ／Ｆ
９２    ＥＰ０管理部
９３    ディスクリプタ管理部
９４    受信データ管理部
９５    送信データ管理部
９６    デバイスリクエスト管理部
９７    ＥＰ１管理部
９８    ＥＰ２管理部
１０    不揮発性メモリ
１１    電源監視部
１２    操作／表示部
１３    不揮発性メモリ書換えプログラム
１４    書換えプログラム制御部
１５    プリンタ制御プログラム
１６    ＲＡＭ
１７    他インタフェース制御部
１８    ＵＳＢファンクションコントローラ
【図１】
2004288005.tif 000003
【図２】
2004288005.tif 000004
【図３】
2004288005.tif 000005
【図４】
2004288005.tif 000006
【図５】
2004288005.tif 000007
【図６】
2004288005.tif 000008
【図７】
2004288005.tif 000009
【図８】
2004288005.tif 000010