(57)【特許請求の範囲】
【請求項１】
入力される時間的に連続したデータを所定のデータ量ごとに、ネットワークに接続された他の機器へ送信するデータ通信装置において、
入力される時間的に連続したデータが一時的に保持されるバッファ手段と、
上記バッファ手段から所定時間ごとにデータを読み出すためのタイマー手段と、
上記ネットワークを通して上記他の装置とデータの入出力を行うための通信手段と、
保持されたデータを上記通信手段を通して上記他の装置から書換が可能なデータ保持手段と、
上記データ保持手段に保持されたデータが所定値であるか否かを判定する保持値判定手段と、
上記保持値判定手段によって上記データ保持手段に保持されたデータが所定値と判定された場合には、上記タイマー手段によって計時される時間ごとに上記バッファ手段に保持された上記時間的に連続したデータの所定量を削除する制御手段と
を備えるデータ通信装置。
【請求項２】
上記タイマー手段は、２０ｍｓｅｃを計測周期とし、
上記削除されるデータは、上記連続したデータの２０ｍｓｅｃに相当するデータ量である請求項１記載のデータ通信装置。
【請求項３】
上記制御手段は、上記保持値判定手段によって上記データ保持手段に保持されたデータが所定値とは異なる第２の所定値であると判定された場合には、上記タイマー手段によって計時される時間ごとに上記バッファ手段に保持された上記時間的に連続したデータの所定量が上記ネットワークを通して他の装置に送信されるように上記通信手段を制御する
請求項１記載のデータ通信装置。
【請求項４】
上記時間的に連続したデータはオーディオデータである請求項１記載のデータ通信装置。
【請求項５】
上記接続されるネットワークは、ＩＥＥＥ１３９４に規定されるネットワークである請求項１記載のデータ通信装置。
【請求項６】
上記データ通信装置は、上記時間的に連続したデータに置き換えられる無音データを生成する無音データ生成手段を更に備え、
上記制御手段は、上記時間的に連続したデータの送信に先立って、上記無音データ生成手段から生成される無音データを所定時間の間上記ネットワークによって接続される上記他の装置へ送信する請求項１記載のデータ通信装置。
【請求項７】
上記データ通信装置は、上記バッファ手段に蓄えられた上記時間的に連続するデータの蓄積量を判定する蓄積量判定手段を更に備え、
上記制御手段は、上記蓄積量判定手段の判定結果に基づいて上記保持値判定手段の判定結果を評価する請求項１記載のデータ通信装置。
【請求項８】
上記データ通信装置は、パーソナルコンピュータから入力される時間的に連続するデータと送信要求とに基づいてデータの送信を行う請求項１記載のデータ通信装置。
【請求項９】
バッファ手段に入力される時間的に連続したデータを所定のデータ量ごとに、ネットワークに接続された他の機器へ送信するデータ通信方法において、
保持されたデータを上記ネットワークを通して上記他の装置から書換が可能なデータ保持手段からデータを読み出す読み出しステップと、
上記読み出されるデータが所定値であるか否かを判定する判定ステップと、
上記読み出されたデータが所定値であると判定された場合には、時間的に連続したデータが入力されて保持されるバッファ手段から上記時間的に連続するデータを所定時間ごとに所定量削除する制御ステップと
を備えるデータ通信方法。
【請求項１０】
上記データの削除をする所定時間は、２０ｍｓｅｃを周期とする請求項９記載のデータ通信方法。
【請求項１１】
上記削除されるデータは、上記連続したデータの２０ｍｓｅｃに相当するデータ量である請求項１０記載のデータ通信方法。
【請求項１２】
上記データ保持手段から読み出されるデータが所定値とは異なっていた場合には、時間的に連続したデータが入力されて保持されるバッファ手段から上記時間的に連続するデータを所定時間ごとに所定量上記ネットワークを通して他の装置へ送信する送信ステップと
を更に備える請求項９記載のデータ通信方法。
【請求項１３】
上記時間的に連続したデータの送信に先立って、上記無音データ生成手段から生成される無音データを所定時間の間上記ネットワークによって接続される他の装置へ送信する
請求項１２記載のデータ通信方法。
【請求項１４】
上記時間的に連続したデータはオーディオデータである請求項９記載のデータ通信方法。
【請求項１５】
上記接続されるネットワークは、ＩＥＥＥ１３９４に規定されるネットワークである請求項９記載のデータ通信方法。
【請求項１６】
上記保持手段からデータを読み出すのは、上記バッファ手段に蓄えられた上記時間的に連続するデータの蓄積量が所定量を超えたときである請求項９記載のデータ通信方法。
【請求項１７】
上記データ通信方法は、パーソナルコンピュータから入力される時間的に連続するデータと送信要求とに基づいてデータの送信を行う請求項９記載のデータ通信方法。
【請求項１８】
上記時間的に連続したデータは映像データである請求項９記載のデータ通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、時間的に連続して入力される送信データを、ネットワークで接続される他の装置のデータ処理状態に基づいて上記他の装置へ所定時間ごとに所定のデータ量ごとに送信または破棄するデータ通信装置およびデータ通信方法に関するものである。
【０００２】
【従来の技術】
ＩＥＥＥ１３９４規格に準拠したインターフェースに基づいてネットワークを介してオーディオデータの転送を行うＩＥＥＥ１３９４オーディオ装置において、他の全ての装置に対してデータ転送を行うブロードキャストデータ伝送を除いたデータ転送では、受信側が送信側に対して送信許可を行わなければ、送信側装置はデータ転送を実行することができない。
【０００３】
そのため、パーソナルコンピュータ（ＰＣ）を一つのＩＥＥＥ１３９４オーディオ装置としたとき、パーソナルコンピュータ（ＰＣ）側でオーディオデータ転送要求が発生し、受信側のＩＥＥＥ１３９４オーディオ装置が送信許可を行わなかった場合、パーソナルコンピュータ（ＰＣ）側でデータを破棄する必要がある。
【０００４】
【発明が解決しようとする課題】
しかし、上述した従来のデータ転送では、パーソナルコンピュータ（ＰＣ）上でのオーディオデータは、一つのパケットデータとして扱われていて、時間軸でデータ管理されていなかった。そのため、転送が不可能な際に、すべてのデータを捨てるように処理するため、オーディオデータの実際の再生終了時間とは違う時間にデータ転送完了になってしまう。このように従来は、オーディオデータを正常に破棄することができないという不都合があった。
【０００５】
また、パーソナルコンピュータ（ＰＣ）側には、オーディオデータが存在しないときであっても、ＩＥＥＥ１３９４オーディオ装置からはデータ転送要求が発行されることがある。従来では、この要求に応えるため、ダミーパケットを受信側に送出していた。しかし、ダミーパケットを送出するにはある一定のタスクが常に存在する必要がある。パーソナルコンピュータ（ＰＣ）において、常には必要としない処理を行うタスクを存在させるために限りあるリソースを用いることは、リソースを有効利用することができないという不都合があった。
【０００６】
そこで、本発明は、かかる点に鑑みてなされたものであり、ネットワークで接続された他の装置のデータ処理状態に基づいて、再生される時間的に連続したデータを所定量毎に送信または破棄することで、上記他の装置が受信するデータの時間との関係の整合を取るデータ通信装置およびデータ通信方法を提供することを課題とする。
【０００７】
【課題を解決するための手段】
本発明のデータ通信装置は、入力される時間的に連続したデータを所定のデータ量ごとに、ネットワークに接続された他の機器へ送信するデータ通信装置において、入力される時間的に連続したデータが一時的に保持されるバッファ手段と、上記バッファ手段から所定時間ごとにデータを読み出すためのタイマー手段と、上記ネットワークを通して上記他の装置とデータの入出力を行うための通信手段と、保持されたデータを上記通信手段を通して上記他の装置から書換が可能なデータ保持手段と、上記データ保持手段に保持されたデータが所定値であるか否かを判定する保持値判定手段と、上記保持値判定手段によって上記データ保持手段に保持されたデータが所定値と判定された場合には、上記タイマー手段によって計時される時間ごとに上記バッファ手段に保持された上記時間的に連続したデータの所定量を削除する制御手段とを備えるものである。
【０００８】
また、本発明のデータ通信方法は、バッファ手段に入力される時間的に連続したデータを所定のデータ量ごとに、ネットワークに接続された他の機器へ送信するデータ通信方法において、保持されたデータを上記ネットワークを通して上記他の装置から書換が可能なデータ保持手段からデータを読み出す読み出しステップと、上記読み出されるデータが所定値であるか否かを判定する判定ステップと、上記読み出されたデータが所定値であると判定された場合には、時間的に連続したデータが入力されて保持されるバッファ手段から上記時間的に連続するデータを所定時間ごとに所定量削除する制御ステップとを備えるものである。
【０００９】
従って本発明によれば、以下の作用をする。
本発明のデータ送信装置は、パーソナルコンピュータ（ＰＣ）をドライバソフトウエアで仮想のＩＥＥＥ１３９４オーディオ装置として認識させたとき、パーソナルコンピュータ（ＰＣ）のオーディオデータを他のＩＥＥＥ１３９４オーディオ装置が受信できないときに、パーソナルコンピュータ（ＰＣ）側のオーディオデータを破棄したり、データの転送を行えるように処理を行う。
【００１０】
これにより、パーソナルコンピュータ（ＰＣ）をＩＥＥＥ１３９４オーディオ装置として認識しているとき、パーソナルコンピュータ（ＰＣ）がデータの送信を行わなければならない際に、正常にデータ転送を行ったとものとすることができる。
【００１１】
また、ＩＥＥＥ１３９４オーディオ装置がパーソナルコンピュータ（ＰＣ）に対してオーディオデータを要求しているにもかかわらず、パーソナルコンピュータ（ＰＣ）側にはオーディオデータが存在しない場合についても、データが存在しないときの処理を行う。
【００１２】
これにより、パーソナルコンピュータ（ＰＣ）をＩＥＥＥ１３９４オーディオ装置として認識しているとき、ＩＥＥＥ１３９４オーディオ装置がパーソナルコンピュータ（ＰＣ）に対してオーディオデータを要求している際に、データが存在しないときの処理を行うことができる。
【００１３】
【発明の実施の形態】
本実施の形態のデータ送信装置は、パーソナルコンピュータ（ＰＣ）を仮想のＩＥＥＥ１３９４オーディオ装置としたとき、ＩＥＥＥ１３９４ネットワークに接続された受信側装置でデータの受信ができないときにデータ送信装置側でデータを正常に破棄することができ、また、パーソナルコンピュータのリソースを有効利用することができるようにしたものである。
【００１４】
図１は、本実施の形態に適用されるデータ送信システムの構成を示す図である。
図１において、データ送信システムは、データ送信システムの制御を行うパーソナルコンピュータ（ＰＣ）１と、オーディオデータを再生するオーディオ装置９と、ＩＥＥＥ１３９４規格に準拠した通信を行うＩＥＥＥ１３９４ネットワーク部１０とを有して構成される。
【００１５】
ここで、パーソナルコンピュータ（ＰＣ）１は、アプリケーション層３と、デバイスドライバ層４とを有するアプリケーションを実行可能に構成される。
【００１６】
ここで、アプリケーション層３と、デバイスドライバ層４とは、オーディオデバイスコントロールＣ１またはデバイスＩ／ＯコントロールＣ２のやりとりを行うことにより、パーソナルコンピュータ（ＰＣ）１とＩＥＥＥ１３９４ネットワーク１０を介して接続されたオーディオ装置９の制御を行う。
【００１７】
ここで、デバイスドライバ層４は、オーディオデバイスコントロール処理部５と、ＩＥＥＥ１３９４インターフェース部６と、デバイスＩ／Ｏコントロール処理部７と、タイマー処理部８とを有して構成される。
【００１８】
図２は、デバイスドライバ層４の詳細を示すブロック図である。
図２において、デバイスドライバ層４は、アプリケーション層３との間でオーディオデバイスコントロールＣ１のやりとりを行うオーディオデバイスコントロール処理部５と、アプリケーション層３との間でデバイスＩ／ＯコントロールＣ２のやりとりを行うデバイスＩ／Ｏコントロール処理部７と、オーディオデバイスコントロール処理部５からの指示によりタイマー処理を実行するタイマー処理部８と、アプリケーション層３に対してイベント発生処理を行うイベント発生処理部２１とを有して構成される。
【００１９】
また、ＩＥＥＥ１３９４インターフェース部６は、ＩＥＥＥ１３９４送信処理部２２と、ＩＥＥＥ１３９４受信処理部２３とを有して構成される。ＩＥＥＥ１３９４送信処理部２２は、デバイスＩ／Ｏコントロール処理部７とオーディオデバイスコントロール処理部５の送信処理を行う。ＩＥＥＥ１３９４受信処理部２３は、デバイスＩ／Ｏコントロール処理部７とイベント発生処理部２１の受信処理を行う。
【００２０】
図３は、データの破棄またはデータ転送を示す図である。
図３において、ネットワーク３３に、ＩＥＥＥ１３９４インターフェース（Ｉ／Ｆ）部６を介してパーソナルコンピュータ（ＰＣ）１と、コンパクトディスク（ＣＤ）再生装置３４と、ＩＥＥＥ１３９４インターフェース（Ｉ／Ｆ）部３５を介してオーディオ装置９が接続されている状態を示している。これにより、オーディオ装置９に対して、パーソナルコンピュータ１をドライバソフトウエアで仮想のＩＥＥＥ１３９４オーディオ装置として認識させている。
【００２１】
ここで、オーディオ装置９では、パワースイッチ３７により電源がオン状態であって、スイッチ３６によりコンパクトディスク再生装置３４が選択されている。そしてコンパクトディスク再生装置３４からネットワーク３３を介してオーディオ装置９にオーディオデータＤ２が出力されている。これにより、コンパクトディスク再生装置３４において再生されたオーディオ信号は、スピーカ３８から再生音響として出力されている。
【００２２】
この状態では、パーソナルコンピュータ１に接続されたハードディスク３１に記録されているオーディオ信号はオーディオ装置９から再生することはできない。これはパーソナルコンピュータ１のハードディスク３１からのファイル３２のオーディオデータＤ１をオーディオ装置９が受信できないため、この状態においては、後述するように、パーソナルコンピュータ１側のオーディオデータを破棄したり、データの転送を行えるように処理を行う。
【００２３】
これにより、パーソナルコンピュータ１をオーディオ装置９がＩＥＥＥ１３９４オーディオ装置として認識している状態で、パーソナルコンピュータ１がデータの送信を行わなければならない際に、パーソナルコンピュータ１は、正常にデータ転送を行ったとものとすることができる。
【００２４】
また、スイッチ３６によりパーソナルコンピュータ１が選択されていて、オーディオ装置９がパーソナルコンピュータ１に対してオーディオデータＤ１を要求しているにもかかわらず、パーソナルコンピュータ１側にオーディオデータＤ１が存在しない場合についても、データが存在しないときの処理を行う。
【００２５】
これにより、パーソナルコンピュータ１をオーディオ装置９がＩＥＥＥ１３９４オーディオ装置として認識している状態で、オーディオ装置９がパーソナルコンピュータ１に対してオーディオデータＤ１を要求している際に、データが存在しないときの処理を行うことができる。
【００２６】
図４は、データ送信のタイミングを示す図である。
図４において、Ｔ１時点において、パーソナルコンピュータ１からＩＥＥＥ１３９４インターフェース４２を介してオーディオ装置９に準備ができているか否かを問い合わせるＣ１１信号が送信される。Ｔ２時点〜Ｔ６時点までの間においてもストリーミングデータ入力部４１から順次パーソナルコンピュータ１へストリーミングデータが入力される。Ｔ２時点〜Ｔ６時点では、オーディオ装置９がデータを受信できない状態であるため、パーソナルコンピュータ１からオーディオ装置９へのデータの送信は行われない。
【００２７】
Ｔ７時点で、オーディオ装置９において、イベント発生４３があり、オーディオ装置９からパーソナルコンピュータ１へイベント発生４３によるＣ１２信号が送信される。この場合Ｃ１２信号は、通信を行う準備ができたことを示している。このイベント発生４３は、例えば、オーディオ装置９において、スイッチ３６によりコンパクトディスク再生装置３４が選択されている状態から、スイッチ３６によりパーソナルコンピュータ１が選択される状態へ切り替わった場合、または、パワースイッチ３７により電源がオン状態となった場合などに発生する。
【００２８】
これにより、Ｔ８時点〜Ｔ１１時点・・・に至るまでストリーミングデータ入力部４１から順次パーソナルコンピュータ１へ入力されるストリーミングデータは、パーソナルコンピュータ１からＩＥＥＥ１３９４インターフェース４２を介してオーディオ装置９にデータが送信され、オーディオ装置９において、データが再生４４される。
【００２９】
図５は、データの廃棄または転送の制御を示す図である。
図５において、ネットワーク３３に、ＩＥＥＥ１３９４インターフェース部６を介してパーソナルコンピュータ１と、コンパクトディスク再生装置３４と、オーディオ装置９と、ミニディスク（ＭＤ）記録再生装置６６とが接続されている状態を示している。
【００３０】
また、パーソナルコンピュータ１は、ストリーミングデータ入力部４１と、オペレーティングシステム（ＯＳ）５１と、デバイスドライバ層４と、ＩＥＥＥ１３９４インターフェース（Ｉ／Ｆ）部６とを有して構成される。
【００３１】
ストリーミングデータ入力部４１には、ストリーミングデータ５２またはオーディオＣＤ５３からオーディオデータが入力される。ストリーミングデータ入力部４１に入力されたデータは、ＯＳ５１に供給される。
【００３２】
ＯＳ５１は、データを蓄えるバッファ５４と、スレッショルドＴｈとバッファ５４のデータ蓄積量とを比較するコンパレータ５５とを有して構成される。
【００３３】
ＯＳ５１のコンパレータ５５は、スレッショルドＴｈとバッファ５４のデータ蓄積量とを比較して、バッファ５４のデータ蓄積量がスレッショルドＴｈを超えたら、スタート信号Ｃ００をデバイスドライバ層４に供給する。なお、ＯＳ５１のコンパレータ５５は、スレッショルドＴｈとバッファ５４のデータ蓄積量とを比較して、バッファ５４のデータ蓄積量がスレッショルドＴｈを超えないときは、ストップ信号Ｃ００をデバイスドライバ層４に供給する。
【００３４】
デバイスドライバ層４は、入力されたデータを蓄える入力バッファ５６と、スレッショルドＴｈ１と入力バッファ５６のデータ蓄積量とを比較するコンパレータ５７と、データの廃棄を切り換えるスイッチＳＷ１と、無音データ生成部５８と、無音データと転送データとを切り換えるスイッチＳＷ２と、データの廃棄を判定する判定部５９と、所定時間を計測するタイマ６０と、所定時間ごとにスイッチＳＷ２を切り替える切替部６１とを有して構成される。この例の場合、所定時間は２０ｍ秒とされている。
【００３５】
また、ＩＥＥＥ１３９４インターフェース（Ｉ／Ｆ）部６は、転送データを切り換えるスイッチＳＷ３、ＳＷ４と、転送データを蓄えるバッファ６２、６３と、出力プラグを表すｏＰＣＲ（ｏｕｔｐｕｔ  Ｐｌｕｇ  Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒ）６４と、転送コマンドを生成するコマンド生成部６５と、転送タイミングを制御するスイッチＳＷ５とを有して構成される。
【００３６】
このように構成されたデバイスドライバ層４およびＩＥＥＥ１３９４インターフェース部６のデータの廃棄または転送の制御の動作を説明する。
【００３７】
オーディオ装置９内部において所定の状態の変化が発生した場合、オーディオ装置９からネットワーク３３を介してＩＥＥＥ１３９４インターフェース部６のｏＰＣＲ６４にデータの書き換え信号Ｃ２０が供給される。データの書き換え信号Ｃ２０はデバイスドライバ層４に対して割り込み要求信号Ｉｎｔとなる。この割り込み要求信号Ｉｎｔに基づいてデバイスドライバ層４は割込処理を実行する。この割込処理によりデバイスドライバ層４からＯＳ５１にデータ要求信号Ｃ２１が供給される。
【００３８】
ＯＳ５１のバッファ５４からデバイスドライバ層４の入力バッファ５６に可変ブロック長データが供給される。この可変ブロック長データは、例えば、１６ビットで、４４．１ＫＨｚサンプル／２ｃｈのデータであり、時間情報を備えていない。コンパレータ５７は、スレッショルドＴｈ１と入力バッファ５６のデータ蓄積量とを比較して、入力バッファ５６のデータ蓄積量がスレッショルドＴｈ１を超えたら、デバイスドライバ層４の判定部５９へ出力信号を出力する。
【００３９】
ＩＥＥＥ１３９４インターフェース（Ｉ／Ｆ）部６のｏＰＣＲ６４からデバイスドライバ層４の判定部５９へレジスタ値Ｃ２３が供給される。判定部５９はレジスタ値Ｃ２３に基づいてデータの廃棄の要否を判定して、廃棄命令Ｃ２６をスイッチＳＷ１に供給する。スイッチＳＷ１は廃棄命令Ｃ２６の有無によりデータの廃棄または転送を切り換える。
【００４０】
２０ｍｓｅｃを計測するタイマ６０により２０ｍｓｅｃごとに切替部６１はスイッチＳＷ２をＣ２５の状態とＣ２４の状態とを切り替える。Ｃ２５により転送データ側が選択されまたＣ２４により無音データ出力側が選択される。無音データ生成部５８はこの実施の形態例の場合４０ｍｓｅｃ分の無音データを生成する。以上の動作によってスイッチＳＷ２は、デバイスドライバ層４から出力されるデータを無音データと転送データとの間で選択的に切り換える。
【００４１】
転送データまたは無音データはスイッチＳＷ３により２重バッファ６２、６３に交互に蓄えられて、スイッチＳＷ４により２重バッファ６２、６３から交互に出力される。また、判定部５９はレジスタ値Ｃ２３に基づいてデータの廃棄を判定して、廃棄命令Ｃ２６を２重バッファ６２、６３にそれぞれ供給する。２重バッファ６２、６３は廃棄命令Ｃ２６の有無によりデータの廃棄または転送を行う。
【００４２】
判定部５９はレジスタ値Ｃ２３に基づいてデータの転送を判定して、転送信号Ｃ２７をコマンド生成部６５に供給する。コマンド生成部６５は、データ転送実行コマンドを生成してスイッチＳＷ５に供給する。スイッチＳＷ５は、データ転送実行コマンドに基づいて所定のタイミングでデータ転送を実行する。これにより、パーソナルコンピュータ１において、データの廃棄または転送の制御の動作が行われる。
【００４３】
図６は、データ転送開始命令部の動作を示すフローチャートである。
なお、図６においては、図５に示したＯＳ５１からの転送開始を示すスタート信号Ｃ００が出力されている状態で、デバイスドライバ層４の判定部５９のデータ転送開始命令部の動作を示すものである。
【００４４】
図６において、ステップＳ１で、自身のｏＰＣＲをオンラインを示す状態にする。具体的には、図５に示したデバイスドライバ層４のｏＰＣＲ６４のオンラインのレジスタ値Ｃ２３をオンラインを示す”１”の状態にする。
【００４５】
ステップＳ２で、ＯＳへデータの出力が要求される。具体的には、図５に示したデバイスドライバ層４からＯＳ５１へデータ要求Ｃ２１が供給される。
【００４６】
ステップＳ３で、自身のｏＰＣＲの値を読み込む。具体的には、図５に示したデバイスドライバ層４の判定部５９がｏＰＣＲ６４のポイントツウーポイントを示すレジスタ値Ｃ２３を読み込む。なお、ポイントツウーポイントはピアツーピアとも呼ばれることがある。
【００４７】
ステップＳ４で、ＩＥＥＥ１３９４デバイスは送信を許可しているか否かを判断する。具体的には、図５に示したデバイスドライバ層のｏＰＣＲ６４が備えるポイントツウーポイントを示すレジスタ値Ｃ２３により、判定部５９は、ＩＥＥＥ１３９４デバイスは送信を許可しているか否かを判断する。レジスタＣ２３のポイントツーポイントはＩＥＥＥ１３９４機器が１対１で通信を行うことが可能か否かを示すとともに、通信チャンネルが複数存在する場合には利用される通信チャンネルを示すようにされている。
【００４８】
ステップＳ４でＩＥＥＥ１３９４デバイスは送信を許可しているときは、ステップＳ５で２０ｍｓｅｃｘ２のデータ開始要求をする。ただし、このときは無音データである。具体的には、図５に示したデバイスドライバ層４の切替部６１はスイッチＳＷ２をＣ２４により無音データ出力側に切り替える。無音データ生成部５８は４０ｍｓｅｃ分の無音データを生成する。この無音データを送信する動作は、以下の理由により必要とされている。受信装置側は、受信の開始時点において受信データの正否を判断している。そのため、判断を行っている期間のデータを処理することができない。データの送信開始時から有効なデータが送られた場合、オーディオデータなどであれば再生開始時点近傍のオーディオが再生されない状況になりえる。このために再生されなくとも問題とならない無音データを本来のオーディオデータの送信開始前に送ることによって必要なデータの再生不良が発生するのを抑制している。
【００４９】
ステップＳ４でＩＥＥＥ１３９４デバイスは送信を許可していないときは、ステップＳ６で２０ｍｓｅｃに一度タイマソフトウエア割り込みが発生するように登録をする。具体的には、図５に示したデバイスドライバ層４の２０ｍｓｅｃタイマ６０により２０ｍｓｅｃごとに切替部６１はスイッチＳＷ２をＣ２５により転送データ側またはＣ２４により無音データ出力側に切り替える。スイッチＳＷ２は、無音データと転送データとを切り換える。
【００５０】
図７は、デバイスドライバ層からＯＳへのデータ要求部分の動作を示すフローチャートである。
図７において、ステップＳ１１で、ＯＳへ転送データ要求があるか否かを判断する。具体的には、図５に示したデバイスドライバ層４からＯＳ５１へデータ要求Ｃ２１が供給されたか否かを判断する。
【００５１】
ステップＳ１１で、ＯＳへ転送データ要求がないときは直ちに終了する。ステップＳ１１で、ＯＳへ転送データ要求があるときは、ステップＳ１２で、ＯＳから渡されたデータをデバイスドライバ内のバッファに一時蓄える。具体的には、図５に示したＯＳ５１のバッファ５４からデバイスドライバ層４の入力バッファ５６に可変ブロック長データが供給される。
【００５２】
ステップＳ１３で、バッファに余裕があるか否かを判断して、バッファに余裕があれば終了し、バッファに余裕がなければステップＳ１１へ戻る。具体的には、図５に示したコンパレータ５７は、スレッショルドＴｈ１と入力バッファ５６のデータ蓄積量とを比較して、入力バッファ５６のデータ蓄積量がスレッショルドＴｈ１を超えたら、デバイスドライバ層４の判定部５９へ出力信号を出力する。
【００５３】
図８は、パーソナルコンピュータ（ＰＣ）のアプリケーション層３側からのデータ転送要求があったときまたはデータ転送完了を示すソフトウエア割り込み時のデバイスドライバ層における処理を示すフローチャートである。
【００５４】
図８において、ステップＳ２１で、デバイスドライバ層４はＯＳへデータの送信を要求する。具体的には、図５に示したデバイスドライバ層４からＯＳ５１へデータ要求Ｃ２１が供給される。
【００５５】
ステップＳ２２で、ＩＥＥＥ１３９４デバイスが送信を許可しているか否かをデバイスドライバ層は判断する。具体的には、図５に示したデバイスドライバ層の判定部５９はｏＰＣＲ６４のポイントツウーポイントを示すレジスタ値Ｃ２３により、ＩＥＥＥ１３９４デバイスが送信を許可しているか否かを判断する。
【００５６】
ステップＳ２２でＩＥＥＥ１３９４デバイスが送信を許可しているとき、ステップＳ２３で、送信を要求されているデータが存在するか否かを判断する。具体的には、図５に示したデバイスドライバ層４の判定部５９は、入力バッファ５６にデータが存在するか否かを判断する。
【００５７】
ステップＳ２３でデータが存在するとき、ステップＳ２４で、データ転送を実行する。具体的には、図５に示したデバイスドライバ層４の判定部５９は、レジスタ値Ｃ２３に基づいてデータの転送の可否を判定して、転送信号Ｃ２７をコマンド生成部６５に供給する。コマンド生成部６５は、データ転送コマンドを生成してスイッチＳＷ５に供給する。スイッチＳＷ５は、データ転送コマンドに基づいて所定のタイミングでデータ転送を実行する。
【００５８】
ステップＳ２２でＩＥＥＥ１３９４デバイスが送信を許可していないとき、ステップＳ２５で、２０ｍｓｅｃタイマーを作動させる。具体的には、図５に示したデバイスドライバ層４の２０ｍｓｅｃタイマ６０により２０ｍｓｅｃが計時される。
【００５９】
ステップＳ２６で、２０ｍｓｅｃタイマ６０による計時が行われている間は２０ｍｓｅｃ分のデータを入力バッファ５６から破棄する。具体的には、図５に示したデバイスドライバ層４の判定部５９はレジスタ値Ｃ２３に基づいてデータの廃棄を判定して、廃棄命令Ｃ２６をスイッチＳＷ１に供給する。スイッチＳＷ１は廃棄命令Ｃ２６によりＩＥＥＥ１３９４Ｉ／Ｆ部６へデータが送られないようにデータの廃棄を行う。また、判定部５９はレジスタ値Ｃ２３に基づいてデータの廃棄を判定して、廃棄命令Ｃ２６を２重バッファ６２、６３に供給する。２重バッファ６２、６３は廃棄命令Ｃ２６が与えられた場合にはバッファ内に蓄えられたデータの廃棄を行う。
【００６０】
ステップＳ２３でデータが存在しないとき、ステップＳ２７で、ＩＥＥＥ１３９４オーディオデバイスにＰＣがオフラインになったと報告する。具体的には、図５に示したデバイスドライバ層４のｏＰＣＲ６４のオフラインを示すレジスタ値Ｃ２３を書き換える。
【００６１】
図９は、タイマーソフトウエア割り込み時の処理を示すフローチャートである。
図９は、図５に示したデバイスドライバ層の２０ｍｓｅｃタイマ６０により２０ｍｓｅｃごとにタイマーソフトウエア割り込みを実行する場合の動作を示すものである。
【００６２】
図９において、ステップＳ３１で、ＯＳへデータを要求する。具体的には、図５に示したデバイスドライバ層４からＯＳ５１へデータ要求Ｃ２１が供給される。
【００６３】
ステップＳ３２で、ＩＥＥＥ１３９４デバイスが送信を許可しているか否かを判断する。具体的には、図５に示したデバイスドライバ層４の判定部５９はｏＰＣＲ６４のポイントツウーポイントを示すレジスタ値Ｃ２３により、ＩＥＥＥ１３９４デバイスが送信を許可しているか否かを判断する。
【００６４】
ステップＳ３２でＩＥＥＥ１３９４デバイスが送信を許可しているとき、ステップＳ３３で、送信するデータが存在するか否かを判断する。具体的には、図５に示したデバイスドライバ層４の判定部５９は、入力バッファ５６にデータが存在するか否かを判断する。
【００６５】
ステップＳ３３で入力バッファ５６にデータが存在するとき、ステップＳ３４で、データ転送実行する。具体的には、図５に示したデバイスドライバ層４の判定部５９は、レジスタ値Ｃ２３に基づいてデータの転送を判定して、転送信号Ｃ２７をコマンド生成部６５に供給する。コマンド生成部６５は、コマンドを生成してスイッチＳＷ５に供給する。スイッチＳＷ５は、コマンドに基づいて所定のタイミングでデータ転送を実行する。
【００６６】
ステップＳ３２でＩＥＥＥ１３９４デバイスが送信を許可していないとき、ステップＳ３５で、２０ｍｓｅｃタイマーを作動する。具体的には、図５に示したデバイスドライバ層４の２０ｍｓｅｃタイマ６０により２０ｍｓｅｃを計時する。
【００６７】
ステップＳ３６で、２０ｍｓｅｃタイマ６０による計時が行われている間は２０ｍｓｅｃ分のデータを入力バッファ５６から破棄する。具体的には、図５に示したデバイスドライバ層４の判定部５９はレジスタ値Ｃ２３に基づいてデータの廃棄を判定して、廃棄命令Ｃ２６をスイッチＳＷ１に供給する。スイッチＳＷ１は廃棄命令Ｃ２６によりＩＥＥＥ１３９４Ｉ／Ｆ部６へデータが送られないようにデータの廃棄を行う。また、判定部５９はレジスタ値Ｃ２３に基づいてデータの廃棄を判定して、廃棄命令Ｃ２６を２重バッファ６２、６３に供給する。２重バッファ６２、６３は廃棄命令Ｃ２６が与えられた場合にはバッファ内に蓄えられたデータの廃棄を行う。
【００６８】
ステップＳ３３でデータが存在しないとき、ステップＳ３７で、ＩＥＥＥ１３９４オーディオデバイスにＰＣがオフラインになったと報告する。具体的には、図５に示したデバイスドライバ層４のｏＰＣＲ６４のオフラインを示すレジスタ値Ｃ２３を書き換える。
【００６９】
上述したように、図８におけるステップＳ２２でＩＥＥＥ１３９４デバイスが送信を許可していないとき、ステップＳ２６でオーディオデータをオーディオ転送時間軸に従って破棄するように処理する。また、図９におけるステップＳ３２でＩＥＥＥ１３９４デバイスが送信を許可していないとき、ステップＳ３６でオーディオデータをオーディオ転送時間軸に従って破棄するように処理する。
【００７０】
このようにすることで、オーディオデータの転送中にデータ転送が可能になった際には、時間軸に沿ってデータを破棄しているので、時間軸に沿った正常なデータ転送を可能とすることができる。
【００７１】
この場合、上述したように、パーソナルコンピュータ（ＰＣ）内で利用できるタイマーもしくは、データ転送完了割り込みを利用することにより上述したデータの破棄を実行することができる。
【００７２】
また、パーソナルコンピュータ（ＰＣ）内のタイマーを利用する場合、時間軸に沿ってタイマー割り込みが発生するので、設定した時間分のデータを破棄する。
【００７３】
これにより、オーディオデータをオーディオ転送時間軸に従って破棄するので、正常なデータの破棄をすることができる。
【００７４】
また、データ転送割り込みを利用する場合に、ブロードキャスト転送を利用してデータの転送を行う。ＩＥＥＥ１３９４オーディオデータ転送は、一定の間隔でのみデータの転送が可能なので、一定の時間軸でデータ転送を行うことができる。
【００７５】
これにより、データ転送完了を示すソフトウエア割り込み時に一定間隔で転送できる分のデータを破棄することができる。ただし、ブロードキャスト転送を利用しているので、使用中のチャンネルが他のデバイスにより奪われる場合が存在する。その場合、奪われたチャンネルとは違う他のチャンネルに回避する必要がある。
【００７６】
また、上述したように、図８におけるステップＳ２３で入力バッファ内に送信するデータが存在しないとき、ステップＳ２７でＩＥＥＥ１３９４オーディオデバイスにパーソナルコンピュータ（ＰＣ）がオフラインになったと報告するように処理する。また、図９におけるステップＳ３３で入力バッファ内に送信するデータが存在しないとき、ステップＳ３７でＩＥＥＥ１３９４オーディオデバイスにパーソナルコンピュータ（ＰＣ）がオフラインになったと報告するように処理する。
【００７７】
このように、ＩＥＥＥ１３９４オーディオデバイスには、互いにデバイスの状態を伝える機構が存在する。この機構を利用して、パーソナルコンピュータ（ＰＣ）側に転送すべきサウンドデータが存在しないときには、パーソナルコンピュータ（ＰＣ）はオフラインになったと報告する。
【００７８】
これにより、ＩＥＥＥ１３９４オーディオデバイスが転送要求を行ったとしても、パーソナルコンピュータ（ＰＣ）側からは無駄なタスクを負うことなく、ＩＥＥＥ１３９４オーディオデバイスは転送要求に対するパーソナルコンピュータ（ＰＣ）の動作に異常という判断をせず、正常動作として要求に応えたとして処理する。
【００７９】
次に、上述したように、図８におけるステップＳ２４でデータ転送の実行をする場合、また、図９におけるステップＳ３４でデータ転送の実行をする場合について説明する。
【００８０】
図５に示すデバイスドライバ層４がＯＳ５１から受け取る転送データは、Ｃ２２のように、非同期可変長ブロック形式になっている。内部にクロックを持つオーディオデバイスなどの場合、転送時はＯＳ５１が用意したブロックずつ転送するのが一般的だが、ＩＥＥＥ１３９４オーディオデバイスであるオーディオ装置９への転送は固定ブロック長での転送を行うほうが、転送レート計算上効率が良い。そのため、デバイスドライバ４上にＦＩＦＯ（Ｆａｓｔ  Ｉｎ  Ｆａｓｔ  Ｏｕｔ）メモリ領域の入力バッファ５６を作成し、一旦ＯＳ５１から送られてくるデータを保存する。
【００８１】
図１０は、転送データ要求時の転送を示す図である。
図１０において、ＯＳ５１から入力されるデータについて、ＰＣから受け取る転送データブロック１０１からなる８ブロック分のデータ転送１０２を行うことにより、ＰＣ側ＦＩＦＯメモリ１０３に１ブロックに集結されて保存される。
【００８２】
図１１は、ＩＥＥＥ１３９４バス上へのデータ転送を示す図である。
図１１において、ＰＣ側ＦＩＦＩＯメモリ１１１に１ブロックに集結されて保存されたデータは、３５２８０バイトづつ転送１１２を行うことにより、ＩＥＥＥ１３９４オーディオ装置１１３に転送される。
【００８３】
以下に、転送レートの計算について説明する。
ＣＤ音質を満たすものである１６ビット（ｂｉｔ）、２チャンネル（ＣＨ）、４４．２ＫＨｚのサンプリングレートの場合での１秒間に必要なデータ（Ｂｙｔｅ）は、以下の数１式に示すようになる。
【００８４】
【数１】
２（１６ｂｉｔ＝２Ｂｙｔｅ）×２（ｃｈ）×４４１００（サンプリングレート）＝１７６４００Ｂｙｔｅ
【００８５】
オーディオデータはアイソクロナス転送を使用するので、転送するタイミングは０．１２５ｍｓであり、故に１秒間に転送できる回数は１÷０．０００１２５＝８０００となる。よって１秒間に８０００回の転送タイミングが存在する。そのため、最低一回の転送で行わなければならない転送は１７６４００÷８０００＝２２．０５Ｂｙｔｅとなり、以下の数２式となるので、１回の転送で５サンプルまたは６サンプルのデータ転送が必要になる。
【００８６】
【数２】
２２．０５÷（２（１６ｂｉｔ）×２（ｃｈ））＝５．５１２５
【００８７】
５．５１２５の倍数が整数になるように８０を乗ずると、５．５１２５×８０＝４４１ゆえに４４１サンプル（１０ｍｓ）で１回のサイクルを作成することができる。このとき５サンプルと６サンプルができる限り均等に存在するようにするには、以下の数３式となる。
【００８８】
【数３】
４４１÷（５＋６）＝約４０より、（３９×５）＋（４１×６）＝４４１
【００８９】
このため、このサンプル数をできる限り均等に転送するには６サンプルをＡ，５サンプルをＢとすると以下の数４式を１サイクルとすれば最適な転送となる。
【００９０】
【数４】
ＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＡ
ＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡＢＡ
【００９１】
図１２は、入力デバイス切り替え、転送許可、電源オン、オフを示す図である。
図１２において、ＩＥＥＥ１３９４オーディオ装置１２２からパーソナルコンピュータ１２１へ入力デバイス切り替え命令Ｃ１２１が供給されて、パーソナルコンピュータ１２１からＩＥＥＥ１３９４オーディオ装置１２２へ受信完了通知Ｃ１２２が供給される。この受信完了通知Ｃ１２２後に、ＩＥＥＥ１３９４オーディオ装置１２２に対してパーソナルコンピュータ１２１が電源オフであることを通知しない場合、ＩＥＥＥ１３９４オーディオ装置１２２に対してオーディオデータを送信する必要がある。
【００９２】
そのため、◎で示す時点までに転送可の場合はパーソナルコンピュータ１２１からＩＥＥＥ１３９４オーディオ装置１２２へオーディオデータ転送、転送不可の場合はパーソナルコンピュータ１２１自身のオンライン、オフラインを示す図５に示すｏＰＣＲ５９のレジスタ値を変更しなければならない。
【００９３】
ＰＣＲはプラグの概念を実体化したレジスタで、ＩＥＥＥ１３９４のＣＳＲ（Ｃｈａｎｎｅｌ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ）アーキテクチャ準拠（ＩＳＯ／ＩＥＣ−１３２１３）のアドレス空間にマッピングされる。１つのプラグに対して１つのＰＣＲが存在する。ＰＣＲには、出力プラグを表すｏＰＣＲ（Ｏｕｔｐｕｔ  Ｐｌｕｇ  Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒ）と、入力プラグを表すｉＰＣＲ（Ｉｎｔｐｕｔ  Ｐｌｕｇ  Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒ）と、また機器固有の、出力プラグ、入力プラグの情報を表すｏＭＰＲ（Ｏｕｔｐｕｔ  Ｍａｓｔｅｒ  Ｐｌｕｇ  Ｒｅｇｉｓｔｅｒ）と、ｉＭＰＲ（ＩｎｔｐｕｔＭａｓｔｅｒ  Ｐｌｕｇ  Ｒｅｇｉｓｔｅｒ）がある。
【００９４】
ｏＰＣＲとｉＰＣＲは、機器のプラグ数に応じて、それぞれ最小１０個から最大３１個まで持つことができる。ｏＰＣＲを持つ場合は１個のｏＭＰＲを、ｉＰＣＲを持つ場合は１個のｉＭＰＲを、機器に持たなければならない。各種ＰＣＲはそれぞれ３２ビットレジスタで、その内部は細かいフィールドに分けられている。
【００９５】
図１３は、オンライン、オフライン状態、転送可、不可状態を示すレジスタｏＰＣＲ（ｆｆｆｆ  ｆ０００  ０９０４ｈ〜ｆｆｆｆ  ｆ０００  ０９７Ｃｈ）を示す図である。
【００９６】
図１３おいて、オンライン（Ｏｎｌｉｎｅ）１３１は、ＩＥＥＥ１３９４オーディオ装置に対して電源がオンまたはオフを宣言するレジスタであり、”０”はオフ、”１”はオンを示す。オンライン（Ｏｎｌｉｎｅ）１３１は、デバイスドライバ４のみ書き換えを行うことができる。オンラインのプラグは、信号系路の接続を示すコネクションが張られても、アイソクロナスデータ伝送ができない状態であることを意味する。どちらの状態でも、コネクションを張ることは可能である。実際にアイソクロナスデータの入力または出力を行うのは、オンラインかつコネクションが張られているアクティブ状態のプラグである。
【００９７】
ブロードキャストコネクションカウンタ（Ｂｒｏａｄｃａｓｔ  ｃｏｎｎｅｃｔｉｏｎ  ｃｏｕｎｔｅｒ）１３２は、ブロードキャスト転送のためのコネクションがあるか否かを示すカウンタであり、”０”はコネクション無し、”１”はコネクション有りを示す。ブロードキャストコネクションカウンタ（Ｂｒｏａｄｃａｓｔ  ｃｏｎｎｅｃｔｉｏｎ  ｃｏｕｎｔｅｒ）１３２は、デバイスドライバ４およびＩＥＥＥ１３９４オーディオ装置側双方から書き換えを行うことができる。ブロードキャストコネクションは、出力プラグと入力プラグの対の指定をせずに、出力プラグとアイソクロナスチャンネルの接続、または、入力プラグとアイソクロナスチャンネルの接続を行う。
【００９８】
ポイントツーポイントコネクションカウンタ（Ｐｏｉｎｔ−ｔｏ−ｐｏｉｎｔｃｏｎｎｅｃｔｉｏｎ  ｃｏｕｎｔｅｒ）１３３は、ＩＥＥＥ１３９４オーディオ装置が送信許可状態か否かを判断できるレジスタであり、”０〜３ｆ”はポイントツーポイントコネクションの数を示す。この値が１以上のとき、ＩＥＥＥ１３９４オーディオ装置がデータの転送許可を出していることになる。ポイントツーポイントコネクションカウンタ（Ｐｏｉｎｔ−ｔｏ−ｐｏｉｎｔ  ｃｏｎｎｅｃｔｉｏｎ  ｃｏｕｎｔｅｒ）１３３は、ＩＥＥＥ１３９４オーディオ装置側から書き換えを行うことができる。ポイントツーポイントコネクションは、出力プラグから１つのアイソクロナスチャンネルを経由して入力プラグにつながって信号経路を形成する。
【００９９】
リザーブ（ｒｅｓｅｒｖｅｄ）１３４は、リザーブカウンタである。リザーブ（ｒｅｓｅｒｖｅｄ）１３４は、デバイスドライバ４およびＩＥＥＥ１３９４オーディオ装置側双方から書き換えを行うことができる。
【０１００】
チャンネルナンバー（Ｃｈａｎｎｅｌ  ｎｕｍｂｅｒ）１３５は、使用されるチャンネル番号を示すカウンタである。”０〜３ｆ”は、アイソクロナス転送に使用されるチャンネル番号を示す。
【０１０１】
データレート（Ｄａｔａ  ｒａｔｅ）１３６は、アイソクロナス転送に使用される転送レートを示すカウンタであり、”００ｈ”はＳ１００、”０１ｈ”はＳ２００、”０２ｈ”はＳ４００である。
【０１０２】
オーバーヘッドＩＤ（Ｏｖｅｒｈｅａｄ  ＩＤ）１３７は、通信オーバーヘッドを指定するレジスタである。
【０１０３】
ペイロード（Ｐａｙｌｏａｄ）１３８は、データサイズを示すカウンタであり、”０〜３ｆｆ”は、バイト数＝ｐａｙｌｏａｄ×４で示すクワドレッドサイズを示す。
【０１０４】
図１４は、オーバーヘッドＩＤを示す図である。
図１４において、オーバーヘッドＩＤ１４１が００００ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４２は５１２であり、オーバーヘッドＩＤ１４１が０００１ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４２は３２であり、オーバーヘッドＩＤ１４１が００１０ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４２は６４であり、オーバーヘッドＩＤ１４１が００１１ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４２は９６であり、オーバーヘッドＩＤ１４１が０１００ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４２は１２８であり、オーバーヘッドＩＤ１４１が０１０１ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４２は１６０であり、オーバーヘッドＩＤ１４１が０１１０ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４２は１９２であり、オーバーヘッドＩＤ１４１が０１１１ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４２は２２４である。
【０１０５】
また、図１４において、オーバーヘッドＩＤ１４３が１０００ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４４は２５６であり、オーバーヘッドＩＤ１４３が１００１ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４４は２８８であり、オーバーヘッドＩＤ１４３が１０１０ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４４は３２０であり、オーバーヘッドＩＤ１４３が１０１１ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４４は３５２であり、オーバーヘッドＩＤ１４３が１１００ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４４は３８４であり、オーバーヘッドＩＤ１４３が１１０１ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４４は４１６であり、オーバーヘッドＩＤ１４３が１１１０ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４４は４４８であり、オーバーヘッドＩＤ１４３が１１１１ｈのとき、ＩＥＥＥ１３９４バンドワイドアロケーションユニット１４４は４８０である。
【０１０６】
以下に、ＰＣＲの変更を示す。
その機器自身のＰＣＲ、ＩＥＥＥ１３９４インターフェースを経由して接続された機器のＰＣＲ、ともにコンペアーアンドスワップ（ｃｏｍｐａｒｅ  ａｎｄｓｗａｐ）のロックトランザクション（ｌｏｃｋ  ｔｒａｎｓａｃｔｉｏｎ）で値の変更を行う。ＰＣＲの値を変更するときは以下の条件に従う。
【０１０７】
また、ｏＰＣＲがコネクションを張られている間は、ＩＥＥＥ１３９４のアイソクロナスリソースであるチャンネルと帯域が確保されていなければならない。
【０１０８】
また、ｏＰＣＲのチャンネルナンバー（Ｃｈａｎｎｅｌ  ｎｕｍｂｅｒ）１３５と、データレート（Ｄａｔａ  ｒａｔｅ）１３６は、コネクションが張られているときは変更してはいけない。
【０１０９】
また、ブロードキャストコネクションは、そのプラグを持つ機器のみ張ることができる。
【０１１０】
また、出力プラグにコネクションを張るときは、データレート（Ｄａｔａ  ｒａｔｅ）１３６、オーバーヘッドＩＤ（Ｏｖｅｒｈｅａｄ  ＩＤ）１３７、ｏＰＣＲのチャンネルナンバー（Ｃｈａｎｎｅｌ  ｎｕｍｂｅｒ）１３５、ブロードキャストコネクションカウンタ（Ｂｒｏａｄｃａｓｔ  ｃｏｎｎｅｃｔｉｏｎ  ｃｏｕｎｔｅｒ）１３２、ポイントツーポイントコネクションカウンタ（Ｐｏｉｎｔ−ｔｏ−ｐｏｉｎｔ  ｃｏｎｎｅｃｔｉｏｎ  ｃｏｕｎｔｅｒ）１３３は、同一のコンペアーアンドスワップ（ｃｏｍｐａｒｅ  ａｎｄ  ｓｗａｐ）のロックトランザクション（ｌｏｃｋ  ｔｒａｎｓａｃｔｉｏｎ）で値の変更を行う。
【０１１１】
図１５は、ＩＥＥＥ１３９４オーディオデバイスが、ＰＣに対して送信許可を出したパケット例（Ｌｏｃｋ  Ｒｅｑｕｅｓｔ  Ｔｒａｎｓａｃｔｉｏｎ）を示す図である。
【０１１２】
図１５Ａはパケットを示し、図１５Ａにおいて、Ｂｙｔｅ８のＲａｗ  Ｐａｃｋｅｔ”Ｆ００００９０４””はｏＰＣＲの書き込み１５１を示し、Ｂｙｔｅ２０のＲａｗ  Ｐａｃｋｅｔ”８０３Ｆ７Ｃ１２”の値”０”１５２を、Ｂｙｔｅ２４のＲａｗ  Ｐａｃｋｅｔ”８１３Ｅ７Ｃ１２”の値”１”１５３に書き換える。
【０１１３】
図１５Ｂは、パケット内容を示す。図１５Ｂにおいて、Ｄｅｓｔｉｎａｔｉｏｎ  ＩＤは、パケット送信先のｎｏｄｅ＿ＩＤを示す。ｔｌ（Ｔｒａｎｓａｃｔｉｏｎ  ｌａｂｅｌ）は、ＲｅｑｕｅｓｔパケットとＲｅｓｐｏｎｓｅパケットの一対のトランザクションの一致を認識するためのラベルであり、ＲｅｑｕｅｓｔパケットのｔｌがＲｅｓｐｏｎｓｅパケットのｔｌとしても使われる。
【０１１４】
ｒｔ（Ｒｅｔｒｙ  ｃｏｄｅ）は、ＢｕｓｙのＡｃｋｎｏｗｌｅｄｇｅを受信したときのリトライ方法に関する情報である。Ｔｃｏｄｅ（Ｔｒａｎｓａｃｔｉｏｎ  ｃｏｄｅ）は、トランザクションパケット種別コードであり、Ｒｅａｄ／Ｗｒｉｔｅ／Ｌｏｃｋかｑｕａｄｌｅｔ／ｂｌｏｃｋかｒｅｑｕｅｓｕｔ／ｒｅｓｐｏｎｓｅかを示す。
【０１１５】
ｐｒｉ（Ｐｒｉｏｒｉｔｙ）は、ｆａｉｒ  ａｒｂｉｔｒａｔｉｏｎではａｌｌ０（ｃｙｃｌｅ  ｓｔａｒｔを除く）である。Ｓｏｕｒｃｅ＿ＩＤ（ｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ）は、パケット送信元のｎｏｄｅ＿ＩＤである。
【０１１６】
Ｄｅｓｔｉｎａｔｉｏｎ＿Ｏｆｆｓｅｔは、パケット送信先のノードのレジスタ空間上の目的アドレス４８ビットを示し、ｏＰＣＲのリードライトを示す。
【０１１７】
ｄａｔａ＿ｌｅｎｇｔｈは、パケットにデータペイロードがある場合はその長さ（バイト）を示す。Ｅｘｔｅｎｄｅ＿ｔｃｏｄｅは、ｌｏｃｋのパケット時のみ意味を持ち、ｌｏｃｋの種別を示す。Ｈｅａｄｅｒ＿ＣＲＣは、ヘッダー情報に対するＣＲＣである。Ｄａｔａは、データペイロードである。ｄａｔａ＿ＣＲＣは、データペイロードに対するＣＲＣである。
【０１１８】
図１６は、ＰＣがＩＥＥＥ１３９４オーディオデバイスの送信許可パケットに対して返答した例（Ｌｏｃｋ  Ｒｅｑｕｅｓｔ  Ｔｒａｎｓａｃｔｉｏｎ）を示す図である。図１６Ａはパケットを示し、図１６Ｂはパケット内容を示す。
【０１１９】
次に、ロックトランザクションの仕組みを説明する。
ロックトランザクション（ｌｏｃｋ  ｔｒａｎｓａｃｔｉｏｎ）は、書き込みのパラメータとして、ａｒｇ＿ｖａｌｕｅ、ｄａｔａ＿ｖａｌｕｅ、ｏｌｄ＿ｖａｌｕｅという３種類の値を利用し、ｏＰＣＲの書き換えにはコンペアーアンドスワップ（ｃｏｍｐａｒｅ  ａｎｄ  ｓｗａｐ）という書き込み方法を用いる。書き込みのシーケンスは次のようになる。
【０１２０】
第１に、ｒｅｑｕｅｓｔｅｒ（オーディオ装置）は、書き込もうとするレジスタの現在値をａｒｇ＿ｖａｌｕｅ、書き込みたい値をｄａｔａ＿ｖａｌｕｅに指定したｒｅｑｕｅｓｔパケットを作り、それをｒｅｓｐｏｎｄｅｒ（パーソナルコンピュータ（ＰＣ））へ送信する。
【０１２１】
第２に、ｒｅｓｐｏｎｄｅｒ（パーソナルコンピュータ（ＰＣ））は、受信したｒｅｑｕｅｓｔパケットのａｒｇ＿ｖａｌｕｅと、レジスタの現在値を比較して、等しければレジスタの値をｄａｔａ＿ｖａｌｕｅに変更し、等しくなければ変更しない。その後ｒｅｑｕｅｓｔパケットを受信した時点でのレジスタの値をｏｌｄ＿ｖａｌｕｅとしたｒｅｓｐｏｎｓｅパケットを作り、それをｒｅｑｕｅｓｔｅｒ（オーディオ装置）へ送信する。
【０１２２】
第３に、ｒｅｑｕｅｓｔｅｒ（オーディオ装置）は、受信したｒｅｓｐｏｎｓｅパケットのｏｌｄ＿ｖａｌｕｅと、自分が送信したａｒｇ＿ｖａｌｕｅとを比較して、値が等しければ書き込みが成功したと判断し、等しくなければ書き込みは失敗したと判断する。
【０１２３】
図１７は、入力ソースを変更する命令の例に用いるデータ部を含むアイソクロナスパケットを示す図である。
まず、図１７Ａに示すアイソクロナスヘッダー１７１−１について説明する。
レングス（Ｌｅｎｇｔｈ）１７２−１は、データ長を示し、データ長はデータフィールド１７１−３のＣＩＰヘッダー部１７３−１とＩＥＣ９５８オーディオデータ部１７３−２とからなる。ＣＩＰヘッダー１７３−１とは、ヘッダー（Ｈｅａｄｅｒ）ＣＲＣ１７１−２とデータ（Ｄａｔａ（Ｓａｍｐｌｅ１））とに挟まれた部分を示し、ＩＥＣ９５８オーディオデータ１７３−２とは、データ（Ｄａｔａ（Ｓａｍｐｌｅ１））からデータ（Ｄａｔａ（Ｓａｍｐｌｅ５））の部分を示す。最後にデータＣＲＣ１７１−４が付加される。
【０１２４】
Ｔａｇ（ｉｓｏｃｈｒｏｎｏｕｓ  ｄａｔａ  ｆｏｒｍａｔ  ｔａｇ）１７２−２は、Ｉｓｏｃｈｒｏｎｏｕｓパケットフォーマットを示すものである。Ｃｈａｎｎｅｌ１７２−３は、パケットの識別に使用するチャンネルを示すものである。ｔＣｏｄｅ（Ｔｒａｎｓａｃｔｉｏｎ  ｃｏｄｅ）１７２−４は、パケットの種別を示すコード（アイソクロナスはＡｈ）である。ｓｙ（ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｃｏｄｅ）１７２−５は、送信ノードと受信ノードの間で映像や音声などの同期情報をやりとりするために使われる。
【０１２５】
図１７Ｂに示すＣＩＰヘッダーにおいて、ＳＩＤ１７４−１は、パケットを送信しているノードＩＤである。ＤＢＳ１７４−２は、分割された１データブロックサイズである。ＦＮ１７４−３は、１ソースパケットのデータブロックサイズへの分割数である。ＱＰＣ１７４−４は、分割するために付加されたクアドレット数である。ＳＰＨ１７４−５は、ソースパケットヘッダーが付加（＝１）されているかどうかを示すものである。ＤＢＣ１７４−６は、データブロックの連続カウンタであり、パケットの欠落などの検出などに使用する。ＦＭＴ１７４−７は、パケットがどんなフォーマットかを示す領域である。ＦＤＦ１７４−８は、Ｂａｓｉｃ  Ｆｏｒｍａｔ  ｆｏｒ  ＡＭ８２４であることを示すものである。ＳＹＴ１７４−９は、送受信間でのデータの同期を行うために、同期に用いるための時間情報を挿入するフィールドであり、時間の単位としてはサイクルカウンタを基準とする。
【０１２６】
図１８は、パーソナルコンピュータ（ＰＣ）からオーディオ装置へ送る入力ソースを変更する命令のデータ部の詳細を示すものである。このデータ部は上述した図１７Ｂに示したＩＥＣ９５８オーディオデータ１７３−２が対応する。
図１８において、ゼロ（ＺＥＲＯ）１８１、プリアンブル（Ｐｒｅａｍｂｌｅ）１８２が設けられる。その後に、設けられるパリティ（Ｐａｒｉｔｙ）１８３は、５ビット目から３２ビット目までを足した値が偶数のとき０、奇数のとき１となる。
【０１２７】
チャンネル（Ｃｈａｎｎｅｌ）１８４は、１９２サンプルで表すデータで、１ｂｉｔ×１９２Ｐａｃｋｅｔ＝２４ｂｙｔｅのパケット特性を表す。ユーザー（Ｕｓｅｒ）１８５は、同じサブフレーム内にデータチャンネルが作成されたとき１、されないとき０となる。
【０１２８】
バァリディティ（Ｖａｒｉｄａｔｅ）１８６は、データＡｕｘ有効（２４ビットデータフィールド）のとき０、データＡｕｘ無効（２０ビットデータフィールド）のとき１となる。
【０１２９】
なお、上述したデータ転送は、ＩＥＥ１３９４規格に準拠した通信方法を例として説明したが、これに限られるものではなく、他の通信方法を用いても良い。
【０１３０】
【発明の効果】
この発明のデータ通信装置は、時間的に連続して再生されるデータが一時的に保存されるバッファ手段と、上記バッファ手段から所定時間ごとにデータを読み出すためのタイマー手段と、ネットワークを通して他の装置とデータの入出力を行うための通信手段と、上記通信手段を通して上記他の装置から保持されたデータの書換が可能なデータ保持手段と、上記データ保持手段を通して保持されたデータが所定値であるか否かを判定する判定手段と、上記判定手段によって上記データ保持手段に保持されたデータが所定値と判定された場合には、上記タイマー手段によって計時される時間ごとに上記バッファ手段に保持された所定量の上記時間的に連続して再生されるデータを削除する制御手段とを備えるので、他の装置にオーディオ装置として認識させたとき、オーディオデータを他の装置が送信許可を与えていないために受信できないときに、オーディオデータを破棄したり、データの転送を行えるように処理を行うことにより、データの送信を行わなければならない際に、正常にデータ転送を行ったとものとすることができるという効果を奏する。
【０１３１】
また、この発明のデータ通信装置は、上述において、上記制御手段は、上記判定手段によって上記データ保持手段に保持されたデータが所定値でないと判定された場合には、上記タイマー手段によって計時される時間ごとに上記バッファ手段に保持された所定量の上記時間的に連続して再生されるデータがネットワークを通して他の装置に送信されるように上記通信手段を制御するので、他の装置がオーディオデータの送信を許可しているときの処理を行うことにより、他の装置がオーディオ装置として認識しているとき、他の装置がオーディオデータの送信を許可しているときにオーディオデータの送信処理を行うことができるという効果を奏する。
【０１３２】
また、この発明のデータ通信方法は、ネットワークを通して他の装置から書き換えられるデータ保持手段からデータを所定時間ごとに読み出す読み出しステップと、上記読み出されるデータが所定値であるか否かを判定する判定ステップと、上記読み出されたデータが所定値であると判定された場合には、時間的に連続して再生されるストリームデータが保持されたバッファ手段から所定量の上記ストリームデータを削除する制御ステップとを備えるので、他の装置にオーディオ装置として認識させたとき、オーディオデータを他の装置が送信許可を与えていないために受信できないときに、オーディオデータを破棄したり、データの転送を行えるように処理を行うことにより、データの送信を行わなければならない際に、正常にデータ転送を行ったとものとして処理することができるという効果を奏する。
【０１３３】
また、この発明のデータ通信方法は、上述において、上記読み出されたデータが所定値でないと判定された場合には、バッファ手段から所定量の上記ストリームデータを読み出す読み出しステップと、上記読み出された所定量のストリームデータをネットワークを通して他の装置へ送信する送信ステップとを更に備えるので、他の装置がオーディオデータの送信を許可しているときの処理を行うことにより、他の装置がオーディオ装置として認識しているとき、他の装置がオーディオデータの送信を許可しているときにオーディオデータの送信処理を行うことができるという効果を奏する。
【０１３４】
また、この発明のデータ通信方法は、上述において、上記読み出されたデータが所定値から所定値でない状態に変化した場合には、上記バッファ手段から読み出されるストリームデータを送信するよりも前に所定時間の無音を示すデータを送信するので、他の装置がオーディオデータの送信を許可しているときの処理を行うことにより、他の装置がオーディオ装置として認識しているとき、他の装置がオーディオデータの送信を許可しているときにオーディオデータの送信処理を行う際に、無音を最初に付加することができるという効果を奏する。
【０１３５】
また、この発明のデータ通信方法は、上述において、上記時間的に連続して再生されるストリームデータは、オーディオデータ及び／またはビデオデータであるので、他の装置にオーディオ装置として認識させたとき、オーディオデータ及び／またはビデオデータを他の装置が送信許可を与えていないために受信できないときに、オーディオデータ及び／またはビデオデータを破棄したり、データの転送を行えるように処理を行うことにより、データの送信を行わなければならない際に、正常にデータ転送を行ったとものとして処理することができるという効果を奏する。
【図面の簡単な説明】
【図１】本実施の形態に適用されるデータ送信システムの構成を示す図である。
【図２】デバイスドライバ層の詳細を示すブロック図である。
【図３】データの破棄またはデータ転送を示す図である。
【図４】データ送信のタイミングを示す図である。
【図５】データの破棄または転送の制御を示す図である。
【図６】データ転送開始命令部の動作を示すフローチャートである。
【図７】ＯＳへのデータ要求部分の動作を示すフローチャートである。
【図８】ＰＣ側からデータ要求があったときまたはデータ転送完了ソフトウエア割り込み時の処理を示すフローチャートである。
【図９】タイマーソフトウエア割り込み時の処理を示すフローチャートである。
【図１０】データ転送要求時の転送を示す図である。
【図１１】ＩＥＥＥ１３９４バス上へのデータ転送を示す図である。
【図１２】入力デバイス切り替え、転送許可、電源オン、オフを示す図である。
【図１３】オンライン、オフライン状態、転送可、不可状態を示すレジスタｏＰＣＲ（ｆｆｆｆ  ｆ０００  ０９０４ｈ〜ｆｆｆｆ  ｆ０００  ０９７Ｃｈ）を示す図である。
【図１４】オーバーヘッドＩＤを示す図である。
【図１５】ＩＥＥＥ１３９４オーディオデバイスが、ＰＣに対して送信許可を出したパケット例（Ｌｏｃｋ  Ｒｅｑｕｅｓｔ  Ｔｒａｎｓａｃｔｉｏｎ）を示す図であり、図１５Ａはパケットを示し、図１５Ｂはパケット内容を示す。
【図１６】ＰＣがＩＥＥＥ１３９４オーディオデバイスの送信許可パケットに対して返答した例（Ｌｏｃｋ  Ｒｅｑｕｅｓｔ  Ｔｒａｎｓａｃｔｉｏｎ）を示す図であり、図１６Ａはパケットを示し、図１６Ｂはパケット内容を示す。
【図１７】入力ソースを変更する命令の例に用いるデータ部を含むアイソクロナスパケットを示す図であり、図１７Ａはアイソクロナスパケットフォーマット、図１７ＢはＣＩＰヘッダーフォーマットである。
【図１８】パーソナルコンピュータ（ＰＣ）からオーディオ装置へ送る入力ソースを変更する命令のデータ部の詳細を示すものである。
【符号の説明】
１……パーソナルコンピュータ（ＰＣ）、２……パーソナルコンピュータ上で動作するソフトウエア、３……アプリケーション層、４……デバイスドライバ層、５……オーディオデバイスコントロール処理部、６……ＩＥＥＥ１３９４インターフェース部、７……デバイスＩ／Ｏコントロール処理部、８……タイマー処理部、９……オーディオ装置、１０……ＩＥＥＥ１３９４Ｉ／Ｆ、５６……入力バッファ、５８……無音生成部、５９……判定部、６４……ｏＰＣＲ、
【図１】
0003603875.tif 000002
【図２】
0003603875.tif 000003
【図３】
0003603875.tif 000004
【図４】
0003603875.tif 000005
【図５】
0003603875.tif 000006
【図６】
0003603875.tif 000007
【図７】
0003603875.tif 000008
【図８】
0003603875.tif 000009
【図９】
0003603875.tif 000010
【図１０】
0003603875.tif 000011
【図１１】
0003603875.tif 000012
【図１２】
0003603875.tif 000013
【図１３】
0003603875.tif 000014
【図１４】
0003603875.tif 000015
【図１５】
0003603875.tif 000016
【図１６】
0003603875.tif 000017
【図１７】
0003603875.tif 000018
【図１８】
0003603875.tif 000019