【解決手段】半導体装置10では、差分演算回路32がADコンバータ20から出力された変換データと基準レジスタ30に設定された基準値との差分を演算する。そして、比較演算回路34が、差分演算回路32が演算した演算値(差分)と差分レジスタ36に設定された差分値とを比較し、比較結果に基づいて変換データが正常な場合は、当該変換データを出力してデータ受信回路24の変換データ保持レジスタ40に保持させる。一方、変換データが異常な場合は、当該変換データを破棄して、当該変換データに対応するアナログデータを再びデジタルデータに変換するようADコンバータ20に指示する。
前記比較演算部は、前記演算値の絶対値が、前記予め定められた値以下の場合は変換データを正常とし、前記演算値の絶対値が、前記予め定められた値を超える場合は変換データを異常とする、
請求項1に記載の半導体装置。
【発明を実施するための形態】
【0013】
以下では、図面を参照して、各実施形態を詳細に説明する。
【0014】
[第1実施形態]
まず、本実施形態の半導体装置全体の構成について説明する。
図1には、本実施形態の半導体装置10の一例の概略を表す構成図を示す。
【0015】
図1に示すように本実施形態の半導体装置10は、ADコンバータ20、データ演算回路22、データ受信回路24、CPU(Central Processing Unit)26、及び処理部28を備える。本実施形態の半導体装置10は、具体例としてMCU(Micro Control Unit)として構成されている。
【0016】
本実施形態の半導体装置10には、センサ12から検出結果を表すアナログデータが入力される。センサ12の具体例としては、温度を検出する温度センサ等が挙げられる。
【0017】
本実施形態のセンサ12の検出対象は、値が大きく変化することが無いものである。例えば、上述したように具体例としてセンサ12が温度センサの場合、所定の温度に設定されている場所等、温度変化が大きくない場所の温度を検出対象としている。
【0018】
ADコンバータ20は、センサ12から出力されるアナログデータを連続AD変換する。具体的には、ADコンバータ20は、センサ12から検出結果を表すアナログデータを取得して、デジタルデータに変換した変換データをデータ演算回路22に出力する。
【0019】
データ演算回路22は、ADコンバータ20から入力された変換データが正常(詳細後述)である場合は、データ受信回路24の変換データ保持レジスタ40(
図2参照、詳細後述)に当該変換データを保持させる。また、データ演算回路22は、変換データが異常である場合は、当該変換データを破棄してADコンバータ20にアナログデータの変換をやりなおすよう指示する。
【0020】
すなわち、データ演算回路22は、変換データが正常か異常かを判断し、異常な場合はAD変換をやりなおさせ、正常な場合のみデータ受信回路24の変換データ保持レジスタ40に保持させる。
【0021】
なお、本実施形態の半導体装置10では、ADコンバータ20でアナログデータをAD変換する際にノイズ等の影響を受けた状態の変換データを「異常」としている。このような異常な変換データの値は、正常な変換データの値と大きく異なる。本実施形態の半導体装置10では、具体的には、AD変換を行って得られた変換データの値が基準値と大きく異なっている場合、AD変換により得られた変換データは異常であると判断している。
【0022】
データ受信回路24は、複数の変換データを保持するため、複数の変換データ保持レジスタ40(
図2参照、詳細後述)を備えている。変換データ保持レジスタ40は、本発明の保持部の一例である。
【0023】
CPU26は、本発明の算出部の一例であり、データ受信回路24が備える複数の変換データ保持レジスタ40(
図2参照、詳細後述)の各々に保持されている変換データを読み出して、平均値を算出する。CPU26により算出された変換データの平均値は、処理部28に出力される。
【0024】
処理部28は、変換データの平均値に基づいて予め定められた処理を行う。処理部28で行われる予め定められた処理は、特に限定されるものではなく、センサ12の検出結果を用いた処理であればよい。
【0025】
次に、本実施形態のデータ演算回路22及びデータ受信回路24について詳細に説明する。
図2には、本実施形態のデータ演算回路22及びデータ受信回路24の回路図を示す。
【0026】
図2に示すようにデータ演算回路22は、基準レジスタ30、差分演算回路32、比較演算回路34、及び差分レジスタ36を備える。
【0027】
基準レジスタ30は、本発明の基準値設定部の一例であり、基準値が予め設定されている。基準レジスタ30に設定されている基準値は、センサ12の検出対象に応じて予め定められる。
【0028】
差分レジスタ36には、差分値が予め定められている。差分レジスタ36に設定されている差分値は、センサ12の検出対象やADコンバータ20でAD変換を行う際に生じるノイズの大きさ等に応じて予め定められる。
【0029】
上述したようにセンサ12が温度センサであり、温度が25度に設定され、±3度の範囲内で温度が変化する場所の温度を半導体装置10が測定する場合、例えば、基準レジスタ30には、「25」が設定され、差分レジスタ36には「3」が設定される。
【0030】
差分演算回路32は、ADコンバータ20から入力された変換データと基準レジスタ30に設定されている基準値との差分を演算する。
【0031】
比較演算回路34は、差分演算回路32で演算した演算値(差分)と差分レジスタ36に設定されている差分値とを比較する。また、比較演算回路34は、比較結果に基づいて、変換データが正常である場合はデータ受信回路24に出力し変換データ保持レジスタ40に保持させる。一方、変換データが異常である場合はADコンバータ20に当該変換データに対応するアナログデータを再度AD変換するよう指示する。
【0032】
一方、データ受信回路24は、複数の変換データ保持レジスタ40を備える。本実施形態のデータ受信回路24は、具体例として4回分のAD変換結果(変換データ)を保持するために4つの変換データ保持レジスタ40
1〜40
4を備える。なお、本実施形態では、変換データ保持レジスタ40
1〜40
4について個々を区別せずに総称する場合は、個々を表す1〜4の符号を省略して記載する。
【0033】
比較演算回路34から出力された変換データは、1回目〜4回目まで、順次、変換データ保持レジスタ40
1〜40
4に保持される。本実施形態の半導体装置10では、比較演算回路34からデータ受信回路24に変換データが4回出力され、変換データ保持レジスタ40に保持されると、CPU26により変換データの平均値の算出が行われて、平均値が処理部28に出力される。
【0034】
本実施の形態の半導体装置10による変換データを変換データ保持レジスタ40に保持する保持動作について説明する。
【0035】
図3には、半導体装置10により実行される保持動作の一例を表すフローチャートを示す。なお、
図3に示した保持動作を行う前に、予め基準レジスタ30には基準値が設定され、かつ差分レジスタ36には差分値が設定される。
【0036】
ステップS100でADコンバータ20が、センサ12からアナログデータを取得する。そして、次のステップS102でADコンバータ20が、取得したアナログデータをデジタルデータにAD変換し、変換データを出力する。
【0037】
次のステップS104で差分演算回路32が、変換データと基準レジスタ30に設定されている基準値との差分を演算する。
【0038】
次のステップS106で比較演算回路34が、差分演算回路32が演算した演算値(差分)と差分レジスタ36に設定されている差分値とを比較する。比較演算回路34は、具体的には演算値の絶対値が差分値以上であるか否かを判断する。
【0039】
そして次のステップS108で比較演算回路34が、演算値の絶対値が差分値以下であるか否かを判断する。演算値の絶対値が差分値以下ではない場合(演算値の絶対値が差分値を超える場合)は、否定判定となりステップS110へ移行する。
【0040】
演算値の絶対値が差分値を超える場合は、変換データが異常な場合である。そのため、ステップS110で比較演算回路34は、変換データを破棄し、再び上記ステップS100で取得したアナログデータをAD変換させるために、ステップS102に戻る。従って、変換データが異常な場合は、当該変換データに応じたアナログデータについて再びADコンバータ20でAD変換を実行する。
【0041】
一方、演算値の絶対値が差分値以下の場合は、ステップS108で肯定判定となり、ステップS112へ移行する。
【0042】
演算値の絶対値が差分値以下の場合とは、変換データが正常な場合である。そのため、ステップS112で比較演算回路34は、当該変換データを出力してデータ受信回路24の変換データ保持レジスタ40に保持させる。なお、変換データを変換データ保持レジスタ40に保持させる際は、変換データ保持レジスタ40
1から順次、変換データ保持レジスタ40
4まで、変換データを保持させる。
【0043】
次のステップS114でCPU26は、比較演算回路34から変換データの出力(変換データ保持レジスタ40への保持)が4回目か否か判断する。4回目ではない(1〜3回目)の場合は、否定判定となり、ステップS100に戻る。そして、ADコンバータ20がセンサ12からアナログデータを取得し、ステップS102〜S112の動作を繰り返す。
【0044】
一方、4回目の場合は、肯定判定となり保持動作を終了する。なお、保持動作が終了すると、CPU26は、変換データ保持レジスタ40
1〜40
4に保持されている4つの変換データの平均値を算出し、処理部28に出力する。そして、再び、
図3に示した保持動作が繰り返される。なお、保持動作を繰り返す際は、1回目から順に、変換データを変換データ保持レジスタ40
1〜40
4に上書きしてもよいし、一旦、全ての変換データ保持レジスタ40をリセットして、再び変換データを保持させるようにしてもよい。
【0045】
[第2実施形態]
第1実施形態の半導体装置10では、基準レジスタ30に予め定められた基準値を設定していた。これに対して第2実施形態の半導体装置10では、基準レジスタ30に前回AD変換した正常な変換データを基準値として設定する。
【0046】
本実施形態の半導体装置10全体の構成は、第1実施形態の半導体装置10(
図1参照)と同様であるため説明を省略する。
【0047】
図4には、本実施形態のデータ演算回路及びデータ受信回路の回路図を示す。
図4に示すように、本実施形態の半導体装置10のデータ演算回路22では、比較演算回路34から出力された変換データが基準レジスタ30に入力され、基準値として設定される点で、第1実施形態の半導体装置10と異なっている。
【0048】
センサ12から入力されるアナログデータが徐々に上昇または下降する場合、基準レジスタ30に設定される基準値を固定値としてしまうと、変換データと基準値とが徐々に乖離してしまうことになる。具体例として、センサ12が、電池の残量(電池電圧)を検出するセンサである場合、電池の残量は徐々に減少するため、基準値を固定値としてしまうと、変換データと基準値とが徐々に乖離してしまう。そのため、変換データが異常であるか正常であるかの判断が適切に行われなくなる。
【0049】
そのため、本実施形態のデータ演算回路22では、基準レジスタ30に設定される基準値を固定値とせず、正常な前回の変換データを基準値として設定している。
【0050】
図5には、本実施形態の半導体装置10により実行される保持動作の一例を表すフローチャートを示す。
図5に示した保持動作は、ステップS112とステップS114との間にステップS113が加わっている点で、第1実施形態の半導体装置10で行われる保持動作(
図3参照)と異なっている。
【0051】
ステップS108で比較演算回路34が、演算値の絶対値が差分値以下であると判断した場合(肯定判定)は、変換データが正常である。そのため、ステップS112で比較演算回路34が、変換データをデータ受信回路24に出力して変換データ保持レジスタ40に保持させる。
【0052】
本実施形態の半導体装置10では、ステップS112で比較演算回路34から出力された変換データが、次のステップS113で基準レジスタ30に基準値として設定される。なお、このように本実施形態の保持動作では、便宜上、変換データを変換データ保持レジスタ40に保持させるステップS112の後に、変換データを基準レジスタ30に基準値として設定するステップS113を設けた。しかしながら、変換データを変換データ保持レジスタ40に保持させる動作と、基準レジスタ30に基準値として設定する動作の順番は限定されるものではない。
【0053】
これにより、2回目以降の変換データについては、正常な前回の変換データを基準値として、差分演算回路32が差分の演算を行う。
【0054】
なお、本実施形態の半導体装置10では、
図5に示した保持動作を繰り返し行う場合は、前回の保持動作により基準レジスタ30に設定された基準値をそのまま使用してもよい。具体的には、前回の保持動作のうち、4回目のステップS113の動作で基準レジスタ30に設定された変換データ(4回目の変換データ)を、今回の保持動作の1回目のステップS104で演算に用いられる基準値としてもよい。また、新たな基準値(例えば予め定められた基準値)を基準レジスタ30に設定して使用してもよい。前回の基準値をそのまま使用するか、新たな基準値を使用するかはユーザの任意としてもよい。
【0055】
以上説明したように、上記各実施形態の半導体装置10では、差分演算回路32がADコンバータ20から出力された変換データと基準レジスタ30に設定された基準値との差分を演算する。そして、比較演算回路34が、差分演算回路32が演算した演算値(差分)と差分レジスタ36に設定された差分値とを比較し、比較結果に基づいて変換データが正常な場合は、当該変換データを出力してデータ受信回路24の変換データ保持レジスタ40に保持させる。一方、変換データが異常な場合は、当該変換データを破棄して、当該変換データに対応するアナログデータを再びデジタルデータに変換するようADコンバータ20に指示する。
【0056】
データ演算回路22を備えていない従来の半導体装置の場合、ADコンバータ20から出力された変換データがそのままデータ受信回路24の変換データ保持レジスタ40に保持される。そのため、従来の半導体装置では、異常な変換データが保持されてしまう。また、従来の半導体装置では、変換データ保持レジスタ40に保持されている変換データが正常であるか異常であるかを判断する場合、ソフトウエアを用いて行っていた。
【0057】
これに対して、上記各実施形態の半導体装置10によれば、データ演算回路22を備えているため、正常な変換データのみをデータ受信回路24の変換データ保持レジスタ40に保持させる。
【0058】
従って、上記各実施形態の半導体装置10によれば、ノイズの影響を受けた異常な変換データがデータ受信回路24の変換データ保持レジスタ40に保持されるのを抑制することができる。
【0059】
また、比較演算回路34により変換データが正常であるか異常であるかを判断しているため、従来の半導体装置に比べて、余分なソフトウエアを削減し、当該ソフトウエアを格納するROM(Read Only Memory)のサイズを縮小することができ、コストも削減することができる。
【0060】
また、上記第2実施形態の半導体装置10では、正常な前回の変換データを基準値として、当該基準値と今回の変換データとの差分を差分演算回路32が演算する。これにより、上記第2実施形態の半導体装置10によれば、アナログデータが、徐々に変化(上昇または下降)する場合でも、基準値と正常な変換データとの乖離が大きくなることを防止することができる。
【0061】
なお、上記各実施形態では、半導体装置10に入力されるアナログデータが、センサ12の検出結果を表すものである場合について説明したが、アナログデータは、値が大きく変化することがなく、変化する場合でも徐々に変化するものであればよく、限定されるものではない。
【0062】
なお、上記各実施形態では、半導体装置10のデータ受信回路24が4つの変換データ保持レジスタ40を備える場合について説明したが、データ受信回路24が備える変換データ保持レジスタ40の数は複数であればよく、限定されるものではない。
【0063】
なお、上記各実施形態では、差分演算回路32の演算値が差分レジスタ36に設定された差分値以下の場合に変換データを正常とし、差分値を超える場合に変換データ異常としていたが、これに限らず、演算値が差分値未満の場合に変換データを正常とし、差分値以上の場合に変換データ異常としてもよい。
【0064】
なお、上記各実施形態の半導体装置10では、基準レジスタ30、差分レジスタ36、及び変換データ保持レジスタ40を備える場合について説明したがこれに限らず、それぞれ、基準値、差分値、及び変換データを設定・保持できればよい。例えば、半導体装置10は、レジスタに替えて汎用RAM(Random Access Memory)を備えてもよい。
【0065】
なお、上記各実施形態では、データ演算回路22の差分演算回路32及び比較演算回路34をハードウエア(回路)で構成する場合について説明したがこれに限らず、ソフトウエアの実行により同様の機能を有する機能部として構成してもよい。なお、上述したように、上記各実施形態のようにハードウエア(回路)として構成することにより、ソフトウエアを削減しROMサイズを縮小することができるため、好ましい。
【0066】
なお、その他の上記各実施の形態で説明した半導体装置10の構成、及び動作は一例であり、本発明の主旨を逸脱しない範囲内において状況に応じて変更可能であることはいうまでもない。