(57)【特許請求の範囲】
【請求項１】
ＡＤ変換器のＡＤ変換結果の送信先となる外部装置からのコマンドの上位ビットを受け取って読み出しコマンドと判定したときに検出信号を有効とし、前記外部装置からのコマンドを全て受け取って読み出しコマンドと確定したときに送信許可信号を有効とする検出回路と、
前記外部装置のクロックと同期した前記検出信号に応じて、前記ＡＤ変換器のクロックと同期した内部レジスタ値変更禁止信号を出力するクロック載せ換え回路と、
前記ＡＤ変換器からのデータ準備完了信号が有効であり、かつ前記内部レジスタ値変更禁止信号が無効であるときに、前記ＡＤ変換器のＡＤ変換結果を取り込む第１のＡＤ変換結果用レジスタと、
前記送信許可信号が有効であるときに、前記第１のＡＤ変換結果用レジスタからＡＤ変換結果を読み出して前記外部装置へ送信するデータ送信回路とを備えることを特徴とするＡＤ変換結果読出回路。
【請求項２】
請求項１記載のＡＤ変換結果読出回路において、
さらに、前記ＡＤ変換器からのデータ準備完了信号が有効であり、かつ前記内部レジスタ値変更禁止信号が有効であるときに、前記ＡＤ変換器のＡＤ変換結果を取り込む第２のＡＤ変換結果用レジスタを備え、
前記第１のＡＤ変換結果用レジスタは、前記内部レジスタ値変更禁止信号が無効になったときに、前記第２のＡＤ変換結果用レジスタの出力を取り込むことを特徴とするＡＤ変換結果読出回路。
【請求項３】
請求項１または２記載のＡＤ変換結果読出回路において、
さらに、前記ＡＤ変換器からのデータ準備完了信号が有効であり、かつ前記内部レジスタ値変更禁止信号が無効であるときに、前記ＡＤ変換結果に対応付けられた識別データを前記ＡＤ変換器から取り込む第１の識別データ用レジスタを備え、
前記データ送信回路は、前記送信許可信号が有効であるときに、前記第１のＡＤ変換結果用レジスタからＡＤ変換結果を読み出して前記外部装置へ送信すると共に、前記第１の識別データ用レジスタから識別データを読み出して前記外部装置へ送信することを特徴とするＡＤ変換結果読出回路。
【請求項４】
請求項３記載のＡＤ変換結果読出回路において、
さらに、前記ＡＤ変換器からのデータ準備完了信号が有効であり、かつ前記内部レジスタ値変更禁止信号が有効であるときに、前記識別データを取り込む第２の識別データ用レジスタを備え、
前記第１の識別データ用レジスタは、前記内部レジスタ値変更禁止信号が無効になったときに、前記第２の識別データ用レジスタの出力を取り込むことを特徴とするＡＤ変換結果読出回路。
【請求項５】
請求項３または４記載のＡＤ変換結果読出回路において、
前記識別データは、前記ＡＤ変換器によるＡＤ変換処理の実行回数を示すデータであることを特徴とするＡＤ変換結果読出回路。
【請求項６】
請求項３または４記載のＡＤ変換結果読出回路において、
前記識別データは、前記ＡＤ変換器によってＡＤ変換処理が実行された時刻を示すデータであることを特徴とするＡＤ変換結果読出回路。
【請求項７】
請求項３または４記載のＡＤ変換結果読出回路において、
前記識別データは、前記ＡＤ変換器によってＡＤ変換処理が実行される毎に論理レベルが反転する１ビットのデータであることを特徴とするＡＤ変換結果読出回路。
【請求項８】
請求項３または４記載のＡＤ変換結果読出回路において、
前記識別データは、フリーランカウンタのカウント値に基づくデータであることを特徴とするＡＤ変換結果読出回路。
【請求項９】
請求項１〜８のいずれか１項に記載のＡＤ変換結果読出回路において、
前記検出回路は、前記検出信号を有効とした後に、前記外部装置からのコマンドを全て受け取って読み出しコマンドでないと判定したときに、前記検出信号を無効とすることを特徴とするＡＤ変換結果読出回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＤ変換器からＡＤ変換結果を読み出すＡＤ変換結果読出回路に関するものである。
【背景技術】
【０００２】
従来の一般的なΔΣ型ＡＤ変換器において、ＣＰＵ（Central Processing Unit）などからＳＰＩ（Serial Peripheral Interface）にてＡＤ変換結果を読み出す際、変換状態を示すＤＲＤＹ信号を監視し、ＤＲＤＹ信号の立ち下がり検出後、次の変換完了までの期間にＡＤ変換結果を読み出すようにＳＰＩマスターを設計しなければならない仕様となっている（非特許文献１、非特許文献２参照）。
【０００３】
このような制約があるのは、もしもＤＲＤＹ信号の立ち下がりを検出してからＳＰＩマスターの変換結果読み出しのタイミングが他の処理の要因で遅れてしまい、次のＡＤ変換結果の更新とＳＰＩマスターからの読み出しがぶつかってしまうと、読み出したＡＤ変換結果が不定値になるためである。さらに破壊されて不定値となったことを判定・確認する方法がＡＤ変換器に用意されていないため、ＡＤ変換結果を読み出す際は絶対にタイミングの遅れが許されず、ＣＰＵの設計者は極めて厳密な時間管理を行わなければならなかった。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“温度センサ向け２４ビット  Ａ／Ｄコンバータ  ＡＤＳ１２４８”，日本テキサス・インスツルメンツ株式会社，２０１１年，＜http://www.tij.co.jp/jp/lit/ds/symlink/ads1248.pdf＞
【非特許文献２】“２０μｓセトリング、２５０ｋＳＰＳの２４ビットΣ−Δ  ＡＤＣ  ＡＤ７１７６−２”，アナログ・デバイセズ株式会社，２０１２年，＜http://www.analog.com/media/jp/technical-documentation/data-sheets/AD7176-2_jp.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上のように、従来は、ＡＤ変換結果を読み出すＳＰＩマスターを設計しようとする設計者は、極めて厳密な時間管理を行わなければならず、タイミング設計の負担が大きいため、余裕のある処理能力を持ったＣＰＵを選択せざるを得なかった。
【０００６】
本発明は、上記課題を解決するためになされたもので、設計者のタイミング設計の負担を軽減し、ＣＰＵの要求性能を緩和することができるＡＤ変換結果読出回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のＡＤ変換結果読出回路は、ＡＤ変換器のＡＤ変換結果の送信先となる外部装置からのコマンドの上位ビットを受け取って読み出しコマンドと判定したときに検出信号を有効とし、前記外部装置からのコマンドを全て受け取って読み出しコマンドと確定したときに送信許可信号を有効とする検出回路と、前記外部装置のクロックと同期した前記検出信号に応じて、前記ＡＤ変換器のクロックと同期した内部レジスタ値変更禁止信号を出力するクロック載せ換え回路と、前記ＡＤ変換器からのデータ準備完了信号が有効であり、かつ前記内部レジスタ値変更禁止信号が無効であるときに、前記ＡＤ変換器のＡＤ変換結果を取り込む第１のＡＤ変換結果用レジスタと、前記送信許可信号が有効であるときに、前記第１のＡＤ変換結果用レジスタからＡＤ変換結果を読み出して前記外部装置へ送信するデータ送信回路とを備えることを特徴とするものである。
【０００８】
また、本発明のＡＤ変換結果読出回路の１構成例は、さらに、前記ＡＤ変換器からのデータ準備完了信号が有効であり、かつ前記内部レジスタ値変更禁止信号が有効であるときに、前記ＡＤ変換器のＡＤ変換結果を取り込む第２のＡＤ変換結果用レジスタを備え、前記第１のＡＤ変換結果用レジスタは、前記内部レジスタ値変更禁止信号が無効になったときに、前記第２のＡＤ変換結果用レジスタの出力を取り込むことを特徴とするものである。
また、本発明のＡＤ変換結果読出回路の１構成例は、さらに、前記ＡＤ変換器からのデータ準備完了信号が有効であり、かつ前記内部レジスタ値変更禁止信号が無効であるときに、前記ＡＤ変換結果に対応付けられた識別データを前記ＡＤ変換器から取り込む第１の識別データ用レジスタを備え、前記データ送信回路は、前記送信許可信号が有効であるときに、前記第１のＡＤ変換結果用レジスタからＡＤ変換結果を読み出して前記外部装置へ送信すると共に、前記第１の識別データ用レジスタから識別データを読み出して前記外部装置へ送信することを特徴とするものである。
また、本発明のＡＤ変換結果読出回路の１構成例は、さらに、前記ＡＤ変換器からのデータ準備完了信号が有効であり、かつ前記内部レジスタ値変更禁止信号が有効であるときに、前記識別データを取り込む第２の識別データ用レジスタを備え、前記第１の識別データ用レジスタは、前記内部レジスタ値変更禁止信号が無効になったときに、前記第２の識別データ用レジスタの出力を取り込むことを特徴とするものである。
【０００９】
また、本発明のＡＤ変換結果読出回路の１構成例において、前記検出回路は、前記検出信号を有効とした後に、前記外部装置からのコマンドを全て受け取って読み出しコマンドでないと判定したときに、前記検出信号を無効とすることを特徴とするものである。
また、本発明のＡＤ変換結果読出回路の１構成例において、前記識別データは、前記ＡＤ変換器によるＡＤ変換処理の実行回数を示すデータである。
また、本発明のＡＤ変換結果読出回路の１構成例において、前記識別データは、前記ＡＤ変換器によってＡＤ変換処理が実行された時刻を示すデータである。
また、本発明のＡＤ変換結果読出回路の１構成例において、前記識別データは、前記ＡＤ変換器によってＡＤ変換処理が実行される毎に論理レベルが反転する１ビットのデータである。
また、本発明のＡＤ変換結果読出回路の１構成例において、前記識別データは、フリーランカウンタのカウント値に基づくデータである。
【発明の効果】
【００１０】
本発明によれば、検出回路とクロック載せ換え回路と第１のＡＤ変換結果用レジスタとデータ送信回路とを設けることにより、外部装置に対して特別な制約を与えることなくＡＤ変換結果を外部装置に送信することが可能となり、設計者のタイミング設計の負担を軽減することができ、外部装置（ＣＰＵ）の要求性能を緩和することができる。また、本発明では、ＡＤ変換結果が不定値になることを防ぐことができ、ＡＤ変換器のクロックの周波数を上げることなくＡＤ変換結果を保護することが可能となる。
【００１１】
また、本発明では、第２のＡＤ変換結果用レジスタを設けることにより、ＡＤ変換結果の取りこぼしの発生を回避することができる。
【００１２】
また、本発明では、第１の識別データ用レジスタを設け、データ送信回路が検出回路からの送信許可信号が有効であるときに、第１の識別データ用レジスタから識別データを読み出して外部装置へ送信することにより、ＡＤ変換結果の重複取得やＡＤ変換結果の取りこぼしの有無を外部装置側で判断することが可能となる。
【００１３】
また、本発明では、第２の識別データ用レジスタを設けることにより、識別データの取りこぼしの発生を回避することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施の形態に係るＡＤ変換結果読出回路の構成を示すブロック図である。
【図２】本発明の第１の実施の形態に係るＡＤ変換結果読出回路のＲＥＡＤ検出回路の動作を説明するフローチャートである。
【図３】本発明の第１の実施の形態に係るＡＤ変換結果読出回路の各部の動作を説明するタイミングチャートである。
【図４】本発明の第１の実施の形態に係るＡＤ変換結果読出回路のクロック載せ換え回路の構成例を示すブロック図である。
【図５】メタステーブル状態を防ぐためのタイミング関係を説明するタイミングチャートである。
【図６】メタステーブル状態を防ぐためのタイミング関係を説明するタイミングチャートである。
【図７】従来のＡＤ変換結果読出回路においてＡＤ変換器側のクロックの周波数を高くした場合の動作を示すタイミングチャートである。
【図８】本発明の第２の実施の形態に係るＡＤ変換結果読出回路の各部の動作を説明するタイミングチャートである。
【図９】本発明の第３の実施の形態に係るＡＤ変換結果読出回路の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
［第１の実施の形態］
以下、本発明の実施の形態について図面を参照して説明する。図１は本発明の第１の実施の形態に係るＡＤ変換結果読出回路の構成を示すブロック図である。本実施の形態のＡＤ変換結果読出回路は、ＡＤ変換器（以下、ＡＤＣ）１のＡＤ変換結果を一時的に格納するＡＤ変換結果用レジスタ２，３と、外部装置であるＳＰＩマスター７からのコマンドの上位ビットを受け取って読み出しコマンドと判定したときに検出信号を有効とし、ＳＰＩマスター７からのコマンドを全て受け取って読み出しコマンドと確定したときに送信許可信号を有効とするＲＥＡＤ検出回路４と、ＳＰＩマスター７のクロックと同期した検出信号に応じて、ＡＤＣ１のクロックと同期した内部レジスタ値変更禁止信号を出力するクロック載せ換え回路５と、送信許可信号が有効であるときに、ＡＤ変換結果用レジスタ２からＡＤ変換結果を読み出してＳＰＩマスター７へ送信するデータ送信回路６とから構成される。
【００１６】
本発明において、ＡＤ変換結果用レジスタを２つ設けることは必須の構成要件ではない。そこで、まず最初に、ＡＤ変換結果用レジスタ２のみを使う場合のＡＤ変換結果読出回路の動作を図２、図３を用いて説明する。図２はＲＥＡＤ検出回路４の動作を説明するフローチャート、図３はＡＤ変換結果読出回路の各部の動作を説明するタイミングチャートである。
【００１７】
本実施の形態では、ＡＤＣ１のクロックをＣＬＫ＿ＲＥＧ、ＳＰＩマスター７のクロックをＳＣＬＫとする。図１に示したＡＤ変換結果読出回路の構成のうち、ＡＤ変換結果用レジスタ２，３とクロック載せ換え回路５とはＣＬＫ＿ＲＥＧに同期して動作し、ＲＥＡＤ検出回路４とクロック載せ換え回路５とデータ送信回路６とはＳＣＬＫに同期して動作する。
【００１８】
図３におけるＣＳはチップセレクト信号、ＭＯＳＩ（Master Out Slave In）およびＭＩＳＯ（Master In Slave Out）はＳＰＩマスター７の信号線、ＳＣＬＫ＿ＩＮＶはクロックＳＣＬＫの反転信号、ＲＥＡＤ＿ＡＣＴは読み出しコマンドの検出信号、ＲＤＡＴＡ＿ＥＮはＡＤ変換結果の送信許可信号、ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣは内部レジスタ値変更禁止信号、ＤＲＤＹはＡＤＣ１のデータ準備完了信号、ＲＥＳＵＬＴはＡＤＣ１から出力されるＡＤ変換結果、ＲＥＳＵＬＴ＿ＢＵＦはＡＤ変換結果用レジスタ３に格納されたＡＤ変換結果、ＲＥＳＵＬＴ＿ＬＡＴＣＨはＡＤ変換結果用レジスタ２に格納されたＡＤ変換結果である。
【００１９】
まず、ＣＰＵからなるＳＰＩマスター７から信号線ＭＯＳＩを介してコマンドが送出されると、ＲＥＡＤ検出回路４は、コマンドの上位３ビットを受け取った時点で（図２ステップＳ１）、このコマンドの上位３ビットがＲＤＡＴＡ＊コマンドの上位３ビット、すなわちＡＤ変換結果の読み出しコマンドの上位３ビットと一致するかどうかを判定する（図２ステップＳ２）。図３の例では、Ｃ７〜Ｃ５がコマンドの上位３ビットで、時刻ｔ１の時点で判定を行っている。上位３ビットで判定を行う理由については後述する。
【００２０】
ＲＥＡＤ検出回路４は、ＳＰＩマスター７からのコマンドの上位３ビットが読み出しコマンドの上位３ビットと一致する場合（ステップＳ２においてＹ）、検出信号ＲＥＡＤ＿ＡＣＴを“１”（有効）に設定する（図２ステップＳ３）。
【００２１】
さらに、ＲＥＡＤ検出回路４は、ＳＰＩマスター７からコマンドの下位５ビットを受け取ると、８ビットのコマンドを全て受け取ったことになるので（図２ステップＳ４）、この８ビットのコマンドがＲＤＡＴＡ＊コマンド、すなわちＡＤ変換結果の読み出しコマンドと一致するかどうかを判定する（図２ステップＳ５）。図３の例では、Ｃ４〜Ｃ０がコマンドの下位５ビットである。
【００２２】
ＲＥＡＤ検出回路４は、ＳＰＩマスター７からの８ビットのコマンドが読み出しコマンドと一致する場合（ステップＳ５においてＹ）、検出信号ＲＥＡＤ＿ＡＣＴを“１”のままとし（図２ステップＳ６）、送信許可信号ＲＤＡＴＡ＿ＥＮを１パルス発行する。
【００２３】
データ送信回路６は、送信許可信号ＲＤＡＴＡ＿ＥＮが１パルス発行されると、ＡＤ変換結果用レジスタ２からＡＤ変換結果を８ビット分読み出して（図２ステップＳ７）、この８ビット分のＡＤ変換結果を信号線ＭＩＳＯを介してＳＰＩマスター７へシリアル送信する（図２ステップＳ８）。図３の例では、時刻ｔ３の送信許可信号ＲＤＡＴＡ＿ＥＮに応じてＤ０〜Ｄ７の８ビット分のＡＤ変換結果がＳＰＩマスター７へ送信される。
【００２４】
次に、ＲＥＡＤ検出回路４は、コマンドに対応した数のデータの送信が完了したかどうかを判定し（図２ステップＳ９）、送信し終えていない場合には（ステップＳ９においてＮ）、ステップＳ７に戻って送信許可信号ＲＤＡＴＡ＿ＥＮを再び１パルス発行し、データ送信回路６は、ＡＤ変換結果用レジスタ２からＡＤ変換結果を８ビット分読み出してＳＰＩマスター７へシリアル送信する（ステップＳ８）。図３の例では、時刻ｔ４の送信許可信号ＲＤＡＴＡ＿ＥＮに応じてＤ８〜Ｄ１５の８ビット分のＡＤ変換結果がＳＰＩマスター７へ送信される。
【００２５】
こうして、コマンドに対応した数のデータの送信が完了するまでステップＳ７，Ｓ８の処理が繰り返し実行される。本実施の形態では、ＳＰＩマスター７からの読み出しコマンドに応じて送るＡＤ変換結果を２４ビットとする。したがって、送信許可信号ＲＤＡＴＡ＿ＥＮが３回発行され、Ｄ０〜Ｄ２３の２４ビットのデータを送信し終えた時点でステップＳ９が判定Ｙとなる（時刻ｔ５）。
【００２６】
ＲＥＡＤ検出回路４は、データの送信が完了すると、検出信号ＲＥＡＤ＿ＡＣＴを“０”（無効）にする（図２ステップＳ１０）。
なお、ＲＥＡＤ検出回路４は、ＳＰＩマスター７からの８ビットのコマンドが読み出しコマンドと一致しなかった場合にも（図２ステップＳ５においてＮ）、検出信号ＲＥＡＤ＿ＡＣＴを“０”にする。つまり、ステップＳ２の判定においてＳＰＩマスター７からのコマンドの上位３ビットが読み出しコマンドの上位３ビットと一致したとしても、判定を誤っている可能性がある。そこで、ステップＳ５において８ビットのコマンドを全て解析した結果、ＳＰＩマスター７からのコマンドが読み出しコマンドでなかった場合には、検出信号ＲＥＡＤ＿ＡＣＴを“０”にして、ステップＳ２，Ｓ３で下した判定結果を取り消す。
【００２７】
次に、ＡＤＣ１のクロックＣＬＫ＿ＲＥＧに同期して動作する構成について説明する。ＡＤ変換結果用レジスタ２は、ＡＤＣ１から出力されるデータ準備完了信号ＤＲＤＹが“１”（無効）から“０”（有効）に立ち下がり、ＡＤＣ１のデータ準備が完了したことが通知されると、このときの内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“０”（無効）で、読み出しコマンドが検出されていないことを示しているため、ＡＤＣ１からのＡＤ変換結果ＲＥＳＵＬＴを取り込む。上記のとおり、ＡＤ変換結果ＲＥＳＵＬＴは２４ビットである。こうして、ＡＤ変換結果用レジスタ２の出力ＲＥＳＵＬＴ＿ＬＡＴＣＨが更新される。図３の例では、ＲＥＳＵＬＴ＿ＬＡＴＣＨが、古い変換結果を示す“ＯＬＤ”から、新たに取り込んだ変換結果を示す“ＮＥＷ”へと更新されることが分かる。
【００２８】
次に、クロック載せ換え回路５は、ＲＥＡＤ検出回路４から出力される検出信号ＲＥＡＤ＿ＡＣＴに応じて、クロックＣＬＫ＿ＲＥＧと同期した内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣを生成する。図４はクロック載せ換え回路５の構成例を示すブロック図である。クロック載せ換え回路５は、２つのフリップフロップ５０，５１によって構成される。
【００２９】
このように、１ビットの信号に対するクロック載せ換え処理は、受信側のクロックで２段受けする手法がよく用いられる。このような手法を用いた場合、内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣは、検出信号ＲＥＡＤ＿ＡＣＴに対して最大でＣＬＫ＿ＲＥＧの周期の２倍の時間遅れることになる。図３の例では、時刻ｔ１で検出信号ＲＥＡＤ＿ＡＣＴが“１”（有効）になった後に時刻ｔ２で内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“１”（有効）になる。また、時刻ｔ５で検出信号ＲＥＡＤ＿ＡＣＴが“０”（無効）になった後に時刻ｔ６で内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“０”（無効）になる。この時刻ｔ１とｔ２の時間差および時刻ｔ５とｔ６の時間差が、図４のクロック載せ換え回路５による遅れである。
【００３０】
ＳＰＩマスター７がＡＤＣ１の変換周期を考慮せずに変換結果読み出しを行なった場合、正しいデータを読み出せないことがある。データが破壊されてしまう理由としては、ＳＰＩマスター７のクロックＳＣＬＫとＡＤＣ１のクロックＣＬＫ＿ＲＥＧの関係は非同期であり、異なるクロック間でデータの受け渡しを行う際に偶然この２つのクロックの立ち上がりエッジが近づいてしまうと、フリップフロップのセットアップ／ホールドタイミングが満たせなくなるためである。この現象はメタステーブルと呼ばれている。メタステーブルについては、例えば文献「“コラム：非同期クロックと検証手法−２”，株式会社アルティマ，＜http://www.altima.jp/products/software/mentor/fv/column/cdc-2.html＞」で説明されている。
【００３１】
図５、図６はこのメタステーブル状態を防ぐためのタイミング関係を説明するタイミングチャートであり、図５はクロック載せ換え時間が短くなる場合（検出信号ＲＥＡＤ＿ＡＣＴの立ち上がり直後にクロックＣＬＫ＿ＲＥＧが立ち上がる場合）を示し、図６はクロック載せ換え時間が長くなる場合（クロックＣＬＫ＿ＲＥＧの立ち上がり直後に検出信号ＲＥＡＤ＿ＡＣＴが立ち上がる場合）を示している。
【００３２】
メタステーブル状態を防ぐためには、ＳＰＩマスター７へのＡＤ変換結果の送信タイミングよりも前に内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣを”１”（有効）とし、ＡＤ変換結果の送信中にレジスタ値が変化しないように制御する必要があるので、図５、図６においてＴ１＞Ｔ２としなければならない。Ｔ１は検出信号ＲＥＡＤ＿ＡＣＴが“１”になってから送信許可信号ＲＤＡＴＡ＿ＥＮが“１”（有効）になるまでの時間、Ｔ２はクロック載せ換えに要する時間である。
【００３３】
つまり、検出信号ＲＥＡＤ＿ＡＣＴの判定実施サイクルをＮとすると、次の式（１）が成り立つようなタイミングで検出信号ＲＥＡＤ＿ＡＣＴの判定を行う必要がある。
ＳＣＬＫの周期×（８−Ｎ）＞ＣＬＫ＿ＲＥＧの周期×２            ・・・（１）
ここで、コマンドは８ビットなのでＮの最大値は８である。
【００３４】
ＳＰＩマスター７のクロックＳＣＬＫとＡＤＣ１のクロックＣＬＫ＿ＲＥＧの周波数の関係が例えば、ＳＣＬＫ：ＣＬＫ＿ＲＥＧ＝１：１０であれば、ＳＰＩマスター７からのコマンド（８ビット）を全て受け付け後に検出信号ＲＥＡＤ＿ＡＣＴの判定を行ったとしても、ＳＰＩマスター７に対して特別な制約を与えることなくＡＤ変換結果をＳＰＩマスター７に対して送信することが可能である。
【００３５】
図７は従来のＡＤ変換結果読出回路においてクロックＣＬＫ＿ＲＥＧの周波数を十分に高くした場合の動作を示している。この図７の例では、Ｃ７〜Ｃ０の８ビットのコマンドを全て読んだ後で検出信号ＲＥＡＤ＿ＡＣＴを”１”にしている。このように、クロックＣＬＫ＿ＲＥＧを十分に速くすれば、検出信号ＲＥＡＤ＿ＡＣＴを先読みで“１”にする必要がなくなる。ただし、クロックＣＬＫ＿ＲＥＧが高速になるため、消費電力が増大するという問題がある。
【００３６】
一方、本実施の形態のようにＳＣＬＫとＣＬＫ＿ＲＥＧの周波数の関係が、ＳＣＬＫ：ＣＬＫ＿ＲＥＧ＝２：１の場合、クロック載せ換えに要する時間Ｔ２を考慮すると、単純にコマンド８ビット全てを受け取ってから検出信号ＲＥＡＤ＿ＡＣＴの判定を行っていては変換結果送信タイミングに間に合わない。そこで、本実施の形態では、８ビットのコマンド全てを受け取る前に先行して検出信号ＲＥＡＤ＿ＡＣＴの判定を行っている。本実施の形態のようにクロックＳＣＬＫの最大周波数がクロックＣＬＫ＿ＲＥＧの周波数の２倍であるとすると、式（１）よりＮ＜４が成り立つことが必要となる。したがって、本実施の形態では、Ｎ＝３とした。以上が、図２のステップＳ２においてコマンドの上位３ビットで判定を行う理由である。
【００３７】
８ビットのコマンド全てを受け取る前に先行して検出信号ＲＥＡＤ＿ＡＣＴの判定を行うことにより、送信許可信号ＲＤＡＴＡ＿ＥＮが“１”（有効）になるときは必ず内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“１”（有効）になっているので、ＡＤ変換結果の送信タイミング（図３の例ではｔ３，ｔ４）でＡＤ変換結果用レジスタ２の出力ＲＥＳＵＬＴ＿ＬＡＴＣＨが変化することはない。つまり、メタステーブルは発生しない。
【００３８】
以上の構成により、本実施の形態では、ＳＰＩマスター７に対して特別な制約を与えることなくＡＤ変換結果をＳＰＩマスター７に送信することが可能となり、設計者のタイミング設計の負担を軽減することができ、ＳＰＩマスター７（ＣＰＵ）の要求性能を緩和することができる。また、本実施の形態では、送信許可信号ＲＤＡＴＡ＿ＥＮが“１”になるタイミングでＡＤ変換結果用レジスタ２の出力ＲＥＳＵＬＴ＿ＬＡＴＣＨを絶対に変化させないようにすることにより、ＡＤ変換結果が不定値になることを防ぐことができ、ＡＤＣ１のクロックＣＬＫ＿ＲＥＧの周波数を上げることなくＡＤ変換結果を保護することが可能となる。
なお、本実施の形態では、上位複数ビット、具体的には上位３ビットでステップＳ２の判定を行なっているが、これに限るものではなく、最上位ビットのみでステップＳ２の判定を行なう場合も有り得る。
【００３９】
［第２の実施の形態］
次に、本発明の第２の実施の形態について説明する。本実施の形態は、第１の実施の形態においてＡＤ変換結果用レジスタ２に加えてＡＤ変換結果用レジスタ３を使用するものである。本実施の形態においても、ＡＤ変換結果読出回路の構成は第１の実施の形態と同様であるので、図１の符号を用いて説明する。図８は本実施の形態のＡＤ変換結果読出回路の各部の動作を説明するタイミングチャートである。
【００４０】
ＲＥＡＤ検出回路４とクロック載せ換え回路５とデータ送信回路６の動作は第１の実施の形態で説明したとおりである。
第１の実施の形態で説明したとおり、ＡＤ変換結果用レジスタ２は、ＡＤＣ１から出力されるデータ準備完了信号ＤＲＤＹが“１”（無効）から“０”（有効）に立ち下がり、かつ内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“０”（無効）であれば、ＡＤＣ１のＡＤ変換結果ＲＥＳＵＬＴを取り込む（ＡＤ変換結果用レジスタ２の出力ＲＥＳＵＬＴ＿ＬＡＴＣＨが更新される）。
【００４１】
しかし、本実施の形態の例では、データ準備完了信号ＤＲＤＹが“１”から“０”に立ち下がったときに、既に内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“１”（有効）になっているため、ＡＤ変換結果用レジスタ２は、ＡＤＣ１のＡＤ変換結果ＲＥＳＵＬＴを取り込むことはできない（ＡＤ変換結果用レジスタ２の出力ＲＥＳＵＬＴ＿ＬＡＴＣＨの更新は不可）。つまり、第１、第２の実施の形態において内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“１”（有効）になっている区間は内部レジスタ値変更禁止区間である。
【００４２】
そこで、本実施の形態では、ＡＤ変換結果用レジスタ３を使用する。つまり、ＡＤ変換結果用レジスタ３は、ＡＤＣ１から出力されるデータ準備完了信号ＤＲＤＹが“１”（無効）から“０”（有効）に立ち下がり、かつ内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“１”（有効）であれば、ＡＤＣ１のＡＤ変換結果ＲＥＳＵＬＴを取り込む。こうして、ＡＤ変換結果用レジスタ３の出力ＲＥＳＵＬＴ＿ＢＵＦが更新される。図８の例では、ＲＥＳＵＬＴ＿ＢＵＦが、新たに取り込んだ変換結果を示す“ＮＥＷ”へと更新されることが分かる。
【００４３】
内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“１”（有効）から“０”（無効）になると、ＡＤ変換結果用レジスタ２は、ＡＤ変換結果用レジスタ３の出力ＲＥＳＵＬＴ＿ＢＵＦを取り込む（時刻ｔ７）。こうして、ＡＤ変換結果用レジスタ２の出力ＲＥＳＵＬＴ＿ＬＡＴＣＨが更新される。図８の例では、ＲＥＳＵＬＴ＿ＬＡＴＣＨが、古い変換結果を示す“ＯＬＤ”から、新たに取り込んだ変換結果を示す“ＮＥＷ”へと更新されることが分かる。
その他の構成は第１の実施の形態で説明したとおりである。
【００４４】
第１の実施の形態では、ＡＤＣ１から出力されるデータ準備完了信号ＤＲＤＹが“１”から“０”に立ち下がったときに、既に内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“１”になっている状況では、ＡＤ変換結果用レジスタ２がＡＤＣ１のＡＤ変換結果を取り込むことができないので、ＡＤ変換結果の取りこぼしが発生する可能性がある。これに対して、本実施の形態では、ＡＤ変換結果用レジスタ２がＡＤ変換結果を取り込むことができない状況では、ＡＤ変換結果用レジスタ３がＡＤ変換結果を取り込むようになっているので、ＡＤ変換結果の取りこぼしの発生を回避することができる。
【００４５】
［第３の実施の形態］
次に、本発明の第３の実施の形態について説明する。図９は本発明の第３の実施の形態に係るＡＤ変換結果読出回路の構成を示すブロック図であり、図１と同一の構成には同一の符号を付してある。本実施の形態のＡＤ変換結果読出回路は、ＡＤ変換結果用レジスタ２，３と、ＲＥＡＤ検出回路４ａと、クロック載せ換え回路５と、データ送信回路６ａと、識別データ用レジスタ８，９とから構成される。
【００４６】
本実施の形態のＡＤＣ１は、ＡＤ変換結果ＲＥＳＵＬＴに加えて、そのＡＤ変換結果ＲＥＳＵＬＴに対応付けられた識別データＤＩＤを出力する。
本実施の形態のＲＥＡＤ検出回路４ａは、ＡＤ変換結果を２４ビット分送信し終えた後、例えば８ビットの識別データＤＩＤの送信のために送信許可信号ＲＤＡＴＡ＿ＥＮを１パルス発行する（図２ステップＳ７）。データ送信回路６ａは、送信許可信号ＲＤＡＴＡ＿ＥＮに応じて、識別データ用レジスタ８から識別データＤＩＤを読み出してＳＰＩマスター７へシリアル送信する（図２ステップＳ８）。
【００４７】
こうして、本実施の形態では、２４ビットのＡＤ変換結果に加えて８ビットの識別データＤＩＤ、すなわち計３２ビットのデータの送信が完了するまで図２のステップＳ７，Ｓ８の処理を繰り返し実行することになる。図３、図８の例で言えば、Ｄ０〜Ｄ２３の２４ビットのデータを送信し終えた後に例えば８ビットの識別データＤＩＤを送信することになる。ＲＥＡＤ検出回路４ａのその他の動作は、第１、第２の実施の形態のＲＥＡＤ検出回路４と同じである。
【００４８】
次に、識別データ用レジスタ８，９の動作について説明する。識別データ用レジスタ８は、ＡＤＣ１から出力されるデータ準備完了信号ＤＲＤＹが“１”（無効）から“０”（有効）に立ち下がり、かつ内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“０”（無効）であれば、ＡＤＣ１から出力された識別データＤＩＤを取り込む。こうして、識別データ用レジスタ８の出力ＤＩＤ＿ＬＡＴＣＨが更新される。
【００４９】
ただし、ＡＤ変換結果用レジスタ２と同様に、識別データ用レジスタ８は、ＡＤＣ１から出力されるデータ準備完了信号ＤＲＤＹが“１”から“０”に立ち下がったときに、既に内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“１”（有効）になっている場合には、識別データＤＩＤを取り込むことはできない。
【００５０】
一方、識別データ用レジスタ９は、ＡＤＣ１から出力されるデータ準備完了信号ＤＲＤＹが“１”から“０”に立ち下がり、かつ内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“１”であれば、ＡＤＣ１からの識別データＤＩＤを取り込む。こうして、識別データ用レジスタ９の出力ＤＩＤ＿ＢＵＦが更新される。
また、識別データ用レジスタ８は、内部レジスタ値変更禁止信号ＲＥＡＤ＿ＡＣＴ＿ＳＹＮＣが“１”から“０”になったときに、識別データ用レジスタ９の出力ＤＩＤ＿ＢＵＦを取り込む。
【００５１】
このように、識別データ用レジスタ８は識別データＤＩＤについてＡＤ変換結果用レジスタ２と同様の動作を行い、識別データ用レジスタ９はＡＤ変換結果用レジスタ３と同様の動作を行う。
【００５２】
次に、識別データＤＩＤについて詳細に説明する。識別データＤＩＤの生成手法としては、例えば以下の４つを例示することができる。
【００５３】
第１の例は、ＡＤ変換処理の実行回数に基づくデータを識別データＤＩＤとする手法である。具体的には、ＡＤＣ１内でＡＤ変換処理の実行回数をカウントし、そのカウント値を識別データＤＩＤとすればよい。このように、ＡＤ変換処理の実行回数を識別データＤＩＤとして記録することにより、あるタイミングで実行されたＡＤ変換処理によるＡＤ変換結果とその前後のタイミングで実行されたＡＤ変換処理によるＡＤ変換結果とを識別することが可能となる。
【００５４】
第２の例は、ＡＤ変換処理の実行時刻に基づくデータを識別データＤＩＤとする手法である。具体的には、ＡＤＣ１は、ＡＤ変換処理の実行時刻（タイムスタンプ）を識別データＤＩＤとすればよい。
【００５５】
ＡＤ変換処理の実行時刻を用いる具体的な手法として、例えば以下の２つを例示することができる。一つは、ＡＤＣ１の内部または外部にリアルタイムクロックを設ける手法である。もう一つは、リアルタイムクロックの代わりに、例えば電源投入時を時刻０として一定周期毎にインクリメントするカウンタをＡＤＣ１の内部または外部に設ける手法である。
【００５６】
上記の２つの手法のいずれによっても、あるタイミングで実行されたＡＤ変換処理によるＡＤ変換結果とその前後のタイミングで実行されたＡＤ変換処理によるＡＤ変換結果とを識別することが可能となる。更に、上述したリアルタイムクロックを用いる手法によれば、ＡＤ変換処理が実行された正確な時刻が記録できる。一方、上述したリアルタイムクロックを用いない手法によれば、回路規模の増大を抑えることができる。
【００５７】
第３の例は、ＡＤ変換処理が実行される毎に論理レベルが反転する１ビットのデータを識別データＤＩＤとする手法である。この手法によれば、あるタイミングで実行されたＡＤ変換処理によるＡＤ変換結果とその前後のタイミングで実行されたＡＤ変換処理によるＡＤ変換結果とを識別することが可能となる。また、識別データＤＩＤを１ビットとするため、必要なハードウェアリソースを少なくすることができ、回路規模の増大を抑えることができる。
【００５８】
第４の例は、フリーランカウンタのカウント値に基づくデータを識別データＤＩＤとする手法である。例えば、８ビットのフリーランカウンタによって、ＡＤ変換処理の実行処理とは無関係に連続して入力されるパルスをカウントし、そのカウント値を識別データＤＩＤとしても良い。これによれば、ビット幅の大きなカウンタは必要ないので、回路規模の増大を抑えることができる。なお、識別データＤＩＤとして記憶するデータは、フリーランカウンタのカウント値（数値）そのものでなくてもよく、例えばＡ〜Ｚ等のような順番のわかるアルファベット（キャラクターコード）であってもよい。
【００５９】
以上、本実施の形態によれば、ＡＤ変換結果毎に識別データを付与し、ＡＤ変換結果と識別データとをセットで出力するので、ＡＤ変換結果を受信したＳＰＩマスター７側で、取得したＡＤ変換結果の連続性が保たれているか否かを判断することが可能となる。
【００６０】
例えば、取得したＡＤ変換結果に対応する識別データとその直前に取得したＡＤ変換結果に対応する識別データとを比較することによって、同じＡＤ変換周期のＡＤ変換結果の重複取得やＡＤ変換結果の取りこぼしの有無、すなわち、取得したＡＤ変換結果の連続性が保たれているか否かを、ＳＰＩマスター７側で判断することが可能となる。
【００６１】
なお、本実施の形態では、ＡＤ変換結果用レジスタ２，３を両方用いる場合について説明しているが、第１の実施の形態で説明したとおりＡＤ変換結果用レジスタ２のみを用いるようにしてもよい。上記で説明したとおり、第１の実施の形態ではＡＤ変換結果の取りこぼしが発生する可能性があるが、本実施の形態によれば、このような取りこぼしの有無をＳＰＩマスター７側で判断することが可能となる。
【産業上の利用可能性】
【００６２】
本発明は、ＡＤ変換器の変換周期を考慮せずにＡＤ変換結果を読み出す技術に適用することができる。
【符号の説明】
【００６３】
１…ＡＤ変換器、２，３…ＡＤ変換結果用レジスタ、４，４ａ…ＲＥＡＤ検出回路、５…クロック載せ換え回路、６，６ａ…データ送信回路、７…ＳＰＩマスター、８，９…識別データ用レジスタ、５０，５１…フリップフロップ。
【図１】
0006499602.tif 000002
【図２】
0006499602.tif 000003
【図３】
0006499602.tif 000004
【図４】
0006499602.tif 000005
【図５】
0006499602.tif 000006
【図６】
0006499602.tif 000007
【図７】
0006499602.tif 000008
【図８】
0006499602.tif 000009
【図９】
0006499602.tif 000010