以下、図面を参照して、本発明の実施形態を説明する。
図1には、本発明の一実施形態に係る電子装置を利用したネットワークシステムの構成例が示されている。このネットワークシステムは、例えば、コンシューマ電子機器、ポータブルデバイス、パーソナルコンピュータといった家庭内のデジタルデバイス同士を相互に接続するためのホームネットワークシステムである。電子装置は、ポータブルデバイス、パーソナルコンピュータのようなホスト装置に取り外し可能に接続されるデバイスである。この電子装置は、例えば、カード型無線通信装置1として実現されている。カード型無線通信装置1は、無線LANのような無線通信機能と、例えばUPnP仕様に従ってコンテンツデータを外部デバイスから取得するコンテンツ連携機能等を有している。カード型無線通信装置1が装着されたホスト装置は、メディアサーバのような外部デバイスに無線接続し、外部デバイスの保有するビデオ、オーディオ、その他のコンテンツデータを扱うことができる。
図1に示すように、例えばポータブルAVプレーヤ2aにカード型無線通信装置1が装着された場合には、ポータブルAVプレーヤ2aは、UPnPメディアサーバのような外部デバイスからコンテンツデータを取得および再生可能なネットプレーヤ(UPnPメディアプレーヤともいう)として機能することができる。また、例えばデジタルカメラ2bにカード型無線通信装置1が装着された場合には、デジタルカメラ2bは撮影によって静止画、動画のようなコンテンツデータをネットプレーヤに提供可能なネットサーバ(UPnPメディアサーバ)として機能することができる。
カード型無線通信装置1は、SDカードのような小型サイズのカードデバイスから構成されており、様々なポータブルデバイスのカードスロットに装着することができる。カード型無線通信装置1は所定のファイルシステムを有している。ホスト装置、つまりカード型無線通信装置1が装着されたポータブルデバイスは、カード型無線通信装置1を記憶装置例えばリムーバブルストレージデバイスとして認識し得る。
図1のホームネットワークシステムにおいては、デジタルTV4a、ビデオレコーダ4b、およびパーソナルコンピュータ4cの各々は、UPnP機能を有している。これらデジタルTV4a、ビデオレコーダ4b、およびパーソナルコンピュータ4cの各々は、UPnPメディアサーバ、UPnPメディアプレーヤ、またはUPnPメディアサーバおよびUPnPメディアプレーヤの双方として機能することができる。
デジタルTV4a、ビデオレコーダ4b、およびパーソナルコンピュータ4cはLANのようなネットワークに接続されている。このネットワークには、さらに、無線アクセスポイント3が接続されている。カード型無線通信装置1は、ネットワーク上のデバイス4a,4b,および4cの各々との無線通信を無線アクセスポイント3を介して実行することができる。なお、デジタルTV4a、ビデオレコーダ4b、およびパーソナルコンピュータ4cの各々が無線機能を有していてもよい。
図2には、カード型無線通信装置1の構成例が示されている。
図2においては、カード型無線通信装置1がSDカードとして実現されている場合を想定している。
カード型無線通信装置1は、フラッシュメモリ11、無線LAN部12、UPnP制御部13、データマージ部14、コントローラLSI15、および接続部16等を含んでいる。
フラッシュメモリ11はフラッシュEEPROMのような不揮発記憶装置であり、各種データを格納することができる。このフラッシュメモリ11はカード型無線通信装置1の記憶媒体として使用される。フラッシュメモリ11に格納されている各ファイルはFATファイルシステムのようなファイルシステムによって管理されている。
フラッシュメモリ11に格納されている各ファイルを管理するためのファイル管理情報(ファイルシステム情報と称されることもある)は、フラッシュメモリ11内に格納されている。すなわち、フラッシュメモリ11はデータ格納領域とファイル管理情報格納領域とを有している。データ格納領域はファイルを格納するための記憶領域である。ファイル管理情報格納領域は、データ格納領域に格納されている各ファイルを管理するファイル管理情報を格納するための記憶領域である。
ファイル管理情報は、各ファイルに対応するディレクトリ・エントリ情報と、各ファイルのデータ格納領域11上の格納位置を示すファイルアロケーションテーブル(FAT)情報とを含んでいる。各ファイルに対応するディレクトリ・エントリ情報は、対応するファイルのファイル名、当該ファイルの属性、当該ファイルのファイル作成日時、当該ファイルのファイルサイズ、当該ファイルの先頭クラスタ番号等の情報を含んでいる。ファイルアロケーションテーブル情報は、ファイル毎に当該ファイルのフラッシュメモリ11上の格納位置をクラスタのような所定のデータサイズ単位(データブロック単位)で管理するための情報を含んでいる。すなわち、ファイルアロケーションテーブル情報は、ファイルを構成する複数のデータブロックがそれぞれ格納されているフラッシュメモリ11上の複数の格納位置(複数のクラスタ番号)と、これら複数の格納位置(複数のクラスタ番号)の繋がりを示している。1つのデータブロックは1つのクラスタに相当する。あるファイルを構成する複数のデータブロックの各々の格納位置は、当該データブロックが格納されているクラスタ番号によって示される。1つのクラスタは、1個以上のセクタから構成されている。
ホスト装置のオペレーティングシステムが有するファイル・サービスプログラムは、カード型通信装置1のファイル管理情報を参照することにより、フラッシュメモリ11に格納されている各ファイルをアクセスすることができる。
無線LAN部12は、外部デバイスとの無線通信を実行する無線通信部である。無線LAN部12は、例えばIEEE.801規格に従って外部デバイスとの無線通信を実行する。UPnP制御部13は、無線LAN部12を用いてホームネットワーク上の各外部デバイスとの通信を実行する。そして、UPnP制御部13は、UPnPメディアサーバのような外部デバイスを発見する処理、および発見された外部デバイスが提供可能なコンテンツデータ(ビデオデータ、オーディオデータ、イメージデータ、等)、またはそのコンテンツデータのメタデータを収集するための処理を実行する。メタデータは、対応するコンテンツデータの特徴(プロパティ)を示す情報であり、例えば、当該コンテンツデータのタイトル、データサイズ、アーティスト名、作成日、コンテンツ保護方法等の情報を含む。
データマージ部14は、UPnPメディアサーバが提供可能なコンテンツデータをあたかもカード型無線通信装置1に格納されているファイルのようにホスト装置に見せるためのファイル管理情報(UPnPコンテンツ用ファイル管理情報)を生成する。このファイル管理情報により、コンテンツデータの実体はUPnPメディアサーバに存在するものの、そのコンテンツデータはフラッシュメモリ11に格納されているファイル(仮想的なファイル)として管理される。このファイル管理情報(UPnPコンテンツ用ファイル管理情報)は、フラッシュメモリ11のデータ格納領域に実際に格納されているファイルを管理するための上述のファイル管理情報(SD用ファイル管理情報)と同じデータ構造を有している。UPnPコンテンツ用ファイル管理情報は、コンテンツデータを仮想的なファイルとして管理するために、コンテンツデータに対応するファイル(仮想的なファイル)に関するディレクトリ・エントリ情報と、コンテンツデータに対応するファイルに関するファイルアロケーションテーブル情報とを含んでいる。このファイルアロケーションテーブル情報は、コンテンツデータに対応するファイルを構成する複数のデータブロックそれぞれに対応するフラッシュメモリ11上の複数の格納位置を示す情報を含んでいる。
データマージ部14は、フラッシュメモリ11に実際に格納されている通常のファイルを管理するためのSD用ファイル管理情報と、生成したUPnPコンテンツ用ファイル管理情報とをマージすることによって、一つのファイル管理情報を生成し、この生成された一つのファイル管理情報をホスト装置に提供する。これにより、ホスト装置は、UPnPメディアサーバ上に存在するコンテンツデータとフラッシュメモリ11に実際に格納されているファイルのどちらも、フラッシュメモリ11上に存在するファイルとして取り扱うことが出来る。換言すれば、ホスト装置は、UPnPメディアサーバ上に存在する各コンテンツデータを、フラッシュメモリ11上のファイルとして認識する。
コントローラLSI15は、接続部16を介して受信したホスト装置からのメモリアクセスコマンドに応じて、フラッシュメモリ11に対するリード/ライトアクセス等を実行する。接続部16は、ホスト装置とのインタフェースを実行するインタフェース部である。接続部16はホスト装置とカード型無線通信装置1との間で有線通信路を連結するために用いられる。カード型無線通信装置1がホスト装置に装着された状態においては、接続部16はホスト装置に電気的および物理的に接続される。接続部16は、ホスト装置との通信を実行して、ホスト装置からのコマンドおよびデータ群の受信、およびホスト装置へのデータの送信等を実行する。
図3には、カード型無線通信装置1の具体的な構成例が示されている。
図3の構成においては、データマージ部14はコントローラLSI15とフラッシュメモリ11との間に配置されている。データマージ部14は、ファイルシステム部111を介してフラッシュメモリ11から取得したファイル管理情報(SD用ファイル管理情報)と、UPnP制御部13によってメディアサーバから取得されたコンテンツデータに対応するファイル管理情報(UPnPコンテンツ用ファイル管理情報)とを、1つのファイルシステムとしてマージする処理を実行する。
また、データマージ部14は、コントローラLSI15を介してホスト装置からのリード要求を受信した場合には、アクセス先をフラッシュメモリ11とメディアサーバとの間で振り分ける処理を行う。
すなわち、ホスト装置から送信されるリード要求によって指定されるリード対象データブロックの格納位置(クラスタ番号等)が、SD用ファイル管理情報内のファィルアロケーションテーブル情報(FAT情報)によって管理される格納位置の範囲内に属するならば、データマージ部14は、フラッシュメモリ11をアクセスする。この場合、データマージ部14は、リード要求によって指定されたフラッシュメモリ11のデータ記憶領域上の格納位置から、データ記憶領域に実体が存在するファイルのデータブロックをリードし、そのリードしたデータブロックをホスト装置に出力する。
一方、ホスト装置から送信されるリード要求によって指定されるリード対象データブロックの格納位置(クラスタ番号等)が、UPnPコンテンツ用ファイル管理情報によって管理される格納位置の範囲内に属するならば、データマージ部14は、メディアサーバからコンテンツデータを取得するための外部デバイスアクセス処理を無線LAN部12を用いて実行する。無線LAN部12は、カード型無線通信装置1内に設けられたアンテナ12−1に接続されている。
この外部デバイスアクセス処理においては、例えば、データマージ部14は、メディアサーバからコンテンツデータを取得し、その取得したコンテンツデータを、バッファとしてのRAM17、またはフラッシュメモリ11のデータ記憶領域に格納する。そして、データマージ部14は、ホスト装置からのリード要求によって指定された格納位置に対応する、コンテンツデータ内のデータブロックのみを、ホスト装置に出力する。
なお、ホスト装置からのリード要求によって指定された格納位置に対応する、コンテンツデータ内のデータブロックのみをメディアサーバから取得してもよい。また、ホスト装置からのリード要求によって指定された格納位置に対応する、コンテンツデータ内のデータブロックから始まる、所定数のデータブロックを、メディアサーバから取得してもよい。
図4には、カード型無線通信装置1の具体的な構成の他の例が示されている。
図4の構成においては、データマージ部14は接続部16とコントローラLSI15との間に配置されている。コントローラLSI15、SDファイルシステム部111、およびフラッシュメモリ11を含む1つのモジュール1Bは、通常のメモリカード(例えば、MINI SDカード、Micro SDカード等)と実質的に同じ構成である。したがって、図4の構成を採用した場合には、接続部16、データマージ部14、UPnP制御部13、無線LAN部12、アンテナ12−1、およびRAM17を含むモジュール1Aを、通常のメモリカードが取り外し自在に装着されるアダプタとして実現し得る。
図5は、データマージ部14の構成を示している。
データマージ部14は、デバイス発見部141、コンテンツデータ収集部142、コンテンツデータファイル情報変換部143、FATエントリー生成部144、およびアクセス変換部145を備えている。
デバイス発見部141は、UPnP制御部13と共同して、ネットワーク上に存在する外部デバイス(UPnPデバイス)を発見するためのデバイス発見処理を実行する。このデバイス発見処理により、無線LAN部12に無接接続可能で且つコンテンツデータを提供可能なデバイス(メディアサーバ)が発見される。なお、実際には、デバイス発見処理においては、メディアサーバのみならず、上述のメディアプレーヤ、コンテンツデータを再生または描画する機能を有するデバイス(メディアレンダラー)、メディアサーバとメディアレンダラーとの間の接続をセットアップするデバイス(メディアコントローラ)も発見される。
デバイス発見部141は、発見したデバイスそれぞれに対応するデバイスクラス(メディアサーバ、メディアプレーヤ、メディアレンダラー、メディアコントローラ)、ネットアドレスおよび能力等を、図13に示すようなデバイスリスト情報を用いて管理する。具体的には、図13に示されているように、各UPnPデバイスのID(名前)、各UPnPデバイスのIPアドレス、各UPnPデバイスのクラス(メディアサーバ、メディアコントローラ、メディアレンダラ等)、各UPnPデバイスの能力(コンテンツデータのダウンロード可能”DNL”、コンテンツデータのアップロード可能”UPL”、コンテンツデータのストリーミング可能”ブランク”)、UPnPデバイスに対応するメディアフォーマットの種類、UPnPデバイスに対応するコンテンツ保護システムの種類(DTCP,WMDRM等)がデバイス発見部141によって管理される。
コンテンツデータ収集部142は、デバイス発見部141によって発見された各メディアサーバから、各デバイスが持つコンテンツ情報を収集して管理する。具体的には、コンテンツデータ収集部142は、メディアサーバが提供可能なコンテンツデータに対応するメタデータを、当該メディアサーバとの無線通信によって取得するための情報取得処理を実行する。この情報取得処理により、使用可能なコンテンツデータの一覧を示す情報がコンテンツデータ収集部142によって生成される。
コンテンツデータファイル情報変換部143は、FATエントリー生成部145と共同して、使用可能な各コンテンツデータをフラッシュメモリ11に格納されたファイルとしてホスト装置に見せるためのファイル管理情報(UPnPコンテンツ用ファイル管理情報)を生成する。具体的には、コンテンツデータファイル情報変換部143は、コンテンツデータをフラッシュメモリ11に格納されたファイルとして見せる為に、そのコンテンツデータのメタデータに基づいて、そのファイルのファイル名、属性、ファイル作成日時、ファイル更新日時、ファイルサイズ等を示すディレクトリ・エントリ情報を生成する。ディレクトリ・エントリ情報の生成に必要な情報が不足している場合には、不足している情報を補完するための処理が自動的に実行される。
すなわち、コンテンツデータファイル情報変換部143は、図6に示すように、コンテンツメタデータチェック部1431と、ファイルシステム用データ補完部1432とを備えている。コンテンツメタデータチェック部1431は、メタデータをチェックして、メタデータから、コンテンツデータに対応するファイルのディレクトリ・エントリ情報の生成に使用可能な情報(例えば、タイトル名、属性、データサイズ、等)を抽出する。ファイルシステム用データ補完部1432は、抽出された情報を編集する処理、および不足する情報を補完する処理を実行する。
コンテンツデータファイル情報変換部143によって生成されたディレクトリ・エントリ情報は、フラッシュメモリ11のファイル管理情報記憶領域上のディレクトリ・テーブルに追加される。
FATエントリー生成部145は、コンテンツデータに対応するファイルの格納位置をクラスタのようなデータブロック単位で管理するためのファイルアロケーションテーブル情報を生成する。このファイルアロケーションテーブル情報は、コンテンツデータに対応するファイルに対して割り当てられた所定のクラスタ番号範囲に属するクラスタ番号群を用いて、コンテンツデータに対応するファイルを構成する複数のデータブロックそれぞれに対応する複数の格納位置(複数のクラスタ番号)を示す。FATエントリー生成部145によって生成されたファイルアロケーションテーブル情報は、フラッシュメモリ11のファイル管理情報記憶領域上のファイルアロケーションテーブルに追加される。
すなわち、FATエントリー生成部144は、図7に示すように、全体FATテーブル確保部1441、SDファイルマッピング部1442およびUPnPコンテンツマッピング部1443を備えている。全体FATテーブル確保部1441は、フラッシュメモリ11から取得したファイル管理情報(SD用ファイル管理情報)と、UPnP制御部13によってメディアサーバから取得されたコンテンツデータに対応するファイル管理情報(UPnPコンテンツ用ファイル管理情報)とから、全体で必要となるFATテーブルのサイズを決定して確保する。SDファイルマッピング部1442は、全体FATテーブル確保部1441が確保したFATテーブルのSD部に対してSD用ファイル管理情報をマッピングし、一方、UPnPコンテンツマッピング部1443は、全体FATテーブル確保部1441が確保したFATテーブルのUPnP部に対してUPnPコンテンツ用ファイル管理情報をマッピングする。
アクセス変換部145は、図12のような管理テーブルを用いて、データ記憶領域に実際に格納されているファイル(SDファイル)群に割り当てた格納位置の範囲と、各UPnPコンテンツデータに対応する各ファイルに割り当てられた格納位置の範囲とを管理している。アクセス変換部145は、ホスト装置からのアクセス要求によって指定された格納位置がどのファイルに対応する格納位置範囲に属しているかを、図12のような管理テーブルを参照して、判定する。そして、その判定結果に基づいて、アクセス変換部145は、アクセス対象をフラッシュメモリ11と複数のメディアサーバそれぞれとの間で切り換える。
図8には、ホスト装置の構成例が示されている。
ここでは、ホスト装置が図1のポータブルAVプレーヤ2aである場合を想定する。ホスト装置2aは、メイン制御部21、表示制御部22、ビデオエンコーダ/デコーダ23、カードホストコントローラ24、カードスロット25、およびLCDのような表示装置26を備えている。
メイン制御部21はホスト装置2aの動作を制御する。このメイン制御部21は、CPUおよびRAMなどから構成されている。CPUは各種プログラムを実行するプロセッサである。CPUによって実行されるプログラムには、オペレーティングシステム、およびビデオデータ、オーディオデータ、イメージデータ等を再生するためのアプリケーションプログラム等が含まれている。オペレーティングシステムはファイル・サービスプログラムを含んでいる。オペレーティングシステムは、ファイル・サービスプログラムを通じて、カードスロット25に装着されたカードデバイスからファイル管理情報をリードし、そのファイル管理情報に従ってカードデバイスに対するアクセス要求(リード/ライト/シーク)等を実行する。
表示制御部22は、レンダリング処理を実行して、表示装置26の表示画面上に表示すべき表示イメージを形成する映像信号を生成する。ビデオエンコーダ/デコーダ23は、ビデオデータを圧縮符号化するための処理、および圧縮符号化されたビデオデータをデコードするための処理等を実行する。カードホストコントローラ24は、カードスロット25に装着された、SDカードのようなカードデバイスを制御するコントローラである。
カードスロット25に本実施形態のカード型通信装置1が装着された場合においては、ホスト装置2aは、カード型通信装置1内に格納されたファイルのみならず、ホームネットワーク上の外部デバイスが保有するコンテンツデータを使用することができる。カード型通信装置1においては、カード型通信装置1内に格納されたファイルと外部デバイスが保有するコンテンツデータとを、1つのファイルシステムとしてホスト装置2aに見せるためのファイル管理情報が格納されている。ホスト装置2aはこのファイル管理情報を参照することにより、外部デバイスが保有するコンテンツデータを、あたかもカード型通信装置1内に格納されたファイルであるかのようにアクセスすることが出来る。
カードスロット25にカード型通信装置1が装着された時、カードホストコントローラ24は、カード型通信装置1の装着を検知し、カードデバイスの装着イベントが発生したことをメイン制御部21に通知する。メイン制御部21は、カードホストコントローラ24を介してカード型通信装置1からファイル管理情報をリードし、そのファイル管理情報に基づいて、カード型通信装置1を、ホスト装置2aのオペレーティングシステムによって管理されているファイルシステムにマウントする。
その後、ユーザの操作によって、カード型通信装置1のファイル管理情報によって管理されるファイル(カード型通信装置1に実際に格納されているファイル、外部デバイスが保有するコンテンツデータ(仮想ファイル))が選択されたならば、メイン制御部21は、その選択されたファイルをリードするためのリード要求をカードホストコントローラ24を介してカード型通信装置1に送信する。リード要求によって指定されたファイルがカード型通信装置1のフラッシュメモリ11に実際に格納されているファイルであるならば、フラッシュメモリ11からそのファイルのデータが読み出され、カード型通信装置1からホスト装置2aに送られる。一方、リード要求によって指定されたファイルが外部デバイス上に存在するコンテンツデータに対応するファイルであるならば、カード型通信装置1と外部デバイスとの間の無線通信が実行され、コンテンツデータが外部デバイスから取得される。そして、取得されたコンテンツデータがカード型通信装置1からホスト装置2aに送られる。
カード型通信装置1からリードしたファイル(カード型通信装置1に実際に格納されているファイル、外部デバイスが保有するコンテンツデータ(仮想ファイル))がビデオデータであるならば、そのビデオデータはビデオエンコーダ/デコーダ23によってデコードされる。そして、デコードされたビデオデータは表示制御部22によって表示装置26の表示画面上に表示される。
図9は、ポータブルAVプレーヤ2aに装着されたカード型無線通信装置1が、UPnPメディアサーバであるビデオレコーダ4bおよびパーソナルコンピュータ4cが提供可能なコンテンツデータを、ホスト装置であるポータブルAVプレーヤ2aに対して、どうように、あたかも自装置(カード型無線通信装置1)のフラッシュメモリ11に格納されているファイルのように見せているのかを示す概念図である。
SDカードでは、イメージ、オーディオ、ビデオの各種コンテンツデータを、その種類毎に、「DCIM」ディレクトリ(SD-Picture規格)、「SD_AUDIO」ディレクトリ(SD-Audio規格)、「SD_VIDEO」ディレクトリ(SD-Video規格)の配下に配置することが仕様として定められている。そこで、データマージ部14は、UPnPメディアサーバが提供可能なコンテンツデータのうち、イメージデータは「DCIM」ディレクトリ配下、オーディオデータは「SD_AUDIO」ディレクトリ配下、ビデオデータは「SD_VIDEO」ディレクトリ配下に存在しているように見えるように、各コンテンツデータについて、ディレクトリ・エントリ情報とファイルアロケーションテーブルとを含んでなるファイル管理情報の更新制御を行う。イメージデータ、オーディオデータおよびビデオデータそれぞれにおける所定のディレクトリ配下への具体的な割り当て方法については後述する。
次に、図10および図11を参照して、カード型無線通信装置1が実行するファイル管理情報の更新制御について説明する。
図10には、フラッシュメモリ11に確保されたファイル管理情報格納領域内におけるデータ構造が示されている。図10に示すように、ファイル管理情報格納領域内には、起動処理用のBoot領域a1、フラッシュメモリ11のデータ格納領域内に格納されたファイルに関するディレクトリ・エントリ情報用のDir Table(SD)領域a2、UPnPメディアサーバが提供可能なコンテンツデータに関するディレクトリ・エントリ情報用のDir Table(UPnP)領域a3、フラッシュメモリ11のデータ格納領域内に格納されたファイルに関するファイルアロケーションテーブル用のFAT領域a4、UPnPメディアサーバが提供可能なコンテンツデータに関するファイルアロケーションテーブル用のFAT領域a5が設けられる。Dir Table(SD)領域a2とDir Table(UPnP)領域a3は1つのディレクトリテーブルを構成している。FAT領域a4とFAT領域a5も1つのファイルアロケーションテーブルを構成している。Dir Table(SD)領域a2、Dir Table(UPnP)領域a3、FAT領域a4およびFAT領域a5は1つのファイル管理情報(ファイルシステム情報)を構成している。
データマージ部142は、UPnPメディアサーバを発見し、かつ、このUPnPメディアサーバが提供可能なコンテンツデータを発見すると、Dir Table(UPnP)領域a3の空きエントリに当該コンテンツデータを割り当て、当該コンテンツデータのデータサイズに相当する数の連続した複数のクラスタ番号の繋がりを示す複数の領域をFAT領域a5のファイルアロケーションテーブル上に確保する。
具体例を挙げて説明すると、いま、あるUPnPメディアサーバを発見し、かつ、このUPnPメディアサーバが提供可能なコンテンツデータとしてupnp1.mp2というコンテンツデータを発見した場合を想定する。この場合、データマージ部14は、図11に示すように、Dir Table(UPnP)領域a3の1つのエントリにupnp1.mp2を割り当て、このupnp1.mp2のデータサイズに相当する数の連続した複数のクラスタ番号の繋がりを示す複数の領域をFAT領域a5のファイルアロケーションテーブル上に確保する。図11には、upnp1.mp2に続いて、upnp2.mp2というコンテンツデータを発見した場合の例が示されている。
次に、ホスト装置から、このupnp1.mp2の読み出しを要求された場合のアクセス変換処理について説明する。
図11に示すファイル管理情報を参照して、フラッシュメモリ11に格納されているファイルにアクセスするホスト装置は、upnp1.mp2を読み出す場合、まず、Dir Table(UPnP)領域a3のupnp1.mp2に割り当てられたエントリに格納された先頭クラスタ番号、即ち"512"番のクラスタのデータをカード型無線通信装置1に要求する。
カード型無線通信装置1のデータマージ部14は、UPnPメディアサーバおよびコンテンツデータを発見して、当該コンテンツデータに関するファイル管理情報を前述のように格納する際、図12に示すファイルリストを作成・管理する、そして、このファイルリストを参照することにより、データマージ部14は、要求されたデータがUPnPメディアサーバ上のコンテンツデータであることを認識する。また、データマージ部14は、発見したUPnPメディアサーバについて、図13に示すデバイス一覧を作成・管理しており、さらに、各UPnPメディアサーバが提供可能な各コンテンツデータについて、そのメタデータから例えば図14に示す規則で各種情報を作成し、フラッシュメモリ11のファイル管理情報格納領域にディレクトリ・エントリ情報として格納する。データマージ部14が、UPnPメディアサーバが提供可能なコンテンツデータに関するディレクトリ・エントリ情報をメタデータから作成する機能を有することにより、カード型無線通信装置1は、ホスト機器に対して、これらをフラッシュメモリ11に格納されたファイルに見せることを実現している。
図14に示す規則について補足すると、コンテンツデータが8文字を越えるタイトルをもつ場合、その先頭から8文字までをファイル名とし、かつ、イメージ、オーディオ、ビデオのデータ種類に応じて、予め定められた3文字の拡張子を付加する。また、ファイルの属性として、「読み取り専用」、「アーカイブ」等を固定的に設定する。
ファイル作成日時、最終アクセス日時および更新日時は、メタデータから取得できる日時についてはその日時を採用し、取得できない日時については、当該コンテンツデータのメタデータを取得した日時を採用して設定する。
つまり、フラッシュメモリ11に格納されているファイルであればファイルシステムとして保持されているべき情報であって、メタデータから取得できない不足分の情報を補完する機能をデータマージ部14は備えている。
このように、データマージ部14は、コンテンツデータに対応するファイルに関するファイル管理情報に含まれるべき情報であって取得されたメタデータからでは生成されない情報が生じた場合、その不足分の情報を生成して補完する。
再び図12を参照すると、図12に示すファイルリストによれば、"512"番のクラスタのデータは、URL="192.168.2.10:/Data/Video/upnp1"中のデータ、即ち、図13に示すデバイス一覧によれば、"Server-A"が保持するデータであることがわかる。図12に示すファイルリストの「Offset」フィールドには、UPnPメディアサーバが、ファイルシステムとしてコンテンツデータを公開した場合の各コンテンツのオフセット値が格納される。そこで、データマージ部14は、"Server-A"に対して、次の計算式(式1)で求められる位置からのデータの読み出しを要求する。
((ホスト装置からの)指定クラスタ − (対象コンテンツデータのフラッシュメモ
リ11に確保されたファイル管理情報上における)先頭クラスタ) × クラスタサイ
ズ + Offset …式1
そして、データマージ部14は、"Server-A"から送信されてきたデータを、ホスト装置に転送する。また、このデータを受け取ったホスト装置は、次に、FAT領域a5のファイルアロケーションテーブル中の"512"番のクラスタに対応する領域を参照し、後続するデータの有無や、その格納クラスタを調べる。図11に示すファイル管理情報によれば、後続するデータは"513"番のクラスタに存在することがわかるので、ホスト装置は、今度は、"513"番のクラスタのデータをカード型無線通信装置1に要求する。一方、この要求を受けたカード型無線通信装置1のデータマージ部14は、前述と同様の手順で、該当するデータを"Server-A"から取得して、ホスト装置に返送する。
このように、データマージ部14は、UPnPメディアサーバが提供可能なコンテンツデータをあたかも自装置(カード型無線通信装置1)のフラッシュメモリ11に格納されているファイルのように見せることを実現している。
なお、図11では、ファイル管理情報についての説明を分かり易くするために、Dir Table(UPnP)領域a3のエントリに、発見したコンテンツデータ(upnp1.mp2等)の先頭クラスタ番号を格納する例を示したが、Dir Table(UPnP)領域a3のエントリには、ディレクトリも割り当てられる。この場合、そのエントリには、割り当てられたディレクトリに関する情報(配下に存在するファイルのファイル名、先頭クラスタ番号等)を記録するクラスタの番号が格納される。そのために、このDir Table(UPnP)領域a3のエントリには、割り当てられたものがディレクトリまたはファイルのいずれであるのかを示す属性情報が格納される。データマージ部14は、このDir Table(UPnP)領域a3のエントリにディレクトリを割り当て、かつ、当該ディレクトリに関する情報を対応クラスタに記録することによって、図9に示すようなツリー構造を構築する。
ここで、図15乃至図17を参照して、イメージデータ、オーディオデータおよびビデオデータそれぞれにおける所定のディレクトリ配下への具体的な割り当て方法について説明する。
図15は、UPnPメディアサーバが提供可能なコンテンツデータの中のビデオデータについての具体的な割り当て方法を説明するための図である。
図15に示すように、例えば予めUPnPメディアサーバが見つかった際に展開するディレクトリを「SD_VIDEO」ディレクトリの配下に確保しておき、かつ、その属性を読み取り専用に設定しておくことで、ホスト装置からの書き込みを禁止しておく。そして、UPnPメディアサーバを発見し、コンテンツを発見した時点で、あるディレクトリの属性を更新可能に再設定し、その配下にコンテンツを配置していくことで、ホスト装置が、複数のUPnPメディアサーバに点在していることを何ら意識することなく、コンテンツデータへアクセスできるようにする。
これにより、あるUPnPメディアサーバがネットワーク上から消えた場合、対応するディレクトリを削除することで開放することも可能となる。また、ディレクトリのエントリが不足した場合、逐次、確保していくようにすることも可能である。
なお、SD-Video規格では、CPRM等の何らかの形式で保護されたコンテンツデータが対象となる。そこで、当該SD-Video規格に準拠した形式に変換できる場合に、前述の「SD_VIDEO」ディレクトリ配下のファイルとしてファイルシステムに組み込む。再生時には、トランスクリプションを行うことで視聴を可能にする。
一方、保護がなされていないFreeのビデオデータについては、それ以外のディレクトリ、例えば図15に示すように、「DCIM」ディレクトリ配下の1つのディレクトリを確保し、そのディレクトリ配下に配置することで利用できるようにする。
また、図16は、UPnPメディアサーバが提供可能なコンテンツデータの中のイメージデータについての具体的な割り当て方法を説明するための図である。
図16に示すように、1台のUPnPメディアサーバが格納する全てのイメージデータを「DCIM」ディレクトリ配下の1つのディレクトリ内に配置する。複数台のUPnPメディアサーバが存在する場合には、前述のビデオデータの場合と同様、UPnPメディアサーバ毎にディレクトリを確保して当該ディレクトリ配下に各々のイメージデータを配置することで、ホスト装置に対して、UPnPメディアサーバの跨りを意識させないようにする。
そして、図17は、UPnPメディアサーバが提供可能なコンテンツデータの中のオーディオデータについての具体的な割り当て方法を説明するための図である。
SD-Audio規格では、「SD_AUDIO」ディレクトリ内に、すべてのファイルをフラットに配置することになっている。そのため、図17に示すように、「SD_AUDIO」ディレクトリの配下に、空いているインデックスを見つけて、発見したオーディオデータを割り付ける。この割り付け時、管理ファイル(TKMファイル)への当該オーディオデータに関する情報の追加も併せて実行する。
このSD-Audio規格においても、CPRM等の何らかの形式で保護されたコンテンツデータが対象となるため、保護がなされていないFreeのオーディオデータについては、他のディレクトリ配下に配置することで利用できるようにする。
このように、データマージ部14は、SDカードにおけるイメージ、オーディオ、ビデオの各種データファイルをフラッシュメモリ11へ格納するためのディレクトリの構成規則に従って、UPnPメディアサーバが提供可能なコンテンツデータを所定のディレクトリ配下に配置する機能を備えている。
つまり、データマージ部14は、電子装置内の記憶媒体上に所定の規則に基づいて構築される、ファイルを種類毎に分類して格納するためのディレクトリ構造中の所定のディレクトリ配下に、コンテンツデータに対応するファイルが、その種類に応じて格納されているものとホスト装置に見せるように、ファイル管理情報を生成する。
次に、図18を参照して、カード型無線通信装置1によって実行されるコンテンツ情報収集処理の手順を説明する。このコンテンツ情報収集処理は、データマージ部14がUPnP制御部13を使用して実行する。
データマージ部14は、まず、初期化処理を実行し(ステップS1)、そして、UPnPデバイスを発見するために、UPnPデバイス情報取得コマンドを無線信号によってネットワーク上にマルチキャストする(ステップS2)。
UPnPデバイス情報取得コマンドを受信したUPnPデバイスは、ネットワークへの参加を要求する応答を送信する。データマージ部14は、この応答を、デバイス参加情報通知イベントとして受信する(ステップS3,S4)。UPnPデバイスからの応答には、デバイス記述情報が含まれている。このデバイス記述情報には、UPnPデバイスのID(名前)、UPnPデバイスのIPアドレス、UPnPデバイスのクラス(メディアサーバ、メディアコントローラ、メディアレンダラ等)、UPnPデバイスの能力、UPnPデバイスに対応するメディアフォーマットの種類、UPnPデバイスに対応するコンテンツ保護システムの種類等が含まれている。
データマージ部14は、デバイス記述情報に基づいて図13のデバイスリスト情報を更新して、発見されたUPnPデバイスをデバイスリスト情報に追加する(ステップS5)。この後、データマージ部14は、発見されたUPnPデバイスに対して、使用可能なコンテンツのリストを要求する(ステップS6)。
ネットワークに参加しているUPnPデバイスの状態が変化した時、UPnPデバイスはその状態変化をカード型無線通信装置1に通知する。データマージ部14は、この通知を、状態変化通知イベントとして受信する(ステップS3,S7)。そして、データマージ部14は、状態変化を通知したUPnPデバイスに対して、使用可能なコンテンツのリストを要求する(ステップS6)。
UPnPデバイスから使用可能なコンテンツのリストを受信した時(ステップS8)、データマージ部14は、UPnPデバイス毎に提供可能なコンテンツデータの一覧を示すコンテンツリスト情報を更新して、受信したコンテンツのリストをコンテンツリスト情報に追加する(ステップS9)。UPnPデバイスから送信されるコンテンツリストには、使用可能なコンテンツデータ毎にメタデータが含まれている。
ステップS9では、データマージ部14は、コンテンツリスト情報に追加したコンテンツデータに対応するディレクトリ・エントリ情報およびFAT情報を生成し、フラッシュメモリ11のファイル管理情報記憶領域に追加する処理も実行する。これにより、フラッシュメモリ11のファイル管理情報記憶領域上のファイル管理情報は、使用可能なコンテンツデータの変化に応じて、動的に更新される。
また、ネットワークに参加しているUPnPデバイスからエラー通知イベントを受信した時(ステップS10)、データマージ部14は、発生したエラーに対処するための所定のエラー処理を実行する(ステップS11)。
UPnPデバイスの状態変化等によって、使用可能なコンテンツデータが変化した時、データマージ部14は、更新されたファイル管理情報をホスト装置に知らせるために、リセット(カード取り外し)イベントの発生を示す信号をホスト装置に送信する(ステップS12,S13)。ホスト装置はカードデバイス検出処理を再実行し、カード型無線通信装置1からファイル管理情報を再ロードする。これにより、ホスト装置は、更新されたファイル管理情報に従って、カード型無線通信装置1に対するアクセスを実行することができる。
つまり、データマージ部14は、ファイル管理情報を更新した場合、電子装置の取り外しおよび再接続が行われたことを通知するためのリセット信号をホスト装置に送信する機能を備えている。
次に、図19のフローチャートを参照して、データマージ部14によって実行されるファイル管理情報生成処理の手順を説明する。
データマージ部14は、図18で説明したように、発見された外部デバイスに対してコンテンツのリストを要求することにより、発見された外部デバイスが提供可能なコンテンツデータに対応するメタデータを取得する(ステップS21)。そして、データマージ部14は、コンテンツデータをカード型無線通信装置1(SDカード)に格納されたファイルとしてホスト装置に見せるためのファイル管理情報(UPnPコンテンツ用ディレクトリ・エントリ情報、UPnPコンテンツ用FAT情報)を生成し、そのファイル管理情報(UPnPコンテンツ用ディレクトリ・エントリ情報、UPnPコンテンツ用FAT情報)を、SD用ファイルシステムに追加する(ステップS22)。
このステップS22においては、例えば、コンテンツデータのデータサイズに相当する個数の連続するクラスタ番号がコンテンツデータに割り当てられる。そして、コンテンツデータのメタデータと、コンテンツデータに割り当てられた先頭クラスタ番号とに基づいて、コンテンツデータのディレクトリ・エントリ情報が生成される。このディレクトリ・エントリ情報は、図11のDir Table(UPnP)領域a3に追加される。コンテンツデータに割り当てられたクラスタ番号の繋がりを示すFAT情報が図11のFAT領域a5に追加される。
次に、図20を参照して、データマージ部14によって実行されるファイルリード処理の手順を説明する。
データマージ部14は、ホスト装置からリード要求を受信すると(ステップS23)、まず、当該リード要求によって指定されたクラスタがフラッシュメモリ11に格納されたファイルに対して割り当てられたものか、または、UPnPメディアサーバが提供可能なコンテンツデータに対して割り当てられたものかを判定する(ステップS24)。
フラッシュメモリ11に格納されたファイルに対して割り当てられたものであった場合(ステップS25の”SD”)、データマージ部14は、そのクラスタに対応するデータをフラッシュメモリ11から読み出してホスト装置に転送する(ステップS26)。
一方、UPnPメディアサーバが提供可能なコンテンツデータに対して割り当てられたものであった場合(ステップS25の”UPnP”)、データマージ部14は、このリード要求によって指定された格納位置からコンテンツデータの先頭の格納位置を引いた値にブロックデータのサイズを乗じることによって、当該リード要求によって指定された格納位置に対応するコンテンツデータ内のデータブロックの位置を算出し、対象コンテンツデータ中の当該算出した位置のデータをUPnPメディアサーバに要求して、送信されてきたデータをホスト装置に転送する(ステップS27)。
このように、データマージ部14は、フラッシュメモリ11に格納されたファイルを読み出すかのごとく発行されるホスト装置からのリード要求に対して、フラッシュメモリ11からのデータの読み出しに加えて、UPnPメディアサーバからのコンテンツデータの取得をも適切に実行する。
以上のように、本実施形態のカード型無線通信装置1においては、外部デバイスが保有するコンテンツデータをカード型無線通信装置1内の記憶媒体に格納された所定のファイルであるかのようにホスト装置に見せるためのファイル管理情報が生成され、このファイル管理情報がホスト装置に提供される。そして、ホスト装置がそのファイル管理情報を参照して所定のファイルに対するリード要求をカード型無線通信装置1に送出した時、カード型無線通信装置1によって外部デバイスからコンテンツデータが取得され、ホスト装置に返される。よって、ホスト装置のファイル・サービスプログラムに何等改良を加えることなく、ホスト装置に外部デバイスのコンテンツデータを扱うための機能を付加することができる。
また、コンテンツデータに対応するファイル管理情報には、ファイルを構成する複数のデータブロックそれぞれに対応する記憶媒体上の複数の格納位置(複数のクラスタ番号)を示すファイルアロケーション情報が含まれている。したがって、カード型無線通信装置1は、ホスト装置からのリード要求によって指定された格納位置に対応する、コンテンツデータ内のデータブロックを、ホスト装置に出力することができる。よって、ホスト装置は、通常のファイルをアクセスする場合と全く同じ手順でカード型無線通信装置1に対してリード要求を送信するだけで、外部デバイス上に存在するコンテンツデータを通常のファイルと同様に扱うことが出来る。
さらに、カード型無線通信装置1は、フラッシュメモリ11に格納されているファイルであればファイルシステムとして保持されているべき情報であって、メタデータから取得できない不足分の情報を補完する機能を実現する。
なお、本実施形態では、電子装置をカードデバイスであるカード型無線通信装置1として実現した場合を例示したが、電子装置は、ホスト装置に取り外し自在に接続可能な構成のデバイスであればよく、カードデバイスに限定されるものではない。
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
1…カード型無線通信装置、11…フラッシュメモリ、12…無線LAN部、13…UPnP制御部、14…データマージ部、15…コントローラLSI、16…接続部、141…デバイス発見部、142…コンテンツデータ収集部、143…コンテンツデータファイル情報変換部、144…FATエントリー生成部、145…アクセス変換部。