(57)【要約】【課題】電子装置のオフセットを安価に高精度でキャンセルする。【解決手段】コンパレータ６００の非反転端子に接続されているコモンモードフィードバック回路７０２の出力信号と反転端子に接続されているＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（負）Ａ−とを比較し、Ａ−のオフセットキャンセルを行う。また、コンパレータ６００の非反転端子に接続されているコモンモードフィードバック回路７０２の出力信号と反転端子に接続されているＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋とを比較し、Ａ＋のオフセットキャンセルを行う。この一連の動作の後、ラッチ４０４とラッチ４０５夫々の値を加算器４０６で加算し、その結果を１／２回路４０６で１／２にした後、その結果を加算器３００に入力することでオフセット補償を行う。【選択図】  図１
2005150789.tif 000002
【特許請求の範囲】
【請求項１】
反転信号と非反転信号を出力する対出力ポートを有する電子装置の前記反転信号及び前記非反転信号のオフセットを補償するオフセット補償装置であって、
前記電子装置に入力した所定の信号に対応して前記電子装置から出力される反転信号と、前記反転信号及び前記非反転信号により生成される基準信号との差分を示す第１のエラー信号に応じて前記所定の信号に加算する値を演算する第１の演算手段と、
前記第１の演算手段の演算により前記第１のエラー信号をキャンセルする収束値を記憶する第１の記憶手段と、
前記電子装置に入力した所定の信号に対応して前記電子装置から出力される非反転信号と、前記非反転信号及び前記反転信号により生成される基準信号との差分を示す第２のエラー信号に応じて前記所定の信号に加算する値を演算する第２の演算手段と、
前記第２の演算手段の演算により前記第２のエラー信号をキャンセルする収束値を記憶する第２の記憶手段と、
前記第１及び第２の記憶手段に記憶されたそれぞれの収束値に基づいて前記電子装置のオフセット補償値を算出するオフセット補償値算出手段と、
を備えるオフセット補償装置。
【請求項２】
前記第１の演算手段及び前記第２の演算手段の演算値を平均化処理して前記所定の信号に加算する手段を備える請求項１に記載のオフセット補償装置。
【請求項３】
前記基準信号は、前記反転信号と前記非反転信号との中心電圧である請求項１に記載のオフセット補償装置。
【請求項４】
前記電子装置は、Ｄ／Ａ変換回路とアナログフィルタである請求項１から３のいずれか一項に記載のオフセット補償装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばデジタル無線電話などに用いられる電子装置のＤＣ（直流）オフセット電圧の補償を行うオフセット補償装置に関する。
【背景技術】
【０００２】
従来、デジタル通信方式の無線通信装置（例えば携帯電話）においては、送信されるべき信号の変調が変調器のデジタル部分で行われ、その後、変調されたデジタル信号がＤ／Ａ変換器によってアナログ信号に変換される。Ｄ／Ａ変換器から出力されたアナログ信号は、無線通信装置の無線周波数部に結合されて無線信号として発信される。デジタル信号をアナログ信号に変換するＤ／Ａ変換器については、次のような問題がある（一般的にＤ／Ａ変換器の後段にはアナログフィルタが設けられているため、以下、Ｄ／Ａ変換器はアナログフィルタを含むものとする）。
【０００３】
すなわち、Ｄ／Ａ変換器の出力に低レベルのゆっくりと変化するＤＣオフセットが生じることである。通常、これは回路部品の特性が理想通りに得られないためであって、変換されるべきデジタル信号には関係ない。しかしながら、このＤＣオフセットが生じると、無線通信装置の発信信号における搬送波の漏洩という好ましくない結果をＤ／Ａ変換器に生じ、これが信号の送信を妨害する。したがって、Ｄ／Ａ変換器のＤＣオフセットを補償することが望ましい。
【０００４】
Ｄ／Ａ変換器のＤＣオフセットをキャンセルするためには、まず、オフセット量を測定する必要があり、この測定にコンパレータ（電圧比較回路）が用いられる。このコンパレータによる比較結果に基づいてオフセットを補償するための制御信号を得て、Ｄ／Ａ変換器のＤＣオフセットをキャンセルする構成が公知である（例えば、特許文献１参照）。
【０００５】
上述したように、Ｄ／Ａ変換器のＤＣオフセットをキャンセルするためには、オフセット量をコンパレータで測定する必要がある。そして、正しくオフセット量を測定するためには、当然のことながらコンパレータ自体のオフセットが所定の範囲内に収まっている必要がある。コンパレータ（電圧比較回路）は差動増幅器を主体として構成され、差動増幅回路（差動回路）は左右の電流能力がバランスするように設計されるが、実際に差動増幅回路を構成するトランジスタのサイズのばらつき等に起因して、オフセット（差動対をなす各トランジスタの特性のばらつき）が生じるのが通常である。
【０００６】
【特許文献１】特開平７−２０２６９３号公報（第４頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のような差動対をなす各トランジスタの特性のばらつきで生じるコンパレータのオフセット量が比較的に大きくばらつき、そのオフセット量は、時には許容範囲を大きく逸脱する場合もある。このような許容範囲を超えるオフセットを持つコンパレータを用いて、Ｄ／Ａ変換器のＤＣオフセットを調整する場合、つまり精度の低いコンパレータを用いて負帰還制御によるＤ／Ａ変換器のオフセット調整を行う場合、本来ならオフセットが数ｍＶに収まるはずのものが、依然として２０ｍＶ以上のオフセットが残ってしまう場合があることを確認した。
【０００８】
このような問題を解決するためには、Ｄ／Ａ変換器のＤＣオフセットのキャンセルに使用されるコンパレータのオフセット（左右の電流能力のオフセット）をキャンセルする必要がある。しかしながら、現実にはコンパレータのオフセット調整のためだけに専用回路を設けることは半導体装置（ＩＣ：集積回路）の占有面積の増大防止の観点、あるいは低消費電力の要請などからみて困難である。上記に述べたようなＤＣオフセットの補償方法は、オフセット量を測定するコンパレータの精度が非常に重要となるため、別の手段が必要となる。
【０００９】
本発明は上記事情に鑑みてなされたもので、電子装置のオフセットを安価に高精度でキャンセルすることができるオフセット補償装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明のオフセット補償装置は、反転信号と非反転信号を出力する対出力ポートを有する電子装置の前記反転信号及び前記非反転信号のオフセットを補償するオフセット補償装置であって、前記電子装置に入力した所定の信号に対応して前記電子装置から出力される反転信号と、前記反転信号及び前記非反転信号により生成される基準信号との差分を示す第１のエラー信号を導き出す第１の比較手段と、前記第１のエラー信号に応じて前記所定の信号に加算する値を演算する第１の演算手段と、前記第１の演算手段の演算により前記第１のエラー信号をキャンセルする収束値を記憶する第１の記憶手段と、前記電子装置に入力した所定の信号に対応して前記電子装置から出力される非反転信号と、前記非反転信号及び前記反転信号により生成される基準信号との差分を示す第２のエラー信号を導き出す第２の比較手段と、前記第２のエラー信号に応じて前記所定の信号に加算する値を演算する第２の演算手段と、前記第２の演算手段の演算により前記第２のエラー信号をキャンセルする収束値を記憶する第２の記憶手段と、前記第１及び第２の記憶手段に記憶されたそれぞれの収束値に基づいて前記電子装置のオフセット補償値を算出するオフセット補償値算出手段とを備える。
【００１１】
上記構成によれば、電子装置に入力した所定の信号に対応して電子装置から出力される反転信号と、この反転信号と非反転信号とにより生成される基準信号との差分を示す第１のエラー信号を導き出し、この第１のエラー信号に応じた値を所定の信号に加えて電子装置に入力する。この動作を繰り返すことで第１のエラー信号の収束値を求める。また、所定の信号に対応した電子装置からの非反転信号と、この非反転信号と反転信号とにより生成される基準信号との差分である第２のエラー信号を導き出し、この第２のエラー信号に応じた値を所定の信号に加えて電子装置に入力する。この動作を繰り返すことで第２のエラー信号の収束値を求める。そして、第１のエラー信号の収束値と第２のエラー信号の収束値に対して所定の演算を施して、第１、第２のエラー信号を導く時に発生した第１、第２の比較手段のオフセットをキャンセルする。
【００１２】
したがって、第１、第２の比較手段が有する比較動作時のオフセットの影響を受けない精度の高い電子装置のオフセット補償値を得ることができる。また、第１、第２の比較手段として通常の安価な比較回路を用いることができるので、オフセットキャンセルのための付加回路のコストアップを最小限に抑えることが可能となるい。
【００１３】
さらに、本発明のオフセット補償装置は、前記第１の演算手段及び前記第２の演算手段の演算値を平均化処理して前記所定の信号に加算する手段を備える。また、本発明のオフセット補償装置において、前記基準信号は、前記反転信号と前記非反転信号との中心電圧であることが好ましい。
【発明の効果】
【００１４】
本発明によれば、電子装置の反転出力信号と非反転出力信号に含まれるオフセットをキャンセルするためのオフセット補償値を、第１、第２の比較手段自体に生ずるオフセットを含めて求めるようにしたので、通常の安価な比較手段を用いても電子装置のオフセットを高精度でキャンセルすることが可能となる。
【００１５】
また、第１、第２のエラー信号に応じた値を平均化処理することで、簡単な回路で電子装置がもつ測定時のノイズ及び誤判定を排除することができる。また、反転信号と非反転信号との中心電圧を基準信号とすることで、簡単な回路で電子装置がもつ測定時の収束時間を短縮することができる。
【発明を実施するための最良の形態】
【００１６】
図１は本発明の第１の実施の形態に係るオフセット補償装置の構成を示す回路図である。図１において、Ｄ／Ａ変換回路５００及びアナログフィルタ７００を含む電子装置のオフセットを補償するための補正値を生成するオフセット補償値生成回路４００は、コンパレータ６００の出力を反転させるインバータ４０１、加減算器４０２、ラッチ４０４、ラッチ４０５、加算器４０３、１／２回路４０６、加算器３００への入力を加減算器４０２の出力と１／２回路４０６の出力のいずれかに切り替えるスイッチＳＷ５、加減算器４０２の出力をラッチ４０４、４０５のいずれかに切り替えるスイッチＳＷ６、加減算器４０２への入力をコンパレータ６００の出力とその反転出力のいずれかに切り替えるスイッチＳＷ７を有している。
【００１７】
コンパレータ６００の反転端子には、スイッチＳＷ４を介してＤ／Ａ変換回路５００及びアナログフィルタ７００からの差動出力Ａ＋又は差動出力Ａ−が入力され、非反転端子には差動出力Ａ＋と差動出力Ａ−とから生成される基準信号が入力される。アナログフィルタ７００は、全差動オペアンプ７０１、コモンモードフィードバック（ＣＭＦＢ）回路７０２を有している。
【００１８】
Ｄ／Ａ変換器５００とアナログフィルタ７００のオフセットをキャンセルするに先立ち、コンパレータ６００の入力段に設けられているスイッチＳＷ４をａ端子側に切り替え、またスイッチＳＷ４と連動するスイッチＳＷ６、ＳＷ７もａ端子側に切り替える。一方、スイッチＳＷ５についてはｂ端子側に切り替える。このとき、コンパレータ６００は、差動出力Ａ＋と差動出力Ａ−とから生成される基準信号と、反転端子に接続されているＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（負）Ａ−とを比較して差分（第１のエラー信号）を得、差動出力（負）Ａ−のオフセットをキャンセルする。そして、その結果がラッチ４０４で保持される。
【００１９】
次に、スイッチＳＷ４、ＳＷ６及びＳＷ７をｂ端子側に切り替える。このとき、コンパレータ６００は、基準信号と、反転端子に接続されているＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋とを比較して差分（第２のエラー信号）を得、差動出力（正）Ａ＋のオフセットをキャンセルする。そして、その結果がラッチ４０５で保持される。
【００２０】
この一連の動作の後、スイッチＳＷ５をａ端子側へ切り替えるとともに、ラッチ４０４とラッチ４０５それぞれの値を加算器４０３で加算し、さらに加算値を１／２回路４０６で１／２の値にし、その結果を加算器３００に入力する。つまり、Ｄ／Ａ変換器５００とアナログフィルタ７００の入出力にオフセットがある場合には、そのオフセットを打ち消すような補正値が補正値生成回路４００から出力され、加算器３００に与えられる。
【００２１】
次に、オフセット補償動作の概要を説明する。最初に、加算器３００に、例えば「１．７Ｖ」の直流信号（所定の信号）に相当するデータを入力する。このとき、「１．７Ｖ」のデータ入力と同期して加減算器４０２がアップカウント又はダウンカウントする。すなわち、コンパレータ６００の出力がハイレベルの間はアップカウントし、ローレベルの間はダウンカウントする。オフセットキャンセル動作が十分収束する間、加減算器４０２から出力される演算値をそのまま加算器３００に与えるように、スイッチＳＷ５はｂ端子側に切り替えた状態を維持する。
【００２２】
当初、加算器３００に与えられる補正値は「０」であるため、「１．７Ｖ」の直流信号がそのままＤ／Ａ変換器５００に与えられる。Ｄ／Ａ変換器５００とアナログフィルタ７００の変換出力はコンパレータ６００の反転端子に与えられる。コンパレータ６００の非反転端子にはコモンモードフィードバック回路７０２の出力信号（ここでは例えば「１．２５Ｖ」（基準値）とする）が与えられる。
【００２３】
ここで、差動出力（負）Ａ−を「１．８Ｖ」と仮定した場合、コモンモードフィードバック回路７０２の出力信号（「１．２５Ｖ」、基準値）より高くなるので、コンパレータ６００の出力がローレベルとなる。このとき、スイッチＳＷ７はａ端子側に切り替えられているので、コンパレータ６００の出力はインバータ４０１で反転されてハイレベルとなり、加減算器４０２に入力される。これにより、加減算器４０２はアップカウントを開始する。ここで、Ｄ／Ａ変換器５００を、電流加算型Ｄ／Ａ変換器等のような差動出力（正）Ａ＋と差動出力（負）Ａ−が必ず反転の関係にあるＤ／Ａ変換器と想定すると、差動出力（負）Ａ−は、値が加算された分、オフセットが減少する。すなわち、「１．８Ｖ」が減少して行く。
【００２４】
ここで、加減算器４０２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力を「０．０２Ｖ」とした場合、加減算器４０２が「２８」アップカウントした時点で、差動出力（負）Ａ−が「１．８Ｖ」から「２８×０．０２Ｖ＝０．５６Ｖ」を加算した「１．２４Ｖ」となる。すなわち、「１．８Ｖ」に含まれている負のオフセット分が減少して「１．２４Ｖ」となる。これにより、コモンモードフィードバック回路７０２の基準値「１．２５Ｖ」未満となり、コンパレータ６００の出力がローレベルからハイレベルに変る。このときインバータ４０１が介在することから、加減算器４０２の入力がローレベルとなってダウンカウントを開始する。
【００２５】
そして、加減算器４０２がダウンカウントを開始し、その１回目で値が「２７」になると、差動出力（負）Ａ−の「１．２４Ｖ」に「１×０．０２Ｖ＝０．０２Ｖ」を加算した「１．２６Ｖ」となる。これにより、コンパレータ６００の出力がハイレベルからローレベルに変る。このときインバータ４０１が介在することから、加減算器４０２の入力がハイレベルとなってアップカウントを開始する。このようにして、加減算器４０２の値が「２８」と「２７」（即ち収束値）を交互に繰り返し、差動出力（負）Ａ−が交互に「１．２４Ｖ」と「１．２６Ｖ」となる。そして、ある一定時間経った時点で一連の動作が終了する。この動作が終了した時点でそのカウント値である収束値「２８」又は「２７」がラッチ４０４で保持される。
【００２６】
次に、スイッチＳＷ４、ＳＷ６及びＳＷ７をｂ端子側に切り替える。そして、上記と同一の動作を行う。ここで、差動出力（正）Ａ＋を「１．７Ｖ」と仮定した場合、コモンモードフィードバック回路７０２の出力信号（「１．２５Ｖ」、基準値）より高くなるので、コンパレータ６００の出力がローレベルとなる。このときスイッチＳＷ７はｂ端子側に切り替えられているので、コンパレータ６００の出力がそのまま加減算器４０２に入力される。これにより、加減算器４０２はダウンカウントを開始する。
【００２７】
Ｄ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋は、値が加算された分、オフセットが減少する。すなわち、「１．７Ｖ」が減少して行く。ここで、加減算器４０２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力を「０．０２Ｖ」とした場合、加減算器４０２が「−２３」カウントすると、その時点で、差動出力（正）Ａ＋が「１．７Ｖ」から「−２３×０．０２＝０．４６」が加算されて「１．２４Ｖ」となる。これにより、コモンモードフィードバック回路７０２の基準値「１．２５Ｖ」未満となり、コンパレータ６００の出力がローレベルからハイレベルに変る。このとき、インバータ４０１は介在しないので、加減算器４０２の入力がハイレベルとなってアップカウントを開始する。
【００２８】
そして、加減算器４０２がアップカウントを開始し、その１回目で値が「−２２」になると、差動出力（正）Ａ＋の「１．２４Ｖ」に「１×０．０２Ｖ」が加算されて「１．２６Ｖ」となる。これにより、コンパレータ６００の出力がハイレベルからローレベルに変る。このとき、インバータ４０１は介在しないので、加減算器４０２の入力がローレベルとなってダウンカウントを開始する。このようにして、加減算器４０２の値が「−２３」と「−２２」（即ち収束値）で繰り返し、差動出力（正）Ａ＋が交互に「１．２４Ｖ」と「１．２６Ｖ」となる。そして、ある一定時間経った時点で一連の動作が終了する。この動作が終了した時点でそのカウント値である収束値「−２３」又は「−２２」がラッチ４０５で保持される。
【００２９】
このようにして、差動出力（負）Ａ−における収束値（「２８」又は「２７」）と、差動出力（正）Ａ＋における収束値（「−２３」又は「−２２」）が決まると、続いてオフセット補償値が生成される。
【００３０】
オフセット補償値の生成では、スイッチＳＷ５をａ端子側に切り替えるとともに、ラッチ４０４及び４０５にて保持された値（即ち収束値）を加算器４０３で加算し、さらにその加算値を１／２回路４０６で１／２の値にして補正値を求める。そして、この補正値を加算器３００に入力する。例えば、ラッチ４０４の値「２８」とラッチ４０５の値「−２３」を加算器４０３で加算する。その結果は「５」となり、１／２回路４０６で１／２にされると、「２」の補正値が得られる。この補正値「２」は加算器３００で入力信号に加算される。補正値「２」は、「０．０２×２＝０．０４Ｖ」であるので、この値でＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋を補正することで、「１．７Ｖ＋０．０４Ｖ＝１．７４Ｖ」となる。また、差動出力（負）Ａ−は、「１．８Ｖ−０．０４Ｖ＝１．７６Ｖ」となる。これにより、オフセットがキャンセルされたことになる。
【００３１】
ところで、コンパレータ６００として通常の安価なものを使用した場合、このコンパレータ６００もオフセットを持つことになる。以下、コンパレータ６００にオフセット誤差があった場合の動作について説明する。
【００３２】
最初、加算器３００に、例えば「１．７Ｖ」の直流信号（所定の信号）に相当するデータを入力する。このとき、「１．７Ｖ」のデータ入力と同期して加減算器４０２がアップカウント又はダウンカウントする。すなわち、コンパレータ６００の出力がハイレベルの間はアップカウントし、ローレベルの間はダウンカウントする。オフセットキャンセル動作が十分収束する間、加減算器４０２から出力される演算値をそのまま加算器３００に与えるように、スイッチＳＷ５はｂ端子側に切り替えた状態を維持する。
【００３３】
当初、加算器３００に与えられる補正値は「０」であるため、「１．７Ｖ」の直流信号がＤ／Ａ変換器５００にそのまま与えられる。Ｄ／Ａ変換器５００とアナログフィルタ７００の変換出力はコンパレータ６００の反転端子に与えられる。コンパレータ６００の非反転端子には、コモンモードフィードバック回路７０２の出力信号（ここでは例えば「１．２５Ｖ」（基準値）とする）が与えられる。
【００３４】
ここで、コンパレータ６００のオフセットが「−０．１０Ｖ」で、差動出力（負）Ａ−を「１．８Ｖ」と仮定した場合、差動出力（負）Ａ−が「１．８Ｖ」がコモンモードフィードバック回路７０２の出力信号「１．２５−０．１０Ｖ＝１．１５Ｖ」より高くなるので、コンパレータ６００の出力がローレベルとなる。このとき、スイッチＳＷ７はａ端子側に切り替えられているので、コンパレータ６００の出力はインバータ４０１で反転されてハイレベルとなり、加減算器４０２に入力される。これにより、加減算器４０２はアップカウントを開始する。ここで、Ｄ／Ａ変換器５００を、電流加算型Ｄ／Ａ変換器等のような差動出力（正）Ａ＋と差動出力（負）Ａ−が必ず反転の関係にあるＤ／Ａ変換器と想定すると、差動出力（負）Ａ−は、値が加算された分、オフセットが減少する。すなわち、１．８Ｖが減少して行く。
【００３５】
ここで、加減算器４０２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力を「０．０２Ｖ」とした場合、加減算器４０２が「３３」アップカウントした時点で、差動出力（負）Ａ−は「１．８Ｖ」に「３３×０．０２Ｖ＝０．６６Ｖ」を加算した「１．１４Ｖ」となる。すなわち、「１．８Ｖ」に含まれている負のオフセット分が減少して「１．１４Ｖ」となる。これにより、コモンモードフィードバック回路７０２の基準値「１．１５Ｖ」以下となり、コンパレータ６００の出力がローレベルからハイレベルに変る。このとき、インバータ４０１が介在することから、加減算器４０２の入力がローレベルとなってダウンカウントを開始する。
【００３６】
そして、加減算器４０２がダウンカウントを開始し、その１回目で値が「３２」になると、差動出力（負）Ａ−の「１．１４Ｖ」に「１×０．０２Ｖ＝０．０２Ｖ」を加算した「１．１６Ｖ」となる。これにより、コンパレータ６００の出力がハイレベルからローレベルに変る。このときインバータ４０１が介在することから、加減算器４０２の入力がハイレベルとなってアップカウントを開始する。このようにして、加減算器４０２の値が「３３」と「３２」（即ち収束値）を交互に繰り返し、差動出力（負）Ａ−が交互に「１．１４Ｖ」と「１．１６Ｖ」となる。そして、ある一定時間経った時点で一連の動作を終了する。この動作が終了した時点でそのカウント値である収束値「３３」又は「３２」がラッチ４０４で保持される。
【００３７】
次に、スイッチＳＷ４、ＳＷ６及びＳＷ７をｂ端子側に切り替える。そして、上記と同一の動作を行う。ここで、差動出力（正）Ａ＋を「１．７Ｖ」と仮定した場合、コモンモードフィードバック回路７０２の出力信号（「１．２５Ｖ」、基準値）からコンパレータ６００のオフセット分「０．１０Ｖ」を引いた電圧「１．１５Ｖ」よりも高くなり（すなわち、１．７Ｖ＞１．１５Ｖ）、コンパレータ６００の出力がローレベルとなる。このときスイッチＳＷ７はｂ端子側に切り替えられているので、コンパレータ６００の出力はそのまま加減算器４０２に入力される。これにより、加減算器４０２はダウンカウントを開始する。
【００３８】
Ｄ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋は、値が加算された分、オフセットが減少する。すなわち、「１．７Ｖ」が減少して行く。ここで、加減算器４０２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力を「０．０２Ｖ」とした場合、加減算器４０２が「−２８」カウントすると、その時点で、差動出力（正）Ａ＋の「１．７Ｖ」に「−２８×０．０２Ｖ＝−０．５６Ｖ」が加算されて「１．１４Ｖ」となる。これにより、コモンモードフィードバック回路７０２の基準値「１．１５Ｖ」以下となり、コンパレータ６００の出力がローレベルからハイレベルに変る。このときインバータ４０１は介在しないので、加減算器４０２の入力がハイレベルとなってアップカウントを開始する。
【００３９】
そして、加減算器４０２がアップカウントを開始し、その１回目で値が「−２７」になると、差動出力（正）Ａ＋の「１．１４Ｖ」に「１×０．０２Ｖ」が加算されて「１．１６Ｖ」となる。これにより、コンパレータ６００の出力がハイレベルからローレベルに変る。このときインバータ４０１は介在しないので、加減算器４０２の入力がローレベルとなってダウンカウントを開始する。このようにして、加減算器４０２の値が「−２８」と「−２７」（即ち収束値）で繰り返し、差動出力（正）Ａ＋が交互に「１．１４Ｖ」と「１．１６Ｖ」となる。そして、ある一定時間経った時点で一連の動作が終了する。この動作が終了した時点でそのカウント値である収束値「−２８」又は「−２７」がラッチ４０５で保持される。
【００４０】
このようにして、差動出力（負）Ａ−における収束値（「３３」又は「３２」）と、差動出力（正）Ａ＋における収束値（「−２８」又は「−２７」）が決まると、続いてオフセット補償値が生成される。
【００４１】
また、オフセット補償値の生成において、スイッチＳＷ５をａ端子側に切り替えるとともに、ラッチ４０４及び４０５それぞれに保持された値（即ち収束値）を加算器４０３で加算し、さらにその加算値を１／２回路４０６で１／２の値にして補正値を求める。そして、この補正値を加算器３００に入力する。例えば、ラッチ４０４の値「３３」とラッチ４０５の値「−２８」を加算器４０３で加算する。その結果は「５」となり、１／２回路４０６で１／２にされると、「２」の補正値が得られる。補正値「２」は加算器３００で入力信号に加算される。補正値「２」は「０．０２×２＝０．０４Ｖ」であるので、この値でＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋を補正することで、「１．７Ｖ＋０．０４Ｖ＝１．７４Ｖ」となる。また、差動出力（負）Ａ−は「１．８Ｖ−０．０４Ｖ＝１．７６Ｖ」となる。これにより、オフセットがキャンセルされたことになる。
【００４２】
本実施の形態によれば、コンパレータ６００のオフセットは、コモンモードフィードバック回路７０２の出力信号が誤差を持つものの、差動出力（正）Ａ＋及び差動出力（負）Ａ−の比較対象として一定であれば絶対値が関係ないことを意味し、したがって上記のような演算を行うことでコンパレータ６００のオフセットも悪影響しなくなり、通常の安価なコンパレータを用いてもＤ／Ａ変換器５００とアナログフィルタ７００のオフセットを高精度でキャンセルすることが可能となる。
【００４３】
図２は、第２の実施の形態に係るオフセット補償装置の構成を示す回路図である。図２において、Ｄ／Ａ変換回路５００及びアナログフィルタ７００を含む電子装置のオフセットを補償するための補正値を生成するオフセット補償値生成回路４１０は、コンパレータ６００の出力を反転させるインバータ４１１、加減算器４１２、平均化処理回路４１７、ラッチ４１４、ラッチ４１５、加算器４１３、１／２回路４１６、加算器３００への入力を加減算器４１２の出力と１／２回路４１６の出力のいずれかに切り替えるスイッチＳＷ５、加減算器４１２の出力をラッチ４１４、４１５のいずれかに切り替えるスイッチＳＷ６、加減算器４１２への入力をコンパレータ６００の出力とその反転出力のいずれかに切り替えるスイッチＳＷ７を有している。
【００４４】
コンパレータ６００の反転端子には、スイッチＳＷ４を介してＤ／Ａ変換回路５００及びアナログフィルタ７００からの差動出力Ａ＋又は差動出力Ａ−が入力され、非反転端子には差動出力Ａ＋と差動出力Ａ−とから生成される基準信号が入力される。アナログフィルタ７００は、全差動オペアンプ７０１、コモンモードフィードバック（ＣＭＦＢ）回路７０２を有している。
【００４５】
Ｄ／Ａ変換器５００とアナログフィルタ７００のオフセットをキャンセルするに先立ち、コンパレータ６００の入力段に設けられているスイッチＳＷ４をａ端子側に切り替え、またスイッチＳＷ４と連動するスイッチＳＷ６、ＳＷ７もａ端子側に切り替える。一方、スイッチＳＷ５についてはｂ端子側に切り替える。このとき、コンパレータ６００にて、基準信号と、反転端子に接続されているＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（負）Ａ−とを比較して差分（第１のエラー信号）を得、差動出力（負）Ａ−のオフセットキャンセルが行われる。そのときの収束値はラッチ４１４に保持される。
【００４６】
差動出力（負）Ａ−のオフセットキャンセルを行った後、スイッチＳＷ４、スイッチＳＷ６及びスイッチＳＷ７をｂ端子側に切り替える。このとき、コンパレータ６００にて、基準信号と、反転端子に接続されているＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋とを比較して差分（第２のエラー信号）を得、差動出力（正）Ａ＋のオフセットキャンセルが行われる。そのときの結果はラッチ４１５に保持される。
【００４７】
この一連の動作の後、スイッチＳＷ５をａ端子側へ切り替えるとともに、ラッチ４１４が保持している差動出力（負）Ａ−での収束値と、ラッチ４１５が保持している差動出力（正）Ａ＋での収束値とを加算器４１３で加算し、さらにその結果を１／２回路４１６で１／２の値にし、その値を加算器３００に入力する。つまり、Ｄ／Ａ変換器５００とアナログフィルタ７００の入出力にオフセットがある場合には、そのオフセットを打ち消すような補正値が補正値生成回路４１０から出力されて加算器３００に与えられる。
【００４８】
次に、オフセット補償動作の概要を説明する。最初に、加算器３００に、例えば「１．７Ｖ」の直流信号（所定の信号）に相当するデータを入力する。このとき、「１．７Ｖ」のデータの入力に同期して加減算器４１２がアップカウント又はダウンカウントする。すなわち、コンパレータ６００の出力がハイレベルの間はアップカウントし、ローレベルの間はダウンカウントする。オフセットキャンセル動作が十分収束する間、スイッチＳＷ５がａ端子側に設定された状態を維持し、加減算器４１２から出力される演算値が平均化処理回路４１７で平均化処理されてその結果が加算器３００に与えられる。
【００４９】
当初、加算器３００に与えられる補正値は「０」であるため、「１．７Ｖ」の直流信号がＤ／Ａ変換器５００にそのまま与えられる。Ｄ／Ａ変換器５００とアナログフィルタ７００の変換出力はコンパレータ６００の反転端子に与えられる。コンパレータ６００の非反転端子には、コモンモードフィードバック回路７０２の出力信号（ここでは「１．２５Ｖ」（基準値）とする）が与えられている。
【００５０】
ここで、差動出力（負）Ａ−を「１．８Ｖ」と仮定した場合、コモンモードフィードバック回路７０２の出力信号（「１．２５Ｖ」、基準値）よりも高くなるので、コンパレータ６００の出力はローレベルとなる。このとき、スイッチＳＷ７はａ端子側に切り替えられているので、コンパレータ６００の出力はインバータ４１１で反転されてハイレベルとなり、加減算器４１２に入力される。これにより、加減算器４１２はアップカウントを開始する。ここで、Ｄ／Ａ変換器５００を、電流加算型Ｄ／Ａ変換器等のような差動出力（正）Ａ＋と差動出力（負）Ａ−が必ず反転の関係にあるＤ／Ａ変換器と想定すると、差動出力（負）Ａ−は、値が加算された分、オフセットが減少する。すなわち、「１．８Ｖ」が減少して行く。
【００５１】
ここで、加減算器４１２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力が「０．０２Ｖ」とした場合、加減算器４１２が「２８」までカウントアップし、平均化処理回路４１７の出力値が「２８」となった時点で、差動出力（負）Ａ−が「１．８Ｖ」から「２８×０．０２Ｖ＝０．５６Ｖ」を加算した「１．２４Ｖ」となる。すなわち、「１．８Ｖ」に含まれている負のオフセット分が減少して「１．２４Ｖ」となる（見かけ上、１．８Ｖから０．５６Ｖを引いた値である）。これにより、コモンモードフィードバック回路７０２の基準値「１．２５Ｖ」未満となり、コンパレータ６００の出力がローレベルからハイレベルに変る。このときインバータ４１１が介在することから、加減算器４１２の入力がローレベルとなってダウンカウントを開始する。
【００５２】
そして、加減算器４１２がダウンカウントを開始し、平均化処理回路４１７の出力値が「２７」になると、差動出力（負）Ａ−の「１．２４Ｖ」に「１×０．０２Ｖ＝０．０２Ｖ」を加算した「１．２６Ｖ」となる。これにより、コンパレータ６００の出力がハイレベルからローレベルに変る。このときインバータ４１１が介在することから、加減算器４１２の入力がハイレベルとなってアップカウントを開始する。このようにして、加減算器４１２の値が「２８」と「２７」（即ち収束値）を交互に繰り返し、差動出力（負）−Ａが交互に「１．２４Ｖ」と「１．２６Ｖ」となる。そして、ある一定時間経った時点で一連の動作が終了する。この動作が終了した時点でそのカウント値である収束値「２８」又は「２７」がラッチ４１４で保持される。
【００５３】
次に、スイッチＳＷ４、ＳＷ６及びＳＷ７をｂ端子側に切り替える。そして、上記と同一の動作を行う。ここで、差動出力（正）Ａ＋を「１．７Ｖ」と仮定した場合、コモンモードフィードバック回路７０２の出力信号（「１．２５Ｖ」、基準値）よりも高くなるので、コンパレータ６００の出力がローレベルとなる。このときスイッチＳＷ７はｂ端子側に切り替えられているので、コンパレータ６００の出力はそのまま加減算器４１２に入力される。これにより、加減算器４１２はダウンカウントを開始する。
【００５４】
Ｄ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋は、値が加算された分、オフセットが減少する。すなわち、「１．７Ｖ」が減少して行く。ここで、加減算器４１２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力が「０．０２Ｖ」とした場合、加減算器４１２が「−２３」までカウントアップし、平均化処理回路４１７の出力値が「−２３」となった時点で、差動出力（正）Ａ＋の「１．７Ｖ」に「−２３×０．０２Ｖ＝０．４６Ｖ」が加算されて「１．２４Ｖ」となる。これにより、コモンモードフィードバック回路７０２の基準値「１．２５Ｖ」未満となり、コンパレータ６００の出力がローレベルからハイレベルに変る。このときインバータ４１１が介在しないので、加減算器４１２の入力がハイレベルとなってアップカウントする。
【００５５】
そして、加減算器４１２がアップカウントを開始し、平均化処理回路４１７の出力値が「−２２」になると、差動出力（正）Ａ＋の「１．２４Ｖ」に「１×０．０２Ｖ」が加算されて「１．２６Ｖ」となる。これにより、コンパレータ６００の出力がハイレベルからローレベルに変る。このときインバータ４１１は介在しないので、加減算器４１２の入力がローレベルとなってダウンカウントを開始する。このようにして、加減算器４１２の値が「−２３」と「−２２」（即ち収束値）で繰り返し、差動出力（正）Ａ＋が交互に「１．２４Ｖ」と「１．２６Ｖ」となる。そして、ある一定時間経った時点で一連の動作が終了する。この動作が終了した時点でそのカウント値である収束値「−２３」又は「−２２」がラッチ４１５で保持される。
【００５６】
このようにして、差動出力（負）Ａ−における収束値（「２８」又は「２７」）と、差動出力（正）Ａ＋における収束値（「−２３」又は「−２２」）が決まると、続いてオフセット補償値が生成される。
【００５７】
オフセット補償値の生成では、スイッチＳＷ５をａ端子側に切り替えるとともに、ラッチ４１４及びラッチ４１５に保持された値（即ち収束値）を加算器４１３で加算し、さらにその加算値を１／２回路４１６で１／２して補正値を求める。そして、この補正値を加算器３００に入力する。例えばラッチ４１４の値「２８」とラッチ４１５の値「−２３」を加算器４１３で加算する。その結果は「５」となり、１／２回路４１６で１／２にされると、「２」の補正値が得られる。この補正値「２」は加算器３００で入力信号に加算される。補正値「２」は「０．０２×２＝０．０４Ｖ」であるので、この値でＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋を補正することで、「１．７Ｖ＋０．０４Ｖ＝１．７４Ｖ」となる。また、差動出力（負）Ａ−は、「１．８Ｖ−０．０４Ｖ＝１．７６Ｖ」となる。これにより、オフセットがキャンセルされたことになる。
【００５８】
ここで、本実施の形態でも通常の安価なコンパレータ６００を用いるため、コンパレータ６００にもオフセット誤差を持つことになる。以下にコンパレータ６００にオフセット誤差があった場合について説明をする。
【００５９】
最初、加算器３００に、例えば「１．７Ｖ」の直流信号（所定の信号）に相当するデータを入力する。このとき、「１．７Ｖ」のデータ入力と同期して加減算器４１２がアップカウント又はダウンカウントする。すなわち、コンパレータ６００の出力がハイレベルの間はアップカウントし、ローレベルの間はダウンカウントする。オフセットキャンセル動作が十分収束する間、加減算器４１２から出力される演算値をそのまま加算器３００に与えるように、スイッチＳＷ５はｂ端子側に切り替えた状態を維持する。
【００６０】
当初、加算器３００に与えられる補正値は「０」であるため、「１．７Ｖ」の直流信号がＤ／Ａ変換器５００にそのまま与えられる。Ｄ／Ａ変換器５００とアナログフィルタ７００の変換出力はコンパレータ６００の反転端子に与えられる。コンパレータ６００の非反転端子には、コモンモードフィードバック回路７０２の出力信号（ここでは例えば「１．２５Ｖ」（基準値）とする）が与えられる。
【００６１】
ここで、コンパレータ６００のオフセットが「−０．１０Ｖ」で、差動出力（負）Ａ−を「１．８Ｖ」と仮定した場合、差動出力（負）Ａ−が「１．８Ｖ」がコモンモードフィードバック回路７０２の出力信号「１．２５−０．１０Ｖ＝１．１５Ｖ」より高くなるので、コンパレータ６００の出力がローレベルとなる。このとき、スイッチＳＷ７はａ端子側に切り替えられているので、コンパレータ６００の出力はインバータ４１１で反転されてハイレベルとなり、加減算器４１２に入力される。これにより、加減算器４１２はアップカウントを開始する。
【００６２】
ここで、Ｄ／Ａ変換器５００を、電流加算型Ｄ／Ａ変換器等のような差動出力（正）Ａ＋と差動出力（負）Ａ−が必ず反転の関係にあるＤ／Ａ変換器と想定すると、差動出力（負）Ａ−は、値が加算された分、オフセットが減少する。すなわち、１．８Ｖが減少して行く。
【００６３】
ここで、加減算器４１２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力を「０．０２Ｖ」とした場合、加減算器４１２が「３３」までカウントアップし、平均化処理回路４１７の出力値が「３３」となった時点で、差動出力（負）Ａ−が「１．８Ｖ」に「３３×０．０２Ｖ＝０．６６Ｖ」を加算した「１．１４Ｖ」となる。すなわち、「１．８Ｖ」に含まれている負のオフセット分が減少して「１．１４Ｖ」となる。これにより、コモンモードフィードバック回路７０２の基準値「１．１５Ｖ」以下となり、コンパレータ６００の出力がローレベルからハイレベルに変る。このときインバータ４１１が介在することから、加減算器４１２の入力がローレベルとなってダウンカウントを開始する。
【００６４】
そして、加減算器４１２がダウンカウントを開始し、平均化処理回路４１７の出力値が「３２」になると、差動出力（負）Ａ−の「１．１４Ｖ」に「１×０．０２Ｖ＝０．０２Ｖ」を加算した「１．１６Ｖ」となる。これにより、コンパレータ６００の出力がハイレベルからローレベルに変る。このときインバータ４１１が介在することから、加減算器４１２の入力がハイレベルとなってアップカウントを開始する。このようにして、加減算器４１２の値が「３３」と「３２」（即ち収束値）を交互に繰り返し、差動出力（負）Ａ−が交互に「１．１４Ｖ」と「１．１６Ｖ」となる。そして、ある一定時間経った時点で一連の動作を終了する。この動作が終了した時点でそのカウント値である収束値「３３」又は「３２」がラッチ４１４で保持される。
【００６５】
次に、スイッチＳＷ４、ＳＷ６及びＳＷ７をｂ端子側に切り替える。そして、上記と同一の動作を行う。ここで、差動出力（正）Ａ＋を「１．７Ｖ」と仮定した場合、コモンモードフィードバック回路７０２の出力信号「１．２５Ｖ」（基準値）からコンパレータ６００のオフセット分「０．１０Ｖ」を引いた電圧「１．１５Ｖ」よりも高くなり（すなわち、１．７Ｖ＞１．１５Ｖ）、コンパレータ６００の出力がローレベルとなる。このとき、スイッチＳＷ７はｂ端子側に切り替えられているので、コンパレータ６００の出力はそのまま加減算器４１２に入力される。これにより、加減算器４１２はダウンカウントを開始する。
【００６６】
Ｄ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋は、値が加算された分、オフセットが減少する。すなわち、「１．７Ｖ」が減少して行く。ここで、加減算器４１２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力を「０．０２Ｖ」とした場合、加減算器４１２が「−２８」までカウントアップし、平均化処理回路４１７の出力値が「−２８」となった時点で、差動出力（正）Ａ＋の「１．７Ｖ」に「−２８×０．０２Ｖ＝−０．５６Ｖ」が加算されて「１．１４Ｖ」となる。これにより、コモンモードフィードバック回路７０２の基準値「１．１５Ｖ」以下となり、コンパレータ６００の出力がローレベルからハイレベルに変る。このときインバータ４１１は介在しないので、加減算器４１２の入力がハイレベルとなってアップカウントを開始する。
【００６７】
そして、加減算器４１２がアップカウントを開始し、平均化処理回路４１７の出力値が「−２７」になると、差動出力（正）Ａ＋の「１．１４Ｖ」に「１×０．０２Ｖ」が加算されて「１．１６Ｖ」となる。これにより、コンパレータ６００の出力がハイレベルからローレベルに変る。このときインバータ４１１は介在しないので、加減算器４１２の入力がローレベルとなってダウンカウントを開始する。このようにして、加減算器４１２の値が「−２８」と「−２７」（即ち収束値）で繰り返し、差動出力（正）Ａ＋が交互に「１．１４Ｖ」と「１．１６Ｖ」となる。そして、ある一定時間経った時点で一連の動作が終了する。この動作が終了した時点でそのカウント値である収束値「−２８」又は「−２７」がラッチ４１５で保持される。
【００６８】
このようにして、差動出力（負）Ａ−における収束値（「３３」又は「３２」）と、差動出力（正）Ａ＋における収束値（「−２８」又は「−２７」）が決まると、続いてオフセット補償値が生成される。
【００６９】
また、オフセット補償値の生成では、スイッチＳＷ５をａ端子側に切り替えるとともに、ラッチ４１４及び４１５に保持された値（即ち収束値）を加算器４１３で加算し、さらにその加算値を１／２回路４１６で１／２の値にして補正値を求める。そして、この補正値を加算器３００に入力する。例えば、ラッチ４１４の値「３３」とラッチ４１５の値「−２８」を加算器４１３で加算する。その結果は「５」となり、１／２回路４１６で１／２にされると、「２」の補正値が得られる。その補正値「２」は加算器３００で入力信号に加算される。補正値「２」は「０．０２×２＝０．０４Ｖ」であるので、この値でＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋を補正することで、「１．７Ｖ＋０．０４Ｖ＝１．７４Ｖ」となる。また、差動出力（負）Ａ−は「１．８Ｖ−０．０４Ｖ＝１．７６Ｖ」となる。これにより、オフセットがキャンセルされたことになる。
【００７０】
本実施の形態によれば、Ｄ／Ａ変換器５００とアナログフィルタ７００の正、負の差動出力に対するコンパレータ６００の出力信号に応じた値を平均化処理するようにしたので、簡単な回路で電子装置がもつ測定時のノイズ及び誤判定を排除することができる。
【００７１】
本発明の第３の実施の形態に係るオフセット補償装置の構成は、図１に示すオフセット補償装置において、反転信号と非反転信号との中心電圧を基準信号としたものである。第１及び第２の実施の形態では、基準電圧は必ずしも差動出力（正）Ａ＋と差動出力（負）Ａ−との中心電圧（差動出力（正）Ａ＋＋差動出力（負）Ａ−）／２ではない。そのため、加減算器４０２、及び加減算器４１２、平均化処理回路４１７はカウントアップ及びカウントダウンして収束値を得るまでに時間がかかってしまう。そこで、本実施の形態では、コモンモードフィードバック回路７０２は差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧をコンパレータ６００の非反転入力端に与えるようにした。これにより、オフセットキャンセル動作の収束時間の短縮化が可能となる。
【００７２】
図１において、Ｄ／Ａ変換器５００とアナログフィルタ７００のオフセットをキャンセルするに先立ち、コンパレータ６００の入力段に設けられているスイッチＳＷ４をａ端子側に切り替え、またスイッチＳＷ４と連動するスイッチＳＷ６、ＳＷ７もａ端子側に切り替える。一方、スイッチＳＷ５についてはｂ端子側に切り替える。
【００７３】
ここで、コンパレータ６００では、非反転端子に接続されているコモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧と、反転端子に接続されているＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（負）Ａ−とが比較されて差動出力（負）Ａ−のオフセットキャンセルが行われる。その結果はラッチ４０４で保持される。
【００７４】
次に、スイッチＳＷ４、ＳＷ６及びＳＷ７をｂ端子側に切り替える。このとき、コンパレータ６００では、非反転端子に接続されているコモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧と、反転端子に接続されているＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）とが比較されて差動出力（正）Ａ＋のオフセットキャンセルが行われる。その結果はラッチ４０５で保持される。
【００７５】
この一連の動作の後、スイッチＳＷ５をａ端子側に切り替えるとともに、ラッチ４０４で保持されている値とラッチ４０５で保持されている値を加算器４０３で加算し、さらに加算結果を１／２回路４０６で１／２の値にした後、その結果を加算器３００に入力する。つまり、Ｄ／Ａ変換器５００とアナログフィルタ７００の入出力にオフセットがある場合には、そのオフセットを打ち消すような補正値が補正値生成回路４００から出力され、その補正値が加算器３００に与えられる。
【００７６】
次に、オフセット補償動作の概要を説明する。最初、加算器３００に、例えば「１．７Ｖ」の直流信号（所定の信号）に相当するデータを入力する。このとき、「１．７Ｖ」のデータ入力と同期して加減算器４０２がアップカウント又はダウンカウントする。すなわち、コンパレータ６００の出力がハイレベルの間はアップカウントし、ローレベルの間はダウンカウントする。スイッチＳＷ５は、オフセットキャンセル動作が十分収束する間、ａ端子側に切り替えられた態を維持する。この間、加減算器４０２から出力される演算値がそのまま加算器３００に与える。
【００７７】
当初、加算器３００に与えられる補正値は「０」であるため、「１．７Ｖ」の直流信号がＤ／Ａ変換器５００にそのまま与えられる。Ｄ／Ａ変換器５００とアナログフィルタ７００の変換出力はコンパレータ６００の反転端子に与えられる。コンパレータ６００の非反転端子には、コモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧が与えられている。
【００７８】
ここで、差動出力（負）Ａ−が「１．８Ｖ」、差動出力（正）Ａ＋が「１．７Ｖ」と仮定し、コモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧を「１．７５Ｖ」（基準値）とする。差動出力（負）Ａ−は「１．８Ｖ」のため、コモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧より高くなるので（すなわち、１．８Ｖ＞１．７５Ｖ）、コンパレータ６００の出力はローレベルとなる。このときスイッチＳＷ７はａ端子側に切り替えられているので、コンパレータ６００の出力はインバータ４０１で反転されてハイレベルとなり、加減算器４０２に入力される。これにより、加減算器４０２はアップカウントを開始する。ここで、Ｄ／Ａ変換器５００を、電流加算型Ｄ／Ａ変換器等のような差動出力（正）Ａ＋と差動出力（負）Ａ−が必ず反転の関係にあるＤ／Ａ変換器と想定すると、差動出力（負）Ａ−は、値が加算された分、オフセットが減少する。すなわち、「１．８Ｖ」が減少して行く。
【００７９】
ここで、加減算器４０２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力が「０．０２Ｖ」とした場合、加減算器４０２が「３」アップカウントした時点で、差動出力（負）Ａ−が「１．８Ｖ」から「３×０．０２Ｖ＝０．０６Ｖ」を加算した「１．７４Ｖ」となる。すなわち、「１．８Ｖ」に含まれる負のオフセット分が減少して「１．７４Ｖ」となる。これにより、コモンモードフィードバック回路７０２の基準値「１．７５Ｖ」未満となり、コンパレータ６００の出力がローレベルからハイレベルに変る。このときインバータ４０１が介在することから、加減算器４０２の入力がローレベルとなってダウンカウントを開始する。
【００８０】
そして、加減算器４０２がダウンカウントを開始し、その１回目で値が「２」になると、差動出力（負）Ａ−の「１．７４Ｖ」に「１×０．０２Ｖ＝０．０２Ｖ」を加算した「１．７６Ｖ」となる。これより、コンパレータ６００の出力がハイレベルからローレベルに変る。このときインバータ４０１が介在することから、加減算器４０２の入力がハイレベルとなってアップカウントを開始する。このようにして、加減算器４０２の値が「３」と「２」（即ち収束値）を交互に繰り返し、差動出力（負）Ａ−が交互に「１．７４Ｖ」と「１．７６Ｖ」となる。そして、ある一定時間経った時点で一連の動作が終了する。この動作が終了した時点でそのカウント値である収束値「３」又は「２」がラッチ４０４で保持される。
【００８１】
次に、スイッチＳＷ４、ＳＷ６及びＳＷ７をｂ端子側に切り替える。そして、上記と同一の動作を行う。差動出力（正）Ａ＋は「１．７Ｖ」のため、コモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧（「１．７５Ｖ」、基準値）より低くなるので（すなわち、１．７Ｖ＜１．７５Ｖ）、コンパレータ６００の出力はハイレベルとなる。このときスイッチＳＷ７はｂ端子側に切り替えられているので、コンパレータ６００の出力はハイレベルとなり、加減算器４０２に入力される。これにより、加減算器４０２がアップカウントを開始する。
【００８２】
Ｄ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋は、値が加算された分、オフセットが増加する。すなわち、「１．７Ｖ」が増加して行く。ここで、加減算器４０２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力が「０．０２Ｖ」とした場合、加減算器４０２が「３」カウントすると、その時点で、差動出力（正）Ａ＋の「１．７Ｖ」に「３×０．０２Ｖ＝０．０６Ｖ」が加算されて「１．７６Ｖ」となる。これにより、コモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧（「１．７５Ｖ」、基準値）以上となり、コンパレータ６００の出力がハイレベルからローレベルに変わり、加減算器４０２がダウンカウントを開始する。
【００８３】
そして、加減算器４０２がダウンカウントを開始し、その１回目で値が「２」になると、差動出力（正）Ａ＋の「１．７６Ｖ」に「１×０．０２Ｖ＝０．０２Ｖ」が減算されて「１．７４Ｖ」になる。これにより、コンパレータ６００の出力がローレベルからハイレベルに変る。このときインバータ４０１が介在しないので、加減算器４０２の入力がハイレベルとなってアップカウントを開始する。このようにして、加減算器４０２の値が「３」と「２」（即ち収束値）で繰り返し、差動出力（正）Ａ＋が交互に「１．７６」と「１．７４」となる。そして、ある一定時間経った時点で一連の動作を終了する。この動作が終了した時点でそのカウント値である収束値「３」又は「２」がラッチ４０４で保持される。
【００８４】
オフセット補償値の生成では、スイッチＳＷ５をａ端子側に切り替えるとともに、ラッチ４０４及びラッチ４０５に保持された値（即ち収束値）を加算器４０３で加算し、さらにその加算値を１／２回路４０６で１／２して補正値を求める。そして、この補正値を加算器３００に入力する。例えばラッチ４０４の値「３」とラッチ４０５の値「２」を加算器４０３で加算する。その結果は「５」となり、１／２回路４０６で１／２にされると、「２」の補正値が得られる。この補正値「２」は加算器３００で入力信号に加算される。補正値「２」は「０．０２×２＝０．０４Ｖ」であるので、この値でＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋を補正することで、「１．７Ｖ＋０．０４Ｖ＝１．７４Ｖ」となる。また、差動出力（負）Ａ−は、「１．８Ｖ−０．０４Ｖ＝１．７６Ｖ」となる。これにより、オフセットがキャンセルされたことになる。
【００８５】
本実施の形態でも通常の安価なコンパレータ６００を用いるため、コンパレータ６００にもオフセット誤差を持つことになる。以下にコンパレータ６００にオフセット誤差があった場合について説明をする。最初、加算器３００に、例えば「１．７Ｖ」の直流信号（所定の信号）に相当するデータを入力する。このとき、「１．７Ｖ」のデータ入力と同期して加減算器４０２がアップカウント又はダウンカウントする。すなわち、コンパレータ６００の出力がハイレベルの間はアップカウントし、ローレベルの間はダウンカウントする。オフセットキャンセル動作が十分収束する間、加減算器４０２から出力される演算値をそのまま加算器３００に与えるように、スイッチＳＷ５はｂ端子側に切り替えた状態を維持する。
【００８６】
当初、加算器３００に与えられる補正値は「０」であるため、「１．７Ｖ」の直流信号がＤ／Ａ変換器５００にそのまま与えられる。Ｄ／Ａ変換器５００とアナログフィルタ７００の変換出力はコンパレータ６００の反転端子に与えられる。コンパレータ６００の非反転端子には、コモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧が与えられる。
【００８７】
ここで、差動出力（負）Ａ−が「１．８Ｖ」、差動出力（正）Ａ＋が「１．７Ｖ」と仮定し、コモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧を「１．７５Ｖ」（基準値）とする。そこで、コンパレータ６００のオフセットが「−０．１０Ｖ」と仮定した場合、差動出力（負）Ａ−は「１．８Ｖ」のため、コモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧（「１．７５Ｖ−０．１０Ｖ＝１．６５Ｖ」（基準値））より高くなるので、コンパレータ６００の出力がハイレベルからローレベルに変る。このときスイッチＳＷ７はａ端子側に切り替えられているので、コンパレータ６００の出力はインバータ４０１で反転されてハイレベルとなり、加減算器４０２に入力される。これにより、加減算器４０２はアップカウントを開始する。
【００８８】
ここで、Ｄ／Ａ変換器５００を、電流加算型Ｄ／Ａ変換器等のような差動出力（正）Ａ＋と差動出力（負）Ａ−が必ず反転の関係にあるＤ／Ａ変換器と想定すると、差動出力（負）Ａ−は、値が加算された分、オフセットが減少する。すなわち、１．８Ｖが減少して行く。
【００８９】
ここで、加減算器４０２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力を「０．０２Ｖ」とした場合、加減算器４０２が「８」カウントした時点で、差動出力（負）Ａ−が「１．８Ｖ」に「８×０．０２Ｖ＝０．１６Ｖ」を加算した「１．６４Ｖ」となる。すなわち、「１．８Ｖ」に含まれている負のオフセット分が減少して「１．６４Ｖ」となる。これにより、コモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧「１．７５Ｖ」から「０．１０Ｖ」を減算した「１．６５Ｖ」（基準値）未満となり、コンパレータ６００の出力がローレベルからハイレベルに変る。このときインバータ４１１が介在することから、加減算器４１２の入力がローレベルとなってダウンカウントを開始する。
【００９０】
そして、ダウンカウントを開始し、その１回目で加減算器４０２のカウント値が「７」になると、差動出力（負）Ａ−の「１．６４Ｖ」に「１×０．０２Ｖ＝０．０２Ｖ」を加算した「１．６６Ｖ」となる。これにより、コンパレータ６００の出力がハイレベルからローレベルに変る。このときインバータ４０１が介在することから、加減算器４０２の入力がハイレベルとなってアップカウントを開始する。このようにして、加減算器４０２の値が「８」と「７」（即ち収束値）を交互に繰り返し、差動出力（負）Ａ−が交互に「１．６４Ｖ」と「１．６６Ｖ」となる。そして、ある一定時間経った時点で一連の動作を終了する。この動作が終了した時点でそのカウント値である収束値「８」又は「７」がラッチ４０４で保持される。
【００９１】
次に、スイッチＳＷ４、ＳＷ６及びＳＷ７をｂ端子側に切り替える。そして、上記と同一の動作を行う。差動出力（正）Ａ＋は「１．７Ｖ」のため、コモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧（「１．７５Ｖ」）からコンパレータ６００のオフセット分「０．１０Ｖ」を引いた電圧「１．６５Ｖ」よりも高くなり（すなわち、１．７Ｖ＞１．６５Ｖ）、コンパレータ６００の出力がローレベルとなる。このとき、スイッチＳＷ７はｂ端子側に切り替えられているので、コンパレータ６００の出力はそのまま加減算器４０２に入力される。これにより、加減算器４０２はダウンカウントを開始する。
【００９２】
Ｄ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋は、値が加算された分、オフセットが減少する。すなわち、「１．７Ｖ」が減少して行く。ここで、加減算器４０２の増分「１」に対し、Ｄ／Ａ変換器５００とアナログフィルタ７００のアナログ出力を「０．０２Ｖ」とした場合、加減算器４０２が「−３」カウントすると、その時点で、差動出力（正）Ａ＋の「１．７Ｖ」に「−３×０．０２Ｖ＝−０．０６Ｖ」が加算されて「１．６４Ｖ」となる。これにより、コモンモードフィードバック回路７０２の差動出力（負）Ａ−と差動出力（正）Ａ＋の中心電圧「１．７５Ｖ」から「０．１０Ｖ」を減算した「１．６５Ｖ」（基準値）未満となり、コンパレータ６００の出力がローレベルからハイレベルに変る。このときインバータ４０１は介在しないので、加減算器４０２の入力がハイレベルとなってアップカウントを開始する。
【００９３】
そして、加減算器４０２がアップカウントを開始し、その１回目で値が「−２」になると、差動出力（正）Ａ＋の「１．６４Ｖ」に「１×０．０２Ｖ」が加算されて「１．６６Ｖ」となる。これにより、コンパレータ６００の出力がハイレベルからローレベルに変る。このときインバータ４０１は介在しないので、加減算器４０２の入力がローレベルとなってダウンカウントを開始する。このようにして、加減算器４０２の値が「−３」と「−２」（即ち収束値）で繰り返し、差動出力（正）Ａ＋が交互に「１．６４Ｖ」と「１．６６Ｖ」となる。そして、ある一定時間経った時点で一連の動作が終了する。この動作が終了した時点でそのカウント値である収束値「−３」又は「−２」がラッチ４０５で保持される。
【００９４】
このようにして、差動出力（負）Ａ−における収束値（「８」又は「７」）と、差動出力（正）Ａ＋における収束値（「−３」又は「−２」）が決まると、続いてオフセット補償値が生成される。
【００９５】
オフセット補償値の生成では、スイッチＳＷ５をａ端子側に切り替えるとともに、ラッチ４０４及び４０５に保持された値（即ち収束値）を加算器４０３で加算し、さらにその加算値を１／２回路４０６で１／２の値にして補正値を求める。そして、この補正値を加算器３００に入力する。例えば、ラッチ４０４の値「８」とラッチ４１５の値「−３」を加算器４０３で加算する。その結果は「５」となり、１／２回路４０６で１／２にされると、「２」の補正値が得られる。補正値「２」は加算器３００で入力信号に加算される。補正値「２」は、「０．０２×２＝０．０４Ｖ」であるので、この値でＤ／Ａ変換器５００とアナログフィルタ７００の差動出力（正）Ａ＋を補正することで、「１．７Ｖ＋０．０４Ｖ＝１．７４Ｖ」となる。また、差動出力（負）Ａ−は「１．８Ｖ−０．０４Ｖ＝１．７６Ｖ」となる。これにより、オフセットがキャンセルされたことになる。
【００９６】
本実施の形態によれば、コモンモードフィードバック回路７０２の差動出力（負）と差動出力（正）の中心電圧をコンパレータ６００の非反転入力端に与えるようにしたので、オフセットキャンセル動作の収束時間の短縮化が可能となる。
【産業上の利用可能性】
【００９７】
本発明のオフセット補償装置は、電子装置の反転出力信号と非反転出力信号に含まれるオフセットをキャンセルするためのオフセット補償値を、第１、第２の比較手段自体に生ずるオフセットを含めて求めるようにしたので、通常の安価な比較手段を用いても電子装置のオフセットを高精度でキャンセルすることが可能となるという効果を有し、デジタル無線電話などに用いられる電子装置のＤＣ（直流）オフセット電圧の補償を行うオフセット補償装置等として有用である。
【図面の簡単な説明】
【００９８】
【図１】本発明の第１の実施の形態に係るオフセット補償装置の構成を示す回路図。
【図２】本発明の第２の実施の形態に係るオフセット補償装置の構成を示す回路図。
【符号の説明】
【００９９】
３００  加算器
４００、４１０  補正値生成回路
４０１、４１１  インバータ
４０２、４１２  加減算器
４０３、４１３  加算器
４０４、４１４、４０５、４１５  ラッチ
４０６、４１６  １／２回路
４１７  平均化処理回路
５００  Ｄ／Ａ変換器
６００  コンパレータ
７００  アナログフィルタ
７０１  全差動オペアンプ
７０２  コモンモードフィードバック回路
【図１】
2005150789.tif 000003
【図２】
2005150789.tif 000004