(57)【特許請求の範囲】
【請求項１】
複数のオーディオ処理デバイスと、
該複数のオーディオ処理デバイスが接続されているバスと、
該バス上に設けられていると共に、前記オーディオ処理デバイス毎に対応する異なる記憶領域が複数設定されている通信用記憶手段と、
前記オーディオ処理デバイスから前記バスへデータが出力された際に、該データの宛先の前記オーディオ処理デバイスに対応して設定されている前記通信用記憶手段の記憶領域に、前記データを出力した前記オーディオ処理デバイスから供給されたクロック信号により該データを記憶させると共に、宛先である前記オーディオ処理デバイスからの要求に応じて該オーディオ処理デバイスから供給されたクロック信号により該記憶領域から読み出したデータを、宛先である前記オーディオ処理デバイスに送信するようにするバス制御手段と、
を備えていることを特徴とするバスシステム。
【請求項２】
前記バス制御手段は、前記オーディオ処理デバイスのいずれかからデータを送信する通信要求信号を前記バスを介して検出した際に、該オーディオ処理デバイスに前記バスを介して通信許可を与え、
該通信許可が与えられた前記オーディオ処理デバイスは、前記データおよび前記クロック信号を前記バスに出力し、
前記バス制御手段は、前記オーディオ処理デバイスから前記バスへ出力されたデータを、該データのヘッダにおける宛先情報で示される前記オーディオ処理デバイスに対応して設定されている前記通信用記憶手段の記憶領域に、前記オーディオ処理デバイスから前記バスへ出力されたクロック信号により記憶させるように制御していることを特徴とする請求項１記載のバスシステム。
【請求項３】
前記バス制御手段は、前記オーディオ処理デバイスのいずれかからデータを受信する通信要求信号を前記バスを介して検出した際に、該オーディオ処理デバイスに前記バスを介して通信許可を与え、
該通信許可が与えられた前記オーディオ処理デバイスは、前記クロック信号を前記バスに出力し、
前記バス制御手段は、前記通信用記憶手段の該オーディオ処理デバイスに対応して設定されている前記記憶領域に記憶されているデータを、前記オーディオ処理デバイスから前記バスへ出力されたクロック信号により読み出して、前記バスを介して該オーディオ処理デバイスに読み出したデータを送信するように制御していることを特徴とする請求項１記載のバスシステム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、ディジタルオーディオデバイス間のデータ転送を行うディジタルオーディオ用のバスシステムに関するものであり、電子楽器に内蔵されるバスシステムに適している。
【０００２】
【従来の技術】
従来の電子楽器において、ＣＰＵ（Central Processing Unit）が接続されているＣＰＵバスだけを有している電子楽器においては、鍵盤における各鍵の操作を検出する鍵盤スイッチや音色設定等の各種設定を行うパネルスイッチ等のパネル操作子は、ＣＰＵバスに接続されている。そして、ＣＰＵバスを介して鍵盤スイッチやパネル操作子の操作情報をＣＰＵが取り込んで、取り込まれた操作情報に基づく音源パラメータを生成し、発音タイミングに対応させてその音源パラメータを音源に転送することにより発音するようにしている。
【０００３】
また、従来の電子楽器において、ＣＰＵを備えている複数のデバイスから構成される電子楽器も知られている。このように複数のデバイスを備えている電子楽器においては、複数のデバイスで機能を分担するようにしている。例えば、鍵盤デバイスは、鍵盤スイッチのスキャンを行い各鍵の操作情報を検出して出力するようにしており、パネルデバイスは、パネル操作子のスキャンを行い各パネル操作子の操作情報を検出して出力したり、パネル表示器の表示制御等を行っている。また、音源デバイスは、鍵盤デバイスから鍵盤の操作情報を、パネルデバイスからパネル操作子の操作情報を受けて、該操作情報に基づいて生成された音源パラメータに基づいて、楽音を生成して出力している。なお、音源パラメータの生成や、発音タイミングに対応させてその音源パラメータを音源デバイスに転送する処理はメインＣＰＵが行っている。この場合、鍵盤デバイスおよびパネルデバイス、音源デバイス間はそれぞれ独立したシリアル通信路により接続されており、このシリアル通信路を介して相互に通信を行っており、メインＣＰＵとは、別の通信路により通信を行っている。
【０００４】
【発明が解決しようとする課題】
従来のＣＰＵバスだけを備える電子楽器においては、ＣＰＵバスを介してＣＰＵの制御の基でオーディオ信号等の授受を行っている。このため、ＣＰＵの負荷が重くなると共にＣＰＵの処理速度に影響を与えるという問題点があった。
また、従来の複数のデバイスを備える電子楽器においては、各デバイスにシリアルＩ／Ｏ等を設けることによりシリアル通信路を用いて直接通信を行うことによりデータのやりとりをしている。このため、シリアル通信路で直接結線されたデバイスとだけしか通信を行うことができず、拡張性やフレキシビリティに欠けるという問題点があった。また、クロック等の同期を相互間において確立しないと通信を行うことができないという問題点もあった。
【０００５】
そこで、本発明は、拡張性やフレキシビリティを保持したまま複数のデバイス間で通信を行えるようにしたバスシステムを提供することを目的としている。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明のバスシステムは、複数のオーディオ処理デバイスと、該複数のオーディオ処理デバイスが接続されているバスと、該バス上に設けられていると共に、前記オーディオ処理デバイス毎に対応する異なる記憶領域が複数設定されている通信用記憶手段と、前記オーディオ処理デバイスから前記バスへデータが出力された際に、該データの宛先の前記オーディオ処理デバイスに対応して設定されている前記通信用記憶手段の記憶領域に、前記データを出力した前記オーディオ処理デバイスから供給されたクロック信号により該データを記憶させると共に、宛先である前記オーディオ処理デバイスからの要求に応じて該オーディオ処理デバイスから供給されたクロック信号により該記憶領域から読み出したデータを、宛先である前記オーディオ処理デバイスに送信するようにするバス制御手段とを備えている。
【０００７】
また、上記本発明のバスシステムにおいて、前記バス制御手段は、前記オーディオ処理デバイスのいずれかからデータを送信する通信要求信号を前記バスを介して検出した際に、該オーディオ処理デバイスに前記バスを介して通信許可を与え、該通信許可が与えられた前記オーディオ処理デバイスは、前記データおよび前記クロック信号を前記バスに出力し、前記バス制御手段は、前記オーディオ処理デバイスから前記バスへ出力されたデータを、該データのヘッダにおける宛先情報で示される前記オーディオ処理デバイスに対応して設定されている前記通信用記憶手段の記憶領域に、前記オーディオ処理デバイスから前記バスへ出力されたクロック信号により記憶させるように制御してもよい。
【０００８】
さらに、上記本発明のバスシステムにおいて、前記バス制御手段は、前記オーディオ処理デバイスのいずれかからデータを受信する通信要求信号を前記バスを介して検出した際に、該オーディオ処理デバイスに前記バスを介して通信許可を与え、該通信許可が与えられた前記オーディオ処理デバイスは、前記クロック信号を前記バスに出力し、前記バス制御手段は、前記通信用記憶手段の該オーディオ処理デバイスに対応して設定されている前記記憶領域に記憶されているデータを、前記オーディオ処理デバイスから前記バスへ出力されたクロック信号により読み出して、前記バスを介して該オーディオ処理デバイスに読み出したデータを送信するように制御してもよい。
【０００９】
このような本発明によれば、オーディオ処理デバイスの各々に対応する複数の前記記憶領域が設けられている通信用記憶手段が設けられているバスに、複数のオーディオ処理デバイスを接続するようにしている。これにより、オーディオ処理デバイス間において、バスおよび通信用記憶手段を介してデータの授受を行えるようになる。この場合、オーディオ処理デバイスをバスに接続するだけで他のオーディオ処理デバイスとの間においてデータ授受を行えることから、拡張性やフレキシビリティに富んだシステムとすることができるようになる。
また、オーディオ処理デバイス間においてデータの授受を行う際に、オーディオ処理デバイスから送信されたクロック信号情報のタイミングに基づいて、データ授受の処理を行うようにしたので、デバイス間の同期をとることなくオーディオ処理デバイス間においてデータの授受を行うことができる。
【００１０】
【発明の実施の形態】
本発明のバスシステムが適用されている電子楽器における実施の形態のハードウェア構成をブロック図で図１に示す。
図１に示す電子楽器において、ＣＰＵ１０は各種プログラムを実行することにより電子楽器における楽音生成の動作を制御する中央処理装置（Central Processing Unit）である。メモリシステム（MEMORY SYSTEM）１１は、ＣＰＵ１０が実行する楽音生成処理のプログラムや、各種データが格納されているＲＯＭ（Read Only Memory）と、電子楽器におけるメインメモリであり、ＣＰＵ１０のワークエリア等が設定されるＲＡＭ（Random Access Memory）から構成されるメモリシステムである。また、コントロールパネル（Control PANEL）１２は、電子楽器が発音する楽音の音色や付与する効果等の設定を行う各種スイッチと、設定状態や楽音生成の各種情報等を表示するディスプレイからなり、電子楽器のパネルに設けられている。ミュージックインタフェース（MUSIC I/F）１３は、ＭＩＤＩキーボードの演奏に基づいて作成されたＭＩＤＩデータを出力するＭＩＤＩキーボードのインターフェースである。
【００１１】
さらに、第１音源デバイス１（ＴＧ１）と第２音源デバイス２（ＴＧ２）は、発音タイミングに合わせてバス１４を介してＣＰＵ１０から転送された発音パラメータに基づいて楽音波形データを生成する音源である。なお、バス１４は、ＣＰＵ１０，メモリシステム１１，コントロールパネル１２，ミュージックインタフェース１３、第１音源デバイス１および第２音源デバイス２が接続されているＣＰＵバスである。なお、ＣＰＵ１０は、ミュージックインタフェース１３におけるＭＩＤＩキーボードやコントロールパネル１２の操作情報を取り込んで、取り込まれた操作情報に基づく音源パラメータを生成し、発音タイミングに対応させてその音源パラメータを対応する第１音源デバイス１および第２音源デバイス２をバス１４を介して転送している。
【００１２】
また、第１音源デバイス１および第２音源デバイス２において生成された複数発音チャンネルの楽音波形データは、データバス（DATA BUS）８、コントロールバス（CONTROL BUS）９およびバスコントローラ（BUS Controller）５からなる後述する本発明のバスシステムにより、ＤＳＰ（Digital Signal Processor）デバイス４に転送される。ＤＳＰデバイス４においては、各チャンネルの楽音波形データに効果（エフェクト）付与などの処理が行われ、さらに、各チャンネルの楽音波形データがミキシング処理されて、楽音データとして出力されている。ＤＳＰデバイス４から出力された楽音データは、本発明のバスシステムによりＤＡＣデバイス３に転送され、ＤＡＣデバイス３によりアナログ信号に変換され、サウンドシステムにより放音される。
【００１３】
以下に、本発明にかかるバスシステムを説明する。第１音源デバイス１、第２音源デバイス２、ＤＡＣデバイス３、ＤＳＰデバイス４とされるオーディオ処理デバイスは、コントロールバス（CONTROL BUS）９に接続されていると共に、それぞれバッファメモリであるＦＩＦＯ（First In First Out）１ａ、ＦＩＦＯ２ａ、ＦＩＦＯ３ａ、ＦＩＦＯ４ａを備えており、これらのＦＩＦＯ１ａ〜ＦＩＦＯ４ａを介してデータバス（DATA BUS）８に接続されている。バスコントローラ５は、コントロールバス９およびデータバス８上に設けられており、タイミングプロセッサ（Timing Processor）６と通信ＲＡＭ（com RAM）とを備えている。このタイミングプロセッサ６は、ポーリングにより第１音源デバイス１、第２音源デバイス２、ＤＡＣデバイス３、ＤＳＰデバイス４に通信要求があるか否かを検出している。すなわち、周期的に各オーディオ処理デバイス１〜４に通信要求があるか否かを問い合わせ、通信要求があるオーディオ処理デバイスが検出された場合は、その通信要求がデータを送出したいライト（WRITE）要求か、データを受信したいリード（READ）要求かを検出している。
【００１４】
例えば、通信要求が検出されたオーディオ処理デバイスからライト要求が検出された場合は、バスコントローラ５は当該オーディオ処理デバイスに通信許可（PERMIT）を与える。当該オーディオ処理デバイスは、通信許可を受けてＦＩＦＯからデータを読み出してデータバス８上に送出させる。データバス８上に送出されたデータは、バスコントローラ５が受信して通信ＲＡＭ７に記憶する。通信ＲＡＭ７には、第１音源デバイス１、第２音源デバイス２、ＤＡＣデバイス３、ＤＳＰデバイス４の各オーディオ処理デバイス毎に対応する異なる記憶領域が設定されており、バスコントローラ５が受信したデータは、そのデータの宛先であるオーディオ処理デバイスに対応する記憶領域に記憶されるようになる。具体的には、タイミングプロセッサ６は受信されたデータのヘッダに含まれているデータの宛先情報を参照して、宛先情報に対応する通信ＲＡＭ７の記憶領域に、そのデータが記憶されるように制御する。
【００１５】
また、通信要求が検出されたオーディオ処理デバイスからリード要求が検出された場合は、バスコントローラ５は当該オーディオ処理デバイスに通信許可（PERMIT）を与えると共に、通信ＲＡＭ７における当該オーディオ処理デバイスに対応する記憶領域に記憶されているデータを読み出して、データバス８上にデータを送出する。データバス８上に送出されたデータは、通信許可を受けた当該オーディオ処理デバイスにおけるＦＩＦＯに書き込まれる。これにより、当該オーディオ処理デバイスによりデータが受信されるようになる。
【００１６】
次に、第１音源デバイス１、第２音源デバイス２、ＤＡＣデバイス３、ＤＳＰデバイス４の各オーディオ処理デバイスの構成を図２に示す。
各オーディオ処理デバイスは、デバイス本体部分２０とタイミングジェネレータ（TIMING GENERATOR）２１を備えていると共に、データ授受用にＦＩＦＯ２２を備えている。デバイス本体部分２０は、第１音源デバイス１あるいは第２音源デバイス２の場合は楽音波形データを生成する音源部であり、ＤＡＣデバイス３の場合はディジタル・アナログ変換部であり、ＤＳＰデバイス４の場合はマイクロプログラムにより効果付与処理やミキシング処理を実行するＤＳＰ部になる。
【００１７】
タイミングジェネレータ２１は、クロック信号（CLK）を送出する端子と、通信要求信号（REQ）を送出する端子と、通信許可信号（PERMIT）を受信する端子と、リード要求（Ｒ）／ライト要求（Ｗ）を送出する端子と、デバイスアドレス信号（dvADDRESS0-3）を受信する端子とを備えている。そして、タイミングジェネレータ２１はクロック信号を生成してデバイス本体部分２０やＦＩＦＯ２２に供給すると共に、スイッチＴＳ３を介してクロック信号（CLK）をコントロールバス９に送出している。このスイッチＴＳ３は、当該オーディオ処理デバイスが通信許可を受けた際に開いて、クロック信号をコントロールバス９に送出するようになる。また、ＦＩＦＯ２２にデータが書き込まれてライト要求（Ｗ）を立ち上げる際や、ＦＩＦＯ２２に空きが生じてリード要求（Ｒ）を立ち上げる際には、通信要求信号（REQ）を立ち上げる。この通信要求信号（REQ）は、バスコントローラ５から当該オーディオ処理デバイスに対応するデバイスアドレス信号（dvADDRESS0-3）が、コントロールバス９を介してタイミングジェネレータ２１に供給された際に、３ステートバッファＴＳ２が開いてバスコントローラ５により取り込まれるようになる。
【００１８】
また、当該オーディオ処理デバイスに対応するデバイスアドレス信号（dvADDRESS0-3）が供給された際に、通信許可信号（PERMIT）が立ち上がっている場合は、当該オーディオ処理デバイスが通信許可されたことになり、スイッチＴＳ３、スイッチＴＳ４、スイッチＴＳ５が開くようになる。さらに、スイッチＴＳ１とスイッチＴＳ２とが開くようになる。これにより、クロック信号（CLK）、通信要求信号（REQ）、リード／ライト要求信号（Ｒ／Ｗ）がコントロールバス９を介してバスコントローラ５に供給されるようになる。この場合、Ｒ／Ｗが”１”とされてリード要求であった場合は、当該オーディオ処理デバイスに対応する通信ＲＡＭ７の記憶領域から読み出されてデータバス８に送出されたデータが、スイッチＴＳ１を介してＦＩＦＯ２２に書き込まれるようになる。なお、バスコントローラ５はオーディオ処理デバイスからのリード要求を受けると、要求されたデータをデータバッファ３４に転送する。そして、オーディオ処理デバイスから供給されたクロック信号（CLK）に基づいて、データバッファ３４からデータを読み出して送出している。このため、そのデータは受信したオーディオ処理デバイスにおけるクロック信号（CLK）に同期していることになり、データ同期のための手段を必要とすることなくＦＩＦＯ２２に書き込めるようになる。
【００１９】
また、Ｒ／Ｗが”０”とされてライト要求であった場合は、当該オーディオ処理デバイスのＦＩＦＯ２２に書き込まれているデータがクロック信号（CLK）に基づいて読み出されて、スイッチＴＳ２を介してデータバス８に送出される。このデータを受信したバスコントローラ５は、そのデータのヘッダを参照して宛先のオーディオ処理デバイスに対応する通信ＲＡＭ７の記憶領域に、そのデータを書き込むようにする。なお、バスコントローラ５はオーディオ処理デバイスから供給されたクロック信号（CLK）に基づいて、データをデータバッファ３４に受信する。そして、データのヘッダを参照して、データを通信ＲＡＭ７の対応記憶領域に書き込んでいる。このため、バスコントローラ５においてデータ同期のための手段を必要とすることなく、受信したデータを通信ＲＡＭ７に書き込めるようになる。
【００２０】
次に、バスコントローラ５の詳細構成を図３に示す。
図３に示すバスコントローラ５は、前述したようにタイミングプロセッサ６と通信ＲＡＭ７を備えていると共に、通信ＲＡＭ７に供給するアドレスを発生するデバイスオフセットテーブル（DEVICE OFFSET TABLE）３０、オフセットレジスタ（OFFSET REGISTER）３１、アドレスカウンタ（ADDRESS COUNTER）３２および加算器３３とを備えている。さらに、データ授受用のデータバッファ（DATA BUFFER）３４を備えている。タイミングプロセッサ６は、コントロールバス９に接続されてリード要求（Ｒ）／ライト要求（Ｗ）を受け取る端子と、クロック信号（CLK）を受け取る端子と、デバイスアドレス信号（dvADDRESS0-3）を送出する端子と、通信許可信号（PERMIT）を送出する端子と、通信要求信号（REQ）を受け取る端子とを備えている。
【００２１】
データバッファ３４がデータバス８からデータを受信した場合、データバッファ３４はデータのヘッダ情報をタイミングプロセッサ６に送る。タイミングプロセッサ６は、このヘッダ情報を解釈して当該データの宛先のオーディオ処理デバイスを選択して、そのデバイス選択信号（DEVICE SEL）をデバイスオフセットテーブル３０に供給する。同時にアドレスカウンタ３２にタイミングプロセッサ６からアドレスカウントクロック信号を供給する。デバイスオフセットテーブル３０からは、選択されたオーディオ処理デバイスに対応するオフセットアドレスが出力されて、オフセットレジスタ３１に格納される。そして、加算器３３において、オフセットレジスタ３１に格納されている選択されたオーディオ処理デバイスに対応するオフセットアドレスに、アドレスカウンタ３２からのカウント値が加算される。このアドレスは、通信ＲＡＭ７のアドレス端子（comRAM Address）に供給される。そして、タイミングプロセッサ６の管理下で、データバッファ３４から順次データが読み出されて通信ＲＡＭ７に供給される。これにより、加算器３３から供給されているアドレスで示される位置からデータバッファ３４に記憶されていたデータが書き込まれていくようになる。
【００２２】
ここで、通信ＲＡＭ（comRAM）７のメモリ構造の一例を図４に示す。通信ＲＡＭ７は、図４に示すようにオーディオ処理デバイス毎の記憶領域ＤＥＶ１，ＤＥＶ２，ＤＥＶ３，ＤＥＶ４を有している。例えば、第１音源デバイス１の記憶領域は記憶領域ＤＥＶ１とされ、第２音源デバイス２の記憶領域は記憶領域ＤＥＶ２とされ、ＤＡＣデバイス３の記憶領域は記憶領域ＤＥＶ３とされ、ＤＳＰデバイス４の記憶領域は記憶領域ＤＥＶ４とされている。そして、通信ＲＡＭ７の先頭アドレスと、記憶領域ＤＥＶ１の開始アドレス間のアドレスが記憶領域ＤＥＶ１のオフセットアドレス（OFFSET1）とされ、通信ＲＡＭ７の先頭アドレスと、記憶領域ＤＥＶ２の開始アドレス間のアドレスが記憶領域ＤＥＶ２のオフセットアドレス（OFFSET2）とされ、通信ＲＡＭ７の先頭アドレスと、記憶領域ＤＥＶ３の開始アドレス間のアドレスが記憶領域ＤＥＶ３のオフセットアドレス（OFFSET3）とされ、通信ＲＡＭ７の先頭アドレスと、記憶領域ＤＥＶ４の開始アドレス間のアドレスが記憶領域ＤＥＶ４のオフセットアドレス（OFFSET4）とされている。さらに、各記憶領域ＤＥＶ１〜ＤＥＶ４はそれぞれチャンネル記憶領域ＣＨ１，ＣＨ２，ＣＨ３・・・・に分割されている。このチャンネルの記憶領域における開始アドレスと通信ＲＡＭ７の先頭アドレス間のアドレスが、それぞれのチャンネルのオフセットアドレスとされる。このデバイス領域のオフセットアドレス（OFFSET1）〜オフセットアドレス（OFFSET4）と、それぞれのチャンネルのオフセットアドレスがデバイスオフセットテーブル３０に記憶されている。
【００２３】
これにより、タイミングプロセッサ６から特定のオーディオ処理デバイスを選択するデバイス選択信号が供給された際に、選択されたオーディオ処理デバイスのオフセットアドレスをデバイスオフセットテーブル３０から読み出すことができるようになる。この場合、デバイス選択信号によりオーディオ処理デバイスとチャンネルとが選択されている場合は、選択されたオーディオ処理デバイスのチャンネルに対応するオフセットアドレスがデバイスオフセットテーブル３０から読み出されるようになる。
このようにして、オーディオ処理デバイスから送出されたデータは、当該データの宛先のオーディオ処理デバイスに対応する通信ＲＡＭ７の記憶領域に書き込まれるようになる。なお、データのヘッダにデータ長情報が含まれている場合は、タイミングプロセッサ６がデータ長情報を解釈してデータ長に相当するデータが通信ＲＡＭ７に書き込まれた際に、アドレスカウンタ３２の歩進を停止させると共に、データバッファ３４からのデータ読み出しを停止してデータの書込処理を終了させている。
【００２４】
なお、オーディオ処理デバイスが授受するデータのデータ構造の一例を図５に示す。図５に示すデータ構造は、ヘッダとデータとからなるデータ構造とされており、ヘッダには送信元のデバイスＩＤと受け取り先の宛先デバイスＩＤ、後続するデータのデータ長やチャンネルＩＤの情報が含まれている。
【００２５】
ところで、バスコントローラ５がオーディオ処理デバイスにデータ転送する場合は、それに先だってタイミングプロセッサ６が転送先のオーディオ処理デバイスからリード要求とクロック信号を受け取っている。そこで、リード要求を受け取ったオーディオ処理デバイスを選択するデバイス選択信号をタイミングプロセッサ６はデバイスオフセットテーブル３０に供給し、読み出された当該オーディオ処理デバイスに対応するオフセットアドレスをオフセットレジスタ３１に格納する。同時にアドレスカウンタ３２にタイミングプロセッサ６からアドレスカウントクロック信号を供給して、そのタイミング毎に歩進させる。加算器３３において、オフセットレジスタ３１からのオフセットアドレスに、アドレスカウンタ３２からのカウント値が加算されたアドレスが生成されて、通信ＲＡＭ７のアドレス端子（comRAM Address）に供給される。これにより、データ転送先のオーディオ処理デバイスに対応する通信ＲＡＭ７の記憶領域から、データが読み出されてデータバッファ３４に記憶される。なお、アドレスカウンタ３２はアドレスカウントクロック信号により順次カウントアップしていくため、通信ＲＡＭ７の対応する記憶領域から順次データが読み出されてデータバッファ３４に記憶されていく。そして、タイミングプロセッサ６を経由して供給される当該オーディオ処理デバイスから受け取ったクロック信号を使用して、データバッファ３４からデータが読み出されてデータバス８上に送出される。データバス８上に送出されたデータは、通信許可されているデータ転送先のオーディオ処理デバイスが受け取って、そのＦＩＦＯに書き込まれるようになる。
【００２６】
ここで、一例として第１音源デバイス１が生成した楽音波形データをＤＳＰデバイス４に転送する場合を説明する。この場合は、第１音源デバイス１のＦＩＦＯ１ａに楽音データが書き込まれており、第１音源デバイス１はライト要求の通信要求信号を立ち上げる。バスコントローラ５が、この第１音源デバイス１におけるライト要求の通信要求信号を検出すると、コントロールバス９上に第１音源デバイス１を指定するデバイスアドレス信号（dvADDRESS0-3）と通信許可信号（PERMIT）を送出する。さらに、バスコントローラ５のタイミングプロセッサ６はデータ転送先のＤＳＰデバイス４を選択するデバイス選択信号をデバイスオフセットテーブル３０に供給する。これにより、デバイスオフセットテーブル３０からＤＳＰデバイス４に対応する図４に示す記憶領域ＤＥＶ４のオフセットアドレス（OFFSET4）が読み出されて、オフセットレジスタ３１に格納される。アドレスカウンタ３２は、タイミングプロセッサ６からのアドレスカウントクロック信号により歩進されるようになり、加算器３３からはオフセットアドレス（OFFSET4）から順次歩進されるアドレスが出力されて通信ＲＡＭ７に供給されるようになる。
【００２７】
一方、第１音源デバイス１はＦＩＦＯ１ａに記憶されているデータをデータバス８上に送出すると共に、クロック信号をコントロールバス９上に送出する。データバス８上に送出されたデータは、コントロールバス９上に送出されたクロック信号のタイミングでバスコントローラ５のデータバッファ３４に記憶される。そして、タイミングプロセッサ６から供給されるアドレスカウントクロック信号によりデータバッファ３４から読み出されたデータが、通信ＲＡＭ７におけるオフセットアドレス（OFFSET4）から順次歩進されるアドレス位置（デバイス領域ＤＥＶ４）に書き込まれていくようになる。通信ＲＡＭ７へのデータの書込は、データの終了を示すＥＯＦ（End of File）あるいはデータのヘッダから検出されたデータ長情報に相当するデータが書き込まれた際に終了する。
【００２８】
ここで、ＤＳＰデバイス４のＦＩＦＯ４ａに空きが生じて、ＤＳＰデバイス４がデータを要求するようにリード要求の通信要求を立ち上げたとする。バスコントローラ５が、ＤＳＰデバイス４におけるリード要求の通信要求を検出すると、コントロールバス９上にＤＳＰデバイス４を指定するデバイスアドレス信号（dvADDRESS0-3）と通信許可信号（PERMIT）を送出する。これにより、ＤＳＰデバイス４はクロック信号をコントロールバス９上に送出する。また、タイミングプロセッサ６は送出したデバイスアドレス信号（dvADDRESS0-3）に対応するＤＳＰデバイス４を選択するデバイス選択信号をデバイスオフセットテーブル３０に供給し、ＤＳＰデバイス４に対応するオフセットアドレス（OFFSET4）を読み出してオフセットレジスタ３１に格納する。同時にアドレスカウンタ３２にアドレスカウントクロック信号を供給して、そのタイミング毎に歩進させる。加算器３３において、オフセットレジスタ３１からのオフセットアドレスに、アドレスカウンタ３２からのカウント値が加算されたアドレスが生成されて、通信ＲＡＭ７のアドレス端子（comRAM Address）に供給される。
【００２９】
これにより、オフセットアドレス（OFFSET4）で示される通信ＲＡＭ７における図４に示す記憶領域ＤＥＶ４の先頭からのデータが読み出されてデータバッファ３４に記憶される。そして、タイミングプロセッサ６から供給されたクロック信号によりデータバッファ３４からデータが読み出されてデータバス８上に送出される。データバス８上に送出されたデータは、通信許可されているＤＳＰデバイス４が受け取って、そのＦＩＦＯ４ａに書き込まれるようになる。
なお、上述した例では第１音源デバイス１からＤＳＰデバイス４にデータを転送する例を示したが、第２音源デバイス２からＤＳＰデバイス４にデータを転送する場合や、ＤＳＰデバイス４からＤＡＣデバイス３にデータ転送する場合も同様にして行われる。
【００３０】
次に、本発明のバスシステムにかかるバスコントローラ５が実行する処理のフローチャートを図６に示す。
電源等が投入されてバスシステムが初期化されるとバスコントローラ５は、ステップＳ１にてデバイスアドレス信号（dvADDRESS0-3）を”０”として、コントロールバス上に最初のオーディオ処理デバイスを指定するデバイスアドレス信号（dvADDRESS0-3）を送出する。図１に示す例では、第１音源デバイス１が指定される。これにより、最初のオーディオ処理デバイスである例えば、第１音源デバイス１が指定され、当該オーディオ処理デバイスのスイッチＴＳ４が開いて通信要求信号（REQ）が”１”とされているか否かがステップＳ３にて判断される。ここで、通信要求信号（REQ）が”１”となって通信要求されていると判断されると、ステップＳ５に進む。デバイスアドレス信号（dvADDRESS0-3）で指定されたオーディオ処理デバイスではスイッチＴＳ５も開いてリード／ライト要求信号（Ｒ／Ｗ）が出力されており、このステップＳ５にてリード／ライト要求信号（Ｒ／Ｗ）が”１”か否かを検出することにより、リード要求（READ）か否かを判断する。
【００３１】
また、ステップＳ３にて通信要求信号（REQ）が”０”とされて、通信要求されていないと判断された場合は、ステップＳ４に分岐してデバイスアドレス信号（dvADDRESS0-3）がインクリメントされて次のオーディオ処理デバイスを示す”１”に更新され、図１に示す例では、第２音源デバイス２が指定される。そして、ステップＳ２にて更新されたデバイスアドレス信号（dvADDRESS0-3）で指定されたオーディオ処理デバイスにおいて通信要求されているか否かが判断される。このようにして通信要求の検出がされるまで、指定されるオーディオ処理デバイスが順次更新されるようになる。そして、通信要求が検出された際に、前述したステップＳ５に進むようになる。このステップＳ５にてリード要求（Ｒ／Ｗ＝１）されていると判断された場合は、ステップＳ６にて当該オーディオ処理デバイス（DEVICEx）を選択するデバイス選択信号（SEL OUT）をデバイスオフセットテーブル３０に供給する。そして、当該オーディオ処理デバイスに対応するオフセットアドレスをセンドオフセットとしてデバイスオフセットテーブル３０から読み出して、オフセットレジスタ３１にセットする。
【００３２】
次いで、ステップＳ７にて通信許可信号（PERMIT）をＯＮする。これにより、デバイスアドレス信号（dvADDRESS0-3）で指定されているオーディオ処理デバイスが通信許可されるようになり、通信許可されたオーディオ処理デバイスからクロック信号が送出される。ここでバスコントローラ５のタイミングプロセッサ６が発生するアドレスカウントクロック信号により、アドレスカウンタ３２が歩進するようになり加算器３３から出力されるアドレス信号により、通信ＲＡＭ７からデータが読み出されるようになる。この場合、加算器３３から出力されるアドレス信号は、デバイスアドレス信号（dvADDRESS0-3）で指定されたオーディオ処理デバイスに対応して、オフセットレジスタ３１からのオフセットアドレスによりオフセットされており、通信ＲＡＭ７における当該オーディオ処理デバイスに対応する記憶領域からデータが読み出されるようになる。読み出されたデータはデータバッファ３４に記憶される。ステップＳ８では、この読み出されたデータのヘッダのデータ長情報等を参照して、当該記憶領域に有効なデータがあるか否か、すなわち、指定されているオーディオ処理デバイスに送るデータがあるか否かが判断される。
【００３３】
ここで、指定されているオーディオ処理デバイスに送るデータがあると判断された場合は、ステップＳ９に進みデータバッファ３４から読み出されたデータがデータバス８に上に送出されて当該オーディオ処理デバイス（DEVICEx）に送信される。次いで、ステップＳ１０にてデータの送信が完了したか否かが判断される。データ送信の完了は、データのヘッダにおけるデータ長情報に相当するデータ量を送信した場合、あるいはデータの終了を示すＥＯＦを検出した場合に、データ送信が完了したと判断する。データ送信が完了していない場合は待機され、データ送信が完了したと判断された際にステップＳ１１に進み通信許可信号（PERMIT）がオフされる。送信されたデータをデバイスアドレス信号（dvADDRESS0-3）で指定されたオーディオ処理デバイスが正常に受け取ると、このオフされた通信許可信号を受け取ることにより当該オーディオ処理デバイスは通信要求信号（REQx）を立ち下げる。しかし、送信されたデータをデバイスアドレス信号（dvADDRESS0-3）で指定されたオーディオ処理デバイスが正常に受け取れなかった場合は、当該オーディオ処理デバイスの通信要求信号（REQx）は立ち下がらない。
【００３４】
そこで、ステップＳ１２のステップを設けて所定時間内に通信要求信号（REQx）が立ち下がらないと判断された場合は、送信されたデータを指定されたオーディオ処理デバイスが正常に受信できなかったとして、ステップＳ９に戻り再送信するようにしてもよい。なお、所定時間内に通信要求信号（REQx）が立ち下がった場合は、送信されたデータを指定されたオーディオ処理デバイスが正常に受信できたとしてステップＳ２に戻り、次のオーディオ処理デバイスの通信要求信号（REQ）があるか否かを判断する。そして、通信要求信号（REQ）の状態に応じた上述した処理が繰り返される。
【００３５】
また、ステップＳ８にて指定されているオーディオ処理デバイスに送るデータがないと判断された場合は、ステップＳ１３にて空データを作成して送信する。空データは、データがないことを示すデータであり、例えばヘッダのデータ長情報が「０」とされたデータとされる。次いで、ステップＳ１４にて通信許可信号（PERMIT）がオフされる。ここで、ステップＳ１５のステップを設けて所定時間内に通信要求信号（REQx）が立ち下がったか否かを判断する。そして、通信許可信号（PERMIT）をオフしたにもかかわらず、所定時間内に通信要求信号（REQx）が立ち下がらなかったとステップＳ１５にて判断された場合は、ステップＳ１６に分岐して指定されたオーディオ処理デバイスとの間の通信が正常に行われないとして通信エラー処理を行うようにする。なお、所定時間内に通信要求信号（REQx）が立ち下がった場合はステップＳ２に戻り、次のオーディオ処理デバイスの通信要求信号（REQ）があるか否かを判断する。そして、通信要求信号（REQ）の状態に応じて上述した処理が繰り返される。
【００３６】
また、ステップＳ５にてリード／ライト要求信号（Ｒ／Ｗ）が”０”とされてリード要求ではなくライト要求されている判断された場合は、図７に示すステップＳ１７に分岐する。この場合は、ステップＳ１７にて通信許可信号（PERMIT）をＯＮする。これにより、デバイスアドレス信号（dvADDRESS0-3）で指定されているオーディオ処理デバイスが通信許可されるようになり、通信許可されたオーディオ処理デバイスからクロック信号が送出されると共に、データバス８に当該オーディオ処理デバイスのＦＩＦＯから読み出されたデータが送出される。このデータは、当該オーディオ処理デバイスから送出されたクロック信号を使用してデータバッファ３４に格納される。この場合、ステップＳ１８にてデータバッファ３４にデータのヘッダの受信が完了するまで待機される。データバッファ３４においてヘッダの受信が完了すると、ステップＳ１９にてヘッダを解釈して宛先デバイスＩＤ情報に基づくデバイス選択信号をオフセットデバイステーブルに送り、宛先オーディオ処理デバイスに対応するオフセットアドレスを読み出して、レシーブオフセットとしてオフセットレジスタ３１に格納する。
【００３７】
また、タイミングプロセッサ６からのアドレスカウントクロック信号により、アドレスカウンタ３２が歩進するようになり加算器３３から出力される通信ＲＡＭ７のアドレス位置に、データバッファ３４から読み出されたデータが書き込まれるようになる。この場合、加算器３３から出力されるアドレス信号は、データの宛先オーディオ処理デバイスに対応してオフセットレジスタ３１からのオフセットアドレスによりオフセットされており、ステップＳ２０にて通信ＲＡＭ７における宛先オーディオ処理デバイスに対応する記憶領域にデータバッファ３４で受信されたデータが書き込まれるようになる。次いで、ステップＳ２１にてデータの受信が完了したか否かが判断される。データ受信の完了は、データのヘッダにおけるデータ長情報に相当するデータ量を受信した場合、あるいはデータの終了を示すＥＯＦを検出した場合に、データ受信が完了したと判断する。ここで、ステップＳ２２を設けて受信データが正常に受信されたか否かをチェックするようにしてもよい。チェックはパリティ・ビットをチェックするパリティチェックや、チェックサムによるチェックとすることができる。
【００３８】
そして、ステップＳ２２における受信データチェックの結果、データが正常に受信されなかったと判断された場合は、ステップＳ２４に分岐してデータを送信したオーディオ処理デバイスに対する再送要求データを作成する。作成されたデータは、通信ＲＡＭ７における当該オーディオ処理デバイスに対応する記憶領域に書き込まれる。これにより、当該オーディオ処理デバイスがリード要求をした際に、この再送要求が読み出されて当該オーディオ処理デバイスはそのデータを再送するようになる。また、ステップＳ２２における受信データチェックの結果、ステップＳ２３にてデータが正常に受信されたと判断された場合は、ステップＳ２５に進んで通信許可信号（PERMIT）がオフされる。デバイスアドレス信号（dvADDRESS0-3）で指定されたデータを送信したオーディオ処理デバイスは、通信許可信号がオフされたことを受けて通信要求信号（REQx）を立ち下げる。ここで、ステップＳ２６のステップを設けて所定時間内に通信要求信号（REQx）が立ち下がったか否かを判断する。そして、通信許可信号（PERMIT）をオフしたにもかかわらず、所定時間内に通信要求信号（REQx）が立ち下がらなかったとステップＳ２６にて判断された場合は、ステップＳ２７に分岐して指定されたオーディオ処理デバイスとの間の通信が正常に行われないとして通信エラー処理を行うようにする。なお、所定時間内に通信要求信号（REQx）が立ち下がった場合はステップＳ２に戻り、次のオーディオ処理デバイスの通信要求信号（REQ）があるか否かを判断する。そして、通信要求信号（REQ）の状態に応じて上述した処理が繰り返される。
【００３９】
次に、本発明のバスシステムにかかるオーディオ処理デバイスが実行する処理のフローチャートを図８に示す。
オーディオ処理デバイスの電源が投入されると、ステップＳ３１にてＦＩＦＯのデータチェックが行われ、ステップＳ３２にてＦＩＦＯにデータが書き込まれておりそのデータが転送すべき送信データか否かが判断される。ここで、データが送信データと判断されると、ステップＳ３３に進んでライト要求とされることからリード／ライト要求信号（Ｒ／Ｗ）に”０”がセットされる。さらに、ステップＳ３４にて通信要求信号（REQ）に”１”がセットされる。これにより、オーディオ処理デバイスからデータ転送する準備が整い、自機を指定するデバイスアドレス信号（dvADDRESS0-3）と共に通信許可信号（PERMIT）が受信されて通信許可されるまでステップＳ３５にて待機される。
【００４０】
このステップＳ３５にて通信許可されたと判断されると、ステップＳ３６に進んでスイッチＴＳ３をオンしてコントロールバス９上へクロック信号を送出する。さらに、ステップＳ３７にてスイッチＴＳ２をオンしてＦＩＦＯからクロック信号に基づいて読み出したデータをデータバス８上に送出する。転送すべきデータの送信が終了したか否かがステップＳ３８にて判断され、全てのデータが送信されるまでデータの送信が行われる。そして、全てのデータが送信されたとステップＳ３８にて判断されると、ステップＳ３９にてスイッチＴＳ３がオフされてクロック出力が停止される。さらに、ステップＳ４０にて通信要求信号（REQ）に”０”がセットされてステップＳ３１に戻るようになる。
【００４１】
また、ステップＳ３２にて送信データがないと判断されると、ステップＳ４１に分岐してＦＩＦＯに所定量の空きがあり受信すべきデータがあるか否かが判断される。ここで、受信すべきデータがあると判断された場合はステップＳ４２に進み、リード要求とされることからリード／ライト要求信号（Ｒ／Ｗ）に”１”がセットされる。さらに、ステップＳ４３にて通信要求信号（REQ）に”１”がセットされる。これにより、オーディオ処理デバイスはデータ受信する準備が整い、自機を指定するデバイスアドレス信号（dvADDRESS0-3）と共に通信許可信号（PERMIT）が受信されて通信許可されるまでステップＳ４４にて待機される。
【００４２】
このステップＳ４４にて通信許可されたと判断されると、ステップＳ４５に進んでスイッチＴＳ３をオンしてコントロールバス９上へクロック信号を送出する。さらに、ステップＳ４６にてスイッチＴＳ１をオンしてデータバス８からデータを受信してＦＩＦＯに書き込んでいく。受信すべきデータの受信が終了したか否かがステップＳ４７にて判断され、全てのデータが受信されるまでデータの受信が行われる。そして、全てのデータが受信されたとステップＳ４７にて判断されると、ステップＳ４８にてスイッチＴＳ３がオフされてクロック出力が停止される。さらに、ステップＳ４０にて通信要求信号（REQ）に”０”がセットされてステップＳ３１に戻るようになる。そして、上述したステップＳ３１ないしステップＳ４０の処理が繰り返し行われるようになる。なお、通信要求信号（REQ）に”１”がセットされてから、ポーリングによりバスコントローラ５がこの通信要求信号を検出した際に通信許可されるようになる。
【００４３】
【発明の効果】
本発明は以上のように構成されているので、オーディオ処理デバイスの各々に対応する複数の前記記憶領域が設けられている通信用記憶手段が設けられているバスに、複数のオーディオ処理デバイスを接続するようにしている。これにより、オーディオ処理デバイス間において、バスおよび通信用記憶手段を介してデータの授受を行えるようになる。この場合、オーディオ処理デバイスをバスに接続するだけで他のオーディオ処理デバイスとの間においてデータ授受を行えることから、拡張性やフレキシビリティに富んだシステムとすることができるようになる。
また、オーディオ処理デバイス間においてデータの授受を行う際に、オーディオ処理デバイスから送信されたクロック信号情報のタイミングに基づいて、データ授受の処理を行うようにしたので、デバイス間の同期をとることなくオーディオ処理デバイス間においてデータの授受を行うことができる。
【図面の簡単な説明】
【図１】  本発明のバスシステムが適用されている電子楽器における実施の形態のハードウェア構成を示すブロック図である。
【図２】  本発明の実施の形態にかかるオーディオ処理デバイスの構成を示す図である。
【図３】  本発明の実施の形態にかかるバスコントローラの構成を示す図である。
【図４】  本発明の実施の形態にかかる通信ＲＡＭのメモリ構造の一例を示す図である。
【図５】  本発明の実施の形態にかかるデータのデータ構造の例を示す図である。
【図６】  本発明のバスシステムにかかるバスコントローラが実行する処理のフローチャートの一部である。
【図７】  本発明のバスシステムにかかるバスコントローラが実行する処理のフローチャートの残る一部である。
【図８】  本発明のバスシステムにかかるオーディオ処理デバイスが実行する処理のフローチャートである。
【符号の説明】
１  第１音源デバイス、２  第２音源デバイス、３  ＤＡＣデバイス、４  ＤＳＰデバイス、５  バスコントローラ、６  タイミングプロセッサ、７  通信ＲＡＭ、８  データバス、９  コントロールバス、１０  ＣＰＵ、１１  メモリシステム、１２  コントロールパネル、１３  ミュージックインタフェース、１４  ＣＰＵバス、２０  デバイス本体部分、２１  タイミングジェネレータ、３０  デバイスオフセットテーブル、３１  オフセットレジスタ、３２  アドレスカウンタ、３３  加算器、３４  データバッファ、ＴＳ１〜ＴＳ５  スイッチ
【図１】
0004026380.tif 000002
【図２】
0004026380.tif 000003
【図３】
0004026380.tif 000004
【図４】
0004026380.tif 000005
【図５】
0004026380.tif 000006
【図６】
0004026380.tif 000007
【図７】
0004026380.tif 000008
【図８】
0004026380.tif 000009