説明

無線通信システム

【課題】無線通信による質の高い音声ストリーム再生を可能とする。
【解決手段】クライアント機2iでは、サーバ機1の音声データの連続送信に先立ってサーバ機1から受信した第1時間データを、第2タイマに設定すると、第2タイマは設定した第1時間データから計時を開始する。これにより、以降の音声データの連続転送期間においてはサーバ機1とクライアント機2iのタイマ同士は同期して同じ時間データを出力するように調整される。そして、音声データ連続転送期間では、クライアント機2iは、サーバ機1からスピーカを介して出力するべき順に従い連続送信されて順次に記憶部に格納された音声データのうちから、付与された第1時間データが、第2タイマが出力する第2時間データが指す時間を指示する単位音声データを検索して順次、スピーカを介し出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、無線通信システムに関し、特に、音声データを転送する無線通信システムに関する。
【背景技術】
【0002】
近年、複数の情報通信端末において、基地局(アクセス・ポイント)を使用しない無線通信が普及しつつある。なお、このような無線通信のできる端末のみで構成されるネットワークは、アドホック・ネットワーク(ad hoc network)と呼ばれる。
【0003】
アドホック・ネットワークを利用した無線通信システムでは、端末間でのデータ転送は、ファイル転送をターゲットにプロトコル設計がなされていた。したがって、このような従来の無線通信システムは、音声ストリーム再生などのような通信にリアルタイム性が要求されるデータの転送には向いていなかった。
【0004】
本明細書では、音声の“Streaming”(ストリーミング)による再生を、音声ストリーム再生という。ここで、“Streaming”とは従来のファイル転送のようなダウンロードによる一括転送ではなく、送信側がデータを分割し、分割されることで得られた各データを受信側に連続転送しながら、受信側では受信する各データを連続再生(出力)する技術を指す。
【0005】
従来のコードレス・スピーカシステムの構成として、たとえば特許文献1に示されるものがある。特許文献1では、無線通信によりオーディオアンプ−スピーカ間で音声データを転送する。
【特許文献1】特開2004−328692号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
従来の無線通信システムを利用した音声ストリーム再生においては、オーディオアンプから送信された音声データが、受信側のスピーカシステムで受信されない場合には、スピーカからの音声出力を一時中断し、その後に音声データを遅れて受信した時に出力することがあった。このような場合には、出力音が途切れる、リズムが乱れるなどの現象が現れて、視聴者には耳障りであった。
【0007】
特許文献1には、電池の長寿命化を図るための構成が示されるが、上述したような、受信側のスピーカにおいてデータ受信がされない場合の現象を回避するための構成は何ら提案されていない。
【0008】
それゆえにこの発明の目的は、無線通信による質の高い音声ストリーム再生を可能にする無線通信システムを提供することである。
【課題を解決するための手段】
【0009】
この発明のある局面に従う無線通信システムは、サーバ機と、音声出力部を含みサーバ機と無線通信するクライアント機とを備える。
【0010】
サーバ機は、現在時間を計時しながら、計時時間を指す第1の時間データを出力する第1タイマと、送信すべき音声データが予め所定単位に分割されることで得られた各単位音声データを、第1タイマが出力する第1の時間データを付与して、当該送信すべき音声データを音声出力を部を介し出力するための順番に従い、クライアント機側に連続して送信する音声データ送信手段と、第1タイマが出力する第1の時間データを、クライアント機に送信する時間データ送信手段と、を含む。
【0011】
クライアント機は、記憶部と、設定された時間データから計時を開始し、計時しながら計時時間を指す第2の時間データを出力する第2タイマと、音声データ送信手段から連続して送信される単位音声データを順次受信し、記憶部に格納する音声データ受信手段と、時間データ送信手段から送信された第1の時間データを、音声データ送信手段による単位音声データの連続送信に先立って受信し、受信した第1の時間データを第2タイマに設定する時間設定手段と、記憶部に格納される単位音声データのうちから、付与された時間データが、第2タイマが出力する第2の時間データが指示する時間を指示する単位音声データを検索して順次出力する検索手段と、をさらに含み、検索手段により順次出力される単位音声データを音声出力部を介して外部に出力する。
【0012】
好ましくは、サーバ機とクライアント機は所定のチャンネルを介して無線通信し、クライアント機は、音声データ受信手段により単位音声データが受信できたときに、サーバ機に確認応答を送信する確認応答手段をさらに含む。
【0013】
サーバ機は、音声データ送信手段による各単位音声データの送信に対して確認応答を受信するか否かを検出する確認応答検出手段と、確認応答検出手段による確認応答の検出結果に基づき、所定のチャンネルを別のチャンネルに切換えるか否かを決定するチャンネル切換決定手段を、さらに含む。
【0014】
好ましくは、チャンネル切換決定手段の決定に基づき、所定のチャンネルを別のチャンネルに切換える場合に、時間データ送信手段は、別のチャンネルを指す情報と第1の時間データとを、クライアント機に送信する。
【0015】
クライアント機は、サーバ機と無線通信するための指定のチャンネルを、時間データ送信手段から受信した情報が指す別のチャンネルに切換える。
【0016】
好ましくは、サーバ機は、無線通信のための複数のチャンネルのトラフィックを検出するトラフィック検出手段と、トラフィック検出手段の検出結果に基づき、複数のチャンネルのうちから別のチャンネルを決定する。
【0017】
好ましくは、単位音声データは、人の聴覚により感覚されない周波数の音声を指す。
好ましくは、無線通信は、アドホック通信ネットワークを介した通信を指す。
【発明の効果】
【0018】
本発明によれば、クライアント機では、サーバ機の単位音声データの連続送信に先立ってサーバ機から受信した第1の時間データを、第2タイマに設定すると、第2タイマは設定した第1の時間データから計時を開始する。これにより、以降の単位音声データの連続転送の期間においてはサーバ機とクライアント機のタイマ同士は同期して同じ時間データを出力するように調整される。そして、単位音声データの連続転送の期間では、クライアント機は、サーバ機から音声出力部を介して出力するべき順に従い連続送信されて順次に記憶部に格納された単位音声データのうちから、付与された第1の時間データが、第2タイマが出力する第2の時間データが指す時間を指示する単位音声データを検索して順次、音声出力部を介し外部に出力する。
【0019】
したがって、クライアント機では、サーバ機から受信した単位音声データは、それが出力されるべき順番に従い音声出力部を介して出力されることが保障される。その結果、無線通信による質の高い音声ストリーム再生が可能となる。
【発明を実施するための最良の形態】
【0020】
以下、本発明の無線通信ネットワークの実施の形態について図面を参照して説明する。本実施の形態では、無線通信ネットワークであるアドホック・ネットワークを利用した、音声ストリーム再生のための構成を示す。
【0021】
図1は、本実施の形態に係る無線通信ネットワークであるアドホック・ネットワークの構成の一例を模式的に示す図である。
【0022】
図1を参照して、ネットワーク10には、サーバ機1、および複数のクライアント機2i(i=1、2、…、n)を含む。サーバ機1は、音源から入力した音声データをクライアント機2iに対して送信するパワーアンプの機能を有する。クライアント機2iは、サーバ機1から送信される音声データを受信し、受信した音声データを外部に出力するスピーカ機能を有する。図1の構成においては、たとえばクライアント機21がL(左側)のスピーカとして動作し、クライアント機22が、右側(R)のスピーカとして動作する。図1では複数のクライアント機2iを備えるが、1台であってもよい。
【0023】
本実施の形態では、ネットワーク10は、図1に示すサーバ機1とクライアント機2iからなる無線セルとは異なる別の図示のない無線セルによっても利用されていると想定する。
【0024】
図1のネットワーク10を用いて構成されるサーバ機1と複数のクライアント機2iからなるシステムは、IEEE802.11規格に従うMAC(Media Access Control)レイヤレベルで音声データの到着時間を保障することによって、サーバ1からの音声データ送信にリアルタイムに追従したクライアント機2iによる音声ストリーム再生(出力)を実現する機能を有する。具体的には、サーバ機1とクライアント機2iの間で定期的に交換されるMACフレームの1つである管理フレームの1種であるBeaconフレームに含まれているタイマ値を利用し、サーバ機1では、データ送信のスケジューリングを行ない、クライアント機2iではスケジューリングに従う受信データと再生(出力)データの間の時間情報に基づく同期を調整する。
【0025】
図2と図3それぞれは、図1のサーバ機1とクライアント機2iそれぞれのハードウェア構成を模式的に示す図である。
【0026】
図2を参照して、サーバ機1は、主にパワーアンプ100と通信回路200から構成される。
【0027】
パワーアンプ100は、当該パワーアンプ100の動作を全体的に制御・管理するためのCPU(Central Processing Unit)101を含む。また、パワーアンプ100では、種々のプログラムおよびデータを格納するためのメモリ102、DSP(Digital Signal Processor)からなるデコーダ103、およびDSPからなるサウンドプロセッサ104、サウンドプロセッサ104から出力されたデジタルの音声データをアナログ信号に変換し出力するD/A(Digital/Analog)コンバータ105を備える。サウンドプロセッサ104は、音声データについて音圧を調整して、D/Aコンバータ105とインターフェイス110に出力する。
【0028】
パワーアンプ100は、さらに、着脱自在に装着されるCD(Compact Disk)108を駆動するためのCDドライブI/F(Interface)107、およびCDデコーダ106を備える。
【0029】
さらにパワーアンプ100は、外部からのデジタル入力を受付けるSPD(Serial Presence Detect)I/F109、通信回路200との入出力機能を有するインターフェイス110、HDD(Hard Disk Driver)111、HDD111を接続するためのインターフェイスであるATAPI(AT Attachment Packet Interface)112および入力部113を備える。ATAPI112は、HDD111に対するデータのアクセスを制御する。入力部113は、ユーザ操作などによる外部からの指示を受付ける。
【0030】
本実施の形態では、サーバ機1からクライアント機2iに送信される音声データのための音源は、外部デジタル入力、HDD111の再生音データ、CD108の再生音データなどを想定するが、これらに限定されない。パワーアンプ100では、音源となる音声データを入力すると、入力した音声データはメモリ102のワークメモリ1021に一旦格納される。CPU101は、ワークメモリ1021において送信すべき単位データに分割する。その後、分割後の各単位データをスピーカシステム400から外部に出力するべき順番に従いワークメモリ1021から読出して送信要求とともに、通信回路200に送信する。したがって、分割後の各単位データは、この順番に従いネットワーク10に送信される。ここでは、分割後の各単位データは、自己が出力されるべき順番を指す情報を有すると想定する。
【0031】
通信回路200は、ベースバンド/MAC(Media Access Control)回路250、RF(Radio Frequency)回路205、バラン204、アンテナ203、EEPROM(Electronically Erasable and Programmable Read Only Memory)206,207、電源回路201、および、クロック回路202を含む。
【0032】
クロック回路202は、ベースバンド/MAC回路250とRF回路205にクロック信号を供給する。電源回路201は、ベースバンド/MAC回路250とRF回路205に対する電力の供給を制御する。
【0033】
RF回路205は、アンテナ203を介してデータの送受信を行なう。アンテナ203とRF回路205との間に、バラン204が設けられている。
【0034】
ベースバンド/MAC回路250は、CPU251、インターフェイス252、外部バスコントローラ253、プログラムメモリ254、共有メモリ255、時間を計時するタイマ256、コントロールMAC部257、ADC(analog-digital converter)258、および、DAC(digital-analog converter)259を含む。
【0035】
タイマ256はクロック回路202からの基準クロック信号に従い計時し、計時した時間を指すデータT1を逐次出力する。
【0036】
共有メモリ255は、カウンタとして用いる変数Cを格納するとともに、テーブルTBを予め格納する。テーブルTBは、複数種類の時間データのそれぞれに対応して、閾値を格納する。閾値は、対応する時間データ毎に異なる値を指す。閾値は、変数Cのカウント値と比較されて、後述する‘音途切れが頻繁’か否かの検出のために参照される。テーブルTBの内容は、図1のネットワーク10の環境(周囲の雑音源など通信に関する各種条件)に応じて実験などにより決定される。
【0037】
インターフェイス252は、パワーアンプ100に対するインターフェイスである。CPU251は、パワーアンプ100から、データをネットワーク10に対して送信する指示を受けると、インターフェイス252に、パワーアンプ100内のメモリ(たとえば、ワークメモリ1012)に格納された当該データを取出させる。つまり、パワーアンプ100のCPU101は、送信するべき音声データを生成し、当該音声データを上記メモリに格納した後、当該音声データの送信要求を通信回路200へ送信する。また、インターフェイス252によって取出された音声データは、ネットワーク10に対して送信するフレームの後述の「ユーザ・データ・ボディ部」を構成するデータとして、プログラムメモリ254に一時的に格納される。
【0038】
そして、CPU251は、プログラムメモリ254に格納されたデータに対してMACヘッダとFCS(Frame Check Sequence)を含む種々のデータを付加することにより、ネットワーク10に対して送信するフレームを生成し、プログラムメモリ254に格納するとともに、共有メモリ255において当該フレームを生成した旨のフラグを立てる。
【0039】
図3を参照して、クライアント機2iは、主に通信回路300とスピーカシステム400とからなる。
【0040】
スピーカシステム400は、スピーカシステムの動作を全体的に制御・管理するためのCPU401、各種プログラムおよびデータを格納するためのメモリ404、入力したデジタル音声データをアナログ信号に変換し外部に出力するD/Aコンバータ403、デコーダ402、および通信回路300との入出力を機能するインターフェイス407を備える。
【0041】
通信回路300は、図2に示した通信回路200と同様な機能と構成を有する。通信回路300における通信回路200内の同一または相当する部分には、図2の当該部部に付された符号の1桁目の数字を‘2’→‘3’に変更して示し、詳細な説明は略す。なお、タイマ356は、時間を計時しながら計時した時間データT2を逐次出力する。タイマ356はクロック回路302からの基準クロック信号に従い計時する。
【0042】
共有メモリ355は、ネットワーク10を介して受信した音声データを受信した順番に一時的に格納するためのバッファ領域を有する。当該バッファ領域から読出された音声データは、読出しがされると当該バッファ領域から削除(または、新たに受信した音声データにより上書き)されると想定する。
ここで、ネットワーク10に送信されるフレームの一例であるBeaconフレームの構成を、図4を参照して説明する。
【0043】
図4は、IEEE802.11規格に準拠するフレームの構成を示す図である。
図4を参照して、フレーム500は、MACヘッダ部510と、フレーム・ボディ部520と、FCS部530とを含む。
【0044】
MACヘッダ部510は、DA(Destination Address)511およびSA(Source Address)512を含む。DA511は、フレーム500の宛先アドレスである。SA512は、フレーム500の送信元アドレスである。DA511およびSA512は、6バイトのMACアドレスである。これらのアドレスは、EEPROM206(または306)に予め格納されている。MACヘッダ部510には、アドホック・ネットワークを識別するためのネットワーク識別情報、および無線セルの識別情報も格納されるが、ここでは、説明を簡単にするために省略する。なお、同一無線セル内の端末同士が通信を行なうことができるように、当該無線セルの識別情報が参照される。
【0045】
フレーム・ボディ部520は、ビーコン・フレーム・ボディ部521と、ユーザ・データ・ボディ部522とを含む。ユーザ・データ・ボディ部522は、通信されるべき実際のデータを含む。本実施の形態では、サーバ機1のタイマ256が出力する時間データT1を指示するタイマ値5221と空チャンネル番号5222を含むデータが、ユーザ・データ・ボディ部522に格納される。
【0046】
FCS部530は、フレームの誤り検出に使用される情報(FCS)を含む。
なお、図4のフレーム500は、Beaconフレームであるため、フレーム・ボディ部520にはビーコン・フレーム・ボディ部等のデータを含むが、フレーム500が他の用途のフレームである場合には、フレーム・ボディ部320に含まれるデータは適宜変更される。図5には、図4のフレーム500がデータフレームとして利用される場合の構成が示される。本実施の形態では、このデータフレームはサーバ機1がクライアント機2iに音声データを送信するために用いられる。
【0047】
フレーム500のフレーム・ボディ部520にはユーザ・データ523が格納される。ユーザデータ523は、時間情報5231と音声データ5232とが対応付けて格納される。音声データ5232は、前述したようにワークメモリ1021で予め分割された単位データを指す。対応の時間情報5231には、当該単位データがパワーアンプ100から出力されて通信回路200を介してネットワーク10に送信される際に、タイマ256から出力された時間データT1が設定される。
【0048】
データフレームのMACヘッダ部510とFCS部530の内容はBeaconフレームと同様である。
【0049】
図2に戻って、プログラムメモリ254に格納された送信用のフレームは、コントロールMAC部257によって読出される。コントロールMAC部257は、共有メモリ255にフラグが立ったことを検知すると、プログラムメモリ254に格納された送信用のフレームを読出し、DAC259へ送る。その後、送信用のフレームはアナログデータに変換されて、RF回路205、バラン204、アンテナ203を介して、ネットワーク10へと送信される。これにより、サーバ機1からクライアント機2iに図4または図5のフレームが送信される。
【0050】
通信回路200において、ネットワーク10を介して送信されてきたデータが受信される際の動作について説明する。アンテナ203およびバラン204を介してRF回路205に送られてきたフレームは、ADC258においてデジタルデータに変換された後、コントロールMAC部257に送られる。コントロールMAC部257は、デジタル信号に変換されたフレームに対して、フレーム先頭検出、時間および周波数の同期処理を行なった後、誤り検出、誤り訂正、そして復号を行なう。そして、コントロールMAC部257は、さらに、当該フレームのDA311がEEPROM206に格納される当該通信回路200のMACアドレスと一致するか否かを判断し、一致すると判断すると、フレームからMACヘッダ部510とFCS部530を取除いた後、プログラムメモリ254に、残ったデータ(フレーム・ボディ部520)を転送する。なお、一致しないと判断すると、コントロールMAC部257は、受信したフレームを破棄する。
【0051】
また、コントロールMAC部257は、受信したフレーム・ボディ部520をプログラムメモリ254に格納したときに、共有メモリ255において、その旨を示すフラグをセットする。CPU251は、当該フラグがセットされたことに応じて、プログラムメモリ254に格納されたフレーム・ボディ部520を、処理する。たとえば、後述の‘ACK(Acknowledgement:確認応答)’が検出されるか否かを判定する。これにより、クライアント機2iから送信れたフレームをサーバ機1で受信することができる。
【0052】
上述した機能がクライアント機2iで同様に行なわれることにより、クライアント機2iは自己が生成したフレームをサーバ機1に送信することができる。また、サーバ機1から送信されたBeaconフレームまたはデータフレームを受信することができる。特に受信したデータフレームの内容は、プログラムメモリ254に誤り検出処理のために格納されるとともに、共有メモリ355のバッファ領域において、受信順に格納される。
【0053】
図6には、本実施の形態に係るサーバ機1とクライアント機2iの間の、音声データの通信に係る制御手順が模式的に示される。図6に従い、サーバ機1からクライアント機2iへ音声データを送信し、クライアント機2iが受信した音声データをスピーカシステム400を介して音声を外部に出力するための手順を説明する。
【0054】
なお、パワーアンプ100では、予め送信するべき音声データが単位データに分割されてワークメモリ1021に格納されていると想定する。
【0055】
まず、ユーザが入力部113を操作して入力した、音声の送信要求をパワーアンプ100のCPU401が受付けると、CPU410は通信回路200に送信要求を出力する。通信回路200のCPU251は、パワーアンプ100から送信要求を受付けると、空チャンネルの検索処理を行なう。
【0056】
ここで、空チャンネルの検索とは、ネットワーク10に通信のために適用される全てのチャンネル(周波数帯域)のそれぞれについて、コントロールMAC部257を用いた単位時間当たりのMACフレームの受信数を検出する。その検出結果に基づき、受信フレーム数が少ないチャンネルを、すなわち比較的にトラフィックが少ないチャンネル(以下、空チャンネルという)を検出する。空チャンネルが検出されると、通信回路200では、CPU251により図4に示したBeaconフレームが生成される。生成されるBeaconフレームの空チャンネル番号5222には、検出された空チャンネル番号(周波数情報)が設定され、タイマ値5221にはタイマ256から出力された現在の計時時間を指す時間データT1が設定される。
【0057】
生成されたBeaconフレームは全てのチャンネルを用いてクライアント機2iに送信される。以降、サーバ機1では、この検出された空チャンネルを用いた通信が行なわれる。
【0058】
クライアント機2iは、受信したBeaconフレームは、プログラムメモリ354に一旦格納される。CPU351は、プログラムメモリ354のBeaconフレームのユーザ・データ・ボディ部522に格納されているタイマ値5221および空チャンネル番号5222を読出し、受信した音声データと再生(出力)する音声データの間の時間情報に基づく同期を調整するための設定動作を行なう。
【0059】
具体的には、読出したタイマ値5221を、タイマ356の時間データT2にセットする。また、アンテナ303、バラン304およびRF回路305は、受信したチャンネル番号5222で示される周波数帯域の信号を受信するようにセットされる。
【0060】
サーバ機1に戻り、通信回路200のCPU251は、タイマ値と空チャンネルを通知するBeaconフレームを送信すると、パワーアンプ100に対して音声データを要求する。
【0061】
パワーアンプ100は通信回路200から音声データの要求を受理すると、送信するべき単位の音声データをワークメモリ1021から読出し、送信要求とともに音声データを通信回路200に与える。
【0062】
通信回路200では、CPU251は、受理した音声データを格納した図5のデータフレームをプログラムメモリ254を利用して生成する。ここで、生成したデータフレームには、送信するべき単位の音声データを指す音声データ5232とともに、対応付けて時間情報5231が格納される。時間情報5231には、タイマ256から現在出力された時間データT1が設定される。
【0063】
生成されたデータフレームは各クライアント機2iに宛ててネットワーク10を介して送信される。
【0064】
クライアント機2iは、空チャンネルと指定されたチャンネルを介して音声データを格納したデータフレームを受信する。受信したデータフレームのは共有メモリ355のバッファ領域に、到着(受信)順に格納される。また、プログラムメモリ354にも格納されて、コントロールMAC部357により誤り検出がされる。
【0065】
CPU251は、バッファ領域に格納されたユーザデータ523の音声データ5232を、対応の時間情報5231に従う所定手順でバッファ領域から読出す。この所定手順の詳細は後述の図9に示す。
【0066】
バッファ領域から読出された音声データは、スピーカシステム400に出力される。スピーカシステム400は、通信回路300から受信する音声データを、インターフェイス407を介して受信し、D/Aコンバータ403によりアナログ信号に変換し外部に出力する。これにより、スピーカシステム400のスピーカから受信した音声データによる音声が出力される。
【0067】
通信回路300は、音声データを格納したデータフレームの正常な受信完了を検知すると、応じて正常受信したことを示すACKを格納した管理フレームを生成し、サーバ機1に宛てて送信する。管理フレームは、図4のBeaconフレームと同様の構成を有し、フレーム・ボディ部520にタイマ値5221と空チャンネル番号5222に代替して‘ACK’を有する。
【0068】
サーバ機1に戻る。サーバ機1おいては、クライアント機2iから、ACKを格納した管理フレームを受信すると、通信回路200は、パワーアンプ100に対して次の音声データを要求する。パワーアンプ100は、この要求を受信し応じて、次の音声データの送信要求とともに、次の再生するべき音声データをワークメモリ1021から読出しを通信回路200に与える。これにより、前述と同様にして、通信回路200からは、音声データを格納したデータフレームが生成されて、クライアント機2iに送信される。クライアント機2iの通信回路300は、受信した音声データをスピーカシステム400に与えるので、スピーカシステム400からは受信した次の音声データが再生出力される。このとき、通信回路300は、音声データの正常な受信完了に応じて、ACKを格納した管理フレームをサーバ機1に対して送信する。
【0069】
サーバ機1においては、通信回路200が、クライアント機2iからACKを格納した管理フレームを受信すると、パワーアンプ100に対して次の音声データを要求する。パワーアンプ100は、音声データ要求を受理すると、次に再生するべき音声データを送信するために、音声データ送信要求とともに、当該音声データをワークメモリ1021から読出し通信回路200に与える。通信回路200は、受理した音声データを格納した図5のデータフレームを生成し、クライアント機2iに送信する。
【0070】
このように、サーバ機1では、音声データをスピーカシステム400から出力(再生)するべき順番に従いワークメモリ1021から読出して、クライアント機2i宛てに送信される。
【0071】
このようなネットワーク10のデータ転送を用いた一連の音声ストリーム再生において、使用していたチャンネルに何らかの障害が発生して、音声データが通信回路300において正常に受信完了できなかった場合、通信回路300からはACKを格納した管理フレームは返信されない。ここでチャンネルに生じる障害としては、ネットワーク10の通信媒体(電波、赤外線など)を物理的に遮断するような建造物、壁などの障害物などの侵入、あるいは他の無線ターミナル(電子レンジなど)のようなノイズ発生源から出力されるにノイズ成分、あるいは図示されない隣接通信回線からの漏話によるノイズなどが想定される。
【0072】
チャンネルに上述の障害が発生している期間には、サーバ機1は、音声データを送信したとしてもクライアント機2iからACKを受信することができない。通信回路200は、音声データを格納したデータフレームを送信する毎に、送信からの経過時間をタイマ256を用いて計時する。この計時結果、データフレームを送信後から所定期間を計時してもなおACKのフレームを受信できないことを検出すると、タイムアウトと判定し、応じてタイムアウトのカウント値を指す変数Cを1カウントアップする。そして、クライアント機2iでは、音声データを受信できずに再生(出力)が途絶えるという‘音途切れ’が頻繁に生じているか否かの検出を行う。
【0073】
‘音途切れが頻繁’であるか否かの検出は、CPU251が、時間データT1が指す当該チャンネルを使用した通信開始時からの経過時間に基づきテーブルTBを検索して、経過時間に一致する時間データに対応の閾値をテーブルTBから読出す。そして、読出した閾値と変数Cのカウント値とを比較し、比較結果に基づき行なう。つまり、(閾値<変数Cの値)が判定されると‘音途切れが頻繁である’と検出されて、(閾値≧変数Cの値)が判定されると‘音途切れが頻繁でない’と検出される。
【0074】
現在使用中の所定チャンネルは‘音途切れが頻繁’であると検出されると、使用チャンネルを別のチャンネルに切換えるために、上述の当該使用チャンネルを除くチャンネルのうちから空チャンネルの検索がされる。これにより、音声データの通信が可能となるような別の空チャンネルの決定がなされて、以降は、当該空チャンネルを用いたデータ通信がなされる。
【0075】
サーバ機1の通信回路200は、新たな空チャンネルを決定すると、そのときのタイマ値と空チャンネルを通知するためのビーコンフレームを生成し、クライアント機2iのそれぞれに送信する。
【0076】
クライアント機2iは、通信回路300において、このBeaconフレームを受信するので、応じて当該Beaconフレームに格納されていたタイマ値521を、自己のタイマ356の時間データT2にセットする。これにより、空チャンネルが変更される都度、クライアント機2iでは、受信する音声データと出力するべき音声データとの間の同期調整が行なわれる。
【0077】
上述したように、新たな空チャンネルの検索がなされて、その空チャンネルを用いた通信が開始可能な状態になると、以降は同様にして、次の音声データについての送信が継続する。
【0078】
図7と図8のフローチャートを参照して、図6に示した音声ストリーム再生におけるサーバ機1の通信回路200とクライアント機2iの通信回路300の通信手順を説明する。
【0079】
サーバ機1の通信回路200のCPU251は、パワーアンプ100から音声データの送信要求を入力すると、図7の処理を開始する。
【0080】
まずCPU251は、空チャンネルの検索要求を、コントロールMAC部257に出力するので、コントロールMAC部257はネットワーク10における空チャンネルの検索を行う(ステップS5)。このとき、CPU251は、共有メモリ255のカウンタの変数Cの値を0に設定する(ステップS5)。
【0081】
コントロールMAC部257は、検索した空チャンネルの情報をCPU251に出力するので、CPU251は、コントロールMAC部257にRF回路205、バラン204およびアンテナ203を介して、検出した空チャンネルを介してフレームの送受信を行なうように指示する(ステップS7)。これにより、検出した空チャンネルを介し音声データ通信のためのフレームの送受信が行なわれる。
【0082】
続いて、CPU251は、図4に示したBeaconフレームを生成する。これにより、空チャンネルの情報とタイマ256から出力される時間データT1とに基づき、図4のBeaconフレームが生成される。生成されたBeaconフレームは、コントロールMAC部257、DAC259、RF回路205、バラン204およびアンテナ203を介し、ネットワーク10に送信される。このBeaconフレームは、すべてのチャンネルを介し、ネットワーク10の、すべてのクライアント機2iに宛てて送信される。(ステップS9)。したがって、全てのクライアント機2iは、当該Beaconフレームを受信することができる。
【0083】
続いて、CPU251は、パワーアンプ100から音声データ送信要求と音声データを受信する(ステップS11)。パワーアンプ100では、ワークメモリ1021から再生するべき順番に従い音声データが読出されて、通信回路200に出力される。
【0084】
CPU251は、送信すべき音声データを受信すると、受信した音声データと、タイマ256が出力する時間データT1とに基づき、図5に示すデータフレームを生成する。生成されたデータフレームはネットワーク10に送信される(ステップS13)。
【0085】
CPU251は、外部バスコントローラ253を介し入力するタイマ256の時間データT1に基づき、データフレームの送信後から所定期間内に、ネットワーク10を介して当該音声データの送信に対する正常受信を指すACKのフレームをクライアント機2iから受信したか否かを判定する(ステップS15)。
【0086】
所定期間内にACKのフレームを受信できなかった場合には(ステップS15でNO)、CPU251は、外部バスコントローラ253を介し、共有メモリ255のカウンタの変数Cを+1カウントアップする(ステップS17)。そして、ステップS19の処理に移る。また、ACKのフレームを受信できた場合には(ステップS15でYES)、処理はステップS19に移る。
【0087】
ステップS19では、CPU251は、一連の音声データの送信が終了しているか否かを判定する。音声データの送信終了は、パワーアンプ100から与えられる通知に基づき判定される。全ての音声データの送信が終了したと判定されると(ステップS19でYES)、一連の処理は終了するが、送信終了していないと判定されると(ステップS19でNO)、ステップS21の処理に移る。
【0088】
ステップS21では、CPU251は、テーブルTBの検索結果と変数Cのカウント値とに基づき、前述した‘音途切れが頻繁’であるか否かの検出を行なう。
【0089】
‘音途切れが頻繁’でないと検出されると(ステップS21でNO)、処理はステップS11に戻り、ステップS11以降の音声データの送信処理が前述と同様に行なわれる。
【0090】
一方、‘音途切れが頻繁’であると検出されると(ステップS21でYES)、別のチャンネルに切換えるために、処理はステップS5に戻る。ステップS5では、現在の使用チャンネルを除くチャンネルのうちから空チャンネルが検索されて、以降の処理においては、検索された別のチャンネルを用いて音声データの送信が継続する。これにより、新たなチャンネルが図4のBeaconフレームを用いてクライアント機2iに通知される(ステップS9)。新たなチャンネルの通知時には、タイマ256の現在の時間データT1が当該Beaconフレームに格納されてクライアント機2iに併せて通知される。以降は、この新たな空チャンネルを用いて音声データの送信が行なわれる。
【0091】
一方、クライアント機2iの通信回路300においては、次の処理が行なわれる。
まず、ベースバンドMAC回路350は、RF回路305などを介し、何らかのフレームが受信されるか否かを判定する(ステップS25)。受信されない間は、受信待ち状態であるが、受信されると(ステップS25でYES)、CPU351はこの受信フレームの内容を解析し、解析結果に基づき、受信フレームはタイマ値5221とチャンネル番号5222を格納した図4のBeaconフレームであるかどうかが判定される(ステップS27)。Beaconフレームではないことが検知されると(ステップS27でNO)ステップS31の処理に移行する。
【0092】
Beaconフレームであることが検知されると(ステップS27でYES)、CPU351はタイマ356の時間データT2を、受信したBeaconフレームのタイマ値5221を用いてセットし(ステップS29)、ステップS31の処理に移行する。時間データT2は受信したタイマ値5221にセットされるので、以降は、タイマ値5221から計時が開始する。セット後の時間データT2は後述の図9にあるように音声ストリーム再生のために出力するべき音声データを特定するために用いられる。したがって、チャンネルの設定がされる都度、サーバ機1(ステレオアンプ側)とクライアント機2i(スピーカ側)との間で、音声ストリーム再生のための同期調整が行なうことができる。
【0093】
その後、クライアント機2iでは図5の音声データのデータフレームが正常受信されるか否かを判定する(ステップS31)。
【0094】
音声データが正常受信されなければ(ステップS31でNO)、ACKのフレームを送信することなく、ステップS25の処理に戻り、受信待ち状態となる。
【0095】
一方、音声データが正常受信されれば、CPU351はACKのフレームを生成して、サーバ機1宛てに返信する(ステップS33)。その後、音声データの受信が終了するまで(ステップS35でYES)、音声データの受信処理(ステップS25以降の処理)が繰返される。
【0096】
なお、クライアント機2iは、音声データの受信が終了したことを、データフレームに格納される音声データの終了を示すコードが格納されていることにより判定することができる。
【0097】
クライアント機2iによるACKフレームの送信は、音声データを正常受信した場合に行なわれる。ここで、正常受信の有無は、コントロールMAC部357が、プログラムメモリ354に一旦格納した受信データフレームの内容をFCS部530のデータを用いて誤り検出を行なった結果に基づき為される。誤り検出結果がエラーなしを指示する場合は正常受信と検出される。
【0098】
誤りが検出されると、正常受信ではないと検出されて、当該音声データのフレームは、プログラムメモリ354および共有メモリ355のバッファ領域から削除(破棄)される。したがって、スピーカシステム400にはエラーなし(正常受信)と検出された音声データのみが与えられて、スピーカから外部に出力される。正常受信できない場合には、スピーカシステム400に与えられるべき一連の音声データに欠落が生じるので、その結果、スピーカシステム400からの出力音が途切れる。
【0099】
本実施の形態では、後述するように音声データ5232は人間の聴覚では感覚することのできない周波数のデータであること、また、送信中において使用するべき通信チャンネルを、この音途切れが頻繁とならないように適宜切換えていることによって、スピーカシステム400からの出力音を耳障りのない一定の品質に維持することが可能となり、ユーザに、快適な音を提供することができる。
【0100】
次に、図8を参照して、クライアント機2iにおけるスピーカシステム400を介した音声出力の動作について説明する。
【0101】
まず、通信回路300のCPU351は、音声データのデータフレームを受信するか否かを常に検出している(ステップR3)。音声データを受信しない間は、受信の待機状態にある。
【0102】
一方、音声データのデータフレームを受信すると(ステップR3でYES)、CPU351は、共有メモリ355の所定領域に受信したデータフレームをバッファリングする。このバッファリングにおいては、データフレームの到着順に順次、バッファ領域に格納される(ステップR5)。また、誤り検出のためにプログラムメモリ354にも一旦格納される。
【0103】
次に、CPU351は、タイマ356が出力するタイマT2に基づき、当該時間データT2が指示する時間情報5231に対応の音声データ5232を有するデータフレームを、このバッファ領域において検索する(ステップR7)。この検索は、後述するリズム崩れ回避の処理を伴う。
【0104】
ステップR7において検索に成功すると、すなわち現在の時間データT2が指示する時間情報5231に対応する音声データ5232を有するデータフレームがバッファ領域に格納されており、ここから読出すことができた場合には(ステップR9でYES)、この読出されたデータフレームの音声データ5232は、スピーカシステム400に出力される。したがって、この音声データがスピーカシステム400を介し外部に音声として出力される(ステップR11)。
【0105】
一方、ステップR7において検索に成功しないと、すなわち現在の時間データT2が指示する時間情報5231に対応する音声データ5232を有するデータフレームはバッファ領域には格納されていないと(ステップR9でNO)、音声データはスピーカシステム400に与えられない。したがって、スピーカシステム400による出力音声が一旦、途切れる(ステップR15)。
【0106】
このように、通信回路300において音声データが正常受信されて順次にスピーカシステム400に出力される場合には、音声が連続的にスピーカから出力されるが、一旦、音声データが正常受信できないと、音途切れとなる。
【0107】
その後、音声データの終了が検出されるまで(ステップR13でYES)、音声データの受信→スピーカ出力が継続する。
【0108】
このように、サーバ機1とクライアント機2iにおいて、Beaconフレームを用いてタイマの時間合わせが行なわれた後は、決定した空チャンネルを介して音声データ5232に時間情報5231を付加したデータフレームが、出力されるべき順番に従いサーバ機1からクライアント機2iに送信される。
【0109】
クライアント機2iでは、受信できたデータフレームを順次バッファ領域にバッファリングし、このバッファリングした音声データを再生のためにスピーカ側に順次与える。このとき、現在の時間データT2が指示す時間情報5231に対応の音声データ5232がバッファリングされていない場合(すなわち前述したようにチャンネルに障害が発生していて音声データを正常受信できなかった場合など)においては、音途切れが生じる。
【0110】
本実施の形態では、データフレームで送信される単位の音声データ5232は、人間の聴覚によっては音途切れを感覚できないような周波数のデータとしている。したがって、音途切れが生じるとしても、頻繁でない限りは、人間の聴覚に影響を与えるものではない。
【0111】
一方、人間の聴覚は、音のリズム崩れには敏感に反応することが知られている。そこで、本実施の形態では、図8のステップR7の処理において、リズム崩れ回避の処理を行なっている。この処理を図9を参照して説明する。
【0112】
図9には、クライアント機2i側での音声データ5232の受信と再生(スピーカシステム400からの出力)のタイミングチャートが模式的に示されている。図9の最下段にはタイマ356が出力する時間データT2が指す時間経過の軸(矢印で示す軸)が示されている。この軸が指す経過時間は、Beaconフレームのタイマ値5221によりサーバ機1のタイマ256の時間データT1と同期が取られたものである。
【0113】
図9の最上段には、クライアント機2iが受信すべき音声データが、データD00→D01→D02→D03→D04の順に、すなわちスピーカシステム400から再生(出力)するべき順番に従い指示されている。
【0114】
その下の段には、クライアント機2iがネットワーク10を介して実際に受信した音声データが、時間経過に従い示されている。
【0115】
図9によれば、時間データT2が指す時間XX:00までの期間においては、受信すべきデータD00に対応して実際にデータD00を受信することができているので、時間データT2が指す時間(XX:00〜XX:01)においては、この時間に対応して再生するべきデータD00を再生することができる。
【0116】
次の受信データD01においても同様であり、時間データT2が指す次の時間(XX:01〜XX:02)において、この時間に対応して再生するべきデータD01を再生することができる。ここで、この時間帯で受信すべき次のデータはデータD02であるところ、実際にはデータD02を受信することができなかった。この場合には、時間データT2が指す次の時間帯(XX:02〜XX:03)においては、対応するデータD02をバッファ領域から検索することはできないので、この時間帯においては音声データの出力が一時中断する(音途切れが生じる)。
【0117】
また、時間帯(XX:02〜XX:03)においては、受信するべきデータがデータD03であるところ、データD03を実際に受信することができている。したがって、その後の時間帯XX:03〜においては、先の時間帯(XX:02〜XX:03)で再生するべきであったデータD02が送れて受信されバッファリングされていたとしても、このデータD02の時間情報5231は、当該時間帯XX:03〜よりも過去(以前)の時間を指すものである。したがって、現在の時間データT2が指示する時間帯においては再生されるべきではないとして、データD02はバッファ領域から削除(破棄)される。そして、この時間帯XX:03〜においては、当該時間帯に対応の時間情報5231を有したデータD03を、すなわちこの時間帯において再生すべきデータD03を受信することができているので、このデータD03がバッファ領域から読出されて再生される。
【0118】
もし、データD02を受信できているからといって、この時間帯XX:03〜においてデータD02も再生した場合には、出力音に明らかなリズムの乱れが出現する。リズムに乗って時間帯XX:03〜において再生されるべき順番に該当するデータは、データD03のみだからである。
【0119】
続いて、次の音声データD04についても正常に受信することができるので、データD03に続いて再生されるべきデータであるデータD04を再生することができる。
【0120】
このように、図9の時間帯XX:02〜XX:03においては、音途切れが発生するけれども、時間データT2が指す各時間帯では、当該時間帯が指示する時間情報5231に対応の音声データ5232が再生(スピーカ出力)されるようにしているので、言換えると、時間データT2が指す各時間帯で本来再生されるべき順番に該当する音声データ5232を再生するようにしているので、スピーカからの出力音にリズムの乱れが生じるのを回避することができる。
【0121】
これによって、スピーカシステム400からの出力音を耳障りのない一定の品質に維持することが可能となり、ユーザに、快適な音を提供することができる。
【0122】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0123】
【図1】本発明の無線通信ネットワークの実施の形態であるアドホック・ネットワークの構成の一例を模式的に示す図である。
【図2】図1のサーバ機のハードウェア構成を模式的に示す図である。
【図3】図1のクライアント機のハードウェア構成を模式的に示す図である。
【図4】図1のネットワークにおいて送受信されるフレーム(Beaconフレーム)の構成を模式的に示す図である。
【図5】図1のネットワークにおいて送受信されるフレーム(データフレーム)の構成を模式的に示す図である。
【図6】図1のネットワークにおける音声データ通信の手順を模式的に示す図である。
【図7】図1のネットワークにおいて音声データ通信における通信回路の処理フローチャートである。
【図8】図1のネットワークにおいて音声データ通信におけるスピーカシステムの処理フローチャートである。
【図9】図1のクライアント機の音声データの受信と再生のタイミングチャートである。
【符号の説明】
【0124】
1 サーバ機、2i クライアント機、10 ネットワーク、100 オーディオアンプ、101,251,351,401 CPU、400 スピーカシステム、300 フレーム。

【特許請求の範囲】
【請求項1】
サーバ機と、音声出力部を含み前記サーバ機と無線通信するクライアント機とを備え、
前記サーバ機は、
現在時間を計時しながら、計時時間を指す第1の時間データを出力する第1タイマと、
送信すべき音声データが予め所定単位に分割されることで得られた各単位音声データを、前記第1タイマが出力する前記第1の時間データを付与して、当該送信すべき音声データを前記音声出力を部を介し出力するための順番に従い、前記クライアント機側に連続して送信する音声データ送信手段と、
前記第1タイマが出力する前記第1の時間データを、前記クライアント機に送信する時間データ送信手段と、を含み、
前記クライアント機は、
記憶部と、
設定された時間データから計時を開始し、計時しながら計時時間を指す第2の時間データを出力する第2タイマと、
前記音声データ送信手段から連続して送信される前記単位音声データを順次受信し、前記記憶部に格納する音声データ受信手段と、
前記時間データ送信手段から送信された前記第1の時間データを、前記音声データ送信手段による前記単位音声データの連続送信に先立って受信し、受信した前記第1の時間データを前記第2タイマに設定する時間設定手段と、
前記記憶部に格納される前記単位音声データのうちから、付与された前記時間データが、前記第2タイマが出力する前記第2の時間データが指示する時間を示す前記単位音声データを検索して順次出力する検索手段と、をさらに含み、
前記検索手段により順次出力される前記単位音声データを、前記音声出力部を介して外部に出力する、無線通信システム。
【請求項2】
前記サーバ機と前記クライアント機は所定のチャンネルを介して無線通信し、
前記クライアント機は、
前記音声データ受信手段により前記単位音声データが受信できたときに、前記サーバ機に確認応答を送信する確認応答手段をさらに含み、
前記サーバ機は、
前記音声データ送信手段による前記各単位音声データの送信に対して前記確認応答を受信するか否かを検出する確認応答検出手段と、
前記確認応答検出手段による前記確認応答の検出結果に基づき、前記所定のチャンネルを別のチャンネルに切換えるか否かを決定するチャンネル切換決定手段を、さらに含む、請求項1に記載の無線通信システム。
【請求項3】
前記チャンネル切換決定手段の決定に基づき、前記所定のチャンネルを前記別のチャンネルに切換える場合に、
前記時間データ送信手段は、
前記別のチャンネルを指す情報と前記第1の時間データとを、前記クライアント機に送信し、
前記クライアント機は、
前記サーバ機と無線通信するための前記指定のチャンネルを、前記時間データ送信手段から受信した情報が指す前記別のチャンネルに切換える、請求項1または2に記載の無線通信システム。
【請求項4】
前記サーバ機は、
無線通信のための複数のチャンネルのトラフィックを検出するトラフィック検出手段と、
前記トラフィック検出手段の検出結果に基づき、前記複数のチャンネルのうちから前記別のチャンネルを決定する、請求項2または3に記載の無線通信システム。
【請求項5】
前記単位音声データは、人の聴覚により感覚されない周波数の音声を指す、請求項1から4のいずれかに記載の無線通信システム。
【請求項6】
前記無線通信は、アドホック通信ネットワークを介した通信を指す、請求項1から5のいずれかに記載の無線通信システム。

【図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


【公開番号】特開2009−159401(P2009−159401A)
【公開日】平成21年7月16日(2009.7.16)
【国際特許分類】
【出願番号】特願2007−336404(P2007−336404)
【出願日】平成19年12月27日(2007.12.27)
【出願人】(000116024)ローム株式会社 (3,539)
【Fターム(参考)】