(57)【要約】【課題】ＤＭＡコントローラによりＤＭＡ転送が行われる自動車用電子制御装置においてＤＭＡ転送異常を検知し、転送領域外のデータ破壊を抑制する。【解決手段】制御対象を制御するための処理を行うＣＰＵと、メモリと、メモリの転送領域にデータを転送するＤＭＡコントローラとを備える自動車用電子制御装置において、複数の転送領域を、空き領域を挟んで分散させて設定すると共に、転送領域の前後にそれぞれ設けた既知データ領域に既知データを格納する。そして、ＣＰＵは、ＤＭＡコントローラによる転送先アドレスが転送領域外であるときに転送異常の発生を判定する。また、ＣＰＵは、転送先アドレスが転送領域内であっても、既知データ領域に格納されているデータが既知データでないときに転送異常の発生を判定する。【選択図】図４
2018092486.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するための処理を行うＣＰＵと、メモリと、前記メモリの転送領域にデータを転送するＤＭＡ（Direct Memory Access）コントローラとを備える自動車用電子制御装置であって、
前記ＤＭＡコントローラによる転送先アドレスが前記転送領域に含まれないときに異常時処理を実施する異常検知手段を含む、自動車用電子制御装置。
【請求項２】
前記異常検知手段は、一定時間毎に前記転送先アドレスが前記転送領域に含まれるか否かを検出する、請求項１記載の自動車用電子制御装置。
【請求項３】
前記転送領域外に既知データが書き込まれる既知データ領域を設け、
前記異常検知手段は、前記転送先アドレスが前記転送領域に含まれないときに異常時処理を実施するとともに、前記既知データ領域のデータが前記既知データでないときに異常時処理を実施する、請求項１又は請求項２記載の自動車用電子制御装置。
【請求項４】
前記既知データ領域は前記転送領域の前後にそれぞれ設けられる、請求項３記載の自動車用電子制御装置。
【請求項５】
前記転送領域は、空き領域を挟んで複数が分散して設定される、請求項１から請求項４のいずれか１つに記載の自動車用電子制御装置。
【請求項６】
制御対象を制御するための処理を行うＣＰＵと、メモリと、前記メモリの転送領域にデータを転送するＤＭＡ（Direct Memory Access）コントローラとを備える自動車用電子制御装置におけるＤＭＡコントローラの異常検知方法であって、
前記転送領域を、空き領域を挟んで複数分散させて設定するステップと、
前記ＤＭＡコントローラによる転送先アドレスが前記転送領域外であるか否かを周期的に判定するステップと、
前記転送先アドレスが前記転送領域外であるときに前記ＤＭＡコントローラによるデータ転送の異常を判定するステップと、
を含む、ＤＭＡコントローラの異常検知方法。
【請求項７】
前記転送領域の前後にそれぞれ設けた既知データ領域に既知データを格納するステップと、
前記既知データ領域に格納されているデータが前記既知データであるか否かを周期的に判定するステップと、
前記既知データ領域に格納されているデータが前記既知データでないときに前記ＤＭＡコントローラによるデータ転送の異常を判定するステップと、
を更に含む、請求項６記載のＤＭＡコントローラの異常検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車用電子制御装置及びＤＭＡコントローラの異常検知方法に関し、詳しくは、ＤＭＡ（Direct Memory Access）コントローラによるデータ転送の異常を検出する技術に関する。
【背景技術】
【０００２】
特許文献１には、ＤＭＡコントローラが、制御データ記憶領域からデータ転送領域へ制御データを転送する前に、制御データ記憶領域に記憶されている制御データとデータ転送領域に記憶されている制御データとが不一致であるか否かを判断し、係る不一致判断結果に基づき、制御部が制御データを送信するか否かを決定する、電子制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１２８１６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ＤＭＡコントローラは、設定された転送回数に達するとメモリの転送開始位置に戻って転送を繰り返し行う機能を有する場合があるが、転送回数に異常が発生すると、転送開始位置に戻るタイミングで戻らずに本来の転送領域を超えて転送が実施され、転送領域外のデータを破壊（上書き）してしまうという問題が生じる。
また、ＤＭＡコントローラによる転送を開始させるメモリ上の位置（転送開始位置）が正規の位置からずれる異常が発生した場合も、本来の転送領域外のデータを破壊（上書き）してしまうという問題が生じる。
【０００５】
本発明は上記問題点に鑑みなされたものであり、ＤＭＡ転送異常を検知できる自動車用電子制御装置及びＤＭＡコントローラの異常検知方法を提供し、以って、転送領域外のデータ破壊を抑制できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
そのため、本願発明に係る自動車用電子制御装置は、その一態様において、制御対象を制御するための処理を行うＣＰＵと、メモリと、前記メモリの転送領域にデータを転送するＤＭＡコントローラとを備える自動車用電子制御装置であって、前記ＤＭＡコントローラによる転送先アドレスが前記転送領域に含まれないときに異常時処理を実施する異常検知手段を含む。
また、本願発明に係るＤＭＡコントローラの異常検知方法は、制御対象を制御するための処理を行うＣＰＵと、メモリと、前記メモリの転送領域にデータを転送するＤＭＡコントローラとを備える自動車用電子制御装置におけるＤＭＡ転送異常の検知方法であって、前記転送領域を、空き領域を挟んで複数分散させて設定するステップと、前記ＤＭＡコントローラによる転送先アドレスが前記転送領域外であるか否かを周期的に判定するステップと、前記転送先アドレスが前記転送領域外であるときに前記ＤＭＡコントローラによるデータ転送の異常を判定するステップと、を含む。
【発明の効果】
【０００７】
上記発明によると、ＤＭＡコントローラによって転送領域外にデータが転送される状態を異常として検知できるから、引き続きデータが転送領域外に転送されることを抑止することが可能になり、転送領域外のデータ破壊を抑制できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態における自動車用電子制御装置の構成図である。
【図２】本発明の実施形態におけるＤＭＡ転送領域の構成を示す図である。
【図３】本発明の実施形態におけるＣＰＵによる初期化処理を示すフローチャートである。
【図４】本発明の実施形態におけるＣＰＵによるＤＭＡ異常検知処理を示すフローチャートである。
【図５】本発明の実施形態におけるＤＭＡ転送の繰り返し異常を示す図である。
【図６】本発明の実施形態におけるＤＭＡ転送の繰り返し異常の検知処理を示す図である。
【図７】本発明の実施形態における転送開始位置の異常である異常パターン１及び異常パターン２を示す図である。
【図８】本発明の実施形態における転送開始位置の異常である異常パターン３及び異常パターン４を示す図である。
【図９】本発明の実施形態における異常パターン３及び異常パターン４とキーワード破壊との関係を示す図である。
【図１０】本発明の実施形態における異常パターン３の検知処理を示す図である。
【図１１】本発明の実施形態における異常パターン４の検知処理を示す図である。
【発明を実施するための形態】
【０００９】
以下に本発明の実施の形態を説明する。
図１は、本発明を適用する自動車用電子制御装置の一態様を示す構成図である。
図１の自動車用電子制御装置１００は、車載エンジンや自動変速機などの制御対象を制御するための処理を行うＣＰＵ（Central Processing Unit）２００、処理プログラムなどを記憶するＲＯＭ（Read Only Memory）３００、データなどを一時的に記憶するＲＡＭ（Random Access Memory）４００、外部のセンサなどから信号を入力し外部の制御対象などに信号を出力する入出力デバイス（Ｉ／Ｏデバイス）５００、ＣＰＵ２００を介さずにメモリ又はメモリと入出力デバイス５００との間で直接データを転送するダイレクトメモリアクセス（Direct Memory Access）を司るＤＭＡコントローラ６００と、これらを接続するバス７００と、を備える。
【００１０】
上記構成の自動車用電子制御装置１００において、ＣＰＵ２００は、ＤＭＡコントローラ６００によるＤＭＡ転送の異常の発生を検知する機能（異常検知手段）をソフトウェアとして有している。
ＤＭＡ転送の異常によるデータ破壊（データの上書き）を抑止し、また、ＤＭＡ転送の異常を検知するために、ＤＭＡコントローラ６００によってデータが転送されるＲＡＭ４００の転送領域（以下、ＤＭＡ転送領域と称する）は図２に示すように構成されている。
【００１１】
ＤＭＡ転送領域は、複数のＤＭＡチャネルch.1，ch.2，ch.3，・・・を含んで構成され、各ＤＭＡチャネルch.1，ch.2，ch.3，・・・の間には、ＤＭＡによるデータ転送の対象領域としない空き領域が設けられ、複数のＤＭＡチャネルch.1，ch.2，ch.3，・・・が空き領域を挟んで分散して設定されるようにしてある。
更に、各ＤＭＡチャネルch.1，ch.2，ch.3，・・・の前後には、既知データが書き込まれる既知データ領域を設けてあり、この既知データ領域には、ＤＭＡ転送の異常によって既知データ領域が上書きされたことをＣＰＵ２００が判別できるように設定されたキーワードが既知データとしてＣＰＵ２００によって書き込まれる。
【００１２】
そして、ＣＰＵ２００は、図３のフローチャートに示される処理及び図４のフローチャートに示される処理を実行して、ＤＭＡ転送の異常を検知する。
図３のフローチャートは、自動車用電子制御装置１００の電源投入時にＣＰＵ２００によって実施される初期化処理を示す。
【００１３】
ＣＰＵ２００は、ステップＳ１１で、各ＤＭＡチャネルch.1，ch.2，ch.3，・・・の前後に設けた既知データ領域のキーワードを初期化する。
図４のフローチャートは、ＣＰＵ２００による定時処理（時間割り込み処理）によって一定時間毎に実施されるＤＭＡ異常検知処理の流れを示す。
【００１４】
まず、ＣＰＵ２００は、ステップＳ２１で、ＤＭＡコントローラ６００による現時点の転送先アドレスがＤＭＡ転送領域内であるか否か（転送先アドレスが転送領域に含まれるか否か）、つまり、ＤＭＡ転送領域外のデータが上書き（破壊）されてしまうＤＭＡ転送異常が発生しているか否かを判別する。
なお、ＣＰＵ２００は、現時点の転送先アドレスが保持されるレジスタのデータを読み込んで、ＤＭＡ転送領域内のアドレスに該当しているか否かを判別する。
【００１５】
そして、現時点の転送先アドレスがＤＭＡ転送領域外であるＤＭＡ転送異常の発生状態では、ＣＰＵ２００は、ステップＳ２３に進んで、ＤＭＡ転送異常の発生に対処するための異常時処理を実行する。なお、ＣＰＵ２００は、異常時処理として、ＤＭＡ転送の停止や、転送先アドレスのリセットなどを実施する。
ＣＰＵ２００は、ステップＳ２３の異常時処理後に、ステップＳ２４に進み、既知データ領域のキーワードを初期化する。
【００１６】
例えば、図５に示すように、ＤＭＡコントローラ６００が、既定回数分の転送処理が完了したときに転送開始位置に戻って繰り返し転送を行う場合に、転送開始位置に戻るタイミングで転送開始位置に戻らずに転送領域外へ転送を続けてしまうＤＭＡ転送異常が発生した場合、ＣＰＵ２００は、図６に示すように、転送先アドレスが転送領域外になった後の診断タイミングでＤＭＡ転送異常を検知する。
【００１７】
ここで、ＤＭＡチャネルch.1，ch.2，ch.3，・・・は、空き領域を挟んで複数が分散して設定されているから、ＤＭＡコントローラ６００によるＤＭＡ転送が、転送開始位置に戻るタイミングで転送開始位置に戻らずに転送領域外へデータ転送を続けてしまっても、転送領域外へのデータ転送が空き領域へのデータ転送になって、ＤＭＡチャネルch.1，ch.2，ch.3，・・・のデータ上書き（破壊）を抑制できる。
【００１８】
なお、図４のフローチャートに示すルーチン（ＤＭＡ異常検知処理）の実行周期が長いと、ＤＭＡコントローラ６００が転送領域外へデータ転送を続けてしまったときに、ＤＭＡ異常の検知が遅れて転送領域外で上書きされてしまう領域が大きくなってしまう場合がある。そこで、少なくとも次のＤＭＡチャネルch.1，ch.2，ch.3，・・・が上書きされてしまうことを抑止できるように、図４のフローチャートに示すルーチン（ＤＭＡ異常検知処理）の実行周期及び空き領域の大きさを予め適合させてある。
【００１９】
換言すれば、周期的なＤＭＡ異常検知処理による異常検知が最も遅れる場合でも、転送先アドレスが空き領域内であるときにＣＰＵ２００がＤＭＡ転送異常を検知できるように、ＤＭＡ異常検知処理の実行周期及び空き領域の大きさを設定してある。つまり、ＤＭＡ異常検知処理の実行周期が短い場合は空き領域の大きさを縮小でき、逆に、ＤＭＡ異常検知処理の実行周期が長い場合は空き領域の大きさを拡大する必要が生じる。
【００２０】
また、図７に示す異常パターン１及び異常パターン２のように、ＤＭＡコントローラ６００による転送開始位置がＤＭＡ転送領域外に設定され、かつ、本来の転送領域と実際に転送される領域とが重ならないＤＭＡ転送異常が発生した場合、ＣＰＵ２００は、転送開始時若しくは転送開始直後の診断タイミングにおいて、ＤＭＡコントローラ６００による転送先アドレスがＤＭＡ転送領域外であることに基づきＤＭＡ転送異常を検知する。
この場合、ＤＭＡ転送異常の発生によってどの位置が転送開始位置になるかは不定であるため、ＤＭＡチャネルch.1，ch.2，ch.3，・・・の上書きを抑止することは難しいが、ＣＰＵ２００は、転送開始直後に異常を検知して異常時処理を実施でき、これにより、データ破壊を最小限に抑えることができる。
【００２１】
また、図８に示す異常パターン３のように、ＤＭＡコントローラ６００による転送開始位置がＤＭＡ転送領域の途中に設定され転送完了位置がＤＭＡ転送領域から外れるようなＤＭＡ転送異常（一部重複異常）が発生した場合、転送開始から転送先アドレスがＤＭＡ転送領域内である間、ＣＰＵ２００は、転送先アドレスがＤＭＡ転送領域内であることから異常発生を検知できない。しかし、転送先アドレスがＤＭＡ転送領域から外れると、ＣＰＵ２００は、ＤＭＡ転送異常の発生を検知して異常時処理を実施でき、これにより、データ破壊を最小限に抑えることができる。
【００２２】
同様に、図８に示す異常パターン４のように、ＤＭＡコントローラ６００による転送開始位置がＤＭＡ転送領域よりも前にずれ、転送完了位置がＤＭＡ転送領域内になるようなＤＭＡ転送異常（一部重複異常）が発生した場合、転送開始直後の転送先アドレスがＤＭＡ転送領域外であるとき診断タイミングになれば、ＣＰＵ２００は、ＤＭＡ転送異常の発生を検知して異常時処理を実施でき、これにより、データ破壊を最小限に抑えることができる。
但し、図８に示す異常パターン３及び異常パターン４のように、実際の転送領域がずれて本来の転送領域と部分的に重複する異常が発生した場合、領域ずれが小さいと、転送先アドレスがＤＭＡ転送領域外である期間が短くなり、ＣＰＵ２００は異常を検知する機会を逃してしまう場合がある。
【００２３】
そこで、ＣＰＵ２００は、転送先アドレスがＤＭＡ転送領域内であると判別したときに、ステップＳ２２に進んで、各ＤＭＡチャネルch.1，ch.2，ch.3，・・・の前後の既知データ領域のキーワードがＤＭＡ転送によって破壊されているか否かを判別する。つまり、ＣＰＵ２００は、既知データ領域のキーワードを読み込み、読み込んだデータが既知のデータと一致するか否かを判別することで、既知データ領域の上書き（破壊）の有無を検出する。
そして、キーワードが破壊されている場合、ＣＰＵ２００は、ステップＳ２３及びステップＳ２４に進み、ＤＭＡ転送異常に対処する異常時処理及びキーワードの初期化を実施する。
【００２４】
例えば、図９に示す異常パターン３のように、ＤＭＡコントローラ６００による転送開始位置がＤＭＡ転送領域の途中に設定され転送完了位置がＤＭＡ転送領域から外れるようなＤＭＡ転送異常が発生した場合は、ＤＭＡ転送領域の後側のキーワードが上書きされることになる。
従って、仮に、ＤＭＡ転送領域の終わりから実際の転送が完了するまでの転送先アドレスがＤＭＡ転送領域外である間に診断タイミングが重ならずに、ＣＰＵ２００が転送先アドレスに基づき異常検知できない場合であっても、図１０に示すように、キーワード破壊後の診断タイミングで、転送先アドレスがＤＭＡ転送領域内であるもののキーワードが上書きされていることに基づきＤＭＡ転送異常を検知できる。
【００２５】
また、図９に示す異常パターン４のように、ＤＭＡコントローラ６００による転送開始位置がＤＭＡ転送領域よりも前にずれ、転送完了位置がＤＭＡ転送領域内になるようなＤＭＡ転送異常が発生した場合は、ＤＭＡ転送領域の前側のキーワードが上書きされることになる。
従って、仮に、転送開始位置から本来のＤＭＡ転送領域の始まりまで転送先アドレスがＤＭＡ転送領域外である間に診断タイミングが重ならずに、ＣＰＵ２００が転送先アドレスに基づき異常検知できない場合であっても、図１１に示すように、キーワード破壊後の診断タイミングで、転送先アドレスがＤＭＡ転送領域内であるもののキーワードが上書きされていることに基づきＤＭＡ転送異常を検知できる。
【００２６】
このように、ＣＰＵ２００は、キーワード破壊の有無を判別することで、実際の転送領域が本来のＤＭＡ転送領域からずれる異常が発生したときに、ずれの大きさが小さく転送先アドレスに基づき異常検知できない場合でも、ＤＭＡ転送異常の発生を検知することが可能になり、異常時処理を実施できる。
ＣＰＵ２００は、転送先アドレスがＤＭＡ転送領域内であることを検出しかつキーワード破壊を検出しなかった場合はＤＭＡ転送が正常であると判断し、ステップＳ２３の異常時処理及びステップＳ２４のキーワードの初期化処理を迂回して、本ルーチンを終了させる。
【００２７】
以上、好ましい実施形態を参照して本発明の内容を具体的に説明したが、本発明の基本的技術思想及び教示に基づいて、当業者であれば種々の変形態様を採り得ることは自明である。
ＣＰＵ２００は、キーワードが破壊されているか否かの判別を省略し、転送先アドレスがＤＭＡ転送領域内であるか否かの判別を行う構成とすることができる。
【００２８】
また、キーワードが書き込まれる既知データ領域を、各ＤＭＡチャネルch.1，ch.2，ch.3，・・・の前側と後側とのいずれか一方にのみ設定する構成とすることができる。
また、ＣＰＵ２００は、キーワード破壊に基づきＤＭＡ転送異常を検知した後は、ＤＭＡ異常検知処理の実行周期をより短く変更することができる。
また、空き領域を設定せずに、各ＤＭＡチャネルch.1，ch.2，ch.3，・・・が相互に隣接する構成とすることができる。
【００２９】
ここで、上述した実施形態から把握し得る技術的思想について、以下に記載する。
自動車用電子制御装置は、その一態様として、制御対象を制御するための処理を行うＣＰＵと、メモリと、前記メモリの転送領域にデータを転送するＤＭＡ（Direct Memory Access）コントローラとを備える自動車用電子制御装置であって、前記ＤＭＡコントローラによる転送先アドレスが前記転送領域に含まれないときに異常時処理を実施する異常検知手段を含む。
【００３０】
前記自動車用電子制御装置の好ましい態様において、前記異常検知手段は、一定時間毎に前記転送先アドレスが前記転送領域に含まれるか否かを検出する。
別の好ましい態様では、前記転送領域外に既知データが書き込まれる既知データ領域を設け、前記異常検知手段は、前記転送先アドレスが前記転送領域に含まれないときに異常時処理を実施するとともに、前記既知データ領域のデータが前記既知データでないときに異常時処理を実施する。
【００３１】
さらに別の好ましい態様では、前記既知データ領域は前記転送領域の前後にそれぞれ設けられる。
さらに別の好ましい態様では、前記転送領域は、空き領域を挟んで複数が分散して設定される。
【００３２】
また、ＤＭＡコントローラの異常検知方法は、その一態様として、制御対象を制御するための処理を行うＣＰＵと、メモリと、前記メモリの転送領域にデータを転送するＤＭＡ（Direct Memory Access）コントローラとを備える自動車用電子制御装置におけるＤＭＡコントローラの異常検知方法であって、前記転送領域を、空き領域を挟んで複数分散させて設定するステップと、前記ＤＭＡコントローラによる転送先アドレスが前記転送領域外であるか否かを周期的に判定するステップと、前記転送先アドレスが前記転送領域外であるときに前記ＤＭＡコントローラによるデータ転送の異常を判定するステップと、を含む。
【００３３】
前記ＤＭＡコントローラの異常検知方法の好ましい態様において、前記転送領域の前後にそれぞれ設けた既知データ領域に既知データを格納するステップと、前記既知データ領域に格納されているデータが前記既知データであるか否かを周期的に判定するステップと、前記既知データ領域に格納されているデータが前記既知データでないときに前記ＤＭＡコントローラによるデータ転送の異常を判定するステップと、を更に含む。
【符号の説明】
【００３４】
１００…自動車用電子制御装置、２００…ＣＰＵ、３００…ＲＯＭ、４００…ＲＡＭ、５００…入出力デバイス（Ｉ／Ｏデバイス）、６００…ＤＭＡコントローラ、７００…バス
【図１】
2018092486.tif 000003
【図２】
2018092486.tif 000004
【図３】
2018092486.tif 000005
【図４】
2018092486.tif 000006
【図５】
2018092486.tif 000007
【図６】
2018092486.tif 000008
【図７】
2018092486.tif 000009
【図８】
2018092486.tif 000010
【図９】
2018092486.tif 000011
【図１０】
2018092486.tif 000012
【図１１】
2018092486.tif 000013