JP2008152404A - 電子機器、電子機器の制御方法、および電子機器の制御プログラム - Google Patents

電子機器、電子機器の制御方法、および電子機器の制御プログラム Download PDF

Info

Publication number
JP2008152404A
JP2008152404A JP2006337726A JP2006337726A JP2008152404A JP 2008152404 A JP2008152404 A JP 2008152404A JP 2006337726 A JP2006337726 A JP 2006337726A JP 2006337726 A JP2006337726 A JP 2006337726A JP 2008152404 A JP2008152404 A JP 2008152404A
Authority
JP
Japan
Prior art keywords
usb
class
connection
control
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2006337726A
Other languages
English (en)
Inventor
Naoki Aoyama
直樹 青山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2006337726A priority Critical patent/JP2008152404A/ja
Publication of JP2008152404A publication Critical patent/JP2008152404A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】電子機器と複数デバイスクラスのUSBデバイスを接続して利用する場合に、常に適切なクラスで接続できるようにする。
【解決手段】Aジャック1010、および異なる複数のデバイスクラスのUSBデバイスの接続をサポートするUSBホスト制御部1008を介してUSBデバイス(1011)が接続される。この時、USBデバイスのデバイスクラスと、ユーザ設定され、EEPROM1004に記憶された接続を許容する接続対象クラスとを比較する。そして、USBデバイスのデバイスクラスと該接続対象クラスが一致した場合のみUSBデバイスの接続を許容するようUSBホスト制御部1008を制御する。複数の接続対象クラスは、特定の優先順位とともに設定でき、またこの優先順位はPC1014の接続状態に応じて強制的に変更できる。
【選択図】図1

Description

本発明は、異なる複数のデバイスクラスのUSBデバイスの接続を制御するUSBホスト制御部を有する電子機器、電子機器の制御方法、および電子機器の制御プログラムに関するものである。
USB(Universal Serial Bus)のバージョン1.0は、PC/AT互換機(以下、PCとも記す)用のシリアルインターフェース規格として、1996年1月に発表された。現在ではUSBは、PCとその周辺機器を接続する場合の標準インターフェースと言っても過言ではないほど普及しており、より高速な転送が可能なバージョン2.0の規格も登場している。
近年では、記録装置を始め様々な電子機器において、USBインターフェースを有する機器が登場している。たとえば、MP3プレーヤーやUSBメモリなどの機器はUSBのストレージクラスを実装している。また、デジタルカメラ(以下単にカメラなどとも記す)などの機器ではカメラから直接プリンタに出力したりする場合に利用するスチル・イメージクラスが実装されている。
さらに、USBの規格では、1つの機器が複数のデバイスクラスを持つことができる。たとえば、デジタルカメラでは、内部の画像メモリのようなストレージをアクセスさせるためのストレージクラスと、スチル・イメージクラスを有する機器が存在する。また、プリンタでは、プリンタエンジンにアクセスさせるためのプリンタクラスと、内部のHDDのようなストレージをアクセスさせるためのストレージクラスを有する機器が存在する。
さらに、初期のUSBの規格(1.0)では、USB機器が入出力を行なうためにはPCのようなホスト装置が必要であった。しかし、カメラとプリンタ、携帯電話とプリンタなどのような機器がPCを介在させることなく接続できるよう、現在ではUSB OTG(On−The−Go)のような拡張が行なわれている。このUSB OTGのような規格により、自機がUSBデバイスとして動作する他、別のUSBデバイスに対しては限定的ではあるがホスト機能を提供することが可能になっている。
たとえば、PCに接続して印刷するプリンタにアクセスさせるためのプリンタデバイス、およびデジタルカメラのスチル・イメージクラスを取り扱うことができるUSBホストの各機能を有するプリンタが知られている(たとえば特許文献1参照)。このような機器では、USBホスト/デバイスのいずれとして動作するかの制御は、接続に用いられたプラグやジャックの選択により決定する方法が知られている。また、機器接続時の通信で、USBのConfigurationを取得し、その中の最初のConfigrationで接続を試みることにより制御する方法もある。
ここで、上記のカメラやプリンタのようなUSB機器のユーザーインターフェースについて考える。この種のデバイスでは、表示装置がPCの表示装置よりも、はるかに小さいケースが多く、表示装置が無いか、表示面積が著しく小さいものも珍しくはない。また、入力手段もわずかのキー/ファンクションキーやダイヤル程度で、PCにおけるようなマウスや、キーボードのように自由な入力手段は存在しないケースがほとんどである。
また、カメラやプリンタのような機器の場合、ROMやRAMの制限が厳しく、組み込み機器は後からのドライバ等の追加が非常に難しいのが現状であり、カメラと接続される機器側で固定的に決められた接続を確立するように制御されることも多い。
特開2004−118261号公報
さて、今後、USBインターフェースを有する電子機器において、RAMやROM等の容量の増大、CPUの高速化等により、1台の機器で組み込みのUSBホストやUSBデバイスが複数サポートされるような傾向が加速することが予想される。そして、機器構成が複雑になり、複数の接続形態が可能である程、ユーザーが意図しないクラスで接続される可能性も高くなり、利用した機能が利用できないといった現象が顕在化してくると考えられる。
たとえば、機器の一方が組み込みで機能が限定されたUSBホストのジャックを持った装置(A)であるような場合を考える。このような装置(A)と複数デバイスクラスを有するUSBデバイスのジャックを持った装置(B)を接続する場合、機能に制限がある装置(A)で装置(B)の接続態様を制御するために、その場でユーザに様々な設定操作を行なわせることは難しい。
上記のように、従来では接続時のUSBのプラグやジャックや、機器接続時の通信で最初に一致したUSBのConfigurationの条件でほぼ固定的にUSB接続の形態が決まってしまう。このため、必ずしもユーザの希望する形態でUSB接続が行なわれるとは限らない。
したがって、ユーザが無造作にUSB機器を接続した時にも、余計な設定操作を必要とせず、機器が相互に常に適切なクラスで接続できることが望まれる。
また、一方では、複数のUSBデバイス機能を有する機器であっても、使用環境などの諸条件によっては特定のUSBデバイス機能のみに限定してその機器を利用したい、というユーザ需要も考えられる。
そこで、必要なら、複数のUSBデバイス機能を有する機器であっても、特定のUSBデバイス機能のみに限定してその機器を利用できるよう設定ができることも重要である、と考えられる。
本発明の課題は、上記問題を解決し、電子機器および接続されるUSBデバイスの機能が限定されている場合でも、電子機器と複数デバイスクラスのUSBデバイスを接続して利用する場合に、常に適切なクラスで接続できるようにすることにある。
上記課題を解決するため、本発明においては、異なる複数のデバイスクラスのUSBデバイスの接続を制御するUSBホスト制御部を有する電子機器、その制御方法、およびその制御プログラムにおいて、前記USBホスト制御部を経由してUSBデバイスが接続される際、該USBデバイスのデバイスクラスと、ユーザ設定された前記複数のデバイスクラスのうち接続を許容する接続対象クラスとを比較し、該USBデバイスのデバイスクラスと該接続対象クラスが一致した場合のみ該USBデバイスの接続を許容すべく前記USBホスト制御部を制御する構成を採用した。
上記構成によれば、USBホスト制御部がサポートするデバイスクラスのうち接続を許容する接続対象クラスをユーザ設定できる。そして、USBデバイスが接続される際、デバイスクラスがユーザ設定の接続対象クラスと一致するUSBデバイスのみ接続を許容することができる。したがって、電子機器および接続されるUSBデバイスの機能が限定されている場合でも、電子機器と複数デバイスクラスのUSBデバイスを接続して利用する場合に、常に適切なクラスで接続できる、という優れた効果がある。
以下、図面を参照し、発明を実施するための最良の形態の一例としてフォトダイレクトプリンタ装置に関する実施例につき詳細に説明する。以下で説明するフォトダイレクトプリンタ装置は、PCのようなホスト装置が介在することなくデジタルカメラと直接接続して印刷を行なう(ダイレクトプリント)ことができるプリンタである。
図1は、本発明を適用したフォトダイレクトプリンタ装置の構成の一例を示している。図1のフォトダイレクトプリンタ装置1000において、CPU1001は後述の制御プログラムを含むシステムプログラムを実行することにより装置全体を制御する。ROM1002には、フォトダイレクトプリンタ装置を制御するためのプログラムと、そのプログラムの不具合対応やバージョンアップ時に、フォトダイレクトプリンタ装置を制御するプログラムを書き換えるためのプログラムが格納されている。
フォトダイレクトプリンタ装置1000を制御するためのプログラムは、同ROM1002に格納されている組み込みOSの管理の元、スケジューリングやタスクスイッチ、割り込み処理等のソフトウェアを実行する。これにより、記録、給紙、インクの吐出等の印刷処理が並列的に制御(マルチタスク制御)される。
RAM1003は、主にフォトダイレクトプリンタ装置の記録処理部分で扱う印刷データ、フォトダイレクトプリンタ装置のステータス等の情報、プログラム制御用変数等の蓄積や、プログラム実行用のワークエリア等に利用される。
EEPROM1004は、製品の仕向け地(出荷先)に応じた設定値、センサやレジの補正値、エラーや印字設定等の履歴などを記憶するために用いられる。すなわち、EEPROM1004には、値は変更されるが電源のオン/オフで失っては困る制御情報の格納に用いられる。後述の接続を許容する接続対象クラスに関するユーザ設定情報もこのEEPROM1004に格納される。
表示操作部1005は、パワーキー、レジュームキー等の各種キー、LED(発光ダイオード)とLCD(液晶ディスプレイ)等によって構成されている。この表示操作部1005のLCDはプリンタの印刷状況や、エラー状態等の詳細をユーザーに伝えるために各種表示を行う。後述の接続を許容する接続対象クラスに関するユーザ設定は、この表示操作部1005を用いて行なわれる。
フラッシュメモリカードスロット1009に画像の入ったフラッシュメモリを挿したり、USBのAジャック1010にUSBのストレージデバイスが挿されたりした時、所定のユーザーインターフェースが起動される。すなわち、表示操作部1005のLCDと各種キーによるユーザーインターフェースを介して、内部画像の選択、選択した画像の印刷など一連の印刷制御を行なうことができる。また、表示操作部1005のLEDの点滅、点灯、点灯色などの組合せにより、警告や、エラーの状態や、情報をユーザーに伝えることができる。
記録部1007による印刷動作は記録制御部1006を介して制御される。記録部1007は所定の記録方式のプリンタエンジンから構成される。記録部1007の記録方式は任意であるが、本実施例ではインクジェット方式であるものとする。
インクジェット方式の場合、記録部1007では、たとえば染料のシアン、マゼンダ、イエロー、ブラック、顔料のブラック、計5色のインクを吐出するノズルを持つ記録ヘッドが用いられる。この記録ヘッドに記録データを出力することにより、記録媒体上に画像を形成することができる。また、インクジェット方式においては、記録制御部1006は、たとえばラスターデータを記録部1007のインクジェットのヘッドのノズルに対応したインクの吐出情報に変換する処理を行う。
図1のフォトダイレクトプリンタ装置1000は、内部的に2ポートを持ち、その一つをUSBのAジャック1010に、もう一方のポートをフラッシュメモリカードスロット1009に直接繋いでいる。
USBホスト制御部1008は、USBのAジャック1010と、フラッシュメモリカードスロット1009に接続されるUSBのVBUS、D+端子、D−端子を制御する。USBホスト制御部1008は、USB2.0のFull Speed(480Mbps)のポートを制御している。
USBのAジャック1010に接続されるUSBデバイス1011は、たとえばStill Image Class対応のデバイスとして動作する。さらに、USBデバイス1011は、ベンダー固有のカメラダイレクトプリント機能を実現するための独自クラス、USB接続の外部記憶装置のためのMass Storage Classなどに対応したデバイスとすることもできる。さらに、USBデバイス1011は、カメラと接続して印刷するための規格PictBridgeをサポートする。
すなわち、本実施例では、USBデバイス1011は、例えばStill Imageクラス、ダイレクトプリントのための独自クラス、Mass Storageクラスのような3つのデバイスクラスをサポートしているものを想定する。
なお、後述のPC/AT互換機1014を介在させずにUSBデバイス1011とフォトダイレクトプリンタ装置1000を接続できるよう、USBデバイス1011やUSBホスト制御部1008はUSB OTGのような規格を用いるよう構成できる。
本実施例では、後述のようにUSBデバイス1011がサポートするデバイスクラスは、所定の条件に応じて接続クラスを限定したり、優先順位を設定したりすることができるよう構成する。
この接続クラスの限定や、優先順位の選択に関するユーザ設定は、表示操作部1005によるユーザ操作、USBのBジャック1013と接続されるPCのドライバの制御に応じて行なうものとする。
また、接続クラスの限定や、優先順位の選択に関するユーザ設定は、フォトダイレクトプリンタ装置1000にスキャナが設けられていれば、設定用ナビゲーションシートから読み取った設定情報に応じて行なうこともできる。
また、接続クラスを限定したり、優先順位を設定したりする制御態様は、USBのBジャック1013にPCが接続されているか否かに応じて変更することができるように構成することもできる。
上記のUSBデバイス1011の複数のデバイスクラスの限定、優先順位の制御に関する設定は、電源のオフ/オンで設定が失われないようEEPROM1004に記録するものとする。
一方、USBデバイス制御部1012も、USB2.0のFullSpeed対応ポートである。USBデバイス制御部1012はUSBのBジャック1013を介してPC/AT互換機1014と接続し、印刷データやプリンタの状態等の情報を授受することができる。
なお、ホスト装置としてのPC/AT互換機1014は、一例であって他のアーキテクチャのコンピュータ、制御端末、といったホスト装置でよい。もちろん、USB接続が可能な機器である必要はあるが、そのハードウェア/ソフトウェア的な構成は任意である。
フォトダイレクトプリンタ装置1000は、USBのBジャック1013を介してPC1014(のOS)からはUSBデバイスとして見える。たとえば、PC1014(のOS)から認識されるフォトダイレクトプリンタ装置1000はUSBのコンポジットクラスのデバイスで、プリンタクラスとストレージクラスのマルチインターフェースのデバイスとすることができる。
たとえば、このようなコンポジットクラスのストレージは、フォトダイレクトプリンタ装置1000で利用可能な任意のストレージの資源をPC1014からアクセスさせることが可能である。たとえば、内部的にUSBホスト制御部1008とリンクして、カードスロット1009に接続されたメモリカード、USBのAジャック1010に接続されたUSBストレージデバイスをPC1014からアクセスさせることができる。
図2はフォトダイレクトプリンタ装置1000のUSBホスト制御部1008で行っているUSBの接続処理シーケンス、および制御フローをそれぞれ示している。
図2において、USBホスト2000は、図1のフォトダイレクトプリンタ装置1000のUSBホスト制御部1008における任意のポートに相当する。また、USBデバイス2001はUSBデバイスで、デジタルカメラまたはUSBストレージ1011のUSBのポートに相当する。
図2では、これらポート(2000、2001)の間の通信について詳細に説明する。図2の2000番台の符号は、USBプロトコルにおけるコマンドないしデータ構造体のニーモニック、あるいはUSBプロトコルにより起動される特定処理を示す。
USBホスト2000は、USBデバイスの接続を検知すると、USBホストはD+端子とD−端子をグランドに落とし、バスリセットを行う(2010)。その後ポートが利用可能になり、リセットが完了するとUSBホスト2000はSOFを送信し、アイドル状態になる。
次に、USBホスト2000は、GetDescriptor(Device)2011をUSBデバイスに8バイト分要求する。
ここで、USBデバイス側のコントロールエンドポイントの最大パケットサイズと、DeviceDescriptorのトータルサイズを確認する。正常に通信ができた場合は、再度バスリセット2012を行う。その後、SetAddress2013にて、USBのアドレス1から127のどのアドレスで通信を行うかをUSBデバイスに通知する。これ以降、SetAddress2013で決定したアドレスでコントロール、バルク、インタラプトの各種転送を行うことができる。
次に、前処理にて設定したアドレスで、GetDescriptor(Device)2014を前記DeviceDescriptorのトータルサイズでUSBデバイス2001に要求する。ここで取得したDeviceDescriptor内の、VendorID、ProductID等が必要であれば、保存領域に格納しておく。Manufacturer、Product、SerialNumber等の文字列の有無を確認し、文字列を有している場合は以下の処理にて取得する。また、コンフィグレーションの数も確認しておく。
次に、GetDescriptor(Configuration)2015によりConfigurationDescriptorのみを取得する。そして、Configurationに付属するDescriptorのトータルサイズを抽出し、GetDescriptor(Configuration)2016により、フルサイズのConfigurationDescriptorを取得する。
このConfigurationDescriptorは、一つのConfigurationに対してのConfiguration、Interafce、Endpoint、クラスまたはベンダー特有のDescriptorから構成される。ConfigurationDescriptorは、これらクラスまたはベンダー特有のDescriptorをサポートしているConfiguration数分連ねたものである。
また、DeviceDescriptorは、DeviceDescriptorの長さ、Descriptorタイプ、USBスペック、デバイスクラスコード、デバイスサブクラスコード、デバイスプロトコル、コントロールエンドポイントの最大パケットサイズ、ベンダーID、プロダクトID、製造社名へのインデックス、製品名へのインデックス、シリアル番号文字列へのインデックス、Configuration可能な数から構成されるデータ構造である。
ConfigurationDescriptorは、ConfigurationDescriptorの長さ、ConfigurationDescriptorタイプ、ConfigurationDescriptorのトータルサイズ、サポートしているインターフェースの数、Configurationする時の値、本Configurationについて記述する文字列へのインデックス、セルフパワーかどうか、リモートウェイクアップに対応しているかどうかなどの属性、そして消費電力から構成されるデータ構造である。
InterfaceDescriptorは、InterfaceDescriptorの長さ、InterfaceDescriptorタイプ、そのConfigurationでサポートしているInterfaceの数、そのConfigurationで利用するエンドポイントの数、本インターフェースが対応しているクラスのコード、本インターフェースが対応しているクラスのサブクラスコード、本インターフェースで利用するプロトコル、本インターフェースについて記述する文字列へのインデックスから構成されるデータ構造である。
EndpointDescriptorは、EndpointDescriptorの長さ、EndpointDescriptorのタイプ、エンドポイントのアドレス、転送タイプなどの属性、本Endpointの最大パケットサイズ、転送間隔から構成されるデータ構造である。
次に、GetDescriptor(String)2017で、前記GetDescriptor(Device)で文字列のインデックスから、各種StringDescriptorを取得する。このStringDescriptorは、StringDescriptorの長さ、StringDescriptorタイプ、文字列から構成されるデータ構造である。
次に、SetConfiguration2018で、コンフィグレーションを選択しUSB層での接続を確立する。その後、接続確立2019により、各クラスのプロトコルに則り、通信を行うことができるようになる。
以下、図3〜図5を参照して、上記構成におけるUSBデバイス1011の接続に関する制御例を示す。以下の制御例1〜3における制御はそれぞれ図3〜図5に示されている。図3〜図5はCPU1001により実行される制御プログラムに応じて実行されるフォトダイレクトプリンタ装置1000の制御の様子を示したものである。これらの制御手順を実現するCPU1001の制御プログラムは、たとえばROM1002に格納しておくことができる。
<制御例1>
本例では、USBAジャック1010を介してUSBホスト制御部1008に特定のデバイスクラスのみを接続可能とする(具体的にはSetConfigurationを許容する)。接続可能とするクラスは、フォトダイレクトプリンタ装置1000の表示操作部1005より設定可能とする。また、この設定内容はEEPROM1004に記憶できるようにする。
本例では、USBホスト制御部1008は、Still Image Classと、Mass Storage Classが接続可能なクラスとしてサポートするよう構成されているものとする。そして、本例では、接続を許容する接続対象クラスを一つとし、Still Image Classか、Mass Storage Classかを選択する制御を行なう。
このような接続制御は、図3のような制御手順により可能となる。ここでは、接続を許容する接続対象クラスを特定の1つ、たとえばStill Image Classと設定した場合の制御を例に説明する。すなわち、この場合、Still Image Classが接続を許容する接続対象クラスとしてEEPROM1004に設定されている。
なお、以下では、簡略化のため、「接続対象」の語を、「接続可能とする、あるいは接続を許容する接続対象」の意で用いるものとする(たとえば「接続対象クラス」)。
図3の制御フローの冒頭部分の構成は図2のシーケンスと同等であり、ここでは図2と同じ参照符号を用い、既に説明したシーケンスに対応するフローは簡単に説明するものとする。
まず、USBAジャック1010を介して何らかのUSBデバイスが接続されると、図2と同様に接続検知後バスリセット2010を行い、GetDescriptor2011、バスリセット2012、SetAddress2013を実行する。
続いて、GetDescriptor(Device)2014、GetDescriptor(Configuration)2015、GetDescriptor(Configuration)2016、GetDescriptor(String)2017の各プロトコルにより接続されたUSBデバイス側の情報を取得する。
そして、分岐3001で、EEPROM1004に設定されている接続対象クラスと、現在接続を行おうとしているクラスを比較する。たとえば、GetDescriptor2014〜2017でUSBデバイスから得たInterfaceDescriptorのクラスコード、サブクラスコード、プロトコルの値が、Still Image Class対応の値になっているか確認することにより行なう。
この比較の結果、接続試行中のUSBデバイスのデバイスクラスと、EEPROM1004に設定されたサポートクラスが一致する場合のみ、SetConfiguration2018を行う。これにより、その後、接続されたUSBデバイスとの間でOpenSessionなど、クラスに対応した通信を行なうことができるようになる。
また、分岐3001で接続試行中のUSBデバイスのデバイスクラスと、EEPROM1004に設定されたサポートクラスが一致しない場合には、未対応デバイスエラー処理3002を行う。たとえば、VBUSを落とし、それ以後の通信を行わないようにし、表示操作部1005のLEDをオレンジ色で点滅させる。また同時に、対応していないデバイスが接続されたことをユーザーにより分りやすく通知するために、表示操作部1005のLCDにエラーの趣旨を表示する、などのエラー処理を行う。
以上のようにして、EEPROM1004に設定されている接続対象クラスと一致するUSBデバイスの接続のみを許容するよう制御することができる。したがって、ユーザが無造作にUSBのAジャック1010にUSBデバイスを接続しても、適切な接続対象クラスでAジャック1010のUSBデバイスを認識することができる。
また、ユーザは使用環境などの諸条件に応じて、所望の接続対象クラスをEEPROM1004に設定することができ、これにより使用条件に適したUSBデバイスクラスを用いてUSBデバイスを接続することができる。
また、EEPROM1004の設定内容は、操作表示部1005などから変更することができ、ユーザはたとえば使用環境や、接続を許容したいデバイスなどに応じて、接続を可能とするデバイスクラスを所望の接続対象クラスに固定することができる。
<制御例2>
上記の制御例1は1つのクラスのみしか接続を認めない構成であったが、本例の制御は、USBホスト制御部1008で、USBデバイスを接続する時に、接続対象として許容するデバイスクラスに優先順位を設定できるようにしたものである。すなわち、USBホスト制御部1008が接続を許容する場合、USBデバイスが接続対象(接続を許可する)クラスを有するか否かを特定の優先順位で検査する。
本例では、USBホスト制御部1008がStill Image ClassとMass Storage Classの各クラスを持つUSBデバイスを接続対象としてサポートするものとする。そして、これらのデバイスクラスが、表示操作部1005で行なわれるユーザ操作に応じて特定の優先順位と関連づけられてEEPROM1004に記憶されているものとする。
本例では、優先順位を、(1)Still Image Class、(2)Mass Storage Classの順に設定し、この順序でUSBデバイスが接続対象(接続を許可する)クラスを有するか否かを特定の優先順位で検査する。
このような接続制御は、図4のような制御手順により可能となる。図4でも、制御フローの冒頭部分の構成は図2のシーケンスと同等であり、ここでも図2と同じ参照符号を用い、既に説明したシーケンスに対応するフローは簡単に説明するものとする。
まず、USBAジャック1010を介して何らかのUSBデバイスが接続されると、図2と同様に接続検知後バスリセット2010を行い、GetDescriptor2011、バスリセット2012、SetAddress2013を実行する。
続いてGetDescriptor(Device)2014、GetDescriptor(Configuration)2015、GetDescriptor(Configuration)2016、GetDescriptor(String)2017の各プロトコルにより接続されたUSBデバイス側の情報を取得する。
そして、分岐4001で、接続試行中のUSBデバイスのInterfaceDescriptorのクラスコード、サブクラスコード、プロトコルと、EEPROM1004に格納されている優先順位1番目の接続対象クラスのクラスコード、サブクラスコード、プロトコルの値を比較する。上記の通り、EEPROM1004に格納されている優先順位1番目のクラスはStill Image Classである。
ここで(分岐4001)クラスが合致しない場合は、分岐4002で優先順位2番目のMass Storage Classのクラスコード、サブクラスコード、プロトコルの値を比較する。
このように二つのクラスをサポートし、それらを優先順位付けし、チェックを行う。分岐4001、4002の何れかのクラスに合致した場合は、そのConfigurationでSetConfiguration2018を行い、接続を確立する。接続試行中のUSBデバイスが分岐4001、4002でEEPROM1004に設定された何れのクラスにも合致しない場合は、未対応デバイスエラー処理4003を行う。未対応デバイスエラー処理4003は、上述の未対応デバイスエラー処理3002と同等の内容で良い。
なお、ここでは、サポートクラスが2つの例を示したが、当然ながら、サポートクラスが増えれば分岐は図4に示した2つ(4001、4002)よりも多くなる。たとえば、EEPROM1004に設定されているデバイスクラスの数だけ、動的にデバイスクラスを検査する分岐を増加させるような制御を行なえばよい。
以上のようにして、EEPROM1004に特定の優先順位をもって設定されている接続対象クラスと、接続されたUSBデバイスのデバイスクラスを該優先順位の順に比較し、一致するUSBデバイスの接続のみを許容するよう制御することができる。したがって、ユーザが無造作にUSBデバイスを接続しても、適切な順序で接続対象クラスを検査できる。そして、これにより適切な接続対象クラスでAジャック1010のUSBデバイスを認識することができる。
ユーザは使用環境などの諸条件に応じて、所望の接続対象クラスを、所望の優先順位でEEPROM1004に設定することができる。これによりユーザは使用条件に適したUSBデバイスクラスを設定した優先順位で順次検査させ、接続対象クラスとデバイスクラスが一致したUSBデバイスを接続することができる。
また、EEPROM1004の設定内容は、操作表示部1005などから変更することができる。したがって、ユーザはたとえば使用環境や、接続を許容したいデバイスなどに応じて、接続を可能とするデバイスクラスを複数、所望の優先順位で接続対象クラスとして設定することができる。
<制御例3>
本例では、上記の制御例2(図4)のように、USBホスト制御部1008がUSBのAジャック1010に接続されるUSBデバイスをEEPROM1004に設定(記憶)された特定の優先順位で検査する制御を行なう。
さらに、USBのBジャック1013にUSBケーブルを介してPC1014が接続されているか否かに応じてUSBホスト制御部1008がUSBのAジャック1010に接続されるUSBデバイスを検査する優先順位を強制的に変更する。
ここでは、PC1014に対してUSBのデバイス制御部1012はコンポジットクラスとしてストレージクラスとプリンタクラスのサポートを通知するものとする。また、ここでは、ユーザーがUSBのAジャック1010にUSBフラッシュメモリを装着し、PC1014側からコンポジットデバイスの1つとして利用することを想定する。
したがって、このような構成では、PC1014が接続されている場合、EEPROM1004の設定状態がどうであろうと、強制的にMass Storage Classが最上位の優先順位となるよう変更する制御が適当と考えられる。
以下、図5により、PC1014が接続されている場合、接続対象クラスの最優先順位を強制的に、Mass Storage Classとする例について説明する。ここでは、EEPROM1004にStill Image Class、Mass Storage Classの順で接続対象として許容するデバイスが登録されているものとする。
また、本例では、PC接続ありを条件として強制的に上記の優先順位変更を行なうか否かを表示操作部1005から設定できるようにし、この設定もEEPROM1004に記憶するよう制御するものとする。
図5の制御フローの冒頭部分の構成は、PC5000(上記の1014と同じ)とフォトダイレクトプリンタ装置5001(上記の1000と同じ)、特にUSBデバイス制御部1012との通信を示したものである。しかしこの内容は図2のシーケンスと同等であり、ここでも図2と同じ参照符号を用い、既に説明したシーケンスに対応するフローは簡単に説明するものとする。
PC5000は、フォトダイレクトプリンタ装置5001における、USBのBジャック1013にUSBケーブルを介して接続されると、上述と同様に、接続検知後バスリセット2010に始まり、GetDescriptor(Device)2011、バスリセット2012、SetAddress2013が行なわれる。
その後、PC5000は、GetDescriptor(Device)2014、GetDescriptor(Configuration)2015、GetDescriptor(Configuration)2016、GetDescriptor(String)2017により、接続されたUSBデバイス、すなわちフォトダイレクトプリンタ装置5001の情報を取得する。
その後、PC5000とフォトダイレクトプリンタ装置5001の間でプリンタクラスとストレージクラスに対応するコンポジットクラスに対しての接続を確立すべく、SetConfiguration2018が行なわれる。
次に、プリンタクラスのGetDeviceID5010により、さらに詳しいプリンタ情報を取得する。接続後のGetDeviceID処理5010をトリガにして、PC5000と接続確立とフォトダイレクトプリンタ装置5001側でも判断する。
そして、ステップ5011でPC5000と接続確立と判断すると、フォトダイレクトプリンタ装置5001はステップ5012で、接続対象クラスの優先順位をMass Storage Classが最優先となるよう変更する。
たとえば、Still Image Class、Mass Storage Classの順で優先順位が登録されている場合には、この順序を逆転させ、Mass Storage Classを最優先させるよう変更が行なわれる。このような優先順位の変更は、EEPROM1004の値を直接変更するのではなく、EEPROM1004からRAM1003上にコピーされた接続対象クラスの設定の値を変更し、RAM1003上の接続対象クラス設定値を用いるようにする。これにより、後述のようにPC5000との接続が切断された後、元の設定状態に戻すことができる。
これ以後、Mass Storage Class、Still Image Classの優先順位で、図4に示した制御を行えばよい。これにより、USBのBジャック1013にPC5000(1014)が接続されている場合は、USBのAジャック1010に接続されるデバイスに対しては、Mass Storage Classであるか否かが優先的に検査される。
その後、ステップ5013でPC5000との接続が切断されると、ステップ5014でVBUS変化割り込みをトリガとして、その割り込み処理時に、前記接続対象クラスのEEPROM1004の値をRAM上にコピーされた値を元の値に戻す(5015)。
以上のようにして、制御例2の効果に加え、本制御例では、PC5000の接続の有無を条件としてEEPROM1004に設定された接続対象クラスを検査する際の優先順位を強制的に変更することができる。したがって、ユーザが無造作にUSBのAジャック1010にUSBデバイスを接続しても、PC5000(1014)をフォトダイレクトプリンタ装置5001(1000)に接続しているか否かに応じて、適切な順序で接続対象クラスを検査できる。そして、これにより適切な接続対象クラスでAジャック1010のUSBデバイスを認識することができる。
なお、上記実施例では、フォトダイレクトプリンタ装置1000の操作表示部1005から接続対象クラスに対する設定を行なえる構成を例示した。しかし、フォトダイレクトプリンタ装置とPC/AT互換機のようなホスト装置との間で設定コマンドや設定情報を授受することにより、同様の設定を行なえるようにしてもよい。この場合、ホスト装置のOSのプリンタドライバを介して設定を行なえるようにすることもできる。
また、フォトダイレクトプリンタ装置がスキャナ機能を搭載している場合には、接続対象クラスに対する設定に関するナビゲーションシートのような設定用紙を印刷し、スキャナ機能を利用して読み込み、上記の設定を行なうこともできる。設定用紙には、たとえばマークシート方式などの設定用紙を用いることができる。
また、以上では、USB対応の電子機器の一例としてフォトダイレクトプリンタ装置を例示したが、本発明を実施するためには電子機器の主たる処理機能は印刷出力である必要はなく、他の情報処理であってかまわない。
また、図1では、USBデバイスを接続するAジャックは1つのみ設けられている構成を例示したが、複数のAジャックが設けられ、これら複数のAジャックをUSBホスト制御部が制御する構成でも上記と同等の制御を行なうことができる。
本発明はUSBホストのAジャック、特に組み込み機器で機能制限のあるUSBデバイスと接続するために用いられるUSBホストのAジャックを搭載する任意の電子機器に適用することができる。本発明を実施するためのソフトウェアは、ROM(上記の1002)などのメモリやHDDなどのストレージに格納しておく他、ネットワークや、外部記憶媒体経由で画像形成装置に供給、あるいはアップデートすることができる。
本発明を実施したフォトダイレクトプリンタ装置の構成を示したブロック図である。 図1の装置におけるUSB接続処理の基本部分を示したシーケンス図である。 図1の装置におけるUSB接続制御の一例を示したフローチャート図である(制御例1)。 図1の装置におけるUSB接続制御の一例を示したフローチャート図である(制御例2)。 図1の装置におけるUSB接続制御の一例を示したシーケンス図である(制御例3)。
符号の説明
1000 フォトダイレクトプリンタ装置
1001 CPU
1002 ROM
1003 RAM
1004 EEPROM
1005 表示操作部
1006 記録制御部
1007 記録部
1008 USBホスト制御部
1009 フラッシュメモリカードスロット
1010 Aジャック
1011 USBデバイス
1012 USBデバイス制御部
1013 Bジャック

Claims (9)

  1. 異なる複数のデバイスクラスのUSBデバイスの接続を制御するUSBホスト制御部を有する電子機器において、
    前記複数のデバイスクラスのうち接続を許容する接続対象クラスをユーザ設定する設定手段と、
    前記USBホスト制御部を経由してUSBデバイスが接続される際、該USBデバイスのデバイスクラスと、前記設定手段に設定された接続対象クラスとを比較し、該USBデバイスのデバイスクラスと該接続対象クラスが一致した場合のみ該USBデバイスの接続を許容すべく前記USBホスト制御部を制御する制御手段を有することを特徴とする電子機器。
  2. 請求項1に記載の電子機器において、前記設定手段により、複数の接続対象クラスを優先順位とともに設定し、前記制御手段はUSBデバイスが接続される際、該USBデバイスのデバイスクラスと、前記設定手段に設定された接続対象クラスを前記設定手段に設定された優先順位に基づいて順次比較し、デバイスクラスが接続対象クラスと一致したUSBデバイスの接続を許容することを特徴とする電子機器。
  3. 請求項2に記載の電子機器において、さらにUSBデバイス制御部を有し、該USBデバイス制御部を経由してUSBホスト機能を有するホスト装置が接続されると前記設定手段によって設定された優先順位を強制的に変更することを特徴とする電子機器。
  4. 請求項3に記載の電子機器において、前記ホスト装置の接続が解除されると、前記の強制的に変更された優先順位を変更前の優先順位に戻すことを特徴とする電子機器。
  5. 異なる複数のデバイスクラスのUSBデバイスの接続を制御するUSBホスト制御部を有する電子機器の制御方法において、
    前記USBホスト制御部を経由してUSBデバイスが接続される際、該USBデバイスのデバイスクラスと、ユーザ設定された前記複数のデバイスクラスのうち接続を許容する接続対象クラスとを比較し、該USBデバイスのデバイスクラスと該接続対象クラスが一致した場合のみ該USBデバイスの接続を許容すべく前記USBホスト制御部を制御する制御過程を有することを特徴とする電子機器の制御方法。
  6. 請求項5に記載の電子機器の制御方法において、複数の接続対象クラスが優先順位とともにユーザ設定され、前記制御過程において、USBデバイスが接続される際、該USBデバイスのデバイスクラスと、前記ユーザ設定された接続対象クラスを前記ユーザ設定された優先順位に基づいて順次比較し、デバイスクラスが接続対象クラスと一致したUSBデバイスの接続を許容することを特徴とする電子機器の制御方法。
  7. 請求項6に記載の電子機器の制御方法において、さらにUSBデバイス制御部を有し、該USBデバイス制御部を経由してUSBホスト機能を有するホスト装置が接続されるとユーザ設定された優先順位を強制的に変更することを特徴とする電子機器の制御方法。
  8. 請求項7に記載の電子機器の制御方法において、前記ホスト装置の接続が解除されると、前記の強制的に変更された優先順位を変更前の優先順位に戻すことを特徴とする電子機器の制御方法。
  9. 請求項5〜8のいずれか1項に記載の電子機器の制御方法を実施すべく、前記USBホスト制御部を制御するため電子機器のCPUにより実行されることを特徴とする電子機器の制御プログラム。
JP2006337726A 2006-12-15 2006-12-15 電子機器、電子機器の制御方法、および電子機器の制御プログラム Withdrawn JP2008152404A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006337726A JP2008152404A (ja) 2006-12-15 2006-12-15 電子機器、電子機器の制御方法、および電子機器の制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006337726A JP2008152404A (ja) 2006-12-15 2006-12-15 電子機器、電子機器の制御方法、および電子機器の制御プログラム

Publications (1)

Publication Number Publication Date
JP2008152404A true JP2008152404A (ja) 2008-07-03

Family

ID=39654533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006337726A Withdrawn JP2008152404A (ja) 2006-12-15 2006-12-15 電子機器、電子機器の制御方法、および電子機器の制御プログラム

Country Status (1)

Country Link
JP (1) JP2008152404A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010020609A (ja) * 2008-07-11 2010-01-28 Ricoh Co Ltd 情報処理装置、クラスモジュール起動制御方法及びプログラム
JP2010055438A (ja) * 2008-08-29 2010-03-11 Brother Ind Ltd 無線設定システム及び印刷装置
JP2011065298A (ja) * 2009-09-15 2011-03-31 Ricoh Co Ltd 情報処理装置、情報処理システム、情報処理方法、および情報処理プログラム
JP2012133783A (ja) * 2010-12-21 2012-07-12 Samsung Electronics Co Ltd マルチインターフェースメモリカードとその動作方法
JP2013156911A (ja) * 2012-01-31 2013-08-15 Nec Access Technica Ltd デバイス機器およびその制御方法
US8713212B1 (en) 2012-10-24 2014-04-29 Alpine Electronics, Inc. Electronic device, communication control method of electronic device, and information terminal device
CN111221768A (zh) * 2020-01-10 2020-06-02 珠海趣印科技有限公司 一种usb设备复合通讯方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010020609A (ja) * 2008-07-11 2010-01-28 Ricoh Co Ltd 情報処理装置、クラスモジュール起動制御方法及びプログラム
JP2010055438A (ja) * 2008-08-29 2010-03-11 Brother Ind Ltd 無線設定システム及び印刷装置
JP2011065298A (ja) * 2009-09-15 2011-03-31 Ricoh Co Ltd 情報処理装置、情報処理システム、情報処理方法、および情報処理プログラム
JP2012133783A (ja) * 2010-12-21 2012-07-12 Samsung Electronics Co Ltd マルチインターフェースメモリカードとその動作方法
JP2013156911A (ja) * 2012-01-31 2013-08-15 Nec Access Technica Ltd デバイス機器およびその制御方法
US8713212B1 (en) 2012-10-24 2014-04-29 Alpine Electronics, Inc. Electronic device, communication control method of electronic device, and information terminal device
CN111221768A (zh) * 2020-01-10 2020-06-02 珠海趣印科技有限公司 一种usb设备复合通讯方法及系统
CN111221768B (zh) * 2020-01-10 2024-05-31 珠海趣印科技有限公司 一种usb设备复合通讯方法及系统

Similar Documents

Publication Publication Date Title
JP2008152404A (ja) 電子機器、電子機器の制御方法、および電子機器の制御プログラム
US8451484B2 (en) Information processing apparatus, printing apparatus, electronic device, and computer program therefor based on existence of printer configuration file
US20120216063A1 (en) Network communication device, peripheral apparatus, and network communication method
US10437538B2 (en) Information processing method for obtaining printer status and non-volatile storage medium
US20130038888A1 (en) Printer With USB Interface and Driver Installing Method and System Thereof
US8612969B2 (en) Electronic device
US8902446B2 (en) Printing system and information processing apparatus
JP2013105361A (ja) プリンタードライバー、プリンタードライバーのインストーラー、および印刷データの処理方法
JP3914949B2 (ja) Usbストレージデバイス、その制御装置及びその制御装置に実行させるためのプログラム
US7489414B2 (en) Image forming system and image forming apparatus
JP2006079634A5 (ja)
US20060033944A1 (en) Status information processor
JP2004287993A (ja) システムバージョンの管理方法および装置並びに情報処理システム
JP3699717B2 (ja) Usbストレージデバイス及びその制御装置
JP2001356885A (ja) 制御方法及び電子装置
JP2007179371A (ja) 印刷システム
JP2009265982A (ja) 印刷装置
US6871924B2 (en) Multi-mode direct print adapter
JP4366148B2 (ja) 情報処理装置、および情報処理装置の制御プログラム更新方法
US20070244580A1 (en) Printing System and Interface Device Therefor
JP5869228B2 (ja) 周辺装置、画像読取装置および情報処理システム
JP2006113968A (ja) プリンタドライバ供給ユニット
JP6040763B2 (ja) 印刷制御プログラム、及び、印刷制御装置
JP4498460B2 (ja) ネットワーク装置及びその制御方法
JP2010044537A (ja) コンピュータプログラム、コンピュータ装置、及び標識付加方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100302