JP4725397B2 - Usb複合デバイス,usb通信システム,及びusb通信方法 - Google Patents

Usb複合デバイス,usb通信システム,及びusb通信方法 Download PDF

Info

Publication number
JP4725397B2
JP4725397B2 JP2006103750A JP2006103750A JP4725397B2 JP 4725397 B2 JP4725397 B2 JP 4725397B2 JP 2006103750 A JP2006103750 A JP 2006103750A JP 2006103750 A JP2006103750 A JP 2006103750A JP 4725397 B2 JP4725397 B2 JP 4725397B2
Authority
JP
Japan
Prior art keywords
usb
host
logical
subclass
communication command
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.)
Expired - Fee Related
Application number
JP2006103750A
Other languages
English (en)
Other versions
JP2007279932A (ja
Inventor
栄二 南
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2006103750A priority Critical patent/JP4725397B2/ja
Priority to US11/784,276 priority patent/US7568053B2/en
Publication of JP2007279932A publication Critical patent/JP2007279932A/ja
Application granted granted Critical
Publication of JP4725397B2 publication Critical patent/JP4725397B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は,USB複合デバイス,USB通信システム,及びUSB通信方法に関し,特に,異なるUSBサブクラスの複数デバイスを,共通のUSBサブクラスのデバイスとして同一の論理インターフェースに割当てて,ホストには前記共通の論理インターフェースの論理ユニットごとにそれぞれのデバイスに対応した通信コマンドで各デバイスと通信を行わせるUSB複合デバイス,USBシステム,及びUSB通信方法に関する。
プリンタ,スキャナ,ファクシミリ装置などのデバイスを備え,パーソナルコンピュータなどのホストに接続される複合機が知られている。例えば,特許文献1には,かかる複合機がUSB(ユニバーサルシリアルバス)インターフェースによりパーソナルコンピュータと接続され,パーソナルコンピュータから複合機の各デバイスの機能を制御する方法が記載されている。
更に,近時ではこうした複合機に,メモリカード等の記憶媒体が装着可能なメモリカード用リーダライタなどのデバイスを設け,USBインターフェースにより接続されたホストから,複合機に装着された記憶媒体へのデータ送受信を行う方法が提案されている。より具体的には,単一の物理インターフェース上にUSB規格で定める複数の論理インターフェースを設け,その論理インターフェースにプリンタやメモリカード用リーダライタなどのデバイスを割当てることにより,ホストは各論理インターフェースごとにデバイスを認識でき,ホストとデバイスとのデータ送受信が可能となる。
特開2003−198779
ここで,プリンタやメモリカード用リーダライタなどのデバイスは,デバイスの種類とデバイスがサポートする通信コマンドの種別に応じて,USB規格におけるUSBクラス及びUSBサブクラスが定義されている。例えば,メモリカード用リーダライタのUSBクラスは「マスストレージ」であり,USBサブクラスは「SCSI」である。そして,複数のデバイスを接続する際には,USB規格では,USBクラスとUSBサブクラスの1つの組合せのデバイスに対し,1つの論理インターフェースが割当てられる。すると,複合機がUSBクラスやUSBサブクラスが異なるデバイスを複数搭載する場合には,USBクラスとUSBサブクラスの組合せの数だけ論理インターフェースを設ける必要がある。
よって,複合機にプリンタとスキャナといったUSBクラスが異なるデバイスの場合は当然別々の論理インターフェースを割当てる必要がある。また,メモリカード用リーダライタとCD/DVD−Rドライブのように,USBクラスはいずれも「マスストレージ」で同じであるが,メモリカード用リーダライタはUSBサブクラスが「SCSI」,CD/DVD−RドライブはUSBサブクラスが「ATAPI」というようにUSBサブクラスが異なるデバイスを設ける場合には,USBサブクラス別に論理インターフェースを割当てる必要がある。
しかしながら,論理インターフェース数を増加すると,増加した論理インターフェースを制御するために複合機に搭載されるデバイスコントローラの回路規模を拡大せねばならず,そのためにはコスト高となってしまうという問題がある。
そこで,上記の問題点に鑑みてなされた本発明の目的は,論理インターフェース数を増やすことなくUSBサブクラスの異なるデバイスを設け,それぞれのデバイスとホストとの通信を可能にするUSB複合デバイス等を提供することにある。
上記の目的を達成するために,本発明の第1の側面によれば,ホストとの通信コマンド種別に対応したUSBサブクラスを有する複数デバイスを備え, 前記デバイスに論理インターフェースを割当て,前記論理インターフェースごとに単一のUSBサブクラスを対応させて,前記ホストと通信を行うUSB複合デバイスにおいて,第1の通信コマンドに対応した第1のUSBサブクラスである第1のデバイスと,前記第1の通信コマンドと共通の通信コマンドを有する第2の通信コマンドに対応した第2のUSBサブクラスである第2のデバイスとを,共通のUSBサブクラスのデバイスとして共通の論理インターフェースに割当て,前記共通の論理インターフェースに前記共通のUSBサブクラスを対応させた論理インターフェース情報を前記ホストの要求に応答して送信し,前記ホストに,前記論理インターフェースに関連づけて定義される論理ユニット数の問合せを前記共通の通信コマンドにより発行させる。そして,前記ホストからの論理ユニット数の問合せに応答して,前記第1,第2のデバイス数に対応する論理ユニット数を送信し,前記ホストに,前記論理ユニットごとのデバイス情報の問合せを前記共通の通信コマンドにより発行させる。更に,前記ホストからのデバイス情報の問合せに応答して,第1の論理ユニットに割当てられた前記第1のデバイスは前記第1のUSBサブクラスに対応したデバイス情報を,第2の論理ユニットに割当てられた前記第2のデバイスは前記第2のUSBサブクラスに対応したデバイス情報をそれぞれ前記ホストに送信し,前記ホストに,前記第1のデバイスとは前記第1の通信コマンドで,前記第2のデバイスとは前記第2の通信コマンドで通信を行わせることを特徴とする。
上記第1の側面によれば,USB複合デバイスは,USBサブクラスが異なるデバイスを共通のUSBサブクラスのデバイスとして共通の論理インターフェースを割り当て,その共通の論理インターフェースについては,共通のUSBサブクラスを対応させた論理インターフェース情報をホストに送信することにより,ホストにその共通の論理インターフェースに関連付けて論理ユニットを一旦認識させる。そして,その後に各論理ユニットに割当てられたデバイスがそのUSBサブクラスを含むデバイス情報をホストに送信することにより,ホストはそのUSBサブクラスにしたがって各デバイスがサポートするコマンドにより各デバイスと通信する。よって,USB複合デバイスは論理インターフェースを増やすことなく異なるUSBサブクラスのデバイスを接続することが可能となる。
以下,図面にしたがって本発明の実施の形態について説明する。但し,本発明の技術的範囲はこれらの実施の形態に限定されず,特許請求の範囲に記載された事項とその均等物まで及ぶものである。
ここで,以下の説明で用いる用語を説明する。「デバイス」とは,プリンタ,CD/DVD−Rドライブなどの各種周辺機器をいい,「USB複合デバイス」とは,複数のデバイスを備え,それ自体ホストとはUSB規格に即した単一の物理インターフェースで接続されつつ,個々のデバイスとホストとの通信を制御する装置をいう。また,「USBクラス」とは,プリンタやマスストレージといった,デバイスの種類に基づくUSB規格上のデバイスの分類をいい,「USBサブクラス」とは,SCSIやATAPIといった,デバイスがサポートするコマンド種別に応じたUSB規格上のデバイスの分類であってUSBサブクラスの下位の分類をいう。また,「論理インターフェース」とは,USB規格にしたがって設けられる論理上の接続先をいい,それぞれが論理アドレスを有し,個々のデバイスに割当てられる。また,「論理ユニット」とは,USB規格にしたがって設けられる論理上の接続先であって論理インターフェースの下位のものをいい,それぞれが論理アドレスを有し,同一の論理インターフェース下の個々のデバイスに割当てられる。更に,「論理インターフェース情報」とは,論理インターフェースに割当てられたデバイスのUSBクラス,USBサブクラス等の論理インターフェースに関する情報をいい,「デバイス情報」とは論理インターフェースや論理ユニットに割当てられたデバイスのUSBサブクラスや,メモリカード用リーダライタ,CD/DVD−Rドライブなどのデバイスの種別に関する情報をいう。
図1は,本実施の形態におけるホストとUSB複合デバイスの構成図である。本実施の形態においては,パーソナルコンピュータ100によりホストを構成し,プリンタ,スキャナ,メモリカード用リーダライタ(以下,「メモリカードデバイス」という),及びCD/DVD−Rドライブといったデバイスを搭載した複合機200により構成されるUSB複合デバイスを,パーソナルコンピュータ100にUSB規格に則ったインターフェースで接続する。まず,図1(A)では,従来技術における構成を説明し,図1(B)では,本実施の形態における特徴的な構成を説明する。
図1(A)において,パーソナルコンピュータ100は,ソフトウェアとしてアプリケーションプログラム102,オペレーティングシステム110,汎用USBドライバ120,プリンタ用デバイスドライバ112,スキャナ用デバイスドライバ114,メモリカードデバイス用デバイスドライバ116,CD/DVD−Rドライブ用デバイスドライバ118を有し,ハードウェアとしてUSBホストコントローラ140とを有する。
アプリケーションプログラム102は,ユーザに必要な機能を実装したワープロや表計算,画像処理等のソフトウェアプログラムであり,入力されたデータや各種コマンドをオペレーティングシステム110に渡す。オペレーティングシステム110は,パーソナルコンピュータ100のリソースを統括的に制御するソフトウェアであり,一例としてマイクロソフト社のWindows(登録商標)である。オペレーティングシステム110は,アプリケーションプログラム102から受け取ったデータやコマンドをプリンタ用デバイスドライバ112等の各種デバイスドライバ112〜118に渡す。
プリンタ用デバイスドライバ102等の各種デバイスドライバ112〜118は,後述する複合機200に備えられた個々のデバイスがサポートするコマンドに準拠したドライバプログラムである。例えば,メモリカード用のデバイスドライバ116は,オペレーティングシステム110から受け取ったコマンドを,メモリカードデバイスがサポートするSCSIコマンドに変換して,汎用USBドライバ120に渡す。
汎用USBドライバ120はUSBホストコントローラ140を制御し,USBホストコントローラ140は,不図示のUSBコネクタによりUSBケーブル180を介して複合機200と接続され,複合機200とのUSB規格に基づく通信を可能にする。USBホストコントローラ140は複合機200に搭載されたデバイスの論理インターフェースや論理ユニット番号を記憶し,プリンタ用デバイスドライバ102等から渡される各種コマンドやデータをUSB規格に従ってパケットに変換して,対象となる論理インターフェースまたは論理ユニットに向けて複合機200に送信する。
複合機200は,USBインターフェース202,デバイスコントローラ204,プリンタ206,スキャナ208,メモリカードデバイス210,及びCD/DVD−Rドライブ212とを備える。
USBインターフェース202は,不図示のUSBコネクタによりUSBケーブル180を介してパーソナルコンピュータ100との通信を行う。すなわち,USBインターフェース202は,USB規格に基づいたパケットの送受信,シリアルデータとパラレルデータとの相互変換,パケットの生成分解を行い,パーソナルコンピュータ100から受信したコマンドやデータをパケットから取り出してデバイスコントローラ204に渡し,あるいはデバイスコントローラ204からのデータをパーソナルコンピュータ100へ送信する。
デバイスコントローラ204は,USBハブ203を介してプリンタ206,スキャナ208,メモリカードデバイス210,CD/DVD−Rドライブ212といったデバイスと接続される。これらのデバイスには論理インターフェースIF1〜IF4が割当てられ,デバイスコントローラ204は,論理インターフェースIF1〜IF4ごとに,割当てられたデバイスのUSBクラス,USBサブクラスなどの論理インターフェース情報を記憶装置205に格納する。そして,デバイスコントローラ204がUSBホストコントローラ140からの要求に応答して論理インターフェース情報を記憶装置205から読み出して送信することにより,汎用USBドライバ120は論理インターフェースごとのデバイスを認識して,USBホストコントローラ140の記憶装置に論理インターフェースとデバイスとの対応関係を格納することができる。
ここで,図2を用いて,上記プリンタ206等の各デバイスへの論理インターフェースIF1〜IF4の割当てが,USB規格に基づき,デバイスのUSBクラス,USBサブクラスに従ってなされることについて説明する。
まず,各デバイスには,図2(A)に示すように,デバイスの種類に応じたUSBクラスと,そのデバイスがサポートする,ホストとの通信コマンド種別に応じたUSBサブクラスとがUSB規格で定義されている。すなわち,プリンタ206のUSBクラスは「プリンタ」,USBサブクラスは「プリンタ」である。また,スキャナ208のUSBクラスは「イメージデバイス」,USBサブクラスは「イメージデバイス」である。また,メモリカードデバイス210のUSBクラスは「マスストレージ」,USBサブクラスは「SCSI」である。そして,CD/DVD−Rドライブ212のUSBクラスは「マスストレージ」,USBサブクラスは「ATAPI」である。
そして,USB規格では,原則として,ホスト側の汎用USBドライバが,論理インターフェースごとに,その論理インターフェースに割当てられたデバイスがサポートするコマンドでそのデバイスのデバイス情報の問合せを行う。このため,1つの論理インターフェースには,1つのUSBクラスとUSBサブクラスの組合せのデバイスのみを割当て,論理インターフェースに対応するコマンド種別が1つになるように規定されている。
よって,図2(B)に示すように,1つの論理インターフェースに対しては,USBクラスが異なる複数のデバイスや,USBクラスが同じでもUSBサブクラスが異なる,つまりサポートするコマンド種別が異なる複数のデバイスを割当てることができない。すなわち,USBクラスが「プリンタ」,USBサブクラスが「プリンタ」であるプリンタ206には第1論理インターフェースIF1が割当てられ,USBクラスが「イメージデバイス」,USBサブクラスが「イメージデバイス」であるスキャナ208には第2論理インターフェースIF2が割当てられる。また,USBクラスが「マスストレージ」,USBサブクラスが「SCSI」であるメモリカードデバイス210には第3論理インターフェースIF3が割当てられる。ここで,CD/DVD−Rドライブ212のUSBクラスは「マスストレージクラス」であり,メモリカードデバイス210と同じであるが,USBサブクラスが「ATAPI」であり異なるため,CD/DVD−Rドライブ212にはメモリカードデバイス210とは異なる第4論理インターフェースIF4が割当てられる。
このように,USB規格上は論理インターフェースを適宜設けることにより,複数のデバイスをUSBハブ203を介してデバイスコントローラ204に接続することができる。しかしながら,USBクラスやUSBサブクラスの異なるデバイスを増設してゆくと,論理インターフェース数も増加し,これに応じてデバイスコントローラ204は回路規模を拡大しなくてはならなくなる。また,論理インターフェースごとに論理インターフェース情報を管理しなくてはならず,そのためのメモリ資源消費や処理負担が増加するという問題が生じる。
ここで,USB規格では,上述したように1つの論理インターフェースには1つのUSBクラスとUSBサブクラスの組合せのデバイスのみを割当てるのが原則なので,USBクラスとUSBサブクラスが同じデバイスであれば,複数のデバイスを1つの論理インターフェースに割当てることができる。例えば,図2(C)に示すように,USBクラス「マスストレージ」,USBサブクラス「SCSI」を有する,メモリカードデバイス210,第2のメモリカードデバイス210a,ハードディスクドライブ210bの3つのデバイスには1つの論理インターフェースIF3を割当てることができる。また同様にUSBクラス「マスストレージ」,USBサブクラス「ATAPI」を有する,CD−DVD−Rドライブ212,第2のCD−DVD−Rドライブ212aの2つのデバイスにも1つの論理インターフェースIF4を割当てることができる。いずれの場合にも,論理インターフェースの下に論理ユニットLUN1,LUN2,…が設けられ,汎用USBドライバ120は論理ユニットごとに割当てられたデバイスを認識することができる。
上記のような場合,汎用USBドライバ120が論理ユニットに割当てられたデバイスを認識する際には,2段階の問合せを行う。詳しくは図4を用いて後述するが,まず第1段階として,論理インターフェースに割当てられたデバイスのUSBクラス,USBサブクラス等の論理インターフェース情報をデバイスコントローラ204に問い合わせ,デバイスコントローラ204がこれに応答する。そして,第2段階として,汎用USBドライバ120が論理インターフェースに対応するUSBサブクラスを取得すると,そのUSBサブクラスに対応したコマンドで,その論理インターフェースに割当てられた論理ユニットの各デバイスに対しデバイス情報の問合せを行い,デバイスから返信されるデバイス情報に基づき論理ユニットごとにデバイスがサポートするコマンドやデバイスの種別を認識する。
よって,上記の第1段階で問合せにデバイスコントローラ204が応答する際に,例えば第3論理インターフェースIF3にUSBサブクラス「SCSI」を対応付けた論理インターフェース情報を送信すると,第2段階で汎用USBドライバ120からはSCSIコマンドで問合せが発行され,第3論理インターフェースIF3に割当てられたSCSIコマンドをサポートするメモリカードデバイス210等はこれに応答してデバイス種別を返信することができる。
また,第4論理インターフェースIF4にUSBサブクラス「ATAPI」を対応付けた論理インターフェース情報を送信すると,汎用USBドライバ120からはATAPIコマンドで問合せが発行され,第4論理インターフェースIF4に割当てられたATAPIコマンドをサポートするCD/DVD−Rドライブ212等はこれに応答してデバイス種別を返信することができる。
ここで,SCSIコマンドとATAPIコマンドは,相互に共通のコマンドを有している。例えば,図3の表に示すように,デバイスの記憶媒体にデータを読み書きするRead,Writeなどのコマンドや,ホストがデバイス種別を問合せるInquiryコマンドは共通にサポートされている。よって,論理インターフェースに対応付けるUSBサブクラスが「SCSI」であっても「ATAPI」であっても,第1段階の問合せにはInquiryコマンドが発せられる。すると,USBサブクラスが「SCSI」であるメモリカードデバイス210等のデバイスも,USBサブクラスが「ATAPI」であるCD/DVD−Rドライブ212等のデバイスも,いずれも,上記共通コマンドであるInquiryコマンドを受付けて,デバイス情報を返信することができる。
そこで,図1(B)に戻ると,本実施の形態では複合機200はメモリカードデバイス210とCD/DVD−Rドライブ212とを,共通のUSBサブクラスのデバイスとして第3論理インターフェースIF3に割当てる。すなわち,デバイス認識の第1段階では,実際はメモリカードデバイス210のUSBサブクラスは「SCSI」であるにもかかわらず,第3論理インターフェースIF3に対応する共通のUSBサブクラスを「ATAPI」として一旦ホストに論理インターフェース情報を送信する。
そうすることにより,デバイス認識の第2段階で,汎用USBドライバ120には,SCSIコマンドとATAPIコマンドに共通のInquiryコマンドで,第3論理インターフェースIF3に関連付けた論理ユニット(LUN1,LUN2)ごとにメモリカードデバイス210とCD/DVD−Rドライブ212にデバイス情報の問合せを発行させることができる。
そして,各論理ユニットごとに,第1論理ユニットLUN1のメモリカードデバイス210はUSBサブクラス「SCSI」であるメモリカードデバイスであるというデバイス情報を,第2論理ユニットLUN2CD/DVD−Rドライブ212はUSBサブクラスが「ATAPI」であるCD/DVD−Rドライブであるというデバイス情報をそれぞれ送信する。これにより,送信されたUSBサブクラスにしたがって,汎用USBドライバ120にそれぞれのデバイスとの通信に必要なデバイスドライバをロードさせることができる。
このようにして,パーソナルコンピュータ100では,それぞれのデバイスに対して適したデバイスドライバを用いて通信を行うことができ,複合機200側では,デバイスコントローラの回路規模増加等を招くことなく,これらのデバイスを接続することが可能となる。
図4は,パーソナルコンピュータ100と複合機200とで行うデータ送受信手順を説明する図である。図4では,パーソナルコンピュータ100と複合機200とがUSBケーブル180を介して接続された際に,USB接続の起動処理のために,USBホストコントローラ140が汎用USBドライバ120に従ってデバイスコントローラ204に問合せを行い,デバイスコントローラ204がこれに応答してデータを送信する手順について説明する。
まず,全体の手順は,上述したように,USBホストコントローラ140が複合機200に設けられた論理インターフェースに関する情報を取得する第1段階(手順S102〜S104,手順S202〜S204),論理インターフェースごとに,個々のデバイスに対してデバイス種別を問合せる第2段階(手順S106〜S108,手順S206〜S208)とに分けられる。そして更に,第3段階として汎用USBドライバ120がデバイスドライバをロードしてデバイス毎にサポートされるコマンドで通信が行われる(手順S110,S112)。以下,段階ごとに説明する。
[第1段階]
まず,起動処理が開始されると,汎用USBドライバ120は複合機200のデバイスに関する情報を得るために,USBホストコントローラ140にUSB規格に基づくGetDescriptorコマンドを送信させる(S102)。
すると,デバイスコントローラ204は,複合機200のコンフィグレーション情報として,全論理インターフェース数「3」が記述されたコンフィグレーションディスクリプタを返信し,さらに全ての論理インターフェースIF1〜IF3ごとに,論理インターフェースに割当てられたデバイスのUSBクラスとUSBサブクラスを含む論理インターフェース情報が記述されたインターフェースディスクリプタを返信する(S202)。その際,記憶装置205には図5に示すような論理インターフェースとUSBクラス,USBサブクラスの対応関係が格納されており,これを読み出して論理インターフェースごとの論理インターフェース情報を送信する。
図5に示すように,第3論理インターフェースIF3には,USBクラス「マスストレージ」と,USBサブクラス「ATAPI」が対応付けて記憶装置205に格納されている。本実施の形態では,第3論理インターフェースIF3にUSBサブクラスが「SCSI」であるメモリカードデバイス210と,USBサブクラスが「ATAPI」であるCD/DVD−Rドライブ212とを,USBサブクラス「ATAPI」のデバイスとして割り当て,第3論理インターフェースIF3にUSBサブクラス「ATAPI」を対応させた論理インターフェース情報をホストに送信する。そうすることにより,汎用USBドライバ120は第3論理インターフェースIF3の下位に定義される論理ユニット番号を用いて,ATAPIコマンドによるデバイス種別問合せを行うことが可能になる。
図4に戻り,USBホストコントローラ140が全ての論理インターフェースについての論理インターフェース情報を受け取ると,汎用USBドライバ120は,第3論理インターフェースIF3については,上記内容の論理インターフェース情報に基づき,論理インターフェース下に定義される論理ユニット数の最大値を要求する。そのために,USB規格で最大論理ユニット数を問合せるコマンドである,GetMaxLUN(Logical Unit Number)をデバイスコントローラ204に送信する(S104)。すると,デバイスコントローラ204は,この問合せに応答して,記憶装置205に格納されている第3論理インターフェースIF3の論理ユニット数,すなわちメモリカードデバイス210とCD/DVD−Rドライブ212を割当てる論理ユニット数「2」を読み出して送信する(S204)。
[第2段階]
次に,USBホストコントローラ140が最大論理ユニット数を受け取ると,汎用USBドライバ120は,論理ユニット番号ごとにデバイスの種別を要求する。すなわち,まず第1論理ユニットLUN1に対し,ATAPIコマンドによりInquiryコマンドを送信する(S106)。
ここで,第1論理ユニットLUN1に対応するメモリカードデバイス210は,SCSIコマンドをサポートするデバイスであるが,上述したようにInquiryコマンドはSCSI,ATAPIいずれのコマンドにも共通であるので,メモリカードデバイス210はこのInquiryコマンドを受付けて応答することができる。よって,メモリカードデバイス210は,USBサブクラスが「SCSI」のメモリカードデバイスであるというデバイス情報を送信する(S206)。
また,汎用USBドライバ120は,第2論理ユニットLUN2に対しても,ATAPIコマンドによりInquiryコマンドを送信する(S108)。すると,第2論理ユニットLUN2に対応するCD/DVD−Rドライブ212は,ATAPIコマンドをサポートしているので,このInquiryコマンドを受付けて,これに応答してUSBサブクラスが「ATAPI」のCD/DVD−Rであるというデバイス情報を送信する(S208)。
すると汎用USBドライバ120は,メモリカードデバイス210から送信されたデバイス情報から,第3論理インターフェースIF3の第1論理ユニットLUN1には,SCSIコマンドをサポートするメモリカードデバイスが接続されていることを認識し,SCSIコマンドに準拠するメモリカードデバイス用のデバイスドライバ116をロードする。また,CD/DVD−Rドライブ212から送信されたデバイス情報からは,第3インターフェースIF3の第2論理ユニットLUN2には,ATAPIコマンドをサポートするCD/DVD−Rドライブが接続されていることを認識し,ATAPIコマンドに準拠したCD/DVD−Rドライブ用のデバイスドライバ118をロードする。
[第3段階]
これより後は,メモリカード用のデバイスドライバ116がオペレーティングシステム110から受け取ったコマンドをSCSIコマンドに変換して汎用USBドライバ120に渡し,汎用USBドライバ120は第3論理インターフェースIF3の第1論理ユニットLUN1に向けてSCSIコマンドでデータを送信することができ,メモリカードデバイス210に対するデータの読出しや書込みを行うことができる(S110)。
同様に,CD/DVD−R用のデバイスドライバ118がオペレーティングシステム110から受け取ったコマンドをATAPIコマンドに変換して汎用USBドライバ120に渡し,汎用USBドライバ120は第3論理インターフェースIF3の第2論理ユニットLUN2に向けてATAPIコマンドでデータを送信することができ,CD/DVD−R212に対するデータの読出しや書込みを行うことができる(S112)。
なお,上述した第1段階で,第3論理インターフェースIF3のUSBサブクラスを「SCSI」ではなく「ATAPI」と記述した論理インターフェース情報を送信するのは,次の理由による。上記のホストコントローラ204の動作手順は,現時点のUSB規格における仕様に基づく汎用USBドライバ120の動作に対応するものであるが,仕様変更などにより汎用USBドライバ120の動作手順が変更される可能性がある。すなわち,現時点では,汎用USBドライバ120は第2段階において論理ユニットごとにデバイス情報を受け取った時点で各デバイスに適したデバイスドライバをロードするが,例えば,汎用USBドライバ120が論理インターフェースごとの論理インターフェース情報に含まれるUSBサブクラスを取得した第1段階において,USBサブクラスに応じたコマンドをサポートするデバイスドライバをロードする場合が考えられる。そのような場合に,第3論理インターフェースIF3のUSBサブクラスを「SCSI」とすると,次のような問題が生じる。
図6に示すように,デバイスコントローラ204が仮に第3論理インターフェースIF3のUSBサブクラスを「SCSI」と記述した論理インターフェース情報を送信したとすると(S202a),汎用USBドライバ120は,SCSIコマンド準拠のデバイスドライバとしてメモリカードデバイス用デバイスドライバ116をロードする。すると,それ以後はメモリカードデバイス用デバイスドライバ116がメモリカードデバイス210,あるいはCD/DVD−Rドライブ212にデータの読み出し・書込みを行う(S110a,S112a)。
しかしながら,SCSIコマンドとATAPIコマンドとの比較において(図3),ATAPIコマンドが主なSCSIコマンドをサポートしているのに対し,ATAPIコマンドでのみサポートされるCD/DVD−Rドライブ特有のコマンド,例えばReadDiscInformaitonや,SetCDSpeed等がSCSIコマンドではサポートされていない。このため,メモリカードデバイス用デバイスドライバ116がSCSIコマンドでメモリカードデバイス210と通信する場合(S110a)は問題ないものの,SCSIコマンドでCD/DVD−Rドライブ212と通信する場合(S112a)には,上記のようなCD/DVD−Rドライブ特有のコマンドを使用できないという問題が生じる。
そこで,本実施の形態では,デバイスコントローラ204が汎用USBドライバ120に対し,第3論理インターフェースIF3のUSBサブクラスを「ATAPI」と記述した論理インターフェース情報を送信することにより,汎用USBドライバ120の動作手順が変更された場合であっても上記のような問題を回避することができる。すなわち,図7に示すように,第3論理インターフェースIF3に対応するUSBサブクラスを「ATAPI」と記述した論理インターフェース情報をデバイスコントローラ204が送信すれば(S202b),主なSCSIコマンドをサポートしているATAPIコマンドに準拠したデバイスドライバであるCD/DVD−Rドライブ用デバイスドライバ118がロードされ,それ以後はCD/DVD−Rドライブ用デバイスドライバ118がメモリカードデバイス210,あるいはCD/DVD−Rドライブ212にデータの読み出し・書込みを行う(S110b,S112b)ので,上記のような事態を回避することができる。
また,この場合にはATAPIコマンドでのみサポートされる上記のようなCD/DVD−Rドライブ特有のコマンドがメモリカードデバイス210に対して送信される(S110b)可能性がある。通常かかる場合には,メモリカードデバイス210のコントローラからはコマンドが未サポートであるというエラーが返信されるが,そうすると第3論理インターフェースIF3のUSBサブクラスを「ATAPI」としたことと矛盾し,汎用USBドライバ120の処理が破綻するおそれがある。よって,代わりに例えばメディアのフォーマットが異なるなどのエラーを返信することにより(S210),論理矛盾を来たさないようにして,汎用USBドライバ120の処理の破綻を回避する。
なお,上記説明におけるUSB複合デバイスとして,複合機200に代わり,複数のストレージデバイス,例えば上記のようなメモリカードデバイスや,CD/DVD−Rの他にハードディスクドライブやMOドライブなどを備えたUSB複合ストレージデバイスであってもよい。
以上説明したとおり,本実施の形態におけるUSB複合デバイスによれば,デバイスコントローラの回路規模を拡大することなく,USBサブクラスが異なるデバイスを同一の論理インターフェースに割当ててホストと通信を行うことができる。
本実施の形態におけるホストとUSB複合デバイスの構成図である。 本実施の形態におけるデバイスのUSBクラスとUSBサブクラスの組合せに対する論理インターフェースの割当てを説明する表である。 SCSIコマンドとATAPIコマンドを比較説明する表である。 パーソナルコンピュータ100と複合機200とで行うデータ送受信手順を説明する図である。 記憶装置205に格納される論理インターフェースとUSBクラス,USBサブクラスの対応関係を説明する図である。 汎用USBドライバ120の動作手順が異なる場合の,パーソナルコンピュータ100と複合機200とで行うデータ送受信手順を説明する図である。 汎用USBドライバ120の動作手順が異なる場合の,パーソナルコンピュータ100と複合機200とで行う別のデータ送受信手順を説明する図である。
符号の説明
120: 汎用USBドライバ 140:USBホストコントローラ
204: デバイスコントローラ IF3:第3論理インターフェース
LUN1:第1論理ユニット

Claims (6)

  1. ホストとの通信コマンド種別に対応したUSBサブクラスを有する複数デバイスを備え,前記デバイスに論理インターフェースを割当て,前記論理インターフェースごとに単一のUSBサブクラスを対応させて,前記ホストと通信を行うUSB複合デバイスにおいて,
    第1の通信コマンドに対応した第1のUSBサブクラスである第1のデバイスと,前記第1の通信コマンドと共通の通信コマンドを有する第2の通信コマンドに対応した第2のUSBサブクラスである第2のデバイスとを,共通のUSBサブクラスのデバイスとして共通の論理インターフェースに割当て,前記共通の論理インターフェースに前記共通のUSBサブクラスを対応させた論理インターフェース情報を前記ホストの要求に応答して送信し,前記ホストに,前記論理インターフェースに関連づけて定義される論理ユニット数の問合せを前記共通の通信コマンドにより発行させ,
    前記ホストからの論理ユニット数の問合せに応答して,前記第1,第2のデバイス数に対応する論理ユニット数を送信し,前記ホストに,前記論理ユニットごとのデバイス情報の問合せを前記共通の通信コマンドにより発行させ,
    前記ホストからのデバイス情報の問合せに応答して,第1の論理ユニットに割当てられた前記第1のデバイスは前記第1のUSBサブクラスに対応したデバイス情報を,第2の論理ユニットに割当てられた前記第2のデバイスは前記第2のUSBサブクラスに対応したデバイス情報をそれぞれ前記ホストに送信し,その後は前記ホストに,前記第1のデバイスとは前記第1の通信コマンドで,前記第2のデバイスとは前記第2の通信コマンドで通信を行わせることを特徴とするUSB複合デバイス。
  2. 請求項1において,前記第1,第2のデバイスは,記憶媒体に対しデータの入出力を行うストレージデバイスであることを特徴とするUSB複合デバイス。
  3. ホストとの通信コマンド種別に対応したUSBサブクラスを有する複数デバイスを備え,前記デバイスに論理インターフェースを割当て,前記論理インターフェースごとに単一のUSBサブクラスを対応させたUSB複合デバイスと,前記USB複合デバイスと通信を行うホストとを有するUSB通信システムにおいて,
    前記USB複合デバイスは,第1の通信コマンドに対応した第1のUSBサブクラスである第1のデバイスと,前記第1の通信コマンドと共通の通信コマンドを有する第2の通信コマンドに対応した第2のUSBサブクラスである第2のデバイスとを,共通のUSBサブクラスのデバイスとして共通の論理インターフェースに割当て,前記共通の論理インターフェースに前記共通のUSBサブクラスを対応させた論理インターフェース情報を前記ホストの要求に応答して送信し,
    前記ホストは,前記論理インターフェースに関連づけて定義される論理ユニット数の問合せを前記共通の通信コマンドにより前記USB複合デバイスに発行し,
    前記USB複合デバイスは,前記ホストからの論理ユニット数の問合せに応答して,前記第1,第2のデバイス数に対応する論理ユニット数を送信し,
    前記ホストは,前記論理ユニットごとのデバイス情報の問合せを前記共通の通信コマンドにより前記USB複合デバイスに発行し,
    前記ホストからのデバイス情報の問合せに応答して,第1の論理ユニットに割当てられた前記第1のデバイスは前記第1のUSBサブクラスに対応したデバイス情報を,第2の論理ユニットに割当てられた前記第2のデバイスは前記第2のUSBサブクラスに対応したデバイス情報をそれぞれ前記ホストに送信し,
    前記ホストは,前記第1のデバイスとは前記第1の通信コマンドで,前記第2のデバイスとは前記第2の通信コマンドで通信を行うことを特徴とするUSB通信システム。
  4. 請求項3において,前記第1,第2のデバイスは,記憶装置に対しデータの入出力を行うストレージデバイスであることを特徴とするUSB通信システム。
  5. ホストとの通信コマンド種別に対応したUSBサブクラスを有する複数デバイスを備え,前記デバイスに論理インターフェースを割当て,前記論理インターフェースごとに単一のUSBサブクラスを対応させたUSB複合デバイスと,前記USB複合デバイスと通信を行うホストにおけるUSB通信方法において,
    前記USB複合デバイスにて,第1の通信コマンドに対応した第1のUSBサブクラスである第1のデバイスと,前記第1の通信コマンドと共通の通信コマンドを有する第2の通信コマンドに対応した第2のUSBサブクラスである第2のデバイスとを,共通のUSBサブクラスのデバイスとして共通の論理インターフェースに割当て,前記共通の論理インターフェースに,前記共通のUSBサブクラスを対応させた論理インターフェース情報を前記ホストの要求に応答して送信する工程と,
    前記ホストにて,前記論理インターフェースに関連づけて定義される論理ユニット数の問合せを前記共通の通信コマンドにより前記USB複合デバイスに発行する工程と,
    前記USB複合デバイスにて,前記ホストからの論理ユニット数の問合せに応答して,前記第1,第2のデバイス数に対応する論理ユニット数を送信する工程と,
    前記ホストにて,前記論理ユニットごとのデバイス情報の問合せを前記共通の通信コマンドにより前記USB複合デバイスに発行する工程と,
    前記ホストからのデバイス情報の問合せに応答して,第1の論理ユニットに割当てられた前記第1のデバイスにて前記第1のUSBサブクラスに対応したデバイス情報を前記ホストに送信する工程と,
    前記ホストからのデバイス情報の問合せに応答して,第2の論理ユニットに割当てられた前記第2のデバイスにて前記第2のUSBサブクラスに対応したデバイス情報を前記ホストに送信する工程と,
    前記ホストにて,前記第1のデバイスとは前記第1の通信コマンドで,前記第2のデバイスとは前記第2の通信コマンドで通信を行う工程とを有することを特徴とするUSB通信方法。
  6. 請求項5において,前記第1,第2のデバイスは,記憶装置に対しデータの入出力を行うストレージデバイスであることを特徴とするUSB通信方法。
JP2006103750A 2006-04-05 2006-04-05 Usb複合デバイス,usb通信システム,及びusb通信方法 Expired - Fee Related JP4725397B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006103750A JP4725397B2 (ja) 2006-04-05 2006-04-05 Usb複合デバイス,usb通信システム,及びusb通信方法
US11/784,276 US7568053B2 (en) 2006-04-05 2007-04-05 USB composite device, USB communication system, and USB communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006103750A JP4725397B2 (ja) 2006-04-05 2006-04-05 Usb複合デバイス,usb通信システム,及びusb通信方法

Publications (2)

Publication Number Publication Date
JP2007279932A JP2007279932A (ja) 2007-10-25
JP4725397B2 true JP4725397B2 (ja) 2011-07-13

Family

ID=38606164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006103750A Expired - Fee Related JP4725397B2 (ja) 2006-04-05 2006-04-05 Usb複合デバイス,usb通信システム,及びusb通信方法

Country Status (2)

Country Link
US (1) US7568053B2 (ja)
JP (1) JP4725397B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2469417A1 (en) * 2006-04-26 2012-06-27 Nokia Corporation Usb connection
JP4333765B2 (ja) 2007-03-28 2009-09-16 ブラザー工業株式会社 デバイス制御システム
JP4470977B2 (ja) * 2007-08-30 2010-06-02 ブラザー工業株式会社 複合機、およびファイル伝送システム
JP4424392B2 (ja) * 2007-08-30 2010-03-03 ブラザー工業株式会社 デバイス、およびファイル伝送システム
JP4424391B2 (ja) * 2007-08-30 2010-03-03 ブラザー工業株式会社 デバイス、およびファイル伝送システム
CN101452369B (zh) * 2007-11-29 2012-01-25 国际商业机器公司 用于控制usb大容量存储设备的逻辑单元的方法和系统
CN101981556A (zh) * 2008-04-07 2011-02-23 松下电器产业株式会社 设备控制方法、设备控制程序以及设备选择装置
CN104866332A (zh) 2014-02-26 2015-08-26 华为终端有限公司 能力确定方法、能力配置方法、主机、终端设备及系统
JP6241351B2 (ja) * 2014-03-31 2017-12-06 サイレックス・テクノロジー株式会社 周辺機器サーバ
US9311504B2 (en) 2014-06-23 2016-04-12 Ivo Welch Anti-identity-theft method and hardware database device
US10042784B2 (en) * 2014-10-13 2018-08-07 Microchip Technology Incorporated Side channel access through USB streams
JP7183068B2 (ja) * 2019-02-19 2022-12-05 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3247076B2 (ja) * 1996-10-24 2002-01-15 株式会社メルコ Scsi−ideバス変換アダプタ
JP2003198779A (ja) 2001-12-28 2003-07-11 Canon Inc 画像処理装置及び制御方法
JP2004070571A (ja) * 2002-08-05 2004-03-04 Seiko Epson Corp データ転送制御システム、電子機器、プログラム及びデータ転送制御方法
WO2004086363A2 (en) * 2003-03-27 2004-10-07 M-Systems Flash Disk Pioneers Ltd. Data storage device with full access by all users
JP2005301513A (ja) * 2004-04-08 2005-10-27 Fujitsu Ltd プログラム内蔵デバイス
US7707348B2 (en) * 2005-07-13 2010-04-27 Cisco Technology, Inc. Multi-use USB host to Ethernet adapter
US8095623B2 (en) * 2006-03-09 2012-01-10 Microsoft Corporation Device emulation to facilitate data transfer

Also Published As

Publication number Publication date
US7568053B2 (en) 2009-07-28
JP2007279932A (ja) 2007-10-25
US20070245055A1 (en) 2007-10-18

Similar Documents

Publication Publication Date Title
JP4725397B2 (ja) Usb複合デバイス,usb通信システム,及びusb通信方法
US7133938B2 (en) Hub controller with connected first and second device wherein second device contains drivers and first device in disable state before driver read from second device
US7970974B2 (en) Method and system for adding or removing a logical unit of a USB mass storage device
US10241731B2 (en) Information processing apparatus, method of controlling the same, print system and storage medium
US7979600B2 (en) Multifunction peripheral and device control system
US9736326B2 (en) Image forming apparatus and low power driving method thereof
US8171190B2 (en) Direct image formation method and apparatus
US8400654B2 (en) Print control apparatus, method and recording medium using selective conversion of printer setting data into PJL or PDL
US20060253673A1 (en) Apparatus and method for permitting access to storage means
US7779102B2 (en) Management device, network system and control program therefor
JP4333765B2 (ja) デバイス制御システム
CN1690981A (zh) 使用盘驱动器构成独立盘冗余阵列系统的方法和设备
US20060282655A1 (en) Computer product for network printing, mobile terminal apparatus, and printing system
JP2001022679A (ja) ドライブ装置に対するアクセス制御方法及び、これを適用するドライブ装置
US20070198460A1 (en) USB storage system and control method thereof
JP2005115427A (ja) コンピュータにローカル接続される周辺装置
US7934024B2 (en) Method for reading and writing non-standard register of serial advanced technology attachment (SATA) device
US20080256289A1 (en) Memory apparatus to write and read data, and method thereof
US10768846B2 (en) Information processing apparatus and control method of information processing apparatus
KR101033177B1 (ko) 업무 프로그램의 자동 테스트 과정 동안 usb 장치의 동작을 가상적으로 대행하는 에뮬레이터 및 그 동작 방법
JP4852909B2 (ja) デバイス識別装置、デバイス識別方法及びプログラム
KR100788677B1 (ko) Usb 디바이스 및 그에 구비된 저장매체의 제어 방법
EP1818793A1 (en) USB storage system and control method thereof
JP5198029B2 (ja) 周辺機器および周辺機器制御方法
JP2009032235A (ja) 単一の識別コードでインターネットおよび磁気記憶装置アクセスサービスを提供するハードディスクレス型コンピュータシステム、およびそのデータ送受信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081007

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110328

R150 Certificate of patent or registration of utility model

Ref document number: 4725397

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees