JP6718294B2 - Register error detector - Google Patents
Register error detector Download PDFInfo
- Publication number
- JP6718294B2 JP6718294B2 JP2016086764A JP2016086764A JP6718294B2 JP 6718294 B2 JP6718294 B2 JP 6718294B2 JP 2016086764 A JP2016086764 A JP 2016086764A JP 2016086764 A JP2016086764 A JP 2016086764A JP 6718294 B2 JP6718294 B2 JP 6718294B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- crc
- value
- current value
- determination result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004364 calculation method Methods 0.000 claims description 112
- 230000005856 abnormality Effects 0.000 claims description 66
- 238000001514 detection method Methods 0.000 claims description 64
- 238000012545 processing Methods 0.000 claims description 49
- 238000007689 inspection Methods 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000002159 abnormal effect Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Detection And Correction Of Errors (AREA)
- Debugging And Monitoring (AREA)
- Error Detection And Correction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は、レジスタに書き込まれているデータの異常を検出するレジスタ異常検出装置に関する。 The present invention relates to a register abnormality detection device that detects an abnormality in data written in a register.
従来より、マイクロコンピュータを用いて各種の処理を行う電子回路では、演算処理部(CPU(Central Processing Unit))から送られてくるデータをIC(Integrated Circuit)内部のレジスタに書き込んでいる。このマイクロコンピュータを用いた電子回路において、IC内部のレジスタに書き込まれたデータ(レジスタ値)は、ノイズなどの要因で意図せずに書き変わってしまうことがある。 2. Description of the Related Art Conventionally, in an electronic circuit that performs various processes using a microcomputer, data sent from an arithmetic processing unit (CPU (Central Processing Unit)) is written in a register inside an IC (Integrated Circuit). In an electronic circuit using this microcomputer, the data (register value) written in the register inside the IC may be unintentionally rewritten due to factors such as noise.
このため、従来においては、下記の(1),(2)のような処理をCPU側で行わせるようにしていた。
(1)動作中にレジスタ値を常時ポーリングすることにより、レジスタ値が変化していないかどうかを監視し、レジスタへの書き込みを行っていないにも関わらずレジスタ値が変化していた場合は、レジスタ値(レジスタに書き込まれているデータ)に異常が生じていると判断し、正しい値を書き込む。
(2)レジスタ初期設定後、初期設定時と同じ値を一定間隔で書き続ける。これにより、レジスタ値がノイズなどの影響で変化したとしても、レジスタ値が正しい値で上書きされる。
For this reason, conventionally, the CPU has to perform the following processes (1) and (2).
(1) By constantly polling the register value during operation, it is monitored whether the register value has changed. If the register value has changed even though the register is not being written, Judge that the register value (data written in the register) is abnormal and write the correct value.
(2) After register initialization, continue writing the same value as at initialization at regular intervals. As a result, even if the register value changes due to noise or the like, the register value is overwritten with the correct value.
しかしながら、上記の(1),(2)のような処理をCPU側で行わせるためには、処理能力の高いCPUを選定する必要がある。また、レジスタに書き込まれているデータの異常(レジスタ異常)を確認するためにCPUからICへのアクセスが増加することで、消費電力も増大してしまう。 However, in order to cause the CPU to perform the above processes (1) and (2), it is necessary to select a CPU having high processing capability. Further, since the number of accesses from the CPU to the IC increases in order to confirm the abnormality of the data written in the register (register abnormality), the power consumption also increases.
なお、CPU側ではなくIC側に、下記の(3),(4)のような仕組みを内蔵させた例もある(例えば、非特許文献1,2参照)。 In addition, there is an example in which the following mechanisms (3) and (4) are incorporated in the IC side instead of the CPU side (for example, see Non-Patent Documents 1 and 2).
(3)2つのレジスタを用意し、片方のレジスタを動作設定用レジスタ、もう一方のレジスタを期待値格納用レジスタとする。CPUから動作設定用レジスタに対して書き込みを行うと同じ値が期待値格納用レジスタにもコピーされる。CPUから動作設定用レジスタへの書き込みが発生していないにも関わらず、動作設定用レジスタに書き込まれている値と期待値格納用レジスタに書き込まれている値とが異なった場合に、エラー検出レジスタを用いてCPUに対してレジスタ異常を通知する。 (3) Two registers are prepared, one of which is an operation setting register and the other of which is an expected value storage register. When the CPU writes to the operation setting register, the same value is copied to the expected value storage register. Error detection is performed when the value written to the operation setting register and the value written to the expected value storage register are different, even though the CPU has not written to the operation setting register. A register error is notified to the CPU using the register.
(4)レジスタに書き込まれているデータのCRC(Cyclic Redundancy Code)値を繰り返し算出し、CPUからレジスタへの書き込みをしていないにも関わらず、算出されたCRC値(CRC現状値)が期待値(CRC期待値)と不一致となった場合に、エラー検出レジスタを用いてCPUに対してレジスタ異常を通知する。なお、CRC値とは、レジスタに書き込まれているデータの異常を検出するための検査用の指標の一つであり、データを値とみなしてある定数で割った余り(余剰)として定義される値である。また、CRC期待値とは、レジスタに書き込んだデータの本来あるべき値として定義されるCRC値である。 (4) The CRC (Cyclic Redundancy Code) value of the data written in the register is repeatedly calculated, and the calculated CRC value (CRC current value) is expected even though the CPU does not write to the register. When the value (CRC expected value) does not match, a register abnormality is notified to the CPU using the error detection register. The CRC value is one of the indicators for inspection for detecting an abnormality in the data written in the register, and is defined as the remainder (surplus) obtained by dividing the data by a certain constant. It is a value. Further, the CRC expected value is a CRC value defined as the value that the data written in the register should have.
しかしながら、上記の(3)の仕組みでは、通常の2倍のレジスタを使用するため面積的に不利となる。また、上記の(4)の仕組みでは、異常検出に必要なレジスタの数を減らすことはできるが、エラー検出レジスタ自体にビットが化けるなどの異常が発生してしまった場合、誤った検出を行ってしまう可能性がある。すなわち、エラー検出レジスタ自体の異常発生により、正常であるにも関わらず異常であると判断されてしまうことがある。逆に、異常であるにも関わらず正常であると判断されてしまうことがある。 However, the above-mentioned mechanism (3) is disadvantageous in area because it uses twice as many registers as usual. Also, with the mechanism of (4) above, the number of registers necessary for abnormality detection can be reduced, but if an abnormality such as a garbled bit occurs in the error detection register itself, erroneous detection is performed. There is a possibility that In other words, due to the occurrence of an abnormality in the error detection register itself, it may be determined to be abnormal although it is normal. On the contrary, it may be judged to be normal despite being abnormal.
本発明は、このような課題を解決するためになされたもので、その目的とするところは、処理能力の高いCPUを用いることなく、異常検出の信頼性を高めることが可能なレジスタ異常検出装置を提供することにある。 The present invention has been made to solve such a problem, and an object of the present invention is to improve the reliability of abnormality detection without using a CPU having a high processing capacity. To provide.
このような目的を達成するために本発明は、演算処理部(1)と、この演算処理部(1)から送られてくるデータが書き込まれるレジスタ(2A)とを備え、レジスタ(2A)に書き込まれているデータの異常を検出するレジスタ異常検出装置(100)において、演算処理部(1)から送られてきたデータをレジスタ(2A)に書き込むデータ書込部(2B)と、レジスタ(2A)に書き込まれているデータの異常を検出するための検査用の指標の期待値を算出する期待値算出部(2C)と、レジスタ(2A)に書き込まれているデータの検査用の指標の期待値に対応する現状値の算出を繰り返す現状値算出部(2D)と、現状値算出部(2D)によって検査用の指標の現状値が算出される毎に、算出された検査用の指標の現状値を更新記憶する現状値記憶部(2E)と、現状値算出部(2D)によって検査用の指標の現状値が算出される毎に、算出された検査用の指標の現状値と期待値との一致/不一致を判定し、その判定結果を第1の判定結果としてエラー検出レジスタ(2H)に書き込む一致/不一致判定部(2G)とを備え、演算処理部(1)は、エラー検出レジスタ(2H)に書き込まれている第1の判定結果および現状値記憶部(2E)に記憶されている検査用の指標の現状値を読み出し、現状値記憶部(2E)から現状値を読み出す毎に、その読み出した現状値と演算処理部(1)で保存される期待値との一致/不一致を判定し、その判定結果を第2の判定結果とし、演算処理部(1)は、第1の判定結果が「一致」かつ第2の判定結果が「一致」である場合以外の場合にレジスタ(2A)に書き込まれているデータの異常を検出することを特徴とする。
The present invention in order to achieve the above object, the arithmetic processing section (1), and a register (2A) to the arithmetic processing unit (1) et feeding is come data is written, the register (2A) In a register abnormality detecting device (100) for detecting an abnormality of data written in, a data writing unit (2B) for writing the data sent from the arithmetic processing unit (1) to the register (2A), and a register ( 2A) includes an expected value calculation unit (2C) for calculating an expected value of an index for inspection for detecting an abnormality in the data written in 2A), and an index for inspection of the data written in the register (2A). The present value calculation unit (2D) that repeats calculation of the present value corresponding to the expected value, and each time the present value of the indicator for inspection is calculated by the present value calculation unit (2D), the calculated indicator for inspection is calculated. Every time the current value storage unit (2E) that updates and stores the current value and the current value calculation unit (2D) calculates the current value of the inspection index, the calculated current value and expected value of the inspection index And a match/mismatch determination unit (2G) that writes the determination result as a first determination result to the error detection register (2H). to read out the first determination result and the current value of the index for inspection which is stored in the current value storage unit (2E) written in the (2H), reads the current value from the current value storage unit (2E) For each time, the match/mismatch between the read current value and the expected value stored in the arithmetic processing unit (1) is determined, and the determination result is used as the second determination result. It is characterized in that the abnormality of the data written in the register (2A) is detected except when the determination result of 1 is “match” and the second determination result is “match” .
本発明において、演算処理部(1)から送られてきたデータがレジスタ(2A)に書き込まれると、このレジスタ(2A)に書き込まれているデータの異常を検出するための検査用の指標の期待値(CRC期待値)が算出される。そして、この検査用の指標の期待値の算出後、レジスタ(2A)に書き込まれているデータの検査用の指標の期待値に対応する現状値(CRC現状値)の算出が繰り返され、この算出された検査用の指標の現状値が現状値記憶部(2E)に更新記憶(上書き)される。また、検査用の指標の現状値の算出が繰り返される毎に、算出された検査用の指標の現状値と期待値との一致/不一致が判定され、その判定結果が第1の判定結果としてエラー検出レジスタ(2H)に書き込まれる。 In the present invention, when the data sent from the arithmetic processing unit (1) is written in the register (2A), expectation of an index for inspection for detecting an abnormality of the data written in the register (2A). A value (CRC expected value) is calculated. After the calculation of the expected value of the inspection index, the calculation of the current value (CRC current value) corresponding to the expected value of the inspection index of the data written in the register (2A) is repeated, and this calculation is performed. The current value of the index for inspection thus obtained is updated and stored (overwritten) in the current value storage unit (2E). Also, each time the calculation of the current value of the inspection index is repeated, a match/mismatch between the calculated current value of the inspection index and the expected value is determined, and the determination result is an error as the first determination result. Written to the detection register (2H).
演算処理部(1)は、エラー検出レジスタ(2H)に書き込まれている第1の判定結果および現状値記憶部(2E)に記憶されている検査用の指標の現状値から得られる第2の判定結果に基づいて、レジスタ(2A)に書き込まれているデータの異常を検出する。例えば、第1の判定結果が「一致」でかつ第2の判定結果も「一致」であった場合にレジスタ(2A)に書き込まれているデータが正常であると判断し、その他の場合は異常であると判断する。 The arithmetic processing unit (1) obtains a second determination value, which is obtained from the first determination result written in the error detection register (2H) and the present value of the index for inspection stored in the present value storage unit (2E). The abnormality of the data written in the register (2A) is detected based on the determination result. For example, when the first determination result is “match” and the second determination result is “match”, it is determined that the data written in the register (2A) is normal, and in other cases, it is abnormal. It is determined that
本発明において、演算処理部(1)は、エラー検出レジスタ(2H)に書き込まれている第1の判定結果および現状値記憶部(2E)に記憶されている検査用の指標の現状値の少なくとも一方を読み出す。これにより、例えば、現状値記憶部(2E)に記憶されている検査用の指標の現状値から第2の判定結果を得るようにし、この検査用の指標の現状値から得られる第2の判定結果とエラー検出レジスタ(2H)に書き込まれている第1の判定結果とに基づいてレジスタ(2A)に書き込まれているデータの異常を検出するようにすることができる。 In the present invention, the arithmetic processing section (1) at least the first determination result written in the error detection register (2H) and the current value of the index for inspection stored in the current value storage section (2E). Read one. Thereby, for example, the second determination result is obtained from the current value of the inspection index stored in the current value storage unit (2E), and the second determination obtained from the current value of the inspection index is performed. The abnormality of the data written in the register (2A) can be detected based on the result and the first determination result written in the error detection register (2H).
この場合、現状値記憶部(2E)から読み出した検査用の指標の現状値から第2の判定結果を得るが、例えば、現状値記憶部(2E)に記憶されている検査用の指標の現状値を定期的に読み出すようにし、この現状値記憶部(2E)から読み出した最初の検査用の指標の現状値を演算処理部(1)側での期待値とし、以降、現状値記憶部(2E)から検査用の指標の現状値を読み出す毎に、その読み出した検査用の指標の現状値と演算処理部(1)側での期待値との一致/不一致を判定し、その判定結果を第2の判定結果とする。 In this case, the second determination result is obtained from the current value of the index for inspection read from the current value storage unit (2E). For example, the current status of the index for inspection stored in the current value storage unit (2E). The value is read out periodically, and the current value of the first index for inspection read from the current value storage unit (2E) is set as the expected value on the side of the arithmetic processing unit (1). Every time the current value of the inspection index is read from 2E), a match/mismatch between the read current value of the inspection index and the expected value on the arithmetic processing unit (1) side is determined, and the determination result is determined. This is the second determination result.
また、この場合、第1の判定結果と第2の判定結果とに基づいてレジスタ(2A)に書き込まれているデータの異常を検出するが、第1の判定結果のみでレジスタ(2A)に書き込まれているデータの異常を検出するようにしてもよく、第2の判定結果のみでレジスタ(2A)に書き込まれているデータの異常を検出するようにしてもよい。例えば、レジスタの異常検出方式として第1,第2,第3の方式を選択可能とし、第1の方式が選択されている場合には第1の判定結果のみで異常を検出するようにし、第2の方式が選択されている場合には第2の判定結果のみで異常を検出するようにし、第3の方式が選択されている場合には第1の判定結果と第2の判定結果とに基づいて異常を検出するようにする。 Further, in this case, although the abnormality of the data written in the register (2A) is detected based on the first determination result and the second determination result, only the first determination result is written in the register (2A). The abnormality in the data written in the register (2A) may be detected only by the second determination result. For example, the first, second, and third methods can be selected as the register abnormality detection method, and when the first method is selected, the abnormality is detected only by the first determination result. When the second method is selected, the abnormality is detected only by the second determination result, and when the third method is selected, the first determination result and the second determination result are set. Based on this, the abnormality is detected.
また、本発明において、エラー検出レジスタ(2H)に書き込まれている第1の判定結果は、演算処理部(1)が定期的に読み出すようにしてもよいし、チェックサム付きSPI(Serial Peripheral Interface)アクセスのレスポンスバイトに含めるなど、通信プロトコルに含めて演算処理部(1)に送られてくるものとしてもよい。 Further, in the present invention, the first determination result written in the error detection register (2H) may be periodically read by the arithmetic processing unit (1), or an SPI (Serial Peripheral Interface) with checksum may be read. ) It may be included in the communication protocol such as included in the response byte of the access and sent to the arithmetic processing unit (1).
なお、上記説明では、一例として、発明の構成要素に対応する図面上の構成要素を、括弧を付した参照符号によって示している。 In the above description, as an example, the constituent elements in the drawings corresponding to the constituent elements of the invention are indicated by reference numerals in parentheses.
本発明によれば、エラー検出レジスタに書き込まれている第1の判定結果および現状値記憶部に記憶されている検査用の指標の現状値の少なくとも一方を読み出すようにしたので、例えば、現状値記憶部に記憶されている検査用の指標の現状値から第2の判定結果を得るようにし、この検査用の指標の現状値から得られる第2の判定結果とエラー検出レジスタに書き込まれている第1の判定結果とに基づいてレジスタに書き込まれているデータの異常を検出するなどして、処理能力の高いCPUを用いることなく、異常検出の信頼性を高めることが可能となる。 According to the present invention, at least one of the first determination result written in the error detection register and the present value of the index for inspection stored in the present value storage unit is read out. The second determination result is obtained from the current value of the inspection index stored in the storage unit, and the second determination result obtained from the current value of the inspection index and the error detection register are written. By detecting an abnormality of the data written in the register based on the first determination result, it is possible to improve the reliability of the abnormality detection without using a CPU having a high processing capacity.
以下、本発明の実施の形態を図面に基づいて詳細に説明する。図1は本発明の実施の形態に係るレジスタ異常検出装置100の要部の構成を示す図である。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 is a diagram showing a configuration of a main part of a register abnormality detection device 100 according to an embodiment of the present invention.
図1において、1はCPU(演算処理部)、2はICである。IC2には、データ受信回路21と、コマンド制御部22と、データ送信回路23と、内部レジスタ24とが設けられている。内部レジスタ24には、CRC値算出対象レジスタ24−1と、CRC値算出非対象レジスタ24−2と、CRC値算出部24−3と、エラー検出レジスタ24−4とが設けられている。 In FIG. 1, 1 is a CPU (arithmetic processing unit), and 2 is an IC. The IC 2 is provided with a data receiving circuit 21, a command control unit 22, a data transmitting circuit 23, and an internal register 24. The internal register 24 is provided with a CRC value calculation target register 24-1, a CRC value calculation non-target register 24-2, a CRC value calculation unit 24-3, and an error detection register 24-4.
このレジスタ異常検出装置100において、CPU1から送られてくるデータはデータ受信回路21で受信され、シリアルパラレル変換された後、コマンド制御部22を介して内部レジスタ24へ送られ、CRC値算出対象レジスタ24−1に書き込まれる。 In the register abnormality detecting device 100, the data sent from the CPU 1 is received by the data receiving circuit 21, converted into serial-to-parallel, and then sent to the internal register 24 via the command control unit 22 to be a CRC value calculation target register. 24-1.
内部レジスタ24において、CRC値算出部24−3は、CRC値算出対象レジスタ24−1に書き込まれたデータのCRC期待値およびCRC現状値を算出し、算出したCRC現状値とCRC期待値との一致/不一致を判定し、その判定結果をエラー検出レジスタ24−4に書き込む。 In the internal register 24, the CRC value calculation unit 24-3 calculates the CRC expected value and the CRC current value of the data written in the CRC value calculation target register 24-1, and calculates the calculated CRC current value and CRC expected value. A match/mismatch is determined, and the determination result is written in the error detection register 24-4.
また、CRC値算出非対象レジスタ24−2には、CRC値算出部24−3によって算出されたCRC現状値が書き込まれる。このCRC値算出非対象レジスタ24−2に書き込まれたCRC現状値およびエラー検出レジスタ24−4に書き込まれた判定結果はCPU1によって定期的に読み出される。 Further, the CRC current value calculated by the CRC value calculation unit 24-3 is written in the CRC value calculation non-target register 24-2. The CRC present value written in the CRC value calculation non-target register 24-2 and the determination result written in the error detection register 24-4 are periodically read by the CPU 1.
なお、図1中、CSはチップセレクト信号、SCLKはシリアルクロック信号、MISO(Master In Slave Out)はマスタ側入力・スレーブ側出力信号、MOSI(Master Output Slave Input)はマスタ側出力・スレーブ側入力信号、REG_ERR_DETはエラー検出レジスタ24−4から読み出される異常検出ステータス(判定結果)である。 In FIG. 1, CS is a chip select signal, SCLK is a serial clock signal, MISO (Master In Slave Out) is a master side input/slave side output signal, and MOSI (Master Output Slave Input) is a master side output/slave side input. The signal, REG_ERR_DET, is the abnormality detection status (judgment result) read from the error detection register 24-4.
図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)。 FIG. 2 shows a state machine diagram inside the CRC value calculation unit 24-3. When the CRC calculation enable is valid, the CRC value calculation unit 24-3 calculates that the current CRC value of the data written in the CRC value calculation target register 24-1 (CRC current value) is calculated (state S1). The comparison between the CRC current value and the CRC expected value is repeated (state S2), but when the CRC expected value calculation command is received from the CPU 1, calculation of the CRC expected value is started (state S3). When the calculation of the CRC expected value is completed, the value of the error detection register 24-4 is cleared to "0" (state S4), and the calculation of the CRC current value is repeated (state S1).
CRC値算出部24−3は、このCRC現状値の算出の繰り返し中、ノイズなどの異常により、CRC値算出対象レジスタ24−1に書き込まれているデータの値が書き変わり、CRC現状値とCRCS期待値との不一致が発生すると、エラー検出レジスタ24−4の値に「1」をセットする。 The CRC value calculation unit 24-3 rewrites the value of the data written in the CRC value calculation target register 24-1 due to an abnormality such as noise during the repetition of the calculation of the CRC current value, and the CRC current value and the CRCCS. When a mismatch with the expected value occurs, the value of the error detection register 24-4 is set to "1".
このステータスマシン図からも分かるように、CRC値算出部24−3は、CRC現状値の算出を繰り返す毎に、算出したCRC現状値とCRC期待値との一致/不一致を判定し、その判定結果をエラー検出レジスタ24−4に書き込む。 As can be seen from this status machine diagram, the CRC value calculation unit 24-3 determines whether the calculated CRC current value and the expected CRC value match/mismatch each time the calculation of the CRC current value is repeated, and the determination result Is written in the error detection register 24-4.
本実施の形態において、エラー検出レジスタ24−4の値は最初は「0」とされており、CRC現状値とCRC期待値との間に不一致が生じると、このエラー検出レジスタ24−4の値が「1」に書き替えられる。すなわち、エラー検出レジスタ24−4の値(異常検出ステータス)は、CRC現状値とCRC期待値との一致/不一致の判定結果が「一致」である場合には「0」とされ、「不一致」の場合には「1」とされる。「一致」である場合には、エラー検出レジスタ24−4の値は書き替えられないが、結果的には「0」を書き込んでいると言える。 In the present embodiment, the value of the error detection register 24-4 is initially set to "0", and when a mismatch between the CRC current value and the CRC expected value occurs, the value of the error detection register 24-4 is changed. Is rewritten as "1". That is, the value of the error detection register 24-4 (abnormality detection status) is set to "0" when the determination result of the match/mismatch between the current CRC value and the expected CRC value is "match", and "mismatch". In the case of, it is set to "1". In the case of “match”, the value of the error detection register 24-4 cannot be rewritten, but it can be said that “0” is eventually written.
なお、図2において、「IDLE」は初期状態(状態S0)、「CALC」はCRC現状値の算出を行う状態(状態S1)、「RESULT」はCRC現状値とCRC期待値との比較を行う状態(状態S2)、「REF_CALC」はCRC期待値の算出を行う状態(状態S3)、「REF_RESULT」は異常検出ステータスのクリアを行う状態(状態S4)を示す。 In FIG. 2, “IDLE” is the initial state (state S0), “CALC” is the state in which the CRC current value is calculated (state S1), and “RESULT” is the comparison between the CRC current value and the expected CRC value. State (state S2), "REF_CALC" indicates a state in which the expected CRC value is calculated (state S3), and "REF_RESULT" indicates a state in which the abnormality detection status is cleared (state S4).
また、図2において、状態S1でCRC現状値が繰り返し算出されるが、このCRC現状値は算出される毎にCRC値算出非対象レジスタ24−2に更新記憶(上書き)される。また、状態S3でCRC期待値が算出されるが、このCRC期待値はCRC期待値算出コマンドにより1回だけ求められるものであり、CRC値算出部24−3内のメモリに記憶される。 Further, in FIG. 2, the CRC current value is repeatedly calculated in the state S1, but this CRC current value is updated and stored (overwritten) in the CRC value calculation non-target register 24-2 every time it is calculated. Further, the CRC expected value is calculated in the state S3, but this CRC expected value is obtained only once by the CRC expected value calculation command and is stored in the memory in the CRC value calculation unit 24-3.
図1において、CPU1は、エラー検出レジスタ24−4に書き込まれている判定結果およびCRC値算出非対象レジスタ24−2に記憶されているCRC現状値を定期的に読み出す。そして、この読み出した判定結果(第1の判定結果)およびCRC現状値から得られる判定結果(第2の判定結果)に基づいてCRC値算出対象レジスタ24−1に書き込まれているデータの異常を検出する。例えば、第1の判定結果が「一致」でかつ第2の判定結果も「一致」であった場合にCRC値算出対象レジスタ24−1に書き込まれているデータが正常であると判断し、その他の場合は異常であると判断する。 In FIG. 1, the CPU 1 periodically reads the determination result written in the error detection register 24-4 and the CRC present value stored in the CRC value calculation non-target register 24-2. Then, based on the read judgment result (first judgment result) and the judgment result (second judgment result) obtained from the CRC present value, the abnormality of the data written in the CRC value calculation target register 24-1 is detected. To detect. For example, when the first determination result is “match” and the second determination result is “match”, it is determined that the data written in the CRC value calculation target register 24-1 is normal, and In case of, it is judged to be abnormal.
本実施の形態において、CPU1がIC2から読み出せるCRC値は、CRC現状値のみとされている。すなわち、CPU1は、CRC値算出対象レジスタ24−1に書き込んだデータのCRC期待値とIC2から読み出したCRC現状値との一致/不一致の判定結果をCRC現状値から得られる判定結果(第2の判定結果)として求めるわけだが、CRC値算出部24−3で算出されたCRC期待値は読み出せない。 In the present embodiment, the CRC value that the CPU 1 can read from the IC 2 is the CRC current value only. That is, the CPU 1 obtains the determination result of the match/mismatch between the CRC expected value of the data written in the CRC value calculation target register 24-1 and the CRC current value read from the IC 2 from the CRC current value (second However, the CRC expected value calculated by the CRC value calculation unit 24-3 cannot be read.
この場合、CPU1側でCRC値算出対象レジスタ24−1に書き込むデータのCRC期待値を求めておいてもよいが、CPU1の処理負荷が増える。そこで、本実施の形態では、CPU1において、CRC値算出非対象レジスタ24−2から読み出した最初のCRC現状値(CRC期待値算出コマンド発行後の最初のCRC現状値)をCPU1側でのCRC期待値とし、以降、CRC値算出非対象レジスタ24−2からCRC現状値を読み出す毎に、その読み出したCRC現状値とCPU1側でのCRC期待値との一致/不一致を判定し、その判定結果をCRC現状値から得られる判定結果(第2の判定結果)とする。 In this case, the CPU 1 side may obtain the CRC expected value of the data to be written in the CRC value calculation target register 24-1, but the processing load on the CPU 1 increases. Therefore, in the present embodiment, in the CPU 1, the first CRC current value read from the CRC value calculation non-target register 24-2 (first CRC current value after issuing the CRC expected value calculation command) is the CRC expectation on the CPU 1 side. Each time the CRC current value is read from the CRC value calculation non-target register 24-2, it is determined whether the read CRC current value and the expected CRC value on the CPU 1 side match or not, and the determination result is obtained. The determination result (second determination result) obtained from the CRC current value is used.
図3にCRC値算出部24−3で行われる動作のタイミングチャートを示す。同図において、(a)〜(h)はCRC値算出部24−3の入出力信号、(i),(j)はCRC値算出部24−3の内部信号である。 FIG. 3 shows a timing chart of the operation performed by the CRC value calculation unit 24-3. In the figure, (a) to (h) are input/output signals of the CRC value calculation unit 24-3, and (i) and (j) are internal signals of the CRC value calculation unit 24-3.
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点)。 Upon receiving the CRC expected calculation command from the CPU 1 (t1 point shown in FIG. 3C), the CRC value calculation unit 24-3 starts calculating the CRC expected value (t1 point shown in FIG. 3J). Then, when the calculation of the CRC expected value is completed (t2 to t3 points shown in FIG. 3(j)), the value of the error detection register 24-4 is cleared (t2 to t3 points shown in FIG. 3(f)), and the CRC is The calculation of the current value is started (point t3 shown in FIG. 3(j)).
CRC値算出部24−3は、CRC現状値を算出する毎にCRC期待値との比較を行い、算出されたCRC現状値とCRC期待値との不一致を確認すると(図3(j)に示すt4〜t5点)、エラー検出レジスタ24−4の値(異常検出ステータス)を「1」とする(図3(g)に示すt4〜t5点)。 The CRC value calculation unit 24-3 compares the CRC current value with the CRC expected value every time the CRC current value is calculated, and confirms the mismatch between the calculated CRC current value and the CRC expected value (shown in FIG. 3(j)). (t4 to t5 points), and the value of the error detection register 24-4 (abnormality detection status) is set to "1" (t4 to t5 points shown in FIG. 3G).
なお、このCRC値算出部24−3で行われる処理動作において、CRC値期待値の算出に要する時間(CRC期待値算出期間)TAとCRC現状値の算出に要する時間(CRC現状値算出期間)TBとは同じである。例えば、CRC値算出対象レジスタ24−1が60バイトであり、1バイトずつCRC算出を行ったとすると、CRCの算出に要する時間は60サイクルとなる。 In the processing operation performed by the CRC value calculation unit 24-3, the time required to calculate the CRC value expected value (CRC expected value calculation period) TA and the time required to calculate the CRC current value (CRC current value calculation period) It is the same as TB. For example, if the CRC value calculation target register 24-1 has 60 bytes and CRC calculation is performed byte by byte, the time required to calculate the CRC is 60 cycles.
図4は、上述したIC2側での処理を機能ブロック化した図である。IC2は、レジスタ2Aと、データ書込部2Bと、CRC期待値算出部2Cと、CRC現状値算出部2Dと、CRC現状値記憶部2Eと、CRC期待値記憶部2Fと、一致/不一致判定部2Gと、エラー検出レジスタ2Hとを備えている。 FIG. 4 is a diagram in which the above-described processing on the IC2 side is formed into functional blocks. The IC 2 has a register 2A, a data writing unit 2B, a CRC expected value calculation unit 2C, a CRC current value calculation unit 2D, a CRC current value storage unit 2E, a CRC expected value storage unit 2F, and a match/mismatch determination. The unit 2G and the error detection register 2H are provided.
なお、この機能ブロック図において、レジスタ2Aは図1におけるCRC値算出対象レジスタ24−1に相当し、CRC現状値記憶部2EはCRC値算出非対象レジスタ24−2に相当し、エラー検出レジスタ2Hはエラー検出レジスタ24−4に相当する。また、CRC期待値算出部2C、CRC現状値算出部2D、CRC期待値記憶部2Fおよび一致/不一致判定部2Gは、CRC値算出部24−3内の処理機能に対応する。 In this functional block diagram, the register 2A corresponds to the CRC value calculation target register 24-1 in FIG. 1, the CRC current value storage unit 2E corresponds to the CRC value calculation non-target register 24-2, and the error detection register 2H. Corresponds to the error detection register 24-4. Further, the CRC expected value calculation unit 2C, the CRC current value calculation unit 2D, the CRC expected value storage unit 2F, and the match/mismatch determination unit 2G correspond to the processing functions in the CRC value calculation unit 24-3.
また、この機能ブロック図において、CRC期待値算出部2CとCRC現状値算出部2Dとは、その処理機能を区別するために2つに分けて示しているが、ハードウェア的に別回路として存在しているわけではなく、共通の回路(同一の回路)とされている。すなわち、この共通の回路において、CRC期待値算出コマンドを受け付けた後に算出したCRC値をCRC期待値と判断してCRC期待値記憶部2Fに格納し、それ以外の時に算出したCRC値をCRC現状値としてCRC現状値記憶部2Eに格納する。つまり、CRC期待値の生成とCRC現状値の生成は全く同じ計算式で算出するので、別回路として存在させる必要はない。CRC期待値とCRC現状値を同時に算出するのであれば、別回路として用意する必要があるが、この例ではCRC期待値とCRC現状値の算出は排他的に実行する。勿論、重複した構成とはなるが、CRC期待値とCRC現状値を算出する回路を別回路として用意してもよい。 Further, in this functional block diagram, the CRC expected value calculation unit 2C and the CRC current value calculation unit 2D are shown as two in order to distinguish their processing functions, but they are present as separate circuits in terms of hardware. It does not mean that it is a common circuit (the same circuit). That is, in this common circuit, the CRC value calculated after receiving the CRC expected value calculation command is determined to be the CRC expected value and stored in the CRC expected value storage unit 2F, and the CRC value calculated at other times is stored as the CRC present state. The value is stored in the CRC current value storage unit 2E as a value. That is, since the generation of the CRC expected value and the generation of the CRC current value are calculated by the same calculation formula, it is not necessary to exist as a separate circuit. If the CRC expected value and the CRC present value are calculated at the same time, it is necessary to prepare them as separate circuits, but in this example, the calculation of the CRC expected value and the CRC present value is executed exclusively. Of course, although the configuration is duplicated, a circuit for calculating the CRC expected value and the CRC current value may be prepared as a separate circuit.
このIC2において、データ書込部2Bは、CPU1からのレジスタ書き込みコマンド(データ+コマンド)を受けて、レジスタ2AにCPU1からのデータを書き込む。CRC期待値算出部2Cは、CPU1からのCRC期待値算出コマンドを受けて、レジスタ2Aに書き込まれているデータのCRC期待値を算出する。CRC期待値記憶部2Fは、CRC期待値算出部2Cによって算出されたCRC期待値を記憶する。 In the IC 2, the data writing unit 2B receives the register write command (data+command) from the CPU 1 and writes the data from the CPU 1 to the register 2A. The CRC expected value calculation unit 2C receives the CRC expected value calculation command from the CPU 1 and calculates the CRC expected value of the data written in the register 2A. The CRC expected value storage unit 2F stores the CRC expected value calculated by the CRC expected value calculation unit 2C.
CRC現状値算出部2Dは、CRC期待値算出部2CでCRC期待値が算出された後、レジスタ2Aに書き込まれているデータのCRC期待値に対応するCRC現状値の算出を繰り返す。CRC現状値記憶部2Eは、CRC現状値算出部2DによってCRC現状値が算出される毎に、算出されたCRC現状値を更新記憶する。 The CRC current value calculation unit 2D repeats the calculation of the CRC current value corresponding to the CRC expected value of the data written in the register 2A after the CRC expected value calculation unit 2C calculates the CRC expected value. The CRC current value storage unit 2E updates and stores the calculated CRC current value every time the CRC current value calculation unit 2D calculates the CRC current value.
一致/不一致判定部2Gは、CRC現状値算出部2DによってCRC現状値が算出される毎に、算出されたCRC現状値とCRC期待値との一致/不一致を判定し、その判定結果(「0」/「1」)を第1の判定結果としてエラー検出レジスタ2Hに書き込む。なお、エラー検出レジスタ2Hに書き込まれている値は、CRC期待値算出部2CでのCRC期待値の算出が完了する毎にクリアされる。 Each time the CRC current value calculation unit 2D calculates the CRC current value, the match/mismatch determination unit 2G determines whether the calculated CRC current value and the CRC expected value match/mismatch, and the determination result ("0 “/“1”) is written in the error detection register 2H as the first determination result. The value written in the error detection register 2H is cleared every time the CRC expected value calculation unit 2C completes the calculation of the CRC expected value.
図5は上述したIC2側での処理を示すフローチャートである。データ書込部2Bは、CPU1からレジスタ書き込みコマンドが送られてくると(ステップS101のYES)、レジスタ2Aにデータを書き込む(ステップS102)。CRC期待値算出部2Cは、レジスタ書き込みコマンドの発行後、CPU1からCRC期待値算出コマンドが送れてくると(ステップS103のYES)、CRC期待値を算出する(ステップS104)。また、このCRC期待値の算出後、エラー検出レジスタ2Hの値をクリアする(ステップS105)。 FIG. 5 is a flowchart showing the processing on the IC2 side described above. When the register writing command is sent from the CPU 1 (YES in step S101), the data writing unit 2B writes the data in the register 2A (step S102). When the CRC expected value calculation command is sent from the CPU 1 after issuing the register write command (YES in step S103), the CRC expected value calculation unit 2C calculates the CRC expected value (step S104). After calculating the CRC expected value, the value of the error detection register 2H is cleared (step S105).
CRC現状値算出部2Dは、CRC期待値算出部2CでのCRC期待値の算出が完了すると、CRC現状値の算出を開始する(ステップS106)。一致/不一致判定部2Gは、CRC現状値算出部2DでのCRC現状値の算出が完了すると、この算出したCRC現状値とCRC期待値算出部2Cが算出したCRC期待値との一致/不一致を判定する(ステップS107)。 The CRC current value calculation unit 2D starts calculation of the CRC current value when the calculation of the CRC expected value by the CRC expected value calculation unit 2C is completed (step S106). When the CRC current value calculation unit 2D completes the calculation of the CRC current value, the match/mismatch determination unit 2G determines whether the calculated CRC current value matches the CRC expected value calculated by the CRC expected value calculation unit 2C. The determination is made (step S107).
一致/不一致判定部2Gでの一致/不一致の判定は、CRC現状値算出部2DでCRC現状値が算出される毎に繰り返され(ステップS101→S106→S107の繰り返し)、このCRC現状値の算出の繰り返し中に「不一致」であるとの判定結果が得られた場合、一致/不一致判定部2Gはエラー検出レジスタ2Hの値を「1」とする(ステップS108)。 The match/mismatch determination by the match/mismatch determination unit 2G is repeated every time the CRC current value is calculated by the CRC current value calculation unit 2D (steps S101→S106→S107 are repeated), and this CRC current value is calculated. When the determination result of "mismatch" is obtained during the repetition of, the match/mismatch determination unit 2G sets the value of the error detection register 2H to "1" (step S108).
図6は上述したCPU1側での処理を示すフローチャートである。CPU1は、IC2のリセットを解除した後(ステップS201)、IC2に対してレジスタ書き込みコマンドを発行したか否かを確認する(ステップS202)。IC2に対するレジスタ書き込みコマンドの発行を確認すると(ステップS202のYES)、IC2に対してCRC期待値算出コマンドを発行する(ステップS203)。 FIG. 6 is a flowchart showing the processing on the CPU 1 side described above. After releasing the reset of IC2 (step S201), the CPU 1 confirms whether or not the register write command is issued to the IC2 (step S202). When the issuance of the register write command to IC2 is confirmed (YES in step S202), the CRC expected value calculation command is issued to IC2 (step S203).
そして、CPU1は、IC2においてCRC値の算出が完了するのを待って(ステップS204)、CRC現状値記憶部2Eに記憶されているCRC現状値(CRC期待値算出コマンド発行後の最初のCRC現状値)を読み出し、その読み出したCRC現状値をCPU1側でのCRC期待値として保存する(ステップS205)。 Then, the CPU 1 waits until the calculation of the CRC value is completed in the IC 2 (step S204), and then the CRC present value stored in the CRC present value storage unit 2E (the first CRC present state after the CRC expected value calculation command is issued). Value) and the read CRC current value is stored as a CRC expected value on the CPU 1 side (step S205).
そして、CPU1は、エラー検出レジスタ2Hに書き込まれている判定結果(第1の判定結果)およびCRC現状値記憶部2Eに記憶されているCRC現状値を読み出し(ステップS206)、エラー検出レジスタ2Hから読み出した判定結果(第1の判定結果)が「0」で、かつCRC現状値記憶部2Eから読み出したCRC現状値とステップS205で保存したCPU1側のCRC期待値とが一致していた場合(第2の判定結果が「0」であった場合)(ステップS207のYES)、すなわち第1の判定結果が「一致」でかつ第2の判定結果も「一致」であった場合、レジスタ2Aに書き込まれているデータは正常であると判断し、ステップS202に戻る。 Then, the CPU 1 reads the judgment result (first judgment result) written in the error detection register 2H and the CRC present value stored in the CRC present value storage unit 2E (step S206), and reads out from the error detection register 2H. When the read judgment result (first judgment result) is “0” and the CRC present value read from the CRC present value storage unit 2E and the CRC expected value of the CPU 1 stored in step S205 match ( When the second determination result is “0”) (YES in step S207), that is, when the first determination result is “match” and the second determination result is “match”, the register 2A is registered. It is determined that the written data is normal, and the process returns to step S202.
CPU1は、IC2に対してレジスタ書き込みコマンドを1度発行すると、次のレジスタ書き込みコマンドを発行するまで、ステップS202,S206,207の処理を繰り返す。このステップS202,S206,S207の処理の繰り返し中、第1の判定結果が「一致」でかつ第2の判定結果も「一致」であるという結果が得られなかった場合(ステップS207のNO)、すなわち第1の判定結果と第2の判定結果の少なくとも一方が「不一致」であった場合、CPU1は、レジスタ2Aに書き込まれているデータに異常が生じているものと判断し、異常処理を行う(ステップS208)。このステップS208での異常処理の内容は、各システムで適切な方法を決定する。 When the CPU 1 issues a register write command to the IC 2 once, the CPU 1 repeats the processes of steps S202, S206, and 207 until the next register write command is issued. During the repetition of the processing of steps S202, S206, and S207, when the result that the first determination result is “match” and the second determination result is “match” is not obtained (NO in step S207), That is, when at least one of the first determination result and the second determination result is “mismatch”, the CPU 1 determines that the data written in the register 2A has an abnormality, and performs an abnormality process. (Step S208). The content of the abnormality processing in step S208 determines an appropriate method for each system.
このようにして、本実施の形態のレジスタ異常検出装置100によれば、IC2側での判定結果(第1の判定結果)とCPU1側での判定結果(第2の判定結果)が共に「一致」となった場合にレジスタ2Aに書き込まれているデータが正常であると判断され、その他の場合は異常であると判断されるものとなる。これにより、CPU1として処理能力の高いCPUを用いることなく、異常検出の信頼性を高めることができるようになる。 In this way, according to the register abnormality detection device 100 of the present embodiment, the determination result on the IC2 side (first determination result) and the determination result on the CPU1 side (second determination result) are both “matched”. ", the data written in the register 2A is judged to be normal, and otherwise the data is judged to be abnormal. As a result, the reliability of abnormality detection can be improved without using a CPU with high processing capacity as the CPU 1.
なお、上述では説明を省略したが、このレジスタ異常検出装置100では、IC2側での第1の判定結果とCPU1側での第2の判定結果とに基づいてレジスタ2Aに書き込まれているデータの異常を検出するか、IC2側での第1の判定結果のみでレジスタ2Aに書き込まれているデータの異常を検出するか、CPU1側での第2の判定結果のみでレジスタ2Aに書き込まれているデータの異常を検出するかについて、選択することが可能とされている。 Although not described in the above, in the register abnormality detecting device 100, the data written in the register 2A based on the first determination result on the IC2 side and the second determination result on the CPU1 side are stored. Whether an abnormality is detected, the abnormality of the data written in the register 2A is detected only by the first determination result on the IC2 side, or the abnormality is written in the register 2A only by the second determination result on the CPU1 side. It is possible to select whether or not to detect abnormal data.
この場合、CPU1は、レジスタの異常検出方式として第1の方式が選択されている場合には、IC2側での第1の判定結果のみでレジスタ2Aに書き込まれているデータの異常を検出し、第2の方式が選択されている場合には、CPU1側での第2の判定結果のみでレジスタ2Aに書き込まれているデータの異常を検出し、第3の方式が選択されている場合には、IC2側での第1の判定結果とCPU1側での第2の判定結果とに基づいてレジスタ2Aに書き込まれているデータの異常を検出する。 In this case, when the first method is selected as the register abnormality detection method, the CPU 1 detects the abnormality of the data written in the register 2A only by the first determination result on the IC2 side, When the second method is selected, the abnormality of the data written in the register 2A is detected only by the second determination result on the CPU 1 side, and when the third method is selected, , The abnormality of the data written in the register 2A is detected based on the first determination result on the IC2 side and the second determination result on the CPU1 side.
図7に第1の方式が選択されている場合のCPU1側で行われる処理のフローチャートを示す。この場合、CPU1は、IC2のリセットを解除した後(ステップS301)、IC2に対してレジスタ書き込みコマンドを発行したか否かを確認する(ステップS302)。IC2に対するレジスタ書き込みコマンドの発行を確認すると(ステップS303のYES)、IC2に対してCRC期待値算出コマンドを発行する(ステップS303)。 FIG. 7 shows a flowchart of processing performed on the CPU 1 side when the first method is selected. In this case, the CPU 1 confirms whether the register write command has been issued to the IC 2 after releasing the reset of the IC 2 (step S301) (step S302). When the issuance of the register write command to IC2 is confirmed (YES in step S303), the CRC expected value calculation command is issued to IC2 (step S303).
そして、CPU1は、IC2においてCRC値の算出が完了するのを待って(ステップS304)、エラー検出レジスタ2Hに書き込まれている判定結果(第1の判定結果)を読み出し(ステップS305)、エラー検出レジスタ2Hから読み出した判定結果(第1の判定結果)が「1」でなかった場合には(ステップS306のNO)、すなわち第1の判定結果が「0」であった場合には、レジスタ2Aに書き込まれているデータは正常であると判断し、ステップS302に戻る。 Then, the CPU 1 waits until the calculation of the CRC value is completed in the IC 2 (step S304), reads the determination result (first determination result) written in the error detection register 2H (step S305), and detects the error. If the determination result (first determination result) read from the register 2H is not "1" (NO in step S306), that is, if the first determination result is "0", the register 2A It is determined that the data written in is normal, and the process returns to step S302.
CPU1は、IC2に対してレジスタ書き込みコマンドを1度発行すると、次のレジスタ書き込みコマンドを発行するまで、ステップS302,S305,S306の処理を繰り返す。このステップS302,S305,S306の処理の繰り返し中、第1の判定結果が「1」となった場合(ステップS306のYES)、すなわち第1の判定結果が「不一致」となった場合、CPU1は、レジスタ2Aに書き込まれているデータに異常が生じているものと判断し、異常処理を行う(ステップS307)。このステップS307での異常処理の内容は、各システムで適切な方法を決定する。 When the CPU 1 issues the register write command once to the IC 2, the CPU 1 repeats the processes of steps S302, S305, and S306 until the next register write command is issued. During the repetition of the processing of steps S302, S305, S306, if the first determination result is “1” (YES in step S306), that is, if the first determination result is “mismatch”, the CPU 1 , It is determined that the data written in the register 2A has an abnormality, and abnormality processing is performed (step S307). The content of the abnormality processing in step S307 determines an appropriate method for each system.
図8に第2の方式が選択されている場合のCPU1側で行われる処理動作のフローチャートを示す。この場合、CPU1は、IC2のリセットを解除した後(ステップS401)、IC2に対してレジスタ書き込みコマンドを発行したか否かを確認する(ステップS402)。IC2に対するレジスタ書き込みコマンドの発行を確認すると(ステップS403のYES)、IC2に対してCRC期待値算出コマンドを発行する(ステップS403)。 FIG. 8 shows a flowchart of the processing operation performed on the CPU 1 side when the second method is selected. In this case, the CPU 1 confirms whether the register write command has been issued to the IC 2 after releasing the reset of the IC 2 (step S 401) (step S 402 ). When the issuance of the register write command to IC2 is confirmed (YES in step S403), the CRC expected value calculation command is issued to IC2 (step S403).
そして、CPU1は、IC2においてCRC値の算出が完了するのを待って(ステップS404)、CRC現状値記憶部2Eに記憶されているCRC現状値(CRC期待値算出コマンド発行後の最初のCRC現状値)を読み出し、その読み出したCRC現状値をCPU1側でのCRC期待値として保存する(ステップS405)。 Then, the CPU 1 waits until the calculation of the CRC value is completed in the IC 2 (step S404), and then the CRC present value stored in the CRC present value storage unit 2E (the first CRC present state after the CRC expected value calculation command is issued). Value) and the read CRC current value is stored as a CRC expected value on the CPU 1 side (step S405).
そして、CPU1は、CRC現状値記憶部2Eに記憶されているCRC現状値を読み出し(ステップS406)、このCRC現状値記憶部2Eから読み出したCRC現状値とステップS405で保存したCPU1側のCRC期待値とが一致していた場合(ステップS407のYES)、すなわち第2の判定結果が「一致」であった場合、レジスタ2Aに書き込まれているデータは正常であると判断し、ステップS402に戻る。 Then, the CPU 1 reads the CRC present value stored in the CRC present value storage unit 2E (step S406), and the CRC present value read from the CRC present value storage unit 2E and the CRC expectation of the CPU 1 side saved in step S405. If the values match (YES in step S407), that is, if the second determination result is "match", it is determined that the data written in the register 2A is normal, and the process returns to step S402. ..
CPU1は、IC2に対してレジスタ書き込みコマンドを1度発行すると、次のレジスタ書き込みコマンドを発行するまで、ステップS402,S406,S407の処理を繰り返す。このステップS402,S406,S407の処理の繰り返し中、第2の判定結果が「一致」であるという結果が得られなかった場合(ステップS407のNO)、すなわち第2の判定結果が「不一致」であった場合、CPU1は、レジスタ2Aに書き込まれているデータに異常が生じているものと判断し、異常処理を行う(ステップS408)。このステップS408での異常処理の内容は、各システムで適切な方法を決定する。 When the register write command is issued once to the IC2, the CPU 1 repeats the processes of steps S402, S406, and S407 until the next register write command is issued. During the repetition of the processing of steps S402, S406, and S407, when the result that the second determination result is “match” is not obtained (NO in step S407), that is, the second determination result is “mismatch”. If there is, the CPU 1 determines that the data written in the register 2A has an abnormality, and performs abnormality processing (step S408). The content of the abnormality processing in step S408 determines an appropriate method for each system.
第3の方式が選択されている場合には図6を用いて説明した処理が行われる。なお、必ずしもこのような第1,第2,第3の方式が選択可能な構成としなくてもよく、第3の方式が単独で採用されていても構わない。また、本実施の形態において、CPU1はIC2から異常検出ステータスおよびCRC現状値の少なくとも一方を読み出すが、この読み出した異常検出ステータスやCRC現状値どのように利用するかはユーザ次第である。 When the third method is selected, the processing described with reference to FIG. 6 is performed. The first, second, and third methods are not necessarily selectable, and the third method may be adopted independently. Further, in the present embodiment, the CPU 1 reads at least one of the abnormality detection status and the CRC current value from the IC 2, but it is up to the user how to use the read abnormality detection status and CRC current value.
また、上述した実施の形態では、CRC値の具体的な算出方法については述べなかったが、実際には多項式としてC「RC-16-CCITT(X^16+X^12+X^5+1)」を使用する。勿論、他の多項式(例えば、「CRC-16」や「CRC-32」)を使用してCRC値を算出してもよい。また、CRCではなく、「MODBUS ASCII」のチックサム算出で用いられている「2の補数和の2の補数」を使用するなどしてもよい。 Further, in the above-mentioned embodiment, the concrete calculation method of the CRC value is not described, but in reality, as a polynomial, C “RC-16-CCITT (X^16+X^12+X^5+1 )” is used. Of course, the CRC value may be calculated using another polynomial (for example, "CRC-16" or "CRC-32"). Further, instead of CRC, "2's complement of 2's complement sum" used in the tick sum calculation of "MODBUS ASCII" may be used.
〔派生効果〕
図1において、CRC値算出対象レジスタ24−1には動作前に必ず任意の値を書き込むため、CRC値算出対象レジスタ24−1に書き込まれているデータのCRC現状値はIC2の動作中、初期値とは異なる値となる。そのため、IC2の動作中にCPU1からCRC現状値を監視することで、ノイズなどの影響で予期せぬリセットがかかっていないかどうかを確認できる。すなわち、リセットがかかればCRC現状値が初期値になることを利用することによって、予期せぬリセットがかかっていないかどうかを確認することができる。
[Derived effect]
In FIG. 1, since an arbitrary value is always written in the CRC value calculation target register 24-1 before the operation, the CRC current value of the data written in the CRC value calculation target register 24-1 is the initial value during the operation of the IC2. The value is different from the value. Therefore, by monitoring the CRC current value from the CPU 1 while the IC 2 is operating, it is possible to confirm whether or not an unexpected reset has been applied due to the influence of noise or the like. That is, by utilizing the fact that the CRC current value becomes the initial value when resetting is performed, it is possible to confirm whether or not an unexpected reset is applied.
また、図1において、CPU1への異常通知方法として、エラー検出レジスタ24−4の値を通信プロトコルに含めるという方法もある。例えば、図9に示すように、MISO信号の「0x04」を内部レジスタ異常検出と割り当て、IC内部状態もチェックサム付きSPIアクセスのレスポンスに含めてしまうようにする。これにより、CPU1からエラー検出レジスタ24−4をポーリングする頻度を下げることができる。 Further, in FIG. 1, as a method of notifying the CPU 1 of an abnormality, there is a method of including the value of the error detection register 24-4 in the communication protocol. For example, as shown in FIG. 9, the MISO signal “0x04” is assigned to detect an internal register abnormality, and the IC internal state is also included in the response for SPI access with checksum. As a result, the frequency with which the CPU 1 polls the error detection register 24-4 can be reduced.
〔実施の形態の拡張〕
以上、実施の形態を参照して本発明を説明したが、本発明は上記の実施の形態に限定されるものではない。本発明の構成や詳細には、本発明の技術思想の範囲内で当業者が理解し得る様々な変更をすることができる。
[Expansion of Embodiment]
Although the present invention has been described with reference to the exemplary embodiments, the present invention is not limited to the above exemplary embodiments. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the technical idea of the present invention.
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…レジスタ異常検出装置。 1... CPU (arithmetic processing unit), 2... IC, 21... Data receiving circuit, 22... Command control unit, 23... Data transmitting circuit, 24... Internal register, 24-1... CRC value calculation target register, 24-2... CRC value calculation non-target register, 24-3... CRC value calculation unit, 24-4... Error detection register, 2A... Register, 2B... Data writing unit, 2C... CRC expected value calculation unit, 2D... CRC current value calculation unit 2E... CRC current value storage unit, 2F... CRC expected value storage unit, 2G... Match/mismatch determination unit, 2H... Error detection register, 100... Register abnormality detection device.
Claims (2)
前記演算処理部から送られてきたデータを前記レジスタに書き込むデータ書込部と、
前記レジスタに書き込まれているデータの異常を検出するための検査用の指標の期待値を算出する期待値算出部と、
前記レジスタに書き込まれているデータの前記検査用の指標の期待値に対応する現状値の算出を繰り返す現状値算出部と、
前記現状値算出部によって前記検査用の指標の現状値が算出される毎に、算出された検査用の指標の現状値を更新記憶する現状値記憶部と、
前記現状値算出部によって前記検査用の指標の現状値が算出される毎に、算出された検査用の指標の現状値と前記期待値との一致/不一致を判定し、その判定結果を第1の判定結果としてエラー検出レジスタに書き込む一致/不一致判定部とを備え、
前記演算処理部は、
前記エラー検出レジスタに書き込まれている第1の判定結果および前記現状値記憶部に記憶されている検査用の指標の現状値を読み出し、
前記現状値記憶部から前記現状値を読み出す毎に、その読み出した現状値と前記演算処理部で保存される期待値との一致/不一致を判定し、その判定結果を第2の判定結果とし、
前記演算処理部は、前記第1の判定結果が「一致」かつ前記第2の判定結果が「一致」である場合以外の場合に前記レジスタに書き込まれているデータの異常を検出する
ことを特徴とするレジスタ異常検出装置。 An arithmetic processing unit, and a register in which data is written to come are sent the arithmetic processing unit or, et al., In register abnormality detecting device for detecting an abnormality of the data written in the register,
A data writing unit that writes the data sent from the arithmetic processing unit to the register,
An expected value calculation unit that calculates an expected value of an index for inspection for detecting an abnormality of the data written in the register,
A current value calculation unit that repeats calculation of a current value corresponding to an expected value of the index for inspection of the data written in the register,
Every time the current value of the index for inspection is calculated by the current value calculation unit, a current value storage unit that updates and stores the calculated current value of the index for inspection,
Each time the current value of the inspection index is calculated by the current value calculation unit, a match/mismatch between the calculated current value of the inspection index and the expected value is determined, and the determination result is first A match/mismatch determination unit for writing to the error detection register as a determination result of
The arithmetic processing unit,
To read out the current value of the first determination result and indicator for examination the stored in the current value storage unit that is written in the error detection register,
Every time the current value is read from the current value storage unit , a match/mismatch between the read current value and the expected value stored in the arithmetic processing unit is determined, and the determination result is set as the second determination result,
The arithmetic processing unit detects an abnormality in the data written in the register except when the first determination result is “match” and the second determination result is “match”. Register abnormality detection device.
前記エラー検出レジスタに書き込まれている第1の判定結果は、
通信プロトコルに含めて前記演算処理部に送られてくる
ことを特徴とするレジスタ異常検出装置。 The register abnormality detection device according to claim 1 ,
The first determination result written in the error detection register is
A register abnormality detecting device, which is included in a communication protocol and sent to the arithmetic processing unit.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016086764A JP6718294B2 (en) | 2016-04-25 | 2016-04-25 | Register error detector |
KR1020170049163A KR101940906B1 (en) | 2016-04-25 | 2017-04-17 | Register abnormality detection apparatus |
CN201710272530.5A CN107402830B (en) | 2016-04-25 | 2017-04-24 | Register abnormality detection device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016086764A JP6718294B2 (en) | 2016-04-25 | 2016-04-25 | Register error detector |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017199052A JP2017199052A (en) | 2017-11-02 |
JP6718294B2 true JP6718294B2 (en) | 2020-07-08 |
Family
ID=60237913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016086764A Active JP6718294B2 (en) | 2016-04-25 | 2016-04-25 | Register error detector |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6718294B2 (en) |
KR (1) | KR101940906B1 (en) |
CN (1) | CN107402830B (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739673B (en) * | 2018-12-05 | 2023-05-09 | 新华三技术有限公司合肥分公司 | Register write-in protection method, logic device and communication equipment |
JP7350488B2 (en) * | 2019-01-30 | 2023-09-26 | ラピスセミコンダクタ株式会社 | Peripheral device control system and peripheral device control method |
CN111949547A (en) * | 2020-08-22 | 2020-11-17 | 深圳市捷诚技术服务有限公司 | Problem positioning method based on single chip microcomputer abnormity, single chip microcomputer, equipment and system |
CN115220972A (en) * | 2022-06-07 | 2022-10-21 | 中科驭数(北京)科技有限公司 | Equipment fault detection method, device, equipment and computer readable storage medium |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09311796A (en) * | 1996-05-24 | 1997-12-02 | Matsushita Electric Ind Co Ltd | Automatic restoration device for device operation |
JP2002025282A (en) * | 2000-07-12 | 2002-01-25 | Hitachi Ltd | Non-volatile semiconductor storage device |
US6725406B2 (en) * | 2001-01-09 | 2004-04-20 | Intel Corporation | Method and apparatus for failure detection utilizing functional test vectors and scan mode |
EP1438662A2 (en) * | 2001-10-11 | 2004-07-21 | Altera Corporation | Error detection on programmable logic resources |
JP2006048783A (en) * | 2004-08-02 | 2006-02-16 | Renesas Technology Corp | Nonvolatile memory and memory card |
JP4555834B2 (en) * | 2004-12-27 | 2010-10-06 | 富士通株式会社 | Apparatus and method for determining validity of transfer data |
EP1980946B1 (en) * | 2006-01-31 | 2013-05-29 | Fujitsu Limited | Error correction code generation method and memory management device |
KR100944480B1 (en) * | 2006-04-27 | 2010-03-03 | 후지쯔 마이크로일렉트로닉스 가부시키가이샤 | Semiconductor device and system |
JP4343945B2 (en) * | 2006-12-28 | 2009-10-14 | 三菱電機株式会社 | Electronic control unit |
KR101007046B1 (en) * | 2008-04-23 | 2011-01-12 | 주식회사 애트랩 | Communication system which can be restored at the time of malfunction automatically and reconstruction method thereof |
JP2012150661A (en) * | 2011-01-19 | 2012-08-09 | Toshiba Corp | Processor operation inspection system and its inspection method |
US9087192B2 (en) * | 2013-09-10 | 2015-07-21 | Infineon Technologies Ag | Electronic circuit and method for monitoring a data processing |
JP6273979B2 (en) * | 2014-04-01 | 2018-02-07 | 株式会社デンソー | Control device or control system |
CN104679196B (en) * | 2015-03-10 | 2018-07-06 | 江苏邦融微电子有限公司 | System and its implementation are resetted when processor-based self-test, exception |
-
2016
- 2016-04-25 JP JP2016086764A patent/JP6718294B2/en active Active
-
2017
- 2017-04-17 KR KR1020170049163A patent/KR101940906B1/en active IP Right Grant
- 2017-04-24 CN CN201710272530.5A patent/CN107402830B/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN107402830A (en) | 2017-11-28 |
KR20170121695A (en) | 2017-11-02 |
CN107402830B (en) | 2020-11-24 |
KR101940906B1 (en) | 2019-01-21 |
JP2017199052A (en) | 2017-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6718294B2 (en) | Register error detector | |
CN114328316B (en) | DMA controller, SOC system and data carrying method based on DMA controller | |
US10248580B2 (en) | Method and circuit for protecting and verifying address data | |
JP2012038305A (en) | Data processing system having error detection of set information of peripheral device | |
JP4941954B2 (en) | Data error detection device and data error detection method | |
CN108459876B (en) | Method and apparatus for reduced area control register circuit | |
JP5413595B2 (en) | Integrated circuit device, electronic equipment | |
JP2009259113A (en) | Nonvolatile memory management device | |
US12038808B2 (en) | Memory integrity check | |
US11768731B2 (en) | System and method for transparent register data error detection and correction via a communication bus | |
US7492650B2 (en) | Semiconductor storage device having a user region and a redundancy region | |
US11256580B2 (en) | Circuit for detecting systematic and random faults | |
JP6673021B2 (en) | Memory and information processing device | |
CN107111563B (en) | Memory device system | |
CN108829417B (en) | Upgrading device, method, equipment and storage medium of CPLD | |
US9442788B2 (en) | Bus protocol checker, system on chip including the same, bus protocol checking method | |
US20090150623A1 (en) | Semiconductor device and test mode control circuit | |
US20160018866A1 (en) | System And Method For Storing Manufacturing Information And Lifetime Usage History Of A Power Module For A Memory System | |
JP5247558B2 (en) | Control device for electronic equipment and air conditioner using the control device | |
CN111323149A (en) | Temperature sensor device with function of correcting OTP (one time programmable) errors and OTP error correcting method | |
JPH04162300A (en) | Semiconductor memory | |
JP7554924B2 (en) | Safety device and safety method | |
JP6130735B2 (en) | Microcontroller and error detection method | |
JP6842098B1 (en) | Debugging device and debugging method | |
JP2011054221A (en) | Storage device and electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190311 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200218 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200417 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200602 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200612 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6718294 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |