説明

通信装置および通信制御方法

【課題】コンテンツ再生機の例えばファイル操作といった既存の機能を利用することで汎用性を確保しつつ「ネットワーク機器連動コンテンツ」を実現する
【解決手段】所定のファイルシステムフォーマットで記憶装置へのアクセスを行う制御側装置と所定の制御プロトコルで機能が外部から制御されることが可能である被制御側装置との両方と通信を行う通信装置において、前記制御側装置へ前記ファイルシステムフォーマットに準拠したファイル構成情報を提供するファイル構成提供手段と、前記制御側装置からの前記ファイル構成情報に含まれるファイルへのアクセスを、前記制御プロトコルに準拠し前記被制御側装置の前記機能を制御する制御命令情報に変換するプロトコル変換手段と、前記制御命令情報を前記被制御側装置へ提供する制御命令提供手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定のファイルシステムフォーマットで記憶装置へのアクセスを行う制御側装置と所定の制御プロトコルで機能が外部から制御されることが可能である被制御側装置との通信を制御する通信装置および通信制御方法に関する。
【背景技術】
【0002】
近年のコンテンツの多様化により、映像や音声などのメディアを単に再生するだけでなく、アプリケーション的な処理コードを含むようなコンテンツが登場してきている。例えばWebコンテンツや放送コンテンツには、従来の映像や音声などのメディアデータに加えて、ページ記述言語やスクリプト言語などによるアプリケーション処理記述が含まれていることがある。
【0003】
従来のアプリケーション処理記述としては例えば、その処理を実行するコンテンツ再生機に取り付けられた記憶装置へのファイルの書き込みや読み出しといったものがあった。
【0004】
一方、コンテンツに付随するこのようなアプリケーション処理記述で、近年発展しているホームネットワーク機器(例えば白物家電や、AV機器、おもちゃなどでネットワークインタフェースを備えるもの)を制御したいというニーズが現れ始めている。これは例えば、コンテンツとしては冬の場面を映像として表示し、同時にネットワーク対応エアコンに部屋の温度を下げさせるなどといったかたちである。
【0005】
このような「ネットワーク機器連動コンテンツ」を実現させるための仕組みがいくつか提案されている。
【0006】
例えば特許文献1では、SMIL(Synchronized Multimedia Integration Language)と呼ばれる記述言語を一部拡張し、映像などのメディアとネットワーク機器との連携動作を記述し、コンテンツ再生機にてその記述に従って機器を制御する機構が提案されている。
【特許文献1】特開2004−341736公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
特許文献1では、制御対象となる全てのネットワーク機器およびコンテンツ再生機が、Jini(登録商標、以下同様)やRendezvous(登録商標、以下同様)などの共通の制御プロトコルによる通信機能を備えているとしている。
【0008】
しかしながら制御プロトコルと対象製品は、例えばUPnP(登録商標、以下同様)対応AV機器、ECHONET(登録商標、以下同様)対応白物家電、独自プロトコルにより制御されるおもちゃなど、様々である。また、今後も新たな制御プロトコルが現れることも十分考えられる。
【0009】
つまり、特許文献1の技術は汎用性に欠けている。
【0010】
本発明は、コンテンツ再生機の例えばファイル操作といった既存の機能を利用することで汎用性を確保しつつ「ネットワーク機器連動コンテンツ」を実現することを目的とする。
【課題を解決するための手段】
【0011】
本発明は、所定のファイルシステムフォーマットで記憶装置へのアクセスを行う制御側装置と所定の制御プロトコルで機能が外部から制御されることが可能である被制御側装置との両方と通信を行う通信装置において、前記制御側装置へ前記ファイルシステムフォーマットに準拠したファイル構成情報を提供するファイル構成提供手段と、前記制御側装置からの前記ファイル構成情報に含まれるファイルへのアクセスを、前記制御プロトコルに準拠し前記被制御側装置の前記機能を制御する制御命令情報に変換するプロトコル変換手段と、前記制御命令情報を前記被制御側装置へ提供する制御命令提供手段と、
を備えることを特徴とする通信装置を提供する。
【発明の効果】
【0012】
コンテンツ再生機が一般に備えているストレージ操作機能を用いてネットワーク機器の様々な機能を制御することができる。その結果、「ネットワーク機器連動コンテンツ」を実現することができる。
【発明を実施するための最良の形態】
【0013】
(第1の実施の形態)
図1は、本実施の形態のシステム構成の概念図である。
【0014】
コンテンツ再生機100は、例えば放送波アンテナに接続する放送デコーダや、インターネットに接続する有線ネットワークIF(インタフェース)109、無線ネットワークに接続する無線ネットワークIF108などを備える。それらを通じて、例えば放送波を通じて提供される放送コンテンツや、インターネットを通じて提供されるWebコンテンツなどといった、後述するコンテンツ情報を取得する。
【0015】
コンテンツ再生機100はさらに、DVDドライブ104やメモリカードスロット105などのメディアドライブや、USBIF106などの外部装置IFを備える。それぞれ、対応する各種リムーバブルメディアからコンテンツを取得する。
【0016】
コンテンツ再生機100は、取得したコンテンツを、コントロールパネル107から入力されるユーザの指示に従って再生する。またユーザは例えば、どのコンテンツソース(放送デコーダ、有線/無線ネットワークIF、メディアドライブや外部装置IF)から、再生すべきコンテンツを取得するかを、コントロールパネル107で選択する。
【0017】
再生したコンテンツは例えばディスプレイ102やヘッドホン103といった再生デバイスへ送出され、ユーザへ提供される。
【0018】
USBIF106には制御デバイスとしてのUSB通信機1000が接続される。
【0019】
USB通信機1000はコンテンツ再生機100からはリムーバブルメディアとして認識され、例えば書き込みや読み出しといった、ストレージデバイスへの命令を受け付ける。USB通信機1000は人形2000と、IrDA規格に則った赤外線通信を行う。USB通信機1000は、コンテンツ再生機100から受け付けたストレージデバイスへの命令を、人形2000の制御命令に変換して人形2000へ送信する。またUSB通信機1000は、人形2000から送信されたデータを受信して、コンテンツ再生機100に対してリムーバブルディスク内のファイルとして提供する。
【0020】
ネットワーク機器としての人形2000は、USB通信機1000と赤外線通信を行う。人形2000はUSB通信機1000から受信する動作要求に応じて動き、状態取得要求に応じて自らの状態を返答する。
【0021】
本実施の形態におけるコンテンツ情報とは、従来一般に言われてきた映像や音声を表すメディアデータのみを指すものではない。本実施の形態におけるコンテンツ情報は、メディアデータに加えて、後述するアプリケーション処理記述データをも含むものである。
【0022】
アプリケーション処理記述データは例えばMacromedia Flash(登録商標、以下同様)形式(SWF形式)、JavaScript(登録商標、以下同様)形式、ECMAScript形式などといったスクリプト言語で記述される。近年のWebコンテンツや放送コンテンツに見られるように,これらはHTML(Hyper Text Markup Language)やBML(Broadcast Markup Language)形式のマークアップ言語で記述したファイルに埋め込まれて提供される
アプリケーション処理記述データのなかには、人形2000の状態を取得することを意図した命令が、例えばストレージデバイスからデータ読み出し命令として含まれる。また、人形2000への動作要求を意図した命令が、例えばストレージデバイスへのデータ書き込み命令として含まれる。
【0023】
図2はコンテンツ再生機100のブロック図である。
【0024】
コンテンツ再生機100は、DVDドライブ104、メモリカードスロット105、USBIF106、コントロールパネル107、無線ネットワークIF108、有線ネットワークIF109、放送デコーダ110、外部入出力管理部111、アプリケーション処理記述解釈部112、コンテンツ再生部113、グラフィックIF114、サウンドIF115、HDD(ハード ディスク ドライブ)116を備える。
【0025】
DVDドライブ104は、DVDからコンテンツ情報を取得する。
【0026】
メモリカードスロット105は、挿入されるメモリカードからコンテンツ情報を取得する。
【0027】
USBIF106は、USBホスト機能を有し、USBペリフェラル機能を有する他の機器と接続するIFである。USBIF106は例えば、USBマスストレージクラスに対応するストレージペリフェラルと接続してコンテンツ情報を取得する。(なお、USB2.0で規定されたUSB On-The-Go機能によれば、USBIF106がホストに限るものではない)
無線ネットワークIF108は例えば、IEEE802.11で規定される無線LAN仕様に準拠するIFである。無線ネットワークIF108は、無線ネットワークを通じてコンテンツ情報を取得する。
【0028】
有線ネットワークIF109は例えば、IEEE802.3で規定される有線LAN仕様に準拠するIFである。有線ネットワークIF109は、有線ネットワークを通じてコンテンツ情報を取得する。
【0029】
放送デコーダ110は例えば、ARIB STDで規定されるデジタル放送規格に準拠する受信デバイスである。放送デコーダ110は、放送波をデコードしてコンテンツ情報を取得する。
【0030】
HDD116は、コンテンツ再生機100に固定される記憶装置で、アプリケーション処理記述解釈部112やコンテンツ再生部113の処理で用いる情報の一部を記憶する。
【0031】
コントロールパネル107は、ユーザのコンテンツソース選択指示が入力される。
【0032】
外部入出力管理部111は、DVDドライブ104、メモリカードスロット105、USBIF106、コントロールパネル107、無線ネットワークIF108、有線ネットワークIF109、放送デコーダ110、HDD116らに対して、それぞれに対応したデータの読み込みおよび書き出しの動作の制御を行う。
【0033】
アプリケーション処理記述解釈部112は、コンテンツ情報からアプリケーション処理記述データを抽出して解釈する。このようなアプリケーション処理記述解釈部112の機能は、例えばスクリプト言語がJavaScriptである場合は、オペレーティングシステム(OS)やそれに対応したJavaScriptインタプリタなどで実現することができる。
【0034】
アプリケーション処理記述解釈部112のOSはUSBをサポートしており、そのOSのファイルシステムに則ってUSB通信機1000のファイルにアクセスする。
【0035】
コンテンツ情報に記述されるファイルアクセスコマンドは例えば、ドライブ識別子と、そのドライブに記憶されているファイルの識別子とを含む。また、そのファイルに書き込むべき内容を含んでもよい。アプリケーション処理記述解釈部112はファイルアクセスコマンドに従って、外部入出力管理部111およびUSBIF106を介して、USBIF106に接続するUSBマスストレージクラス対応のデバイスに記憶されているように見えているデータファイルへのアクセスを行う。また、アプリケーション処理記述解釈部112は、コンテンツ情報からメディアデータを抽出してコンテンツ再生部113へ提供する。
【0036】
コンテンツ再生部113は、メディアデータをデコードして、映像信号を生成してグラフィックIF114を介してディスプレイ102へ出力する。またコンテンツ再生部113は、メディアデータをデコードして、音声信号を生成してサウンドIF115を介してヘッドホン103へ出力する。
【0037】
図3はUSB通信機1000のブロック図である。
【0038】
USB通信機1000は、USBIF1001、プロトコル変換部1002、通信部1003、記憶部1004を備える。
【0039】
USBIF1001は、USBマスストレージクラスに対応するストレージペリフェラルとして、外部USBホスト装置とデータの通信を行う(本実施の形態では外部USBホスト装置はコンテンツ再生機1000である)。USBIF1001は、この通信で受信したデータを、記憶装置と通信するためのプロトコル(例えばATA方式やSCSI方式など)で出力する。また、外部USBホスト装置との通信において送信するデータを、記憶装置と通信するためのプロトコルで取得する。すなわち、USBIF1001は、従来のUSBマスストレージクラス対応IFを流用してもよい。
【0040】
プロトコル変換部1002はUSBIF1001に対して記憶装置と通信するためのプロトコルで通信を行う。本実施の形態のプロトコル変換部1002は例えば、その動作をハードウェア(例えばASIC(Application SpecIFic Integrated Circuit)やFPGA(Field Programmable Gate Array))で実現してもよい。
【0041】
プロトコル変換部1003は、この通信で受信したデータを、記憶部1004へ書き込む。またプロトコル変換部1002は、この通信で受信したデータを、人形2000の動作を制御する動作制御データに変換して通信部1003へ渡す。さらに、プロトコル変換部1002は、通信部1003から受け取ったデータを変換し、記憶装置と通信するためのプロトコルでUSBIF1001へ送り、かつ記憶部1004へ書き込む。
【0042】
本実施の形態のプロトコル変換部1002は、USBIF1001からは、コンテンツ再生機100のOSがサポートするファイルシステムフォーマットであり、読み取り専用属性のstatus.txtと、書き込み可能属性のcontrol.txtとの2つのテキストファイルが記憶されている記憶装置であるよう認識される。つまり、OSのファイルシステムがドライブ内のフォルダ/ファイル構成を取得するためにアクセスするアドレスの値として、固定的に返り値を返す。これは例えばLUT(ルックアップテーブル)等で実現することができる。プロトコル変換部1002は、これら2つのファイル以外に新たなファイルを書き込む命令は拒否する。またプロトコル変換部1002は、これら2つのファイルの属性変更を拒否する。
【0043】
通信部1003は、人形2000と、例えばIrDA(登録商標、以下同様)規格に則った赤外線通信を行う。
【0044】
図4は人形2000のブロック図である。
【0045】
人形2000は、通信部2001、人形動作制御部2002、踊り用アクチュエータ2003、話し用アクチュエータ2004を備える。
【0046】
通信部2001は、USB通信機1000の通信部1003と、例えばIrDA規格に則った赤外線通信を行う。通信部2001は、受信するデータを人形動作制御部2002へ渡す。また、人形動作制御部2002から受け取るデータをUSB通信機1000へ送信する。
【0047】
踊り用アクチュエータ2003および話し用アクチュエータ2004は人形動作制御部2002にその動作を制御される。踊り用アクチュエータ2003は、人形2000が踊っているように見えるように動くよう、人形2000に取り付けられている。話し用アクチュエータ2004は、人形2000が話しているように見えるように動くよう、人形2000に取り付けられている。
【0048】
人形動作制御部2002は、通信部2001から渡されたデータに基づいて踊り用アクチュエータ2003および話し用アクチュエータ2004の状態を返したり動作を制御したりする。
【0049】
具体的には、通信部2001から渡されたデータが、状態取得要求を示すデータであれば踊り用アクチュエータ2003および話し用アクチュエータ2004が動作中であるか停止中であるかを示す状態返答を返す。
【0050】
また、通信部2001から渡されたデータが、踊り用アクチュエータ2003の動作要求を示すデータであれば踊り用アクチュエータ2003の動作を開始する。
【0051】
また、通信部2001から渡されたデータが、話し用アクチュエータ2004の動作要求を示すデータであれば話し用アクチュエータ2004の動作を開始する。
【0052】
また、通信部2001から渡されたデータが、停止要求を示すデータであれば踊り用アクチュエータ2003および話し用アクチュエータ2004の動作を停止する。
【0053】
以上の構成の本実施の形態のシステムの、アプリケーション処理記述データの一例について図5および図6を用いて説明する。
【0054】
図5は、アプリケーション処理記述データを、HTMLとJavaScriptとで記述した例である。また図6は、アプリケーション処理記述データを、BMLとECMAScriptとで記述した例である。
【0055】
JavaScriptやECMAScriptには、関数名や引数などの細かな違いはあるものの,コンテンツ再生機100のファイルシステムアクセスのための関数が用意されている。また既存のDVDでも、DVD再生によりチャプター選択メニューや再生言語設定メニューなどが表示されることから、画面表示と連動したアプリケーション処理記述機構が用意されていると思われる。
【0056】
例えば図5におけるDriveExists()はコンテンツ再生機100のファイルシステムにおける記憶装置を検出する関数である。ReadLine()は読み出し目的でOpenされたファイルから1行のテキストを読み出して左辺の変数に代入する関数である。WriteLine()は書き込み目的でOpenされたファイルに()内のデータを書き込む関数である。
【0057】
また例えば図6におけるreadPersistentString()は、()内に書かれた名前のファイルから読み出したデータを左辺の変数に代入する関数である。また、writePersistentString()は、()内に記述した名前のファイルに、一緒に記載したデータを書き込む関数である。
【0058】
図7は、図5における、アプリケーション処理記述データと、各装置がやりとりする命令および値の関係を表す図である。ここではUSB通信機1000がアプリケーション処理記述解釈部112に最も若い順番のドライブとして認識されている場合を例にとって説明する。
【0059】
図5では、(1)から(4)の行で、人形2000の動作状態の取得を試みている。
【0060】
(1)の行で検出し変数fsoで表されたドライブに記憶されている、ファイル“status.txt”を、(2)の行で読み出し属性で開いている。開いたファイルを変数rsoで表しており、そのファイルから(3)の行で1行読み出した値を変数dataに格納している。
【0061】
変数rsoで表されるファイルへの読み出し要求としての(3)の行の「var data=rso.ReadLine()」は、JavaScriptインタプリタやOSによってUSB通信機1000への読み出し要求に変換される。USB通信機1000への読み出し要求は、いわゆるUSBマスストレージクラスでのホストからペリフェラルへの読み出し要求(READコマンド)である。
【0062】
USBマスストレージクラスのREADコマンドを受け取ったUSB通信機1000のプロトコル変換部1002は、READコマンドを、人形2000の人形動作制御部2002に対する状態取得要求に変換する。
【0063】
状態取得要求を受け取った人形2000の人形動作制御部2002は、状態取得要求に対して、踊り用アクチュエータ2003が動作中であるとか、話し用アクチュエータ2004が動作中であるとか、どちらのアクチュエータも停止しているとか、といった状態返答を返す。
【0064】
状態返答は、USB通信機1000のプロトコル変換部1002によって、READコマンドの返り値に変換される。この返り値はファイル“status.txt”から読み出された値としての、1行のテキストデータである。状態返答が踊り用アクチュエータ2003動作中を示す値であれば、READコマンドの返り値として“dance”というテキストを返す。また、話し用アクチュエータ2004動作中を示す値であれば、READコマンドの返り値として“talk”というテキストを返す。また、どちらのアクチュエータも停止していることを示す値であれば“stop”というテキストを返す。
【0065】
READコマンドの返り値としての1行のテキストデータは変数dataに格納される。
【0066】
(4)の行で、ファイル”status.txt”を閉じる動作として、変数rsoで表されるドライブを閉じている。
【0067】
その下の(5)から(7)の行では、人形2000を動作させる命令を記述している。
【0068】
変数fsoで表されたドライブに記憶されている、ファイル“control.txt”を、(5)の行で書き込み属性で開いている。開いたファイルを変数wsoで表しており、そのファイルに(6)の行で“dance”という、人形2000にさせる動作内容に対応するテキスト1行を書き込んでいる。書き込みの成否を変数nに格納している。
【0069】
変数wsoで表されるドライブへの書き込み要求としての(6)の行の「var n=wso.WriteLine(“dance”)」は、JavaScriptインタプリタやOSによってUSB通信機1000への書き込み要求に変換される。USB通信機1000への書き込み要求は、いわゆるUSBマスストレージクラスでのホストからペリフェラルへの書き込み要求(WRITEコマンド)と、その後に送る、”dance”を表す論理ブロックである。
【0070】
USBマスストレージクラスのWRITEコマンドと“dance”のテキストを受け取ったUSB通信機1000のプロトコル変換部1002は、WRITEコマンドと“dance” のテキストとを、人形2000の人形動作制御部2002に対する踊り用アクチュエータ動作要求に変換する。
【0071】
この変換が正常に行われればUSB通信機1000のプロトコル変換部1002は、USBマスストレージクラスとして書き込みが正常に行われたことを示す値(すなわちSENSE KEYの値として0)を、コンテンツ再生機100へ返す。
【0072】
踊り用アクチュエータ動作要求を受け取った人形2000の人形動作制御部2002は、踊り用アクチュエータ2003の動作を開始する。
【0073】
ここで、(6)の行でWriteLine()で書き込むテキストが“talk”であれば、USBマスストレージクラスのWRITEコマンドと“talk”のテキストを受け取ったUSB通信機1000のプロトコル変換部1002は、WRITEコマンドと“talk” のテキストとを、人形2000の人形動作制御部2002に対する話し用アクチュエータ動作要求コマンドに変換する。
【0074】
また、(6)の行でWriteLine()で書き込むテキストが“stop”であれば、USBマスストレージクラスのWRITEコマンドと“stop”のテキストを受け取ったUSB通信機1000のプロトコル変換部1002は、WRITEコマンドと“stop” のテキストとを、人形2000の人形動作制御部2002に対するアクチュエータ停止要求コマンドに変換する。
【0075】
図8は、USB通信機1000のプロトコル変換部1002の変換規則を示す表である。
【0076】
表の左欄がUSBIF1001との入出力データを表す。また表の右欄が通信部1003との入出力データを表す。
【0077】
USBIF1001から入力されるREADコマンドは、通信部1003から出力する状態取得要求に変換される。USBIF1001から入力されるWRITEコマンドは、その後に続く書き込みデータによって、異なるデータに変換される。すなわち、WRITEコマンドの後に続く書き込みデータが“dance”であれば、踊り用アクチュエータ動作要求として変換される。WRITEコマンドの後に続く書き込みデータが“talk”であれば、話し用アクチュエータ動作要求として変換される。WRITEコマンドの後に続く書き込みデータが“stop”であれば、アクチュエータ停止要求として変換される。
【0078】
通信部1003から入力される状態応答が、踊り用アクチュエータ動作中であることを示す値であれば、USBIF1001でコンテンツ再生機100に返すデータが"dance"となる。状態応答が話し用アクチュエータ動作中であることを示す値であれば、USBIF1001でコンテンツ再生機100に返すデータが"talk"となる。状態応答が
両アクチュエータ停止中であることを示す値であれば、USBIF1001でコンテンツ再生機100に返すデータが"stop"となる。
【0079】
このような変換規則が、例えば変換テーブルといった形でプロトコル変換部1002に記憶されている。
【0080】
この変換規則にない入力がUSBIF1001からされた場合は、その入力が却下されたことを表す値(すなわちSENSE KEYの値として8)を、USBIF1001へ返す。
【0081】
以上の構成の本実施の形態のシステムの動作について、図9、図10、図11、図12を用いて説明する。
【0082】
図9は、コンテンツ再生機100の、図5および図7における読み出し動作に対応するフローチャートである。
【0083】
アプリケーション処理記述解釈部112は、コンテンツソースからコンテンツ情報を取得すると、そこからアプリケーション処理記述データを抽出する(ステップ1)。
【0084】
次に、アプリケーション処理記述解釈部112は、抽出したアプリケーション処理記述データに記述されたReadLine()を解釈して、USB通信機1000への読み出し要求をUSB通信機1000へ渡して(ステップ2)、返り値を待つ(ステップ3)。
【0085】
図5のコードにはここまでの記述の例を示してあるが、更に返り値を文字グラフィックデータに変換してコンテンツ再生部に渡してディスプレイ102に表示させるようなコードを追加してもよい。
【0086】
図10は、図9におけるコンテンツ再生機100に対応する、USB通信機100の動作に係るフローチャートである。
【0087】
USB通信機100のプロトコル変換部1002は、コンテンツ再生機100から読み出し要求を受け取ると、それを、人形2000の人形動作制御部2002に対する状態取得要求に変換する(ステップ101)。
【0088】
次に、USB通信機1000の通信部1003は、状態取得要求を送信し(ステップ102)、状態返答を待つ(ステップ103)。
【0089】
通信部1003が受け取った状態返答を、プロトコル変換部1002はファイル“status.txt”から読み出したREADコマンドの返り値として1行のテキストデータに変換する(ステップ104)。
【0090】
状態返答が話し用アクチュエータ2004動作中を示す値であれば、READコマンドの返り値として“dance”というテキストをコンテンツ再生機100へ返す。また、話し用アクチュエータ2004動作中を示す値であれば、READコマンドの返り値として“talk”というテキストを返す。また、どちらのアクチュエータも停止していることを示す値であれば“stop”というテキストを返す(ステップ105)。
【0091】
テキストを返した後、USB通信機1000のプロトコル変換部1002は、USBマスストレージクラスとして書き込みが正常に行われたことを示す値(すなわちSENSE KEYの値として0)を、コンテンツ再生機100へ返す(ステップ106)。
【0092】
図11は、コンテンツ再生機100の、図5および図7における書き込み動作に対応するフローチャートである。
【0093】
コンテンツ再生機100は、コンテンツソースからコンテンツ情報を取得すると、そこからアプリケーション処理記述データを抽出する(ステップ201)。
【0094】
次に、コンテンツ再生機100のアプリケーション処理記述解釈部112は、抽出したアプリケーション処理記述データに記述されたWriteLine()を解釈して、USB通信機1000へのテキスト“dance”の書き込み要求をUSB通信機1000へ渡して(ステップ202)、返り値を待つ(ステップ203)。
【0095】
図12は、図11におけるコンテンツ再生機100に対応する、USB通信機100の動作に係るフローチャートである。
【0096】
USB通信機1000のプロトコル変換部1002は、コンテンツ再生機100からテキスト“dance”の書き込み要求を受け取ると、それを、人形2000の人形動作制御部2002に対する踊り用アクチュエータ動作要求に変換する(ステップ301)。
【0097】
変換が正常に行われればプロトコル変換部1002は、USBマスストレージクラスとして書き込みが正常に行われたことを示す値(すなわちSENSE KEYの値として0)を、コンテンツ再生機100へ返す(ステップ302)。
【0098】
次に、USB通信機1000の通信部1003は、踊り用アクチュエータ動作要求を送信する(ステップ303)。
【0099】
なお、control.txtの属性を(読み出しおよび書き込み)可能属性とし、control.txtの読み出しに対する返り値としてstatus.txtの内容を返すように構成してもよい。
【0100】
また、ファイルを開く際に人形2000の電源をONにするコマンドを人形2000に送り、それに応じて人形2000の電源をONにするよう構成してもよい。また、ファイルを閉じる際に人形2000の電源をOFFにするコマンドを人形2000に送り、それに応じて人形2000の電源をOFFにするよう構成してもよい。
【0101】
プロトコル変換部1002は、ソフトウェアで実現してもよい。その場合、ハードウェアとしては、USBIF1001や通信部1003を外部通信IFとして備えることが可能なPCボードやそれと同等のもので、このソフトウェアを実行することができるものであればよい。USBIF1001での通信を、SMB(Server Message Block)やNFS(Network File System)といったファイルサービスプロトコルを介して、上述のプロトコル変換部1002の動作を実現するアプリケーションに渡せば、コンテンツ再生機100のファイルシステムに制限されることなく設計することができる。
【0102】
(第2の実施の形態)
図13は本実施の形態のシステム構成の概念図である。図1と同様の構成は説明を省略する。
【0103】
USB通信機3000はコンテンツ再生機100からはリムーバブルメディアとして認識され、例えば書き込みや読み出しといった、ストレージデバイスへの命令を受け付ける。USB通信機3000はエアコン4000と、例えばBluetooth(登録商標、以下同様)規格に基づいた無線通信を行う。USB通信機3000は、コンテンツ再生機100から受け付けたストレージデバイスへの命令を、エアコン4000の制御命令に変換してエアコン4000へ送信する。またUSB通信機3000は、エアコン4000から送信されたデータを受信して、コンテンツ再生機100に対してリムーバブルディスク内のファイルとして提供する。
【0104】
エアコン4000はECHONET(登録商標)に対応しており、運転のONあるいはOFFを、Bluetooth通信を介してコントローラからの命令によって切り替えられる。また、運転状況などをコントローラへ通知すべく送信することができる。本実施の形態では、コントローラは、コンテンツ再生機100とUSB通信機3000とで構成されているかたちとなる。
【0105】
本実施の形態におけるコンテンツ情報のアプリケーション処理記述データには、ECHONETアプリケーションへの命令が含まれる。ECHONETアプリケーションの命令は、EOJ(ECHONETオブジェクト:制御対象機器の識別子)、EPC(ECHONETプロパティ:制御対象機器の制御対象機能を表す識別子)、EDT(ECHONETデータ:制御対象機能に対してセットする値)を含むものとして説明する。
【0106】
図14はUSB通信機3000のブロック図である。
【0107】
USB通信機3000は、USBIF3001、プロトコル変換部3002、通信部3003、記憶部3004を備える。
【0108】
USBIF3001は、USBマスストレージクラスに対応するストレージペリフェラルとして、外部USBホスト装置とデータの通信を行う(本実施の形態では外部USBホスト装置はコンテンツ再生機1000である)。
【0109】
プロトコル変換部3002はECHONETの通信ミドルウェアおよびサービスミドルウェアと、さらに上位のアプリケーションソフトウェアを実行する。プロトコル変換部3002は、その動作によって生成される情報を記憶する記憶部3012を備える。
【0110】
通信部3003は、エアコン4000と、Bluetooth通信を行う。
【0111】
以下、本実施の形態のUSB通信機3000の動作を、USB接続フェーズと、イベント監視フェーズと、命令実行フェーズに分けて説明する。
【0112】
図15はUSB接続フェーズのUSB通信機3000の動作を表すフローチャートである。
【0113】
プロトコル変換部3002は、USBIF3001がUSBホスト機器と接続されたことを認識すると、通信部3003を介して通信できるBluetooth対応機器を探索する(ステップ401)。
【0114】
次に、見つかったBluetooth対応機器がさらにECHONETにも対応していれば(ステップ402のYes)、Bluetoothコネクションを確立して、通信部3003を介してプロパティマップ要求をBluetooth通信相手へと送信して(ステップ403)、返答を待つ(ステップ404)。見つかったBluetooth対応機器がECHONETに対応していなければ(ステップ402のNo)、その通信相手とのコネクションを確立せずにフェーズを終了する。
【0115】
プロパティマップを受け取ると、プロトコル変換部3002はそのプロパティマップに含まれるEOJ、EPC、アクセスルールをもとにした名前であって、アクセスルールをもとにした属性のテキストファイルを生成して記憶部3012へ記憶する(ステップ405)。
【0116】
本実施の形態ではこのファイルの名前を、"/(EOJ)/(EPC)/(アクセスルール).txt"のようにしている。ただしここで、"/"はフォルダの階層を表す。つまりこれらのファイルは、EOJ、EPC、アクセスルール毎にフォルダに分けられて管理される。エアコン4000のEOJが0x03b701で、その運転のEPCが0x80で、そのアクセスルールが制御(set)および参照(get)可能であれば、書き込み可能属性の"/0x03b701/0x80/set.txt"と読み込み可能属性の"/0x03b701/0x80/get.txt"とを生成して記憶部3012へ記憶する。
【0117】
なお、複数のECHONETおよびBluetooth対応の機器が発見された場合、それぞれとコネクションを確立してそれぞれのプロパティマップを取得してそれら各々についてのファイル生成を行ってもよい。
【0118】
図16はイベント監視フェーズのUSB通信機3000の動作を表すフローチャートである。
【0119】
プロトコル変換部3002は、通信部3003がエアコン4000からのアナウンスを受信すると、そのアナウンスの内容を解析する(ステップ501)。アナウンスにはEOJとEPCと、そのEPCが示すプロパティの値とが含まれている。
【0120】
プロトコル変換部3002は、そのアナウンスに含まれるEOJとEPCと、参照可能を示すsetと、を含む名前のファイルに、そのEPCが示すプロパティの値であるEDTの値を書き込む(ステップ502)。
【0121】
このようにして、ECHONET対応機器からのアナウンスを、EOJおよびEPC毎に記憶していく。
【0122】
図17は命令実行フェーズで各装置がやりとりする命令および値の関係を表す図である。
【0123】
コンテンツ再生機100はまず、USB通信機3000から、フォルダ構成やファイル名の一覧といった、フォルダ/ファイル構成を取得する。EOJがフォルダ名であることから、コンテンツ再生機100は、取得したフォルダ/ファイル構成を解析して、USB通信機3000がプロパティマップを取得したECHONET対応機器が何であるかをEOJに含まれるクラスコードなどから判別することができる。
【0124】
アプリケーション処理記述データには例えば、エアコンであるオブジェクトの運転をONにする、といった命令が記述されている。アプリケーション処理記述解釈部112はその命令を解釈して、エアコン4000のEOJである0x03b701のフォルダの、運転プロパティを表すEPCである0x80のフォルダの、書き込み可能属性であるset.txtへの、運転をONとするデータであるEDTの値である0x30の書き込み要求コマンドをUSBIF106を介して無線通信機3000へ送る。
【0125】
USB通信機3000はこの書き込み要求を受け取ると、EOJ=0x03b701、EPC=0x80、EDT=0x30のECHONETパケットを生成して、通信部3003を介してエアコン4000へ送信する(本実施の形態ではこのECHONETパケットが動作要求のひとつに相当する)。
【0126】
このパケットによってエアコン4000はその運転をONにする。
【0127】
なお、USB通信機3000は、書き込み要求を受け取りその書き込み先ファイル(set.txt)と同じフォルダ内のget.txtに記述されている値が0x30であった場合には、エアコン4000は既に運転ONの状態であるということなので、上述のECHONETパケットを生成しないようにしてもよい。
【0128】
またエアコン4000を、運転がONの状態あるいはOFFの状態から他方の状態へ変化した際に、イベントとしてUSB通信機3000に運転プロパティの状態変化を通知してもよい。
【0129】
図17ではさらに、エアコン4000の運転がONになった後に、コンテンツ再生機100がUSB通信機3000へ、"/0x03b701/0x80/get.txt"の読み出し要求を送っている。これに応じてUSB通信機3000のプロトコル変換部3002は、記憶部3012から"/0x03b701/0x80/get.txt"の内容を読み出し、コンテンツ再生機100へ読み出した値を返している。このような読み出し要求は繰り返し連続して行ってもよく、例えば"/0x03b701/0x80/get.txt"の最終更新日時が前に読み出したときに比べて更新されていればそこで繰り返しを止める、といった制御としてもよい。
【0130】
なお、"/0x03b701/0x80/get.txt"の読み出し要求を受け取ったUSB通信機3000に、EOJ=0x03b701、EPC=0x80のEDTを取得させるECHONETパケットをエアコン4000に送信させてもよい(本実施の形態ではこのECHONETパケットが状態取得要求のひとつに相当する)。
【0131】
図18は図17におけるコンテンツ再生機100の書き込み要求に係る動作を表すフローチャートである。
【0132】
アプリケーション処理記述解釈部112は、コンテンツソースからコンテンツ情報を取得すると、そこからアプリケーション処理記述データを抽出する(ステップ601)。
【0133】
次にアプリケーション処理記述解釈部112は、USB通信機3000からフォルダ/ファイル構成を取得する(ステップ602)。フォルダ/ファイル構成から、USB通信機3000がプロパティマップを取得したECHONET対応機器のクラスを知る。
【0134】
次に、アプリケーション処理記述解釈部112は、抽出したアプリケーション処理記述データを解釈して、アプリケーション処理記述データの命令の対象オブジェクトのクラスコードを含む名前のフォルダがあるドライブへの、EDTの値とそれを書き込むべきファイル名とを含む書き込み要求を行い(ステップ603)、返り値を待つ(ステップ604)。ここではアプリケーション処理記述データが、エアコンであるオブジェクトに対する命令なので、エアコンのEOJが名前としてつけられたフォルダを有する、USB通信機3000を表すドライブへの書き込み要求となる。
【0135】
図19は図18に対応するUSB通信機3000の動作を表すフローチャートである。
【0136】
USB通信機3000のプロトコル変換部3002は、コンテンツ再生機100から書き込み要求を受け取ると、書き込み先のファイルおよびその上位フォルダの名前からEOJとEPCとを抽出する(ステップ701)。
【0137】
次にプロトコル変換部3002は、抽出したEOJとEPCと、書き込み要求に含まれる書き込み値であるEDTと、からECHONETパケットを生成する。(ステップ702)。
【0138】
次にプロトコル変換部3002は、生成したECHONETパケットを通信部3003に渡して、エアコン4000へと送信させ(ステップ703)、SENSE KEYの値として0をコンテンツ再生機100へ返す(ステップ704)。
【0139】
本実施の形態では制御対象機器としてECHONET対応エアコンを挙げたが、他のネットワーク機器制御プロトコルであるUPnPなどによって制御する場合であっても発明を適宜応用することができることはいうまでもない。
【0140】
ECHONETでは、あるECHONET機器がどのような制御が可能であるかを調べるためにプロパティマップを用いるが、UPnP機器を制御対象とする場合はその代わりにDeviceDescriptionやServiceDescriptionと呼ばれる機器情報を用いる。ECHONETでは制御のために生成するファイルを"/(EOJ)/(EPC)/(アクセスルール).txt"としたが,UPnPではファイルとして例えば,/upnp/foo/barなどといったcontrolURLと呼ばれる制御先を特定するURLをファイル名として利用すればよい。またECHONETではそのファイルに書き込む情報をEDTとしたが、UPnPでは例えばUPnPの制御に使われるSOAPメッセージと呼ばれるXML形式の文字列を書き込むとすればよい。
【0141】
USB通信機1000あるいは3000を通じて制御する機器はECHONET対応機器のみであるとしたが、例えばECHONET機器とUPnP機器の両方を制御できるように構成することも可能であることはいうまでもない。その場合、ECHONET機器が制御デバイスに接続された際はプロパティマップに基づいた/0x03b701/0x80/get.txtなどといった制御用ファイルを生成し、UPnP機器が制御デバイスに接続された際はDeviceDescriptionに基づいた制御用ファイルを生成する、といったように、制御用の特定ファイルを,接続機器の特性に合わせて動的に生成する。
【0142】
さらに、USB通信機のコンテンツ再生機100とのIFは、各実施の形態においてUSBであるとして説明したが、例えばBluetoothのFile Transfer Profileを用いる場合のようにコンテンツ再生機100に対して自らが1つの記憶装置であるように振舞い、コンテンツ再生機100の書き込み要求や読み出し要求を扱えるIFであればよいことはいうまでもない。
【0143】
以上のような構成の各実施の形態のシステムによれば、コンテンツ再生機が一般的に備えているストレージ操作機能を用いてネットワーク機器の様々な機能を制御することができる。その結果、「ネットワーク機器連動コンテンツ」を実現することができる。
【0144】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
【0145】
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
【0146】
また、この発明の実施の形態は、個別装置としての発明、関連を持つ2以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
【0147】
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【0148】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【図面の簡単な説明】
【0149】
【図1】第1の実施の形態のシステム構成の概念図。
【図2】第1の実施の形態のコンテンツ再生機のブロック図。
【図3】第1の実施の形態のUSB通信機のブロック図。
【図4】第1の実施の形態の人形のブロック図。
【図5】第1の実施の形態のアプリケーション処理記述データをHTMLとJavaScriptとで記述した例。
【図6】第1の実施の形態のアプリケーション処理記述データをBMLとECMAScriptとで記述した例。
【図7】第1の実施の形態のアプリケーション処理記述データと、各装置がやりとりする命令および値の関係を表す図。
【図8】第1の実施の形態のUSB通信機のプロトコル変換部の変換規則を示す表。
【図9】第1の実施の形態のコンテンツ再生機の読み出し動作に係るフローチャート。
【図10】第1の実施の形態のUSB通信機の動作に係るフローチャート。
【図11】第1の実施の形態のコンテンツ再生機の、書き込み動作に係るフローチャートである。
【図12】第1の実施の形態のUSB通信機の動作に係るフローチャート。
【図13】第2の実施の形態の本実施の形態のシステム構成の概念図。
【図14】第2の実施の形態のUSB通信機3000のブロック図。
【図15】第2の実施の形態のUSB接続フェーズのUSB通信機3000の動作を表すフローチャート。
【図16】第2の実施の形態のイベント監視フェーズのUSB通信機3000の動作を表すフローチャート。
【図17】第2の実施の形態の命令実行フェーズで各装置がやりとりする命令および値の関係を表す図。
【図18】第2の実施の形態のコンテンツ再生機の書き込み要求に係るフローチャート。
【図19】第2の実施の形態のUSB通信機の動作を表すフローチャート。
【符号の説明】
【0150】
100・・・コンテンツ再生機、1000,3000・・・USB通信機、2000・・・人形、4000・・・エアコン。

【特許請求の範囲】
【請求項1】
所定のファイルシステムフォーマットで記憶装置へのアクセスを行う制御側装置と所定の制御プロトコルで機能が外部から制御されることが可能である被制御側装置との両方と通信を行う通信装置において、
前記制御側装置へ前記ファイルシステムフォーマットに準拠したファイル構成情報を提供するファイル構成提供手段と、
前記制御側装置からの前記ファイル構成情報に含まれるファイルへのアクセスを、前記制御プロトコルに準拠し前記被制御側装置の前記機能を制御する制御命令情報に変換するプロトコル変換手段と、
前記制御命令情報を前記被制御側装置へ提供する制御命令提供手段と、
を備えることを特徴とする通信装置。
【請求項2】
前記制御側装置からの前記ファイル構成情報に含まれるファイルへのアクセスは、書き込み要求であり
前記プロトコル変換手段は、前記書き込み要求に含まれる書き込み内容によって、前記動作要求で要求する動作の種類が異なることを特徴とする請求項1記載の通信装置。
【請求項3】
前記制御側装置からの前記ファイル構成情報に含まれるファイルへのアクセスは、書き込み要求および読み出し要求であり
前記プロトコル変換手段は、前記書き込み要求を前記被制御装置への動作要求に変換し、前記読み出し要求を前記被制御装置への状態取得要求に変換することを特徴とする請求項1記載の通信装置。
【請求項4】
前記制御側装置からの前記ファイル構成情報に含まれるファイルへのアクセスは、前記ファイルの名前を含み、
前記プロトコル変換手段は、前記ファイルの名前に応じて、生成する前記制御命令情報を変えることを特徴とする請求項1記載の通信装置。
【請求項5】
前記ファイルシステムフォーマットは、ファイルとそれを配下とするフォルダとで表され、
前記制御側装置からの前記ファイル構成情報に含まれるファイルへのアクセスは、前記フォルダの名前と前記ファイルの名前とを含み、
前記プロトコル変換手段は、前記フォルダの名前および前記ファイルの名前に応じて、生成する前記制御命令情報を変えることを特徴とする請求項1記載の通信装置。
【請求項6】
前記プロトコル変換手段は、前記フォルダの名前および前記ファイルの名前のうち、少なくとも一方に基づいて前記被制御側装置への状態取得要求を生成するか動作要求を生成するかを判断することを特徴とする請求項5記載の通信装置。
【請求項7】
所定のファイルシステムフォーマットで記憶装置へのアクセスを行う制御側装置と所定の制御プロトコルで機能が外部から制御されることが可能である被制御側装置との通信を制御する通信制御方法において、
前記制御側装置へ前記ファイルシステムフォーマットに準拠したファイル構成情報を提供し、
前記制御側装置からの前記ファイル構成情報に含まれるファイルへのアクセスを、前記制御プロトコルに準拠し前記被制御側装置の前記機能を制御する制御命令情報に変換し、
前記制御命令情報を前記被制御側装置へ提供する
ことを特徴とする通信制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2007−179255(P2007−179255A)
【公開日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願番号】特願2005−376255(P2005−376255)
【出願日】平成17年12月27日(2005.12.27)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】