以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の一実施の形態に係る入出力制御回路が適用される鍵盤装置の構成を、ある1つの鍵に着目して示した部分断面図である。本鍵盤装置30は、自動演奏ピアノとして構成される。鍵盤装置30は、通常のアコーステックピアノと同様、鍵31の運動をハンマ32に伝達するアクションメカニズム33と、ハンマ32により打撃される弦34と、弦34の振動を止めるためのダンパ36とを備えている。以降、鍵31の奏者側を「前方」と称する。
また、不図示のソレノイドコイルを有するキードライブユニット20が、鍵31ごとに設けられ、鍵31の後端部側の下方に配置されている。また、キーセンサユニット37が各鍵31に対応して設けられる。キーセンサユニット37は、各鍵31の前部下方に配置され、対応する鍵31のストローク中における位置を示すアナログ信号である検出信号SDを出力する。
演奏データ中の発音イベントデータで規定される音高に対応するキードライブユニット20に駆動信号が供給されると、そのプランジャが上昇し、該プランジャの頂部が対応する鍵31の後端部裏面に当接して該鍵31を突き上げる。これにより鍵31が押下され、弦34がハンマ32により叩かれることによりピアノ音が発音されるようになっている。また、各キードライブユニット20には、そのプランジャの移動速度を検出する速度センサ(図示せず)が設けられている。
鍵盤装置30にはまた、ダンパ36を駆動するためのペダルPDが設けられる。また、ペダルPDを駆動するためのペダルアクチュエータ26と、ペダルPDの位置を検出する位置センサ27とが設けられている。詳細は図示しないが、ペダルアクチュエータ26は公知の構成のもので、ペダルPDに連結されたプランジャ29と、該プランジャ29に巻装されたソレノイドコイル28とを有し(いずれも図2参照)、駆動信号が供給されると、上記プランジャ29が動作してペダルPDが駆動されるようになっている。
鍵盤装置30はまた、コントロールユニット40、I/O(入出力)ユニット50を備える。コントロールユニット40は、I/Oユニット50との間で各種信号をやりとりし、例えば、I/Oユニット50に、演奏データ、同期信号等を送る。この演奏データは、例えば、MIDI(Musical Instrument Digital Interface)コードで構成され、鍵31及びペダルPDの動作を規定する。
I/Oユニット50には、上述したキーセンサユニット37からの検出信号SDが入力されるほか、位置センサ27の検出信号Py(p)が供給され、各キードライブユニット20の上記速度センサからも、同様に速度検出信号Vy(k)が供給される。本実施の形態では、I/Oユニット50は、上記演奏データと、検出信号Py(p)及び検出信号SDとに基づき励磁電流として電流指示値u(p)、u(k)を生成し、それぞれペダルアクチュエータ26、キードライブユニット20に供給する。これら電流指示値u(p)、u(k)は、実際には、ペダルアクチュエータ26、キードライブユニット20のそれぞれのソレノイドコイルに流すべき平均電流の目標値に応じたデューティ比となるようにパルス幅変調を施したPWM信号である。
演奏データに基づく自動演奏においては、I/Oユニット50が、上記演奏データに応じて生成される各時刻におけるペダルPD及び鍵31の各位置に対応した位置制御データと、検出信号Py(p)、及び検出信号SDのデジタルデータ変換値(後述するA/D値)とをそれぞれ比較し、両者がそれぞれ一致するように電流指示値u(p)、u(k)を随時更新して出力することでサーボ制御を行う。これにより、演奏データに従って、ペダルPD及び鍵31が駆動されて、自動演奏がなされる。なお、本実施の形態では、鍵31のフィードバック駆動制御に検出信号SDを用いるが、これに代えて、あるいはこれに加えて、上記速度検出信号Vy(k)を用いるようにしてもよい。
ところで、後述するように、奏者のピアノ演奏中に、検出信号SDを収集してこれをデータ化すれば、奏者の行ったピアノ演奏をデータ保存(演奏記録)することができる。I/Oユニット50の詳細は後述する。
図2は、鍵盤装置30の制御機構の構成を示すブロック図である。
鍵盤装置30の制御機構は、CPU11に、バス15を通じて、上記キードライブユニット20、ペダルアクチュエータ26、位置センサ27、キーセンサユニット37のほか、鍵盤部KB、ROM12、RAM13、MIDIインターフェイス(MIDII/F)14、タイマ16、表示部17、外部記憶装置18、操作部19、音源回路21、効果回路22及び記憶部25が接続されて構成される。音源回路21には効果回路22を介してサウンドシステム23が接続されている。
CPU11は、本装置30全体の制御を司る。ROM12は、CPU11が実行する制御プログラムやテーブルデータ等の各種データを記憶する。RAM13は、演奏データ、テキストデータ等の各種入力情報、各種フラグやバッファデータ及び演算結果等を一時的に記憶する。MIDII/F14は、不図示のMIDI機器等からの演奏データをMIDI信号として入力する。タイマ16は、タイマ割り込み処理における割り込み時間や各種時間を計時する。表示部17は、例えばLCDを含んで構成され、楽譜等の各種情報を表示する。外部記憶装置18は、フレキシブルディスク等の不図示の可搬記憶媒体に対してアクセス可能に構成され、これら可搬記憶媒体に対して演奏データ等のデータを読み書きすることができる。操作部19は、不図示の各種操作子を有し、自動演奏のスタート/ストップの指示、曲選択等の指示、各種設定等を行う。記憶部25は、フラッシュメモリ等の不揮発メモリで構成され、演奏データ等の各種データを記憶することができる。鍵盤部KBには、上記鍵31が含まれる。
音源回路21は、演奏データを楽音信号に変換する。効果回路22は、音源回路21から入力される楽音信号に各種効果を付与し、DAC(Digital-to-Analog Converter)やアンプ、スピーカ等のサウンドシステム23が、効果回路22から入力される楽音信号等を音響に変換する。
なお、上記コントロールユニット40及びI/Oユニット50の機能は、実際には、CPU11、タイマ16、ROM12、RAM13等の協働作用によって実現される。
図3は、コントロールユニット40及びI/Oユニット50の構成を示すブロック図である。同図では特に、後述する入出力制御モードのうち、「入出力モード」での接続状態が示されている。
I/Oユニット50には、デジタルシグナルプロセッサ(以下、「DSP」と称する)51と、6個のASIC(Application Specific Integrated Circuit)52(52(1)〜52(6)とが実装されている。
各ASIC52はいずれも同様に構成され、検出信号SDのパラレル入力、または電流指示値u(p)、u(k)のパラレル出力のための32個の入出力端子tm(tm(1)〜tm(32)、図4参照)を有している。以降、駆動情報である電流指示値u(k)を「PWM値」とも称する。ASIC52はまた、外部へシリアルデータを出力するデータ送信端子(データエクスクルーシブ)DX、外部からシリアルデータを入力するデータ受信端子(データレシーブ端子)DRを有している。そして、図3に示すように、これら端子DX、端子DRでASIC52同士がカスケード接続されて、6つのASIC52がシリアル接続されている。ASIC52の詳細は後述する。
本実施の形態では、鍵31を88個制御することを想定し、「入出力モード」では、6個のASIC52で96チャンネル分に対応できるようになっている。すなわち、ASIC52(1)〜52(6)には、1つのASIC52に対して16鍵が低音域の鍵31から順に割り当てられている。なお、余るチャンネルの一部はペダルPD用に割り当てられ、検出信号Py(p)に基づいてペダルPDが駆動制御されるが、制御態様は鍵31の場合と同様であるので、以下では鍵31についてのみ説明し、ペダルPDの制御の詳細説明は省略する。
コントロールユニット40は、記憶媒体(外部記憶装置18等)に記憶されている、または外部からMIDII/F14を介して入力される演奏データをDSP51に送る。DSP51は、シリアルクロック信号SCK(8MHz)及びワードシンク信号WSを生成し、これらを各ASIC52(1)〜52(6)に個々に送る。図3を用いた「入出力モード」の説明は後述する。
図4は、1つのASIC52の平面図にASIC52が有する各端子の名称を併記した図である。
ASIC52は、上記入出力端子tm、データ送信端子DX、データ受信端子DRのほか、端子「/OEL」、端子「/OEH」、端子「WS」、端子「SCK」等を有する。この他の端子は、説明を省略するが、電源やグランド電位を入力するための端子等である。
端子「/OEL」は、入出力端子tm(1)〜tm(16)が入力端子/出力端子のいずれとして機能するかを規定するための制御信号(モード信号)が入力される端子である。端子「/OEH」は、入出力端子tm(17)〜tm(32)が入力端子/出力端子のいずれとして機能するかを規定するための制御信号(モード信号)が入力される端子である。端子「WS」、端子「SCK」は、それぞれワードシンク信号WS、シリアルクロック信号SCKが入力される端子である。
図5は、1つのASIC52の内部構成を示す回路図である。同図において、データ送信端子DX、データ受信端子DRが便宜上各2つ示されているが、これらは別のものではなく、それぞれ単一の同一端子である。
ASIC52は、同図下側の16段のブロックBL(1)〜BL(16)を有するブロック群LBLと、同図上側の16段のブロックBL(17)〜BL(32)を有するブロック群UBLとを備える。1つのブロックBLが、1つのチャンネルに対応する。
ブロックBL(1)は、入出力端子tm(32)に、A/D変換器53(1)、シフトレジスタ(SHIFT)54(1)、ラッチ回路(PWM)55(1)、スイッチ回路56(1)及び入出力端子tm(1)が直列に接続されて構成される。ブロックBL(2)〜BL(16)もブロックBL(1)と同様に構成される。ブロックBL(17)は、スイッチ回路56(16)と入出力端子tm(16)との接続線に接続されたA/D変換器53(17)に、シフトレジスタ54(17)、ラッチ回路55(17)、スイッチ回路56(17)及び入出力端子tm(17)が直列に接続されて構成される。ブロックBL(18)〜BL(32)もブロックBL(17)と同様に構成される。
ブロックBL(2)〜BL(15)、及びブロックBL(18)〜BL(31)においては、隣接するブロックBLのシフトレジスタ54が直列に接続されている。ブロックBL(1)のシフトレジスタ54(1)の入力側には、入力ライン57Aが、ブロックBL(16)のシフトレジスタ54(1)の出力側には、出力ライン57Bが、ブロックBL(17)のシフトレジスタ54(17)の入力側には、入力ライン57Cが、ブロックBL(32)のシフトレジスタ54(32)の出力側には、出力ライン57Dが、それぞれ接続されている。
また、入力ライン57Aのデータ受信端子DRとの接続/非接続を切り替えるスイッチ58A、出力ライン57Bのデータ送信端子DXまたは端子ct1との接続を選択的に切り替えるスイッチ58B、入力ライン57Cのデータ受信端子DRまたは端子ct2との接続を選択的に切り替えるスイッチ58C、出力ライン57Dのデータ送信端子DXとの接続/非接続を切り替えるスイッチ58Dが設けられている。端子ct1と端子ct2はライン接続されている。
さらに、端子「/OEL」がスイッチ回路56(1)〜56(16)に接続され、端子「/OEH」がスイッチ回路56(17)〜56(32)に接続されている。端子「/OEL」、「/OEH」は、図示はしないが、スイッチ58(58A、58B、58C、58D)にも接続されている。A/D変換器53、シフトレジスタ54、ラッチ回路55は、それぞれ10bit、16bit、9bitのデータを扱えるようになっている。
シリアルクロック信号SCKの立ち下がりのタイミングで、シフトレジスタ54内でデータが1bitずつシフトし、最後のbitのデータは後続のシフトレジスタ54の先頭bitに転送される。A/D変換器53は、検出信号SDが入力される場合は、それをA/D変換して保持する。ワードシンク信号WSの立ち下がりのタイミングで、A/D変換器53、シフトレジスタ54がそれぞれデータを保持している場合は、それらのデータ(全bitのデータ)がそれぞれ対応するシフトレジスタ54、ラッチ回路55に転送されると共に、ラッチ回路55がデータを保持している場合は、ラッチ回路55のデータ(全bitのデータ)が対応するスイッチ回路56を介して対応する入出力端子tmに出力される。
ここで、ASIC52は、3つの入出力制御モードに対応可能に構成されている。入出力制御モードには、各ASIC52がシリアル入出力を行うと共に16チャンネルでパラレル入力及びパラレル出力を行う「入出力モード(第1モード)」、各ASIC52が32チャンネルでパラレル出力を行う「出力専用モード(第2モード)」、及び各ASIC52が32チャンネルでパラレル入力を行う「入力専用モード(第3モード)」がある。入出力制御モードは、端子「/OEL」及び端子「/OEH」に入力される制御信号の状態「H(high)」、「L(low)」により定まる。
図6は、コントロールユニット40及びI/Oユニット50の構成を、出力専用モードでの接続状態で示すブロック図である。図7は、コントロールユニット40及びI/Oユニット50の構成を、入力専用モードでの接続状態で示すブロック図である。図8は、各入出力制御モードによる1つのASIC52におけるデータの流れを示す模式図である。同図(a)、(c)、(d)がそれぞれ「入出力モード」、「出力専用モード」、「入力専用モード」を示す。なお、同図(b)は、「入出力モード」の変形例であり、後述の上記3モードの説明後に述べる。
『入出力モード』
まず、入出力モードの動作を説明する。
端子「/OEL」/端子「/OEH」に入力される制御信号が「L/H」(第1モード信号)のとき「入出力モード」となり、この入出力モードでは、シリアルクロック信号SCKの立ち下がりが16(チャンネル)×6(個)×16(bit)=1536回発生する毎にワードシンク信号WSの立ち下がりが1回発生する。入出力モードでは、ブロックBL(1)〜BL(16)が16個の鍵31に対応し、ブロックBL(17)〜BL(32)は実質的に使用されない。
端子「/OEL」に入力される制御信号が「L」であることにより、図5に示すスイッチ回路56(1)〜56(16)が入出力端子tm(1)〜tm(16)へのデータ出力を可能とし、入出力端子tm(1)〜tm(16)はラッチ回路55(1)〜55(16)からのパラレル出力端子として機能する。このとき、入出力端子tm(1)〜tm(16)は、キードライブユニット20に配線接続される。一方、端子「/OEH」に入力される制御信号が「H」であることにより、スイッチ回路56(17)〜56(32)が入出力端子tm(17)〜tm(32)へのデータ出力を不能とし、入出力端子tm(17)〜tm(32)はA/D変換器53(1)〜53(16)へのパラレル入力端子として機能する。このとき、入出力端子tm(17)〜tm(32)は、キーセンサユニット37と配線接続される。
さらに、端子「/OEL」/端子「/OEH」に入力される制御信号が「L」/「H」であることにより、スイッチ58A、58Bが動作して、入力ライン57Aがデータ受信端子DRに接続されると共に、出力ライン57Bがデータ送信端子DXに接続される。なお、入出力モードでは、入力ライン57C及び出力ライン57Dの接続状態はデータの流れに影響しない。
データの流れは次のようになる。すなわち、図3に示すように、シリアルクロック信号SCKの立ち下がりタイミングに従って、DSP51は、その出力端子dxから、PWM値をASIC52(1)のデータ受信端子DRに1bitずつシリアルに供給すると共に、ASIC52(6)のデータ送信端子DXからの、アナログの検出信号SDをA/D変換したデジタルデータ(以下、「A/D値」と称する)をシリアルに受信端子drで受信する。上述のように、PWM値は、電流指示値u(k)であって、演奏データとA/D値とに基づきDSP51により生成される。図8(a)で説明すると、各ASIC52におけるブロック群LBLにおいて、PWM値がデータ受信端子DRにシリアルに入力されると共に、検出信号SDがパラレルに入力される。これらと並行して、PWM値がパラレルに出力されると共に、A/D値がデータ送信端子DXにシリアルに出力される。このことを、時系列的に説明すると、次のようになる。
図9は、入出力モードにおけるI/Oユニット50内のデータ処理を示すタイムチャートである。同図(a)〜(f)の各処理は、時間tの進行に従って同図右方に進む。同図(a)はワードシンク信号WSの立ち下がりタイミングを示す。同図(b)はA/D変換器53における処理内容、同図(c)〜(e)はDSP51における処理内容、同図(f)はラッチ回路55における処理内容をそれぞれ示す。図10は、I/Oユニット50におけるデータの流れを示す模式図である。同図において、「A/D」、「SHIFT」、「PWM」はそれぞれ、6個分のASIC52のA/D変換器53、シフトレジスタ54、ラッチ回路55をひとかたまりにした集合要素に相当する。
図9、図10において、n番目のワードシンク信号WSの立ち下がりタイミングにDSP51で制御演算(演奏データとA/D値とに基づくPWM値の生成)の対象となるデータ群を「n」で示す。また、図10において、n等の下の(A/D)、(PWM)の表記はそれぞれ、そのデータ群「n」がA/D値、PWM値であることを示している。
図10(a)に示すように、データ群「n」がDSP51で制御演算されているとき(図9(d)のn)、それと並行して、以下の動作がシリアルクロック信号SCKに同期してなされる。まず、既に制御演算を終えてPWM値となっているデータ群「n−1」が、DSP51の出力端子dxからASIC52(1)のデータ受信端子DRに1bitずつシリアルに転送される(図9(e)のn−1)。データ受信端子DRに受信されたデータ群「n−1」は、シフトレジスタ54内を1bitずつシフトすると共に、シフトレジスタ54に既に保持されていたA/D値であるデータ群「n+1」が、1bitずつシフトしつつASIC52(6)のデータ送信端子DXからDSP51の受信端子drへ1bitずつシリアルに転送される(図9(c)のn+1)。
また、これらと並行して、各ASIC52のA/D変換器53は、対応する入出力端子tm(17)〜tm(32)(図5参照)からアナログの検出信号SDをパラレルに受信しつつそれらをA/D変換し、次の(n+1番目の)ワードシンク信号WSの立ち下がりまでにA/D値であるデータ群「n+2」を準備する(図9(b)のn+2)。さらに、各ASIC52のラッチ回路55は、既に保持しているPWM値であるデータ群「n−2」を、次のワードシンク信号WSの立ち下がりまでに、対応する入出力端子tm(1)〜tm(16)(図5参照)からパラレルに出力する(図9(f)のn−2)。
このようにして、次のワードシンク信号WSの立ち下がりが発生するまでには、図10(b)に示すように、DSP51にデータ群「n」、「n+1」が、A/D変換器53にデータ群「n+2」が、シフトレジスタ54のデータ群「n−1」が、それぞれ保持された状態となる。そして、n+1番目のワードシンク信号WSの立ち下がりのタイミングで、図10(b)、(c)に示すように、シフトレジスタ54のデータ群「n−1」が対応するラッチ回路55に転送されると同時に、A/D変換器53のデータ群「n+2」が対応するシフトレジスタ54に転送される。従って、ワードシンク信号WSの立ち下がり毎に、キードライブユニット20を制御する電流指示値u(k)(のデューティ比)が更新されることになる。
その後は、図10(d)に示すように、処理対象のデータ群が1つ新しくなるだけであり、その次のワードシンク信号WSの立ち下がりまでにおける動作の態様は、図10(a)で説明したのと全く同様である。
このように、入出力モードでは、シフトレジスタ54におけるA/D値のシリアル/パラレル転送動作が同時にPWM値のシリアル/パラレル転送動作にもなっているので、シフトレジスタ54がA/D値転送とPWM値転送の2機能を兼ねる。従って、A/D値転送用とPWM値転送用とでシフトレジスタ54を別個に設ける構成に比し、回路構成が簡単で済む。
『出力専用モード』
次に、出力専用モードの動作を説明する。
端子「/OEL」/端子「/OEH」に入力される制御信号が「L/L」(第2モード信号)のとき「出力専用モード」となり、この出力専用モードでは、シリアルクロック信号SCKの立ち下がりが32(チャンネル)×6(個)×16(bit)=3972回発生する毎にワードシンク信号WSの立ち下がりが1回発生する。出力専用モードでは、ブロックBL(1)〜BL(32)が32チャンネル(32個の鍵31)に対応し、入出力端子tm(1)〜tm(32)はいずれも出力端子として機能する。
出力専用モードは、例えば、演奏データに基づき、フィードバック制御を行うことなく自動演奏を行わせる、いわゆる再生専用の用途への適用が想定される。ASIC52を出力専用モードで用いる場合は、1つのASIC52で32チャンネル分に対応するので、6個のASIC52で最大192チャンネルまで対応することができる。従って、例えば88個の鍵31を駆動することに限っていえば、ASIC52を3つ設ければ足りる。
端子「/OEL」、端子「/OEH」に入力される制御信号がいずれも「L」であることにより、スイッチ回路56(1)〜56(32)が、ラッチ回路55(1)〜55(32)から入出力端子tm(1)〜tm(32)へのデータ出力を可能とし、入出力端子tm(1)〜tm(32)はラッチ回路55(1)〜55(32)からのパラレル出力端子として機能する。このとき、入出力端子tm(1)〜tm(32)は、キードライブユニット20に配線接続される。さらに、スイッチ58A、58B、58C、58Dが動作して、入力ライン57Aがデータ受信端子DRに接続され、出力ライン57Dがデータ送信端子DXに接続され、出力ライン57Bと入力ライン57Cとが接続状態となる。
データの流れは次のようになる。まず、「出力専用モード」では、PWM値は、DSP51により、演奏データにのみ基づいて(A/D値に基づかないで)算出される。そして、図6に示すように、DSP51は、その出力端子dxから、PWM値をASIC52(1)のデータ受信端子DRにシリアルに供給する。図8(c)も参照して説明すると、PWM値が、各ASIC52におけるブロック群LBLにおいてデータ受信端子DRからシリアルに入力されると共に、ブロック群LBL、出力ライン57B及び入力ライン57Cを介してブロック群UBLにも転送される(さらには、後続のASIC52のブロック群LBL、UBLにも転送される)。これと並行して、ブロック群LBL、UBLに既に入力されているPWM値がパラレルに出力される。A/D値の入出力はなされない。
図5も参照して説明すると、ワードシンク信号WSの立ち下がりのタイミングで、各シフトレジスタ54に保持されているPWM値が対応するラッチ回路55に転送される。そして、次のワードシンク信号WSの立ち下がりまでの間に、シリアルクロック信号SCKに同期して、ASIC52(1)のデータ受信端子DRに受信されるPWM値が、ASIC52(1)〜52(6)のシフトレジスタ54内を1bitずつシフトする。これと並行して、各ASIC52のラッチ回路55(1)〜55(32)が、既に保持しているPWM値を、対応する入出力端子tm(1)〜tm(32)からパラレルに出力する。
『入力専用モード』
次に、入力専用モードの動作を説明する。
端子「/OEL」/端子「/OEH」に入力される制御信号が「H/H」(第3モード信号)のとき「入力専用モード」となり、この入力専用モードでは、出力専用モードと同様に、シリアルクロック信号SCKの立ち下がりが3972回発生する毎にワードシンク信号WSの立ち下がりが1回発生する。入力専用モードでは、ブロックBL(1)〜BL(32)が32チャンネル(鍵31の32個分)に対応し、入出力端子tm(1)〜tm(32)はいずれも入力端子として機能する。
入力専用モードは、例えば、奏者の鍵盤演奏をデジタルデータとして記録する記録専用の用途への適用が想定される。ASIC52を入力専用モードで用いる場合は、例えば88個の鍵31の操作を記録することに限っていえば、ASIC52を3つ設ければ足りる。
端子「/OEL」、端子「/OEH」に入力される制御信号がいずれも「H」であることにより、スイッチ回路56(1)〜56(32)が、ラッチ回路55(1)〜55(32)から入出力端子tm(1)〜tm(32)へのデータ出力を不能とし、入出力端子tm(1)〜tm(32)は、A/D変換器53へのパラレル入力端子として機能する。具体的には、入出力端子tm(1)〜tm(16)が、A/D変換器53(32)〜53(17)へのパラレル入力端子として機能し、入出力端子tm(17)〜tm(32)が、A/D変換器53(16)〜53(1)へのパラレル入力端子として機能する。このとき、入出力端子tm(1)〜tm(32)は、キーセンサユニット37と配線接続される。さらに、スイッチ58A、58B、58C、58Dが動作して、入力ライン57Aがデータ受信端子DRに接続され、出力ライン57Dがデータ送信端子DXに接続され、出力ライン57Bと入力ライン57Cとが接続状態となる。
データの流れは次のようになる。すなわち、図8(d)も参照して説明すると、各ASIC52におけるブロック群LBL、UBLにおいて、検出信号SDがパラレルに入力されるのと並行して、ブロック群UBLにおいて既に入力されてデジタルデータに変換されているA/D値がデータ送信端子DXからシリアルに出力されると共に、ブロック群LBLにおいて既に入力されてデジタルデータに変換されているA/D値が、出力ライン57B、入力ライン57C及びブロック群UBLを介してデータ送信端子DXからシリアルに出力される。図7に示すように、DSP51は、その受信端子drで、上記出力されたA/D値をシリアルに受信する。PWM値の生成及び入出力はなされない。
図5も参照して説明すると、ワードシンク信号WSの立ち下がりのタイミングで、各A/D変換器53に保持されているA/D値が対応するシフトレジスタ54に転送される。そして、次のワードシンク信号WSの立ち下がりまでの間に、シリアルクロック信号SCKに同期して、シフトレジスタ54に転送されたA/D値が、ASIC52(1)〜52(6)のシフトレジスタ54内を1bitずつシフトする。これと並行して、各A/D変換器53が、対応する入出力端子tm(1)〜tm(32)から検出信号SDをパラレルに入力すると共にA/D変換を行う。
本実施の形態によれば、シフトレジスタ54を、入出力制御モードに応じてデータのシリアル入出力及びパラレル入出力に用いることができるので、各モードに個別に対応するシフトレジスタ54をそれぞれ別個に設ける場合に比し、ASIC52の構成が簡単であるだけでなく、ASIC52を多用途に用いることができる。しかも、ASIC52におけるブロックBLの段数を変更するか、またはI/Oユニット50に実装されるASIC52の数を変更することで、制御可能なチャンネル数を任意に変更できることから、ASIC52の汎用性が高く、鍵盤装置30だけでなく、各種の装置への適用が容易である。従って、ASIC52の数は、それが搭載される装置の種類や機種等に応じて設定すればよく、さらには、ブロックBLの段数の変更を組み合わせれば、より多種の装置に、ブロックBLの無駄を最小限に抑えて適用可能にして、コストを抑えることが容易となる。
また、入出力端子tmが、入出力制御モードに応じて入力端子、出力端子のいずれかとして機能するので、入力端子、出力端子を個別に設ける構成に比し、構成を簡単にすることができる。
また、制御対象とするチャンネル数を含む制御処理の内容は、DSP51における制御アルゴリズムの変更等によって容易に改変可能であることからも、ASIC52の汎用性が高いといえる。
なお、本実施の形態において、全入出力制御モードにおいて、スイッチ58A、58Dを廃止すると共に、入力ライン57A、出力ライン57Dをデータ受信端子DR、データ送信端子DXに常に接続状態にしておき、入出力モードにおいてだけ、ブロック群UBLに対するデータの供給を停止するようにしてもよい。
なお、本実施の形態における入出力モードでは、ブロック群UBLが使用されないが、これとは逆に、ブロック群UBLを使用しブロック群LBLを使用しないようにしても、入出力モードが実現可能である。すなわち、端子「/OEL」/端子「/OEH」に入力される制御信号を「H/L」とし、図8(b)に示すように、図8(a)でブロック群LBLが果たす機能と同様の機能をブロック群UBLが果たすようにしても、入出力モードと同じ制御が可能となる。
なお、ASIC52を、16チャンネルで入出力する入出力モードにのみ用いる場合は、各ASIC52は、ブロック群LBL、UBLのいずれか一方(入出力端子tmについては32個の入出力端子tm(1)〜tm(32)を備えるもの)のみを備えるように構成してもよい。
なお、上述したように、ASIC52の数は、記録専用、またはフィードバック制御無しの再生専用に用いる場合は、本実施の形態のようなフィードバック制御有りの構成に比し半分の数で足りる。あるいは、本実施の形態において、入力専用モード、または出力専用モードでは、ASIC52の3つを用い、他の3つはデータをスルーさせるように接続関係を制御するようにしてもよい。
なお、検出信号SDは鍵31の押下位置を示す位置データであるが、フィードバック制御に用いるデータはこれに限られず、例えば、速度、加速度等の、鍵31の変位に基づく物理量のデータであってもよい。また、ASIC52を用いて処理されるデータとして例示した、検出信号SD乃至A/D値、PWM値は一例であり、他の種類の装置の他のデータについても広く処理対象にすることができる。
11 CPU、 40 コントロールユニット、 50 I/Oユニット、 51 DSP、 52 ASIC、 53 A/D変換器、 54(1)〜54(16) シフトレジスタ(第1の入出力バッファ、入出力バッファ)、 54(17)〜54(32) シフトレジスタ(第2の入出力バッファ、入出力バッファ)、 55 ラッチ回路、 56 スイッチ回路(動作切替手段の一部)、 57A 入力ライン(第1のシリアル入力ライン、シリアル入力ライン)、 57B 出力ライン(第1のシリアル出力ライン、シリアル出力ライン)、 57C 入力ライン(第2のシリアル入力ライン)、 57D 出力ライン(第2のシリアル出力ライン)、 58(58A、58B、58C、58D) スイッチ(動作切替手段の一部)、 tm 入出力端子(パラレル入力端子及びパラレル出力端子)、 DR データ受信端子(シリアル入力端子)、 DX データ送信端子(シリアル出力端子)、 BL ブロック、 LBL、UBL ブロック群、 「/OEL」 端子(モード信号入力端子)、 「/OEH」 端子(モード信号入力端子)