(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、
複数のアナログ入力端子と、
上記複数のアナログ入力端子に接続された切換手段と、
上記切換手段の出力が接続されたＡ／Ｄ変換器と、
上記切換手段および上記Ａ／Ｄ変換器を制御する制御手段と、
を備え、一つの半導体チップ上に形成されてなるマイクロコンピュータであって、
上記制御手段は、
上記複数のアナログ入力端子の夫々の有効・無効を指定するための制御用レジスタと、
上記制御用レジスタで有効であると指定されている入力端子と上記Ａ／Ｄ変換器とを接続させるために上記切換手段を制御する選択回路と、
上記Ａ／Ｄ変換器により最新にＡ／Ｄ変換が完了した入力端子を示すための上記ＣＰＵによる読出しが可能な指示レジスタとを有し、
上記制御用レジスタにより有効であると指定される入力端子を１回ずつ順に上記Ａ／Ｄ変換器と接続した後、再度、上記制御用レジスタにより有効であると指定される入力端子を１回ずつ順に上記Ａ／Ｄ変換器に接続することを特徴とするマイクロコンピュータ。
【請求項２】
上記制御手段は、上記複数のアナログ入力端子のうち上記Ａ／Ｄ変換器がＡ／Ｄ変換を行なうデータが入力される入力端子を示す第１のレジスタを有することを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
上記第１のレジスタはシフトレジスタであり、該シフトレジスタはいずれか１のビットに"１"が設定され、該"１"のビットがシフトされることによりＡ／Ｄ変換を行なうデータが入力される入力端子が切り換えられるように構成されていることを特徴とする請求項２に記載のマイクロコンピュータ。
【請求項４】
上記制御手段は、上記シフトレジスタのシフト方向を指定するスキャン方向フラグを有することを特徴とする請求項３に記載のマイクロコンピュータ。
【請求項５】
上記シフトレジスタは可変長であることを特徴とする請求項４に記載のマイクロコンピュータ。
【請求項６】
上記制御用レジスタは上記複数の入力端子のうちの所定の入力端子を指定するため、上記複数の入力端子のそれぞれに対応したビットを有しており、
上記対応したビットにより指定された入力端子と上記Ａ／Ｄ変換器とが接続されることを特徴とする請求項１乃至５のいずれかに記載のマイクロコンピュータ。
【請求項７】
上記制御手段は、上記Ａ／Ｄ変換器により出力されるＡ／Ｄ変換完了信号を受けて、上記ＣＰＵに対する割り込み信号を出力する制御回路を有することを特徴とする請求項１乃至６のいずれかに記載のマイクロコンピュータ。
【請求項８】
上記Ａ／Ｄ変換器によりＡ／Ｄ変換された結果を保持する１または２以上のデータレジスタと、
上記Ａ／Ｄ変換器と上記１または２以上のデータレジスタとの間に設けられ上記制御手段により制御されて上記Ａ／Ｄ変換器によりＡ／Ｄ変換された結果を、上記データレジスタのうちのいずれかのレジスタに供給する第２の切換手段とを備え、
上記データレジスタの数は、上記アナログ入力端子の数よりも少ないことを特徴とする請求項１乃至７のいずれかに記載のマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、信号処理技術さらにはデータ処理装置におけるＩ／Ｏ制御方式に適用して特に有効な技術に関し、例えばＡ／Ｄ変換器を内蔵したマイクロコンピュータに利用して有効な技術に関する。
【０００２】
【従来の技術】
従来のシングルチップマイクロコンピュータの中に、Ａ／Ｄ変換器を内蔵したものがある。さらに、複数のアナログ信号を扱えるように、複数のアナログ入力端子を備えたものもある。その場合、アナログ入力端子数に合わせてＡ／Ｄ変換器を複数個内蔵させるとチップサイズが増大してしまうため、複数のアナログ入力端子に対しＡ／Ｄ変換器は一つだけ内蔵させ、スイッチで切り替えて時分割方式でＡ／Ｄ変換を行なえるようにしたマイクロコンピュータが提供されている（株式会社日立製作所発行、「日立シングルチップコンピュータＨ８／５００シリーズプログラミングマニュアル：ＡＤＪ−６０２−０２２」参照）。
複数のアナログ入力端子に対し一つのＡ／Ｄ変換器を内蔵した上記シングルチップマイコンにおいては、複数のアナログ入力端子を順番に選択して入力信号のサンプリングとＡ／Ｄ変換を行なう入力端子の自動走査機能を備え、Ａ／Ｄ変換の結果をレジスタに格納して一連の変換が終了した時点でＣＰＵに割込みをかけて読み込ませるようにしている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述した技術には、次のような問題のあることが本発明者らによってあきらかとされた。
すなわち、上記シングルチップマイコンにおいては、複数のアナログ入力端子を順番に選択して入力信号のサンプリングとＡ／Ｄ変換を行なうという固定的な動作のみしか行なえない。そのため、上記シングルチップマイコンを使用した応用システム（例えば、カメラやコピーの制御システム等）を設計しようとする者は、システムコストを重視する場合にはＡ／Ｄ変換器に付属した入力端子走査機能がシステムの仕様に合わなくても無理して用い、システムの性能を重視する場合にはシステムの仕様を満たすためマイクロコンピュータの外部に専用の自動走査機能を実現する切換えスイッチやその制御回路を外付け回路として構成せざるを得なかった。
【０００４】
そのため、システムコストを重視した設計の場合には応用システムでは必要としない無駄な端子が生じ、内蔵Ａ／Ｄ変換器を有効に利用できずシステムの処理速度が実質的に低下するという不都合がある。また、システムの性能を重視した設計の場合には、せっかくマイクロコンピュータに内蔵されているＡ／Ｄ変換器に付属した入力端子走査機能を利用することができず、外付け部品を必要とすることから、コストが高くなり、システムが大型化するという不都合が生じる。
【０００５】
本発明の目的は、Ａ／Ｄ変換器内蔵のマイクロコンピュータにおいてＡ／Ｄ変換器の性能をシステムの要求に合わせて最大限に引き出せるようにして汎用性を向上させ、これによって高性能の応用システムを低価格で実現できるようにすることにある。
この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添附図面から明らかになるであろう。
【０００６】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
すなわち、複数のアナログ入力端子に対しＡ／Ｄ変換器は一つだけ内蔵させ、スイッチで切り替えて時分割方式でＡ／Ｄ変換を行なえるようにしたマイクロコンピュータにおいて、上記アナログ入力端子のうち使用する端子を指定するための制御用レジスタと、この制御用レジスタの内容に基づいて上記切換えスイッチを選択する制御信号を形成する選択回路とを設け、上記制御用レジスタの内容に基づいて指定されている端子についてのみ入力信号のＡ／Ｄ変換を行なわせるようにしたものである。
【０００７】
【作用】
上記した手段によれば、使用するアナログ入力端子数すなわちＡ／Ｄ変換したいアナログ信号数を応用システムあるいはタスクごとに選択できるため、内蔵されているＡ／Ｄ変換器の性能をシステムの要求に合わせて最大限に引き出すことができる。
【０００８】
【実施例】
以下、本発明の好適な実施例を図面に基づいて説明する。
図１には本発明を適用して好適なＡ／Ｄ変換器内蔵シングルチップマイコンの一実施例が示されている。特に制限されないが、図中鎖線Ａで囲まれた各回路ブロックは、単結晶シリコン基板のような一個の半導体チップ上において形成される。
図１において、１はマイクロプロセッサ（ＣＰＵ）、２は記憶装置としてのランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）、３はタイマユニット、４は通信用のシリアルコミュニケーションユニット、５はＡ／Ｄ変換ユニットで、上記ＣＰＵ１と各ユニット２〜５はバス６を介して互いに接続されている。ＣＰＵ１は各ユニット２〜５からの割込み信号を受けて優先度を判定し、必要に応じて実行中の処理を中断し割込み処理へ移行するための割込み制御回路１Ａを備えている。
【０００９】
図２には、上記Ａ／Ｄ変換ユニット５の第１の実施例が示されている。
図２において、ＡＮｉｎ０〜ＡＮｉｎ７はアナログ入力端子、１０は共通のＡ／Ｄ変換器、１６は上記アナログ入力端子ＡＮｉｎ０〜ＡＮｉｎ７に対応した８本のデータレジスタＲＥＧ０〜ＲＥＧ７からなるレジスタ群で、アナログ入力端子ＡＮｉｎ０〜ＡＮｉｎ７とＡ／Ｄ変換器１０との間およびＡ／Ｄ変換器１０とデータレジスタＲＥＧ０〜ＲＥＧ７との間には、切替えスイッチ２１および２２が設けられている。これらの切替えスイッチ２１および２２は入力端子走査制御部３０からの選択信号ＳＥＬ１，ＳＥＬ２によって切替え制御され、アナログ入力端子ＡＮｉｎ０が選択されたときはＡ／Ｄ変換された結果がレジスタＲＥＧ０に、アナログ入力端子ＡＮｉｎ１が選択されたときはＡ／Ｄ変換された結果がレジスタＲＥＧ１に、……のようにそれぞれ対応するレジスタにＡ／Ｄ変換後の値が格納されるようになっている。
【００１０】
上記入力端子走査制御部３０は、上記アナログ入力端子ＡＮｉｎ０〜ＡＮｉｎ７に対応したビット群からなる８ビットのイネーブルレジスタ１２と、このイネーブルレジスタ１２の内容に基づいて上記切替えスイッチ２１，２２を選択させる制御信号およびＡ／Ｄ変換器１０に対する変換開始信号を形成する制御回路１１と、この制御回路１１からの制御信号をデコードして上記切替えスイッチ２１，２２に対する選択信号ＳＥＬ１，ＳＥＬ２を形成する選択回路１４と、現在Ａ／Ｄ変換を行なっている入力端子を示すシフトレジスタ１３と、上記アナログ入力端子ＡＮｉｎ０〜ＡＮｉｎ７に対応したビット群からなり上記Ａ／Ｄ変換器２により最新にＡ／Ｄ変換が完了した入力端子を示す変換完了チャネル指示レジスタ１５とにより構成されている。
【００１１】
上記制御回路１１は、Ａ／Ｄ変換器１０におけるＡ／Ｄ変換が完了するとＡ／Ｄ変換器１０から出力される変換完了信号を受けて一連の変換が終了したと判定するとＣＰＵ１に対する割込み信号Ｑを発生するように構成されている。また、上記入力端子走査制御部３０は、電源投入時等においてリセット信号により制御回路１１を初期化してＡ／Ｄ変換器１０に対する変換開始信号とＣＰＵ１に対するＡ／Ｄ変換終了を示す割込み信号が出力されない状態に設定される。そして、初期化の際に内部バス６を介してイネーブルレジスタ１２の設定を行ない、使用したいアナログ入力端子ＡＮｉｎ０〜ＡＮｉｎ７に対応したイネーブルレジスタ１２のビットに予め“１”を立てておく。また、同様に、シフトレジスタ１３に対してＡ／Ｄ変換を開始する入力端子に対応するビットに“１”が立つように内部バス６を介して設定を行なう。
【００１２】
次に、上記Ａ／Ｄ変換ユニットによるＡ／Ｄ変換動作について説明する。
Ａ／Ｄ変換を開始する場合、制御回路１１はまずシフトレジスタ１３およびイネーブルレジスタ１２を調べて変換を開始する入力端子に対応するビットが有効になっているか判定する。そして、有効になっていれば、選択回路１４に対してその入力端子の番号を与える。すると、その入力端子に対応するスイッチ２１，２２がオンされてＡ／Ｄ変換器１０に接続され、変換結果を格納するデータレジスタが選択される。それから、制御回路１１がＡ／Ｄ変換器１０に対して変換開始信号を与える。これによって、選択された入力端子に入力されているアナログ信号がＡ／Ｄ変換され、その結果がスイッチ２２を介して選択されているデータレジスタ群１６に格納される。また、制御回路１１は、一回のＡ／Ｄ変換が完了した時点で、変換完了チャネル指示レジスタ１５の最新にＡ／Ｄ変換が完了した入力端子に対応するビットに“１”が立つように書込みを行なう。
【００１３】
制御回路１１は、Ａ／Ｄ変換が完了したときにＡ／Ｄ変換器１０から出力される変換完了信号を受けると、シフトレジスタ１３に対してシフトクロックを送って１ビットシフトさせる。この際、シフトレジスタ１３は最終ビットの内容が先頭ビットに入るように動作される。そして、シフト後、制御回路１１はシフトレジスタ１３の“１”の立っているビットに対応するイネーブルレジスタ１２のビットを調べて、ビットが有効になっているか判定し、無効ならそのビットをスキップすなわち対応する入力端子のアナログ信号のサンプリングを行なわずに、再びシフトレジスタ１３に対してシフトクロックを送って１ビットシフトさせる。
【００１４】
上記動作を繰り返すことにより、イネーブルレジスタ１２の“１”の立っているビットに対応する入力端子のアナログ信号のみが順にＡ／Ｄ変換されて行く。そして、入力端子ＡＮｉｎ０〜ＡＮｉｎ７の走査が一巡したところで、Ａ／Ｄ変換器１０から出力される変換完了信号を受けて一連の変換が終了したと判定するとＣＰＵ１に対する割込み信号Ｑを発生する。また、制御回路１１は、一回のＡ／Ｄ変換が完了した時点で、変換完了チャネル指示レジスタ１５の最新にＡ／Ｄ変換が完了した入力端子に対応するビットに“１”が立つように書込みを行なう。
従って、ＣＰＵ１は、変換完了チャネル指示レジスタ１５の内容を調べることによりいつでも最新にＡ／Ｄ変換が完了した入力端子を知り、その端子に入力されているアナログ信号のＡ／Ｄ変換結果をレジスタ群１６の中から読み出すことができる。なお、変換完了チャネル指示レジスタ１５を備えていれば、データレジスタ１６は全てのアナログ入力端子ＡＮｉｎ０〜ＡＮｉｎ７に対応した数だけ用意する必要はなく、１個または数個にすることができる。
【００１５】
図３には、上記Ａ／Ｄ変換ユニット５の第２の実施例が示されている。
図３の実施例は、図２の実施例とほぼ同一の構成である。異なる点は、レジスタ選択回路４１と、シフトレジスタ１３のシフト方向を指定するスキャン方向フラグ１８が設けられ、制御回路１１は割込みモード指定レジスタ１７を備えていることである。上記レジスタ選択回路４１は、データレジスタ群１６の中からＡ／Ｄ変換の結果を格納すべきレジスタを指定できるようにするためのもので、指定されなかったレジスタは、ＣＰＵがワークレジスタとして他の用途に利用することができるように解放される。これによって、マイクロコンピュータ全体のレジスタの数を減らすことができる。
なお、上記レジスタ選択回路４１、スキャン方向フラグ１８、割込みモード指定レジスタ１７は、それぞれＣＰＵ１が内部バス６を介して設定できるように構成されている。
【００１６】
制御回路１１内の割込みモード指定レジスタ１７は、例えば一連のＡ／Ｄ変換後にＣＰＵに対する割込み信号を発生するか、各アナログ入力信号のＡ／Ｄ変換ごとにＣＰＵに対する割込み信号を発生するか指定できるようにするためのものである。上記割込みモード指定レジスタ１７で各アナログ入力信号のＡ／Ｄ変換ごとにＣＰＵに対する割込み信号を発生するモードを指定し、レジスタ選択回路４１によりＡ／Ｄ変換結果を格納すべきレジスタを一つ指定して固定的に格納させることで、ＣＰＵの制御プログラムの簡素化を図ることができる。また、上記スキャン方向フラグ１８によりシフトレジスタ１３のシフト方向を代えることができるため、アナログ入力端子間の変換順序が制御手順に関連して変換する場合やボードへの実装上の都合によりスキャン方向を代えたい場合に容易に対応させることができる。
【００１７】
図４には、上記Ａ／Ｄ変換ユニット５の第３の実施例が示されている。
図４の実施例では、第１の実施例におけるイネーブルレジスタ１２の代わりにアナログ入力端子群ＡＮｉｎ０〜ＡＮｉｎｉとＡ／Ｄ変換器２との間に端子選択制御＆チャネル数指定制御回路３１を設け、ＣＰＵ１からの指令に従ってどのアナログ入力端子を有効とするか設定できるようにするとともに、シフトレジスタ１３を可変長とし、端子選択制御＆チャネル数指定制御回路３１と連動してチャネル数に合わせたビット数のシフトレジスタとして動作するように構成したものである。
【００１８】
以上説明したように、複数のアナログ入力端子に対しＡ／Ｄ変換器を一つだけ内蔵させ、スイッチで切り替えて時分割方式でＡ／Ｄ変換を行なえるようにしたマイクロコンピュータにおいて、上記アナログ入力端子のうち使用する端子を指定するための制御用レジスタと、この制御用レジスタの内容に基づいて上記切替えスイッチを選択する制御信号を形成する選択回路と、現在Ａ／Ｄ変換を行なっている入力端子を示すシフトレジスタとを設け、このシフトレジスタをクロックでシフト動作させながら上記制御用レジスタの内容に基づいて指定されている端子についてのみ入力信号のサンプリングとＡ／Ｄ変換を行なわせるようにしたので、使用するアナログ入力端子数すなわちＡ／Ｄ変換したいアナログ信号数を応用システムあるいはタスクごとに選択できるため、内蔵されているＡ／Ｄ変換器の性能をシステムの要求に合わせて最大限に引き出すことができるという効果がある。
【００１９】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、図４の実施例に図３の実施例のレジスタ選択回路４１や割込みモードレジスタ１７、スキャン方向フラグ１８を組み合わせるようにすることも可能である。また、複数のアナログ入力端子のうち特定の端子に関しては一連のＡ／Ｄ変換の間に２度以上サンプリングを行なうように構成することも可能である。
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイコンに適用した場合について説明したが本発明はそれに限定されるものでなく、Ａ／Ｄ変換器を内蔵したコントローラＬＳＩ一般に、さらにタイマやシリアル通信回路等のＩ／Ｏを内蔵したＬＳＩに利用するをことができる。
【００２０】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、使用するアナログ入力端子数すなわちＡ／Ｄ変換したいアナログ信号数を応用システムあるいはタスクごとに選択できるため、内蔵されているＡ／Ｄ変換器の性能をシステムの要求に合わせて最大限に引き出すことができ、これによってマイクロコンピュータの汎用性を向上させ、高性能のマイコン応用システムを低価格で実現することができる。
【図面の簡単な説明】
【図１】本発明を適用して好適なＡ／Ｄ変換器内蔵シングルチップマイコンの一実施例を示すブロック図である。
【図２】Ａ／Ｄ変換ユニット５の第１の実施例を示すブロック図である。
【図３】Ａ／Ｄ変換ユニット５の第２の実施例を示すブロック図である。
【図４】Ａ／Ｄ変換ユニット５の第３の実施例を示すブロック図である。
【符号の説明】
１０  Ａ／Ｄ変換器、
１２  制御用レジスタ（イネーブルレジスタ）
１３  シフトレジスタ
１４  選択回路
１６  データレジスタ群、
２１，２２  切替えスイッチ
【図１】
0003689915.tif 000002
【図２】
0003689915.tif 000003
【図３】
0003689915.tif 000004
【図４】
0003689915.tif 000005