JP2015176458A - 電子デバイス及び電子デバイスの制御方法 - Google Patents

電子デバイス及び電子デバイスの制御方法 Download PDF

Info

Publication number
JP2015176458A
JP2015176458A JP2014053642A JP2014053642A JP2015176458A JP 2015176458 A JP2015176458 A JP 2015176458A JP 2014053642 A JP2014053642 A JP 2014053642A JP 2014053642 A JP2014053642 A JP 2014053642A JP 2015176458 A JP2015176458 A JP 2015176458A
Authority
JP
Japan
Prior art keywords
control unit
unit
access
status
bus control
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
JP2014053642A
Other languages
English (en)
Inventor
純司 冨田
Junji Tomita
純司 冨田
泰司 青山
Taiji 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.)
Socionext Inc
Original Assignee
Socionext 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 Socionext Inc filed Critical Socionext Inc
Priority to JP2014053642A priority Critical patent/JP2015176458A/ja
Publication of JP2015176458A publication Critical patent/JP2015176458A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】アクセスにおけるエラーの発生を抑制すること。
【解決手段】周辺デバイス20の仮想デバイス部24は、デバイス部23に対してUSB制御部22a〜22dを介したホスト装置のアクセスを制御する。仮想デバイス部24は、USB制御部22a〜22dのうちの1つをアクティブポート(AP)に設定し、アクティブポートに対してデバイス部23のアクセスを許可する。仮想デバイス部24は、アクティブポートのアクセスの種類を判定し、ライトアクセスの場合に、アクティブポート以外のUSB制御部22a〜22dに対して、リセット(Reset)を示す仮想ステータス信号ASa〜ASd(リセットステータス)を出力する。USB制御部22a〜22dは、仮想ステータス信号ASa〜ASdに基づいて、バスリセットを発行する。
【選択図】図2

Description

電子デバイス及び電子デバイスの制御方法に関する。
従来、パーソナルコンピュータ(PC)等の電子機器は、周辺機器を接続するインタフェースを有している。インタフェースはたとえばUSB(Universal Serial Bus)である。USB仕様は、1つのホスト装置に対して複数の周辺機器の接続を規定する。
近年、複数のホスト装置において、たとえば、ローカルエリアネットワーク(LAN)のように、周辺機器の共有が求められている。このため、複数のホスト装置に対して周辺デバイスを共有可能に接続する接続装置(Hub)が提案されている(たとえば、特許文献1〜3参照)。
たとえば、図9に示す接続装置100は、疑似USBデバイス101,102、疑似USBホスト103,104、ルーター105を備えている。この接続装置100は、ルーター105により、周辺デバイス(単に「デバイス」と表記)113,114を、ホスト装置111,112に対して接続する。
また、図10に示す接続装置120は、ハブ121、122、切換スイッチ123,124、疑似USBデバイス125,126を備えている。この接続装置120は、ハブ121,122により切換スイッチ123,124を制御し、ホスト装置111,112に対して周辺デバイス113,114または疑似USBデバイス125,126を接続する。
特開2000−276116号公報 特開2002−342255号公報 特開2004−102716号公報
ところで、複数のホスト装置111,112は、それぞれ周辺デバイス113,114の情報を管理する。このため、ホスト装置111,112のアクセスにおいてエラーが発生する場合がある。たとえば、ホスト装置111により、周辺デバイス113のファイルを削除する。この場合、他のホスト装置112における周辺デバイス113の情報は、変更されない。このため、ホスト装置112が持つ情報に従って周辺デバイス113に対してアクセスした場合、そのアクセスの対象であるファイルが周辺デバイス113に存在しないため、アクセスに対してエラーが発生する。
本発明の一観点による電子デバイスは、ホスト装置が接続される複数のバス制御部と、前記ホスト装置によりアクセスされるデバイス部と、前記複数のバス制御部と前記デバイス部との間に接続され、前記デバイス部のアクセスを制御するアクセス制御部と、を有し、前記アクセス制御部は、前記複数のバス制御部のうちの1つのアクティブポートに前記デバイス部のアクセスを許可し、前記アクセスの種類に応じて、前記アクセスの完了後に前記アクティブポート以外のバス制御部に対してリセットステータスを出力し、前記リセットステータスを供給したバス制御部のアクセスを許可し、前記バス制御部は、前記リセットステータスに基づいてバスリセットを発行する。
本発明の一観点によれば、アクセスにおけるエラーの発生を抑制することができる。
システムの概略説明図である。 電子装置の概略構成図である。 USB制御部の処理を示すフローチャートである。 仮想デバイス部の処理を示すフローチャートである。 仮想デバイス部の処理を示すフローチャートである。 仮想デバイス部の処理を示すフローチャートである。 電子装置の動作説明図である。 電子装置の動作説明図である。 比較例の説明図である。 比較例の説明図である。
以下、一実施形態を説明する。
図1に示すように、このシステムは、複数(図では4つ)のホスト装置(「ホスト」と表記)10a〜10dと、1つの周辺デバイス(「デバイス」と表記)20を有している。周辺デバイス20は、各ホスト装置10a〜10dのそれぞれと接続されている。この周辺デバイス20は、たとえば記憶装置である。各ホスト装置10a〜10dは、それぞれ周辺デバイス20をアクセスし、ファイルの格納(Write)・参照(Read)・消去(Delete)を行う。周辺デバイス20に格納されたファイルは、全てのホスト装置10a〜10dからアクセス可能である。したがって、各ホスト装置10a〜10dは、周辺デバイス20に格納されたファイル(データ)を共有する。
図2に示すように、周辺デバイス20は、複数(図では4つ)のポート21a〜21d(「Port1」〜「Port4」と表記)を有している。各ポート21a〜21dは、図1に示すホスト装置10a〜10dにそれぞれ例えばケーブルを介して接続される。なお、各ポート21a〜21dは、無線通信によって各ホスト装置10a〜10dと接続されてもよい。
ポート21aは、USB制御部(図において、「Port1USB制御」と表記)22aに接続されている。同様に、ポート21b〜21dは、USB制御部22b〜22dに接続されている。USB制御部22a〜22dは、USB仕様、たとえばマス・ストレージ・クラス・プロトコルに基づいて動作し、ホスト装置10a〜10dとデータ通信する。
USB制御部22a〜22dは、データ信号線LDTを介してデバイス部23に接続されている。デバイス部23は、たとえばハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などの記憶装置である。各ホスト装置10a〜10dからのデータは、USB制御部22a〜22dとデータ信号線LDTを介してデバイス部23に供給される。また、デバイス部23から出力されるデータは、データ信号線LDTとUSB制御部22a〜22dを介してホスト装置10a〜10dへ送信される。
USB制御部22a〜22dとデバイス部23は、仮想デバイス部24と接続されている。仮想デバイス部24は、デバイス部23に対してUSB制御部22a〜22dを介したホスト装置10a〜10dのアクセスを制御する。
仮想デバイス部24は、リクエスト判定部31、切換スイッチ32a〜32d、ステータス制御部33、ポート制御部34を有している。
ポート制御部34は、4つのUSB制御部22a〜22dのうちの1つを選択する。たとえば、ポート制御部34は、ラウンドロビン方式によってUSB制御部22a〜22dを順次選択する。選択されたUSB制御部22a〜22dは、ホスト装置10a〜10dからの要求を確認し、要求に応じたリクエスト信号RQa〜RQdを出力する。リクエスト信号RQa〜RQdにより、そのリクエスト信号RQa〜RQdを出力したUSB制御部22a〜22dのポート21a〜21dに対して、デバイス部23に対するアクセスが許可される。このアクセスが許可されたポート及びUSB制御部をアクティブポート(AP)と呼ぶ。
また、ポート制御部34は、選択したUSB制御部22a〜22dに応じた接続信号SCNをリクエスト判定部31に出力する。リクエスト判定部31には、USB制御部22a〜22dから出力されるリクエスト信号RQa〜RQdが供給される。リクエスト判定部31は、接続信号SCNに基づいて、選択されたUSB制御部22a〜22dからのリクエスト信号RQa〜RQdに応じた内部リクエスト信号REQをデバイス部23に出力する。
リクエスト判定部31は、USB制御部22a〜22dに対応する切換スイッチ32a〜32dに接続されている。リクエスト判定部31は、USB制御部22a〜22dの選択/非選択に応じた切換信号CSa〜CSdを切換スイッチ32a〜32dに出力する。
切換スイッチ32a〜32dはそれぞれ、USB制御部22a〜22dに接続された共通端子と、ステータス制御部33から仮想ステータス信号ASa〜ASdがそれぞれ供給される第1の切換端子と、ステータス信号線LSTに接続されてデバイス部23からステータス信号STSが供給される第2の切換端子とを有している。切換スイッチ32a〜32dは、切換信号CSa〜CSdに応答して、共通端子を第1の切換端子または第2の切換端子に接続する。これにより、切換スイッチ32aは、切換信号CSaに応じて仮想ステータス信号ASaまたはステータス信号STSを選択し、選択した信号と等しいステータス信号STaを出力する。同様に、切換スイッチ32b〜32dは、切換信号CSb〜CSdに応じて、ステータス信号STSまたは仮想ステータス信号ASb〜ASdを選択し、選択した信号にと等しいステータス信号STb〜STdを出力する。USB制御部22a〜22dは、切換スイッチ32a〜32dからのステータス信号STa〜STdに基づいて動作する。
なお、切換スイッチ32a〜32dのうち、アクティブポート、つまり選択されたUSB制御部22a〜22dに対応する切換スイッチは、デバイス部23からのステータス信号STSを選択するように制御される。そして、非選択のUSB制御部22a〜22dに対応する切換スイッチは、ステータス制御部33からの仮想ステータス信号ASa〜ASdを選択するように制御される。したがって、ポート制御部34により選択されたUSB制御部22a〜22dから出力されるリクエスト信号RQa〜RQdがデバイス部23に供給されるとともに、そのデバイス部23から出力されるステータス信号STSが、選択されたUSB制御部22a〜22dに供給される。このように、選択されたUSB制御部22a〜22dとデバイス部23とが互いに接続されて通信する。
したがって、ポート制御部34は、アクティブポート、つまり選択したUSB制御部22a〜22dをデバイス部23に接続するように、リクエスト判定部31に対して接続信号SCNを出力する。そして、ポート制御部34により選択されていないUSB制御部22a〜22dは、ステータス制御部33からの仮想ステータス信号ASa〜ASdに基づいて動作する。
ステータス制御部33には、デバイス部23からのステータス信号STSが供給される。
ステータス制御部33は、ステータス信号STSに基づいて、ポート制御部34に対する通知信号SAKを生成する。たとえば、初期化処理において、ステータス制御部33は、選択されたUSB制御部22a〜22dに応じて、ビジー(Busy)を示す仮想ステータス信号ASa〜ASd(ビジーステータス)を出力する。リクエスト判定部31は、初期化処理においてホスト装置10a〜10dから送信されるコンフィグレーション情報に基づいて切換信号CSa〜CSdを生成し、仮想ステータス信号ASa〜ASdを選択させる。USB制御部22a〜22dは、仮想ステータス信号ASa〜ASdに基づいて、ホスト装置10a〜10dからの要求信号(Token)に対して否定応答信号NAKを送信する。これにより、USB制御部22a〜22dは、アクセス許可待ち状態となる。
ステータス制御部33は、ビジーを示す仮想ステータス信号ASa〜ASdを送信した旨の通知信号SAKを生成する。ポート制御部34は、通知信号SAKに基づいて、ホスト装置10a〜10dが接続されたポートの数を認識し、そのポート数(接続ホスト数)をレジスタに格納する。そして、ポート制御部34は、ホスト装置が接続されたUSB制御部22a〜22dを選択する。
ステータス制御部33は、ステータス信号STSに基づいて、仮想ステータス信号ASa〜ASdを生成する。たとえば、アクティブポート(AP)に接続されたホスト装置に対してデバイス部23に対してアクセスが許可される。ステータス制御部33は、他のホスト装置を排他制御するように仮想ステータス信号ASa〜ASdを生成する。たとえば、ビジー(Busy)を示す仮想ステータス信号ASa〜ASdを生成することで、他のホスト装置からの要求を保留する。そして、アクティブポート(AP)に接続されたホスト装置のアクセスに応じて、仮想ステータス信号ASa〜ASdを生成する。
たとえば、ホスト装置のアクセスが、デバイス部23に格納されたデータの状態に変更を加える要求の場合、その変更された状態は、他のホスト装置のアクセスに必要な情報となる。各ホスト装置10a〜10dには、デバイス部23におけるデータの状態が一時的に記憶される。たとえば、ファイルを削除した場合、そのファイルに対する他のホスト装置のアクセスは、ホスト装置にとって意図しないエラーとなる。デバイス部23の状態に変更を加える要求は、ライト(Write)要求、削除(Delete)要求である。ファイルの追加、ファイル(内容)の変更、ファイル名の変更、ファイルの格納位置の変更、等も状態に変更を加える要求に含まれる。
デバイス部23から出力されるステータス信号STSは、これらの要求に対する処理の完了を示す。このため、ステータス制御部33は、ステータス信号STSに基づいて、リセット(Reset)を示す仮想ステータス信号ASa〜ASd(リセットステータス)を生成する。USB制御部22a〜22dは、リセットを示す仮想ステータス信号ASa〜ASdに基づいて、バスリセット(BusReset)を発行する。バスリセットにより、ホスト装置10a〜10dとUSB制御部22a〜22dは、接続処理(エニュメレーション:Enumeration)を実行する。この接続処理によるコンフィグレーションは、ホスト装置10a〜10dからのコンフィグレーション情報の受信、USB仕様、たとえばマス・ストレージ・クラス・プロトコルの動作におけるデバイス部23の情報の送信を含む。これらの処理において、ホスト装置10a〜10dは、周辺デバイス20の情報を再取得し、自装置の情報を更新する。たとえば、ファイルが削除された場合、接続処理におけるコンフィグレーションにより、ホスト装置10a〜10dにおける周辺デバイス20の情報が更新されるため、削除されたファイルに対するアクセスは行われない。これにより、他のホスト装置のアクセスによるエラーの発生が防止される。
次に、図3を参照してUSB制御部22aにおける処理を説明する。なお、他のUSB制御部22b〜22dにおける処理はUSB制御部22aと同様であるため、説明を省略する。
先ず、ステップ51において、USB制御部22aは、ポート21aに対するホスト装置の接続を確認する。ホスト装置が接続されている場合、USB制御部22aは、初期化処理を行う。この初期化処理において、ホスト装置10aとUSB制御部22aは、初期の接続処理(エニュメレーション:Enumeration)を行う。USB制御部22aは、接続処理におけるホスト装置10aの要求に応じて、ディスクリプタ情報の送信や、アドレス等の設定を行う。
次に、ステップ52において、USBの切断を判定する。このUSBの切断は、ケーブルの挿抜や断線等の物理的な切断、ケーブルに対する信号の電気的な変更による一時的な切断を含む。USBが切断された場合(判定:YES)、USB制御部22aはステップ51へ移行し、初期化処理を行う。一方、USBが切断されていない場合(判定:NO)、次のステップ53へ移行する。
ステップ53において、USB制御部22aは、デバイスステータスを確認する。USB制御部22aは、仮想デバイス部24の切換スイッチ32aから供給されるステータス信号STaを確認する。
そして、ステップ54において、USB制御部22aは、確認したステータス信号STaに基づいて、USBプロトコル(USB仕様)にしたがってホスト装置10aとの間の通信を制御する。例えば、USB制御部22aは、ビジー(Busy)を示すステータス信号STaに基づいて、ホスト装置10aからの要求信号(Token)に対して否定応答信号NAKを送信する。また、USB制御部22aは、リセット(Reset)を示すステータス信号STaに基づいて、バスリセット(BusReset)を発行する。そして、USB制御部22aは、バスリセットに基づいて実行される接続処理(エニュメレーション:Enumeration)において、上記のステップ51と同様に、ホスト装置10aの要求に応じてディスクリプタ情報の送信やアドレス等の設定を行う。そして、ステップ52へ移行する。
次に、図4〜図6を参照して仮想デバイス部24における処理を説明する。各ステップにおいて、先ず概要を示し、次に詳細を説明する。なお、説明の都合上、アクティブポート(AP)の設定対象をUSB制御部22aとすることがある。
先ず、図4に示すステップ61において、ポートのリクエストを実デバイスへ接続する。
ポート制御部34は、先ずUSB制御部22aを選択する。そして、ポート制御部34は、リクエスト判定部31に対して接続信号SCNを出力し、選択したUSB制御部22aを制御信号線LCTに接続する。これにより、選択したUSB制御部22aのリクエスト信号RQaを内部リクエスト信号REQとして実デバイスであるデバイス部23に対して供給することが可能となる。
そして、ステップ62において、ポートのステータスを実デバイスへ接続する。
ポート制御部34は、接続信号SCNによりリクエスト判定部31を制御し、切換信号CSaにより切換スイッチ32aの接続をデバイス部23のステータス信号STS側とする。これにより、USB制御部22aはデバイス部23に接続され、デバイス部23からのステータス信号STSがステータス信号STaとして供給される。
次に、ステップ63において、ポートのエニュメレーション(Enumeration)を実行する。
ポート制御部34は、選択したUSB制御部22aに対して応答開始を指示する。USB制御部22aの応答開始により、そのUSB制御部22aのポート21aに接続されたホスト装置10aは、接続処理(エニュメレーション:Enumeration)を実行する。ホスト装置10aは、USB制御部22aの応答によって接続された機器が有ることを把握し、その機器との間の情報の授受によって接続を図る。機器の接続を確認したホスト装置10aは、コンフィグレーション情報を送信する。
次いで、ステップ64において、ポートのコンフィグレーション(Configuration)を確認する。たとえば、ホスト装置10aから受信したコンフィグレーション情報の取り込み、USB仕様、たとえばマス・ストレージ・クラス・プロトコルの動作におけるデバイス部23の情報の送信を行う。
リクエスト判定部31は、ホスト装置10aから送信されるコンフィグレーション情報を確認する。
そして、ステップ65において、仮想デバイスステータス制御へ接続する。
リクエスト判定部31は、確認したコンフィグレーション情報に基づいて、切換信号CSaを出力し、切換スイッチ32aを介してUSB制御部22aとステータス制御部33とを互いに接続する。これにより、ステータス制御部33から出力される仮想ステータス信号ASaがUSB制御部22aに供給される。
次いで、ステップ66において、ステータスへビジー(Busy)を設定する。
ステータス制御部33は、ビジー(Busy)を示す仮想ステータス信号ASaを出力する。USB制御部22aは、ビジーを示すステータス信号STa(仮想ステータス信号ASa)に基づいて、ホスト装置10aからの要求信号(Token)に対して否定応答信号NAKを送信する。この否定応答信号NAKにより、USB制御部22aは、ホスト装置10aとの接続を維持し、アクセス待ち状態となる。
そして、ステップ67において、全ポート(Port)完了を判定する。
ステータス制御部33は、ポート制御部34に対して通知信号SAKによりビジーを示す仮想ステータス信号ASaを出力した旨を通知する。ポート制御部34は、通知信号SAKにより、USB制御部22aに対するホスト装置10aの接続を認識する。そして、ポート制御部34は、全てのUSB制御部22a〜22dについて、ホスト装置の接続を確認したか否かを判定する。全てのUSB制御部22a〜22dについてホスト装置の接続を確認していない場合(判定:NO)、ステップ61に移行し、次のUSB制御部に対する処理を行う。一方、全てのUSB制御部22a〜22dについてホスト装置の接続を確認した場合(判定:YES)、次のステップ(図5に示すステップ68)へ移行する。
次に、図5に示すステップ68において、接続されたホスト装置の数を判定する。
ポート制御部34は、ステータス制御部33からの通知信号SAKに基づいて、接続されたホスト装置の数を判定する。ホスト装置が接続されていない場合(判定:NO)、処理を終了する。一方、1つ以上のホスト装置が接続されている場合、次のステップ69へ移行する。
ステップ69において、アクティブポート(AP)を確認する。
ポート制御部34は、ラウンドロビン方式によって上記の処理によってホスト装置が接続された全てのUSB制御部22a〜22dを順次選択する。
リクエスト判定部31は、USB制御部22a〜22dについてアクティブポート(AP)を確認する。例えば、リクエスト判定部31は、USB制御部22aからリクエスト信号RQaが出力されているかを判定し、リクエスト信号RQaが出力されている場合にUSB制御部22aをアクティブポート(AP)とする。
そして、ステップ70において、アクティブポート(AP)設定を判定する。
ステップ69においてアクティブポート(AP)を設定した場合(判定:YES)、次のステップ71へ移行する。一方、設定していない場合(判定:NO)、ステップ69へ移行し、次のUSB制御部について確認を行う。
ポート制御部34は、ラウンドロビン方式によって巡回的に、ホスト装置10a〜10dが接続されたUSB制御部22a〜22dを順次選択する。リクエスト判定部31は、選択されたUSB制御部についてアクティブポート(AP)を確認する。このとき、リクエスト判定部31は、前回アクティブポート(AP)に設定したポート以外のポートを優先してアクティブポートか否かを確認する。たとえば、ポート制御部34は、ラウンドロビン方式によって巡回的にUSB制御部22a〜22dを順次選択する。したがって、直近にてアクティブポートに設定したUSB制御部の次のUSB制御部から順次確認する。これにより、USB制御部22a〜22dに対してアクティブポートを設定する割合を平均化する。
ステップ71において、アクティブポート(AP)のリクエスト制御を実デバイスへ接続する。
リクエスト判定部31は、アクティブポート(AP)に設定したUSB制御部22aを、制御信号線LCTを介してデバイス部23に接続する。
次いで、ステップ72において、アクティブポート(AP)のステータス制御を実デバイスへ接続する。
リクエスト判定部31は、アクティブポート(AP)に設定したUSB制御部22aに対応する切換スイッチ32aを切換信号CSaにより制御し、USB制御部22aをデバイス部23に接続する。
このとき、アクティブポート(AP)に設定したUSB制御部22a以外のUSB制御部22b〜22dは、切換スイッチ32b〜32dにより仮想デバイス部24に接続されている。したがって、USB制御部22b〜22dには、仮想デバイス部24による仮想ステータス信号ASb〜ASdが供給される。仮想デバイス部24は、ビジー(Busy)を示す仮想ステータス信号ASb〜ASdを出力する。USB制御部22b〜22dは、仮想ステータス信号ASb〜ASdに基づいて、ホスト装置10b〜10dからの全ての要求信号(Token)に対して否定応答信号NAKを送信する。この否定応答信号NAKにより、USB制御部22aは、ホスト装置10a〜10dとの接続を維持し、アクセスを排他制御する。
以下、データアクセスに応じて各ステップの処理を説明する。
[データリード]
先ず、リード要求に応じたデータアクセス(データリード)を説明する。
ステップ73において、USBデータアクセスを実施する。
上記のステップ71により、USB制御部22aのリクエスト信号RQaが内部リクエスト信号REQとしてデバイス部23に供給される。デバイス部23は、リクエスト信号RQaに応じて動作し、ステータス信号STSを出力する。このステータス信号STSは、切換スイッチ32aを介してステータス信号STaとしてUSB制御部22aに供給される。USB制御部22aは、ステータス信号STaに基づいて、ホスト装置10aに対して応答する。つまり、USB制御部22aは、図3に示すステップ53,54の処理を実行する。これにより、ホスト装置10aは、デバイス部23に対してデータアクセスする。デバイス部23は、ホスト装置10aのデータアクセスに応じてデータを出力する。デバイス部23からのデータは、データ信号線LDT、USB制御部22a、ポート21aを介してホスト装置10aへ送信される。
ステップ74において、アクティブポート(AP)のアクセス完了を確認する。
リクエスト判定部31は、USB制御部22aから出力されるリクエスト信号RQaを解析し、USB制御部22aを介して実施されるホスト装置10aのアクセス完了を確認する。
そして、ステップ75において、アクセス完了を判定する。
リクエスト判定部31は、ホスト装置10aによるアクセスが完了したか否かを判定する。アクセスが完了していない場合(判定:NO)、ステップ74に移行する。これにより、ステップ74におけるリクエスト信号RQaの解析は、アクセス終了が検出されるまで継続される。アクセスが完了した場合(判定:YES)、次のステップ76へ移行する。
ステップ76において、要求がライト(Write)要求か否かを判定する。
リクエスト判定部31は、USB制御部22aのリクエスト信号RQaに基づいて、要求の種類を判定する。この場合、リード要求であるため、ステップ69へ移行し、次のアクティブポート(AP)を確認する。
[データライト]
次に、ライト要求に応じたデータアクセス(データライト)を説明する。
上記のステップ73において、USBデータアクセスを実施する。
USB制御部22aのリクエスト信号RQaが内部リクエスト信号REQとしてデバイス部23に供給される。ホスト装置10aからの書き込みデータは、データ信号線LDTを介してデバイス部23に供給される。デバイス部23は、内部リクエスト信号REQに基づいて、供給される書き込みデータを記憶する。そして、デバイス部23は、書き込み完了を示すステータス信号STSを出力する。このステータス信号STSに基づいて、USB制御部22aにステータス信号STaが供給される。
ステップ74において、アクティブポート(AP)のアクセス完了を確認する。
リクエスト判定部31は、USB制御部22aから出力されるリクエスト信号RQaを解析し、USB制御部22aを介して実施されるホスト装置10aのアクセス完了を確認する。
そして、ステップ75において、アクセス完了を判定する。
リクエスト判定部31は、ホスト装置10aによるアクセスが完了したか否かを判定する。アクセスが完了していない場合(判定:NO)、ステップ74に移行する。これにより、ステップ74におけるリクエスト信号RQaの解析は、アクセス終了が検出されるまで継続される。アクセスが完了した場合(判定:YES)、次のステップ76へ移行する。
ステップ76において、要求がライト(Write)要求か否かを判定する。
リクエスト判定部31は、USB制御部22aのリクエスト信号RQaに基づいて、要求の種類を判定する。この場合、ライト要求であるため、次のステップ(図6のステップ77)へ移行する。
次に、図6に示すステップ77において、仮想デバイスステータス制御へ接続する。
リクエスト判定部31は、アクセス完了に基づいて、アクティブポート(AP)以外の全てのポートについて、切換スイッチ32b〜32dを切換信号CSb〜CSdにより制御し、USB制御部22b〜22dを仮想デバイス部24に順次接続する。なお、以下のステップの説明において、USB制御部22bに対する処理を説明する。
ステップ78において、ステータスへリセット(Reset)を設定する。
ステータス制御部33は、リセット(Reset)を示す仮想ステータス信号ASbを出力する。この仮想ステータス信号ASbは、切換スイッチ32bを介してUSB制御部22bへと供給される。
ステップ79において、バスリセット(BusReset)を発行し、USB接続を解除する。
USB制御部22bは、仮想ステータス信号ASbに基づいて、バスリセット(BusReset)を発行し、ホスト装置10bとの間のUSB接続を解除する。
ステップ80において、ポートのリクエストを実デバイスへ接続する。
リクエスト判定部31は、USB制御部22bを、制御信号線LCTを介してデバイス部23に接続する。
次いで、ステップ81において、ポートのステータスを実デバイスへ接続する。
リクエスト判定部31は、切換スイッチ32aを切換信号CSaにより制御し、USB制御部22aを仮想デバイス部24に接続する。
ステップ82において、ポートのエニュメレーション(Enumeration)を実行する。
ポート制御部34は、USB制御部22bに対して応答開始を指示する。USB制御部22bの応答開始により、そのUSB制御部22bのポート21bに接続されたホスト装置10bは、接続処理(エニュメレーション)を実行する。ホスト装置10bは、USB制御部22bの応答によってUSB制御部22bを接続された機器と判定し、USB制御部22bとの間の情報の授受により接続を図る。USB制御部22bの接続を確認したホスト装置10bは、コンフィグレーション情報をUSB制御部22bに送信する。
そして、ステップ83において、ポートのコンフィグレーション(Configuration)を確認する。たとえば、ホスト装置10aから受信したコンフィグレーション情報の取り込み、USB仕様、たとえばマス・ストレージ・クラス・プロトコルの動作におけるデバイス部23の情報の送信を行う。これにより、ホスト装置10bは、接続された機器、すなわちデバイス部23の情報を取得する。このとき、ホスト装置10bが取得する情報は、デバイス部23に対してライトアクセスによってデータが格納された後の情報である。したがって、ライトアクセスによって更新されたデバイス部23の情報がホスト装置10bの情報に反映される。
リクエスト判定部31は、ホスト装置10bから送信されるコンフィグレーション情報を確認する。
ステップ84において、仮想デバイスステータス制御へ接続する。
リクエスト判定部31は、確認したコンフィグレーション情報に基づいて、切換信号CSbを出力し、切換信号CSbを介してUSB制御部22bと仮想デバイス部24とを互いに接続する。
ステップ85において、ステータスへビジー(Busy)を設定する。
ステータス制御部33は、ビジー(Busy)を示す仮想ステータス信号ASbを出力する。USB制御部22bは、ビジーを示すステータス信号STb(仮想ステータス信号ASb)に基づいて、ホスト装置10bからの要求信号(Token)に対して否定応答信号NAKを送信する。この否定応答信号NAKにより、USB制御部22bは、ホスト装置10bとの接続を維持し、アクセス待ち状態となる。
ステップ86において、アクティブポート(AP)以外の全ポート(Port)の完了を判定する。
ステータス制御部33は、ポート制御部34に対して通知信号SAKによりビジーを示す仮想ステータス信号ASab出力した旨を通知する。ポート制御部34は、通知信号SAKにより、USB制御部22bに対するホスト装置10bの接続を認識する。そして、ポート制御部34は、アクティブポート(AP)以外の全てのUSB制御部22b〜22dについて、ホスト装置の接続を確認したか否かを判定する。アクティブポート(AP)以外の全てのUSB制御部22b〜22dについてホスト装置の接続を確認していない場合(判定:NO)、ステップ77に移行し、次のUSB制御部に対する処理を行う。一方、全てのUSB制御部22b〜22dについてホスト装置の接続を確認した場合(判定:YES)、図5に示すステップ68へ移行する。
次に、上記の周辺デバイス20の作用を説明する。
図7に示すように、ホスト装置10dがアクティブポート(AP)に設定される。このとき、他のホスト装置10a〜10cは、仮想デバイス部24によってUSB制御部22a〜22cから送信される否定応答信号NAKに基づいてアクセス待ち状態にある。
ホスト装置10dは、破線にて示すように、USB制御部22dと仮想デバイス部24を介してデバイス部23をアクセスする。たとえば、ホスト装置10dは、デバイス部23から1つのファイルを削除する。
図8に示すように、ホスト装置10dのアクセスが完了すると、仮想デバイス部24は、USB制御部22dを介してホスト装置10dに否定応答信号NAKを出力する。そして、仮想デバイス部24は、破線にて示すように、他のホスト装置10a〜10cに対して、リセット(Reset)を示す仮想ステータス信号ASa〜AScを順次出力する。USB制御部22a〜22cは、それぞれバスリセット(BusReset)を発行してUSB接続を一時的に切断する。ホスト装置10a〜10cから送信されたリクエスト信号は、USB接続の切断により破棄される。そして、各ホスト装置10a〜10cは、各ポート21a〜21cに対して再接続される。ホスト装置10a〜10cは、再接続により接続処理(エニュメレーション)を実行する。この接続処理と、クラス動作において、ホスト装置10a〜10cは、デバイス部23の情報を取得する。これにより、ホスト装置10a〜10cにおける情報が更新される。更新された情報は、ホスト装置10aにより削除されたファイルを含まない。したがって、更新された情報により、ホスト装置10a〜10cは無駄なアクセス要求を発行しないため、エラーは発生しない。
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)周辺デバイス20は、ポート21a〜21dを介してホスト装置10a〜10dに接続されるUSB制御部22a〜22dと、ホスト装置10a〜10dがアクセスするデバイス部23を有している。USB制御部22a〜22dとデバイス部23の間には、仮想デバイス部24が接続されている。仮想デバイス部24は、デバイス部23に対してUSB制御部22a〜22dを介したホスト装置10a〜10dのアクセスを制御する。仮想デバイス部24は、USB制御部22a〜22dのうちの1つをアクティブポート(AP)に設定し、そのアクティブポートに対してデバイス部23のアクセスを許可する。そして、仮想デバイス部24は、アクティブポートのアクセスの種類を判定し、ライトアクセスの場合に、アクティブポート以外のUSB制御部22a〜22dに対して、リセット(Reset)を示す仮想ステータス信号ASa〜ASd(リセットステータス)を出力する。USB制御部22a〜22dは、その仮想ステータス信号ASa〜ASdに基づいて、バスリセットを発行する。USB制御部22a〜22dに接続されたホスト装置10a〜10dは、バスリセットに基づいて接続処理(エニュメレーション)と、クラス動作を実行し、デバイス部23の情報を取得する。このように、ホスト装置10a〜10cは、デバイス部23の情報を更新する。更新された情報は、ホスト装置10aにより削除されたファイルを含まない。したがって、更新された情報により、ホスト装置10a〜10cは無駄なアクセス要求を発行しないため、エラーの発生を抑制することができる。
(2)USB制御部22a〜22dは、リセットを示す仮想ステータス信号ASa〜ASdに基づいてバスリセットを発行する。このバスリセットにより、USB接続が一時的に切断される。ホスト装置10a〜10dからの要求は、USB接続の切断により破棄される。したがって、ホスト装置10a〜10dから削除されたファイルに対するアクセス要求があっても、その要求はバスリセットにより破棄されるため、無駄なアクセスを抑制し、エラーの発生を防止することができる。
(3)仮想デバイス部24は、アクティブポート(例えばUSB制御部22a)に対してデバイス部23のアクセスを許可し、アクティブポート以外のUSB制御部22b〜22dに対してビジー(Busy)を示す仮想ステータス信号ASb〜ASd(ビジーステータス)を出力する。USB制御部22b〜22dは、仮想ステータス信号ASb〜ASdに基づいて、否定応答信号NAKを出力する。これにより、ホスト装置10b〜10dは、アクセス待ち状態となる。このように、仮想デバイス部24は、複数のホスト装置10a〜10dのアクセスを容易に排他制御することができる。
尚、上記各実施形態は、以下の態様で実施してもよい。
・上記実施形態は、4つのポート21a〜21dを有する周辺デバイス20を説明したが、ポートの数を、2つ,3つ,5つ以上に適宜変更してもよい。
・上記実施形態における周辺デバイスは、記憶装置を有していればよく、データを記憶する記憶部を含む周辺装置としてもよい。このような周辺装置は、例えばデジタルスチルカメラ、デジタルビデオカメラ、プリンタ、複合機等である。
20 周辺デバイス(電子デバイス)
21a〜21d ポート
22a〜22d USB制御部(バス制御部)
23 デバイス部(実デバイス)
24 仮想デバイス部(アクセス制御部)
31 リクエスト判定部
32a〜32d 切換スイッチ
33 ステータス制御部
34 ポート制御部
RQa〜RQd リクエスト信号
REQ 内部リクエスト信号
STS ステータス信号
STa〜STd ステータス信号
ASa〜ASd 仮想ステータス信号

Claims (9)

  1. ホスト装置が接続される複数のバス制御部と、
    前記ホスト装置によりアクセスされるデバイス部と、
    前記複数のバス制御部と前記デバイス部との間に接続され、前記デバイス部のアクセスを制御するアクセス制御部と、
    を有し、
    前記アクセス制御部は、前記複数のバス制御部のうちの1つのアクティブポートに前記デバイス部のアクセスを許可し、前記アクセスの種類に応じて、前記アクセスの完了後に前記アクティブポート以外のバス制御部に対してリセットステータスを出力し、前記リセットステータスを供給したバス制御部のアクセスを許可し、
    前記バス制御部は、前記リセットステータスに基づいてバスリセットを発行すること、
    を特徴とする電子デバイス。
  2. 前記アクセス制御部は、前記アクティブポートの前記バス制御部のリクエスト信号を前記デバイス部に出力し、前記デバイス部のステータス信号を前記アクティブポートの前記バス制御部に出力し、前記アクティブポート以外のバス制御部にビジーステータスを出力し、
    前記複数のバス制御部は、ビジーステータスに基づいて否定応答信号を出力すること、
    を特徴とする請求項1に記載の電子デバイス。
  3. 前記アクセス制御部は、前記複数のバス制御部に対する前記ホスト装置の接続を確認し、前記ホスト装置が接続された前記バス制御部のリクエスト信号に基づいて前記デバイス部に対するアクセスを許可すること、
    を特徴とする請求項1また2に記載の電子デバイス。
  4. 前記アクセス制御部は、前記リセットステータスに基づくバスリセットの発行の後、前記ホスト装置との間の接続処理によるコンフィグレーションを確認して前記アクティブポート以外の前記バス制御部にビジーステータスを出力すること、
    を特徴とする請求項1〜3のいずれか一項に記載の電子デバイス。
  5. 前記アクセス制御部は、
    前記複数のバス制御部に接続され、第1制御信号に応じた前記バス制御部を前記デバイス部に接続し、接続したバス制御部のリクエスト信号に応じてアクティブポートを設定し、前記第1制御信号に応じた複数の切換信号を出力するリクエスト判定部と、
    前記第1制御信号を出力し、前記接続したバス制御部に応答開始を指示するポート制御部と、
    前記リセットステータスを生成するステータス制御部と、
    前記複数のバス制御部にそれぞれ接続され、前記切換信号に応じて前記リセットステータスまたは前記デバイス部のステータス信号を選択する複数の切換スイッチと、
    を有すること、を特徴とする請求項1〜4のいずれか一項に記載の電子デバイス。
  6. 複数のホスト装置がアクセスするデバイス部を有する電子デバイスの制御方法であって、
    前記ホスト装置が接続される複数のバス制御部のうちの1つのアクティブポートに前記デバイス部に対するアクセスを許可し、
    前記アクティブポートのアクセス完了を確認し、
    前記アクセスの種類を判定し、
    前記アクセスの種類に応じて、前記アクティブポート以外の前記バス制御部に対してリセットステータスを出力し、
    前記バス制御部は、前記リセットステータスに基づいてバスリセットを発行すること、
    を特徴とする電子デバイスの制御方法。
  7. 前記アクティブポートの前記バス制御部のリクエスト信号を前記デバイス部に出力し、前記デバイス部のステータス信号を前記アクティブポートの前記バス制御部に出力し、前記アクティブポート以外のバス制御部にビジーステータスを出力し、
    前記複数のバス制御部は、ビジーステータスに基づいて否定応答信号を出力すること、
    を特徴とする請求項6に記載の電子デバイスの制御方法。
  8. 前記複数のバス制御部について、前記ホスト装置の接続を確認し、
    前記ホスト装置が接続された前記バス制御部についてアクティブポートを確認すること、
    を特徴とする請求項6または7に記載の電子デバイスの制御方法。
  9. 前記リセットステータスに基づくバスリセットの発行の後、前記ホスト装置との間の接続処理によるコンフィグレーションを確認して前記アクティブポート以外の前記バス制御部にビジーステータスを出力すること、
    を特徴とする請求項6〜8のいずれか一項に記載の電子デバイスの制御方法。
JP2014053642A 2014-03-17 2014-03-17 電子デバイス及び電子デバイスの制御方法 Pending JP2015176458A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014053642A JP2015176458A (ja) 2014-03-17 2014-03-17 電子デバイス及び電子デバイスの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014053642A JP2015176458A (ja) 2014-03-17 2014-03-17 電子デバイス及び電子デバイスの制御方法

Publications (1)

Publication Number Publication Date
JP2015176458A true JP2015176458A (ja) 2015-10-05

Family

ID=54255574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014053642A Pending JP2015176458A (ja) 2014-03-17 2014-03-17 電子デバイス及び電子デバイスの制御方法

Country Status (1)

Country Link
JP (1) JP2015176458A (ja)

Similar Documents

Publication Publication Date Title
CN110413213B (zh) 存储卷在存储阵列之间的无缝迁移
US6704819B1 (en) Method and apparatus for device sharing and arbitration
US6763402B2 (en) Data storage subsystem
CN112130748B (zh) 一种数据访问方法、网卡及服务器
JP4477437B2 (ja) ストレージ装置、そのクラスタ間データ通信方法、及びそのクラスタ通信制御プログラム
KR101705596B1 (ko) Usb디바이스가 연결되는 서버 디바이스 및 디바이스 공유방법
US8499056B2 (en) Remote USB system for supporting multiple virtual machines of multiple host and method thereof
JP2008257419A (ja) 通信アダプタ及び通信アダプタのデータ転送方法
WO2013128494A1 (en) Storage system and data transfer control method
US7194613B2 (en) Communication protocol for serial peripheral devices
US20160077986A1 (en) Electronic apparatus providing real-time switching and sharing of usb electronic devices among hosts
JP2021506038A (ja) 超高速かつ低遅延なネットワークストレージ
US6457079B1 (en) Communication apparatus with means for allocating alternate designation information to each function unit, and communication system with said two communication apparatuses
US8880812B1 (en) WWN table management systems and methods
JP5082599B2 (ja) データ転送装置
US20120311281A1 (en) Method and apparatus for optically backing up data
JP2007004710A (ja) ストレージアクセス方式、データ転送装置、ストレージアクセス方法、及びプログラム
JP2015176458A (ja) 電子デバイス及び電子デバイスの制御方法
JP2004094352A (ja) ホスト側インタフェース装置、デバイス側インタフェース装置、インタフェースシステム及びプログラム
JP2007213411A (ja) バスブリッジ装置
TWM494348U (zh) 提供主機即時切換及分享通用串列匯流排(usb)電子設備之電子裝置
US9384160B2 (en) Methods and controllers for affiliation managment
JP5104320B2 (ja) コンピュータシステム、コンピュータ本体、起動方法、および初期化プログラム
KR20090024419A (ko) Usb를 이용한 통신방법 및 통신장치
JP2006092562A (ja) ストレージシステム及びストレージシステムのアクセス方法