JP6784581B2 - 自動車用電子制御装置及びdmaコントローラの異常検知方法 - Google Patents

自動車用電子制御装置及びdmaコントローラの異常検知方法 Download PDF

Info

Publication number
JP6784581B2
JP6784581B2 JP2016236980A JP2016236980A JP6784581B2 JP 6784581 B2 JP6784581 B2 JP 6784581B2 JP 2016236980 A JP2016236980 A JP 2016236980A JP 2016236980 A JP2016236980 A JP 2016236980A JP 6784581 B2 JP6784581 B2 JP 6784581B2
Authority
JP
Japan
Prior art keywords
transfer
abnormality
area
data
dma
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
Application number
JP2016236980A
Other languages
English (en)
Other versions
JP2018092486A (ja
Inventor
寛 富沢
寛 富沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2016236980A priority Critical patent/JP6784581B2/ja
Publication of JP2018092486A publication Critical patent/JP2018092486A/ja
Application granted granted Critical
Publication of JP6784581B2 publication Critical patent/JP6784581B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Detection And Correction Of Errors (AREA)

Description

本発明は、自動車用電子制御装置及びDMAコントローラの異常検知方法に関し、詳しくは、DMA(Direct Memory Access)コントローラによるデータ転送の異常を検出する技術に関する。
特許文献1には、DMAコントローラが、制御データ記憶領域からデータ転送領域へ制御データを転送する前に、制御データ記憶領域に記憶されている制御データとデータ転送領域に記憶されている制御データとが不一致であるか否かを判断し、係る不一致判断結果に基づき、制御部が制御データを送信するか否かを決定する、電子制御装置が開示されている。
特開2013−128164号公報
ところで、DMAコントローラは、設定された転送回数に達するとメモリの転送開始位置に戻って転送を繰り返し行う機能を有する場合があるが、転送回数に異常が発生すると、転送開始位置に戻るタイミングで戻らずに本来の転送領域を超えて転送が実施され、転送領域外のデータを破壊(上書き)してしまうという問題が生じる。
また、DMAコントローラによる転送を開始させるメモリ上の位置(転送開始位置)が正規の位置からずれる異常が発生した場合も、本来の転送領域外のデータを破壊(上書き)してしまうという問題が生じる。
本発明は上記問題点に鑑みなされたものであり、DMA転送異常を検知できる自動車用電子制御装置及びDMAコントローラの異常検知方法を提供し、以って、転送領域外のデータ破壊を抑制できるようにすることを目的とする。
そのため、本願発明に係る自動車用電子制御装置は、その一態様において、制御対象を制御するための処理を行うCPUと、メモリと、前記メモリの転送領域にデータを転送するDMAコントローラとを備える自動車用電子制御装置であって、前記DMAコントローラによる転送先アドレスが前記転送領域に含まれないときに、データ転送の異常を検知して異常時処理を実施する異常検知手段を含み、前記転送領域は、空き領域を挟んで複数が分散して設定され、前記空き領域は、前記データ転送の異常の検知に遅れがあっても、前記転送先アドレスが前記空き領域内であるときに異常を検知できるように、領域の大きさが設定される
また、本願発明に係るDMAコントローラの異常検知方法は、制御対象を制御するための処理を行うCPUと、メモリと、前記メモリの転送領域にデータを転送するDMAコントローラとを備える自動車用電子制御装置におけるDMA転送異常の検知方法であって、前記転送領域を、空き領域を挟んで複数分散させて設定するステップと、前記空き領域の大きさを、データ転送の異常の検知に遅れがあっても、転送先アドレスが前記空き領域内であるときに異常を検知できる大きさに設定するステップと、前記DMAコントローラによる転送先アドレスが前記転送領域外であるか否かを周期的に判定するステップと、前記転送先アドレスが前記転送領域外であるときに前記DMAコントローラによるデータ転送の異常を判定するステップと、を含む。
上記発明によると、DMAコントローラによって転送領域外にデータが転送される状態を異常として検知できるから、引き続きデータが転送領域外に転送されることを抑止することが可能になり、転送領域外のデータ破壊を抑制できる。
本発明の実施形態における自動車用電子制御装置の構成図である。 本発明の実施形態におけるDMA転送領域の構成を示す図である。 本発明の実施形態におけるCPUによる初期化処理を示すフローチャートである。 本発明の実施形態におけるCPUによるDMA異常検知処理を示すフローチャートである。 本発明の実施形態におけるDMA転送の繰り返し異常を示す図である。 本発明の実施形態におけるDMA転送の繰り返し異常の検知処理を示す図である。 本発明の実施形態における転送開始位置の異常である異常パターン1及び異常パターン2を示す図である。 本発明の実施形態における転送開始位置の異常である異常パターン3及び異常パターン4を示す図である。 本発明の実施形態における異常パターン3及び異常パターン4とキーワード破壊との関係を示す図である。 本発明の実施形態における異常パターン3の検知処理を示す図である。 本発明の実施形態における異常パターン4の検知処理を示す図である。
以下に本発明の実施の形態を説明する。
図1は、本発明を適用する自動車用電子制御装置の一態様を示す構成図である。
図1の自動車用電子制御装置100は、車載エンジンや自動変速機などの制御対象を制御するための処理を行うCPU(Central Processing Unit)200、処理プログラムなどを記憶するROM(Read Only Memory)300、データなどを一時的に記憶するRAM(Random Access Memory)400、外部のセンサなどから信号を入力し外部の制御対象などに信号を出力する入出力デバイス(I/Oデバイス)500、CPU200を介さずにメモリ又はメモリと入出力デバイス500との間で直接データを転送するダイレクトメモリアクセス(Direct Memory Access)を司るDMAコントローラ600と、これらを接続するバス700と、を備える。
上記構成の自動車用電子制御装置100において、CPU200は、DMAコントローラ600によるDMA転送の異常の発生を検知する機能(異常検知手段)をソフトウェアとして有している。
DMA転送の異常によるデータ破壊(データの上書き)を抑止し、また、DMA転送の異常を検知するために、DMAコントローラ600によってデータが転送されるRAM400の転送領域(以下、DMA転送領域と称する)は図2に示すように構成されている。
DMA転送領域は、複数のDMAチャネルch.1,ch.2,ch.3,・・・を含んで構成され、各DMAチャネルch.1,ch.2,ch.3,・・・の間には、DMAによるデータ転送の対象領域としない空き領域が設けられ、複数のDMAチャネルch.1,ch.2,ch.3,・・・が空き領域を挟んで分散して設定されるようにしてある。
更に、各DMAチャネルch.1,ch.2,ch.3,・・・の前後には、既知データが書き込まれる既知データ領域を設けてあり、この既知データ領域には、DMA転送の異常によって既知データ領域が上書きされたことをCPU200が判別できるように設定されたキーワードが既知データとしてCPU200によって書き込まれる。
そして、CPU200は、図3のフローチャートに示される処理及び図4のフローチャートに示される処理を実行して、DMA転送の異常を検知する。
図3のフローチャートは、自動車用電子制御装置100の電源投入時にCPU200によって実施される初期化処理を示す。
CPU200は、ステップS11で、各DMAチャネルch.1,ch.2,ch.3,・・・の前後に設けた既知データ領域のキーワードを初期化する。
図4のフローチャートは、CPU200による定時処理(時間割り込み処理)によって一定時間毎に実施されるDMA異常検知処理の流れを示す。
まず、CPU200は、ステップS21で、DMAコントローラ600による現時点の転送先アドレスがDMA転送領域内であるか否か(転送先アドレスが転送領域に含まれるか否か)、つまり、DMA転送領域外のデータが上書き(破壊)されてしまうDMA転送異常が発生しているか否かを判別する。
なお、CPU200は、現時点の転送先アドレスが保持されるレジスタのデータを読み込んで、DMA転送領域内のアドレスに該当しているか否かを判別する。
そして、現時点の転送先アドレスがDMA転送領域外であるDMA転送異常の発生状態では、CPU200は、ステップS23に進んで、DMA転送異常の発生に対処するための異常時処理を実行する。なお、CPU200は、異常時処理として、DMA転送の停止や、転送先アドレスのリセットなどを実施する。
CPU200は、ステップS23の異常時処理後に、ステップS24に進み、既知データ領域のキーワードを初期化する。
例えば、図5に示すように、DMAコントローラ600が、既定回数分の転送処理が完了したときに転送開始位置に戻って繰り返し転送を行う場合に、転送開始位置に戻るタイミングで転送開始位置に戻らずに転送領域外へ転送を続けてしまうDMA転送異常が発生した場合、CPU200は、図6に示すように、転送先アドレスが転送領域外になった後の診断タイミングでDMA転送異常を検知する。
ここで、DMAチャネルch.1,ch.2,ch.3,・・・は、空き領域を挟んで複数が分散して設定されているから、DMAコントローラ600によるDMA転送が、転送開始位置に戻るタイミングで転送開始位置に戻らずに転送領域外へデータ転送を続けてしまっても、転送領域外へのデータ転送が空き領域へのデータ転送になって、DMAチャネルch.1,ch.2,ch.3,・・・のデータ上書き(破壊)を抑制できる。
なお、図4のフローチャートに示すルーチン(DMA異常検知処理)の実行周期が長いと、DMAコントローラ600が転送領域外へデータ転送を続けてしまったときに、DMA異常の検知が遅れて転送領域外で上書きされてしまう領域が大きくなってしまう場合がある。そこで、少なくとも次のDMAチャネルch.1,ch.2,ch.3,・・・が上書きされてしまうことを抑止できるように、図4のフローチャートに示すルーチン(DMA異常検知処理)の実行周期及び空き領域の大きさを予め適合させてある。
換言すれば、周期的なDMA異常検知処理による異常検知が最も遅れる場合でも、転送先アドレスが空き領域内であるときにCPU200がDMA転送異常を検知できるように、DMA異常検知処理の実行周期及び空き領域の大きさを設定してある。つまり、DMA異常検知処理の実行周期が短い場合は空き領域の大きさを縮小でき、逆に、DMA異常検知処理の実行周期が長い場合は空き領域の大きさを拡大する必要が生じる。
また、図7に示す異常パターン1及び異常パターン2のように、DMAコントローラ600による転送開始位置がDMA転送領域外に設定され、かつ、本来の転送領域と実際に転送される領域とが重ならないDMA転送異常が発生した場合、CPU200は、転送開始時若しくは転送開始直後の診断タイミングにおいて、DMAコントローラ600による転送先アドレスがDMA転送領域外であることに基づきDMA転送異常を検知する。
この場合、DMA転送異常の発生によってどの位置が転送開始位置になるかは不定であるため、DMAチャネルch.1,ch.2,ch.3,・・・の上書きを抑止することは難しいが、CPU200は、転送開始直後に異常を検知して異常時処理を実施でき、これにより、データ破壊を最小限に抑えることができる。
また、図8に示す異常パターン3のように、DMAコントローラ600による転送開始位置がDMA転送領域の途中に設定され転送完了位置がDMA転送領域から外れるようなDMA転送異常(一部重複異常)が発生した場合、転送開始から転送先アドレスがDMA転送領域内である間、CPU200は、転送先アドレスがDMA転送領域内であることから異常発生を検知できない。しかし、転送先アドレスがDMA転送領域から外れると、CPU200は、DMA転送異常の発生を検知して異常時処理を実施でき、これにより、データ破壊を最小限に抑えることができる。
同様に、図8に示す異常パターン4のように、DMAコントローラ600による転送開始位置がDMA転送領域よりも前にずれ、転送完了位置がDMA転送領域内になるようなDMA転送異常(一部重複異常)が発生した場合、転送開始直後の転送先アドレスがDMA転送領域外であるとき診断タイミングになれば、CPU200は、DMA転送異常の発生を検知して異常時処理を実施でき、これにより、データ破壊を最小限に抑えることができる。
但し、図8に示す異常パターン3及び異常パターン4のように、実際の転送領域がずれて本来の転送領域と部分的に重複する異常が発生した場合、領域ずれが小さいと、転送先アドレスがDMA転送領域外である期間が短くなり、CPU200は異常を検知する機会を逃してしまう場合がある。
そこで、CPU200は、転送先アドレスがDMA転送領域内であると判別したときに、ステップS22に進んで、各DMAチャネルch.1,ch.2,ch.3,・・・の前後の既知データ領域のキーワードがDMA転送によって破壊されているか否かを判別する。つまり、CPU200は、既知データ領域のキーワードを読み込み、読み込んだデータが既知のデータと一致するか否かを判別することで、既知データ領域の上書き(破壊)の有無を検出する。
そして、キーワードが破壊されている場合、CPU200は、ステップS23及びステップS24に進み、DMA転送異常に対処する異常時処理及びキーワードの初期化を実施する。
例えば、図9に示す異常パターン3のように、DMAコントローラ600による転送開始位置がDMA転送領域の途中に設定され転送完了位置がDMA転送領域から外れるようなDMA転送異常が発生した場合は、DMA転送領域の後側のキーワードが上書きされることになる。
従って、仮に、DMA転送領域の終わりから実際の転送が完了するまでの転送先アドレスがDMA転送領域外である間に診断タイミングが重ならずに、CPU200が転送先アドレスに基づき異常検知できない場合であっても、図10に示すように、キーワード破壊後の診断タイミングで、転送先アドレスがDMA転送領域内であるもののキーワードが上書きされていることに基づきDMA転送異常を検知できる。
また、図9に示す異常パターン4のように、DMAコントローラ600による転送開始位置がDMA転送領域よりも前にずれ、転送完了位置がDMA転送領域内になるようなDMA転送異常が発生した場合は、DMA転送領域の前側のキーワードが上書きされることになる。
従って、仮に、転送開始位置から本来のDMA転送領域の始まりまで転送先アドレスがDMA転送領域外である間に診断タイミングが重ならずに、CPU200が転送先アドレスに基づき異常検知できない場合であっても、図11に示すように、キーワード破壊後の診断タイミングで、転送先アドレスがDMA転送領域内であるもののキーワードが上書きされていることに基づきDMA転送異常を検知できる。
このように、CPU200は、キーワード破壊の有無を判別することで、実際の転送領域が本来のDMA転送領域からずれる異常が発生したときに、ずれの大きさが小さく転送先アドレスに基づき異常検知できない場合でも、DMA転送異常の発生を検知することが可能になり、異常時処理を実施できる。
CPU200は、転送先アドレスがDMA転送領域内であることを検出しかつキーワード破壊を検出しなかった場合はDMA転送が正常であると判断し、ステップS23の異常時処理及びステップS24のキーワードの初期化処理を迂回して、本ルーチンを終了させる。
以上、好ましい実施形態を参照して本発明の内容を具体的に説明したが、本発明の基本的技術思想及び教示に基づいて、当業者であれば種々の変形態様を採り得ることは自明である。
CPU200は、キーワードが破壊されているか否かの判別を省略し、転送先アドレスがDMA転送領域内であるか否かの判別を行う構成とすることができる。
また、キーワードが書き込まれる既知データ領域を、各DMAチャネルch.1,ch.2,ch.3,・・・の前側と後側とのいずれか一方にのみ設定する構成とすることができる。
また、CPU200は、キーワード破壊に基づきDMA転送異常を検知した後は、DMA異常検知処理の実行周期をより短く変更することができる。
また、空き領域を設定せずに、各DMAチャネルch.1,ch.2,ch.3,・・・が相互に隣接する構成とすることができる。
100…自動車用電子制御装置、200…CPU、300…ROM、400…RAM、500…入出力デバイス(I/Oデバイス)、600…DMAコントローラ、700…バス

Claims (5)

  1. 制御対象を制御するための処理を行うCPUと、メモリと、前記メモリの転送領域にデータを転送するDMA(Direct Memory Access)コントローラとを備える自動車用電子制御装置であって、
    前記DMAコントローラによる転送先アドレスが前記転送領域に含まれないときに、データ転送の異常を検知して異常時処理を実施する異常検知手段を含み、
    前記転送領域は、空き領域を挟んで複数が分散して設定され、
    前記空き領域は、前記データ転送の異常の検知に遅れがあっても、前記転送先アドレスが前記空き領域内であるときに異常を検知できるように、領域の大きさが設定される、
    自動車用電子制御装置。
  2. 前記異常検知手段は、一定時間毎に前記転送先アドレスが前記転送領域に含まれるか否かを検出する、請求項1記載の自動車用電子制御装置。
  3. 前記転送領域の前後に既知データが書き込まれる既知データ領域をそれぞれ設け、
    前記異常検知手段は、前記転送先アドレスが前記転送領域に含まれないときに、前記データ転送の異常を検知して異常時処理を実施するとともに、前記既知データ領域のデータが前記既知データでないときに、前記データ転送の異常を検知して異常時処理を実施する、請求項1又は請求項2記載の自動車用電子制御装置。
  4. 制御対象を制御するための処理を行うCPUと、メモリと、前記メモリの転送領域にデータを転送するDMA(Direct Memory Access)コントローラとを備える自動車用電子制御装置におけるDMAコントローラの異常検知方法であって、
    前記転送領域を、空き領域を挟んで複数分散させて設定するステップと、
    前記空き領域の大きさを、データ転送の異常の検知に遅れがあっても、転送先アドレスが前記空き領域内であるときに異常を検知できる大きさに設定するステップと、
    前記DMAコントローラによる転送先アドレスが前記転送領域外であるか否かを周期的に判定するステップと、
    前記転送先アドレスが前記転送領域外であるときに前記DMAコントローラによるデータ転送の異常を判定するステップと、
    を含む、DMAコントローラの異常検知方法。
  5. 前記転送領域の前後にそれぞれ設けた既知データ領域に既知データを格納するステップと、
    前記既知データ領域に格納されているデータが前記既知データであるか否かを周期的に判定するステップと、
    前記既知データ領域に格納されているデータが前記既知データでないときに前記DMAコントローラによるデータ転送の異常を判定するステップと、
    を更に含む、請求項記載のDMAコントローラの異常検知方法。
JP2016236980A 2016-12-06 2016-12-06 自動車用電子制御装置及びdmaコントローラの異常検知方法 Active JP6784581B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016236980A JP6784581B2 (ja) 2016-12-06 2016-12-06 自動車用電子制御装置及びdmaコントローラの異常検知方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016236980A JP6784581B2 (ja) 2016-12-06 2016-12-06 自動車用電子制御装置及びdmaコントローラの異常検知方法

Publications (2)

Publication Number Publication Date
JP2018092486A JP2018092486A (ja) 2018-06-14
JP6784581B2 true JP6784581B2 (ja) 2020-11-11

Family

ID=62563721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016236980A Active JP6784581B2 (ja) 2016-12-06 2016-12-06 自動車用電子制御装置及びdmaコントローラの異常検知方法

Country Status (1)

Country Link
JP (1) JP6784581B2 (ja)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5992929U (ja) * 1982-12-09 1984-06-23 株式会社明電舎 Dma装置のメモリ監視装置
JPH07281912A (ja) * 1994-04-07 1995-10-27 Nippondenso Co Ltd スタック異常検出装置
JPH09167117A (ja) * 1995-12-15 1997-06-24 Hitachi Ltd マイクロコンピュータおよびこれを用いたリアルタイムシステム
JP2000148658A (ja) * 1998-11-12 2000-05-30 Nec Corp Dma転送方式
JP2001297054A (ja) * 2000-04-11 2001-10-26 Sharp Corp Dmaの転送逸脱防止方法及びdmaコントローラ
JP2005327175A (ja) * 2004-05-17 2005-11-24 Toshiba Corp インサーキットエミュレータ装置およびスタックアクセス異常検知方法
JP2008172896A (ja) * 2007-01-10 2008-07-24 Nsk Ltd 車両用電動機の制御装置
WO2010032330A1 (ja) * 2008-09-22 2010-03-25 富士通株式会社 情報処理装置及びそのメモリ保護方法
JP5183648B2 (ja) * 2010-01-14 2013-04-17 日立オートモティブシステムズ株式会社 Dma転送によるメモリ上書きを検出する方法
WO2013095461A1 (en) * 2011-12-21 2013-06-27 Intel Corporation Secure direct memory access
JP2014186453A (ja) * 2013-03-22 2014-10-02 Hitachi Automotive Systems Ltd 自動車用制御装置
JP2015187833A (ja) * 2014-03-14 2015-10-29 株式会社リコー 情報処理装置、情報処理方法およびプログラム

Also Published As

Publication number Publication date
JP2018092486A (ja) 2018-06-14

Similar Documents

Publication Publication Date Title
US20140351460A1 (en) Relay device
JP6692763B2 (ja) 制御装置および制御プログラム更新方法
US20190243363A1 (en) Apparatus and method for controlling vehicle based on redundant architecture
US6067586A (en) Method for checking a first processor performing functions by a data word received and stored, and modified after performing a given function, and monitored by a second processor
JP2000357129A (ja) メモリ検証を有する電子制御装置および方法
JP6723941B2 (ja) 制御装置および制御プログラム更新方法
JP5487691B2 (ja) 車両制御装置、車両制御プログラム
JP6784581B2 (ja) 自動車用電子制御装置及びdmaコントローラの異常検知方法
US20170154480A1 (en) Information processing apparatus and large scale integrated circuit
JP2018041402A (ja) 電子制御装置
JP6512065B2 (ja) 電子制御装置
JP5835160B2 (ja) 電子制御装置
JP5360216B2 (ja) 情報管理装置、及び情報管理方法
JP2005115795A (ja) フェイルセイフ制御装置
JP6663371B2 (ja) 電子制御装置
JP6813513B2 (ja) プロセッサシステムのプログラムカウンタ構造を保護する方法及び装置並びに中断要求の処理を監視する方法及び装置
JP6463445B1 (ja) 車載制御装置
JP4820679B2 (ja) 車両用電子制御装置
JP2015171853A (ja) 自動車用電子制御装置
JP2012174198A (ja) 異常検出装置、および異常検出プログラム
JP6183251B2 (ja) 電子制御装置
US20160267034A1 (en) Controller, bus circuit, control method, and recording medium
JP6524989B2 (ja) 演算器の動作保証方法
JP5942904B2 (ja) 処理装置
JP6771272B2 (ja) 車載電子制御装置及びスタック使用方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200521

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: 20201006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201023

R150 Certificate of patent or registration of utility model

Ref document number: 6784581

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250