(57)【要約】【課題】スキャンタイプのＡＤ変換システムを提供する。【解決手段】マイコン８８に接続されたシーケンサ２６により、複数のＡＤ変換器１６、１８、２０に入力されるアナログ信号を遂次的にＡＤ変換するスキャンタイプのＡＤ変換システム１０であって、前記シーケンサ２６は、前記マイコン８８からのクロック２４をカウントして、所定のビット領域をバイナリデータとして出力するバイナリカウンタ３６と、前記バイナリカウンタ３６と前記複数のＡＤ変換器１６、１８、２０との間に介装され、前記バイナリデータをデコードして、前記複数のＡＤ変換器１６、１８、２０を遂次的に選択して動作させるチップセレクト３０を出力するデコーダ３８と、を有してなる。【選択図】図１
2010141386.tif 000002
【特許請求の範囲】
【請求項１】
マイコンに接続されたシーケンサにより、複数のＡＤ変換器に入力されるアナログ信号を遂次的にＡＤ変換するスキャンタイプのＡＤ変換システムであって、
前記シーケンサは、
前記マイコンからのクロックをカウントして、所定のビット領域をバイナリデータとして出力するバイナリカウンタと、
前記バイナリカウンタと前記複数のＡＤ変換器との間に介装され、前記バイナリデータをデコードして、前記複数のＡＤ変換器を遂次的に選択して動作させるチップセレクトを出力するデコーダと、を有することを特徴とするスキャンタイプのＡＤ変換システム。
【請求項２】
前記シーケンサには、前記バイナリカウンタのフルカウントをカウントする第２カウンタが設けられ、
前記デコーダは前記第２カウンタに接続され、前記第２カウンタのフルカウントの周期でデコード可能となることを特徴とする請求項１に記載のスキャンタイプのＡＤ変換システム。
【請求項３】
前記複数のＡＤ変換器と前記デコーダとの間には、バッファレジスタが介装され、
前記バッファレジスタは、前記バイナリカウンタの前記バイナリデータのビット領域より下位のビットに接続され、前記下位のビットのアサートをトリガとして前記チップセレクトを出力することを特徴とする請求項１または２に記載のスキャンタイプのＡＤ変換システム。
【請求項４】
前記シーケンサは、前記チップセレクトと前記クロックとを掛け合わせてシリアルクロックを生成し、
前記ＡＤ変換器は、前記アナログ信号をＡＤ変換して得られるデジタルデータと前記クロックとを掛け合わせてシリアルデータを出力し、
前記シリアルデータは、前記シリアルクロックに同期して、前記マイコンのシリアルインターフェースに入力されることを特徴とする請求項１乃至３のいずれか１項に記載のスキャンタイプのＡＤ変換システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＤ変換に関し、特にパラレルに接続されたセンサからのアナログ信号をシリアルなデジタル信号に変換するＡＤ変換技術に関する。
【背景技術】
【０００２】
センサは、アナログ信号を出力している。このためセンサを使用するユーザは、デジタルの出力を必要とする場合、センサの後段にアナログ／デジタル（Ａ／Ｄ）変換器を接続し、センサから出力したアナログ信号をデジタル信号に変換して利用している。さらに移動体の姿勢検出、姿勢制御、バーチャルリアリティ等に使用されるヘッドマウントディスプレイ、頭の姿勢角度を検出するトラッカー、３Ｄゲームパッド等の複数の振動センサを必要とする機器においても、複数のアナログ信号に対してＡＤ変換を行っている（特許文献１参照）。
【特許文献１】特表２００１−５２３４２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来のＡＤ変換器は、後段に接続されるマイコンからオペレーションによりコントロールされている。従って、マイコンのタスクがある程度の割合でＡＤ変換器のオペレーションに占められることになり、システム全体の信頼性が低下する。さらにＡＤ変換は、等間隔の時間で行う優先度の高いタスクであるにもかかわらず、マイコンにおけるＡＤ変換に係るタスクの割り込みはソフトウェアによって行われるため、ＡＤ変換を行うタイミングがずれ、サンプリングジッターを発生させる原因となっている。
そこで、ＡＤ変換器をハードウェアであるシーケンサで制御することにより、マイコンのタスク負担を軽減することが提案されている。
【０００４】
通常、ＡＤ変換器をシーケンサ（有限オートマトンロジックシーケンス）で制御する場合、タイマー用カウンタ、デコーダ、ステート記述レジスタにジョンソンカウンタ、またはグレイコードカウンタを用いる。例えば、ジョンソンカウンタはアンフィルド・コード・カウンタ、すなわちビット列の組み合わせを制限したカウンタである。アンフィルド・コード・カウンタは、カウント値が使用を想定していない値になった場合の回復回路が必要だが、バイナリカウンタなどのフィルド・コード・カウンタと比較してデコード回路が小さく設計でき高速化が可能である。シーケンサの動作は、現状のステートをデコードし、それをもとにタイマープリセット値を決め、タイマーを起動し、タイマーがキャリーを出したときにジョンソンカウンタのステートを次に進め、以上を所定の周期で繰り返すことになる。
【０００５】
しかし、複数のセンサからのアナログ信号をＡＤ変換する複数のＡＤ変換器をシーケンサによって制御する場合、シーケンサのステート数が多くなる。このときステート記述用にジョンソンカウンタ等のアンフィルド・コード・カウンタを用いると、ビット数が増え、カウンタ回路を構成するフリップフロップの数が増加する。またアンフィルド・コード・カウンタは、不使用ステート選択時のために回復回路が必要になるが、高次のジョンソンカウンタ等の回復回路は設計が煩雑となる。
【０００６】
このため、フリップフロップ数を節約でき、回復回路を不要とするバイナリカウンタを用いることが考えられるが、バイナリカウンタは回路の構成上スタティックハザードを出力するため、これがデコードされ、ＡＤ変換器が誤動作することになる。
【０００７】
そこで、本発明は上記問題点に着目し、システム全体の信頼性を向上させ、かつサンプリングジッターを低減するととともに、バイナリカウンタを用いつつ誤動作を防止したスキャンタイプのＡＤ変換システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
［適用例１］マイコンに接続されたシーケンサにより、複数のＡＤ変換器に入力されるアナログ信号を遂次的にＡＤ変換するスキャンタイプのＡＤ変換システムであって、前記シーケンサは、前記マイコンからのクロックをカウントして、所定のビット領域をバイナリデータとして出力するバイナリカウンタと、前記バイナリカウンタと前記複数のＡＤ変換器との間に介装され、前記バイナリデータをデコードして、前記複数のＡＤ変換器を遂次的に選択して動作させるチップセレクトを出力するデコーダと、を有することを特徴とするスキャンタイプのＡＤ変換システム。
【０００９】
上記構成により、マイコンに代わってシーケンサがアナログ信号を遂次的にＡＤ変換する。よってマイコンはシーケンサの駆動・停止を指令するのみで済み、従来のＡＤ変換作業が要するマイコンのソフトウェアリソースのシステムに占める割合を小さくすることができる。さらにＡＤ変換はハードウェアであるシーケンサが行うため、マイコンがソフトウェアを通じてＡＤ変換を行う場合より、サンプリングジッターを低減することができる。そしてシーケンサにおいて、バイナリカウンタがタイマーの役割を兼ねているので、シーケンサの回路構成を簡略化できる。
【００１０】
［適用例２］前記シーケンサには、前記バイナリカウンタのフルカウントをカウントする第２カウンタが設けられ、前記デコーダは前記第２カウンタに接続され、前記第２カウンタのフルカウントの周期でデコード可能となることを特徴とする適用例１に記載のスキャンタイプのＡＤ変換システム。
【００１１】
これにより第２カウンタのフルカウントとなる周期がＡＤ変換のサンプリング周期となるため、サンプリング周期もマイコンではなく、シーケンサが制御することになるので、サンプリングジッターをさらに低減することができる。
【００１２】
［適用例３］前記複数のＡＤ変換器と前記デコーダとの間には、バッファレジスタが介装され、前記バッファレジスタは、前記バイナリカウンタの前記バイナリデータのビット領域より下位のビットに接続され、前記下位のビットのアサートをトリガとして前記チップセレクトを出力することを特徴とする適用例１または２に記載のスキャンタイプのＡＤ変換システム。
【００１３】
バイナリカウンタはスタティックハザードを有するため、正しいチップセレクトはバイナリカウンタからのスタティックハザードによる誤ったチップセレクトが出力された直後に出力される。一方、バッファレジスタは、バイナリデータのビット領域より下位のビットからのパルスのアサートをトリガとしてチップセレクトを出力（ストア）するため、誤ったチップセレクトが終了して正しいチップセレクトがデコーダから出力された後にバッファレジスタの入力側を開放することになる。よって、バッファレジスタのストア側からバイナリカウンタを見るとスタティックハザードの無い、ワンホット・ステート・カウンタのように見えることになる。そして、ＡＤ変換器において実際のＡＤ変換はチップセレクトがデコードされてから、前記アサートがバッファレジスタに入力される時間だけ遅れて行われることとなるが、スタティックハザードによる誤ったチップセレクトがバッファレジスタに入力されることなく、これにより後段のＡＤ変換器の誤動作を防止できる。
【００１４】
［適用例４］前記シーケンサは、前記チップセレクトと前記クロックとを掛け合わせてシリアルクロックを生成し、前記ＡＤ変換器は、前記アナログ信号をＡＤ変換して得られるデジタルデータと前記クロックとを掛け合わせてシリアルデータを出力し、前記シリアルデータは、前記シリアルクロックに同期して、前記マイコンのシリアルインターフェースに入力されることを特徴とする適用例１乃至３のいずれか１例に記載のスキャンタイプのＡＤ変換システム。
【００１５】
上記構成により、シーケンサ及びＡＤ変換器は水晶発振によりクロックを生成しているマイコンをクロック源としており、マイコン内部のタスクの影響を排除したサンプリングを行うことができるため、サンプルジッターを低減できる。また、シリアルデータはマイコンのクロックと同期して出力されるとともに、シリアルインターフェースに入力されるとパラレル化される。よってパラレルのデータを送受信するマイコンは、パラレル化されたデータを何ら加工することなく取得することが容易となる。したがって、マイコンのＡＤ変換器からのデータの取り込みのためのソフトウェアリソースがシステムに占める割合を小さくすることができる。特にマイコンがダイレクトメモリアクセスを用いる場合は、マイコン内のＣＰＵがデータ取得のための作業をする必要はないので、ＡＤ変換器からのデータの取り込みのソフトウェアリソースがシステムに占める割合を最小にするＡＤ変換システムとなる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
【００１７】
図１に示すように、本実施形態に係るＡＤ変換システム１０は、アナログ信号を出力する複数のセンサ１２、センサ１２に接続される複数のＡＤ変換器１４（第１ＡＤ変換器１６、第２ＡＤ変換器１８、第３ＡＤ変換器２０）、シーケンサ２６等から構成されている。また、回路中を流れる信号は、電圧の高い信号をＨとし、電圧の低い信号をＬとする。
【００１８】
センサ１２は加速度センサ、圧力センサ、温度センサ等のように各物理量を電流値又は電圧値としてアナログ的に出力するものであり、センサ１２はセンサごとにＡＤ変換器１４に接続されている。本実施形態において、以後、説明の簡素化のためセンサ１２を３つとする（第１センサ１２ａ、第２センサ１２ｂ、第３センサ１２ｃ）が、４つ以上用いてもよい。
【００１９】
ＡＤ変換器１４は、センサ１２を介して入力されたアナログ信号をデジタルデータ２２に変換するものである。ここで第１センサ１２ａに接続する方を第１ＡＤ変換器１６，第２センサ１２ｂと接続する方を第２ＡＤ変換器１８、第３センサ１２ｃに接続する方を第３ＡＤ変換器２０する。またデジタルデータ２２は第１ＡＤ変換器１６から出力される方を第１デジタルデータ２２ａとし、第２ＡＤ変換器１８から出力される方を第２デジタルデータ２２ｂ、第３ＡＤ変換器から出力される方を第３デジタルデータ２２ｃとする。第１ＡＤ変換器１６、第２ＡＤ変換器１８、及び第３ＡＤ変換器２０は、それぞれ上述のアナログ信号の入力端子１６ａ、１８ａ、２０ａ、シーケンサ２６から出力される後述のチップセレクト３０を入力するチップセレクト入力端子１６ｂ、１８ｂ、２０ｂ、クロック２４を入力するクロック入力端子１６ｃ、１８ｃ、２０ｃ、アナログ信号をＡＤ変換して得られる第１デジタルデータ２２ａ、第２デジタルデータ２２ｂ、第３デジタルデータ２２ｃを出力するデジタルデータ出力端子１６ｄ、１８ｄ、２０ｄを有する。
【００２０】
ＡＤ変換器１４はシーケンサ２６から出力される後述のチップセレクト３０をトリガとして、入力されたアナログ信号を２進数のデジタル情報に変換する。ＡＤ変換器１４はア
ナログ信号の振幅方向の解析に必要なＳ／Ｎ比を確保するための必要なビット数を有しておればよく、本実施形態では１６ビットを用いた場合について説明する。またＡＤ変換器１４は必要なビット数（１６ビット）に応じたサンプルホールド回路（不図示）を有し、ＡＤ変換後の各ビットの情報を保持できるようになっている。
【００２１】
ＡＤ変換器１４は、後述のチップセレクト３０のネゲート（立下り）をトリガとしてＡＤ変換を行う（図３参照）が、クロック２４のクロック間隔より充分短い時間でＡＤ変換を行ってデジタルデータ２２をサンプルホールド回路（不図示）に保持し、デジタルデータ２２の出力はクロック２４の１クロックごとに各ビットの上位の桁から順に行っている。そして後述のシーケンサ２６の制御により、デジタルデータ２２はこの順番で時系列上一列に配列され、シリアルデータ３４としてマイコンのシリアルインターフェース９２に入力される。なお、ＡＤ変換器１４はデジタルデータ２２を出力したのち次のチップセレクト３０が来るまでの間、クロック２４が入力されてもサンプルホールド回路（不図示）に残ったデジタル情報を出力できないように構成されているものとする。これによりシリアルデータ３４中の前記デジタル情報が誤情報として混入することを防いでいる。
【００２２】
シーケンサ２６は、ＡＤ変換器１４の動作の組み合わせの状態数に応じて構成され、後述のタイムチャート（図３参照）に従って自立的に各状態を順番に選択し、または各状態を一定時間維持する制御を行うハードウェアである。シーケンサ２６には、マイコン８８等からのリセット信号を入力するリセット信号入力端子２６ａ、水晶発振によるマイコン８８等からのクロック２４を入力するクロック入力端子２６ｂ、ＡＤ変換器１４のＡＤ変換指令を行う後述のチップセレクト３０を出力するチップセレクト出力端子２６ｃ、２６ｄ、２６ｅ、シーケンサ２６を経由したクロック２４をＡＤ変換器１４に出力するクロック出力端子２６ｆ、シーケンサ２６内部で生成されたシリアルクロック３２を出力するシリアルクロック出力端子２６ｇが配設されている。そしてシリアルクロック出力端子２６ｇは、後述のシリアルインターフェース９２と接続されている。
【００２３】
シーケンサ２６は外部からマイコン８８等のクロック２４を、必要に応じて分周器２８により適当な周波数に分周して入力し（本実施形態では分周せず）、互いに同期するチップセレクト３０、シリアルクロック３２を生成する。
【００２４】
チップセレクト３０は、第１ＡＤ変換器１６、第２ＡＤ変換器１８、及び第３ＡＤ変換器２０にＡＤ変換指令を行うためのトリガである。本実施形態において第１ＡＤ変換器１６、第２ＡＤ変換器１８、及び第３ＡＤ変換２０は一定間隔ごとにそれぞれ異なるタイミングで行われるとともに、いずれのＡＤ変換も行わない状態も含むのでチップセレクト３０の種類は全部で４つである。この４つがシーケンサ２６で繰り返し実現される後述のサブステートとなる。
【００２５】
シリアルクロック３２は、ＡＤ変換器１４から出力されるシリアルデータ３４を、マイコン８８のシリアルインターフェース９２に入力するためのトリガである。シリアルクロック３２、及びシリアルデータ３４は、マイコン８８のクロック２４に同期して生成されるため、互いに同期している。
【００２６】
図２に本実施形態を構成するシーケンサの回路図を示す。シーケンサ２６はバイナリカウンタ３６、デコーダ３８、第２カウンタ４０、ＯＲ回路４２、バッファレジスタ４４、シリアルクロック生成部５２を有する。
バイナリカウンタ３６は、シーケンサ２６のクロック入力端子２６ｂを介して入力されるクロック２４を入力するクロック入力端子３６ａ、リセット信号を入力するリセット信号入力端子３６ｂ、カウンタ値をパラレルで出力する出力端子３６ｃを備えている。出力端子３６ｃはＱ１、Ｑ２、・・Ｑ６、Ｑ７、Ｑ８（８ビット）の順に上位のビットを出力
する端子とキャリー（Ｃａ）を出力する端子からなる。Ｑ１はクロック２４の０回分周（分周せず）であり、Ｑ２はクロック２４の１回分周、Ｑｎ（ｎ＝１〜８）はクロック２４の（ｎ−１）回分周となる。バイナリカウンタ３６はクロック２４のネゲート（電圧Ｈの信号から電圧Ｌの信号への立下り）をトリガとしてカウントアップし、フルカウントになるとキャリー（Ｃａ）を出力し、さらにカウントされるとカウント値がゼロとなるように構成されている。またマイコン８８からリセット信号（Ｈ）が入力されると初期値（０）に戻り、リセット信号がＨである限りカウントアップされないように設計されている。キャリー（Ｃａ）は通常電圧がＨになっているが、バイナリカウンタ３６がフルカウントとなったときに電圧がＬとなる。本実施形態においては、Ｑ７及びＱ８をデコーダ３８の入力側に接続している。すなわち、Ｑ７及びＱ８によって上述の４つのサブステートを実現するための２ビットのバイナリデータをデコーダ３８に出力することになる。ところで、このバイナリデータはスタティックハザードを有する。すなわち、（Ｑ８、Ｑ７）が（０、１）から（１、０）に繰り上がる際に、バイナリカウンタ３６内のフリップフロップ（不図示）の構成上、必ず（０、０）という状態を経由して繰り上がることになるので、これがスタティックハザードの原因となる。
【００２７】
バイナリカウンタ３６のＱ１はＡＤ変換器１４に接続されるが、クロック２４と逆相である。しかし、途中にインバータ６２が介装されているので、ＡＤ変換器１４に送られるパルスはクロック２４となる。また、ＡＤ変換器１４は１６ビットを前提としているので、ＡＤ変換器１４がデジタルデータ２２を出力するには、それぞれ、クロック２４（Ｑ１）のパルスを１６個必要とする。さらにデジタルデータ２２同士の出力の時間的重複を回避するためデジタルデータ２２同士の間隔を空ける必要がある（本実施形態では前記パルスの１６個分）。このとき、出力端子においてＱ１からＱ６がカウントに用いられることになる。よってデジタルデータ２２を適切に出力するため、バイナリデータ３６はＱ６より上位のビット（Ｑ８、Ｑ７）をサブステート用のバイナリデータとして用い、そのバイナリデータの変化、すなわちサブステートの変化をＱ６のネゲート（Ｑ７への繰り上がり）を用いてモニタしている。なお、Ｑ６はＱ１の５分周となっているので、Ｑ６の電圧Ｈの信号及び電圧Ｌの信号それぞれの出力中に、Ｑ１は１６個のクロックのパルスを受けることになり、３２個のクロックに係るクロックタイムがＱ６の周期となっている。
【００２８】
デコーダ３８は、ＯＲ回路４２からの出力を入力する入力端子３８ａ、バイナリカウンタ３６からのバイナリデータを入力するバイナリデータ入力端子３８ｂ、デコードされたチップセレクト３０を出力する出力端子３８ｃを有する。デコーダ３８は、ＯＲ回路４２からＬの信号が入力されるとバイナリデータ入力端子３８ｂに入力されたバイナリデータをデコードし、チップセレクト３０を生成してバッファレジスタ４４に出力するものである。ここでバイナリデータが上述のスタティックハザードに係る信号となっていても、デコーダ３８はそれをデコードしてスタティックハザードに係る誤ったチップセレクトを出力することになり、これによりＡＤ変換器１４が誤動作することになる。しかし後述のバッファレジスタ４４によりこの誤動作を回避することができる。デコーダ３８において、バイナリデータ入力端子３８ｂ（Ｑ８、Ｑ７）と出力端子３８ｃ（ｎ０、ｎ１、ｎ２、ｎ３）との関係は、（０、０）のときｎ０のみが０、（０、１）のときｎ１のみが０、（１、０）のときｎ２のみが０、（１、１）のときｎ３のみが０に出力されるように設計されている。
【００２９】
第２カウンタ４０は、バイナリカウンタ３６がフルカウントとなって発生させるキャリー（Ｃａ）を入力するキャリー入力端子４０ａ、リセット信号を入力するリセット信号入力端子４０ｂ、カウンタ値をパラレルで出力する出力端子４０ｃ（Ｑ９、Ｑ１０、Ｑ１１）を備えている。そして第２カウンタ４０は、バイナリカウンタ３６からのキャリー（Ｃａ）のネゲートをトリガとしてカウントして、第２カウンタ４０はフルカウントになってさらにキャリー（Ｃａ）が入力されると、カウント値はゼロになるように構成されている
。またマイコン８８からリセット信号（Ｈ）が入力されると、カウント値が初期値（０）に戻り、リセット信号がＨを維持する限りカウントアップしない設計となっている。第２カウンタ４０はＡＤ変換器１４の動作状態（サブステート）を制御することになるバイナリカウンタ３６からのキャリー（Ｃａ）によってカウントするため、第２カウンタ４０はシーケンサ２６全体のＯＮ／ＯＦＦの状態（メインステート）を決定するものであるとともに、第２カウンタ４０がフルカウントとなる周期がＡＤ変換のサンプリング周期となる。
【００３０】
ここで第２カウンタ４０は、回路構成を簡略化するためバイナリカウンタ３６と同様にフィルド・コード・カウンタを用いることが好ましい。しかしフィルド・コード・カウンタで構成される場合にはスタティックハザードを出力することになる。しかしスタティックハザードを出力するときは、第２カウンタ４０にキャリー（Ｃａ）を出力するバイナリカウンタ３６のカウント数がゼロであり、バイナリデータも（０、０）であるため、ＡＤ変換器１４が誤動作することはない。
【００３１】
ＯＲ回路４２は、入力側すべてに０の信号（電圧Ｌの信号）が入力されたときに０の信号を出力するものである。その入力側を第２カウンタ４０の出力端子４０ｃの全て、及びバイナリカウンタ３６の出力端子３６ｃのＱ６に接続し、出力側をデコーダ３８に接続している。よってＯＲ回路４２は第２カウンタ４０の出力端子４０ｃ全てがＬとなることが、電圧がＬの信号を出力する条件となる。ところで、ＯＲ回路４２の入力側はバイナリカウンタ３６のＱ６とも接続されている。よって、ＯＲ回路４２は、第２カウンタ４０の出力（Ｑ９、Ｑ１０、Ｑ１１）が全て０（電圧Ｌの信号）であることを条件として、Ｑ６の信号が０（電圧Ｌの信号）のとき、及び１（電圧Ｈの信号）のとき、それぞれ、電圧Ｌの信号、電圧Ｈの信号を出力することになる。よってデコーダ３８は、バイナリデータをデコードしてチップセレクト３０を出力後、Ｑ６の信号が電圧Ｈとなると、チップセレクト３０の出力を解除する、すなわち、全ての出力（ｎ０、ｎ１、ｎ２、ｎ３）から電圧Ｈの信号を出力することになる。
【００３２】
バッファレジスタ４４はＤフリップフロップ４６、４８、５０により構成され、Ｄフリップフロップ４６、４８、５０の入力端子４６ａ、４８ａ、５０ａ（Ｄ）がそれぞれデコーダ３８の出力端子３８ｃのｎ１、ｎ２、ｎ３に接続され、ストア４６ｂ、４８ｂ、５０ｂ（Ｑ）がそれぞれ第１ＡＤ変換器１６、第２ＡＤ変換器１８、第３ＡＤ変換器２０に接続され、リセット４６ｃ、４８ｃ、５０ｃ（Ｓ）がリセット信号入力端子２６ｂに接続され、トリガ４６ｄ、４８ｄ、５０ｄがバイナリカウンタ３６のＱ１に接続されている。バッファレジスタ４４は、Ｑ１のアサート（電圧Ｌの信号から電圧Ｈへの信号の立ち上がり）をトリガとしてデコーダ３８から入力されるチップセレクト３０をストアして各ＡＤ変換器に出力するものである。
【００３３】
よって、チップセレクト３０はデコーダ３８によりデコードされたのち、次のＱ１のアサートまでの間、バッファレジスタ４４において各ＡＤ変換器への出力が止められた状態となる。上述のように、バイナリデータはスタティックハザードを有するため、このスタティックハザードに係る誤ったチップセレクトがデコーダ３８から出力されることになる。しかし、スタティックハザードは、バッファレジスタ４４のトリガとなる次のＱ１のアサートがバッファレジスタ４４に入力されるよりも早い時間で終了するため、バッファレジスタ４４がスタティックハザードに係る誤ったチップセレクトをストアして各ＡＤ変換器に出力することはない。なお、スタティックハザードを回避するため、バッファレジスタ４４のトリガをバイナリカウンタ３６のＱ１に接続しているが、Ｑ２、Ｑ３、Ｑ４、Ｑ５に接続してもデジタルデータ２１ａ、２１ｂ、２１ｃの出力は一様に遅れる一方、互いにサブステートの異なるチップセレクトが互いに重複することはないので、これらのいずれかに接続しても良い。またバッファレジスタ４４におけるチップセレクト３０の解除は
、デコーダ３８がチップセレクト３０を解除したのち、次のＱ１のアサートによりデコーダ３８から出力された電圧Ｈの信号をストアすることにより行われる。
【００３４】
シリアルクロック生成部５２は、チップセレクト３０とクロック２４を掛け合わせてシリアルクロック３２を生成してマイコン８８側に出力するものである。シリアルクロック生成部５２は主にＤフリップフロップ５４により構成されている。Ｄフリップフロップ５４の入力端子５４ａ（Ｄ）は電圧が常にＨの状態となるように接続されている。ストア５４ｂ（Ｑ）はＮＡＮＤ回路５６の入力側に接続され、リセット５４ｃ（Ｒ）はＯＲ回路５８を介してマイコン８８のリセット、及びバイナリカウンタ３６のＱ６に接続され、トリガ５４ｄはＮＡＮＤ回路６０の出力側に接続されている。ＮＡＮＤ回路６０の入力側はチップセレクト３０（ｎＣＳ１、ｎＣＳ２、ｎＣＳ３）に接続されている。よってチップセレクト３０のいずれか（ｎＣＳ１、ｎＣＳ２、ｎＣＳ３）が０の信号（電圧Ｌ）で入力されるとＤフリップフロップ５４のトリガ５４ｄが働くことになる。
【００３５】
そして、ＮＡＮＤ回路５６のもう一方の入力側はバイナリカウンタ３６のＱ１と接続され、ＮＡＮＤ回路５６の出力側はマイコン８８のシリアルインターフェース９２に接続される。ＮＡＮＤ回路５６はクロック２４を反転させたバイナリカウンタ３６のＱ１に接続されているが、ＮＡＮＤ回路５６の出力は反転されるため、ＮＡＮＤ回路５６はストア（Ｑ）のＨをスイッチとしてクロック２４を出力することになり、結果的にＮＡＮＤ回路５６はクロック２４と接続しているとみなすことができる。よってシリアルクロック生成部５２はチップセレクト３０をトリガとして、リセット（Ｒ）に、バイナリカウンタ３６のＱ６から電圧Ｌの信号が入力され、次の電圧Ｈの信号が入力されるまでクロック２４を出力することになり、これがシリアルクロック３２となる。ＡＤ変換器１４は１６ビットのデジタルデータを１６個のパルスで出力するため、これに対応してＤフリップフロップ５４のリセット５４ｃ（Ｒ）は、Ｑ１に入力される１６個のクロックに係るクロックタイムで電圧Ｈ、電圧Ｌが入れ替わるＱ６に接続して、デジタルデータ２２ａ、２２ｂ、２２ｃとシリアルクロック３２のパルス数（１６個）を一致させている。
【００３６】
図３にシーケンサ２６のタイムチャートを示す。図３において、チップセレクト３０（ｎＣＳ１、ｎＣＳ２、ｎＣＳ３）のネゲート（Ｈ→Ｌ）にて第１ＡＤ変換器１６（ｎＣＳ１）、第２ＡＤ変換器１８（ｎＣＳ２）、及び第３ＡＤ変換器２０（ｎＣＳ３）が起動する。図３（ａ）に示すように。デコーダ３８の出力の変化は、Ｑ６のネゲートにより、バイナリカウンタ３６のＱ７、Ｑ８の値が変化することにより発生する。そして、図３（ｂ）に示すように、チップセレクト３０のネゲートは、Ｑ６のネゲートの直後のＱ１のアサートにより発生する。そしてチップセレクト３０のアサートはＱ６のアサートの直後のＱ１のアサートにより発生する。
【００３７】
一方、シリアルクロック３２は、バイナリカウンタ３６のＱ１とＮＡＮＤ回路５６を介して接続されるため、Ｑ１を反転させたｎＱ１（図３（ｂ）参照）、すなわちクロック２４と同期する。そして図３（ｂ）に示すように、最初のＬがＱ６のネゲートの直後のＱ１のアサートから開始する。一方、Ｑ６はシリアルクロック３２の最後のパルス（１６パルス）の半クロック前にアサートとなるが、Ｑ６のアサート時、シリアルクロック３２はＨとなり以後Ｈを維持するため、シリアルクロック３２が必要とするｎＱ１、すなわちクロック２４の半クロック（Ｈ）を自動的に取得でき、１つのチップセレクト３０のネゲートにより１６パルスのシリアルクロック３２を得ることができ、結果的に３つのチップセレクト３０のネゲートにより４８パルスのシリアルクロック３２を得ることができる。
【００３８】
ここで、シーケンサ２６のサブステート６４を定義する。デコーダ３８の出力端子３８ｃ（ｎ０、ｎ１、ｎ２、ｎ３）が（０、１、１、１）のとき第０サブステート６４ａとし、このときＡＤ変換器はいずれも動作しない。（１、０、１、１）のときは第１サブステ
ート６４ｂとし、このとき第１ＡＤ変換器１６のみが動作する。（１、１、０、１）のときは第２サブステート６４ｃとし、このとき第２ＡＤ変換器１８のみが動作する。（１、１、１、０）のときは、第３サブステート６４ｄとし、このとき第３ＡＤ変換器２０のみが動作する。なお、バイナリデータとの対応は、（Ｑ８、Ｑ７）が（０、０）のときは第０サブステート６４ａ、（０、１）のときは第１サブステート６４ｂ、（１、０）のときが第２サブステート６４ｃ、（１、１）のときが第３サブステート６４ｄである。
【００３９】
このようなタイムチャートとすることにより、第１センサ１２ａ及び第３センサ１２ｃから入力される複数のアナログ信号は、チップセレクト３０をトリガとしてＡＤ変換器１４によりＡＤ変換されてデジタルデータ２２ａ、２２ｂ、２２ｃとなる。そして、第１デジタルデータ２２ａ、及び第２デジタルデータ２２ｂ、及び第３デジタルデータ２２ｃがこの順でシリアルクロック３２に掛け合わされて遂次的に出力され、計４８個のパルス列からなるシリアルデータ３４が生成される。
【００４０】
上記構成のもと、本実施形態に係るＡＤ変換システム１０の動作について説明する。図４にＡＤ変換システム１０の動作フロー８０を示す。本実施形態に係るＡＤ変換システム１０の動作フロー８０は、サンプリング周波数を決定するとともに、シーケンサ２６全体をＯＮ・ＯＦＦ制御するメインステートタスク８２、ＡＤ変換システム１０のサブステート６４を決定するサブステートタスク８４、複数のセンサから入力されるアナログ信号を遂次的にＡＤ変換するＡＤＣコントロールロジックタスク８６に分類される。
【００４１】
まず、メインステートタスク８２において、マイコン８８からのリセット信号をＨにしてバイナリカウンタ３６及び第２カウンタ４０を初期値に戻したのち、リセット信号Ｌにしてリセットを解除する。この時点でメインステートタスク８２とサブステートタスク８４が同時に起動する。そしてサブステートタスク８４において、マイコン８８からのクロック２４によりバイナリカウンタ３６がカウントアップしていく、そしてバイナリカウンタ３６のＱ６が最初にネゲートとなったところで、デコーダ３８はバイナリデータ（Ｑ８、Ｑ７）をデコードすることにより、ＡＤＣコントロールロジックタスク８６が起動する。サブステートタスク８４において、バイナリカウンタ３６のＱ６が再びネゲートとなったら、デコーダ３８は更新されたバイナリデータ（Ｑ８、Ｑ７）をデコードする。そしてバイナリデータ（Ｑ８、Ｑ７）がフルカウントとなったらサブステートタスク８４を終了する。
【００４２】
ＡＤＣコントロールロジックタスク８６において、デコードされたサブステート６４に基づきチップセレクト３０を出力してＡＤ変換器１４を動作させる。第０サブステート６４ａの場合、チップセレクト３０（ｎＣＳ１、ｎＣＳ２、ｎＣＳ３）は全て１の信号（電圧Ｈ）であり、いずれのＡＤ変換器も動作しない。第１サブステート６４ｂの場合、チップセレクト３０は、ｎＣＳ１のみが０の信号（電圧Ｌ）となり第１ＡＤ変換器１６がＡＤ変換を行う。第２サブステート６４ｃの場合、ｎＣＳ２のみが０の信号となり第２ＡＤ変換器１８がＡＤ変換を行う。第３サブステート６４ｄの場合、ｎＣＳ３のみが０の信号となり、第３ＡＤ変換器２０がＡＤ変換を行う。そして各サブステートを実行することによりＡＤＣコントロールロジックタスク８６を終了する。
【００４３】
サブステートタスク８４が終了すると、バイナリカウンタ３６から第２カウンタ４０へキャリー（Ｃａ）が出力され、第２カウンタ４０がカウントアップされる。バイナリカウンタ３６がキャリー（Ｃａ）を出すたびにカウントアップされるが、第２カウンタ４０のカウント値がゼロになるまでサブステートタスク８４、及びＡＤＣコントロールロジックタスク８６が起動することはない。そして第２カウンタ４０のカウント値は再び初期値（ゼロ）となり、その後バイナリカウンタ３６のＱ６が最初にネゲートとなったところで、サブステートカウンタ８４及びＡＤＣコントロールロジックタスク８６が起動して、以上
の動作を繰り返すことになる。
【００４４】
上記フローにおいて、サブステートタスク８４、及びＡＤＣコントロールロジックタスク８６の実行中にバイナリカウンタ３６、及び第２カウンタ４０にリセット信号（電圧Ｈ）が入力された場合、メインステートタスク８２及びサブステートタスク８４は即時強制停止となり、これに付随してＡＤＣコントロールロジックタスク８６も停止する。
【００４５】
図５に本実施形態に係るＡＤ変換システム１０とマイコン８８との接続概要図を示す。図５に示すように、ＡＤ変換システム１０には、マイコン８８のクロックがクロック２４として入力されている。そしてＡＤ変換システム１０はパラレルインターフェース９０及びシリアルインターフェース９２によりマイコン８８と接続されている。ここでシリアルインターフェース９２はシリアルデータ３４をパラレルデータ９４に変換して出力し、またはその逆を行うものである。
【００４６】
パラレルインターフェース９０の割込端子９０ａ（本実施形態では使用せず）およびチップセレクト９０ｂ（ｎＣＳ）はマイコン８８のコントロールバス９６に接続されている。また、デジタルインプットアウトプット９０ｃ（Ｄｉｏ）はマイコン８８のデータバス９８と接続され、パラレルデータ９４を入出力することができる。またデジタルインプットアウトプット９０ｃの他端はＡＤ変換システム１０のシーケンサ２６のリセット入力端子３４ａに接続している。これによりマイコン８８からのリセット信号をデータバス９８、及びパラレルインターフェース９０を通じてＡＤ変換システム１０へ送信することができる。このときリセット信号は、Ｈであればシーケンサ２６のリセットを行い、Ｌであれば、リセットを解除してシーケンサ２６を起動させる。
【００４７】
シリアルインターフェース９２の割込端子９２ａおよびチップセレクト９２ｂ（ｎＣＳ）はマイコン８８のコントロールバス９６に接続され、デジタルインプットアウトプット９２ｃ（Ｄｉｏ）はデータバス９８に接続されている。一方、シリアルインターフェース９２のクロック入力９２ｄ（ＳＣＫ）はシーケンサ２６のシリアルクロック出力端子２６ｇに接続され、入力端子９２ｅ（ＲｘＤ）はＡＤ変換器１４のデジタルデータ出力端子１６ｄ、１８ｄ、２０ｄに接続されている。上述のように、ＡＤ変換システム１０のシーケンサ２６から出力されるシリアルクロック３２及びシリアルデータ３４は、マイコン８８のクロック２４から生成されたものであるため、マイコン８８のクロック２４と同期している。したがって、この接続は同期調歩（非同期）ではないため、シリアルデータ３４の前後に同期タイミングを計るためのスタートビット及びエンドビットを付加して加工するシーケンサ（不図示）を構成する必要はない。そして４８個のパルス列からなるシリアルデータ３４が、シリアルクロック３２をトリガとしてシリアルインターフェース９２内のレジスタ（不図示）にフルにストアされる度に、シリアルインターフェース９２の割込端子９２ａからコントロールバス９６に割り込みをかけることができるように構成されている。
【００４８】
一方、マイコン８８内のメモリ（不図示）はデータバス９８とパラレルで接続されている。そして、マイコン８８内のＣＰＵ（不図示）は、前記割り込みが入る度に、その時点で実行中の命令のアドレス等をメモリ（不図示）の退避領域に退避させ、シリアルインターフェース９２のチップセレクト９２ｂをネゲートで選択して、ソフトウェアを介してパラレルデータ９４を転送し、パラレルデータ９４にメモリ番地を与えてマイコン８８内のメモリ（不図示）に格納する作業を行う（ポーリング）。これにより、マイコン８８はＡＤ変換システム１０のＯＮ・ＯＦＦ操作のみを行い、ＡＤ変換の各タスクに係る信号の出力はシーケンサ２６が代わりに行うため、マイコン８８は他のタスクに集中して実行でき、システム全体の信頼性が向上する。
【００４９】
さらにマイコン８８がＤＭＡ（ダイレクトメモリアクセス）コントローラ（不図示）を有している場合は、マイコン８８内のＣＰＵ（不図示）は、コントロールバス９６の管理の主導権をＤＭＡコントローラ（不図示）に譲っている。よってＤＭＡコントローラ（不図示）は、前記割り込みが入るとコントロールバス９６を介してメモリ（不図示）における転送先アドレスを指定し、データバス９８がシリアルインターフェース９２に開放し、１クロックタイムでメモリ（不図示）に書き込ませる。したがって、マイコン８８内のＣＰＵ（不図示）はデータ転送に関してポーリングのような作業をする必要はなく、他のタスクの処理に対してより多くの時間を掛けることができる。
【００５０】
ＡＤ変換中にリセット信号（信号Ｈ）が入った場合、シーケンサ２６のバイナリカウンタ３６、および第２カウンタ４０は初期値にリセットされ、リセット信号がある限りバイナリカウンタ３６、及び第２カウンタ４０はカウントアップされない。この場合、シリアルインターフェース９２にはシリアルデータ３４として完成していない、未完成データ（不図示）が入力されている場合がある。したがってマイコン８８において、リセット後にシリアルインターフェース９２に未完成データ（不図示）がある場合はそれをメモリ（不図示）に格納せず、破棄するソフトウェアを構成すればよい。ただし、リセット時にシリアルデータ３４をメモリ（不図示）に格納中であれば、作業を中断しないようなソフトウェアを構成すればよい。そして、シリアルデータ３４を格納後であってシリアルインターフェース９２内のシリアルデータ３４がメモリ（不図示）へ転送されていない場合はそのままマイコン８８のタスクを停止させ、次回起動時にマイコン８８の設定を初期化するソフトウェアを構成すればよい。
【００５１】
マイコン８８には第２シリアルインターフェース１００を介してホストＰＣ１０２が接続されている。ホストＰＣ１０２は、ＡＤ変換システム１０をマイコン８８を介して操作するアプリケーションを有した端末である。第２シリアルインターフェース１００の入力端子１００ａ（ＲｘＤ）はホストＰＣ１０２のシリアルデータ出力端子１０２ａと接続され、出力端子１００ｂ（ＴｘＤ）はホストＰＣ１０２のシリアルデータ入力端子１０２ｂに接続されている。また割込端子１００ｃ及びチップセレクト１００ｄ（ｎＣＳ）はコントロールバス９６に接続されている。デジタルインプットアウトプット１００ｅ（Ｄｉｏ）はデータバス９８と接続され，パラレルデータ９４を入出力することができる。ホストＰＣ１０２はシリアルデータ１０４を入出力するが、マイコン８８とは独立したクロックで駆動している。よって、ホストＰＣ１０２と第２シリアルインターフェース１００とのデータ通信は同期調歩（非同期）で行われる。
【００５２】
ホストＰＣ１０２はシリアルデータ１０４をマイコン８８側に出力し、マイコン８８がその内容を解読することによりマイコン８８がＡＤ変換のＯＮ・ＯＦＦを行うことができる。これを行うため、ホストＰＣ１０２からマイコン８８への命令に係るシリアルデータ１０４が第２シリアルインターフェース１００のレジスタ（不図示）にストアされ、割込端子１００ｃから割り込み要求がなされた場合、マイコン８８がチップセレクト１００ｄをネゲートで選択し、デジタルインプットアウトプット１００ｅを通じてパラレルデータ９４を取得してマイコン８８のメモリ（不図示）に格納できるマイコン８８のソフトウェアを構成すればよい。
【００５３】
さらにホストＰＣ１０２は、例えばＡＤ変換の感度やオフセット等をアプリケーション上で論理的に補正することができる。同様の補正処理はマイコン８８のソフトウェアで実行してホストＰＣ１０２に補正データを出力することもできる。例えば、シリアルインターフェース９２を介して取得したデータを感度補正またはオフセット等の補正値を演算し、ＦＩＲフィルタで演算してホストＰＣ１０２側でシリアルデータ１０４として認識できるデータにダウンサンプル等を行い、ホストＰＣ１０２側の第２シリアルインターフェース１００のチップセレクト１００ｄをネゲートで選択し、前記データを出力するようにマ
イコン８８のソフトウェアを構成すればよい。
【００５４】
以上説明したように、本実施形態に係るＡＤ変換システム１０によれば、マイコン８８に代わってシーケンサ２６がアナログ信号を遂次的にＡＤ変換する。よってマイコン８８はシーケンサ２６の駆動・停止を指令するのみで済み、従来のＡＤ変換作業が要するマイコン８８のソフトウェアリソースのシステムに占める割合を小さくすることができる。さらにＡＤ変換の指令はハードウェアであるシーケンサ２６が行うため、マイコン８８がソフトウェアを通じてＡＤ変換を行う場合より、サンプリングジッターを低減することができる。そしてシーケンサ２６において、バイナリカウンタ３６がタイマーの役割を兼ねているので、シーケンサ２６の回路構成を簡略化できる。
【００５５】
また第２カウンタ４０のフルカウントとなる周期がＡＤ変換のサンプリング周期となるため、サンプリング周期もマイコン８８ではなく、シーケンサ２６が制御することになるので、サンプリングジッターをさらに低減することができる。
【００５６】
また、バイナリカウンタ３６はスタティックハザードを有するため、チップセレクト３０はバイナリカウンタ３６からのスタティックハザードによる誤ったチップセレクトが出力された直後に出力される。一方、バッファレジスタ４４は、バイナリカウンタ３６のビット領域より下位のビット（Ｑ１）からのパルスのアサートをトリガとしてチップセレクト３０を出力（ストア）するため、誤ったチップセレクトが終了して正しいチップセレクト３０がデコーダ３８から出力された後にバッファレジスタ４４の入力側を開放することになる。よって、バッファレジスタ４４のストア側からバイナリカウンタ３６を見るとスタティックハザードの無い、ワンホット・ステート・カウンタのように見えることになる。そして、ＡＤ変換器１４において実際のＡＤ変換はチップセレクト３０がデコードされてから、前記アサートがバッファレジスタ４４に入力される時間だけ遅れて行われることとなるが、スタティックハザードによる誤ったチップセレクトがバッファレジスタ４４に入力されることなく、これにより後段のＡＤ変換器１４の誤動作を防止できる。
【００５７】
さらに、シーケンサ２６及びＡＤ変換器１４は水晶発振によりクロック２４を生成しているマイコン８８をクロック源としており、マイコン８８内部のタスクの影響を排除したサンプリングを行うことができるため、サンプルジッターを低減できる。また、シリアルデータ３４はマイコン８８のクロック２４と同期して出力されるとともに、シリアルインターフェース９２に入力されるとパラレル化される。よってパラレルのデータを送受信するマイコン８８は、パラレル化されたデータを何ら加工することなく取得することが容易となる。したがって、マイコン８８のＡＤ変換器からのデータの取り込みのためのソフトウェアリソースがシステムに占める割合を小さくすることができる。特にマイコン８８がダイレクトメモリアクセスを用いる場合は、マイコン８８内のＣＰＵがデータ取得のための作業をする必要はないので、ＡＤ変換器１４からのデータの取り込みのソフトウェアリソースがシステムに占める割合を最小にするＡＤ変換システム１０となる。
【図面の簡単な説明】
【００５８】
【図１】本実施形態に係るＡＤ変換システムの概要図である。
【図２】本実施形態に係るＡＤ変換システムのシーケンサの回路構成図である。
【図３】本実施形態に係るＡＤ変換システムのタイムチャートを示す図である。
【図４】本実施形態に係るＡＤ変換システムの動作フローを示す図である。
【図５】本実施形態に係るＡＤ変換システムとマイコンとの接続概要図である。
【符号の説明】
【００５９】
１０………ＡＤ変換システム、１２………センサ、１４………ＡＤ変換器、１６………第１ＡＤ変換器、１８………第２ＡＤ変換器、２０………第３ＡＤ変換器、２２………デジ
タルデータ、２４………クロック、２６………シーケンサ、２８………分周器、３０………チップセレクト、３２………シリアルクロック、３４………シリアルデータ、３６………バイナリカウンタ、３８………デコーダ、４０………第２カウンタ、４２………ＯＲ回路、４４………バッファレジスタ、４６………Ｄフリップフロップ、４８………Ｄフリップフロップ、５０………Ｄフリップフロップ、５２………シリアルクロック生成部、５４………Ｄフリップフロップ、５６………ＮＡＮＤ回路、５８………ＯＲ回路、６０………ＮＡＮＤ回路、６２………インバータ、６４………サブステート、８０………動作フロー、８２………メインステートタスク、８４………サブステートタスク、８６………コントロールロジックタスク、８８………マイコン、９０………パラレルインターフェース、９２………シリアルインターフェース、９４………パラレルデータ、９６………コントロールバス、９８………データバス、１００………第２シリアルインターフェース、１０２………ホストＰＣ、１０４………シリアルデータ。
【図１】
2010141386.tif 000003
【図２】
2010141386.tif 000004
【図３】
2010141386.tif 000005
【図４】
2010141386.tif 000006
【図５】
2010141386.tif 000007