図面 (/)

技術 レジスタ異常検出装置

出願人 アズビル株式会社
発明者 栗林英毅平山博文
出願日 2016年4月25日 (4年6ヶ月経過) 出願番号 2016-086764
公開日 2017年11月2日 (3年0ヶ月経過) 公開番号 2017-199052
状態 特許登録済
技術分野 エラーの検出 エラーの検出訂正 符号誤り検出・訂正
主要キーワード ステートマシン図 現状値 算出期間 セトリング 対象レジスタ データ送信回路 初期設定後 シリアルクロック信号
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年11月2日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

処理能力の高いCPUを用いることなく、異常検出信頼性を高める。

解決手段

IC2において、レジスタ2Aに書き込まれたデータのCRC期待値の算出後、CRC現状値の算出を繰り返し、算出したCRC現状値をCRC現状値記憶部2Eに更新記憶する。CRC現状値を算出する毎に、CRC期待値とCRC現状値との一致/不一致を判定し、その判定結果をエラー検出レジスタ2Hに書き込む。CPU1は、エラー検出レジスタ2Hに書き込まれている判定結果およびCRC現状値記憶部2Eに記憶されているCRC現状値を定期的に読み出し、その読み出した判定結果(第1の判定結果)およびCRC現状値から得られる判定結果(第2の判定結果)に基づいてレジスタ2Aに書き込まれているデータの異常を検出する。

概要

背景

従来より、マイクロコンピュータを用いて各種の処理を行う電子回路では、演算処理部(CPU(Central Processing Unit))から送られてくるデータをIC(IntegratedCircuit)内部のレジスタに書き込んでいる。このマイクロコンピュータを用いた電子回路において、IC内部のレジスタに書き込まれたデータ(レジスタ値)は、ノイズなどの要因で意図せずに書き変わってしまうことがある。

このため、従来においては、下記の(1),(2)のような処理をCPU側で行わせるようにしていた。
(1)動作中にレジスタ値を常時ポーリングすることにより、レジスタ値が変化していないかどうかを監視し、レジスタへの書き込みを行っていないにも関わらずレジスタ値が変化していた場合は、レジスタ値(レジスタに書き込まれているデータ)に異常が生じていると判断し、正しい値を書き込む。
(2)レジスタ初期設定後初期設定時と同じ値を一定間隔で書き続ける。これにより、レジスタ値がノイズなどの影響で変化したとしても、レジスタ値が正しい値で上書きされる。

概要

処理能力の高いCPUを用いることなく、異常検出信頼性を高める。IC2において、レジスタ2Aに書き込まれたデータのCRC期待値の算出後、CRC現状値の算出を繰り返し、算出したCRC現状値をCRC現状値記憶部2Eに更新記憶する。CRC現状値を算出する毎に、CRC期待値とCRC現状値との一致/不一致を判定し、その判定結果をエラー検出レジスタ2Hに書き込む。CPU1は、エラー検出レジスタ2Hに書き込まれている判定結果およびCRC現状値記憶部2Eに記憶されているCRC現状値を定期的に読み出し、その読み出した判定結果(第1の判定結果)およびCRC現状値から得られる判定結果(第2の判定結果)に基づいてレジスタ2Aに書き込まれているデータの異常を検出する。

目的

本発明は、このような課題を解決するためになされたもので、その目的とする

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

演算処理部と、この演算処理部からから送られてくるデータが書き込まれるレジスタとを備え、前記レジスタに書き込まれているデータの異常を検出するレジスタ異常検出装置において、前記演算処理部から送られてきたデータを前記レジスタに書き込むデータ書込部と、前記レジスタに書き込まれているデータの異常を検出するための検査用指標期待値を算出する期待値算出部と、前記レジスタに書き込まれているデータの前記検査用の指標の期待値に対応する現状値の算出を繰り返す現状値算出部と、前記現状値算出部によって前記検査用の指標の現状値が算出される毎に、算出された検査用の指標の現状値を更新記憶する現状値記憶部と、前記現状値算出部によって前記検査用の指標の現状値が算出される毎に、算出された検査用の指標の現状値と前記期待値との一致/不一致を判定し、その判定結果を第1の判定結果としてエラー検出レジスタに書き込む一致/不一致判定部とを備え、前記演算処理部は、前記エラー検出レジスタに書き込まれている第1の判定結果および前記現状値記憶部に記憶されている検査用の指標の現状値の少なくとも一方を読み出すことを特徴とするレジスタ異常検出装置。

請求項2

請求項1に記載されたレジスタ異常検出装置において、前記演算処理部は、前記エラー検出レジスタに書き込まれている第1の判定結果および前記現状値記憶部に記憶されている検査用の指標の現状値から得られる第2の判定結果に基づいて前記レジスタに書き込まれているデータの異常を検出することを特徴とするレジスタ異常検出装置。

請求項3

請求項1に記載されたレジスタ異常検出装置において、前記演算処理部は、前記エラー検出レジスタに書き込まれている第1の判定結果および前記現状値記憶部に記憶されている検査用の指標の現状値を定期的に読み出し、その読み出した第1の判定結果および検査用の指標の現状値から得られる第2の判定結果に基づいて前記レジスタに書き込まれているデータの異常を検出することを特徴とするレジスタ異常検出装置。

請求項4

請求項3に記載されたレジスタ異常検出装置において、前記演算処理部は、前記現状値記憶部から読み出した最初の検査用の指標の現状値を演算処理部側での期待値とし、以降、前記現状値記憶部から検査用の指標の現状値を読み出す毎に、その読み出した検査用の指標の現状値と前記演算処理部側での期待値との一致/不一致を判定し、その判定結果を前記第2の判定結果とすることを特徴とするレジスタ異常検出装置。

請求項5

請求項2〜4の何れか1項に記載されたレジスタ異常検出装置において、前記演算処理部は、前記第1の判定結果が「一致」でかつ前記第2の判定結果も「一致」であった場合に前記レジスタに書き込まれているデータが正常であると判断し、その他の場合は異常であると判断することを特徴とするレジスタ異常検出装置。

請求項6

請求項1に記載されたレジスタ異常検出装置において、前記演算処理部は、前記レジスタの異常検出方式として第1の方式が選択されている場合、前記エラー検出レジスタに書き込まれている第1の判定結果に基づいて前記レジスタに書き込まれているデータの異常を検出し、前記レジスタの異常検出方式として第2の方式が選択されている場合、前記現状値記憶部に記憶されている検査用の指標の現状値から得られる第2の判定結果に基づいて前記レジスタに書き込まれているデータの異常を検出し、前記レジスタの異常検出方式として第3の方式が選択されている場合、前記エラー検出レジスタに書き込まれている第1の判定結果および前記現状値記憶部に記憶されている検査用の指標の現状値から得られる第2の判定結果に基づいて前記レジスタに書き込まれているデータの異常を検出することを特徴とするレジスタ異常検出装置。

請求項7

請求項1又は6に記載されたレジスタ異常検出装置において、前記エラー検出レジスタに書き込まれている第1の判定結果は、通信プロトコルに含めて前記演算処理部に送られてくることを特徴とするレジスタ異常検出装置。

技術分野

0001

本発明は、レジスタに書き込まれているデータの異常を検出するレジスタ異常検出装置に関する。

背景技術

0002

従来より、マイクロコンピュータを用いて各種の処理を行う電子回路では、演算処理部(CPU(Central Processing Unit))から送られてくるデータをIC(IntegratedCircuit)内部のレジスタに書き込んでいる。このマイクロコンピュータを用いた電子回路において、IC内部のレジスタに書き込まれたデータ(レジスタ値)は、ノイズなどの要因で意図せずに書き変わってしまうことがある。

0003

このため、従来においては、下記の(1),(2)のような処理をCPU側で行わせるようにしていた。
(1)動作中にレジスタ値を常時ポーリングすることにより、レジスタ値が変化していないかどうかを監視し、レジスタへの書き込みを行っていないにも関わらずレジスタ値が変化していた場合は、レジスタ値(レジスタに書き込まれているデータ)に異常が生じていると判断し、正しい値を書き込む。
(2)レジスタ初期設定後初期設定時と同じ値を一定間隔で書き続ける。これにより、レジスタ値がノイズなどの影響で変化したとしても、レジスタ値が正しい値で上書きされる。

先行技術

0004

「20μsセトリング、250kSPSの24ビットΣ-ΔADC- Analog Devices」、〔平成28年4月5日検索〕、インターネット<URL:http://www.analog.com/media/jp/technical-documentation/data-sheets/AD7176-2_jp.pdf#search='20+%CE%BCs%E3%82%BB%E3%83%88%E3%83%AA%E3%83%B3%E3%82%B0%E3%80%81250+kSPS%E3%81%AE'>
「8-Channel, Low Noise, Low Power, 24-Bit, Sigma-Delta ADC withPGAand Reference」、〔平成28年4月5日検索〕、インターネット<URL:http://www.analog.com/media/en/technical-documentation/data-sheets/AD7124-8.pdf#search='8Channel%2C+Low+Noise%2C+Low+Power%2C+24Bit%2C'>

発明が解決しようとする課題

0005

しかしながら、上記の(1),(2)のような処理をCPU側で行わせるためには、処理能力の高いCPUを選定する必要がある。また、レジスタに書き込まれているデータの異常(レジスタ異常)を確認するためにCPUからICへのアクセスが増加することで、消費電力も増大してしまう。

0006

なお、CPU側ではなくIC側に、下記の(3),(4)のような仕組みを内蔵させた例もある(例えば、非特許文献1,2参照)。

0007

(3)2つのレジスタを用意し、片方のレジスタを動作設定用レジスタ、もう一方のレジスタを期待値格納用レジスタとする。CPUから動作設定用レジスタに対して書き込みを行うと同じ値が期待値格納用レジスタにもコピーされる。CPUから動作設定用レジスタへの書き込みが発生していないにも関わらず、動作設定用レジスタに書き込まれている値と期待値格納用レジスタに書き込まれている値とが異なった場合に、エラー検出レジスタを用いてCPUに対してレジスタ異常を通知する。

0008

(4)レジスタに書き込まれているデータのCRC(Cyclic Redundancy Code)値を繰り返し算出し、CPUからレジスタへの書き込みをしていないにも関わらず、算出されたCRC値(CRC現状値)が期待値(CRC期待値)と不一致となった場合に、エラー検出レジスタを用いてCPUに対してレジスタ異常を通知する。なお、CRC値とは、レジスタに書き込まれているデータの異常を検出するための検査用指標の一つであり、データを値とみなしてある定数で割った余り余剰)として定義される値である。また、CRC期待値とは、レジスタに書き込んだデータの本来あるべき値として定義されるCRC値である。

0009

しかしながら、上記の(3)の仕組みでは、通常の2倍のレジスタを使用するため面積的に不利となる。また、上記の(4)の仕組みでは、異常検出に必要なレジスタの数を減らすことはできるが、エラー検出レジスタ自体にビットが化けるなどの異常が発生してしまった場合、誤った検出を行ってしまう可能性がある。すなわち、エラー検出レジスタ自体の異常発生により、正常であるにも関わらず異常であると判断されてしまうことがある。逆に、異常であるにも関わらず正常であると判断されてしまうことがある。

0010

本発明は、このような課題を解決するためになされたもので、その目的とするところは、処理能力の高いCPUを用いることなく、異常検出の信頼性を高めることが可能なレジスタ異常検出装置を提供することにある。

課題を解決するための手段

0011

このような目的を達成するために本発明は、演算処理部(1)と、この演算処理部(1)からから送られてくるデータが書き込まれるレジスタ(2A)とを備え、レジスタ(2A)に書き込まれているデータの異常を検出するレジスタ異常検出装置(100)において、演算処理部(1)から送られてきたデータをレジスタ(2A)に書き込むデータ書込部(2B)と、レジスタ(2A)に書き込まれているデータの異常を検出するための検査用の指標の期待値を算出する期待値算出部(2C)と、レジスタ(2A)に書き込まれているデータの検査用の指標の期待値に対応する現状値の算出を繰り返す現状値算出部(2D)と、現状値算出部(2D)によって検査用の指標の現状値が算出される毎に、算出された検査用の指標の現状値を更新記憶する現状値記憶部(2E)と、現状値算出部(2D)によって検査用の指標の現状値が算出される毎に、算出された検査用の指標の現状値と期待値との一致/不一致を判定し、その判定結果を第1の判定結果としてエラー検出レジスタ(2H)に書き込む一致/不一致判定部(2G)とを備え、演算処理部(1)は、エラー検出レジスタ(2H)に書き込まれている第1の判定結果および現状値記憶部(2E)に記憶されている検査用の指標の現状値の少なくとも一方を読み出すことを特徴とする。

0012

本発明において、演算処理部(1)から送られてきたデータがレジスタ(2A)に書き込まれると、このレジスタ(2A)に書き込まれているデータの異常を検出するための検査用の指標の期待値(CRC期待値)が算出される。そして、この検査用の指標の期待値の算出後、レジスタ(2A)に書き込まれているデータの検査用の指標の期待値に対応する現状値(CRC現状値)の算出が繰り返され、この算出された検査用の指標の現状値が現状値記憶部(2E)に更新記憶(上書き)される。また、検査用の指標の現状値の算出が繰り返される毎に、算出された検査用の指標の現状値と期待値との一致/不一致が判定され、その判定結果が第1の判定結果としてエラー検出レジスタ(2H)に書き込まれる。

0013

演算処理部(1)は、エラー検出レジスタ(2H)に書き込まれている第1の判定結果および現状値記憶部(2E)に記憶されている検査用の指標の現状値から得られる第2の判定結果に基づいて、レジスタ(2A)に書き込まれているデータの異常を検出する。例えば、第1の判定結果が「一致」でかつ第2の判定結果も「一致」であった場合にレジスタ(2A)に書き込まれているデータが正常であると判断し、その他の場合は異常であると判断する。

0014

本発明において、演算処理部(1)は、エラー検出レジスタ(2H)に書き込まれている第1の判定結果および現状値記憶部(2E)に記憶されている検査用の指標の現状値の少なくとも一方を読み出す。これにより、例えば、現状値記憶部(2E)に記憶されている検査用の指標の現状値から第2の判定結果を得るようにし、この検査用の指標の現状値から得られる第2の判定結果とエラー検出レジスタ(2H)に書き込まれている第1の判定結果とに基づいてレジスタ(2A)に書き込まれているデータの異常を検出するようにすることができる。

0015

この場合、現状値記憶部(2E)から読み出した検査用の指標の現状値から第2の判定結果を得るが、例えば、現状値記憶部(2E)に記憶されている検査用の指標の現状値を定期的に読み出すようにし、この現状値記憶部(2E)から読み出した最初の検査用の指標の現状値を演算処理部(1)側での期待値とし、以降、現状値記憶部(2E)から検査用の指標の現状値を読み出す毎に、その読み出した検査用の指標の現状値と演算処理部(1)側での期待値との一致/不一致を判定し、その判定結果を第2の判定結果とする。

0016

また、この場合、第1の判定結果と第2の判定結果とに基づいてレジスタ(2A)に書き込まれているデータの異常を検出するが、第1の判定結果のみでレジスタ(2A)に書き込まれているデータの異常を検出するようにしてもよく、第2の判定結果のみでレジスタ(2A)に書き込まれているデータの異常を検出するようにしてもよい。例えば、レジスタの異常検出方式として第1,第2,第3の方式を選択可能とし、第1の方式が選択されている場合には第1の判定結果のみで異常を検出するようにし、第2の方式が選択されている場合には第2の判定結果のみで異常を検出するようにし、第3の方式が選択されている場合には第1の判定結果と第2の判定結果とに基づいて異常を検出するようにする。

0017

また、本発明において、エラー検出レジスタ(2H)に書き込まれている第1の判定結果は、演算処理部(1)が定期的に読み出すようにしてもよいし、チェックサム付きSPI(Serial Peripheral Interface)アクセスのレスポンスバイトに含めるなど、通信プロトコルに含めて演算処理部(1)に送られてくるものとしてもよい。

0018

なお、上記説明では、一例として、発明の構成要素に対応する図面上の構成要素を、括弧を付した参照符号によって示している。

発明の効果

0019

本発明によれば、エラー検出レジスタに書き込まれている第1の判定結果および現状値記憶部に記憶されている検査用の指標の現状値の少なくとも一方を読み出すようにしたので、例えば、現状値記憶部に記憶されている検査用の指標の現状値から第2の判定結果を得るようにし、この検査用の指標の現状値から得られる第2の判定結果とエラー検出レジスタに書き込まれている第1の判定結果とに基づいてレジスタに書き込まれているデータの異常を検出するなどして、処理能力の高いCPUを用いることなく、異常検出の信頼性を高めることが可能となる。

図面の簡単な説明

0020

図1は、本発明の実施の形態に係るレジスタ異常検出装置の要部の構成を示す図である。
図2は、このレジスタ異常検出装置におけるCRC値算出部の内部のステートマシン図である。
図3は、CRC値算出部で行われる動作を示すタイミングチャートである。
図4は、IC側での処理を機能ブロック化した図である。
図5は、IC側での処理を示すフローチャートである。
図6は、CPU側での処理を示すフローチャートである。
図7は、第1の方式が選択されている場合のCPU側で行われる処理を示すフローチャートである。
図8は、第2の方式が選択されている場合のCPU側で行われる処理を示すフローチャートである。
図9は、エラー検出レジスタの値をチェックサム付きSPIアクセスのレスポンスバイトに含めるようにした例を示す図である。

実施例

0021

以下、本発明の実施の形態を図面に基づいて詳細に説明する。図1は本発明の実施の形態に係るレジスタ異常検出装置100の要部の構成を示す図である。

0022

図1において、1はCPU(演算処理部)、2はICである。IC2には、データ受信回路21と、コマンド制御部22と、データ送信回路23と、内部レジスタ24とが設けられている。内部レジスタ24には、CRC値算出対象レジスタ24−1と、CRC値算出非対象レジスタ24−2と、CRC値算出部24−3と、エラー検出レジスタ24−4とが設けられている。

0023

このレジスタ異常検出装置100において、CPU1から送られてくるデータはデータ受信回路21で受信され、シリアルパラレル変換された後、コマンド制御部22を介して内部レジスタ24へ送られ、CRC値算出対象レジスタ24−1に書き込まれる。

0024

内部レジスタ24において、CRC値算出部24−3は、CRC値算出対象レジスタ24−1に書き込まれたデータのCRC期待値およびCRC現状値を算出し、算出したCRC現状値とCRC期待値との一致/不一致を判定し、その判定結果をエラー検出レジスタ24−4に書き込む。

0025

また、CRC値算出非対象レジスタ24−2には、CRC値算出部24−3によって算出されたCRC現状値が書き込まれる。このCRC値算出非対象レジスタ24−2に書き込まれたCRC現状値およびエラー検出レジスタ24−4に書き込まれた判定結果はCPU1によって定期的に読み出される。

0026

なお、図1中、CSはチップセレクト信号、SCLKはシリアルクロック信号MISO(Master In Slave Out)はマスタ側入力・スレーブ側出力信号、MOSI(Master Output Slave Input)はマスタ側出力・スレーブ側入力信号、REG_ERR_DETはエラー検出レジスタ24−4から読み出される異常検出ステータス(判定結果)である。

0027

図2にCRC値算出部24−3の内部のステートマシン図を示す。CRC値算出部24−3は、CRC算出イネーブルが有効な場合、CRC値算出対象レジスタ24−1に書き込まれているデータのCRCの現状値(CRC現状値)の算出(状態S1)と算出したCRC現状値とCRC期待値との比較を繰り返すが(状態S2)、CRC期待値算出コマンドをCPU1から受け取るとCRC期待値の算出を開始する(状態S3)。CRC期待値の算出を完了すると、エラー検出レジスタ24−4の値をクリアして「0」とし(状態S4)、CRC現状値の算出を繰り返す(状態S1)。

0028

CRC値算出部24−3は、このCRC現状値の算出の繰り返し中、ノイズなどの異常により、CRC値算出対象レジスタ24−1に書き込まれているデータの値が書き変わり、CRC現状値とCRCS期待値との不一致が発生すると、エラー検出レジスタ24−4の値に「1」をセットする。

0029

このステータスマシン図からも分かるように、CRC値算出部24−3は、CRC現状値の算出を繰り返す毎に、算出したCRC現状値とCRC期待値との一致/不一致を判定し、その判定結果をエラー検出レジスタ24−4に書き込む。

0030

本実施の形態において、エラー検出レジスタ24−4の値は最初は「0」とされており、CRC現状値とCRC期待値との間に不一致が生じると、このエラー検出レジスタ24−4の値が「1」に書き替えられる。すなわち、エラー検出レジスタ24−4の値(異常検出ステータス)は、CRC現状値とCRC期待値との一致/不一致の判定結果が「一致」である場合には「0」とされ、「不一致」の場合には「1」とされる。「一致」である場合には、エラー検出レジスタ24−4の値は書き替えられないが、結果的には「0」を書き込んでいると言える。

0031

なお、図2において、「IDLE」は初期状態(状態S0)、「CALC」はCRC現状値の算出を行う状態(状態S1)、「RESULT」はCRC現状値とCRC期待値との比較を行う状態(状態S2)、「REF_CALC」はCRC期待値の算出を行う状態(状態S3)、「REF_RESULT」は異常検出ステータスのクリアを行う状態(状態S4)を示す。

0032

また、図2において、状態S1でCRC現状値が繰り返し算出されるが、このCRC現状値は算出される毎にCRC値算出非対象レジスタ24−2に更新記憶(上書き)される。また、状態S3でCRC期待値が算出されるが、このCRC期待値はCRC期待値算出コマンドにより1回だけ求められるものであり、CRC値算出部24−3内のメモリに記憶される。

0033

図1において、CPU1は、エラー検出レジスタ24−4に書き込まれている判定結果およびCRC値算出非対象レジスタ24−2に記憶されているCRC現状値を定期的に読み出す。そして、この読み出した判定結果(第1の判定結果)およびCRC現状値から得られる判定結果(第2の判定結果)に基づいてCRC値算出対象レジスタ24−1に書き込まれているデータの異常を検出する。例えば、第1の判定結果が「一致」でかつ第2の判定結果も「一致」であった場合にCRC値算出対象レジスタ24−1に書き込まれているデータが正常であると判断し、その他の場合は異常であると判断する。

0034

本実施の形態において、CPU1がIC2から読み出せるCRC値は、CRC現状値のみとされている。すなわち、CPU1は、CRC値算出対象レジスタ24−1に書き込んだデータのCRC期待値とIC2から読み出したCRC現状値との一致/不一致の判定結果をCRC現状値から得られる判定結果(第2の判定結果)として求めるわけだが、CRC値算出部24−3で算出されたCRC期待値は読み出せない。

0035

この場合、CPU1側でCRC値算出対象レジスタ24−1に書き込むデータのCRC期待値を求めておいてもよいが、CPU1の処理負荷が増える。そこで、本実施の形態では、CPU1において、CRC値算出非対象レジスタ24−2から読み出した最初のCRC現状値(CRC期待値算出コマンド発行後の最初のCRC現状値)をCPU1側でのCRC期待値とし、以降、CRC値算出非対象レジスタ24−2からCRC現状値を読み出す毎に、その読み出したCRC現状値とCPU1側でのCRC期待値との一致/不一致を判定し、その判定結果をCRC現状値から得られる判定結果(第2の判定結果)とする。

0036

図3にCRC値算出部24−3で行われる動作のタイミングチャートを示す。同図において、(a)〜(h)はCRC値算出部24−3の入出力信号、(i),(j)はCRC値算出部24−3の内部信号である。

0037

CRC値算出部24−3は、CPU1からCRC期待算出コマンドを受け取ると(図3(c)に示すt1点)、CRC期待値の算出を開始する(図3(j)に示すt1点)。そして、CRC期待値の算出を終えると(図3(j)に示すt2〜t3点)、エラー検出レジスタ24−4の値をクリアし(図3(f)に示すt2〜t3点)、CRC現状値の算出を開始する(図3(j)に示すt3点)。

0038

CRC値算出部24−3は、CRC現状値を算出する毎にCRC期待値との比較を行い、算出されたCRC現状値とCRC期待値との不一致を確認すると(図3(j)に示すt4〜t5点)、エラー検出レジスタ24−4の値(異常検出ステータス)を「1」とする(図3(g)に示すt4〜t5点)。

0039

なお、このCRC値算出部24−3で行われる処理動作において、CRC値期待値の算出に要する時間(CRC期待値算出期間)TAとCRC現状値の算出に要する時間(CRC現状値算出期間)TBとは同じである。例えば、CRC値算出対象レジスタ24−1が60バイトであり、1バイトずつCRC算出を行ったとすると、CRCの算出に要する時間は60サイクルとなる。

0040

図4は、上述したIC2側での処理を機能ブロック化した図である。IC2は、レジスタ2Aと、データ書込部2Bと、CRC期待値算出部2Cと、CRC現状値算出部2Dと、CRC現状値記憶部2Eと、CRC期待値記憶部2Fと、一致/不一致判定部2Gと、エラー検出レジスタ2Hとを備えている。

0041

なお、この機能ブロック図において、レジスタ2Aは図1におけるCRC値算出対象レジスタ24−1に相当し、CRC現状値記憶部2EはCRC値算出非対象レジスタ24−2に相当し、エラー検出レジスタ2Hはエラー検出レジスタ24−4に相当する。また、CRC期待値算出部2C、CRC現状値算出部2D、CRC期待値記憶部2Fおよび一致/不一致判定部2Gは、CRC値算出部24−3内の処理機能に対応する。

0042

また、この機能ブロック図において、CRC期待値算出部2CとCRC現状値算出部2Dとは、その処理機能を区別するために2つに分けて示しているが、ハードウェア的に別回路として存在しているわけではなく、共通の回路(同一の回路)とされている。すなわち、この共通の回路において、CRC期待値算出コマンドを受け付けた後に算出したCRC値をCRC期待値と判断してCRC期待値記憶部2Fに格納し、それ以外の時に算出したCRC値をCRC現状値としてCRC現状値記憶部2Eに格納する。つまり、CRC期待値の生成とCRC現状値の生成は全く同じ計算式で算出するので、別回路として存在させる必要はない。CRC期待値とCRC現状値を同時に算出するのであれば、別回路として用意する必要があるが、この例ではCRC期待値とCRC現状値の算出は排他的に実行する。勿論、重複した構成とはなるが、CRC期待値とCRC現状値を算出する回路を別回路として用意してもよい。

0043

このIC2において、データ書込部2Bは、CPU1からのレジスタ書き込みコマンド(データ+コマンド)を受けて、レジスタ2AにCPU1からのデータを書き込む。CRC期待値算出部2Cは、CPU1からのCRC期待値算出コマンドを受けて、レジスタ2Aに書き込まれているデータのCRC期待値を算出する。CRC期待値記憶部2Fは、CRC期待値算出部2Cによって算出されたCRC期待値を記憶する。

0044

CRC現状値算出部2Dは、CRC期待値算出部2CでCRC期待値が算出された後、レジスタ2Aに書き込まれているデータのCRC期待値に対応するCRC現状値の算出を繰り返す。CRC現状値記憶部2Eは、CRC現状値算出部2DによってCRC現状値が算出される毎に、算出されたCRC現状値を更新記憶する。

0045

一致/不一致判定部2Gは、CRC現状値算出部2DによってCRC現状値が算出される毎に、算出されたCRC現状値とCRC期待値との一致/不一致を判定し、その判定結果(「0」/「1」)を第1の判定結果としてエラー検出レジスタ2Hに書き込む。なお、エラー検出レジスタ2Hに書き込まれている値は、CRC期待値算出部2CでのCRC期待値の算出が完了する毎にクリアされる。

0046

図5は上述したIC2側での処理を示すフローチャートである。データ書込部2Bは、CPU1からレジスタ書き込みコマンドが送られてくると(ステップS101のYES)、レジスタ2Aにデータを書き込む(ステップS102)。CRC期待値算出部2Cは、レジスタ書き込みコマンドの発行後、CPU1からCRC期待値算出コマンドが送れてくると(ステップS103のYES)、CRC期待値を算出する(ステップS104)。また、このCRC期待値の算出後、エラー検出レジスタ2Hの値をクリアする(ステップS105)。

0047

CRC現状値算出部2Dは、CRC期待値算出部2CでのCRC期待値の算出が完了すると、CRC現状値の算出を開始する(ステップS106)。一致/不一致判定部2Gは、CRC現状値算出部2DでのCRC現状値の算出が完了すると、この算出したCRC現状値とCRC期待値算出部2Cが算出したCRC期待値との一致/不一致を判定する(ステップS107)。

0048

一致/不一致判定部2Gでの一致/不一致の判定は、CRC現状値算出部2DでCRC現状値が算出される毎に繰り返され(ステップS101→S106→S107の繰り返し)、このCRC現状値の算出の繰り返し中に「不一致」であるとの判定結果が得られた場合、一致/不一致判定部2Gはエラー検出レジスタ2Hの値を「1」とする(ステップS108)。

0049

図6は上述したCPU1側での処理を示すフローチャートである。CPU1は、IC2のリセット解除した後(ステップS201)、IC2に対してレジスタ書き込みコマンドを発行したか否かを確認する(ステップS202)。IC2に対するレジスタ書き込みコマンドの発行を確認すると(ステップS202のYES)、IC2に対してCRC期待値算出コマンドを発行する(ステップS203)。

0050

そして、CPU1は、IC2においてCRC値の算出が完了するのを待って(ステップS204)、CRC現状値記憶部2Eに記憶されているCRC現状値(CRC期待値算出コマンド発行後の最初のCRC現状値)を読み出し、その読み出したCRC現状値をCPU1側でのCRC期待値として保存する(ステップS205)。

0051

そして、CPU1は、エラー検出レジスタ2Hに書き込まれている判定結果(第1の判定結果)およびCRC現状値記憶部2Eに記憶されているCRC現状値を読み出し(ステップS206)、エラー検出レジスタ2Hから読み出した判定結果(第1の判定結果)が「0」で、かつCRC現状値記憶部2Eから読み出したCRC現状値とステップS205で保存したCPU1側のCRC期待値とが一致していた場合(第2の判定結果が「0」であった場合)(ステップS207のYES)、すなわち第1の判定結果が「一致」でかつ第2の判定結果も「一致」であった場合、レジスタ2Aに書き込まれているデータは正常であると判断し、ステップS202に戻る。

0052

CPU1は、IC2に対してレジスタ書き込みコマンドを1度発行すると、次のレジスタ書き込みコマンドを発行するまで、ステップS202,S206,207の処理を繰り返す。このステップS202,S206,S207の処理の繰り返し中、第1の判定結果が「一致」でかつ第2の判定結果も「一致」であるという結果が得られなかった場合(ステップS207のNO)、すなわち第1の判定結果と第2の判定結果の少なくとも一方が「不一致」であった場合、CPU1は、レジスタ2Aに書き込まれているデータに異常が生じているものと判断し、異常処理を行う(ステップS208)。このステップS208での異常処理の内容は、各システムで適切な方法を決定する。

0053

このようにして、本実施の形態のレジスタ異常検出装置100によれば、IC2側での判定結果(第1の判定結果)とCPU1側での判定結果(第2の判定結果)が共に「一致」となった場合にレジスタ2Aに書き込まれているデータが正常であると判断され、その他の場合は異常であると判断されるものとなる。これにより、CPU1として処理能力の高いCPUを用いることなく、異常検出の信頼性を高めることができるようになる。

0054

なお、上述では説明を省略したが、このレジスタ異常検出装置100では、IC2側での第1の判定結果とCPU1側での第2の判定結果とに基づいてレジスタ2Aに書き込まれているデータの異常を検出するか、IC2側での第1の判定結果のみでレジスタ2Aに書き込まれているデータの異常を検出するか、CPU1側での第2の判定結果のみでレジスタ2Aに書き込まれているデータの異常を検出するかについて、選択することが可能とされている。

0055

この場合、CPU1は、レジスタの異常検出方式として第1の方式が選択されている場合には、IC2側での第1の判定結果のみでレジスタ2Aに書き込まれているデータの異常を検出し、第2の方式が選択されている場合には、CPU1側での第2の判定結果のみでレジスタ2Aに書き込まれているデータの異常を検出し、第3の方式が選択されている場合には、IC2側での第1の判定結果とCPU1側での第2の判定結果とに基づいてレジスタ2Aに書き込まれているデータの異常を検出する。

0056

図7に第1の方式が選択されている場合のCPU1側で行われる処理のフローチャートを示す。この場合、CPU1は、IC2のリセットを解除した後(ステップS301)、IC2に対してレジスタ書き込みコマンドを発行したか否かを確認する(ステップS302)。IC2に対するレジスタ書き込みコマンドの発行を確認すると(ステップS303のYES)、IC2に対してCRC期待値算出コマンドを発行する(ステップS303)。

0057

そして、CPU1は、IC2においてCRC値の算出が完了するのを待って(ステップS304)、エラー検出レジスタ2Hに書き込まれている判定結果(第1の判定結果)を読み出し(ステップS305)、エラー検出レジスタ2Hから読み出した判定結果(第1の判定結果)が「1」でなかった場合には(ステップS306のNO)、すなわち第1の判定結果が「0」であった場合には、レジスタ2Aに書き込まれているデータは正常であると判断し、ステップS302に戻る。

0058

CPU1は、IC2に対してレジスタ書き込みコマンドを1度発行すると、次のレジスタ書き込みコマンドを発行するまで、ステップS302,S305,S306の処理を繰り返す。このステップS302,S305,S306の処理の繰り返し中、第1の判定結果が「1」となった場合(ステップS306のYES)、すなわち第1の判定結果が「不一致」となった場合、CPU1は、レジスタ2Aに書き込まれているデータに異常が生じているものと判断し、異常処理を行う(ステップS307)。このステップS307での異常処理の内容は、各システムで適切な方法を決定する。

0059

図8に第2の方式が選択されている場合のCPU1側で行われる処理動作のフローチャートを示す。この場合、CPU1は、IC2のリセットを解除した後(ステップS401)、IC2に対してレジスタ書き込みコマンドを発行したか否かを確認する(ステップS402)。IC2に対するレジスタ書き込みコマンドの発行を確認すると(ステップS403のYES)、IC2に対してCRC期待値算出コマンドを発行する(ステップS403)。

0060

そして、CPU1は、IC2においてCRC値の算出が完了するのを待って(ステップS404)、CRC現状値記憶部2Eに記憶されているCRC現状値(CRC期待値算出コマンド発行後の最初のCRC現状値)を読み出し、その読み出したCRC現状値をCPU1側でのCRC期待値として保存する(ステップS405)。

0061

そして、CPU1は、CRC現状値記憶部2Eに記憶されているCRC現状値を読み出し(ステップS406)、このCRC現状値記憶部2Eから読み出したCRC現状値とステップS405で保存したCPU1側のCRC期待値とが一致していた場合(ステップS407のYES)、すなわち第2の判定結果が「一致」であった場合、レジスタ2Aに書き込まれているデータは正常であると判断し、ステップS402に戻る。

0062

CPU1は、IC2に対してレジスタ書き込みコマンドを1度発行すると、次のレジスタ書き込みコマンドを発行するまで、ステップS402,S406,S407の処理を繰り返す。このステップS402,S406,S407の処理の繰り返し中、第2の判定結果が「一致」であるという結果が得られなかった場合(ステップS407のNO)、すなわち第2の判定結果が「不一致」であった場合、CPU1は、レジスタ2Aに書き込まれているデータに異常が生じているものと判断し、異常処理を行う(ステップS408)。このステップS408での異常処理の内容は、各システムで適切な方法を決定する。

0063

第3の方式が選択されている場合には図6を用いて説明した処理が行われる。なお、必ずしもこのような第1,第2,第3の方式が選択可能な構成としなくてもよく、第3の方式が単独で採用されていても構わない。また、本実施の形態において、CPU1はIC2から異常検出ステータスおよびCRC現状値の少なくとも一方を読み出すが、この読み出した異常検出ステータスやCRC現状値どのように利用するかはユーザ次第である。

0064

また、上述した実施の形態では、CRC値の具体的な算出方法については述べなかったが、実際には多項式としてC「RC-16-CCITT(X^16+X^12+X^5+1)」を使用する。勿論、他の多項式(例えば、「CRC-16」や「CRC-32」)を使用してCRC値を算出してもよい。また、CRCではなく、「MODBUSASCII」のチックサム算出で用いられている「2の補数和の2の補数」を使用するなどしてもよい。

0065

派生効果〕
図1において、CRC値算出対象レジスタ24−1には動作前に必ず任意の値を書き込むため、CRC値算出対象レジスタ24−1に書き込まれているデータのCRC現状値はIC2の動作中、初期値とは異なる値となる。そのため、IC2の動作中にCPU1からCRC現状値を監視することで、ノイズなどの影響で予期せぬリセットがかかっていないかどうかを確認できる。すなわち、リセットがかかればCRC現状値が初期値になることを利用することによって、予期せぬリセットがかかっていないかどうかを確認することができる。

0066

また、図1において、CPU1への異常通知方法として、エラー検出レジスタ24−4の値を通信プロトコルに含めるという方法もある。例えば、図9に示すように、MISO信号の「0x04」を内部レジスタ異常検出と割り当て、IC内部状態もチェックサム付きSPIアクセスのレスポンスに含めてしまうようにする。これにより、CPU1からエラー検出レジスタ24−4をポーリングする頻度下げることができる。

0067

〔実施の形態の拡張
以上、実施の形態を参照して本発明を説明したが、本発明は上記の実施の形態に限定されるものではない。本発明の構成や詳細には、本発明の技術思想の範囲内で当業者が理解し得る様々な変更をすることができる。

0068

1…CPU(演算処理部)、2…IC、21…データ受信回路、22…コマンド制御部、23…データ送信回路、24…内部レジスタ、24−1…CRC値算出対象レジスタ、24−2…CRC値算出非対象レジスタ、24−3…CRC値算出部、24−4…エラー検出レジスタ、2A…レジスタ、2B…データ書込部、2C…CRC期待値算出部、2D…CRC現状値算出部、2E…CRC現状値記憶部、2F…CRC期待値記憶部、2G…一致/不一致判定部、2H…エラー検出レジスタ、100…レジスタ異常検出装置。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ