(57)【要約】【課題】  操作子の状態のスキャンに要するＣＰＵの負荷を低減する。【解決手段】  ＣＰＵ１１と、ＣＰＵ１１からアクセス可能な操作子ＲＡＭ３５とを有する集積回路１０において、ＣＰＵ１１とは別に、複数の操作子を有する操作子回路４８にアクセスし、その各操作子の状態を示すアナログ信号を周期的に順次出力させる、スキャン制御部３１と、操作子回路４８が出力する信号をデジタルデータに変換するＡＤＣ３２、変化幅制限回路及びＬＰＦ３４とを設け、その変換後のデジタルデータを操作子ＲＡＭ３５に書き込むようにした。【選択図】        図１
2007258780.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、該ＣＰＵからアクセス可能な記憶手段とを有する半導体集積回路であって、
前記ＣＰＵとは別に、
複数の操作子を有する操作子回路にアクセスし、前記各操作子の状態を示すアナログ信号を周期的に順次出力させる、操作子回路アクセス手段と、
前記操作子回路が出力する信号をデジタルデータに変換する変換手段と、
前記変換手段による変換後のデジタルデータを前記記憶手段に書き込む書き込み手段とを設けたことを特徴とする半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路であって、
前記書き込み手段による前記記憶手段へのアクセスを、前記ＣＰＵによる前記記憶手段へのアクセスより優先させるか、又は前記ＣＰＵによる前記記憶手段へのアクセスと重ならないタイミングで行うようにしたことを特徴とする半導体集積回路。
【請求項３】
請求項１又は２記載の半導体集積回路であって、
前記書き込み手段が、前記デジタルデータの変化幅を制限する制限手段を有することを特徴とする半導体集積回路。
【請求項４】
請求項１乃至３のいずれか一項記載の半導体集積回路であって、
前記書き込み手段が、前記デジタルデータの変化を滑らかにするローパスフィルタを有することを特徴とする半導体集積回路。
【請求項５】
請求項１乃至４のいずれか一項記載の半導体集積回路を備えた音響信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、操作子回路を介して操作子の操作を検出する機能を有する半導体集積回路及び、このような半導体集積回路を備えた音響信号処理装置に関する。
【背景技術】
【０００２】
従来から、半導体集積回路に、パラレルＩ／Ｏ（入出力部）とＡＤＣ（アナログ・デジタル・コンバータ）を設け、これらにより外部の操作子の操作を検出できるようにすることが行われている。
そしてこの場合、パラレルＩ／Ｏにマトリクス接続された複数の操作子で構成される操作子回路を接続し、操作子がオンオフ入力用のボタンやスイッチの場合には、操作子回路からの電圧信号をデジタル信号としてパラレルＩ／Ｏの入力ポートに入力させるようにしていた。また、操作子が、スライダやダイヤルのように連続的な値を設定するものの場合には、操作子回路からの電圧信号をＡＤＣに入力させ、ここでＡＤ変換を行ってデジタルデータを得るようにしていた。
【０００３】
また、半導体集積回路に設けた制御用のＣＰＵに操作子の操作内容を検出させる場合、パラレルＩ／Ｏの出力ポートに検出したい操作子のアドレスをセットさせることにより、パラレルＩ／Ｏにそのアドレスを示すアドレス信号を操作子回路に入力させ、操作子回路にそのアドレスと対応する複数の操作子の状態を示す電圧信号を、パラレルＩ／Ｏの入力ポートあるいはＡＤＣに入力させて、ＣＰＵが操作子の状態を示すデータを取得できるようにしていた。
【０００４】
この場合、ＣＰＵに、操作子のある全てのアドレスをパラレルＩ／Ｏの出力ポートに順次セットさせることにより、全操作子の状態をスキャンさせることができる。そして、ＣＰＵに常に操作子の状態や操作内容を把握させるために、ＣＰＵにこのスキャンを定期的に繰り返させるようにしていた。
このような技術に関連する文献としては、例えば特許文献１が挙げられる。
【特許文献１】特許第２５４２５７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上記のスキャンを行う場合、オンオフ入力用の操作子については、アドレスのセット後直ちに、複数の操作子の状態を示す信号を取得できた。しかし、連続的な値を設定する操作子については、アドレスをセットした後、信号の電圧が安定するまで数マイクロ秒から数十マイクロ秒程度待機し、さらに、電圧信号を操作子毎に１つずつＡＤ変換して取り込む必要があった。さらに、ＡＤ変換の結果にはノイズが乗ることが多いため、得られたデータにローパスフィルタ等の処理を行い、ノイズを除く必要があった。
【０００６】
このため、操作子の状態をスキャンする場合、スキャン対象に連続的な値を設定する操作子があると、適切な時間間隔でパラレルＩ／Ｏの出力ポートにアドレスを書き込んだ上、入力する信号を１つずつ区別して処理する必要があった。そして、このための処理は、処理自体は単純であるが、常にＣＰＵを拘束し、ＣＰＵにとっての負担になるという問題があった。そして、このために処理能力の高いＣＰＵを搭載すると、半導体集積回路や、ひいてはその半導体集積回路を搭載する装置のコストアップに繋がるという問題があった。
【０００７】
この発明は、このような問題を解決し、操作子の状態のスキャンに要するＣＰＵの負荷を低減し、このことにより、半導体集積回路や、その半導体集積回路を搭載する装置のコストを低減することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、この発明の半導体集積回路は、ＣＰＵと、そのＣＰＵからアクセス可能な記憶手段とを有する半導体集積回路において、上記ＣＰＵとは別に、複数の操作子を有する操作子回路にアクセスし、上記各操作子の状態を示すアナログ信号を周期的に順次出力させる、操作子回路アクセス手段と、上記操作子回路が出力する信号をデジタルデータに変換する変換手段と、上記変換手段による変換後のデジタルデータを上記記憶手段に書き込む書き込み手段とを設けたものである。
【０００９】
このような半導体集積回路において、上記書き込み手段による上記記憶手段へのアクセスを、上記ＣＰＵによる上記記憶手段へのアクセスより優先させるか、又は上記ＣＰＵによる上記記憶手段へのアクセスと重ならないタイミングで行うようにするとよい。
さらに、上記書き込み手段に、上記デジタルデータの変化幅を制限する制限手段を設けるとよい。
【００１０】
さらに、上記書き込み手段に、上記デジタルデータの変化を滑らかにするローパスフィルタを設けるとよい。
また、この発明の音響信号処理装置は、上記の半導体集積回路を備える音響信号処理装置である。
【発明の効果】
【００１１】
以上のようなこの発明の半導体集積回路又は音響信号処理装置によれば、操作子の状態のスキャンに要するＣＰＵの負荷を低減し、このことにより、半導体集積回路や、その半導体集積回路を搭載する音響信号処理装置のコストを低減することができる。
【発明を実施するための最良の形態】
【００１２】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
まず、図１に、この発明の半導体集積回路の実施形態である集積回路を備えた、この発明の音響信号処理装置の実施形態の構成を示す。
このうち、集積回路１０は、図１に示す通り、ＣＰＵ１１，ＤＳＰ１２，メモリＩ／Ｏ（入出力部）１３，１４，内部ＲＡＭ１５，波形Ｉ／Ｏ１６，ＭＩＤＩ（Musical Instruments Digital Interface：登録商標）Ｉ／Ｏ１７，タイマ１８，パラレルポート１９，操作子Ｉ／Ｏ３０を備え、またこれらのうち必要な部分を接続するためのＣＰＵバス２１及びＤＳＰバス２２を備えている。
【００１３】
また、音響信号処理装置４０は、プリント基板上に集積回路１０を搭載し、さらに、外部ＲＯＭ４１，外部ＲＡＭ４２及びこれらを集積回路１０のメモリＩ／Ｏ１４に接続するためのメモリバス４３を備えている。また、ＡＤＣ（アナログ・デジタル・コンバータ）４４，ＤＡＣ（デジタル・アナログ・コンバータ）４５，音声入力端子４６，音声出力端子４７，操作子回路４８，スイッチ／表示回路４９を備えている。
【００１４】
これらのうち、ＣＰＵ１１は、集積回路１０の各部の動作を制御する制御手段であり、所要のプログラムを実行することにより、ＤＳＰ１２が実行する信号処理の内容の設定、ＭＩＤＩＩ／Ｏ１７を介した通信、タイマ１８による計時、パラレルポート１９や操作子Ｉ／Ｏ３０を介した操作の検出及び表示器への表示等の制御を行う。
なお、ＣＰＵ１１が実行するプログラムは、外部ＲＯＭ４１に記憶させておくが、実行する際には、直接ここから読み出して実行してもよいし、予め読み出して内部ＲＡＭ１５等にコピーしておき、そこから読み出して実行してもよい。
【００１５】
ＤＳＰ１２は、波形Ｉ／Ｏ１６を介して入力する音響信号に対し、ミキシング，イコライジング，エフェクト付与等の種々の動作を行い、波形Ｉ／Ｏ１６を介して出力する音響信号処理手段である。実行する信号処理の内容は、ＣＰＵ１１がＤＳＰ１２に設定するマイクロプログラムやパラメータの内容によって定められる。
【００１６】
メモリＩ／Ｏ１３は、ＣＰＵバス２１とＤＳＰバス２２の両方に接続し、これらのバスを介してなされるＣＰＵ１１及びＤＳＰ１２からのメモリへのアクセス要求に応じて内部ＲＡＭ１５へのデータの読み書きを行うと共に、それらのアクセス要求を調停する機能を有する。
【００１７】
メモリＩ／Ｏ１４は、ＣＰＵ１１から外部のメモリバス４３に接続されたメモリへのアクセス要求を、メモリバス４３に伝え、そのアクセス要求に応じてメモリバス４３に接続されたメモリへのデータの読み書きを行う機能を有する。
内部ＲＡＭ１５は、ＣＰＵ１１及びＤＳＰ１２のワークエリアとして使用したり、ＣＰＵ１１が実行するプログラムを一時的に記憶したりする記憶手段である。
【００１８】
波形Ｉ／Ｏ１６は、デジタル波形データの入出力を行うためのインタフェースであり、外部のＡＤＣ４４等から入力される波形データをＤＳＰ１２に入力し、またＤＳＰ１２による処理後の波形データを外部のＤＡＣ４５等に出力する機能を有する。なお、音響信号処理装置４０にデジタルの音声入出力端子、および入力端子用のバッファ回路と出力端子用のドライブ回路があれば、ＡＤＣ４４やＤＡＣ４５を介して波形データを入出力する必要はない。
【００１９】
ＭＩＤＩＩ／Ｏ１７は、外部回路との間でのＭＩＤＩデータを入出力する機能を有する。ここでは音響信号処理装置４０側にＭＩＤＩデータを取り扱う機能を設けていないが、音響信号処理装置４０にも適切なインタフェースを設ければ、電子楽器やＰＣ（パーソナルコンピュータ）等が出力するＭＩＤＩデータを集積回路１０に入力し、ＣＰＵ１１にそのＭＩＤＩデータの内容に従ってＤＳＰ１２による信号処理の内容を変更させることも可能である。
【００２０】
タイマ１８は、ＤＳＰ１２による信号処理のタイミングや、パラレルポート１９及び操作子Ｉ／Ｏ３０による操作子の状態の検出タイミングを計測するための計時手段である。
パラレルポート１９は、上記の特許文献１の場合と同様に、スイッチ／表示回路４９に含まれるスイッチ操作子のスキャンを行ってそのオンオフ状態を取り込んだり、スイッチ／表示回路４９に含まれる表示器に対し表示内容を制御する信号を供給したりするためのインタフェースである。
【００２１】
操作子Ｉ／Ｏ３０は、スキャン制御部３１，ＡＤＣ３２，変化幅制限回路３３，ＬＰＦ（ローパスフィルタ）３４，操作子ＲＡＭ３５を有する。そして、操作子回路４８のような外部回路からの複数の操作子の各状態を示すアナログ信号の入力を受け付け、これをデジタルデータに変換して操作子ＲＡＭ３５に書き込み、ＣＰＵ１１による処理に供するためのインタフェースである。
この操作子Ｉ／Ｏ３０は、操作子回路アクセス手段、変換手段、および書き込み手段として機能するが、各部の機能や構成及び動作については、後述する。
【００２２】
また、外部ＲＯＭ４１は、ＣＰＵ１１が実行するプログラムや、その他変更する必要のないデータを記憶する記憶手段である。外部ＲＯＭ４１をフラッシュメモリ等の書き換え可能な不揮発性記憶手段により構成し、これらのデータをアップデートできるようにしてもよい。
外部ＲＡＭ４２は、ＣＰＵ１１のワークエリアを設けるための記憶手段であり、ＳＲＡＭ（Static RAM）やＤＲＡＭ（Dynamic RAM）により構成することができる。
【００２３】
ＡＤＣ４４は、アナログの音声入力端子４６から入力する音響信号をデジタルの波形データに変換して波形Ｉ／Ｏ１６に出力する変換手段である。
ＤＡＣ４５は、波形Ｉ／Ｏ１６から入力する波形データをアナログの音響信号に変換して音声出力端子４７に出力する変換手段である。
【００２４】
操作子回路４８は、可変抵抗等を利用して操作内容をアナログ信号として出力するスライダやノブ等の操作子を設けた回路である。その機能や構成及び動作については、後述する。
スイッチ／表示回路４９は、ボタンやキー等、操作内容を押下有無やオンオフのようなデジタル信号として出力する操作子の操作内容を検出して出力するスイッチ回路及び、ＣＰＵ１１やＤＳＰ１２から受信したデータに基づき表示器にメッセージやパラメータの値等を表示させるための表示回路を備えた回路である。
【００２５】
以上のような音響信号処理装置４０によれば、音声入力端子４６から入力する音響信号に対し、集積回路１０内のＤＳＰ１２による種々の信号処理を行って、その結果を音声出力端子４７から出力することができる。ＤＳＰ１２が行う信号処理の内容は、予め用意した選択肢の中から、ユーザが操作子回路４８やスイッチ／表示回路４９に設けた操作子により選択することができるし、信号処理のパラメータの値も、同様に設定することができる。そして、ＣＰＵ１１が操作子の操作に応じた信号処理を行わせるためのマイクロプログラムやパラメータの値のセットを生成し、ＤＳＰ１２に設定する。
このような音響信号処理装置４０は、例えばミキサやエフェクタとして構成することができるが、これに限られることはない。
【００２６】
また、音響信号処理装置４０の各部の制御は、ここでは概ねＣＰＵ１１に担当させている。ただし、操作子回路４８に設けた操作子の状態の検出は、操作子Ｉ／Ｏ３０に行わせ、その結果を操作子ＲＡＭ３５に格納させている。そして、ＣＰＵ１１は、集積回路１０あるいは音響信号処理装置４０の起動時に、スキャン制御部３１、変化幅制限回路３３、およびＬＰＦ３４に検出処理のパラメータを設定しておけば、その後は単に操作子ＲＡＭ３５を参照するのみで、操作子回路４８に設けた操作子の状態（つまみの位置や押下有無等）を示す操作子データを取得できる。
【００２７】
次に、この機能に関連する点を中心に、操作子回路４８及び操作子Ｉ／Ｏ３０の構成について説明する。
まず、図２に、操作子回路４８の構成を示す。
図２に示すように、操作子回路４８は、第１乃至第４の操作子群１１０〜１４０を有する。そして、各操作子群１１０〜１４０には、可変抵抗Ｒを利用して状態を検出するスライダやノブ等の操作子を、１６個ずつ、最大で計６４個設けることができる。符号Ｒの後の添え字が、何番目の操作子と対応する抵抗であるかを示す数字である。
【００２８】
また、これらの操作子は、例えば全て同じスライダとし、１ｃｈ（チャンネル）から６４ｃｈに対応するフェーダとして用いることも考えられるし、スライダとノブを組み合わせ、一部をｃｈストリップに設けるフェーダ，パンとし、残りをマトリクスミキサのセンドレベル設定用の操作子として用いたりすることも考えられる。なお、操作子は、最大６４操作子まで、必要に応じて１操作子単位で任意の数設けるようにすればよい。
そして、各可変抵抗Ｒは、操作子群毎に並列に接続し、ここにプルアップ電圧ＡＶＤＤを印加している。
【００２９】
また、第１の操作子群１１０を代表として説明すると、第１の操作子群１１０には、アナログスイッチ１１１，１１２を設け、操作子の操作に応じて移動する各可変抵抗Ｒの接点Ｐを、アナログスイッチ１１１，１１２のＡ０〜Ａ７端子に接続している。従って、接点Ｐを通じ、操作子の状態に応じた電圧のアナログ電圧信号がアナログスイッチ１１１，１１２のＡ０〜Ａ７端子に入力される。
【００３０】
そして、アナログスイッチ１１１，１１２は、ＥＮ端子及びＳ端子への入力信号に応じ、Ａ０〜Ａ７端子に入力する信号のいずれかを、ＣＯＭ端子から出力することができる。ＥＮ端子は、イネーブル端子であり、ここに「１」が入力された場合に、ＣＯＭ端子からの出力を行い、「０」が入力された場合には、ＣＯＭ端子からの出力は行わない。
【００３１】
また、Ｓ端子には、０〜７のいずれかを示す３ビットのアドレス信号を入力し、その数字により、Ａ０〜Ａ７端子のうちどの端子に入力する信号をＣＯＭ端子から出力するかを指定することができる。
図を簡単にするため、図示は省略したが、第２乃至第４の操作子群１２０〜１４０にも、同様なアナログスイッチを設け、ＥＮ端子及びＳ端子への入力信号に応じ、操作子群中のいずれかの操作子の状態に応じた電圧のアナログ電圧信号を出力できるようにしている。
【００３２】
操作子Ｉ／Ｏ３０のスキャン制御部３１は、このような操作子回路４８に対し、４ビットのアドレス信号ＳＣＡＮＳＷを出力して、どの操作子に関する信号を出力させるかを指定する。そして、このうち下位３ビットであるＳＣＡＮＳＷ［２：０］は、各アナログスイッチのＳ端子に入力する。また、最上位ビットＳＣＡＮＳＷ［３］は、番号の小さい操作子の接点Ｐが接続されるアナログスイッチ（第１の操作子群１１０の場合はアナログスイッチ１１２）のＥＮ端子に入力する。さらに、最上位ビットの反転信号を、スキャン信号ＳＣＡＮＳＷ［４］として、番号の大きい操作子の接点Ｐが接続されるアナログスイッチ（第１の操作子群１１０の場合はアナログスイッチ１１１）のＥＮ端子に入力する。
【００３３】
このようにすることにより、実質的に、４ビットのアドレス信号ＳＣＡＮＳＷにより、各操作子群の１６の操作子のいずれかを選択し、その操作子の状態に応じた電圧信号の出力を得ることができる。この出力は、４本の出力信号線ＡＮＰＯＲＴ［０］〜［３］により、それぞれ操作子Ｉ／Ｏ３０のＡＤＣ３２に入力される。
【００３４】
なお、図示を一部省略したものも含め、全ての操作子群で、アナログスイッチには同じスキャン信号ＳＣＡＮＳＷが入力される。従って、例えばスキャン制御部３１が出力するアドレス信号が「００００」であった場合、出力信号線ＡＮＰＯＲＴ［０］からは、１番目の操作子の状態を示す信号が出力されるが、その他の出力信号線ＡＮＰＯＲＴ［１］〜［３］からも、対応する位置に示した、２〜４番目の操作子の状態を示す信号が出力される。
そして、ＡＤＣ３２では、出力信号線ＡＮＰＯＲＴ［０］〜［３］を順次選択して、その選択した信号線から入力する電圧信号をＡ／Ｄ変換により、デジタルデータ（数値データ）に変換し、以後の処理に使用する。
【００３５】
次に、図３に、スキャン制御部３１が操作子回路４８に出力するアドレス信号と、ＡＤＣ３２に出力するセレクト信号の出力タイミングを示す。
この図に示すように、スキャン制御部３１は、０からＮ−１までのアドレス信号ＳＣＡＮＳＷを順次出力することにより、操作子回路４８に、１番目から４Ｎ番目までの操作子の状態に応じた電圧信号を、順次出力させる。この動作が、操作子のスキャンであり、このような動作を行うスキャン制御部３１は、操作子回路アクセス手段として機能する。
そして、Ｎの値は、操作子のスキャン範囲を指定するパラメータで、１から１６までの範囲で、ＣＰＵ１１がレジスタに値を書き込んで設定する。
【００３６】
そして、スキャン制御部３１は、操作子回路４８に新たなアドレス信号を入力した場合、ＡＤＣ３２に対して、操作子回路４８からの電圧信号の出力が安定するまで、矢印Ａで示す期間だけ待機させ、その後、矢印Ｂで示す期間ずつ、各出力信号線ＡＮＰＯＲＴ［０］〜［３］を順次選択させるためのセレクト信号を出力する。
【００３７】
ＡＤＣ３２は、出力信号線ＡＮＰＯＲＴ［０］〜［３］から、セレクト信号によって指定される信号線を選択し、その信号線から入力する信号をＡ／Ｄ変換することにより、アドレス信号と対応する各操作子の状態を示す数値データを順次生成し、そのデータを変化幅制限回路３３に入力する。
そして、全ての出力信号線を選択して信号を変換し終わるタイミングで、スキャン制御部３１は、次のアドレス信号を操作子回路４８に入力する。
【００３８】
従って、１回のスキャンに要する時間は、（Ａ＋Ｂ×４）×Ｎである。また、矢印Ａで示す期間は、数マイクロ秒から数十マイクロ秒程度であり、ここでは１６マイクロ秒としている。また、矢印Ｂで示す期間は、１〜２マイクロ秒程度である。
そして、スキャン制御部３１は内部にタイマを有しており、レジスタにより設定された時間間隔で、０からＮ−１までのアドレスのスキャンを繰り返す。あるいは、一度スキャンが終了した時点ですぐに次のスキャンを開始するようにしてもよい。
【００３９】
次に、図４に、変化幅制限回路３３の構成を示す。
この回路は、ノイズ等による急激な数値変動を緩和するために設けた回路であり、スキャンにより得た、ある操作子の状態を示す操作子データが、その操作子の前回の操作子データと変化幅制限値以上異なる場合には、変化幅をその変化幅制限値に制限する制限手段である。
より具体的には、差分検出回路３３１，加減算回路３３２，比較回路３３３，セレクタ３３４を有する。
【００４０】
そして、差分検出回路３３１には、各操作子に対応するタイミングごとに、その操作子の今回のスキャンにより取得した、ＡＤＣ３２によるＡ／Ｄ変換後の１０ビットの数値データと、その操作子の前回のスキャンにより取得したデータにＬＰＦ３４までの処理を行い、その後操作子ＲＡＭ３５に格納しておいた前回スキャン時のデータ（前回の操作子データ）のうち上位１０ビットとを入力し、これらのうち上位８ビットの差分の絶対値を求め、その差を比較回路３３３に入力する。また、今回のデータの値と前回のデータの値のどちらが大きいかを示す信号を、加減算回路３３２に入力する。
【００４１】
加減算回路３３２は、今回のスキャンにより取得したデータの許容上限値あるいは下限値を求める回路である。そして、差分検出回路３３１から入力する信号により、今回のデータの値と前回のデータの値のどちらが大きいかを判断し、今回の方が大きければ、前回のデータの値に変化幅制限値を加えた値を許容上限値として、今回の方が小さければ、前回のデータの値から変化幅制限値を引いた値を許容下限値として、セレクタ３３４に出力する。
【００４２】
比較回路３３３は、各操作子に対応するタイミングごとに、差分検出回路３３１が求めた差分の絶対値と、変化幅制限値とを比較し、その結果をセレクタ３３４に出力する。
そして、セレクタ３３４では、その差分の絶対値が変化幅制限値より小さければ、変化幅が許容範囲内であるので、ＡＤＣ３２から入力するデータをそのまま今回の数値化データとして出力する。逆に、差分の絶対値が変化幅制限値より大きければ、データの変化幅を制限値に制限すべく、加減算回路３３２から入力する許容上限値又は許容下限値を、今回の数値化データとして出力する。
なお、変化幅制限値は、ＣＰＵ１１がレジスタに値を書き込むことにより、任意に設定可能である。また、変化幅制限値に特定の値（例えば最大値）を設定することにより、変化幅制限回路３３の変化幅制限機能を無効化することができるようにしてもよい。
【００４３】
次に、図５に、ＬＰＦ３４の構成を示す。
ＬＰＦ３４も、ノイズ等による急激な数値変動を緩和するために設けた回路であり、変化幅制限回路３３から出力される各操作子の数値化データの変化を滑らかにする機能を有する。
より具体的には、乗算器３４１，３４３，加算器３４２，遅延回路３４４を有する。
【００４４】
そして、乗算器３４１にて、各操作子に対応するタイミングごとに、その操作子の今回の数値化データにフィルタ係数ａを乗算し、乗算器３４３にて、遅延回路３４４から供給されるその操作子の前回のフィルタ処理後のデータに（１−ａ）を乗算し、加算器３４２にて、これらを加算して、今回のフィルタ処理後のデータを得る。遅延回路３４４は、操作子ＲＡＭ３５に記憶されているその操作子の前回の操作子データを読み出す回路として実現される。
【００４５】
なお、フィルタ係数ａは、０以上１以下の値であり、ＣＰＵ１１がレジスタに値を書き込むことにより、任意に設定可能である。例えば、４ビットのレジスタにより、１／１６単位で設定できるようにすることが考えられる。また、ａが１の場合には、ＬＰＦ３４の機能は無効化され、入力データのビット数のみ変更し、実質的にスルーすることになる。
【００４６】
そして、ＬＰＦ３４は、フィルタ処理後のデータを、今回のスキャンにより得られた、操作子の状態を示すデジタルデータである操作子データの最終的な値として、操作子ＲＡＭ３５に書き込む。
また、変化幅制御回路３３やＬＰＦ３４による操作子ＲＡＭ３５からの読み出しや書き込みは、操作子毎に予め定めたアドレスに行うが、このためには、変化幅制限回路３３やＬＰＦ３４が、各操作子のタイミングごとに、スキャン制御部３１から操作子の通し番号を受け取り、それぞれ、その通し番号に基づいてその操作子の操作子データにアクセスするためのアドレス信号を生成するようにすればよい。
【００４７】
以上のような各部の機能により、操作子Ｉ／Ｏ３０は、操作子回路４８に設けた操作子のうち、スキャン範囲の操作子の状態を示す操作子データを、ノイズを緩和する処理を行った状態で、ＣＰＵ１１による制御とは独立して、操作子ＲＡＭ３５に書き込むことができる。
【００４８】
次に、ＣＰＵ１１が実行する集積回路１０の制御に関する処理のうち、操作子Ｉ／Ｏ３０の動作に関連する処理について説明する。
まず、図６に、操作子Ｉ／Ｏ初期化処理のフローチャートを示す。
ＣＰＵ１１は、集積回路１０あるいは音響信号処理装置４０の起動時に、適当なタイミングで図６に示す処理を開始する。
【００４９】
そして、スキャンｃｈ数，スキャン周期，待ち時間，変化幅，フィルタ係数の各パラメータの値を、操作子Ｉ／Ｏ３０内の各部のレジスタに設定し（Ｓ１１〜１５）、その後、スキャン制御部３１に対してスキャンの開始指示を行って（Ｓ１６）処理を終了する。
なお、スキャンｃｈ数は、スキャンの際にアドレス信号を変化させる範囲を定めるＮ，スキャン周期は、スキャンを開始する周期，待ち時間は、図３に矢印Ａで示した時間の長さ，変化幅は、図４に示した変化幅制限値，フィルタ係数は、図５に示したフィルタ係数ａである。
以上の処理により、操作子Ｉ／Ｏ３０に必要なパラメータの値を設定し、操作子のスキャンを開始させることができる。
【００５０】
次に、図７に、操作子回路４８に設けた操作子の操作に応じたＤＳＰ制御処理のフローチャートを示す。
ＣＰＵ１１は、操作子回路４８に設けた操作子の状態を検出するタイミングで、例えば所定時間毎に、図７に示す処理を開始する。
そして、まず操作子回路４８に設けた操作子のうち最初の操作子を指定し（Ｓ２１）、その後、操作子ＲＡＭ３５から指定した操作子の操作子データを読み出す（Ｓ２２）。このデータは、操作子Ｉ／Ｏ３０が自動的にスキャンして操作子ＲＡＭ３５に書き込んでおくものである。
【００５１】
そして、読み出した操作子データが前回読み出し時から変化していれば（Ｓ２３）、操作子データの変化が示す操作内容に応じて、ＤＳＰ１２の動作パラメータの値を更新する（Ｓ２４）と共に、更新後の動作パラメータの値に応じた係数を、ＤＳＰ１２に設定する（Ｓ２５）。例えば、操作子データの変化から、フェーダのつまみの位置が変更されたことを検出した場合に、その変更内容に応じてフェーダパラメータの値を更新すると共に、ＤＳＰ１２にフェーダの処理をさせるための係数の値を更新する等である。
なお、動作パラメータは、パラメータの値をユーザが認識し易い単位で表示できるようにするために設けており、単にＤＳＰ１２に係数を設定するだけであれば、操作子データの値を直接テーブル等により変換して係数を得るようにしてもよい。
【００５２】
ステップＳ２５の後は、次の操作子があれば（Ｓ２６）、その操作子を指定し（Ｓ２７）、ステップＳ２２に戻って処理を繰り返す。ステップＳ２６で既に全ての操作子を指定していれば、処理を終了する。
また、ステップＳ２３で変化がなければ、パラメータの値やＤＳＰ１２の係数を変更する必要がないため、そのままステップＳ２６に進む。
以上の処理により、ＣＰＵ１１は、操作子回路４８に設けた操作子の操作に応じた動作を行うようにＤＳＰ１２を制御することができる。
【００５３】
そして、操作子回路４８に設けた操作子の操作内容を把握するためには、単に任意のタイミングで操作子ＲＡＭ３５の特定のアドレスの内容を読み出すだけでよく、ＣＰＵ１１が操作子回路４８へのアクセスのためのインタフェースの制御に拘束されることはない。また、操作子ＲＡＭ３５へは、外部ＲＡＭ４２と比べて高速にアクセス可能であるので、操作子データを、必要な場合に速やかに取得することができる。
従って、操作子の状態のスキャンに要するＣＰＵ１１の負荷を低減できる。そして、このことにより、価格や能力の比較的低いＣＰＵを半導体集積回路に設けても満足な処理性能を得ることができ、半導体装置や、その半導体集積回路を搭載する装置のコストを低減することができる。
【００５４】
また、操作子Ｉ／Ｏ３０において、変化幅制限回路３３やＬＰＦ３４により、Ａ／Ｄ変換後の生の数値化データにおけるノイズの影響を低減しておけば、ＣＰＵ１１は、操作子ＲＡＭ３５から読み出した操作子データを、ノイズ除去処理を行うことなく使用でき、この点でもＣＰＵ１１の負荷を低減できる。
なお、スイッチ／表示回路４９に設けた操作子の状態を示すデータは、パラレルポート１９を介したデジタル信号の送受信により、高速に取得することができるため、ＣＰＵ１１に制御させてもあまり負担にならない。そこで、ＣＰＵ１１が直接パラレルポート１９の動作を制御して、スイッチ／表示回路４９に設けた操作子の状態を示すデータを取得するようにしている。
【００５５】
また、操作子ＲＡＭ３５へのアクセスについて、ＬＰＦ３４による書き込みや、変化幅制限回路３３による読み出しは、ＣＰＵ１１からのアクセスと重ならないタイミングで行うようにするとよい。
これは、変化幅制限回路３３やＬＰＦ３４から操作子ＲＡＭ３５へのアクセスを待たせることがあると、ウェイト用の回路を設ける必要が生じ、操作子Ｉ／Ｏ３０の構成が複雑になるためである。
【００５６】
そして、アクセスが重ならないようにするためには、例えば、操作子ＲＡＭ３５のアクセスクロックを、ＣＰＵ１１の動作クロックの２倍の周波数とし、ＣＰＵ１１の１クロック内で、ＣＰＵ１１が操作子ＲＡＭ３５にアクセスするタイミングと、変化幅制限回路３３やＬＰＦ３４が操作子ＲＡＭ３５にアクセスするタイミングとを、別々に設けるようにすることが考えられる。
【００５７】
あるいは、メモリＩ／Ｏ１３のような調停手段を設け、変化幅制限回路３３，ＬＰＦ３４及びＣＰＵ１１から操作子ＲＡＭ３５へのアクセス要求を調停させるようにしてもよい。この場合でも、変化幅制限回路３３及びＬＰＦ３４からのアクセス要求を優先させれば、上記の場合と同様、操作子Ｉ／Ｏ３０の複雑化を防止できる。一方で、操作子ＲＡＭ３５へは高速にアクセス可能であるから、ＣＰＵ１１からのアクセスを待たせても、ＣＰＵ１１の動作にさほどの遅延は生じない。
【００５８】
以上でこの実施形態の説明を終了するが、回路及び装置の構成や具体的な処理内容等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、上述した実施形態においては、操作子回路４８に８つの入力から１つを選択して出力するアナログスイッチを用いる例について説明したが、１６の入力から１つを選択して出力するスイッチを用いてもよい。この場合、単に４ビットのアドレス信号により、どの入力を選択するかを示せばよいので、スキャン信号ＳＣＡＮＳＷ［４］は不要である。
【００５９】
また、上述した実施形態においては、パラメータＮの値を定めることにより、操作子Ｉ／Ｏ３０がスキャンする操作子の数を、４操作子をグループとしてグループ単位で指定することができるようにしていた。しかし、スキャンする操作子の数を、１操作子単位で指定できるようにしてもよい。また、スキャンする操作子の数を指定する機能を設けず、常に最大操作子数のスキャンを行うようにしてもよい。
【００６０】
また、図２には、６４個の操作子に常に電圧ＡＶＤＤを供給する構成を示したが、このようにすることは必須ではなく、例えば、アドレス信号ＳＣＡＮＳＷで選択される列の４つの操作子のみに電圧を供給するようにしてもよい。このようにするためには、各列に対して個別に電圧ＡＶＤＤを供給することができるドライブ回路を設け、どの列に電圧を供給するかをアドレス信号ＳＣＡＮＳＷで制御するようにすればよい。また、その場合、各操作子群１１０〜１４０のアナログスイッチを、１６個のダイオードと１つのプルアップ抵抗で置き換えることができる。
【００６１】
これ以外にも、１つの操作子群当たりの操作子の数を変えたり、操作子群の数を変えたりして、操作子回路４８に設ける操作子の数を変更してよいことは、もちろんである。また、複数の操作子回路４８を設けたり、複数の操作子Ｉ／Ｏ３０を設けたりしてもよい。  また、操作子回路４８が、可変抵抗Ｒ以外の手段により、操作子の状態に応じた信号を出力する回路であってもよい。
さらに、この発明が、音響信号を処理する半導体集積回路以外にも、任意の信号を処理するＤＳＰを備えた半導体集積回路に適用可能であることは、もちろんである。
【産業上の利用可能性】
【００６２】
以上の説明から明らかなように、この発明の半導体集積回路又は音響信号処理装置によれば、操作子の状態のスキャンに要するＣＰＵの負荷を低減することができる。また、このことにより、半導体集積回路や、音響信号処理装置のコストを低減することができる。従って、この発明を適用することにより、低コストの半導体集積回路や音響信号処理装置を提供することができる。
【図面の簡単な説明】
【００６３】
【図１】この発明の半導体集積回路の実施形態である集積回路を備えた、この発明の音響信号処理装置の実施形態の構成を示すブロック図である。
【図２】図１に示した操作子回路の構成をより詳細に示す図である。
【図３】図１に示したスキャン制御部が出力するアドレス信号及びセレクト信号の例を示す図である。
【図４】図１に示した変化幅制限回路の構成を示す図である。
【図５】図１に示したＬＰＦの構成を示す図である。
【図６】図１に示したＣＰＵが実行する操作子Ｉ／Ｏ初期化処理のフローチャートである。
【図７】同じく操作子回路に設けた操作子の操作に応じたＤＳＰ制御処理のフローチャートである。
【符号の説明】
【００６４】
１０…集積回路、１１…ＣＰＵ、１２…ＤＳＰ、１３，１４…メモリＩ／Ｏ、１５…内部ＲＡＭ、１６…波形Ｉ／Ｏ、１７…ＭＩＤＩＩ／Ｏ、１８…タイマ、１９…パラレルポート、２１…ＣＰＵバス、２２…ＤＳＰバス、３０…操作子Ｉ／Ｏ、３１…スキャン制御部、３２…ＡＤＣ、３３…変化幅制限回路、３４…ＬＰＦ、３５…操作子ＲＡＭ、４０…音響信号処理装置、４１…外部ＲＯＭ、４２…外部ＲＡＭ、４３…メモリバス、４４…ＡＤＣ、４５…ＤＡＣ、４６…音声入力端子、４７…音声出力端子、４８…操作子回路、４９…スイッチ／表示回路
【図１】
2007258780.tif 000003
【図２】
2007258780.tif 000004
【図３】
2007258780.tif 000005
【図４】
2007258780.tif 000006
【図５】
2007258780.tif 000007
【図６】
2007258780.tif 000008
【図７】
2007258780.tif 000009