JP2007323316A - 通信装置及び通信方法 - Google Patents

通信装置及び通信方法 Download PDF

Info

Publication number
JP2007323316A
JP2007323316A JP2006152148A JP2006152148A JP2007323316A JP 2007323316 A JP2007323316 A JP 2007323316A JP 2006152148 A JP2006152148 A JP 2006152148A JP 2006152148 A JP2006152148 A JP 2006152148A JP 2007323316 A JP2007323316 A JP 2007323316A
Authority
JP
Japan
Prior art keywords
usb
class
host
usb device
communication apparatus
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.)
Pending
Application number
JP2006152148A
Other languages
English (en)
Inventor
Takateru Kyogoku
貴輝 京極
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 JP2006152148A priority Critical patent/JP2007323316A/ja
Publication of JP2007323316A publication Critical patent/JP2007323316A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】USBインタフェースを用いてOTG規格に則った情報のやり取りをするOTGシステムにおいて、USBデバイス側に搭載するハードウェア資源を少なく保ったまま、ユーザの特別な操作なしに複数のUSBクラス機能を実現できるようにする。
【解決手段】USBデバイスとして動作する際に、第1のデバイス及び第2のデバイスが協調動作することで、順々に前記USBデバイス側のUSBクラス機能を切り替えながらUSBホスト側が要求するUSBクラスを動作させるようにすることによって、USBデバイス側に搭載するハードウェア資源を少なく保ったまま、ユーザの特別な操作なしに複数のUSBクラス機能を実現できるようにする。
【選択図】図1

Description

本発明は通信装置、通信方法及びプログラムに関し、例えばUSBホスト側が要求するUSBクラスを動作させるために用いて好適な技術に関する。
近年、プリンタ、デジタルカメラ等をPCと接続する規格としてほぼ全ての機器はUSB(Universal serial Bus)インタフェースを保持するようになっている。USBは、まさにPCと周辺機器を接続するために制定された規格であり、USBホストと、USBデバイスと役割を明確に分けている。
役割を分けることで、USBホストであるPCが全ての制御権を握り、その為にUSBデバイスである周辺機器側のハードウェア/ソフトウェアの規模を少なく抑え、安価に周辺機器を実装することが出来るように配慮されている。
しかし、明確に役割をわけることによって周辺機器は常にPCを介して情報をやり取りする必要があった。つまり、周辺機器であるデジタルカメラに保存されている画像を、同じく周辺機器であるプリンタに印刷する際には、デジタルカメラの画像を一旦PCにUSB接続により移し、さらにその画像をUSB接続によってPCからプリンタに渡す必要があった。そこで周辺機器側にもUSBホスト機能を持たせることによって、周辺機器同士を直接接続することでUSB通信を可能にする機器が登場した。
しかし、もともとUSBホストの仕様はPCのような高速、大容量記憶媒体を持ったことを前提とされており、周辺機器のコストを増加させてしまったり、機能の中途半端なUSBホストが搭載されてしまったりするような状況であった。そこで、従来のUSBの仕様をそのまま継承した上で、周辺機器同士の接続も可能とし、且つ周辺機器がUSBホストの役割を担う場合でもPC程のコストを必要としないUSB−OTG(On-The-Go)規格が策定された。
USB−OTGでは、USBホストはUSBデバイスに供給すべき電力を少なくすることが許されている。また、対応できないUSBデバイスが接続された場合の動作を明確にすることでUSBホストの機能を搭載する場合でもPC程のコストを強いない規格となっている。
現在、USB規格およびUSB−OTG規格はUSB Implementers Forum,Inc.によって策定、管理されており、非特許文献1及び非特許文献2がUSB仕様、およびUSB−OTG仕様として公開されている。
Universal Serial Bus Specification Revision 2.0(Apr. 27, 2000) On-The-Go Supplement to the USB2.0 Specification Revision 1.0(Dec. 18, 2001)
USB−OTGでは、周辺機器同士を接続するために貧弱な資源でUSBホストを構築していることが多く、1つまたは数種類のクラス機能しか制御できない可能性が高い。また、USBデバイス側機能についても、必要な機能に対応する複数のクラスを同時に動作するように機器を構築するためには、エンドポイントやFIFOと言ったハードウェア資源を複数実装しなければならない。このため、大規模なハードウェア資源を搭載することとなってしまう。
これらの問題に対してこれまでは、一度に動作するクラスは1つかあるいは数種類に留めておき、動作する機能はUSB接続以前にユーザが明示的に機器に設定をすることで少量のハードウェアで実現できるようにするなどの工夫がなされてきた。しかしながら前記の対応では人間の手を介するので、設定クラスの間違いによる誤操作、誤動作や、操作の手間等による使い勝手の悪さがある。
本発明は前述の問題点に鑑み、USBインタフェースを用いてOTG規格に則った情報のやり取りをするOTGシステムにおいて、USBデバイス側に搭載するハードウェア資源を少なく保ったまま、ユーザの特別な操作なしに複数のUSBクラス機能を実現するためのUSB−OTGシステム装置を提供することを目的としている。
本発明の通信装置は、USBインタフェースを用いてOTG規格に則った情報のやり取りをする通信装置であって、USBデバイスとして動作する際に、第1のデバイス及び第2のデバイスが協調動作することで、順々に前記USBデバイス側のUSBクラス機能を切り替えながらUSBホスト側が要求するUSBクラスを動作させることを特徴とする。
本発明の通信方法は、USBインタフェースを用いてOTG規格に則った情報のやり取りをする通信方法であって、USBデバイスとして動作する際に、第1のデバイス及び第2のデバイスが協調動作する際に、順々に前記USBデバイス側のUSBクラス機能を切り替える切替工程と、USBホスト側が要求するUSBクラスを動作させる制御工程とを有することを特徴とする。
本発明のプログラムは、前記の方法の各工程をコンピュータにて実施させることを特徴とする。
本発明によれば、USBデバイスとして動作する際に、第1のデバイス及び第2のデバイスが協調動作することで、順々に前記USBデバイス側のUSBクラス機能を切り替えながらUSBホスト側が要求するUSBクラスを動作させるようにした。これにより、USBデバイス側に搭載するハードウェア資源を少なく保ったまま、ユーザの特別な操作なしに複数のUSBクラス機能を実現するためのUSB−OTGシステム装置を提供できる。
(第1の実施形態)
以下、本発明の実施形態を図面に基づき説明する。
まず、本実施形態を図1〜図5に基づき説明する。
図1は、本実施形態に係るUSB−OTGシステム装置において、デュアルロールAデバイス及びデュアルロールBデバイス機器内の機能構成例を示すブロック図である。
図1において、101はデュアルロールAデバイスであり、102はUSB接続で提供するクラス機能を実現するUSBホストクラスドライバである。103はUSBデバイス接続時にUSBデバイスのアドレス付けから構成を読み込み、動作する構成をホストが指定するまでの一連の動作を実現するenumeration機構である。
104は、本実施形態の自動クラス切り替えによって正しく接続できない機器が接続されていることを判断し、エラー状態の処理を行う接続エラー判定機構である。105はデュアルロールAデバイス101に搭載されているAまたはAB-typeのケーブルを接続することが出来るA or ABレセプタクルであり、106はデュアルロールAデバイス101に接続されるA-typeプラグである。
107はデュアルロールBデバイス108に接続されるB-typeプラグである。108はデュアルロールBデバイスであり、109はデュアルロールBデバイス108に搭載されているBレセプタクルである。110はUSBホスト状態に遷移した際に本実施形態のクラス切り替え処理を行い、すぐさまUSBバスリセットを発行することでUSBデバイス状態に遷移するホスト制御機構である。111は本実施形態のクラス切り替えを実現するクラス切り替え機構である。また、112はUSB接続で提供するクラス機能を実現するUSBデバイスクラスドライバを示している。
デュアルロールAデバイス101は、A or ABレセプタクル105を具備しており、デュアルロールBデバイス108が接続された際にはenumeration機構103によって一連の接続処理が行われる。これによりデュアルロールBデバイス108がUSBホストクラスドライバ102とやり取りできる機能を保持している場合、デュアルロールAデバイス101とデュアルロールBデバイス108との間で通信が成立する。
逆にデュアルロールBデバイス108がUSBホストクラスドライバ102とやり取りできない場合、本実施形態によってクラスを切り替えて接続を試みる。ところが、接続エラー判定機構104にてそれがある規定の条件に合致した場合にはエラーとして接続処理を中断し、それ以上の通信を行わない。
デュアルロールBデバイス108は、Bレセプタクル109を具備しており、クラス切り替え機構111によってその時のUSBデバイスとしてUSBデバイスクラスドライバ112のどのクラスが有効になるかを決定する。デュアルロールBデバイス108がUSBホスト状態に遷移した際には、ホスト制御機構110によってクラス切り替え機構111を起動し、同時にUSBバスを制御する。図1に示された概念構成を取ることで本実施形態を実現することが出来る。
図2は、本実施形態に係るUSB−OTGシステム装置において、デュアルロールAデバイス及びデュアルロールBデバイスの接続を示す概念図である。
図2において、201はデュアルロールAデバイス、202はA-typeプラグ、203はUSBケーブル、204はB-typeプラグ、205はデュアルロールBデバイスを示している。
デュアルロールAデバイス201及びデュアルロールBデバイス205はUSBケーブル203によって接続されている。このときデュアルロールAデバイス201にはA-typeプラグ202側が接続され、デュアルロールBデバイス204にはB-typeプラグ204側が接続される。本実施形態は図2に示す状態のまま、ユーザの余計な操作なしに機能するUSBクラスを自動的に選択して動作することを目的としている。
図3は、本実施形態に係るデュアルロールAデバイス及びデュアルロールBデバイス機器の構成を具備した情報処理装置のハードウェア構成例を示すブロック図である。
図3において、301はCPU(中央演算処理装置)であり、302はRAM(ランダムアクセスメモリ)であり、303はROM(リードオンリメモリ)である。304はUSB−OTGデュアルロールコントローラであり、305はI/Oコントローラである。また、306はバスである。
本実施形態は図3に示すように構成されるハードウェアで構成される。また必要なモジュールを自由に組み合わせることができ、例えばI/Oコントローラ304の機構等を介して他のハードウェアを付加することが出来る。また、図3はあくまでも本実施形態に係るハードウェアの構成の例である。各モジュールを単一バスで接続しない構成や、I/Oコントローラ304を介してUSB−OTGデュアルロールコントローラ305を接続する等、他のモジュールを介してモジュールを接続する等、形態は様々なものが他に考えられる。
図4は、本実施形態に係るデュアルロールAデバイス201側の接続処理手順の一例を示すフローチャートである。
ステップS401において、デュアルロールBデバイス205がUSBケーブル203を用いて物理的に接続されたか否かを判断する。この判断の結果、接続されていない場合は接続されるまで待機し、接続された場合はステップS402へ進む。
次に、ステップS402において、接続されたデュアルロールBデバイス205に対する接続時のenumerationによってデュアルロールBデバイス205のUSBクラスがデュアルロールAデバイス201と合致するか否かを判断する。この判断の結果、合致していればデュアルロールAデバイス201側の接続処理を終了し、合致していなければステップS403へ進む。
次に、ステップS403において、接続されたデュアルロールBデバイス205に対する接続時のenumerationによってデュアルロールBデバイス205がHNP可能であるか否かを判断する。この判断の結果、不可能であればデュアルロールAデバイス201側の接続処理を終了し、可能であればステップS404へ進む。
次に、ステップS404において、USB−OTG規格に定められているUSBホスト機能をデュアルロールBデバイス205に遷移させる処理を行い、ステップS405へ進む。ステップS405において、USBデバイスとして動作し、ステップS406へ進む。ステップS406において、USBホスト機能が再びデュアルロールAデバイス201に遷移したか否かを判断する。この判断の結果、遷移した場合はステップS407へ進み、遷移していない場合はステップS405に戻る。
ステップS407において、システムで決められたエラー条件を満しているか否かを判断する。この判断の結果、エラー条件を満している場合はデュアルロールAデバイス201側の接続処理を終了し、エラー条件を満していない場合はステップS402に戻る。
本処理の発火の条件は、デュアルロールAデバイス201が起動した際、または幾つかの機器の初期設定が済んだ際、ユーザによりUSB通信を開始する為の何らかの操作が行われた際、USB通信を開始した後等が考えられる。一方、この発火条件をどのようにするかは本実施形態に関わることではない。
ステップS407において判断するシステムで決められたエラー条件は、ステップS402でUSBクラスが合致しなかった回数を計測してある一定回数を上回る、または、最初にデュアルロールBデバイス205がenumeration時に通知したUSBクラスを記憶しておき、再び同じUSBクラスを持ってenumerationが行われた、またはデュアルロールBデバイス205がenumeration時に通知した全てのUSBクラスを記憶しておき、同じUSBクラスがenumeration時に2度現れた、等をエラーの条件とすることが出来る。
図5は、本実施形態に係るデュアルロールBデバイス205側の接続処理手順の一例を示すフローチャートである。
ステップS501において、USBデバイスとして起動するUSBクラスを一つ選択し接続された時にUSBデバイスとしてそのUSBクラスが有効になるように設定し、ステップS502へ進む。
ステップS502において、デュアルロールAデバイス201がUSBケーブル203を用いて物理的に接続されたか否かを判断する。この判断の結果、接続された場合はステップS503へ進み、接続されていない場合は接続されるまで待機する。
次に、ステップS503において、接続時のenumerationによってデュアルロールAデバイス201の保持するクラスと合致しており、USB通信が正常に行われるか否かを判断する。この判断の結果、正常に行われていればデュアルロールBデバイス205側の接続処理を終了し、正常に行われていなければステップS504へ進む。
次に、ステップS504において USBホスト状態が切り替えられてデュアルロールBデバイス205に遷移したか否かを判断する。この判断の結果、デュアルロールBデバイス205がUSBホスト状態に遷移していればステップS505へ、遷移していなければ、遷移するまで待機する。
次に、ステップS505において、USBデバイスとして接続された場合に起動するUSBクラスを他のクラスへ切り替えてステップS506へ進む。ステップS506において、USBバスサスペンドを発行し再びデュアルロールAデバイス201をUSBホスト状態に遷移させてステップS503に戻る。
本処理の発火の条件としては、デュアルロールBデバイス205が起動した際、または幾つかの機器の初期設定が済んだ際、ユーザによりUSB通信を開始するための何らかの操作が行われた際、USB通信を開始した後等が考えられる。ところが、この発火条件をどのようにするかは本実施形態に関わることではない。
また、ステップS501やステップS505で設定するUSBクラスを1つとして本実施形態を説明したが、これを幾つかのクラスを同時に起動する形態で実装することも可能である。本実施形態の目的は搭載すべきハードウェア資源を抑制することから、最小構成となると考えられる単一のクラスの場合について説明をしているのであって、複数USBクラスで本実施形態を実現することが不可能である訳ではない。
さらに、ステップS505にて、幾つかのUSBクラスがデュアルロールBデバイス205の機能として存在する際に、それらをどのような順番にて起動するかは本実施形態に関わることではない。システム構成によってはUSBクラスの起動順序によって、そのメリットデメリットが生じる可能性があるが、これらをどのように実装するかは本実施形態の定めるところではなく、どのような実装であっても本実施形態は実現可能である。
ただし、デュアルロールAデバイス201側のエラー判定条件として同じUSBクラスの出現をエラー判定条件とした場合、当然であるが同じクラスが複数回設定されなければならない。さらに、いずれかのUSBクラスが複数回設定された時点でデュアルロールBデバイス205が保持する全てのUSBクラスが1度ずつ設定されてデュアルロールAデバイス201とenumeration処理が行われた状態でなければならない。
以上のように実装することで、USBインタフェースを用いてOTG規格に則った情報をやり取りするシステムにおいて、USBデバイスとして動作する際にデュアルロールAデバイス201とデュアルロールBデバイス205とが自動的に協調動作する。これにより、順々にUSBデバイス側のUSBクラス機能を切り替えながらUSBホスト側が要求するUSBクラスを動作させるUSB−OTGシステム装置を構築できる。
(第2の実施形態)
本実施形態として、前述した第1の実施形態においてデュアルロールBデバイス205がUSBホスト状態の際に、実際のUSBホストとして動作することも可能である。以下、本実施形態を図6、7に基づき説明する。
図6は、本実施形態に係るUSB−OTGシステム装置において、デュアルロールAデバイス及びデュアルロールBデバイス機器内の機能構成例を示すブロック図である。
図6において、601はデュアルロールAデバイスであり、602はUSB接続で提供するクラス機能を実現するUSBホストクラスドライバである。603はUSBデバイス接続時にUSBデバイスのアドレス付けから構成を読み込み、動作する構成をホストが指定するまでの一連の動作を実現するenumeration機構である。
604は、本実施形態の自動クラス切り替えによって正しく接続できない機器が接続されていることを判断し、エラー状態の処理を行う接続エラー判定機構である。605はデュアルロールAデバイス601に搭載されているAまたはAB-typeのケーブルを接続することが出来るA or ABレセプタクルであり、606はデュアルロールAデバイス601に接続されるA-typeプラグである。
607はデュアルロールBデバイス608に接続されるB-typeプラグであり、608はデュアルロールBデバイスである。609はデュアルロールBデバイス608に搭載されているBレセプタクルである。
610はデュアルロールBデバイス608がUSBホスト状態に遷移した際にUSBホストの動作を制御するホスト制御機構である。611はデュアルロールBデバイス608がUSBホスト状態に遷移した際に動作する機能を提供するUSBホストクラスドライバである。また、612は本実施形態のクラス切り替えを実現するクラス切り替え機構であり、613はUSB接続で提供するクラス機能を実現するUSBデバイスクラスドライバである。
デュアルロールAデバイス601は、A or ABレセプタクル605を具備しており、デュアルロールBデバイス608が接続された際にはenumeration機構603によって一連の接続処理が行われる。これによりデュアルロールBデバイス608がUSBホストクラスドライバ602とやり取りできる機能を保持している場合、デュアルロールAデバイス601とデュアルロールBデバイス608との間で通信が成立する。
逆にデュアルロールBデバイス608がUSBホストクラスドライバ602とやり取りできない場合、本実施形態によってクラスを切り替えて接続を試みる。ところが、接続エラー判定機構604にてそれがある規定の条件に合致した場合にはエラーとして接続処理を中断し、それ以上の通信を行わない。
デュアルロールBデバイス608は、Bレセプタクル609を具備しており、クラス切り替え機構612によってその時のUSBデバイスとしてUSBデバイスクラスドライバ613のどのクラスが有効になるかが決定される。
デュアルロールBデバイス608がUSBホスト状態に遷移した際にはホスト制御機構610によって、USBホストクラスドライバ611の機能がUSBデバイスに提供される。同時にクラス切り替え機構612が起動され、次回USBホスト状態がデュアルロールAデバイス601に遷移した際のクラスを切り替える。図6に示された概念構成を取ることで本実施形態を実現することが出来る。
図7は、本実施形態に係るデュアルロールBデバイス608側の接続処理手順の一例を示すフローチャートである。
ステップS701において、USBデバイスとして起動するUSBクラスを一つ選択し接続された時にUSBデバイスとしてそのUSBクラスが有効になるように設定し、ステップS702へ進む。
次に、ステップS702において、デュアルロールAデバイス601がUSBケーブルを用いて物理的に接続されたか否かを判断する。この判断の結果、接続された場合はステップS703へ進み、接続されていない場合は接続されるまで待機する。次に、ステップS703において、接続時のenumerationによってデュアルロールAデバイス601の保持するクラスと合致しており、USB通信が正常に行われるか否かを判断する。
この判断の結果、正常に行われていれば、デュアルロールBデバイス608側の接続処理を終了し、正常に行われていなければステップS704へ進む。次に、ステップS704において、USBホスト状態が切り替えられてデュアルロールBデバイス608に遷移したか否かを判断する。この判断の結果、デュアルロールBデバイス608がUSBホスト状態に遷移していればステップS705へ進み、遷移していなければ遷移するまで待機する。
次に、ステップS705において、クラスの切換をおこない、ステップS706に進む。次に、ステップS706において、USBホストとして動作するか否かを判断する。この判断の結果、USBホストとして動作する場合は、USBホストの動作を行いつつUSBホストとしての動作をしない、またはUSBホストとしての動作を終了するまで繰り返す。
一方、USBホストとしての動作をしない、またはUSBホストとしての動作を終了する場合はステップS707へ進む。次に、ステップS706において、USBバスサスペンドを発行し、デュアルロールAデバイス601をUSBホスト状態に遷移させてステップS703に戻る。
本処理の発火の条件としては、デュアルロールBデバイス608が起動した際、または幾つかの機器内の初期設定が済んだ際、ユーザによりUSB通信を開始するための何らかの操作が行われた際、USB通信を開始した後等が考えられる。ところが、この発火条件をどの様にするかは本実施形態に関わることではない。
また、ステップS701やステップS705で設定するUSBクラスを一つとして本実施形態を説明したが、これを幾つかのクラスを同時に起動する形態で実装することも可能である。なお、本実施形態の目的が搭載すべきハードウェア資源を抑制することであることから最小構成となると考えられる単一のクラスの場合について説明をしているのであって、複数のUSBクラスで本実施形態を実現することが不可能である訳ではない。
さらに、ステップS705において、幾つかのUSBクラスがデュアルロールBデバイス608の機能として存在する際に、それらをどのような順番にて起動するかは本実施形態に関わることではない。また、システム構成によってはUSBクラスの起動順序によって、そのメリットデメリットが生じる可能性があるが、これらをどのように実装するかは本実施形態の定めるところではなく、どの様な実装であっても本実施形態は実現可能である。
ただし、デュアルロールAデバイス601側のエラー判定条件として同じUSBクラスの出現をエラー判定の条件とした場合、当然であるが同じクラスが複数回設定されなければならない。さらに、いずれかのUSBクラスが複数回設定された時点でデュアルロールBデバイス608が保持する全てのUSBクラスが1度ずつ設定されてデュアルロールAデバイス601とenumeration処理が行われた状態でなければならない。
ステップS706において、USBホストとして動作するか否かをどのような判断基準で判断するかは本実施形態に関わることではない。なお、デュアルロールBデバイス608内部でアプリケーションがホストとして動作するか否かを保持する、または、デュアルロールBデバイス608にユーザがホスト起動の可否を設定するように実装することも可能である。
以上のように実装することで、デュアルロールBデバイス608がUSBホスト状態の際に、実際のUSBホストとして動作することが可能である。なお、本実施形態に係るその他の構成及び動作は、前述した第1の実施形態と同じであることから、その説明は省略する。
(第3の実施形態)
また、本発明の第3の実施形態として、前述した第1の実施形態においてデュアルロールAデバイス201で動作するUSBデバイスのUSBクラスを切り替えることも可能である。以下、本実施形態を図8〜10に基づき説明する。
図8は、本実施形態に係るUSB−OTGシステム装置において、デュアルロールAデバイス及びデュアルロールBデバイス機器内の機能構成例を示すブロック図である。
図8において、801はデュアルロールBデバイスであり、802はUSB接続で提供するクラス機能を実現するUSBホストクラスドライバである。803はUSBデバイス接続時にUSBデバイスのアドレス付けから構成を読み込み、動作する構成をUSBホストが指定するまでの一連の動作を実現するenumeration機構である。
804は、本実施形態の自動クラス切り替えによって正しく接続できない機器が接続されていることを判断し、エラー状態の処理を行う接続エラー判定機構であり、805はデュアルロールBデバイス801に搭載されているB or ABレセプタクルである。806はデュアルロールBデバイス801に接続されているB-typeプラグである。
807はデュアルロールAデバイス808に接続されるA-typeプラグであり、808はデュアルロールAデバイスである。809はデュアルロールAデバイス808に搭載されているAレセプタクルである。810はデュアルロールAデバイス808がUSBホスト状態に遷移した際にUSBホストの動作を制御するホスト制御機構である。811はデュアルロールAデバイス808がUSBホスト状態に遷移した際に動作する機能を提供するUSBホストクラスドライバである。
812は本実施形態のクラス切り替えを実現するクラス切り替え機構であり、813はデュアルロールAデバイス808がUSBデバイスとして動作する際に提供するクラス機能を実現するUSBデバイスクラスドライバである。
デュアルロールBデバイス801は、Bレセプタクル605を具備しており、デュアルロールAデバイス808が接続された際にはUSBデバイスとして動作する。USBホスト状態が遷移してデュアルロールBデバイス801がUSBホスト状態になるとenumeration機構803によってUSBデバイスへ一連の接続処理が行われる。これによりデュアルロールAデバイス808がUSBホストクラスドライバ802とやり取りできる機能を保持している場合、デュアルロールBデバイス801とデュアルロールAデバイス808との間で通信が成立する。
逆にUSBホストクラスドライバ802とやり取りできない場合、本実施形態によってクラスを切り替えて接続を試みる。ところが、接続エラー判定機構804にてそれがある規定の条件に合致した場合にはエラーとして接続処理を中断し、それ以上の通信を行わない。
デュアルロールAデバイス808は、Aレセプタクル809を具備しており、デュアルロールBデバイス801と接続された際にはホスト機構810とUSBホストクラスドライバ811によってUSBホストとして動作する。USBホスト状態が遷移しデュアルロールAデバイス808がUSBデバイスとして振る舞う時、クラス切り替え機構812によってUSBデバイスクラスドライバ813のうち一つのUSBクラスがデュアルロールBデバイス801とやり取りを試みる。
ホスト状態が遷移する度にクラス切り替え機構812によって起動されるUSBクラスが切り替えられデュアルロールBデバイス801を満足するクラスが自動的に検出される。図8に示された概念構成を取ることで本実施形態を実現することが出来る。
図9は、本実施形態に係るデュアルロールBデバイス801側の接続処理手順の一例を示すフローチャートである。
ステップS901において、デュアルロールAデバイス808がUSBケーブルを用いて物理的に接続されたか否かを判断する。この判断の結果、接続された場合はステップS902に進み、接続されていない場合は接続されるまで待機する。
次に、ステップS902において、デュアルロールAデバイス808からなされるenumerationに応答し、ステップS903へ進む。次に、ステップS903において、USBバスサスペンドが発行されたか否かを判断する。この判断の結果、USBバスサスペンドが発行されたらステップS904へ進み、発行されていなければ発行されるまで待機する。
次に、ステップS904においてUSB−OTG規格に則ってホスト切り替えの処理を行い、ステップS905へ進み。ステップS905において、デュアルロールAデバイス808へUSBデバイス接続の一連の処理としてenumerationを行い、ステップS906へ進む。
次に、ステップS906において、デュアルロールAデバイス808のUSBクラスが適合しているか否かを判断する。この判断の結果、USBクラスが適合していればデュアルロールBデバイス801側の接続処理を終了し、適合していなければステップS907へ進む。
次に、ステップS907において、システムで決められたエラー条件を満しているか否かを判断する。この判断の結果、エラー条件を満している場合はデュアルロールBデバイス801側の接続処理を終了し、満していない場合はステップS902へ戻る。
本処理の発火の条件は、デュアルロールBデバイス801が起動した際、または幾つかの機器内の初期設定が済んだ際、ユーザによりUSB通信を開始する為の何らかの操作が行われた際、USB通信を開始した後等が考えられる。ところが、この発火条件をどのようにするかは本実施形態に関わることではない。
また、ステップS907において判断するシステムで決められたエラー条件は、ステップS902でUSBクラスが合致しなかった回数を計測しある一定回数を上回る、最初にデュアルロールBデバイス801がenumeration時に通知したUSBクラスを記憶しておき、再び同じUSBクラスを持ってenumerationが行われた、またはデュアルロールAデバイス808がenumeration時に通知した全てのUSBクラスを記憶しておき、同じUSBクラスがenumeration時に2度現れた等をエラーの条件とすることが出来る。
図10は、本実施形態に係るデュアルロールAデバイス808側の接続処理手順の一例を示すフローチャートである。
ステップS1001において接続されたデュアルロールBデバイス801に対してenumerationを行い、ステップS1002へ進む。
次に、ステップS1002において、enumerationの結果からデュアルロールBデバイス801はHNPが可能であるか否かを判断する。この判断の結果、HNPが可能であればステップS1003へ進み、不可能であればデュアルロールAデバイス808側の接続処理を終了する。
次に、ステップS1003において、USBデバイスとして起動するクラスを切り替えて、ステップS1004へ進む。ステップS1004において、USBバスサスペンドを発行し、ステップS1005へ進む。そして、ステップS1005において、USBホスト状態が遷移したか否かを判断する。この判断の結果、USBホスト状態が遷移したらステップS1006へ進み、遷移していなければ遷移するまで待機する。
次に、ステップS1006において、起動したクラスがデュアルロールBデバイス801のUSBホストクラスと合致したか否かを判断する。この判断の結果、合致していればデュアルロールAデバイス808側の接続処理を終了し、合致していなければステップS1003へ戻る。
本処理の発火の条件としては、デュアルロールAデバイス808が起動した際、または幾つかの機器の初期設定が済んだ際、ユーザによりUSB通信を開始するための何らかの操作が行われた際、USB通信を開始した後等が考えられる。ところが、この発火条件をどのようにするかは本実施形態に関わることではない。
以上のように実装することで、デュアルロールAデバイス808で動作するUSBデバイスのUSBクラスを切り替えることが可能である。なお、本実施形態に係るその他の構成及び動作は、前述した第1の実施形態と同じであることから、その説明は省略する。
(本発明に係る他の実施形態)
前述した本発明の実施形態における通信装置を構成する各手段、並びに通信方法の各工程は、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図4、5、7、9、10に示すフローチャートに対応したプログラム)を、システムまたは装置に直接、または遠隔から供給する。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、その他の方法として、本発明のプログラムを暗号化してCD−ROM等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
本発明の第1の実施形態に係るUSB−OTGシステム装置において、デュアルロールAデバイス及びデュアルロールBデバイス機器内の機能構成例を示すブロック図である。 本発明の第1の実施形態に係るUSB−OTGシステム装置において、デュアルロールAデバイスとデュアルロールBデバイスとの接続例を示す概念図である。 本発明の第1の実施形態に係るUSB−OTGシステム装置において、デュアルロールAデバイス及びデュアルロールBデバイス機器の構成を具備した情報処理装置のハードウェア構成例を示すブロック図である。 本発明の第1の実施形態に係るUSB−OTGシステム装置において、デュアルロールAデバイス側の接続処理手順の一例を示すフローチャートである。 本発明の第1の実施形態に係るUSB−OTGシステム装置において、デュアルロールBデバイス側の接続処理手順の一例を示すフローチャートである。 本発明の第2の実施形態に係るUSB−OTGシステム装置において、 デュアルロールAデバイス及びデュアルロールBデバイス機器内の機能構成例を示すブロック図である。 本発明の第2の実施形態に係るUSB−OTGシステム装置において、Bデバイス側の接続処理手順の一例を示すフローチャートである。 本発明の第3の実施形態に係るUSB−OTGシステム装置において、デュアルロールAデバイス及びデュアルロールBデバイス機器内の機能構成例を示すブロック図である。 本発明の第3の実施形態に係るUSB−OTGシステム装置において、デュアルロールBデバイス側の接続処理手順の一例を示すフローチャートである。 本発明の第3の実施形態に係るUSB−OTGシステム装置において、デュアルロールAデバイス側の接続処理手順の一例を示すフローチャートである。
符号の説明
101 デュアルロールAデバイス
102 USBホストクラスドライバ
103 enumeration機構
104 接続エラー判定機構
105 A or ABレセプタクル
106 A-typeプラグ
107 B-typeプラグ
108 デュアルロールBデバイス
109 Bレセプタクル
110 ホスト制御機構
111 クラス切り替え機構
112 USBデバイスクラスドライバ
201 デュアルロールAデバイス
202 A-typeプラグ
203 USBケーブル
204 B-typeプラグ
205 デュアルロールBデバイス
301 CPU
302 RAM
303 ROM
304 USB−OTGデュアルロールコントローラ
305 I/Oコントローラ
306 バス
601 デュアルロールAデバイス
602 USBホストクラスドライバ
603 enumeration機構
604 接続エラー判定機構
605 A or ABレセプタクル
606 A-typeプラグ
607 B-typeプラグ
608 デュアルロールBデバイス
609 Bレセプタクル
610 ホスト制御機構
611 USBホストクラスドライバ
612 クラス切り替え機構
613 USBデバイスクラスドライバ
801 デュアルロールBデバイス
802 USBホストクラスドライバ
803 enumeration機構
804 接続エラー判定機構
805 B or ABレセプタクル
806 B-typeプラグ
807 A-typeプラグ
808 デュアルロールAデバイス
809 Aレセプタクル
810 ホスト制御機構
811 USBホストクラスドライバ
812 クラス切り替え機構
813 USBデバイスクラスドライバ

Claims (15)

  1. USBインタフェースを用いてOTG規格に則った情報のやり取りをする通信装置であって、
    USBデバイスとして動作する際に、第1のデバイス及び第2のデバイスが協調動作することで、順々に前記USBデバイス側のUSBクラス機能を切り替えながらUSBホスト側が要求するUSBクラスを動作させることを特徴とする通信装置。
  2. 前記協調動作は、前記USBホスト側に搭載されるenumeration機構及び接続エラー判定機構であり、
    前記USBデバイス側は、ホスト制御機構及びクラス切り替え機構であることを特徴とする請求項1に記載の通信装置。
  3. 前記USBホスト側に搭載するenumeration機構は、前記USBデバイス側のクラスが前記USBホスト側が要求するクラスでない場合に、HNPにより一旦ホスト機能を交代する機能を有していることを特徴とする請求項1または2に記載の通信装置。
  4. 前記USBホスト側に搭載する接続エラー判定機構は、前記USBデバイス側のクラスが前記USBホスト側が要求するクラスでない場合に、クラス切り替え処理を繰り返し、前記繰り返した回数によって前記USBデバイス側を接続できないUSB機器であると判断し、エラー処理を行う機能を有していることを特徴とする請求項1〜3の何れか1項に記載の通信装置。
  5. 前記USBホスト側に搭載する接続エラー判定機構は、前記USBデバイス側のクラスが前記USBホスト側が要求クラスでない場合に、クラス切り替え処理を繰り返す際に、前記USBデバイス側の最初のクラスを記憶しておき、繰り返している間に同一のクラスが出現した時点で前記USBデバイス側を接続できないUSB機器であると判断し、エラー処理を行う機能を有していることを特徴とする請求項1〜3の何れか1項に記載の通信装置。
  6. 前記USBホスト側に搭載する接続エラー判定機構は、前記USBデバイス側のクラスが前記USBホスト側が要求するクラスでない場合に、クラス切り替え処理を繰り返す際に、前記USBデバイス側の全てのクラスを記憶しておき、繰り返している間に以前に出現したクラスを検知した時点で前記USBデバイス側を接続できないUSB機器であると判断し、エラー処理を行う機能を有していることを特徴とする請求項1〜3の何れか1項に記載の通信装置。
  7. 前記USBデバイス側に搭載するホスト制御機構は、前記USBデバイス側がHNPによって前記USBホストの役割を担った場合に、前記クラス切り替え機構を発動する間、前記USBバスにはSOFを発行し、その後USBバスサスペンド状態にすることで前記USBデバイスの役割に戻す機能を有していることを特徴とする請求項1〜6の何れか1項に記載の通信装置。
  8. 前記USBデバイス側に搭載するホスト制御機構は、前記USBデバイス側がHNPによって前記USBホストの役割を担った場合に、前記クラス切り替え機構を発動する間、前記USBバスにはバスリセットを発行し、その後前記USBバスサスペンド状態にすることで前記USBデバイスの役割に戻す機能を有していることを特徴とする請求項1〜7の何れか1項に記載の通信装置。
  9. 前記USBデバイス側に搭載するクラス切り替え機構は、前記USBデバイス側が起動した際、または接続の初期段階で最初に起動するUSBクラスを設定し、前記ホスト制御機構が制御した時点で起動するUSBクラスを切り替えていく機能を有していることを特徴とする請求項1〜8の何れか1項に記載の通信装置。
  10. 前記USBホスト側は、A-typeレセプタクルを搭載していることを特徴とする請求項1〜9の何れか1項に記載の通信装置。
  11. 前記USBホスト側は、AB-typeレセプタクルを搭載していることを特徴とする請求項1〜9の何れか1項に記載の通信装置。
  12. 前記USBデバイス側は、B-typeレセプタクルを搭載していることを特徴とする請求項1〜9の何れか1項に記載の通信装置。
  13. 前記USBデバイス側は、AB-typeレセプタクルを搭載していることを特徴とする請求項1〜9の何れか1項に記載の通信装置。
  14. USBインタフェースを用いてOTG規格に則った情報のやり取りをする通信方法であって、
    USBデバイスとして動作する際に、第1のデバイス及び第2のデバイスが協調動作する際に、順々に前記USBデバイス側のUSBクラス機能を切り替える切替工程と、
    USBホスト側が要求するUSBクラスを動作させる制御工程とを有することを特徴とする通信方法。
  15. 請求項14記載の方法の各工程をコンピュータにて実施させることを特徴とするプログラム。


JP2006152148A 2006-05-31 2006-05-31 通信装置及び通信方法 Pending JP2007323316A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006152148A JP2007323316A (ja) 2006-05-31 2006-05-31 通信装置及び通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006152148A JP2007323316A (ja) 2006-05-31 2006-05-31 通信装置及び通信方法

Publications (1)

Publication Number Publication Date
JP2007323316A true JP2007323316A (ja) 2007-12-13

Family

ID=38856075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006152148A Pending JP2007323316A (ja) 2006-05-31 2006-05-31 通信装置及び通信方法

Country Status (1)

Country Link
JP (1) JP2007323316A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010027128A (ja) * 2008-07-17 2010-02-04 Sony Corp 駆動装置および方法、プログラム、並びに記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010027128A (ja) * 2008-07-17 2010-02-04 Sony Corp 駆動装置および方法、プログラム、並びに記録媒体

Similar Documents

Publication Publication Date Title
JP5597104B2 (ja) データ転送装置及びその制御方法
JP4799417B2 (ja) ホストコントローラ
JP4900760B2 (ja) Osイメージのデプロイメントマシン及び方法
JP2003316719A (ja) Usbホストの役割をする上流の周辺機器
JP2007233800A (ja) インタフェース回路における転送方式切換回路
CN112395232A (zh) 用于优化设备功率和效率的方法、系统和设备
CN102314360B (zh) 图像形成装置
CN102314214A (zh) 使用外围设备的系统、服务器装置及方法
CN103607429A (zh) 云计算业务实现方法和系统
JP2011076437A (ja) デバイス共有システム、デバイス共有サーバ、デバイス共有クライアント、およびデバイス共有方法
JP2008152404A (ja) 電子機器、電子機器の制御方法、および電子機器の制御プログラム
JP2016218976A (ja) 集積回路チップ及びそれを複数個有する情報処理装置
JP2007058786A (ja) ブリッジ及びその制御方法
JP2007323316A (ja) 通信装置及び通信方法
US20040109195A1 (en) Printer expansion method and apparatus
JP2005335390A (ja) 印刷装置の長寿命化
US8972625B2 (en) Electronic apparatus and host determination method
JP4900805B2 (ja) Osイメージのデプロイメントマシン及び方法
JP3814461B2 (ja) プリンタ、プリンタの制御方法、記憶媒体
JP2006126938A (ja) データ転送システム及びそのデータ転送方法
JP2006155067A (ja) 記憶装置及び記憶装置制御方法
CN113867835B (zh) 用于dsp动态加载的装置及方法
JP4452751B2 (ja) 機能制御装置、及び方法
JP6399279B2 (ja) 通信装置
JP2008269380A (ja) 情報処理装置