JP3603875B2 - データ通信装置およびデータ通信方法 - Google Patents
データ通信装置およびデータ通信方法 Download PDFInfo
- Publication number
- JP3603875B2 JP3603875B2 JP2002108379A JP2002108379A JP3603875B2 JP 3603875 B2 JP3603875 B2 JP 3603875B2 JP 2002108379 A JP2002108379 A JP 2002108379A JP 2002108379 A JP2002108379 A JP 2002108379A JP 3603875 B2 JP3603875 B2 JP 3603875B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- temporally continuous
- data communication
- audio
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/104—Asynchronous transfer mode [ATM] switching fabrics
- H04L49/105—ATM switching elements
- H04L49/108—ATM switching elements using shared central buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
本発明は、時間的に連続して入力される送信データを、ネットワークで接続される他の装置のデータ処理状態に基づいて上記他の装置へ所定時間ごとに所定のデータ量ごとに送信または破棄するデータ通信装置およびデータ通信方法に関するものである。
【0002】
【従来の技術】
IEEE1394規格に準拠したインターフェースに基づいてネットワークを介してオーディオデータの転送を行うIEEE1394オーディオ装置において、他の全ての装置に対してデータ転送を行うブロードキャストデータ伝送を除いたデータ転送では、受信側が送信側に対して送信許可を行わなければ、送信側装置はデータ転送を実行することができない。
【0003】
そのため、パーソナルコンピュータ(PC)を一つのIEEE1394オーディオ装置としたとき、パーソナルコンピュータ(PC)側でオーディオデータ転送要求が発生し、受信側のIEEE1394オーディオ装置が送信許可を行わなかった場合、パーソナルコンピュータ(PC)側でデータを破棄する必要がある。
【0004】
【発明が解決しようとする課題】
しかし、上述した従来のデータ転送では、パーソナルコンピュータ(PC)上でのオーディオデータは、一つのパケットデータとして扱われていて、時間軸でデータ管理されていなかった。そのため、転送が不可能な際に、すべてのデータを捨てるように処理するため、オーディオデータの実際の再生終了時間とは違う時間にデータ転送完了になってしまう。このように従来は、オーディオデータを正常に破棄することができないという不都合があった。
【0005】
また、パーソナルコンピュータ(PC)側には、オーディオデータが存在しないときであっても、IEEE1394オーディオ装置からはデータ転送要求が発行されることがある。従来では、この要求に応えるため、ダミーパケットを受信側に送出していた。しかし、ダミーパケットを送出するにはある一定のタスクが常に存在する必要がある。パーソナルコンピュータ(PC)において、常には必要としない処理を行うタスクを存在させるために限りあるリソースを用いることは、リソースを有効利用することができないという不都合があった。
【0006】
そこで、本発明は、かかる点に鑑みてなされたものであり、ネットワークで接続された他の装置のデータ処理状態に基づいて、再生される時間的に連続したデータを所定量毎に送信または破棄することで、上記他の装置が受信するデータの時間との関係の整合を取るデータ通信装置およびデータ通信方法を提供することを課題とする。
【0007】
【課題を解決するための手段】
本発明のデータ通信装置は、入力される時間的に連続したデータを所定のデータ量ごとに、ネットワークに接続された他の機器へ送信するデータ通信装置において、入力される時間的に連続したデータが一時的に保持されるバッファ手段と、上記バッファ手段から所定時間ごとにデータを読み出すためのタイマー手段と、上記ネットワークを通して上記他の装置とデータの入出力を行うための通信手段と、保持されたデータを上記通信手段を通して上記他の装置から書換が可能なデータ保持手段と、上記データ保持手段に保持されたデータが所定値であるか否かを判定する保持値判定手段と、上記保持値判定手段によって上記データ保持手段に保持されたデータが所定値と判定された場合には、上記タイマー手段によって計時される時間ごとに上記バッファ手段に保持された上記時間的に連続したデータの所定量を削除する制御手段とを備えるものである。
【0008】
また、本発明のデータ通信方法は、バッファ手段に入力される時間的に連続したデータを所定のデータ量ごとに、ネットワークに接続された他の機器へ送信するデータ通信方法において、保持されたデータを上記ネットワークを通して上記他の装置から書換が可能なデータ保持手段からデータを読み出す読み出しステップと、上記読み出されるデータが所定値であるか否かを判定する判定ステップと、上記読み出されたデータが所定値であると判定された場合には、時間的に連続したデータが入力されて保持されるバッファ手段から上記時間的に連続するデータを所定時間ごとに所定量削除する制御ステップとを備えるものである。
【0009】
従って本発明によれば、以下の作用をする。
本発明のデータ送信装置は、パーソナルコンピュータ(PC)をドライバソフトウエアで仮想のIEEE1394オーディオ装置として認識させたとき、パーソナルコンピュータ(PC)のオーディオデータを他のIEEE1394オーディオ装置が受信できないときに、パーソナルコンピュータ(PC)側のオーディオデータを破棄したり、データの転送を行えるように処理を行う。
【0010】
これにより、パーソナルコンピュータ(PC)をIEEE1394オーディオ装置として認識しているとき、パーソナルコンピュータ(PC)がデータの送信を行わなければならない際に、正常にデータ転送を行ったとものとすることができる。
【0011】
また、IEEE1394オーディオ装置がパーソナルコンピュータ(PC)に対してオーディオデータを要求しているにもかかわらず、パーソナルコンピュータ(PC)側にはオーディオデータが存在しない場合についても、データが存在しないときの処理を行う。
【0012】
これにより、パーソナルコンピュータ(PC)をIEEE1394オーディオ装置として認識しているとき、IEEE1394オーディオ装置がパーソナルコンピュータ(PC)に対してオーディオデータを要求している際に、データが存在しないときの処理を行うことができる。
【0013】
【発明の実施の形態】
本実施の形態のデータ送信装置は、パーソナルコンピュータ(PC)を仮想のIEEE1394オーディオ装置としたとき、IEEE1394ネットワークに接続された受信側装置でデータの受信ができないときにデータ送信装置側でデータを正常に破棄することができ、また、パーソナルコンピュータのリソースを有効利用することができるようにしたものである。
【0014】
図1は、本実施の形態に適用されるデータ送信システムの構成を示す図である。
図1において、データ送信システムは、データ送信システムの制御を行うパーソナルコンピュータ(PC)1と、オーディオデータを再生するオーディオ装置9と、IEEE1394規格に準拠した通信を行うIEEE1394ネットワーク部10とを有して構成される。
【0015】
ここで、パーソナルコンピュータ(PC)1は、アプリケーション層3と、デバイスドライバ層4とを有するアプリケーションを実行可能に構成される。
【0016】
ここで、アプリケーション層3と、デバイスドライバ層4とは、オーディオデバイスコントロールC1またはデバイスI/OコントロールC2のやりとりを行うことにより、パーソナルコンピュータ(PC)1とIEEE1394ネットワーク10を介して接続されたオーディオ装置9の制御を行う。
【0017】
ここで、デバイスドライバ層4は、オーディオデバイスコントロール処理部5と、IEEE1394インターフェース部6と、デバイスI/Oコントロール処理部7と、タイマー処理部8とを有して構成される。
【0018】
図2は、デバイスドライバ層4の詳細を示すブロック図である。
図2において、デバイスドライバ層4は、アプリケーション層3との間でオーディオデバイスコントロールC1のやりとりを行うオーディオデバイスコントロール処理部5と、アプリケーション層3との間でデバイスI/OコントロールC2のやりとりを行うデバイスI/Oコントロール処理部7と、オーディオデバイスコントロール処理部5からの指示によりタイマー処理を実行するタイマー処理部8と、アプリケーション層3に対してイベント発生処理を行うイベント発生処理部21とを有して構成される。
【0019】
また、IEEE1394インターフェース部6は、IEEE1394送信処理部22と、IEEE1394受信処理部23とを有して構成される。IEEE1394送信処理部22は、デバイスI/Oコントロール処理部7とオーディオデバイスコントロール処理部5の送信処理を行う。IEEE1394受信処理部23は、デバイスI/Oコントロール処理部7とイベント発生処理部21の受信処理を行う。
【0020】
図3は、データの破棄またはデータ転送を示す図である。
図3において、ネットワーク33に、IEEE1394インターフェース(I/F)部6を介してパーソナルコンピュータ(PC)1と、コンパクトディスク(CD)再生装置34と、IEEE1394インターフェース(I/F)部35を介してオーディオ装置9が接続されている状態を示している。これにより、オーディオ装置9に対して、パーソナルコンピュータ1をドライバソフトウエアで仮想のIEEE1394オーディオ装置として認識させている。
【0021】
ここで、オーディオ装置9では、パワースイッチ37により電源がオン状態であって、スイッチ36によりコンパクトディスク再生装置34が選択されている。そしてコンパクトディスク再生装置34からネットワーク33を介してオーディオ装置9にオーディオデータD2が出力されている。これにより、コンパクトディスク再生装置34において再生されたオーディオ信号は、スピーカ38から再生音響として出力されている。
【0022】
この状態では、パーソナルコンピュータ1に接続されたハードディスク31に記録されているオーディオ信号はオーディオ装置9から再生することはできない。これはパーソナルコンピュータ1のハードディスク31からのファイル32のオーディオデータD1をオーディオ装置9が受信できないため、この状態においては、後述するように、パーソナルコンピュータ1側のオーディオデータを破棄したり、データの転送を行えるように処理を行う。
【0023】
これにより、パーソナルコンピュータ1をオーディオ装置9がIEEE1394オーディオ装置として認識している状態で、パーソナルコンピュータ1がデータの送信を行わなければならない際に、パーソナルコンピュータ1は、正常にデータ転送を行ったとものとすることができる。
【0024】
また、スイッチ36によりパーソナルコンピュータ1が選択されていて、オーディオ装置9がパーソナルコンピュータ1に対してオーディオデータD1を要求しているにもかかわらず、パーソナルコンピュータ1側にオーディオデータD1が存在しない場合についても、データが存在しないときの処理を行う。
【0025】
これにより、パーソナルコンピュータ1をオーディオ装置9がIEEE1394オーディオ装置として認識している状態で、オーディオ装置9がパーソナルコンピュータ1に対してオーディオデータD1を要求している際に、データが存在しないときの処理を行うことができる。
【0026】
図4は、データ送信のタイミングを示す図である。
図4において、T1時点において、パーソナルコンピュータ1からIEEE1394インターフェース42を介してオーディオ装置9に準備ができているか否かを問い合わせるC11信号が送信される。T2時点〜T6時点までの間においてもストリーミングデータ入力部41から順次パーソナルコンピュータ1へストリーミングデータが入力される。T2時点〜T6時点では、オーディオ装置9がデータを受信できない状態であるため、パーソナルコンピュータ1からオーディオ装置9へのデータの送信は行われない。
【0027】
T7時点で、オーディオ装置9において、イベント発生43があり、オーディオ装置9からパーソナルコンピュータ1へイベント発生43によるC12信号が送信される。この場合C12信号は、通信を行う準備ができたことを示している。このイベント発生43は、例えば、オーディオ装置9において、スイッチ36によりコンパクトディスク再生装置34が選択されている状態から、スイッチ36によりパーソナルコンピュータ1が選択される状態へ切り替わった場合、または、パワースイッチ37により電源がオン状態となった場合などに発生する。
【0028】
これにより、T8時点〜T11時点・・・に至るまでストリーミングデータ入力部41から順次パーソナルコンピュータ1へ入力されるストリーミングデータは、パーソナルコンピュータ1からIEEE1394インターフェース42を介してオーディオ装置9にデータが送信され、オーディオ装置9において、データが再生44される。
【0029】
図5は、データの廃棄または転送の制御を示す図である。
図5において、ネットワーク33に、IEEE1394インターフェース部6を介してパーソナルコンピュータ1と、コンパクトディスク再生装置34と、オーディオ装置9と、ミニディスク(MD)記録再生装置66とが接続されている状態を示している。
【0030】
また、パーソナルコンピュータ1は、ストリーミングデータ入力部41と、オペレーティングシステム(OS)51と、デバイスドライバ層4と、IEEE1394インターフェース(I/F)部6とを有して構成される。
【0031】
ストリーミングデータ入力部41には、ストリーミングデータ52またはオーディオCD53からオーディオデータが入力される。ストリーミングデータ入力部41に入力されたデータは、OS51に供給される。
【0032】
OS51は、データを蓄えるバッファ54と、スレッショルドThとバッファ54のデータ蓄積量とを比較するコンパレータ55とを有して構成される。
【0033】
OS51のコンパレータ55は、スレッショルドThとバッファ54のデータ蓄積量とを比較して、バッファ54のデータ蓄積量がスレッショルドThを超えたら、スタート信号C00をデバイスドライバ層4に供給する。なお、OS51のコンパレータ55は、スレッショルドThとバッファ54のデータ蓄積量とを比較して、バッファ54のデータ蓄積量がスレッショルドThを超えないときは、ストップ信号C00をデバイスドライバ層4に供給する。
【0034】
デバイスドライバ層4は、入力されたデータを蓄える入力バッファ56と、スレッショルドTh1と入力バッファ56のデータ蓄積量とを比較するコンパレータ57と、データの廃棄を切り換えるスイッチSW1と、無音データ生成部58と、無音データと転送データとを切り換えるスイッチSW2と、データの廃棄を判定する判定部59と、所定時間を計測するタイマ60と、所定時間ごとにスイッチSW2を切り替える切替部61とを有して構成される。この例の場合、所定時間は20m秒とされている。
【0035】
また、IEEE1394インターフェース(I/F)部6は、転送データを切り換えるスイッチSW3、SW4と、転送データを蓄えるバッファ62、63と、出力プラグを表すoPCR(output Plug Control Register)64と、転送コマンドを生成するコマンド生成部65と、転送タイミングを制御するスイッチSW5とを有して構成される。
【0036】
このように構成されたデバイスドライバ層4およびIEEE1394インターフェース部6のデータの廃棄または転送の制御の動作を説明する。
【0037】
オーディオ装置9内部において所定の状態の変化が発生した場合、オーディオ装置9からネットワーク33を介してIEEE1394インターフェース部6のoPCR64にデータの書き換え信号C20が供給される。データの書き換え信号C20はデバイスドライバ層4に対して割り込み要求信号Intとなる。この割り込み要求信号Intに基づいてデバイスドライバ層4は割込処理を実行する。この割込処理によりデバイスドライバ層4からOS51にデータ要求信号C21が供給される。
【0038】
OS51のバッファ54からデバイスドライバ層4の入力バッファ56に可変ブロック長データが供給される。この可変ブロック長データは、例えば、16ビットで、44.1KHzサンプル/2chのデータであり、時間情報を備えていない。コンパレータ57は、スレッショルドTh1と入力バッファ56のデータ蓄積量とを比較して、入力バッファ56のデータ蓄積量がスレッショルドTh1を超えたら、デバイスドライバ層4の判定部59へ出力信号を出力する。
【0039】
IEEE1394インターフェース(I/F)部6のoPCR64からデバイスドライバ層4の判定部59へレジスタ値C23が供給される。判定部59はレジスタ値C23に基づいてデータの廃棄の要否を判定して、廃棄命令C26をスイッチSW1に供給する。スイッチSW1は廃棄命令C26の有無によりデータの廃棄または転送を切り換える。
【0040】
20msecを計測するタイマ60により20msecごとに切替部61はスイッチSW2をC25の状態とC24の状態とを切り替える。C25により転送データ側が選択されまたC24により無音データ出力側が選択される。無音データ生成部58はこの実施の形態例の場合40msec分の無音データを生成する。以上の動作によってスイッチSW2は、デバイスドライバ層4から出力されるデータを無音データと転送データとの間で選択的に切り換える。
【0041】
転送データまたは無音データはスイッチSW3により2重バッファ62、63に交互に蓄えられて、スイッチSW4により2重バッファ62、63から交互に出力される。また、判定部59はレジスタ値C23に基づいてデータの廃棄を判定して、廃棄命令C26を2重バッファ62、63にそれぞれ供給する。2重バッファ62、63は廃棄命令C26の有無によりデータの廃棄または転送を行う。
【0042】
判定部59はレジスタ値C23に基づいてデータの転送を判定して、転送信号C27をコマンド生成部65に供給する。コマンド生成部65は、データ転送実行コマンドを生成してスイッチSW5に供給する。スイッチSW5は、データ転送実行コマンドに基づいて所定のタイミングでデータ転送を実行する。これにより、パーソナルコンピュータ1において、データの廃棄または転送の制御の動作が行われる。
【0043】
図6は、データ転送開始命令部の動作を示すフローチャートである。
なお、図6においては、図5に示したOS51からの転送開始を示すスタート信号C00が出力されている状態で、デバイスドライバ層4の判定部59のデータ転送開始命令部の動作を示すものである。
【0044】
図6において、ステップS1で、自身のoPCRをオンラインを示す状態にする。具体的には、図5に示したデバイスドライバ層4のoPCR64のオンラインのレジスタ値C23をオンラインを示す”1”の状態にする。
【0045】
ステップS2で、OSへデータの出力が要求される。具体的には、図5に示したデバイスドライバ層4からOS51へデータ要求C21が供給される。
【0046】
ステップS3で、自身のoPCRの値を読み込む。具体的には、図5に示したデバイスドライバ層4の判定部59がoPCR64のポイントツウーポイントを示すレジスタ値C23を読み込む。なお、ポイントツウーポイントはピアツーピアとも呼ばれることがある。
【0047】
ステップS4で、IEEE1394デバイスは送信を許可しているか否かを判断する。具体的には、図5に示したデバイスドライバ層のoPCR64が備えるポイントツウーポイントを示すレジスタ値C23により、判定部59は、IEEE1394デバイスは送信を許可しているか否かを判断する。レジスタC23のポイントツーポイントはIEEE1394機器が1対1で通信を行うことが可能か否かを示すとともに、通信チャンネルが複数存在する場合には利用される通信チャンネルを示すようにされている。
【0048】
ステップS4でIEEE1394デバイスは送信を許可しているときは、ステップS5で20msecx2のデータ開始要求をする。ただし、このときは無音データである。具体的には、図5に示したデバイスドライバ層4の切替部61はスイッチSW2をC24により無音データ出力側に切り替える。無音データ生成部58は40msec分の無音データを生成する。この無音データを送信する動作は、以下の理由により必要とされている。受信装置側は、受信の開始時点において受信データの正否を判断している。そのため、判断を行っている期間のデータを処理することができない。データの送信開始時から有効なデータが送られた場合、オーディオデータなどであれば再生開始時点近傍のオーディオが再生されない状況になりえる。このために再生されなくとも問題とならない無音データを本来のオーディオデータの送信開始前に送ることによって必要なデータの再生不良が発生するのを抑制している。
【0049】
ステップS4でIEEE1394デバイスは送信を許可していないときは、ステップS6で20msecに一度タイマソフトウエア割り込みが発生するように登録をする。具体的には、図5に示したデバイスドライバ層4の20msecタイマ60により20msecごとに切替部61はスイッチSW2をC25により転送データ側またはC24により無音データ出力側に切り替える。スイッチSW2は、無音データと転送データとを切り換える。
【0050】
図7は、デバイスドライバ層からOSへのデータ要求部分の動作を示すフローチャートである。
図7において、ステップS11で、OSへ転送データ要求があるか否かを判断する。具体的には、図5に示したデバイスドライバ層4からOS51へデータ要求C21が供給されたか否かを判断する。
【0051】
ステップS11で、OSへ転送データ要求がないときは直ちに終了する。ステップS11で、OSへ転送データ要求があるときは、ステップS12で、OSから渡されたデータをデバイスドライバ内のバッファに一時蓄える。具体的には、図5に示したOS51のバッファ54からデバイスドライバ層4の入力バッファ56に可変ブロック長データが供給される。
【0052】
ステップS13で、バッファに余裕があるか否かを判断して、バッファに余裕があれば終了し、バッファに余裕がなければステップS11へ戻る。具体的には、図5に示したコンパレータ57は、スレッショルドTh1と入力バッファ56のデータ蓄積量とを比較して、入力バッファ56のデータ蓄積量がスレッショルドTh1を超えたら、デバイスドライバ層4の判定部59へ出力信号を出力する。
【0053】
図8は、パーソナルコンピュータ(PC)のアプリケーション層3側からのデータ転送要求があったときまたはデータ転送完了を示すソフトウエア割り込み時のデバイスドライバ層における処理を示すフローチャートである。
【0054】
図8において、ステップS21で、デバイスドライバ層4はOSへデータの送信を要求する。具体的には、図5に示したデバイスドライバ層4からOS51へデータ要求C21が供給される。
【0055】
ステップS22で、IEEE1394デバイスが送信を許可しているか否かをデバイスドライバ層は判断する。具体的には、図5に示したデバイスドライバ層の判定部59はoPCR64のポイントツウーポイントを示すレジスタ値C23により、IEEE1394デバイスが送信を許可しているか否かを判断する。
【0056】
ステップS22でIEEE1394デバイスが送信を許可しているとき、ステップS23で、送信を要求されているデータが存在するか否かを判断する。具体的には、図5に示したデバイスドライバ層4の判定部59は、入力バッファ56にデータが存在するか否かを判断する。
【0057】
ステップS23でデータが存在するとき、ステップS24で、データ転送を実行する。具体的には、図5に示したデバイスドライバ層4の判定部59は、レジスタ値C23に基づいてデータの転送の可否を判定して、転送信号C27をコマンド生成部65に供給する。コマンド生成部65は、データ転送コマンドを生成してスイッチSW5に供給する。スイッチSW5は、データ転送コマンドに基づいて所定のタイミングでデータ転送を実行する。
【0058】
ステップS22でIEEE1394デバイスが送信を許可していないとき、ステップS25で、20msecタイマーを作動させる。具体的には、図5に示したデバイスドライバ層4の20msecタイマ60により20msecが計時される。
【0059】
ステップS26で、20msecタイマ60による計時が行われている間は20msec分のデータを入力バッファ56から破棄する。具体的には、図5に示したデバイスドライバ層4の判定部59はレジスタ値C23に基づいてデータの廃棄を判定して、廃棄命令C26をスイッチSW1に供給する。スイッチSW1は廃棄命令C26によりIEEE1394I/F部6へデータが送られないようにデータの廃棄を行う。また、判定部59はレジスタ値C23に基づいてデータの廃棄を判定して、廃棄命令C26を2重バッファ62、63に供給する。2重バッファ62、63は廃棄命令C26が与えられた場合にはバッファ内に蓄えられたデータの廃棄を行う。
【0060】
ステップS23でデータが存在しないとき、ステップS27で、IEEE1394オーディオデバイスにPCがオフラインになったと報告する。具体的には、図5に示したデバイスドライバ層4のoPCR64のオフラインを示すレジスタ値C23を書き換える。
【0061】
図9は、タイマーソフトウエア割り込み時の処理を示すフローチャートである。
図9は、図5に示したデバイスドライバ層の20msecタイマ60により20msecごとにタイマーソフトウエア割り込みを実行する場合の動作を示すものである。
【0062】
図9において、ステップS31で、OSへデータを要求する。具体的には、図5に示したデバイスドライバ層4からOS51へデータ要求C21が供給される。
【0063】
ステップS32で、IEEE1394デバイスが送信を許可しているか否かを判断する。具体的には、図5に示したデバイスドライバ層4の判定部59はoPCR64のポイントツウーポイントを示すレジスタ値C23により、IEEE1394デバイスが送信を許可しているか否かを判断する。
【0064】
ステップS32でIEEE1394デバイスが送信を許可しているとき、ステップS33で、送信するデータが存在するか否かを判断する。具体的には、図5に示したデバイスドライバ層4の判定部59は、入力バッファ56にデータが存在するか否かを判断する。
【0065】
ステップS33で入力バッファ56にデータが存在するとき、ステップS34で、データ転送実行する。具体的には、図5に示したデバイスドライバ層4の判定部59は、レジスタ値C23に基づいてデータの転送を判定して、転送信号C27をコマンド生成部65に供給する。コマンド生成部65は、コマンドを生成してスイッチSW5に供給する。スイッチSW5は、コマンドに基づいて所定のタイミングでデータ転送を実行する。
【0066】
ステップS32でIEEE1394デバイスが送信を許可していないとき、ステップS35で、20msecタイマーを作動する。具体的には、図5に示したデバイスドライバ層4の20msecタイマ60により20msecを計時する。
【0067】
ステップS36で、20msecタイマ60による計時が行われている間は20msec分のデータを入力バッファ56から破棄する。具体的には、図5に示したデバイスドライバ層4の判定部59はレジスタ値C23に基づいてデータの廃棄を判定して、廃棄命令C26をスイッチSW1に供給する。スイッチSW1は廃棄命令C26によりIEEE1394I/F部6へデータが送られないようにデータの廃棄を行う。また、判定部59はレジスタ値C23に基づいてデータの廃棄を判定して、廃棄命令C26を2重バッファ62、63に供給する。2重バッファ62、63は廃棄命令C26が与えられた場合にはバッファ内に蓄えられたデータの廃棄を行う。
【0068】
ステップS33でデータが存在しないとき、ステップS37で、IEEE1394オーディオデバイスにPCがオフラインになったと報告する。具体的には、図5に示したデバイスドライバ層4のoPCR64のオフラインを示すレジスタ値C23を書き換える。
【0069】
上述したように、図8におけるステップS22でIEEE1394デバイスが送信を許可していないとき、ステップS26でオーディオデータをオーディオ転送時間軸に従って破棄するように処理する。また、図9におけるステップS32でIEEE1394デバイスが送信を許可していないとき、ステップS36でオーディオデータをオーディオ転送時間軸に従って破棄するように処理する。
【0070】
このようにすることで、オーディオデータの転送中にデータ転送が可能になった際には、時間軸に沿ってデータを破棄しているので、時間軸に沿った正常なデータ転送を可能とすることができる。
【0071】
この場合、上述したように、パーソナルコンピュータ(PC)内で利用できるタイマーもしくは、データ転送完了割り込みを利用することにより上述したデータの破棄を実行することができる。
【0072】
また、パーソナルコンピュータ(PC)内のタイマーを利用する場合、時間軸に沿ってタイマー割り込みが発生するので、設定した時間分のデータを破棄する。
【0073】
これにより、オーディオデータをオーディオ転送時間軸に従って破棄するので、正常なデータの破棄をすることができる。
【0074】
また、データ転送割り込みを利用する場合に、ブロードキャスト転送を利用してデータの転送を行う。IEEE1394オーディオデータ転送は、一定の間隔でのみデータの転送が可能なので、一定の時間軸でデータ転送を行うことができる。
【0075】
これにより、データ転送完了を示すソフトウエア割り込み時に一定間隔で転送できる分のデータを破棄することができる。ただし、ブロードキャスト転送を利用しているので、使用中のチャンネルが他のデバイスにより奪われる場合が存在する。その場合、奪われたチャンネルとは違う他のチャンネルに回避する必要がある。
【0076】
また、上述したように、図8におけるステップS23で入力バッファ内に送信するデータが存在しないとき、ステップS27でIEEE1394オーディオデバイスにパーソナルコンピュータ(PC)がオフラインになったと報告するように処理する。また、図9におけるステップS33で入力バッファ内に送信するデータが存在しないとき、ステップS37でIEEE1394オーディオデバイスにパーソナルコンピュータ(PC)がオフラインになったと報告するように処理する。
【0077】
このように、IEEE1394オーディオデバイスには、互いにデバイスの状態を伝える機構が存在する。この機構を利用して、パーソナルコンピュータ(PC)側に転送すべきサウンドデータが存在しないときには、パーソナルコンピュータ(PC)はオフラインになったと報告する。
【0078】
これにより、IEEE1394オーディオデバイスが転送要求を行ったとしても、パーソナルコンピュータ(PC)側からは無駄なタスクを負うことなく、IEEE1394オーディオデバイスは転送要求に対するパーソナルコンピュータ(PC)の動作に異常という判断をせず、正常動作として要求に応えたとして処理する。
【0079】
次に、上述したように、図8におけるステップS24でデータ転送の実行をする場合、また、図9におけるステップS34でデータ転送の実行をする場合について説明する。
【0080】
図5に示すデバイスドライバ層4がOS51から受け取る転送データは、C22のように、非同期可変長ブロック形式になっている。内部にクロックを持つオーディオデバイスなどの場合、転送時はOS51が用意したブロックずつ転送するのが一般的だが、IEEE1394オーディオデバイスであるオーディオ装置9への転送は固定ブロック長での転送を行うほうが、転送レート計算上効率が良い。そのため、デバイスドライバ4上にFIFO(Fast In Fast Out)メモリ領域の入力バッファ56を作成し、一旦OS51から送られてくるデータを保存する。
【0081】
図10は、転送データ要求時の転送を示す図である。
図10において、OS51から入力されるデータについて、PCから受け取る転送データブロック101からなる8ブロック分のデータ転送102を行うことにより、PC側FIFOメモリ103に1ブロックに集結されて保存される。
【0082】
図11は、IEEE1394バス上へのデータ転送を示す図である。
図11において、PC側FIFIOメモリ111に1ブロックに集結されて保存されたデータは、35280バイトづつ転送112を行うことにより、IEEE1394オーディオ装置113に転送される。
【0083】
以下に、転送レートの計算について説明する。
CD音質を満たすものである16ビット(bit)、2チャンネル(CH)、44.2KHzのサンプリングレートの場合での1秒間に必要なデータ(Byte)は、以下の数1式に示すようになる。
【0084】
【数1】
2(16bit=2Byte)×2(ch)×44100(サンプリングレート)=176400Byte
【0085】
オーディオデータはアイソクロナス転送を使用するので、転送するタイミングは0.125msであり、故に1秒間に転送できる回数は1÷0.000125=8000となる。よって1秒間に8000回の転送タイミングが存在する。そのため、最低一回の転送で行わなければならない転送は176400÷8000=22.05Byteとなり、以下の数2式となるので、1回の転送で5サンプルまたは6サンプルのデータ転送が必要になる。
【0086】
【数2】
22.05÷(2(16bit)×2(ch))=5.5125
【0087】
5.5125の倍数が整数になるように80を乗ずると、5.5125×80=441ゆえに441サンプル(10ms)で1回のサイクルを作成することができる。このとき5サンプルと6サンプルができる限り均等に存在するようにするには、以下の数3式となる。
【0088】
【数3】
441÷(5+6)=約40より、(39×5)+(41×6)=441
【0089】
このため、このサンプル数をできる限り均等に転送するには6サンプルをA,5サンプルをBとすると以下の数4式を1サイクルとすれば最適な転送となる。
【0090】
【数4】
ABABABABABABABABABABABABABABABABABABABAA
BABABABABABABABABABABABABABABABABABABABA
【0091】
図12は、入力デバイス切り替え、転送許可、電源オン、オフを示す図である。
図12において、IEEE1394オーディオ装置122からパーソナルコンピュータ121へ入力デバイス切り替え命令C121が供給されて、パーソナルコンピュータ121からIEEE1394オーディオ装置122へ受信完了通知C122が供給される。この受信完了通知C122後に、IEEE1394オーディオ装置122に対してパーソナルコンピュータ121が電源オフであることを通知しない場合、IEEE1394オーディオ装置122に対してオーディオデータを送信する必要がある。
【0092】
そのため、◎で示す時点までに転送可の場合はパーソナルコンピュータ121からIEEE1394オーディオ装置122へオーディオデータ転送、転送不可の場合はパーソナルコンピュータ121自身のオンライン、オフラインを示す図5に示すoPCR59のレジスタ値を変更しなければならない。
【0093】
PCRはプラグの概念を実体化したレジスタで、IEEE1394のCSR(Channel Status Register)アーキテクチャ準拠(ISO/IEC−13213)のアドレス空間にマッピングされる。1つのプラグに対して1つのPCRが存在する。PCRには、出力プラグを表すoPCR(Output Plug Control Register)と、入力プラグを表すiPCR(Intput Plug Control Register)と、また機器固有の、出力プラグ、入力プラグの情報を表すoMPR(Output Master Plug Register)と、iMPR(IntputMaster Plug Register)がある。
【0094】
oPCRとiPCRは、機器のプラグ数に応じて、それぞれ最小10個から最大31個まで持つことができる。oPCRを持つ場合は1個のoMPRを、iPCRを持つ場合は1個のiMPRを、機器に持たなければならない。各種PCRはそれぞれ32ビットレジスタで、その内部は細かいフィールドに分けられている。
【0095】
図13は、オンライン、オフライン状態、転送可、不可状態を示すレジスタoPCR(ffff f000 0904h〜ffff f000 097Ch)を示す図である。
【0096】
図13おいて、オンライン(Online)131は、IEEE1394オーディオ装置に対して電源がオンまたはオフを宣言するレジスタであり、”0”はオフ、”1”はオンを示す。オンライン(Online)131は、デバイスドライバ4のみ書き換えを行うことができる。オンラインのプラグは、信号系路の接続を示すコネクションが張られても、アイソクロナスデータ伝送ができない状態であることを意味する。どちらの状態でも、コネクションを張ることは可能である。実際にアイソクロナスデータの入力または出力を行うのは、オンラインかつコネクションが張られているアクティブ状態のプラグである。
【0097】
ブロードキャストコネクションカウンタ(Broadcast connection counter)132は、ブロードキャスト転送のためのコネクションがあるか否かを示すカウンタであり、”0”はコネクション無し、”1”はコネクション有りを示す。ブロードキャストコネクションカウンタ(Broadcast connection counter)132は、デバイスドライバ4およびIEEE1394オーディオ装置側双方から書き換えを行うことができる。ブロードキャストコネクションは、出力プラグと入力プラグの対の指定をせずに、出力プラグとアイソクロナスチャンネルの接続、または、入力プラグとアイソクロナスチャンネルの接続を行う。
【0098】
ポイントツーポイントコネクションカウンタ(Point−to−pointconnection counter)133は、IEEE1394オーディオ装置が送信許可状態か否かを判断できるレジスタであり、”0〜3f”はポイントツーポイントコネクションの数を示す。この値が1以上のとき、IEEE1394オーディオ装置がデータの転送許可を出していることになる。ポイントツーポイントコネクションカウンタ(Point−to−point connection counter)133は、IEEE1394オーディオ装置側から書き換えを行うことができる。ポイントツーポイントコネクションは、出力プラグから1つのアイソクロナスチャンネルを経由して入力プラグにつながって信号経路を形成する。
【0099】
リザーブ(reserved)134は、リザーブカウンタである。リザーブ(reserved)134は、デバイスドライバ4およびIEEE1394オーディオ装置側双方から書き換えを行うことができる。
【0100】
チャンネルナンバー(Channel number)135は、使用されるチャンネル番号を示すカウンタである。”0〜3f”は、アイソクロナス転送に使用されるチャンネル番号を示す。
【0101】
データレート(Data rate)136は、アイソクロナス転送に使用される転送レートを示すカウンタであり、”00h”はS100、”01h”はS200、”02h”はS400である。
【0102】
オーバーヘッドID(Overhead ID)137は、通信オーバーヘッドを指定するレジスタである。
【0103】
ペイロード(Payload)138は、データサイズを示すカウンタであり、”0〜3ff”は、バイト数=payload×4で示すクワドレッドサイズを示す。
【0104】
図14は、オーバーヘッドIDを示す図である。
図14において、オーバーヘッドID141が0000hのとき、IEEE1394バンドワイドアロケーションユニット142は512であり、オーバーヘッドID141が0001hのとき、IEEE1394バンドワイドアロケーションユニット142は32であり、オーバーヘッドID141が0010hのとき、IEEE1394バンドワイドアロケーションユニット142は64であり、オーバーヘッドID141が0011hのとき、IEEE1394バンドワイドアロケーションユニット142は96であり、オーバーヘッドID141が0100hのとき、IEEE1394バンドワイドアロケーションユニット142は128であり、オーバーヘッドID141が0101hのとき、IEEE1394バンドワイドアロケーションユニット142は160であり、オーバーヘッドID141が0110hのとき、IEEE1394バンドワイドアロケーションユニット142は192であり、オーバーヘッドID141が0111hのとき、IEEE1394バンドワイドアロケーションユニット142は224である。
【0105】
また、図14において、オーバーヘッドID143が1000hのとき、IEEE1394バンドワイドアロケーションユニット144は256であり、オーバーヘッドID143が1001hのとき、IEEE1394バンドワイドアロケーションユニット144は288であり、オーバーヘッドID143が1010hのとき、IEEE1394バンドワイドアロケーションユニット144は320であり、オーバーヘッドID143が1011hのとき、IEEE1394バンドワイドアロケーションユニット144は352であり、オーバーヘッドID143が1100hのとき、IEEE1394バンドワイドアロケーションユニット144は384であり、オーバーヘッドID143が1101hのとき、IEEE1394バンドワイドアロケーションユニット144は416であり、オーバーヘッドID143が1110hのとき、IEEE1394バンドワイドアロケーションユニット144は448であり、オーバーヘッドID143が1111hのとき、IEEE1394バンドワイドアロケーションユニット144は480である。
【0106】
以下に、PCRの変更を示す。
その機器自身のPCR、IEEE1394インターフェースを経由して接続された機器のPCR、ともにコンペアーアンドスワップ(compare andswap)のロックトランザクション(lock transaction)で値の変更を行う。PCRの値を変更するときは以下の条件に従う。
【0107】
また、oPCRがコネクションを張られている間は、IEEE1394のアイソクロナスリソースであるチャンネルと帯域が確保されていなければならない。
【0108】
また、oPCRのチャンネルナンバー(Channel number)135と、データレート(Data rate)136は、コネクションが張られているときは変更してはいけない。
【0109】
また、ブロードキャストコネクションは、そのプラグを持つ機器のみ張ることができる。
【0110】
また、出力プラグにコネクションを張るときは、データレート(Data rate)136、オーバーヘッドID(Overhead ID)137、oPCRのチャンネルナンバー(Channel number)135、ブロードキャストコネクションカウンタ(Broadcast connection counter)132、ポイントツーポイントコネクションカウンタ(Point−to−point connection counter)133は、同一のコンペアーアンドスワップ(compare and swap)のロックトランザクション(lock transaction)で値の変更を行う。
【0111】
図15は、IEEE1394オーディオデバイスが、PCに対して送信許可を出したパケット例(Lock Request Transaction)を示す図である。
【0112】
図15Aはパケットを示し、図15Aにおいて、Byte8のRaw Packet”F0000904””はoPCRの書き込み151を示し、Byte20のRaw Packet”803F7C12”の値”0”152を、Byte24のRaw Packet”813E7C12”の値”1”153に書き換える。
【0113】
図15Bは、パケット内容を示す。図15Bにおいて、Destination IDは、パケット送信先のnode_IDを示す。tl(Transaction label)は、RequestパケットとResponseパケットの一対のトランザクションの一致を認識するためのラベルであり、RequestパケットのtlがResponseパケットのtlとしても使われる。
【0114】
rt(Retry code)は、BusyのAcknowledgeを受信したときのリトライ方法に関する情報である。Tcode(Transaction code)は、トランザクションパケット種別コードであり、Read/Write/Lockかquadlet/blockかrequesut/responseかを示す。
【0115】
pri(Priority)は、fair arbitrationではall0(cycle startを除く)である。Source_ID(source identifier)は、パケット送信元のnode_IDである。
【0116】
Destination_Offsetは、パケット送信先のノードのレジスタ空間上の目的アドレス48ビットを示し、oPCRのリードライトを示す。
【0117】
data_lengthは、パケットにデータペイロードがある場合はその長さ(バイト)を示す。Extende_tcodeは、lockのパケット時のみ意味を持ち、lockの種別を示す。Header_CRCは、ヘッダー情報に対するCRCである。Dataは、データペイロードである。data_CRCは、データペイロードに対するCRCである。
【0118】
図16は、PCがIEEE1394オーディオデバイスの送信許可パケットに対して返答した例(Lock Request Transaction)を示す図である。図16Aはパケットを示し、図16Bはパケット内容を示す。
【0119】
次に、ロックトランザクションの仕組みを説明する。
ロックトランザクション(lock transaction)は、書き込みのパラメータとして、arg_value、data_value、old_valueという3種類の値を利用し、oPCRの書き換えにはコンペアーアンドスワップ(compare and swap)という書き込み方法を用いる。書き込みのシーケンスは次のようになる。
【0120】
第1に、requester(オーディオ装置)は、書き込もうとするレジスタの現在値をarg_value、書き込みたい値をdata_valueに指定したrequestパケットを作り、それをresponder(パーソナルコンピュータ(PC))へ送信する。
【0121】
第2に、responder(パーソナルコンピュータ(PC))は、受信したrequestパケットのarg_valueと、レジスタの現在値を比較して、等しければレジスタの値をdata_valueに変更し、等しくなければ変更しない。その後requestパケットを受信した時点でのレジスタの値をold_valueとしたresponseパケットを作り、それをrequester(オーディオ装置)へ送信する。
【0122】
第3に、requester(オーディオ装置)は、受信したresponseパケットのold_valueと、自分が送信したarg_valueとを比較して、値が等しければ書き込みが成功したと判断し、等しくなければ書き込みは失敗したと判断する。
【0123】
図17は、入力ソースを変更する命令の例に用いるデータ部を含むアイソクロナスパケットを示す図である。
まず、図17Aに示すアイソクロナスヘッダー171−1について説明する。
レングス(Length)172−1は、データ長を示し、データ長はデータフィールド171−3のCIPヘッダー部173−1とIEC958オーディオデータ部173−2とからなる。CIPヘッダー173−1とは、ヘッダー(Header)CRC171−2とデータ(Data(Sample1))とに挟まれた部分を示し、IEC958オーディオデータ173−2とは、データ(Data(Sample1))からデータ(Data(Sample5))の部分を示す。最後にデータCRC171−4が付加される。
【0124】
Tag(isochronous data format tag)172−2は、Isochronousパケットフォーマットを示すものである。Channel172−3は、パケットの識別に使用するチャンネルを示すものである。tCode(Transaction code)172−4は、パケットの種別を示すコード(アイソクロナスはAh)である。sy(synchronization code)172−5は、送信ノードと受信ノードの間で映像や音声などの同期情報をやりとりするために使われる。
【0125】
図17Bに示すCIPヘッダーにおいて、SID174−1は、パケットを送信しているノードIDである。DBS174−2は、分割された1データブロックサイズである。FN174−3は、1ソースパケットのデータブロックサイズへの分割数である。QPC174−4は、分割するために付加されたクアドレット数である。SPH174−5は、ソースパケットヘッダーが付加(=1)されているかどうかを示すものである。DBC174−6は、データブロックの連続カウンタであり、パケットの欠落などの検出などに使用する。FMT174−7は、パケットがどんなフォーマットかを示す領域である。FDF174−8は、Basic Format for AM824であることを示すものである。SYT174−9は、送受信間でのデータの同期を行うために、同期に用いるための時間情報を挿入するフィールドであり、時間の単位としてはサイクルカウンタを基準とする。
【0126】
図18は、パーソナルコンピュータ(PC)からオーディオ装置へ送る入力ソースを変更する命令のデータ部の詳細を示すものである。このデータ部は上述した図17Bに示したIEC958オーディオデータ173−2が対応する。
図18において、ゼロ(ZERO)181、プリアンブル(Preamble)182が設けられる。その後に、設けられるパリティ(Parity)183は、5ビット目から32ビット目までを足した値が偶数のとき0、奇数のとき1となる。
【0127】
チャンネル(Channel)184は、192サンプルで表すデータで、1bit×192Packet=24byteのパケット特性を表す。ユーザー(User)185は、同じサブフレーム内にデータチャンネルが作成されたとき1、されないとき0となる。
【0128】
バァリディティ(Varidate)186は、データAux有効(24ビットデータフィールド)のとき0、データAux無効(20ビットデータフィールド)のとき1となる。
【0129】
なお、上述したデータ転送は、IEE1394規格に準拠した通信方法を例として説明したが、これに限られるものではなく、他の通信方法を用いても良い。
【0130】
【発明の効果】
この発明のデータ通信装置は、時間的に連続して再生されるデータが一時的に保存されるバッファ手段と、上記バッファ手段から所定時間ごとにデータを読み出すためのタイマー手段と、ネットワークを通して他の装置とデータの入出力を行うための通信手段と、上記通信手段を通して上記他の装置から保持されたデータの書換が可能なデータ保持手段と、上記データ保持手段を通して保持されたデータが所定値であるか否かを判定する判定手段と、上記判定手段によって上記データ保持手段に保持されたデータが所定値と判定された場合には、上記タイマー手段によって計時される時間ごとに上記バッファ手段に保持された所定量の上記時間的に連続して再生されるデータを削除する制御手段とを備えるので、他の装置にオーディオ装置として認識させたとき、オーディオデータを他の装置が送信許可を与えていないために受信できないときに、オーディオデータを破棄したり、データの転送を行えるように処理を行うことにより、データの送信を行わなければならない際に、正常にデータ転送を行ったとものとすることができるという効果を奏する。
【0131】
また、この発明のデータ通信装置は、上述において、上記制御手段は、上記判定手段によって上記データ保持手段に保持されたデータが所定値でないと判定された場合には、上記タイマー手段によって計時される時間ごとに上記バッファ手段に保持された所定量の上記時間的に連続して再生されるデータがネットワークを通して他の装置に送信されるように上記通信手段を制御するので、他の装置がオーディオデータの送信を許可しているときの処理を行うことにより、他の装置がオーディオ装置として認識しているとき、他の装置がオーディオデータの送信を許可しているときにオーディオデータの送信処理を行うことができるという効果を奏する。
【0132】
また、この発明のデータ通信方法は、ネットワークを通して他の装置から書き換えられるデータ保持手段からデータを所定時間ごとに読み出す読み出しステップと、上記読み出されるデータが所定値であるか否かを判定する判定ステップと、上記読み出されたデータが所定値であると判定された場合には、時間的に連続して再生されるストリームデータが保持されたバッファ手段から所定量の上記ストリームデータを削除する制御ステップとを備えるので、他の装置にオーディオ装置として認識させたとき、オーディオデータを他の装置が送信許可を与えていないために受信できないときに、オーディオデータを破棄したり、データの転送を行えるように処理を行うことにより、データの送信を行わなければならない際に、正常にデータ転送を行ったとものとして処理することができるという効果を奏する。
【0133】
また、この発明のデータ通信方法は、上述において、上記読み出されたデータが所定値でないと判定された場合には、バッファ手段から所定量の上記ストリームデータを読み出す読み出しステップと、上記読み出された所定量のストリームデータをネットワークを通して他の装置へ送信する送信ステップとを更に備えるので、他の装置がオーディオデータの送信を許可しているときの処理を行うことにより、他の装置がオーディオ装置として認識しているとき、他の装置がオーディオデータの送信を許可しているときにオーディオデータの送信処理を行うことができるという効果を奏する。
【0134】
また、この発明のデータ通信方法は、上述において、上記読み出されたデータが所定値から所定値でない状態に変化した場合には、上記バッファ手段から読み出されるストリームデータを送信するよりも前に所定時間の無音を示すデータを送信するので、他の装置がオーディオデータの送信を許可しているときの処理を行うことにより、他の装置がオーディオ装置として認識しているとき、他の装置がオーディオデータの送信を許可しているときにオーディオデータの送信処理を行う際に、無音を最初に付加することができるという効果を奏する。
【0135】
また、この発明のデータ通信方法は、上述において、上記時間的に連続して再生されるストリームデータは、オーディオデータ及び/またはビデオデータであるので、他の装置にオーディオ装置として認識させたとき、オーディオデータ及び/またはビデオデータを他の装置が送信許可を与えていないために受信できないときに、オーディオデータ及び/またはビデオデータを破棄したり、データの転送を行えるように処理を行うことにより、データの送信を行わなければならない際に、正常にデータ転送を行ったとものとして処理することができるという効果を奏する。
【図面の簡単な説明】
【図1】本実施の形態に適用されるデータ送信システムの構成を示す図である。
【図2】デバイスドライバ層の詳細を示すブロック図である。
【図3】データの破棄またはデータ転送を示す図である。
【図4】データ送信のタイミングを示す図である。
【図5】データの破棄または転送の制御を示す図である。
【図6】データ転送開始命令部の動作を示すフローチャートである。
【図7】OSへのデータ要求部分の動作を示すフローチャートである。
【図8】PC側からデータ要求があったときまたはデータ転送完了ソフトウエア割り込み時の処理を示すフローチャートである。
【図9】タイマーソフトウエア割り込み時の処理を示すフローチャートである。
【図10】データ転送要求時の転送を示す図である。
【図11】IEEE1394バス上へのデータ転送を示す図である。
【図12】入力デバイス切り替え、転送許可、電源オン、オフを示す図である。
【図13】オンライン、オフライン状態、転送可、不可状態を示すレジスタoPCR(ffff f000 0904h〜ffff f000 097Ch)を示す図である。
【図14】オーバーヘッドIDを示す図である。
【図15】IEEE1394オーディオデバイスが、PCに対して送信許可を出したパケット例(Lock Request Transaction)を示す図であり、図15Aはパケットを示し、図15Bはパケット内容を示す。
【図16】PCがIEEE1394オーディオデバイスの送信許可パケットに対して返答した例(Lock Request Transaction)を示す図であり、図16Aはパケットを示し、図16Bはパケット内容を示す。
【図17】入力ソースを変更する命令の例に用いるデータ部を含むアイソクロナスパケットを示す図であり、図17Aはアイソクロナスパケットフォーマット、図17BはCIPヘッダーフォーマットである。
【図18】パーソナルコンピュータ(PC)からオーディオ装置へ送る入力ソースを変更する命令のデータ部の詳細を示すものである。
【符号の説明】
1……パーソナルコンピュータ(PC)、2……パーソナルコンピュータ上で動作するソフトウエア、3……アプリケーション層、4……デバイスドライバ層、5……オーディオデバイスコントロール処理部、6……IEEE1394インターフェース部、7……デバイスI/Oコントロール処理部、8……タイマー処理部、9……オーディオ装置、10……IEEE1394I/F、56……入力バッファ、58……無音生成部、59……判定部、64……oPCR、
Claims (18)
- 入力される時間的に連続したデータを所定のデータ量ごとに、ネットワークに接続された他の機器へ送信するデータ通信装置において、
入力される時間的に連続したデータが一時的に保持されるバッファ手段と、
上記バッファ手段から所定時間ごとにデータを読み出すためのタイマー手段と、
上記ネットワークを通して上記他の装置とデータの入出力を行うための通信手段と、
保持されたデータを上記通信手段を通して上記他の装置から書換が可能なデータ保持手段と、
上記データ保持手段に保持されたデータが所定値であるか否かを判定する保持値判定手段と、
上記保持値判定手段によって上記データ保持手段に保持されたデータが所定値と判定された場合には、上記タイマー手段によって計時される時間ごとに上記バッファ手段に保持された上記時間的に連続したデータの所定量を削除する制御手段と
を備えるデータ通信装置。 - 上記タイマー手段は、20msecを計測周期とし、
上記削除されるデータは、上記連続したデータの20msecに相当するデータ量である請求項1記載のデータ通信装置。 - 上記制御手段は、上記保持値判定手段によって上記データ保持手段に保持されたデータが所定値とは異なる第2の所定値であると判定された場合には、上記タイマー手段によって計時される時間ごとに上記バッファ手段に保持された上記時間的に連続したデータの所定量が上記ネットワークを通して他の装置に送信されるように上記通信手段を制御する
請求項1記載のデータ通信装置。 - 上記時間的に連続したデータはオーディオデータである請求項1記載のデータ通信装置。
- 上記接続されるネットワークは、IEEE1394に規定されるネットワークである請求項1記載のデータ通信装置。
- 上記データ通信装置は、上記時間的に連続したデータに置き換えられる無音データを生成する無音データ生成手段を更に備え、
上記制御手段は、上記時間的に連続したデータの送信に先立って、上記無音データ生成手段から生成される無音データを所定時間の間上記ネットワークによって接続される上記他の装置へ送信する請求項1記載のデータ通信装置。 - 上記データ通信装置は、上記バッファ手段に蓄えられた上記時間的に連続するデータの蓄積量を判定する蓄積量判定手段を更に備え、
上記制御手段は、上記蓄積量判定手段の判定結果に基づいて上記保持値判定手段の判定結果を評価する請求項1記載のデータ通信装置。 - 上記データ通信装置は、パーソナルコンピュータから入力される時間的に連続するデータと送信要求とに基づいてデータの送信を行う請求項1記載のデータ通信装置。
- バッファ手段に入力される時間的に連続したデータを所定のデータ量ごとに、ネットワークに接続された他の機器へ送信するデータ通信方法において、
保持されたデータを上記ネットワークを通して上記他の装置から書換が可能なデータ保持手段からデータを読み出す読み出しステップと、
上記読み出されるデータが所定値であるか否かを判定する判定ステップと、
上記読み出されたデータが所定値であると判定された場合には、時間的に連続したデータが入力されて保持されるバッファ手段から上記時間的に連続するデータを所定時間ごとに所定量削除する制御ステップと
を備えるデータ通信方法。 - 上記データの削除をする所定時間は、20msecを周期とする請求項9記載のデータ通信方法。
- 上記削除されるデータは、上記連続したデータの20msecに相当するデータ量である請求項10記載のデータ通信方法。
- 上記データ保持手段から読み出されるデータが所定値とは異なっていた場合には、時間的に連続したデータが入力されて保持されるバッファ手段から上記時間的に連続するデータを所定時間ごとに所定量上記ネットワークを通して他の装置へ送信する送信ステップと
を更に備える請求項9記載のデータ通信方法。 - 上記時間的に連続したデータの送信に先立って、上記無音データ生成手段から生成される無音データを所定時間の間上記ネットワークによって接続される他の装置へ送信する
請求項12記載のデータ通信方法。 - 上記時間的に連続したデータはオーディオデータである請求項9記載のデータ通信方法。
- 上記接続されるネットワークは、IEEE1394に規定されるネットワークである請求項9記載のデータ通信方法。
- 上記保持手段からデータを読み出すのは、上記バッファ手段に蓄えられた上記時間的に連続するデータの蓄積量が所定量を超えたときである請求項9記載のデータ通信方法。
- 上記データ通信方法は、パーソナルコンピュータから入力される時間的に連続するデータと送信要求とに基づいてデータの送信を行う請求項9記載のデータ通信方法。
- 上記時間的に連続したデータは映像データである請求項9記載のデータ通信方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002108379A JP3603875B2 (ja) | 2001-04-25 | 2002-04-10 | データ通信装置およびデータ通信方法 |
US10/127,620 US7130906B2 (en) | 2001-04-25 | 2002-04-22 | Data communicating device and data communicating method |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001128039 | 2001-04-25 | ||
JP2001-128039 | 2001-04-25 | ||
JP2002108379A JP3603875B2 (ja) | 2001-04-25 | 2002-04-10 | データ通信装置およびデータ通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003018222A JP2003018222A (ja) | 2003-01-17 |
JP3603875B2 true JP3603875B2 (ja) | 2004-12-22 |
Family
ID=26614211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002108379A Expired - Fee Related JP3603875B2 (ja) | 2001-04-25 | 2002-04-10 | データ通信装置およびデータ通信方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7130906B2 (ja) |
JP (1) | JP3603875B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3491632B2 (ja) * | 2002-03-19 | 2004-01-26 | ソニー株式会社 | 受信装置、受信方法 |
FR2897228A1 (fr) * | 2006-02-08 | 2007-08-10 | Thomson Licensing Sas | Methode de transmission d'informations temporelles a latence fixe |
GB2510556A (en) * | 2012-12-12 | 2014-08-13 | Microsoft Corp | Aggregating data prior to transmission using timer events |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933430A (en) * | 1995-08-12 | 1999-08-03 | Sony Corporation | Data communication method |
US6219728B1 (en) * | 1996-04-22 | 2001-04-17 | Nortel Networks Limited | Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor |
EP0804033A3 (en) * | 1996-04-26 | 2003-12-10 | Texas Instruments Incorporated | Improvements in or relating to electronic devices |
JPH10145753A (ja) * | 1996-11-15 | 1998-05-29 | Sony Corp | 受信装置および方法 |
JP3340639B2 (ja) * | 1997-01-29 | 2002-11-05 | 株式会社日立製作所 | 映像データの記録再生方法とその装置 |
KR100607215B1 (ko) * | 1998-05-07 | 2006-08-01 | 삼성전자주식회사 | 네트워크에서 사용자와 디바이스 명령 및 제어 방법 및 장치 |
US6505255B1 (en) * | 1999-04-29 | 2003-01-07 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | Method for formatting and routing data between an external network and an internal network |
JP4147689B2 (ja) * | 1999-06-14 | 2008-09-10 | ソニー株式会社 | 情報処理装置及び情報処理方法 |
JP2001016246A (ja) * | 1999-06-30 | 2001-01-19 | Sony Corp | 通信制御装置および方法、通信システム、並びに記録媒体 |
JP2001077831A (ja) * | 1999-09-08 | 2001-03-23 | Sony Corp | 通信制御装置および方法、通信システム、並びにプログラム格納媒体 |
US6961347B1 (en) * | 2000-06-20 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | High-speed interconnection link having automated lane reordering |
US6868451B1 (en) * | 2000-06-20 | 2005-03-15 | Palm Source, Inc. | Data exchange between a handheld device and another computer system using an exchange manager via synchronization |
-
2002
- 2002-04-10 JP JP2002108379A patent/JP3603875B2/ja not_active Expired - Fee Related
- 2002-04-22 US US10/127,620 patent/US7130906B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20020168042A1 (en) | 2002-11-14 |
US7130906B2 (en) | 2006-10-31 |
JP2003018222A (ja) | 2003-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4155413B2 (ja) | アプリケーションとバス間の非同期データ転送を自動的に管理する非同期データパイプ | |
JP2002016655A (ja) | 伝送方法、伝送システム、伝送装置及び伝送制御装置 | |
JP2002009864A (ja) | 制御方法及び通信装置 | |
US20030066083A1 (en) | Electronic equipment, method of receiving data, method of transmitting data, method of setting channel and method of grouping electronic equipment into channels | |
US6493769B1 (en) | Stream information processing and method and providing medium | |
US8694671B2 (en) | Isochronous transmission of audio data using mute data | |
JP4019481B2 (ja) | 情報処理装置および方法、情報処理システム、並びに提供媒体 | |
EP1156423A2 (en) | Information processing apparatus, information processing method and bridge utilizing the same | |
JP3603875B2 (ja) | データ通信装置およびデータ通信方法 | |
JP3785747B2 (ja) | シリアルインタフェース回路およびその信号処理方法 | |
US20010024445A1 (en) | Communication system, communication device and communication method | |
JP2002051055A (ja) | 通信制御方法、通信システム及び通信装置 | |
KR100673802B1 (ko) | 전송 방법, 전송 시스템 및 전송기 | |
US6694198B2 (en) | Control system, control device and control method | |
US7227846B2 (en) | Data transmission/ reception system, connection restoring method and information transmission/ reception apparatus | |
KR20020008033A (ko) | 정보 처리 장치 및 방법, 매체 | |
EP1061692A2 (en) | Controlling device, communication system and controlling method | |
JP2000187934A (ja) | 情報処理装置および方法、並びに媒体 | |
EP1182827A2 (en) | Information control method, information processing apparatus, and information control system | |
JP3676618B2 (ja) | パケット転送装置、及びデータ記録媒体 | |
US20020073169A1 (en) | Information processing apparatus, information processing system and method thereof | |
JP2002218007A (ja) | 伝送チェック方法及び伝送チェック装置 | |
EP1098494A1 (en) | Communication method, communication system and electronic device | |
JP2001326669A (ja) | ディジタルシリアルデータのインタフェース装置およびそれを利用したブリッジポータル | |
JP2002051054A (ja) | 通信制御方法、通信システム及び通信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040901 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040907 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040920 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091008 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091008 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101008 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111008 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121008 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121008 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131008 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |