(57)【特許請求の範囲】
【請求項１】
リムーバブルメディアとの間で通信を行うメディア通信部と、
第１の外部機器および第２の外部機器を含む複数の外部機器と無線通信の接続を確立し、各外部機器からの前記リムーバブルメディアに対するアクセスを受ける無線通信部と、
前記複数の外部機器のうち一つの外部機器に前記リムーバブルメディアへのアクセス権を割り当てるアクセス制御手段であって、前記第１の外部機器に前記アクセス権が割り当てられておらず、前記第２の外部機器に前記アクセス権が割り当てられている場合、前記第１の外部機器から前記アクセス権の要求を規定したコマンドを受けた場合、当該コマンドに応じて前記アクセス権を前記第１の外部機器に割り当てる、アクセス制御手段と、
前記アクセス権を前記第２の外部機器から前記第１の外部機器に割り当て、前記アクセス権を前記第２の外部機器に再度割り当てる時に、前記第２の外部機器の前記アクセス権がインアクティブ状態の間に前記リムーバブルメディア内のデータが変更されていた場合、前記リムーバブルメディア内のデータが変更された旨を前記第２の外部機器に通知する第１の通知手段と、
を具備し、
前記第２の外部機器は、前記リムーバブルメディアに格納されているファイルシステム関連情報を取得し、前記ファイルシステム関連情報をキャッシュし、前記第１の通知手段からの通知に応じて前記ファイルシステム関連情報を再取得する取得手段を具備し、
前記第１の外部機器にアクセス権が割り当てられている場合、前記第１の外部機器は前記リムーバブルメディアにアクセスするための規格化されたコマンドに対応するコマンドを送信する、
アクセス制御装置。
【請求項２】
前記リムーバブルメディアに対してアクセスを行うアクセス手段を更に具備し、
前記アクセス制御手段は、前記アクセス手段および前記複数の外部機器のうちの一つに前記リムーバブルメディアへのアクセス権を割り当て、前記アクセス手段および前記複数の外部機器のうちの別の一つから前記アクセス権の要求を規定したコマンドを受けた場合、当該コマンドに応じて前記アクセス権を前記別の一つに割り当てる
請求項１に記載のアクセス制御装置。
【請求項３】
前記アクセス手段がアクセス権をサスペンドまたは停止する際に、前記アクセス権がアクティブ状態の間に前記リムーバブルメディア内のデータが変更されたかを前記アクセス制御手段に通知する第２の通知手段を更に具備し、
前記第２の通知手段から前記リムーバブルメディア内のデータが変更された旨が通知された場合、前記アクセス制御手段は、前記第２の通知手段からの通知に応じて前記アクセス手段がアクセス権をレジュームする際に、前記リムーバブルメディア内のデータが変更された旨を通知する、
請求項２記載のアクセス制御装置。
【請求項４】
前記アクセス制御手段は、前記アクセス手段および前記複数の外部機器のうちの一つが前記リムーバブルメディアにアクセスしている状態で、前記アクセス手段および前記複数の外部機器の別の一つから前記アクセス権の割り当ての要求があった場合、前記アクセス手段および前記複数の外部機器のうちの別の一つに対して前記アクセス権の割り当ての停止またはサスペンド要求を行い、前記アクセス手段および前記複数の外部機器のうちの一つにより停止またはサスペンドが行われた後、前記アクセス権の割り当てが停止またはサスペンドされたことを前記アクセス手段および前記複数の外部機器のうちの別の一つへ通知する、
請求項２記載のアクセス制御装置。
【請求項５】
前記アクセス制御手段は、前記アクセス手段または前記第２の外部機器に前記アクセス権を割り当てている状態で、前記第１の外部機器から前記アクセス権の割り当ての要求があった場合に、前記アクセス権を割り当てられている前記アクセス手段または前記第２の外部機器へアクセス権の割り当ての停止またはサスペンドを要求し、前記アクセス手段または前記第２の外部機器によりサスペンドまたは停止が行われた場合、前記アクセス手段および前記第２の外部機器への前記アクセス権の割り当てが停止またはサスペンドされたことを前記第１の外部機器へ通知し、前記第１の外部機器からアクセス要求に応じて前記第１の外部機器に前記アクセス権を割り当てる、
請求項４に記載のアクセス制御装置。
【請求項６】
前記アクセス制御手段は、前記アクセス権が割り当てられている前記アクセス手段が前記アクセス権の割り当てをロックモードでサスペンドすることを要求した場合に前記アクセス手段への前記アクセス権の割り当てを前記ロックモードでサスペンドし、前記ロックモードでサスペンドしている間に前記第１の外部機器から前記アクセス権の割り当ての要求があった場合に前記第１の外部機器に前記アクセス権を割り当てない、
請求項２に記載のアクセス制御装置。
【請求項７】
前記アクセス制御手段は、前記アクセス手段及び前記複数の外部機器の一つのものに前記アクセス権が割り当てられている状態であった場合に前記アクセス権を放棄するよう前記一つのものに要求する条件の下に前記アクセス権の割り当ての要求があった場合に、前記一つのものに対して前記一つのものへの前記アクセス権の割り当ての停止またはサスペンドを要求し、前記一つのものへの前記アクセス権の割り当てをレジュームした後に、前記一つのものから前記アクセス権の割り当ての停止またはサスペンドが要求された場合に、前記アクセス手段及び前記複数の外部機器から前記一つのものを除いたものにアクセス権の割り当てが可能になったことを通知し、前記アクセス手段及び前記複数の外部機器から前記一つのものを除いたものの何れかから再度アクセス権の割り当ての要求があった場合に前記アクセス手段及び前記複数の外部機器から前記一つのものを除いたものの何れかに前記アクセス権を割り当てる、
請求項６に記載のアクセス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、複数の機器によるリムーバブルメディアやＥｍｂｅｄｄｅｄ  ＳＤ等の内蔵ストレージのアクセスを制御するアクセス制御装置およびアクセス制御システムに関する。
【背景技術】
【０００２】
ＳＤメモリカード等のリムーバブルメディアやＥｍｂｅｄｄｅｄ  ＳＤ等の内蔵ストレージが、イメージデータやビデオデータの格納に広く用いられている。  
リムーバブルメディアを同時に複数の機器からマウントし、複数の機器からリムーバブルメディアにアクセスできるようにすることが望まれている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１１−５１７８６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
課題と目的とを記載する。
【０００５】
リムーバブルメディアやＥｍｂｅｄｄｅｄ  ＳＤ等の内蔵ストレージを同時に複数の機器からマウントし、複数の機器からリムーバブルメディアにアクセスできるようにすることが望まれている。
【０００６】
本発明の目的は、複数の機器でリムーバブルメディアやＥｍｂｅｄｄｅｄ  ＳＤ／Ｅｍｂｅｄｄｅｄ  ＳＤＩＯ等の内蔵ストレージにアクセスできるようにすることが可能なアクセス制御装置およびアクセス制御システムを提供することにある。
【課題を解決するための手段】
【０００７】
実施形態によれば、アクセス制御装置は、リムーバブルメディアとの間で通信を行うメディア通信部と、第１の外部機器および第２の外部機器を含む複数の外部機器と無線通信の接続を確立し、各外部機器からの前記リムーバブルメディアに対するアクセスを受ける無線通信部と、前記複数の外部機器のうち一つの外部機器に前記リムーバブルメディアへのアクセス権を割り当てるアクセス制御手段であって、前記第１の外部機器に前記アクセス権が割り当てられておらず、前記第２の外部機器に前記アクセス権が割り当てられている場合、前記第１の外部機器から前記アクセス権の要求を規定したコマンドを受けた場合、当該コマンドに応じて前記アクセス権を前記第１の外部機器に割り当てる、アクセス制御手段と、前記アクセス権を前記第２の外部機器から前記第１の外部機器に割り当て、前記アクセス権を前記第２の外部機器に再度割り当てる時に、前記第２の外部機器の前記アクセス権がインアクティブ状態の間に前記リムーバブルメディア内のデータが変更されていた場合、前記リムーバブルメディア内のデータが変更された旨を前記第２の外部機器に通知する第１の通知手段と、を具備し、前記第２の外部機器は、前記リムーバブルメディアに格納されているファイルシステム関連情報を取得し、前記ファイルシステム関連情報をキャッシュし、前記第１の通知手段からの通知に応じて前記ファイルシステム関連情報を再取得する取得手段を具備し、前記第１の外部機器にアクセス権が割り当てられている場合、前記第１の外部機器は前記リムーバブルメディアにアクセスするための規格化されたコマンドに対応するコマンドを送信する。
【図面の簡単な説明】
【０００８】
【図１】実施形態の通信システムの構成の一例を示すブロック図である。
【図２】図１の通信システムのアーキテクチャの一例を示すブロック図である。
【図３】デバイスとホストの間のセッションの遷移の一例を示す図である。
【図４】セッションの開始およびＳＤメモリカード３００をデバイスおよびホストで供給を開始するためのセッション準備（Session setup）の手順の一例を示す図である。
【図５】ＳＤバスハンドルの状態の遷移の一例を示す図である。
【図６】ＳＤバスハンドルがロックされていない際のＳＤバスへのアクセスについて説明するための図である。
【図７】他のホストがアクセスしている際のＳＤバスへのアクセスを説明するための図である。
【図８】他のホストによってＳＤバスハンドルがロックされている際にＳＤバスへのアクセスについて説明するための図である。
【図９】ＳＤメモリカード内に格納されているデータの変更の通知のしくみを説明するための図である。
【図１０】ＳＤバスハンドルのサスペンド／レジュームについて説明するための図である。
【図１１】ホストが２台ある場合、バスハンドルがインアクティブ状態の間の他のホストによるＳＤバスハンドルの取得を説明するための図である。
【図１２】ホストが２台ある場合、第２のホストがＳＤバスハンドルをロックされたインアクティブ状態にした場合に第１のホストがアクセスできないことを説明するための図である。
【図１３】他のホストがＳＤバスにアクセスしている状態でのＳＤバスハンドルのレジュームについて説明するための図である。
【図１４】他のホストがＳＤバスにアクセスしている状態でのＳＤＰＡＬセッションのセットアップについて説明するための図である。
【図１５】“GetBusHandle.request”および“GetBusHandle.response”で用いるパラメータとその値について説明するための表である。
【図１６】“ReleaseBusHandle.request”および“ReleaseBusHandle.response” で用いるパラメータとその値について説明するための図である。
【図１７】“BusHandleResume.request”および“BusHandleResume.response” で用いるパラメータとその値について説明するための図である。
【図１８】“BusHandleSuspend.request”および“BusHandleSuspend.response” で用いるパラメータとその値について説明するための図である。
【図１９】デバイスからホストへの通知について説明するための図である。
【図２０】ＳＤバスハンドルの状態の遷移の別の一例を説明するための図である。
【発明を実施するための形態】
【０００９】
以下、実施の形態について図面を参照して説明する。
【００１０】
図１は、一実施形態に係わる通信システムの構成を示すブロック図である。  
図１に示すように、通信システムは、デバイス１００とホスト２００とから構成されている。デバイス１００とホスト２００とは、例えばＷｉＦｉやＷｉＧｉｇ（Wireless Gigabit）等の高速無線通信によって、データの転送を行うことが可能である。
【００１１】
デバイス１００は、デバイス側ＰＨＹ／ＭＡＣ層１０１、デバイス側ＳＤ  ＰＡＬ（SD Protocol Adaptation Layer）部１０２、デバイス側ＳＤアプリケーション１０３、ＳＤホストコントローラドライバ１０４、ＳＤ相互接続部１０５、ＳＤホストコントローラ１０６、ＳＤカードスロット１０７等を備えている。
【００１２】
デバイス側ＰＨＹ／ＭＡＣ層１０１は、ＷｉＦｉやＷｉＧｉｇ（Wireless Gigabit）等の高速無線通信を行い、物理層とメディアアクセス制御層とを有する。
【００１３】
ＳＤカードスロット１０７には、例えばＳＤメモリカード３００等の可搬性のリムーバブルメディアが挿入される。ＳＤホストコントローラ１０６は、ＳＤカードスロットに挿入されたＳＤメモリカードと通信を行ってデータの転送を行う。
【００１４】
デバイス側ＳＤアプリケーション１０３は、ＳＤメモリカード３００にアクセスするアプリケーションである。ＳＤ  Ｈ／Ｃドライバ１０４は、ＳＤカードホストコントローラ１０６を制御し、デバイス側ＳＤアプリケーション１０３に対して抽象化したインタフェースを提供するためのソフトウェアである。
【００１５】
デバイス側ＳＤ  ＰＡＬ部１０２は、ＳＤカードホストコントローラ１０６とホスト２００との間で交換されるコマンドを変換する。例えば、ＳＤカードホストコントローラ１０６からホスト２００にコマンドを送信する場合、ＳＤカード規格のコマンドを高速無線通信で送信するために適したコマンドに変換する。また、例えば、ホスト２００からコマンドを受信した場合、高速無線通信で送信するために適したコマンドをＳＤカード規格のコマンドに変換する。
【００１６】
ＳＤ相互接続部１０５は、ＳＤメモリカード３００へのアクセスをデバイス側ＳＤアプリケーション１０３からのアクセスとホスト２００のＳＤアプリケーション２０１からのアクセスを切り替える機能を有する。
【００１７】
ホスト２００は、ホスト側ＳＤアプリケーション２０１、ＳＤカード仮想コントローラ２０２、ホスト側ＳＤ  ＰＡＬ部（ＳＤ  ＰＡＬ）２０３、ホスト側ＰＨＹ／ＭＡＣ層２０４等を有する。
【００１８】
ホスト側ＰＨＹ／ＭＡＣ層２０４は、ＷｉＧｉｇ（Wireless Gigabit）等の高速無線通信を行い、物理層とメディアアクセス制御層とを有する。ＳＤカード仮想コントローラ２０２は、ホスト側ＳＤアプリケーション２０１がＳＤメモリカード３００内のデータにアクセスするための仮想的なコントローラであり、ホスト側ＳＤ  ＰＡＬ部２０３に送信するコマンドに変換する。ホスト側ＳＤ  ＰＡＬ部２０３とデバイス側ＳＤ  ＰＡＬ部の間は、高速無線通信で送信するために適したコマンドが送受信される。
【００１９】
次に、図２を参照して、通信システムのアーキテクチャを説明する。  
ホスト２００は、ホスト側ファイルシステム２０５、ホスト側ＳＤアプリケーション２０１、ホスト側ＳＤ  ＰＡＬ部２０３、ホスト側ＰＨＹ／ＭＡＣ層２０４等を備えている。
【００２０】
ホスト側ファイルシステム２０５は、ＳＤメモリカードに格納されているＳＤメモリカード内のファイルの読み書きを行うためのファイスシステムの解析を行う。ホスト側ファイルシステム２０５は、最初にＳＤメモリカード３００にアクセスした際、アクセスの高速化を図るためにＳＤメモリーカードに格納されているＦＡＴ（ファイルの位置情報などを記録するためのテーブル）をキャッシュする。
【００２１】
デバイス１００は、デバイス側ＰＨＹ／ＭＡＣ層１０１、デバイス側ＳＤ  ＰＡＬ部１０２、デバイス側ＳＤアプリケーション１０３、デバイス側ファイルシステム１０８、ＳＤ相互接続部１０５、ＳＤカードホストコントローラ１０６、デバイス側ＳＤ  ＩＦ／ＵＨＳ−ＩＩ  ＩＦ１０９、デバイス側ＰＨＹ／ＬＩＮＫ層１１０等を備えている。
【００２２】
デバイス側ファイルシステム１０８は、ＳＤメモリカードに格納されているＳＤメモリカード内のファイルの読み書きを行うためのファイルシステムの解析を行う。デバイス側ファイルシステム１０８は、最初にＳＤメモリカード３００にアクセスした際、アクセスの高速化を図るためにＳＤメモリーカードに格納されているＦＡＴをキャッシュする。
【００２３】
ＳＤ  ＩＦ／ＵＨＳ−ＩＩ  ＩＦ１０９は、ＳＤ規格およびＵＨＳ−ＩＩ規格に対応するインタフェースである。デバイス側ＰＨＹ／ＬＩＮＫ層１１０は、物理層と、データリンク層とを有する。
【００２４】
ＳＤメモリカード３００は、カードＰＨＹ／ＬＩＮＫ層３０１、カードＳＤ  ＩＦ／ＵＨＳ−ＩＩ  ＩＦ３０２、フラッシュメモリ３０３等を備えている。
【００２５】
カードＰＨＹ／ＬＩＮＫ層３０１は、物理層と、データリンク層とを有する。カードＳＤ  ＩＦ／ＵＨＳ−ＩＩ  ＩＦ３０２は、ＳＤ規格およびＵＨＳ−ＩＩ規格に対応するインタフェースである。フラッシュメモリ３０３は、データが格納される不揮発性メモリである。
【００２６】
次に、デバイス１００とホスト２００の間のセッションの遷移について図３を参照して説明する。  
通信が行われていない未接続（No connection）から接続の確立（Connection established）を経て、接続（Connected）に推移する。接続（Connected）から、セッション準備（Session setup）を経て、セッションアクティブ（session active）に推移する。セッションアクティブ（有効）（session active）から、セッション終了（Session terminate）を経て、接続（Connected）に推移する。接続（Connected）から、接続不明（Connection lost）を経て、未接続（No connection）に推移する。
【００２７】
次に、高速無線通信の開始およびＳＤメモリカード３００をデバイスおよびホストからアクセスを開始するためのセッション準備（Session setup）の手順について図４を参照して説明する。
【００２８】
ホスト側ＰＨＹ／ＭＡＣ層２０４とデバイス側ＰＨＹ／ＭＡＣ層１０１との間で、無線通信を行うためのリンクが開始される（Link Startup）。リンク開始後、通信サービスが両者を見つけられ、通信がセキュア化される（Service Discovery/Security）。ＳＤメモリカードがＳＤカードスロットに挿入されると、ＳＤ相互接続部１０５は、ＳＤメモリカード３００との通信を可能にするために、デバイス側ＳＤ  ＩＦ／ＵＨＳ−ＩＩ  ＩＦ１０９およびカードＳＤ  ＩＦ／ＵＨＳ−ＩＩ  ＩＦ３０２の初期化が行われる。初期化後、ＳＤ相互接続部１０５は、初期化されたことをデバイス側ＳＤアプリケーション１０３に通知する（notification(SD Initialized)）。デバイス側ＳＤアプリケーション１０３は、デバイス側ＳＤ  ＰＡＬ部１０２にＳＤカードをＳＤ  ＰＡＬの開始を要求する（SD PAL start request）。デバイス側ＳＤ  ＰＡＬ部１０２は、ＳＤ  ＰＡＬの開始をホスト側ＳＤ  ＰＡＬ部２０３に要求する（notification(SD PAL start request)）。
【００２９】
ホスト側ＳＤ  ＰＡＬ部２０３は、ＳＤ  ＰＡＬの開始要求通知notification(SD PAL start request)を受信したことをホスト側ＳＤアプリケーション２０１に通知する（notification）。ホスト側ＳＤアプリケーション２０１は、ＳＤ  ＰＡＬ開始要求SD PAL start requestをデバイス側ＳＤ  ＰＡＬ部１０２に送信し、ＳＤ  ＰＡＬセットアップを要求する。デバイス側ＳＤ  ＰＡＬ部１０２は、ＳＤ  ＰＡＬセットアップの要求に対し“SDPAL setup response”をホスト側ＳＤ  ＰＡＬ部２０３で応答する。
【００３０】
ホスト側ＳＤ  ＰＡＬ部２０３は、ホストの能力を送信すると共にデバイスの能力の送信を要求する、“capability exchange (Host PAL Information) request”をホスト側の能力であるバッファサイズ等の情報と共にデバイス側ＳＤ  ＰＡＬ部１０２に送信する。capability exchange requestの受信に応じて、デバイス側ＳＤ  ＰＡＬ部１０２は、ＳＤメモリカード３００の容量、対応する規格の能力を示す、“capability exchange response”をホスト側ＳＤ  ＰＡＬ部２０３に送信する。
【００３１】
ホスト側ＳＤ  ＰＡＬ部２０３は、デバイス側ＳＤ  ＩＦ／ＵＨＳ−ＩＩ  ＩＦ１０９によりアクセス可能なＳＤデバイスへのアクセス権を要求するために、“get bus handle request”をデバイス側ＳＤ  ＰＡＬ部１０２に送信する。デバイス側ＳＤ  ＰＡＬ部１０２は、“get bus handle request”の受信に応じて、ＳＤ相互接続部１０５にホスト２００によるＳＤカードへのアクセス権を取得できるかを問い合わせる。問い合わせに応じて、ＳＤ相互接続部１０５は、アクセス権を許可する場合に、デバイス側ＳＤ  ＰＡＬ部１０２に許可する旨を返答する。デバイス側ＳＤ  ＰＡＬ部１０２は、get bus handle responseをホスト側ＳＤ  ＰＡＬ部２０３に送信する。ホスト側ＳＤ  ＰＡＬ部２０３は、ホスト側ＳＤアプリケーション２０１にバスハンドルを取得できたことを通知する。
【００３２】
次に、図５を参照して、ホスト２００のＳＤバスハンドル（アクセス権）の状態の遷移を説明する。
【００３３】
非割り当て状態（Bus handle not assigned）は、ホスト２００にＳＤバスハンドルが割り当てられていない状態である。この状態では、ホスト２００はＳＤバスおよびＳＤメモリーカード（ＳＤデバイス）３００にアクセスはできないが、デバイス１００は、ＳＤバスおよびＳＤメモリカード（ＳＤデバイス）３００にアクセスすることが可能である。ホスト２００が、ＳＤバスハンドルを取得すると（Get Bus handle）、ホスト２００に対するＳＤバスハンドルが、非割り当て状態からアクティブ状態（Bus active）になる。アクティブ状態では、ホスト２００がＳＤバスおよびＳＤデバイスにアクセスすることが可能である。
【００３４】
ＳＤバスハンドルがサスペンドされると、ホスト２００に対するＳＤバスハンドルが、アクティブ状態（Bus handle active）からインアクティブ（無効）状態（Bus handle inactive）に移行する。インアクティブ状態では、ホスト２００はＳＤバスおよびＳＤデバイスへのアクセス権を一時的に解放し、デバイス１００がＳＤバスおよびＳＤデバイスにアクセスすることが可能になる。バスハンドルがインアクティブ状態においてＳＤバスがレジュームされると、ＳＤバスハンドルの状態がインアクティブ状態（Bus handle inactive）からアクティブ状態（Bus handle active）に移行する。なお、インアクティブ状態の間にＳＤメモリカード３００内のデータが変更されていたら、データが変更されたことがホスト２００に通知される。
【００３５】
ＳＤバスがロックモードでサスペンドされると、ＳＤバスハンドルが、アクティブ状態（Bus handle active）からロックされたインアクティブ状態（Bus handle inactive(locked)）に移行する。ロックされたインアクティブ状態では、ホスト２００はＳＤバスおよびＳＤデバイスへのアクセス権を一時的に解放しているが、デバイス１００はローカルなＳＤバスおよびＳＤデバイスにローカルにアクセスすることができない。ＳＤバスハンドルがレジュームされると、ＳＤバスハンドルの状態がロックされたインアクティブ状態からアクティブ状態に移行する。
【００３６】
なお、アクティブ状態、インアクティブ状態、およびロックされたインアクティブ状態は、ホスト２００にバスハンドルが割り当てられている状態である（Bus assigned）。
【００３７】
次に、ＳＤバスハンドルがインアクティブ状態の際に、他のホストがＳＤバスへのアクセス要求がある場合について、図６を参照して説明する。なお、以下では、デバイス１００をローカルホスト（ＬＨ）１００、ホスト２００をリモートホスト（ＲＨ）２００と記すこともある。
【００３８】
図６では、“Bus Handle L”はローカルホスト１００に対するＳＤバスハンドルの状態を示し、“Bus state”はＳＤバスの状態を示し、“Bus Handle R”はリモートホスト２００に対するＳＤバスハンドルの状態を示す。
【００３９】
最初に、ＳＤメモリカード３００がＳＤカードスロット１０７に挿入されていないので、ＳＤバスは利用できない。ＳＤバスのアクセス権はローカルホストへおよびリモートホストに割り当てられていない。ＳＤメモリカード３００がＳＤカードスロット１０７に挿入され、ローカルホスト１００によってＳＤバスが初期化された後（ステップ６０１）、ＳＤバスがアクティブ化され、ＳＤバスハンドルがローカルホスト１００に割り当てられる。
【００４０】
ローカルホスト１００（デバイスＳＤアプリケーション１０３）がＳＤバスハンドルをサスペンドした場合、ローカルホスト１００に対するＳＤバスの割り当てがインアクティブ化し、ＳＤバスがインアクティブ状態に移行する（ステップ６０２）。ＳＤバスは、省電力モードに移行してもよい。
【００４１】
リモートホスト２００（ホストＳＤアプリケーション２０１）がＳＤメモリカード３００へのアクセスを開始する場合、リモートホスト２００（ホストＳＤアプリケーション２０１）に対するＳＤバスハンドルがアクティブ化し、ＳＤバスは、インアクティブ状態からアクティブ状態に移行する（ステップ６０３）。
【００４２】
リモートホスト２００（ホストＳＤアプリケーション２０１）がＳＤバスハンドルをサスペンドした場合、リモートホスト２００に対するＳＤバスハンドルが、インアクティブ化し、ＳＤバスは、インアクティブ状態に移行する（ステップ６０４）。
【００４３】
ローカルホスト１００（デバイスＳＤアプリケーション１０３）がＳＤメモリカード３００へのアクセスを再開する場合、ローカルホスト１００に対するＳＤバスハンドルが、アクティブ化し、ＳＤバスは、インアクティブ状態からアクティブ状態に移行する（ステップ６０５）。
【００４４】
なお、ＳＤバスハンドルのアクティブ状態とインアクティブ状態の切り替えの判断は、ＳＤ相互接続部１０５によって行われる。
【００４５】
次に、ローカルホスト１００によってＳＤバスがアクティブ化されている間のＳＤバスへのアクセスについて図７を参照して説明する。
【００４６】
図７において、Bus State Lはローカルホスト１００に対するＳＤバスハンドルの状態を示し、Bus stateはＳＤバスの状態を示し、Bus State Rはリモートホスト２００に対するＳＤバスハンドルの状態を示す。
【００４７】
最初に、ＳＤメモリカード３００がＳＤカードスロット１０７に挿入されていないので、ＳＤバスは利用できない。ＳＤバスハンドルはローカルホストへのＳＤバスおよびリモートホストに割り当てられていない。ＳＤメモリカード３００がＳＤカードスロット１０７に挿入され、ローカルホスト１００によってＳＤバスが初期化された後、ＳＤバスがアクティブ化され、ＳＤバスハンドルがローカルホスト１００に割り当てられる。
【００４８】
ステップ７０１：ローカルホスト１００がＳＤメモリカード３００へのアクセス権がある状態で、リモートホスト２００は、ＳＤバスハンドルの取得を試みる。ローカルホスト１００がＳＤメモリカード３００にアクセスしているのでリモートホスト２００の試みは失敗する。
【００４９】
ステップ７０２：ローカルホスト１００がＳＤメモリカードへのアクセス権がある状態であった場合にアクセス権を放棄するように要求を行うという条件つきで、リモートホスト２００は、ＳＤバスハンドルの取得を試みる。ＳＤ相互接続部１０５は、ＳＤバスへのアクセスをサスペンドまたは停止するようにローカルホスト１００に通知する。ローカルホスト１００は、サスペンドをしてもよい状態になるまでＳＤバスへのアクセスを行い、一区切りした段階でＳＤバスハンドルをサスペンドする。リモートホスト２００には、ＳＤ相互接続部１０５からＳＤバスが利用できるようになったことが通知される。リモートホスト２００は、ＳＤバスハンドルの取得要求を再度行い、ＳＤバスへのアクセス権を取得する。
【００５０】
ステップ７０３：リモートホスト２００がＳＤメモリカードへのアクセス権を取得している状態で、ローカルホスト１００は、ＳＤバスハンドルの取得を試みる。このとき、ローカルホスト１００は、ＳＤバスハンドルの取得を許可されず、ローカルホスト１００に対するＳＤバスハンドルの取得要求は失敗する。
【００５１】
ステップ７０４：リモートホスト２００がＳＤメモリカード３００へのアクセス権を取得している状態であった場合にアクセス権を放棄するように要求を行うという条件つきでローカルホスト１００は、ＳＤバスハンドルの取得を試みる。ローカルホストとＳＤ相互接続部１０５は、ＳＤバスへのアクセスをサスペンドまたは停止するようにリモートホスト２００に通知する。リモートホスト２００は、サスペンドをしてもよい状態になるまでＳＤバスへのアクセスを行い、一区切りした段階でＳＤバスハンドルをサスペンドする。ローカルホスト１００には、ＳＤ相互接続部１０５からＳＤバスが利用できるようになったことが通知される。ローカルホスト１００は、ＳＤバスハンドルの取得要求を再度行い、ＳＤバスへのアクセス権を取得する。
【００５２】
ステップ７０５：ローカルホスト１００がＳＤメモリカードへのアクセス権を取得している状態で、リモートホスト２００は、ＳＤバスハンドルの取得を試みる。リモートホスト２００によるＳＤバスハンドルの取得は失敗する。
【００５３】
ステップ７０６：ローカルホスト１００がＳＤメモリカードへのアクセス権を取得している状態であった場合にアクセス権を放棄するように要求を行うという条件つきでリモートホスト２００は、ＳＤバスハンドルのレジュームを試みる。ＳＤ相互接続部１０５は、ＳＤバスハンドルがサスペンドまたは停止するようローカルホスト１００に通知する。ローカルホスト１００は、サスペンドまたは停止をしてもよい状態になるまでＳＤバスへのアクセスを行い、一区切りした段階でＳＤバスハンドルをサスペンドするリモートホスト２００には、ＳＤ相互接続部１０５からＳＤバスが利用できるようになったことを通知する。リモートホスト２００は、ＳＤバスハンドルを再度レジューム要求し、ＳＤバスへのアクセス権を取得する。
【００５４】
ステップ７０７：リモートホスト２００がＳＤメモリカードへのアクセス権を取得している状態で合った場合にアクセス権を放棄するように要求を行うという条件つきで、ローカルホスト１００は、ＳＤバスハンドルのレジュームを試みる。ＳＤ相互接続部１０５は、ＳＤバスハンドルのサスペンドまたは終了要求をリモートホスト２００に通知する。リモートホスト２００は、サスペンドまたは停止をしてもよい状態になるまでＳＤバスへのアクセスを行い、一区切りした段階でＳＤバスハンドルの終了要求を行う。ローカルホスト１００には、ＳＤ相互接続部１０５からＳＤバスが利用できるようになったことを通知する。ローカルホスト１００は、ＳＤバスハンドルをレジュームし、ＳＤバスへのアクセス権を再度取得する。
【００５５】
次に、ＳＤバスがロックされている間のＳＤバスへのアクセスについて図８を参照して説明する。
【００５６】
図８において、Bus State Lはローカルホスト１００に対するＳＤバスハンドルの状態を示し、Bus stateはＳＤバスの状態を示し、Bus State Rはリモートホスト２００に対するＳＤバスハンドルの状態を示す。
【００５７】
最初に、ＳＤメモリカード３００がＳＤカードスロット１０７に挿入されていないので、ＳＤバスは利用できない。ＳＤバスハンドルはローカルホスト１００およびリモートホスト２００に割り当てられていない。ＳＤメモリカード３００がＳＤカードスロット１０７に挿入され、ローカルホスト１００によってＳＤバスが初期化された後、ＳＤバスがアクティブ化され、ＳＤバスハンドルがローカルホスト１００に割り当てられる。
【００５８】
ステップ８０１：ローカルホスト１００は、ＳＤバスハンドルをロックモードでサスペンドする。ＳＤバスの状態は、ＳＤバスにアクセスすることができない、ロックモードに移行する。なお、ＳＤバスは省電力モードに移行してもよい。
【００５９】
ステップ８０２：リモートホスト２００は、ＳＤバスハンドルの取得を試みる。ＳＤバスハンドルはローカルホスト１００によってロックされているので、リモートホストはＳＤバスハンドルを取得することができない。リモートホスト２００には、ＳＤ相互接続部１０５からロックモードであることが通知される。
【００６０】
ステップ８０３：リモートホスト２００は、ＳＤバスハンドルのアクセス権を取得している状態であった場合にアクセス権を放棄するように要求を行うという条件付きで、ＳＤバスハンドルの取得を試みる。ＳＤ相互接続部１０５は、ＳＤバスハンドルをサスペンドまたは終了するようローカルホスト１００に要求する。ローカルホスト１００はＳＤバスハンドルをまずはアクティブ化し、リモートホストからアクセスされてもよい状態になるまでＳＤアクセスを行い、一区切りした段階でサスペンドする。リモートホスト２００には、ＳＤ相互接続部１０５からＳＤバスが利用できるようになったことが通知される。リモートホスト２００は、ＳＤバスへのアクセス権の割り当ての要求を再度行い、リモートホストに対するＳＤバスハンドルがアクティブ化する。またＳＤバスもアクティブ状態に移行する。
【００６１】
ステップ８０４：リモートホスト２００は、ＳＤバスへのアクセスをロックモードでサスペンドする。ＳＤバスの状態は、ＳＤバスにアクセスすることができない、ロックモードに移行する。また、リモートホストに対するＳＤバスハンドルは、ロックモードのインアクティブ状態に移行する。ＳＤバスはインアクティブ状態に移行する。なお、ＳＤバスは省電力モードに移行してもよい。
【００６２】
ステップ８０５：ローカルホスト１００は、ＳＤバスハンドルの取得を試みる。ＳＤバスハンドルはリモートホスト２００によってロックされているので、ローカルホスト１００はＳＤバスハンドルを取得することができない。ローカルホスト１００には、ＳＤ相互接続部１０５からロックモードであることが通知される。
【００６３】
ステップ８０６：ローカルホスト１００は、リモートホストがアクセス権を取得していた場合にＳＤバスのアクセス権の受け渡しを依頼する通知フラグをたてて、ＳＤアクセスの再開を試みる。ＳＤ相互接続部１０５は、リモートホスト２００に対して、アクセス権を解放するよう要求を行う。リモートホスト２００はＳＤバスハンドルをまずはアクティブ化し、ローカルホストからアクセスされてもよい状態になるまでＳＤアクセスを行い、一区切りした段階で終了する。ローカルホスト１００には、ＳＤ相互接続部１０５からＳＤバスハンドルが利用できるようになったことが通知される。ローカルホスト１００は、ＳＤバスハンドルのレジューム要求を行い、今度は成功し、アクセス権を再取得する。また、またＳＤバスもアクティブ状態に移行する。
【００６４】
次に、ＳＤメモリカード３００内に格納されているデータが変更された場合の動作について図９を参照して説明する。  
図９において、Bus State Lはローカルホスト１００に対するＳＤバスハンドルの状態を示し、Bus stateはＳＤバスの状態を示し、Bus State Rはリモートホスト２００に対するＳＤバスハンドルの状態を示す。
【００６５】
最初に、ＳＤメモリカード３００がＳＤカードスロット１０７に挿入されていないので、ＳＤバスは利用できない。ＳＤバスハンドルはローカルホスト１００およびリモートホスト２００に割り当てられていない。ＳＤメモリカード３００がＳＤカードスロット１０７に挿入され、ローカルホスト１００によってＳＤバスが初期化された後、ＳＤバスがアクティブ化され、ＳＤバスハンドルがローカルホスト１００に割り当てられる。
【００６６】
ステップ９０１：ローカルホスト１００がＳＤバスハンドルをサスペンドした場合、アクティブな状態の間にＳＤメモリカード内のデータが変更（ファイルの更新、追加、削除）されれば、ローカルホスト１００は、その旨をＳＤ相互接続部１０５に通知する。
【００６７】
リモートホスト２００が、ＳＤバスハンドルを取得し、ＳＤバスにアクセスする。
【００６８】
ステップ９０２：リモートホスト２００がＳＤバスハンドルをサスペンドする。アクティブ状態に間にＳＤメモリカード内のデータが変更されれば、リモートホスト２００は、その旨をＳＤ相互接続部１０５に通知する。リモートホスト２００に対するＳＤバスハンドルがインアクティブ化する。
【００６９】
ステップ９０３：ローカルホスト１００がＳＤバスハンドルを取得した場合、非アクティブ状態の間にＳＤメモリカード内のデータが変更されれば、ローカルホスト１００はＳＤ相互接続部１０５からその旨が通知される。ＳＤメモリカード内のデータが変更されれば、ローカルホストのデバイスファイルシステム１０８は、ＦＡＴのキャッシュを破棄し、ＳＤメモリカード３００からＦＡＴを再取得する。
【００７０】
ステップ９０４：リモートホスト２００がＳＤバスハンドルのレジューム要求を行う。ローカルホストはサスペンドまたは終了要求が通知される。ローカルホスト１００がＳＤバスハンドルのサスペンドまたは終了を要求された場合、ローカルホスト１００は、サスペンドしても問題ないようになるまでＳＤアクセスを続行し、一区切りした段階でサスペンド要求を出す。なお、ローカルホスト１００がサスペンド要求を出す際に、ＳＤメモリカード内のデータを変更したかを示す情報をＳＤ相互接続部１０５に送る。ＳＤ相互接続部１０５はリモートホストにバスハンドルが利用できるようになったことを通知する。リモートホストはＳＤバスハンドルの再取得を試み、成功する。なおその際にリモートホスト２００は、ＳＤ相互接続部１０５より、非アクティブ状態の間にＳＤメモリカード内のデータが変更されたかを示す情報を取得する。ＳＤメモリカード内のデータが変更されていたら、リモートホストのホストファイルシステム２０５は、ＦＡＴのキャッシュを破棄し、ＳＤメモリカード３００からＦＡＴデータを再取得する。
【００７１】
ステップ９０５：リモートホスト２００がＳＤバスハンドルのサスペンドまたは終了を要求された場合、リモートホスト２００は、サスペンドしても問題ないようになるまでＳＤアクセスを続行し、一区切りした段階でサスペンド要求を出す。なお、サスペンド要求を出す際に、ＳＤメモリカード内のデータを変更したかを示す情報をローカルホスト１００に送る。ローカルホスト１００がＳＤバスアクセスを再度取得した場合、ローカルホスト１００は、インアクティブ化状態においてＳＤメモリカード内のデータが変更されていたら、その旨がＳＤ相互接続部１０５から通知される。ＳＤメモリカード内のデータが変更されていたら、ローカルホストのデバイスファイルシステム１０８は、ＦＡＴのキャッシュを破棄し、ＳＤメモリカード３００からＦＡＴを取得する。
【００７２】
次に、図１０を参照して、ＳＤバスハンドルのサスペンド／レジュームについて説明する。  
ホストＳＤアプリケーション２０１が、ＳＤメモリカードにアクセスを行っている（ステップ１００１）。ホストＳＤアプリケーション２０１は、ＳＤバスハンドルをサスペンドするための“BusHandleSuspend.req”を、ＳＤ相互接続部１０５／ＳＤカードホストコントローラ１０６（ＳＤ  ＩＣ／ＳＤ  ＨＣ）に送信する（ステップ１００２）。
【００７３】
“BusHandleSuspend.req”の送信後、ＳＤバスがサスペンドする（インアクティブ化状態）。ＳＤバスがインアクティブ化状態の間、デバイス側ＰＨＹ／ＭＡＣ層１０１およびＳＤバスは省電力モードに移行しても良い。ＳＤバスがインアクティブ化状態の間、ホスト側ＰＨＹ／ＭＡＣ層１０１は省電力モードに移行しても良い。
【００７４】
ホスト側ＳＤアプリケーション２０１はＳＤバスをレジュームするための“BusHandleResume.req”をＳＤ相互接続部１０５／ＳＤカードホストコントローラ１０６に送信する（ステップ１００３）。ここでデバイス側ＰＨＹ／ＭＡＣ層、ＳＤバス、ホスト側ＰＨＹ／ＭＡＣ層は省電力モードから復旧する。ＳＤ相互接続部１０５は、ＳＤバスハンドルをレジュームする。ＳＤバスのレジューム後、ホスト側ＳＤアプリケーション２０１が、ＳＤメモリカード３００にアクセスを行う（ステップ１００４）。
【００７５】
次に、ホストが２台ある場合、バスがインアクティブ化状態の間の他のホストによるＳＤバスハンドルの許可について図１１を参照して説明する。
【００７６】
第２のホスト２００ＢがＳＤメモリカード３００にアクセスしている（ステップ１１０１）。第２のホストＳＤアプリケーション２０１Ｂが、ＳＤバスハンドルをサスペンドするための“BusHandleSuspend.req”をＳＤ相互接続部１０５／ＳＤカードホストコントローラ１０６（ＳＤ  ＩＣ／ＳＤ  ＨＣ）に送信する（ステップ１１０２）。なお、第２のホスト側がＳＤメモリカード内のデータを変更していれば、“BusHandleSuspend.req”内のmodification_flagを変更されたことを示す値にする。デバイス側ＰＨＹ／ＭＡＣ層は省電力モードに移行してもよい。またＳＤバスがすべてのホストによってサスペンドされている間、ＳＤバスは省電力モードに移行しても良い。
【００７７】
ＳＤバスがインアクティブ化状態の間に、第１のホスト側ＳＤアプリケーション２０１Ａは、ＳＤバスハンドルをレジュームするための“BusHandleResume.req”をＳＤ相互接続部１０５／ＳＤカードホストコントローラ１０６（ＳＤ  ＩＣ／ＳＤ  ＨＣ）に送信する（ステップ１１０３）。ＳＤバスハンドルがアクティブ化状態に移行した後、ＳＤ相互接続部１０５は、バスがアクティブ化したことを示す“BusHandleResume.res”を第１のホスト側ＳＤアプリケーション２０１Ａおよびファイルシステム２０５Ａに送信する（ステップ１１０４）。ＳＤ相互接続部１０５は、“BusHandleResume.res”内のmodification_flagを変更されたことを示す値にし、非アクティブ状態のときにＳＤメモリカード内のデータが変更されたかどうかを第１のホスト側ＳＤアプリケーション２０１Ａに通知する。modification_flagが変更されたことを示す値であれば、ファイルシステム２０５ＡはＦＡＴのキャッシュデータを削除し、ＳＤメモリカードより再取得する必要がある。第１のホスト側ＳＤアプリケーション２０１Ａは、ＳＤメモリカード内のファイルにアクセスする（ステップ１１０５）。
【００７８】
第１のホスト側ＳＤアプリケーション２０１Ａは、ＳＤバスハンドルをサスペンドするための“BusHandleSuspend.req”をＳＤ相互接続部１０５／ＳＤカードホストコントローラ１０６（ＳＤ  ＩＣ／ＳＤ  ＨＣ）に送信する（ステップ１１０６）。なお、第１のホスト側ＳＤアプリケーション２０１ＡがＳＤメモリカード内のデータを変更していれば、 “BusHandleSuspend.req”内のmodification_flagを変更されたことを示す値にし、ＳＤメモリカード内のデータが変更されたことをＳＤ相互接続部１０５に通知する。ＳＤバスはインアクティブ化状態に移行する。デバイス側ＰＨＹ／ＭＡＣ層１０１、第１のホスト側ＰＨＹ／ＭＡＣ層２０４Ａ、ＳＤバスは省電力モードに移行してもよい。これらは次にレジューム要求がきた際に省電力モードを解除する。
【００７９】
ＳＤバスがインアクティブ化状態の間に、第２のホスト側ＳＤアプリケーション２０１Ｂは、ＳＤバスをレジュームするための“BusHandleResume.req”をＳＤ相互接続部１０５／ＳＤカードホストコントローラ１０６に送信する（ステップ１１０７）。ＳＤバスがアクティブ化状態に移行した後、ＳＤ相互接続部１０５は、ＳＤバスがアクティブ化したことを示す“BusHandleResume.res”を第２のホスト側ＳＤアプリケーション２０１Ｂおよびファイルシステム２０５Ｂに送信する（ステップ１１０８）。ＳＤ相互接続部１０５は、非アクティブの間にＳＤメモリカード内のデータを変更されていれば、“BusHandleResume.res”内のmodification_flagを変更されたことを示す値にし、ＳＤメモリカード内のデータが変更されたことをファイルシステム２０５Ｂに通知する。modification_flagが変更されたことを示す値であれば、ファイルシステム２０５ＢはＦＡＴのキャッシュデータを削除する。第２のホスト側ＳＤアプリケーション２０１Ｂは、ＳＤメモリカード内のファイルにアクセスする（ステップ１１０９）。
【００８０】
次に、ホストが２台ある場合、第２のホストがインアクティブ化状態の間にＳＤバスハンドルをロックされたインアクティブ状態にする場合について図１２を参照して説明する。
【００８１】
第２のホストＳＤアプリケーション２０１ＢがＳＤメモリカード３００にアクセスしている（ステップ１２０１）。第２のホストＳＤアプリケーション２０１Ｂは、ＳＤバスハンドルをサスペンドするが第１のホスト２００ＡにＳＤメモリカード内のファイルにアクセスすることを許可しない場合、ＳＤバスハンドルをロックモードでサスペンドするための“BusHandleSuspend.req(lock)”をＳＤ相互接続部１０５／ＳＤカードホストコントローラ１０６（ＳＤ  ＩＣ／ＳＤ  ＨＣ）に送信する（ステップ１２０２）。
【００８２】
ＳＤバスがインアクティブ化状態の間に、第１のホスト側ＳＤアプリケーション２０１Ａは、ＳＤバスハンドルをレジュームするための“BusHandleResume.req”をＳＤ相互接続部１０５／ＳＤカードホストコントローラ１０６に送信する（ステップ１２０３）。ＳＤバスはロックされたインアクティブ状態であるので、ＳＤ相互接続部／ＳＤカードコントローラ（ＳＤ  ＩＣ／ＳＤ  ＨＣ）は、第１のホスト側ＳＤアプリケーション２０１Ａに“error(locked)を返す(ステップ１２０４)。第２のホスト側ＳＤアプリケーション２０１ＢによってＳＤバスがロックされていれば、第１のホスト側ＳＤアプリケーション２０１Ａは、ＳＤバスハンドルをレジュームすることができない。
【００８３】
第２のホスト側ＳＤアプリケーション２０１Ｂは、ＳＤバスをアンロックするために、第２のホスト側ＳＤ  ＰＡＬ部２０３Ｂは、ＳＤバスをレジュームするための“BusHandleResume.req”をＳＤ相互接続部１０５／ＳＤカードホストコントローラ１０６に送信する（ステップ１２０５）。ＳＤ相互接続部１０５は、ＳＤバスをアクティブ化する。第２のホスト側ＳＤアプリケーション２０１Ｂは、ＳＤバスハンドルを取得し、ＳＤメモリカード内のファイルにアクセスする（ステップ１２０６）。
【００８４】
次に、他のホストがＳＤバスにアクセスしている状態でのＳＤバスのレジュームについて図１３を参照して、説明する。  
ホスト２００がＳＤメモリカード内のファイルにアクセスしている(ステップ１３０１)。デバイス側ＳＤアプリケーション１０３が、ＳＤバスをレジュームさせるための“BusHandleResume.req”をＳＤ相互接続部１０５／ＳＤカードホストコントローラ１０６（ＳＤ  ＩＣ／ＳＤ  ＨＣ）に送信する（ステップ１３０２）。ホスト２００に対するＳＤバスハンドルがアクティブ化されているので、ＳＤバスのレジュームは失敗する。ＳＤ相互接続部１０５／ＳＤカードホストコントローラ１０６は、他の機器からＳＤバスのサスペンド要求があったことを示す“ReqforBusHandleSuspend.ntf”をホスト側ＳＤアプリケーション２０１に送信する（ステップ１３０３）。なお、ホスト側ＳＤアプリケーション２０１が“ReqforBusHandleSuspend.ntf”を受信したら、ホスト側ＳＤ  ＰＡＬ部２０３は、デバイス側ＳＤアプリケーション１０３のＳＤメモリカード３００へのアクセス処理をサスペンドしても良い状態まで続行した後に、ＳＤバスをサスペンドするための“BusHandleSuspend.req”を送信する（ステップ１３０４）。
【００８６】
ＳＤ相互接続部１０５は、ＳＤバスハンドルがサスペンドされたことを示す“BusHandleSuspended_ntf”をデバイス側ＳＤアプリケーション１０３に送信する（ステップ１３０５）。
【００８７】
デバイス側ＳＤアプリケーション１０３は、ＳＤバスハンドルをレジュームするための “BusHandleResume.req”をＳＤ相互接続部１０５に送信する（ステップ１３０６）。デバイス側ＳＤアプリケーション１０３は、ＳＤバスハンドルを取得した後、ＳＤメモリカード内のファイルにアクセスする（ステップ１３０７）。
【００８８】
ホスト側ＳＤ  ＰＡＬ部２０３がＳＤバスがローカルホストに使用されている場合でもレジュームしたい場合には、通知をすることも要求しつつ“BusHandleResume.req”をＳＤ相互接続部／ＳＤカードコントローラ（ＳＤ  ＩＣ／ＳＤ  ＨＣ）に送信する（ステップ１３０８）。ＳＤ相互接続部１０５は、“BusHandleResume.req”に応じて、デバイス側でＳＤバスを使用しているので、ＳＤバスハンドルがアクセスされていることを示す“busy”を返す（ステップ１３０９）。なお、通知要求があったため、ＳＤ相互接続部１０５は、他の機器からＳＤバスのサスペンド要求があったことを示す“ReqForBusHandleSuspended_ntf”をデバイス側ＳＤアプリケーション１０３に送信する（ステップ１３１０）。デバイス側ＳＤアプリケーション１０３は、サスペンドしても良い状態までＳＤバスへのアクセスを続行した後、ＳＤバスをサスペンドさせるための“BusHandleSuspend.req”をＳＤ相互接続部１０５に送信する（ステップ１３１１）。
【００８９】
ＳＤ相互接続部１０５は、ＳＤバスハンドルをサスペンドした後、ＳＤバスハンドルがサスペンドされたことを示す“BusHandleSuspended.ntf”をホスト側ＳＤアプリケーション２０１に送信する（ステップ１３１２）。ホスト側ＳＤアプリケーション２０１は、ＳＤバスハンドルをレジュームするための“BusHandleResume.req”をＳＤ相互接続部１０５に送信する（ステップ１３１３）。ＳＤ相互接続部１０５は、ＳＤバスハンドルをレジュームする。ホスト側ＳＤアプリケーション２０１は、ＳＤバスハンドルを取得した後、ＳＤメモリカード３００内のファイルにアクセスする（ステップ１３１４）。
【００９０】
ホストがＳＤバスハンドルにアクセスしている間のＳＤ  ＰＡＬセッションのセットアップについて図１４を参照して説明する。
【００９１】
デバイス側１００がＳＤメモリカード内のファイルにアクセスしている(ステップ１４０１)。ホスト側ＳＤ  ＰＡＬ部２０３は、ＳＤ  ＰＡＬセッションのスタートを要求するための“SessionStart.req”をデバイス側ＳＤ  ＰＡＬ部（Device PAL）１０２に送信する（ステップ１４０２）。ホスト側ＳＤ  ＰＡＬ部２０３は、ＳＤメモリカード３００等の能力の送信を要求する “CapabilityExchange.req”をデバイス側ＳＤ  ＰＡＬ部１０２に送信する（ステップ１４０３）。“CapabilityExchange.req”に応じて、デバイス側ＳＤ  ＰＡＬ部１０２から応答が有る。ホスト側ＳＤ  ＰＡＬ部２０３は、ＳＤバスハンドルの取得を要求するための“GetBusHandle.req(notify)”をＳＤ相互接続部１０５に送信する（ステップ１４０４）。デバイス１００がＳＤバスを使用しているので、ＳＤ相互接続部１０５は、ホスト側ＳＤ  ＰＡＬ部２０３に“（Busy）”を送信する（ステップ１４０５）。ＳＤ相互接続部１０５は、他の機器からＳＤバスをサスペンドする要求があったことを示す“ReqforBusHandleSuspend.ntf”をデバイス側ＳＤアプリケーション１０３に送信する（ステップ１４０６）。デバイス側ＳＤアプリケーション１０３は、サスペンドしても良い状態になるまでＳＤバスへのアクセスを続行した後、ＳＤバスハンドルをサスペンドさせるための“BusHandleSuspend.req”をＳＤ相互接続部１０５に送信する（ステップ１４０７）。ＳＤバスハンドルをインアクティブ化した後、ＳＤ相互接続部１０５は、ＳＤバスの接続がインアクティブ化状態にあることを通知するために、“BusHandleSuspended.ntf”をホスト側ＳＤアプリケーション２０１に送信する（ステップ１４０８）。
【００９２】
ホスト側ＳＤアプリケーション２０１は、ＳＤバスハンドルの取得を要求するための“GetBusHandle.req(notify)”をＳＤ相互接続部１０５に送信する（ステップ１４０９）。ホスト２００とＳＤバスがアクティブ化され、ホスト側ＳＤアプリケーション２０１がＳＤメモリカード内のファイルにアクセスする(ステップ１４１０)。
【００９３】
次に、ホストとＳＤ相互接続部１０５との間で交換されるコマンドについて説明する。
【００９４】
ホスト側ＳＤ  ＰＡＬ部２０３からＳＤ相互接続部１０５に送信される“GetBusHandle.request”、“GetBusHandle.request”の受信に応じてＳＤ相互接続部１０５からホスト側ＳＤ  ＰＡＬ部２０３に送信される“GetBusHandle.response”について説明する（図１５）。
【００９５】
“GetBusHandle.request”は、ＳＤバスハンドルの取得を要求するコマンドである。“GetBusHandle.request”を送信する際、“request_level”が設定される。“request_level”のアクティブ範囲は、０または１である。“request_level”の値が０（= if available）であれば、ホスト側ＳＤ  ＰＡＬ部２０３は、ＳＤバスハンドルが取得できるならば、SDバスハンドルの取得を要求する。“request_level”の値が１（= notify required）であれば、ＳＤバスハンドルが取得できない場合には、バスハンドルが取得できるようにアクセス中のホストへのサスペンド要求を行い、バスハンドルが利用可能になったら通知を要求する。
【００９６】
“GetBusHandle.response”は、“GetBusHandle.response”に対する応答である。“GetBusHandle.response”には、“result_code”が含まれる。“request_level”の値は、０、１、２である。“request_level”の値が０（= success）の場合、ＳＤバスはホスト側ＳＤ  ＰＡＬ部２０３によって成功し、ＳＤバスハンドルがアクティブ化したことを示す。“request_level”の値が１（= error_busy）の場合、ＳＤバスは他のホストによって既にアクティブ化されていることを示す。“request_level”の値が２（= error_locked）の場合、ＳＤバスは、他のホストによるロックされていることを示す。
【００９７】
ホストＳＤアプリケーションからＳＤ相互接続部１０５に送信される“ReleaseBusHandle.request”、“ReleaseBusHandle.request”の受信に応じてＳＤ相互接続部１０５からホスト側ＳＤアプリケーションに送信される“ReleaseBusHandle.response”について説明する（図１６）。
【００９８】
“ReleaseBusHandle.request”は、ホストに対してＳＤバスハンドルが与えられている場合に、ＳＤバスハンドルの解放を要求するコマンドである。“ReleaseBusHandle.request”は、“modification_flag”を有する。“modification_flag”の値は、０，１である。“modification_flag”の値が０（= not changed）の場合、ＳＤバスハンドルがアクティブ化している間に、ファイルの構成を変えなかったことを示す。
【００９９】
“modification_flag”の値が１（= changed）の場合、ＳＤバスハンドルが有効アクティブ化している間に、ファイルの構成を変えたことを示す。
【０１００】
“ReleaseBusHandle.response”は、“ReleaseBusHandle.request”に対する応答である。“ReleaseBusHandle.response”は、“result_code”を含む。“result_code”の値は、ＳＤバスハンドルの解放に成功したことを示す０である。
【０１０１】
次に、ホスト側ＳＤアプリケーションからＳＤ相互接続部１０５に送信される“BusHandleResume.request”、“BusHandleResume.request”の受信に応じてＳＤ相互接続部１０５からホスト側ＳＤアプリケーションに送信される“BusHandleResume.response”について説明する（図１７）。
【０１０２】
“BusHandleResume.request”は、ＳＤバスのレジュームを要求するためのコマンドである。バスがホスト側ＳＤ  ＰＡＬ部２０３によってロックされているならば、ロックモードでサスペンドしたホスト側ＳＤ  ＰＡＬ部２０３だけがBusHandleResume.requestだけを送ることが可能である。バスがロックされていなければ、任意のホスト側ＳＤ  ＰＡＬ部２０３がBusHandleResume.requestだけを送ることが可能である。
【０１０３】
“BusHandleResume.request”は、“request_level”を含む。“request_level”の値は、０，１である。“request_level”の値が０（= if available）の場合、ホスト側ＳＤ  ＰＡＬ部２０３は、ＳＤバスが入手できるならば、ＳＤバスハンドルの取得をＳＤ相互接続部１０５に要求する。“request_level”の値が１（= if notify required）の場合、GetBusHandleが入手できない場合には、バスハンドルが取得できるようにアクセス中のホストへのサスペンド要求を行い、バスハンドルが利用可能になったら通知を要求する  “BusHandleResume.response”は、“BusHandleResume.request”に対する応答である。“BusHandleResume.response”は、“result_code”および“modification_flag”を含む。
【０１０４】
“modification_flag”の値は、０，１である。“result_code”の値が０（= not changed）の場合、ＳＤバスハンドルがインアクティブ化されている間に他のホストによってＳＤデバイス内のデータは変えられていないことを示す。“modification_flag”の値が１（= changed）の場合、ＳＤバスハンドルがインアクティブ化されている間に他のホストによってアクティブ化されＳＤデバイス内のデータが変えられたことを示す。
【０１０５】
“result_code”の値は、０，１，２である。“modification_flag”の０（= success）の場合、バスはホスト側ＳＤ  ＰＡＬ部２０３によって成功裏にアクティブ化にしたことを示す。“modification_flag”の１（= error_busy）の場合、ＳＤバスは他のホストによって既にアクティブ化されていることを示す。“modification_flag”の２（= error_locked）の場合、ＳＤバスは他のホストによるロックによってインアクティブ化していることを示す。
【０１０６】
次に、ホストＳＤアプリケーションからＳＤ相互接続部１０５に送信される“BusHandleSuspend.request”、“BusHandleSuspend.request”の受信に応じてＳＤ相互接続部１０５からホストＳＤアプリケーションに送信される“BusHandleSuspend.response”について説明する（図１８）。
【０１０７】
“BusHandleSuspend.request”は、ＳＤバスのサスペンドを要求するコマンドである。 “BusHandleSuspend.request”は、“lock_flag”および“modification_flag”を含む。
【０１０８】
“lock_flag”の値は、０，１である。“lock_flag”の値が０（= unlocked）の場合、ＳＤバスハンドルがインアクティブの間に他のホストがＳＤバスにアクセスすることができることを示す。“lock_flag”の値が１（= locked）の場合、バスがインアクティブの間に他のホストはアクセスしてはならないことを示す。
【０１０９】
“modification_flag”の値は、０，１である。“modification_flag”の値が０（= not changed）の場合、ＳＤハンドルがアクティブ化状態であったときに、ＳＤデバイス内のデータを変えなかったことを示す。“modification_flag”の値が１（= changed）の場合、ＳＤハンドルがアクティブ化状態であったときに、ＳＤデバイス内のデータを変えなかったことを示す。
【０１１０】
“BusHandleSuspend.response”は、“BusHandleSuspend.request”に対する応答である。“result_code”の値は、ＳＤバスのサスペンドが成功したことを示す０（= success）
次に、ＳＤ相互接続部１０５からホストへの通知について説明する（図１９）。  
“ReqForBusHandleSuspend.notification”は、 デバイス側ＳＤ  ＰＡＬ部１０２は、他のホストがアクセスを開始するので、アンロックモードでＳＤバスをサスペンドするか、ＳＤバスを終了することをホスト側ＳＤ  ＰＡＬ部１０２に要求する。  
“ReqForBusHandleRelease.notification”は、デバイス側ＳＤ  ＰＡＬ部１０２は、他のホストがアクセスを開始するので、ＳＤバスを終了することをホスト側ＳＤ  ＰＡＬ部１０２に要求する。  
“BusHandleSuspended.notification”は、デバイス側ＳＤ  ＰＡＬ部１０２は、ＳＤバスは他のホストによってサスペンドされていることを通知する。ホスト側ＳＤ  ＰＡＬ部１０２は、この通知が送られたら、ＳＤバスの開始またはサスペンドすることができる。  
“BusHandleReleased.notification”は、デバイス側ＳＤ  ＰＡＬ部１０２は、ＳＤバスハンドルは他のホストによって解放されたことを通知する。ホストＳＤ  ＰＡＬ部１０２は、この通知が送られたら、ＳＤバスの開始またはサスペンドすることができる。
【０１１１】
次に、図２０を参照して、ホスト２００に対するＳＤバスハンドルの状態の遷移の他の例を説明する。
【０１１２】
バスハンドルの非割り当て状態（Bus handle not assigned）は、ホスト２００にＳＤバスハンドルが割り当てられていない状態である。この状態では、デバイス１００は、ＳＤバスおよびＳＤメモリカード３００にアクセスすることが可能である。
【０１１３】
ホスト２００にＳＤバスハンドルを取得すると（Get Bus handle）、ホスト２００によるＳＤバスハンドルの状態が、非割り当て状態からアクティブ状態（Bus handle active）になる。アクティブ状態では、ホスト２００がＳＤバスおよびＳＤメモリカード３００にアクセスすることが可能である。
【０１１４】
ＳＤバスハンドルがサスペンドされると、ホスト２００に対するＳＤバスハンドルの状態が、アクティブ状態（Bus handle active）からロックモードのインアクティブ状態（Bus handle inactive）に移行する。ロックモードのインアクティブ状態では、デバイス１００がＳＤバスおよびＳＤデバイスにアクセスすることができない。バスインアクティブ状態においてＳＤバスがレジュームされると、ＳＤバスハンドルがバスインアクティブ状態（Bus handle inactive）からバスアクティブ状態（Bus handle active）に移行する。
【０１１５】
この例は、ＳＤバスハンドルをレジュームした場合、常にロックモードに設定される。上記で説明していた実施例では、図５をベースして考えており、サスペンド時にロックの必要がなければロックされていないインアクティブ状態に移行していたが、図２０のようにロックの必要のないサスペンド時にはサスペンドではなくバスハンドルをリリースしバスハンドルインアクティブ状態に移行するように実施してもよい。
【０１１６】
なお上記の実施形態においては、リムーバブルメディアはＳＤカード（登録商標）を例に説明したが、メモリ機能を持つメモリカードおよび通信機能を持つＩＯカード、およびメモリ機能と通信機能の両方をもつコンボカードがこれらリムーバブルメディアに含まれる。また、リムーバブルメディアはリムーバブルな形態でなくてもよく、電子機器に内蔵される形態の媒体でもよい。
【０１１７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。  
以下に、本願原出願の分割直前の特許請求の範囲に記載された発明を付記する。  
［１］リムーバブルメディアとの間で通信を行うメディア通信部と、  
前記リムーバブルメディアに対してアクセスを行うアクセス手段と、  
外部機器と無線通信し、前記リムーバブルメディアに対するアクセスを受ける無線通信部と、  
前記アクセス手段および前記外部機器のうち一つに前記リムーバブルメディアへのアクセス権を割り当てる制御手段であって、前記外部機器又は前記アクセス手段から前記アクセス権の割り当ての要求があった場合、当該要求に応じて前記アクセス権を割り当てる、制御手段と、  
を具備し、  
前記外部機器にアクセス権が割り当てられている場合、前記外部機器は前記リムーバブルメディアにアクセスするための規格化されたコマンドに対応するコマンドを送信する  
するアクセス制御装置。  
［２］前記制御手段は、前記アクセス手段および前記外部機器のうち一方が前記リムーバブルメディアにアクセスしている状態で、他方から前記アクセス権の割り当ての要求があった場合、前記一方に対して前記アクセス権の割り当ての停止またはサスペンド要求を行い、前記一方により停止またはサスペンドが行われた後、前記アクセス権の割り当てが停止またはサスペンドされたことを前記他方へ通知する、  
［１］記載のアクセス制御装置。  
［３］前記アクセス手段が前記リムーバブルメディアにアクセスしている状態で、前記外部機器から前記アクセス権の割り当ての要求があった場合に、前記制御手段は、前記アクセス手段に対して前記アクセス権の割り当ての停止またはサスペンドを要求する、  
［２］に記載のアクセス制御装置。  
［４］前記外部機器が前記リムーバブルメディアにアクセスしている状態で、前記アクセス手段から前記アクセス権の割り当ての要求があった場合に、前記制御手段は、前記外部機器手段に対してアクセス権の割り当ての停止またはサスペンドを要求する、  
［２］に記載のアクセス制御装置。  
［５］前記無線通信部は、前記リムーバブルメディアに対してアクセスを行う第２の外部機器と無線通信を行い、  
前記制御手段は、前記アクセス手段または前記第２の外部機器に前記アクセス権を割り当てている状態で、前記外部機器から前記アクセス権の割り当ての要求があった場合に、前記アクセス権を割り当てられている前記アクセス手段または前記第２の外部機器へアクセス権の割り当ての停止またはサスペンドを要求し、前記アクセス手段または前記第２の外部機器によりサスペンドまたは停止が行われた場合、前記アクセス手段および前記第２の外部機器への前記アクセス権の割り当てが停止またはサスペンドされたことを前記外部機器へ通知し、前記外部機器からアクセス要求に応じて前記外部機器に前記アクセス権を割り当てる、  
［２］に記載のアクセス制御装置。  
［６］前記アクセス手段および前記外部機器、前記第２の外部機器に前記アクセス権が割り当てられていないまたはサスペンドされている場合、前記制御手段は前記メディア通信部を省電力モードにする、  
［５］に記載のアクセス制御装置。  
［７］前記アクセス手段が前記リムーバブルメディアにアクセスしている状態で、前記第２の外部機器から前記アクセス権の割り当ての要求があった場合に、前記制御手段は、前記アクセス手段に対して前記アクセス権の割り当ての停止またはサスペンドを要求する、  
［５］に記載のアクセス制御装置。  
［８］前記外部機器が前記リムーバブルメディアにアクセスしている状態で、前記第２の外部機器から前記アクセス権の割り当ての要求があった場合に、前記制御手段は、前記外部機器に対して前記アクセス権の割り当ての停止またはサスペンドを要求する、  
［５］に記載のアクセス制御装置。  
［９］前記外部機器が前記リムーバブルメディアにアクセスしている状態で、前記アクセス手段から前記アクセス権の割り当ての要求があった場合に、前記制御手段は、前記外部機器に対して前記アクセス権の割り当ての停止またはサスペンドを要求する、  
［５］に記載のアクセス制御装置。  
［１０］前記外部機器にアクセス権が割り当てられていない場合またはサスペンドされている場合、前記制御手段は前記無線通信部を省電力モードにする、  
［１］に記載のアクセス制御装置。  
［１１］前記制御手段は、前記アクセス権が割り当てられている前記アクセス手段が前記アクセス権の割り当てをロックモードでサスペンドすることを要求した場合に前記アクセス手段への前記アクセス権の割り当てを前記ロックモードでサスペンドし、前記ロックモードでサスペンドしている間に前記外部機器から前記アクセス権の割り当ての要求があった場合に前記外部機器に前記アクセス権を割り当てない、  
［１］に記載のアクセス制御装置。  
［１２］前記制御手段は、前記アクセス手段及び前記外部機器の一方に前記アクセス権が割り当てられている状態であった場合に前記アクセス権を放棄するよう前記一方に要求する条件の下に前記アクセス権の割り当ての要求があった場合に、前記一方に対して前記一方への前記アクセス権の割り当ての停止またはサスペンドを要求し、前記一方への前記アクセス権の割り当てをレジュームした後に、前記一方から前記アクセス権の割り当ての停止またはサスペンドが要求された場合に、前記他方にアクセス権の割り当てが可能になったことを通知し、前記他方から再度アクセス権の割り当ての要求があった場合に前記他方に前記アクセス権を割り当てる、  
［１１］に記載のアクセス制御装置。  
［１３］リムーバブルメディアとの間で通信を行うメディア通信部と、  
前記リムーバブルメディアに対してアクセスを行うアクセス手段と、  
前記リムーバブルメディアに格納されているファイルシステム関連情報を取得し、前記ファイルシステム関連情報をキャッシュする取得手段と、  
外部機器と無線通信し、前記リムーバブルメディアに対するアクセスを受ける無線通信部と、  
前記アクセス手段及び前記外部機器の一方がアクセス権をレジュームする場合であって、前記一方の前記アクセス権がインアクティブ状態の間に前記リムーバブルメディア内のデータが変更されていた場合、前記リムーバブルメディア内のデータが変更された旨を通知する制御手段とを具備し、  
前記取得手段は、前記制御手段からの通知に応じて、前記ファイルのキャッシュを削除する  
アクセス制御装置。  
［１４］前記アクセス手段がアクセス権をサスペンドまたは停止する際に、アクティブ状態の間にリムーバブルメディア内のデータを変更したかどうかを前記制御手段に通知する通知手段を更に具備し、  
前記制御手段は、前記通知手段からの通知に応じて前記アクセス手段がアクセス権をレジュームする際に、前記リムーバブルメディア内のデータが変更された旨を通知する、［１３］記載のアクセス制御装置。  
［１５］アクセス制御装置と１以上の外部機器とを備えるアクセス制御システムであって、  
前記アクセス制御装置は、  
リムーバブルメディアとの間で通信を行うメディア通信部と、  
前記リムーバブルメディアに対してアクセスを行うアクセス手段と、  
前記１以上の外部機器と無線通信し、前記リムーバブルメディアに対するアクセスを受ける無線通信部と、  
前記アクセス手段および前記１以上の外部機器のうち一つに前記リムーバブルメディアへのアクセス権を割り当てる制御手段であって、前記１以上の外部機器及び前記アクセス手段の何れかから前記アクセス権の割り当ての要求があった場合、当該要求に応じて前記アクセス権を割り当てる制御手段と、  
を具備し、  
前記１以上の外部機器の夫々は、  
前記アクセス制御装置と通信する無線通信手段と、  
前記無線通信手段を用いて前記アクセス権の割り当ての要求を送信し、前記制御手段に前記アクセス権を割り当てられた場合に前記リムーバブルディスクにアクセスするアクセス制御手段と、  
を具備するアクセス制御システム。
【符号の説明】
【０１１８】
１００…ホスト、１０１…デバイス、１０１…デバイスＰＨＹ／ＭＡＣ層、１０２…デバイスＳＤ  ＰＡＬ部、１０３…デバイスＳＤアプリケーション、１０４…ＳＤ＿Ｈ／Ｃドライバ、１０５…ＳＤ相互接続部、１０６…ＳＤカードホストコントローラ、１０７…ＳＤカードスロット、１０８…デバイスファイルシステム、１０９…デバイスＳＤ  ＩＦ／ＵＨＳ−ＩＩ  ＩＦ、１１０…デバイスＰＨＹ／ＬＩＮＫ層１１０、２００…ホスト、２０１…ホストＳＤアプリケーション、２０２…ＳＤカード仮想コントローラ、２０３…ホストＳＤ  ＰＡＬ部、２０４…ホストＰＨＹ／ＭＡＣ層、２０５…ホストファイルシステム、３００…ＳＤメモリカード。
【図１】
0005571210.tif 000002
【図２】
0005571210.tif 000003
【図３】
0005571210.tif 000004
【図４】
0005571210.tif 000005
【図５】
0005571210.tif 000006
【図６】
0005571210.tif 000007
【図７】
0005571210.tif 000008
【図８】
0005571210.tif 000009
【図９】
0005571210.tif 000010
【図１０】
0005571210.tif 000011
【図１１】
0005571210.tif 000012
【図１２】
0005571210.tif 000013
【図１３】
0005571210.tif 000014
【図１４】
0005571210.tif 000015
【図１５】
0005571210.tif 000016
【図１６】
0005571210.tif 000017
【図１７】
0005571210.tif 000018
【図１８】
0005571210.tif 000019
【図１９】
0005571210.tif 000020
【図２０】
0005571210.tif 000021