JP5449484B2 - 電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法 - Google Patents

電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法 Download PDF

Info

Publication number
JP5449484B2
JP5449484B2 JP2012183324A JP2012183324A JP5449484B2 JP 5449484 B2 JP5449484 B2 JP 5449484B2 JP 2012183324 A JP2012183324 A JP 2012183324A JP 2012183324 A JP2012183324 A JP 2012183324A JP 5449484 B2 JP5449484 B2 JP 5449484B2
Authority
JP
Japan
Prior art keywords
execution interval
global time
value
electronic control
application
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
JP2012183324A
Other languages
English (en)
Other versions
JP2014042153A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012183324A priority Critical patent/JP5449484B2/ja
Publication of JP2014042153A publication Critical patent/JP2014042153A/ja
Application granted granted Critical
Publication of JP5449484B2 publication Critical patent/JP5449484B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Synchronisation In Digital Transmission Systems (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、ネットワークで共通の時間に同期して実行されるアプリケーションの実行間隔監視を行う電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法に関する。
自動車や船舶では、搭載された複数の電子制御装置間で、互いに制御対象の状態や制御量などの情報を共有して制御を実現している。情報共有のために、複数の電子制御装置は、互いに通信線で接続されたネットワークシステムを構築し、ネットワークを介して情報を含むメッセージの送受信を行っている。
このようなネットワーク間でのメッセージの送受信は、電子制御装置間で統一された通信方式に従って行われる。このような通信方式の1つとして、全電子制御装置がネットワークシステムで共通の時間(以下、グローバルタイム)に同期することにより、各電子制御装置があらかじめ定められたタイミングでメッセージの送受信を行う、時分割多重方式がある。
このような時分割多重方式に従って通信を行う電子制御装置では、メッセージを通信線上に送信するタイミング、あるいは通信線上から受信するタイミングのみならず、アプリケーションの実行タイミングも、グローバルタイムに同期させる場合がある。
これにより、アプリケーションでの処理タイミングと通信線上への実際の送受信タイミングとの間の時間差を固定することができ、リアルタイム性を高めることができるとともに、異なる電子制御装置に実装されたアプリケーション間で同期することによって、ネットワークシステム全体で協調した高度な制御を行うことができる。
一例として、グローバルタイムを取得して自身のタイマを補正し、このタイマによってアプリケーションを起動している従来技術がある(例えば、特許文献1参照)。なお、本発明におけるアプリケーションとは、制御用の演算を行うソフトウェアプログラムだけでなく、メッセージの送受信を行うソフトウェアプログラムも含む。
時分割多重方式の一例としては、FlexRay(登録商標)がある。FlexRayでは、FlexRayが定める時間の単位を用いて定義された長さを持つ通信サイクルを繰り返し、この通信サイクルの特定のタイミングにおいて、メッセージの送受信が行われる。FlexRayにおけるグローバルタイムは、このFlexRayが定める時間の単位を用いて表記される。
次に、FlexRayにおいて、各電子制御装置がグローバルタイムを取得する方法について説明する。FlexRayでは、あらかじめ定められた電子制御装置が、毎通信サイクル、特定のメッセージを送信する。そして、各電子制御装置が、この特定のメッセージを受信した時刻に基づき、グローバルタイムを算出し、ネットワークシステムに同期する。
よって、FlexRayでは、ネットワークシステム全体で絶対的なグローバルタイムが示されているわけではなく、各電子制御装置が、それぞれ、ローカルにグローバルタイムを導出することになる。そして、各電子制御装置は、一度ネットワークシステムに同期し、通信可能になった後も、電子制御装置間のクロック偏差などの影響を受けないようにするために、毎通信サイクル、特定のメッセージの受信した時刻に基づき、自身のグローバルタイムを補正する。
この補正によって、FlexRayが定める時間の1単位の長さや、通信サイクル全体の長さは、あらかじめ定めた補正幅内で、長くなったり短くなったりと、前後することになる。
このようなFlexRayにおいて、特許文献1のように、アプリケーションの実行タイミングをグローバルタイムに同期させる場合、グローバルタイムが補正されると、通信サイクルの長さが前後する。その結果、アプリケーションの実行タイミングも、この補正によって前後することになる。
ところで、近年、電子制御装置の信頼性向上を目的として、アプリケーションの実行時間あるいは実行間隔を監視する時間保護機能の適用が求められつつある。実行間隔の監視では、周期的に起動するアプリケーションの実行間隔が所定の時間より短い場合に、エラーとして検出し、リセットやエラーモードへの遷移などのエラー処理を行う。
このようにすることで、一時的なビット反転や、ハードウェアの恒久的な異常により、アプリケーションの実行が異常頻発し、CPUリソースを占有して電子制御装置を制御不能にする、あるいはこの電子制御装置から受信したメッセージを用いて制御を行う他の電子制御装置を制御不能にすることを避けることができる。
また、例えば、所定の監視間隔で、割込み発生数を監視し、割込み発生数が所定の閾値を超えた場合に、エラーとしている従来技術がある(例えば、特許文献2参照)。
他にも、一般的な方法として、アプリケーションの実行開始毎に、CPUが備えるカウンタの値を参照し、前回実行開始時のカウンタの値との差から、実行間隔が所定の時間より短くないか監視する方法などがある。
特開2011−234212号公報 特開2010−271993号公報
しかしながら、従来技術には、以下のような課題がある。
特許文献1において、電子制御装置のアプリケーションの実行タイミングをFlexRayのグローバルタイムに同期させる場合には、上述したように、アプリケーションの実行タイミングが、グローバルタイムの補正によって前後することになる。
このような電子制御装置において、特許文献2のような実行間隔の監視を行う場合には、アプリケーションの実行タイミングが、実行間隔監視が定めた時間よりも短くなり、エラーと判定される可能性がある。
例えば、FlexRayの通信サイクルの長さの初期値が5ms相当であり、アプリケーションの実行間隔が、FlexRayの通信サイクルの100回分、すなわち初期値が500ms相当である場合には、アプリケーションの1回の起動毎に、グローバルタイムは、最大100回補正されることになる。
その結果、補正幅が蓄積して、アプリケーションの実行間隔が500msよりも大幅に短くなる場合がある。したがって、アプリケーションの実行間隔が、実行間隔監視が定めた時間より短くなり、実行間隔監視エラーと判定される可能性が高くなる。
実行間隔監視で定める実行間隔の時間には、あらかじめこれらのグローバルタイムの補正幅を考慮して設定することも考えられる。しかし、グローバルタイムの補正幅が大きい場合、アプリケーションの実行周期よりも大幅に短い時間を設定しなければならない。その結果、異常によってアプリケーションの実行時間が短くなっても検出できず、本来の実行間隔監視の機能を果たさなくなる可能性がある。また、これらを考慮して最適値を設定するには、動作検証に時間を要するため、開発工数の増大につながる。
本発明は、上記のような課題を解決するためになされたものであり、グローバルタイムの補正によって、アプリケーションの実行間隔が変動した場合にも、実行間隔監視エラーとして誤検出される事態を回避し、アプリケーションを所望のタイミングで実行できる電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法を得ることを目的とする。
本発明に係る電子制御装置は、通信線を介して相互接続された複数の電子制御装置が、共通の時間であるグローバルタイムに同期して通信を行うことで情報を送受信するネットワークシステムに用いられる電子制御装置であって、他の電子制御装置と情報を送受信するための通信制御手段と、通信制御手段が通信サイクルごとに受信した、ネットワークシステムで共通の時刻情報に基づいて、グローバルタイムを算出するグローバルタイム算出手段と、グローバルタイム算出手段で算出されたグローバルタイムに同期して、1以上のアプリケーションを実行する演算処理手段または、グローバルタイム算出手段で算出されたグローバルタイムを用いて、演算処理手段における各アプリケーションの実行間隔の計測を行い、計測したそれぞれの実行間隔と、アプリケーションごとにあらかじめ決められた閾値とを比較し、計測された実行間隔が閾値以下であるアプリケーションがある場合には、当該アプリケーションで実行間隔エラーが発生したと判定する実行間隔監視手段の少なくともいずれか一方とを備え、一定間隔で値が増加あるいは減少するローカルカウンタをさらに備え、実行間隔監視手段は、グローバルタイム算出手段が、グローバルタイムに非同期であると判断した状態においては、ローカルカウンタの値を用いて計測した実行間隔に基づいて、各アプリケーションの実行間隔エラーの発生の有無を判定するものである。
また、本発明に係る電子制御装置に適用されるアプリケーションの実行間隔監視方法は、通信線を介して相互接続された複数の電子制御装置が、共通の時間であるグローバルタイムに同期して通信を行うことで情報を送受信するネットワークシステムに用いられる電子制御装置に適用されるアプリケーションの実行間隔監視方法であって、他の電子制御装置と情報を送受信するための通信制御ステップと、通信制御ステップで通信サイクルごとに受信した、ネットワークシステムで共通の時刻情報に基づいて、グローバルタイムを算出するグローバルタイム算出ステップと、グローバルタイム算出ステップで算出されたグローバルタイムに同期して、1以上のアプリケーションを実行する演算処理ステップまたは、グローバルタイム算出ステップで算出されたグローバルタイムを用いて、演算処理ステップにおける各アプリケーションの実行間隔の計測を行い、計測したそれぞれの実行間隔と、アプリケーションごとにあらかじめ決められた閾値とを比較し、計測された実行間隔が閾値以下であるアプリケーションがある場合には、当該アプリケーションで実行間隔エラーが発生したと判定する実行間隔監視ステップの少なくともいずれか一方とを備え、実行間隔監視ステップは、グローバルタイム算出ステップが、グローバルタイムに非同期であると判断した状態においては、一定間隔で値が増加あるいは減少するローカルカウンタの値を用いて計測した実行間隔に基づいて、各アプリケーションの実行間隔エラーの発生の有無を判定するものである。
本発明に係る電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法によれば、グローバルタイムを用いてアプリケーションの実行間隔を監視することにより、グローバルタイムの補正によって、アプリケーションの実行間隔が変動した場合にも、実行間隔監視エラーとして誤検出される事態を回避し、アプリケーションを所望のタイミングで実行できる電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法を得ることができる。
本発明の実施の形態1に係る2つの電子制御装置を備えたネットワークシステムの構成図である。 本発明の実施の形態1における実行間隔監視手段が保持する、アプリケーション毎にあらかじめ定められた実行間隔の閾値のテーブルである。 本発明の実施の形態1におけるFlexRayのグローバルタイムにおけるサイクルとチックの関係を示すタイムチャートである。 本発明の実施の形態1における実行間隔監視手段による一連動作を示すフローチャートである。 本発明の実施の形態1におけるグローバルタイムと、演算処理手段、実行間隔監視手段の起動タイミングの関係と、実行間隔監視状況とを示すタイムチャートである。 本発明の実施の形態1でアプリケーションの実行間隔異常が発生した場合におけるグローバルタイムと、演算処理手段、実行間隔監視手段の起動タイミングの関係と、実行間隔監視状況とを示すタイムチャートである。 本発明の実施の形態2に係るECUの構成図である。 本発明の実施の形態2における実行間隔監視手段が保持する、アプリケーション毎にあらかじめ定められた実行間隔の閾値のテーブルである。 本発明の実施の形態2における切替手段の一連処理を示すフローチャートである。 本発明の実施の形態2における実行間隔監視手段の一連処理を示すフローチャートである。 本発明の実施の形態2におけるグローバルタイムおよびローカルカウンタ値と、演算処理手段、実行間隔監視手段の起動タイミングの関係と、実行間隔監視状況とを示すタイムチャートである。 本発明の実施の形態3に係るECUの構成図である。 本発明の実施の形態3における切替手段の一連処理を示すフローチャートである。 本発明の実施の形態3における実行間隔監視手段の一連処理を示すフローチャートである。 本発明の実施の形態3におけるグローバルタイムおよびローカルカウンタ値と、演算処理手段、実行間隔監視手段の起動タイミングの関係と、通信エラーカウンタおよび実行間隔監視状況とを示すタイムチャートである。 本発明の実施の形態4に係るECUの構成図である。 本発明の実施の形態4におけるグローバルタイム算出手段の一連処理を示すフローチャートである。
以下、本発明の電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法の好適な実施の形態につき図面を用いて説明する。
実施の形態1.
図1は、本発明の実施の形態1に係る2つの電子制御装置を備えたネットワークシステムの構成図である。本ネットワークシステム101では、2つの電子制御装置に相当するECU102、103間が、通信線104によって互いに接続されている。
各ECU102、103は、通信制御手段105、グローバルタイム算出手段106、演算処理手段107、および実行間隔監視手段108を備えて構成されている。通信制御手段105とグローバルタイム算出手段106は、通常、FlexRay通信コントローラと呼ばれ、H/Wで実装されているものである。
各ECU102、103の通信制御手段105は、FlexRay通信が可能になると、グローバルタイム算出手段106が提供するグローバルタイムに基づき、定められたタイミングでメッセージの送受信を行う。
グローバルタイム算出手段106は、サイクル値とチック値で表されるFlexRayのグローバルタイムを管理し、通信制御手段105、演算処理手段107、実行間隔監視手段108に対して、現在のグローバルタイムを提供する。
演算処理手段107は、グローバルタイム算出手段106が提供するグローバルタイムに基づき、アプリケーションX(アプリケーションを4つと仮定すると、X=1〜4)を実行する。アプリケーションXの演算結果は、例えば、直接ECU102、103に接続されたアクチュエータ(図1には図示せず)の制御に用いられる、あるいは、メッセージとして通信線104を介して送信し、他のECU102、103での演算に使用されることとなる。
アプリケーションXがネットワークシステム101全体で共通のグローバルタイムと同期して実行されるため、他のECU102、103と協調した車両の制御を行うことが可能である。
実行間隔監視手段108は、演算処理手段107の起動直前に実行され、グローバルタイム算出手段106が提供するグローバルタイムを取得し、記憶する。また、実行間隔監視手段108は、前回アプリケーションXを実行する前に取得したグローバルタイムとの差分を下記のように算出する。
(実行間隔)=(今回、アプリケーション実行前に取得したグローバルタイム)
−(前回、アプリケーション実行前に取得したグローバルタイム)
そして、実行間隔監視手段108は、算出した実行間隔と、アプリケーション毎にあらかじめ定められた実行間隔の閾値とを比較する。さらに、実行間隔監視手段108は、算出した実行間隔が閾値以下の場合には、エラーと判定し、取得したグローバルタイムをエラー発生時グローバルタイムとして記憶するとともに、演算処理手段107を停止するというエラー処理を行う。
図2は、本発明の実施の形態1における実行間隔監視手段108が保持する、アプリケーション毎にあらかじめ定められた実行間隔の閾値のテーブルである。図2において、例えば、アプリケーション1の実行間隔が9900チック以下のときに、エラーと判定される。
次に、グローバルタイム算出手段106のグローバルタイム管理方法について説明する。FlexRayの仕様では、詳細な管理方法が定められているが、ここでは、本実施の形態1の説明に必要な動作のみ示す。
グローバルタイムは、サイクル値とチック値の組で表記される。図3は、本発明の実施の形態1におけるFlexRayのグローバルタイムにおけるサイクル値とチック値の関係を示すタイムチャートであり、サイクル値とチック値の2つの例が、(a)、(b)として示されている。
通信制御手段105が、FlexRayのスタートアップフレームあるいは同期フレームと呼ばれる特定のメッセージの受信を開始すると、サイクル値とチック値のインクリメントが開始される。1チックの長さは、補正されるまで、グローバルタイム算出手段106が保持する初期値の長さ(1チック=2μsなど)毎にインクリメントされる。
そして、本実施の形態1では、チック値は、インクリメントされた値が5000チックになるときに、0にリセットされる。よって、FlexRayの通信サイクルの長さは、このチック値の最大値である5000チックと表記される。
一方、サイクル値は、チック値が0にリセットされるタイミングでインクリメントされる。サイクル値の最大値は63で、63になると次にインクリメントされるタイミングで0に戻る。
サイクル値とチック値のインクリメントが開始されると、グローバルタイム算出手段106は、各通信サイクルにおいて、スタートアップフレームあるいは同期フレームの受信時刻と、あらかじめ設定された予測受信時刻との差分を補正値として算出する。そして、グローバルタイム算出手段106は、通信サイクル内の定められたタイミングにおいて、自身が管理するチック値を、この補正値を用いて補正する。
この補正は、1チックの長さを長くしたり短くしたり、1通信サイクルあたりのチック値の最大値を一時的に大きくしたり、小さくしたりするものである。図3(b)は、図3(a)に対して、1チックの長さが短く補正されたときの、サイクル値とチック値の関係を示している。この図から明らかなように、1通信サイクルのチック数は、あらかじめ設定した5000チックで変化していないが、1チックの長さを短くなるよう補正することにより、1通信サイクルの絶対長は、短くなっている。
続いて、実行間隔監視手段108の動作について、フローチャートを用いて説明する。図4は、本発明の実施の形態1における実行間隔監視手段108による一連動作を示すフローチャートである。
実行間隔監視手段108は、アプリケーションXの実行前に起動すると、ステップS401において、グローバルタイム算出手段106から、現在のグローバルタイムを示す{サイクル値、チック値}={c、t}を取得する。
次に、ステップS402において、実行間隔監視手段108は、前回アプリケーションXを実行する前に取得し、記憶したグローバルタイム{cX’、tX’}を取得する。
そして、ステップS403において、実行間隔監視手段108は、ステップS401で取得した現在のグローバルタイム{c、t}と、ステップS402で取得した前回のグローバルタイム{cX’、tX’}の差を算出し、実行間隔IntXを求める。
次に、ステップS404において、実行間隔監視手段108は、図2に示すテーブルを参照し、アプリケーションX用に設定された閾値thXを取得する。
さらに、ステップS405において、実行間隔監視手段108は、ステップS403で算出した実行間隔IntXと、ステップS404で取得した閾値thXとを比較する。そして、実行間隔監視手段108は、実行間隔IntXが閾値thXよりも大きい場合には、実行間隔に問題がないと判断して、ステップS406に進む。
そして、ステップS406に進んだ場合には、実行間隔監視手段108は、前回のグローバルタイム{cX’、tX’}を現在のグローバルタイム{c、t}によって上書きし、一連処理を終了する。
一方、実行間隔IntXが閾値thX以下の場合には、実行間隔監視手段108は、ステップS405からステップS407の処理に進む。そして、ステップS407に進んだ場合には、実行間隔監視手段108は、実行間隔エラーであると判定し、エラーが発生したときのグローバルタイムである現在のグローバルタイム{c、t}を、エラー発生時グローバルタイムとして記憶するとともに、演算処理手段107によるアプリケーションXの実行を禁止して、一連処理を終了する。
次に、具体的な数値例に基づくタイムチャートを用いて、この図4のフローチャートによる一連処理を詳細に説明する。図5は、本発明の実施の形態1におけるグローバルタイムと、演算処理手段、実行間隔監視手段の起動タイミングの関係と、実行間隔監視状況とを示すタイムチャートである。なお、この図5において、横軸は、時間を示している。
また、図5(a)は、本実施の形態1における実行間隔監視方法に対応するタイムチャートであり、図5(b)は、従来の実行間隔監視方法に対応するタイムチャートである。そして、これら図5(a)および図5(b)では、サイクル値0〜4の間は、グローバルタイムの補正を行う必要がなく、1通信サイクル長は一定であるが、サイクル値5から、グローバルタイムの補正が必要となり、1チックの長さが短くなり、サイクル値0〜4のときよりも、1通信サイクルの長さが短くなっている場合を仮定している。
演算処理手段107は、ネットワークシステム101全体の動作と同期するため、特定のグローバルタイム、すなわち、特定のサイクル値の特定のチック値のときに、定められたアプリケーションXを実行する。例えば、アプリケーション1は、サイクル値が奇数かつチック値が1250のときに実行される。以降、アプリケーション1について説明するが、アプリケーション2〜4でも処理は、同様である。
実行間隔監視手段108は、演算処理手段107がアプリケーション1を実行する直前に起動し、ステップS401において、グローバルタイム算出手段106から現在のグローバルタイム{サイクル値、チック値}={c、t}を取得し、記憶する。ここでは、{c、t}={3、1250}での処理について説明する。
次に、ステップS402において、実行間隔監視手段108は、前回アプリケーション1を実行する前に記憶したグローバルタイム{c1’、t1’}={1、1250}を取得する。そして、ステップS403において、実行間隔監視手段108は、実行間隔Int1を算出する。ここで、1通信サイクルあたりの5000チックは、固定であるため、実行間隔Int1={c、t}−{c1’、t1’}=10000チックとなる。
続いて、ステップS404において、実行間隔監視手段108は、図2のテーブルを参照し、アプリケーション1の閾値th1=9900を取得する。そして、ステップS405において、実行間隔監視手段108は、
(閾値th1=9900チック)<(算出した実行間隔Int1=10000チック)
であることから、実行間隔は正常であると判断し、エラー処理は行わず、ステップS406に進む。そして、ステップS406において、実行間隔監視手段108は、前回グローバルタイムとして{c1’、t1’}={c、t}={3、1250}を上書きして、一連処理を終了する。
1チックの長さが短く補正されているサイクル値5以降であっても、図5(a)から明らかなように、実行間隔Int1は、グローバルタイムで常に10000チックとなり、{c、t}={3、1250}のときと、処理は同じである。
このように、本実施の形態1における実行間隔監視手段108は、グローバルタイムを用いて実行間隔を監視するため、グローバルタイムが補正されても、エラーと判定することがない。これにより、演算処理手段107は、正常に処理を継続することができる。
続いて、比較対象として図5(b)に示した従来手法での処理の流れを、タイムチャートに沿って説明する。従来手法では、FlexRayのグローバルタイムに同期して起動するアプリケーションXの実行間隔監視に、ECU内のシステムカウンタなど、ローカルカウンタの値を用いている。比較を容易にするため、図5(b)のサイクル値0〜4では、ローカルカウンタの1カウントと、グローバルタイムの1チックとは同じ時間幅であるとする。したがって、参照する閾値を記載したテーブルも図2と同じとする。
従来手法において、{c、t}={3、1250}のときのアプリケーション1の実行間隔監視では、次のローカルカウンタの値、
・今回取得したローカルカウンタ値 : 16250
・前回取得したローカルカウンタ値 : 6250
から、実行間隔Int1=10000カウントと算出される。
そして図2のテーブルを参照し、
(閾値th1=9900チック)<(算出した実行間隔Int1=10000チック)
であることから、実行間隔がエラーと判定されることなく、正常に一連処理を継続する。
一方、グローバルタイムが補正され、1チックの長さが短くなったサイクル値5以降、例えば、{c、t}={5、1250}のときには、次のローカルカウンタの値、
・今回取得したローカルカウンタ値 : 25937
・前回取得したローカルカウンタ値 : 16250
から、実行間隔Int1=9687カウントと算出される。
そして、図2のテーブルの参照の結果、
(閾値th1=9900チック)>(算出した実行間隔Int1=9687カウント)
であることから、閾値よりも実行間隔が短いために、エラーと誤判定されて、演算処理が停止してしまうこととなる。
このように、従来手法では、他のECUのアプリケーションと協調して制御を行うためにグローバルタイムと同期してアプリケーションを実行しているにも関わらず、ローカルカウンタの値を用いて実行間隔監視を行っている。このため、グローバルタイムが補正され、1チックの長さが短くなった場合の実行間隔監視によって、エラーと誤判定されてしまう場合が生じる。そして、この場合には、誤った判定に基づいて演算処理の動作が停止し、制御を継続することができなくなってしまう。
これに対して、本実施の形態1における実行間隔監視手段では、図5(a)で説明したように、グローバルタイムと同期してアプリケーションを実行しながら、グローバルタイムの値を用いて実行間隔監視を行っているため、実行間隔監視を適切に行うことができる。
次に、本実施の形態1において、ノイズなどに起因する電圧変化によって、アプリケーション1が本来とは違う起動タイミングで起動した場合の実行間隔監視手段108の処理の流れを、図4のフローチャートと、図6のタイムチャートを用いて説明する。図6は、本発明の実施の形態1でアプリケーションの実行間隔異常が発生した場合におけるグローバルタイムと、演算処理手段、実行間隔監視手段の起動タイミングの関係と、実行間隔監視状況とを示すタイムチャートである。
図6に示すように、本来、奇数サイクルでのみ実行されるはずのアプリケーション1が、ノイズの発生によって、{c、t}={8、1250}において、誤って実行を要求されたとする。
このとき、実行間隔監視手段108が起動すると、実行間隔監視手段108は、図4のステップS401において、現在のグローバルタイム{c、t}={8、1250}を取得し、記憶する。次に、ステップS402において、実行間隔監視手段108は、前回アプリケーション1を実行する前に記憶したグローバルタイム{c1’、t1’}={7、1250}を取得する。
そして、ステップS403において、実行間隔監視手段108は、実行間隔Int1を算出する。このとき、1通信サイクル=5000チックは固定であるため、実行間隔Int1={c1’、t1’}−{c、t}=5000チックとなる。
続いて、ステップS404において、実行間隔監視手段108は、アプリケーション1の閾値th1=9900を取得する。さらに、ステップS405において、実行間隔監視手段108は、
(閾値th1=9900チック)>(算出した実行間隔Int1=5000チック)
であることから、閾値th1よりも実行間隔Int1が短いため、エラーと判断する。さらに、実行間隔監視手段108は、エラー発生時のグローバルタイム{c、t}={8、1250}をエラー発生時グローバルタイムとして記憶するとともに、演算処理手段107による、アプリケーション1の実行を禁止する。
このように、本実施の形態1における実行間隔監視手段108では、エラーと誤判定することがない一方で、異常発生時には、エラーとして高精度に検出することができる。また、実行間隔監視手段108は、エラー発生時の時間を、そのエラー発生時に取得したグローバルタイムとして記憶している。
従って、このエラー発生時のグローバルタイムを、例えば、演算処理手段107がエラー通知メッセージとしてネットワークシステム101の他のECU102あるいは103に送信し、エラーが発生したECU102あるいは103がエラー発生以降に送信したメッセージを、受信したECU102あるいは103が破棄するように指示することなどができる。
以上のように、実施の形態1によれば、グローバルタイムを用いて実行間隔を監視するため、グローバルタイムが補正され、1チックの長さが変動した場合にも、高精度な監視を行うことができる。さらに、ネットワークシステムで共通のグローバルタイムを用いてエラー発生時の時間を記憶することで、例えば、エラー通知メッセージ、あるいはエラーに伴う指示を通知して、実行間隔エラーが発生していない他の電子制御装置が、エラー発生時点を正確に認識し、適切に対応することができる、あるいは記憶したエラー発生時の時間から、ディーラーなどで、エラー発生原因の解析に使用することができる。
さらに、グローバルタイムを用いて実行間隔を監視するため、従来手法のように実行間隔の監視にローカルカウンタを必要とせず、ローカルカウンタの設定、開始、終了と言った処理に掛かる時間や、メモリの消費量を抑えることができる。
なお、本実施の形態1では、演算処理手段107の直前に実行間隔監視手段108が起動し、実行間隔を監視するようにしたが、本発明はこれに限定されるものではない。例えば、実行間隔監視手段108は、演算処理手段107とは独立してグローバルタイムに従って起動し、前回起動以降に演算処理手段107がアプリケーションを実行した回数を計測して、計測した回数があらかじめ定めた実行回数の閾値を超えた場合に、実行間隔が短いとしてエラーと判定するものであってもよい。
また、本実施の形態1では、全てのECU102、103が演算処理手段107と実行間隔監視手段108を備えているが、演算処理手段107のみ備えている、あるいは実行間隔監視手段108のみ備えているものであってもよい。
実施の形態2.
本実施の形態2では、電子制御装置の具体例として、車載電子制御装置(以下、ECU)の構成について、図面に基づいて説明する。図7は、本発明の実施の形態2に係るECU701の構成図である。図7中、図1と同一、相当部分には同一符号を付し、説明を省略する。
本実施の形態2に係るECU701は、先の図1の構成に加えて、同期フラグ704、ローカルカウンタ705、切替手段706をさらに備えている。また、グローバルタイム算出手段702および実行間隔監視手段703は、それぞれ先の図1におけるグローバルタイム算出手段106および実行間隔監視手段108に対応するものである。
グローバルタイム算出手段702は、サイクル値とチック値で表されるFlexRayのグローバルタイムを管理し、通信制御手段105、演算処理手段107、実行間隔監視手段703、切替手段706に対して、グローバルタイムを提供する。グローバルタイム算出手段702が最初にグローバルタイムの管理に使用する1チックの長さは、初期値T0である。
さらに、グローバルタイム算出手段702は、ECU701がFlexRayによる通信に同期し、グローバルタイムが更新される同期中は、同期フラグ704を1にセットする。ECU701が通信に非同期で、グローバルタイムが最後に更新されたときの値を示す場合には、グローバルタイム算出手段702は、同期フラグ704を0にセットする。すなわち、同期フラグ704は、グローバルタイム算出手段702によって書き込まれるメモリであり、現在のECU701の同期状態(1=同期、0=非同期)を示す。
ローカルカウンタ705は、ECU701に実装された水晶振動子(図7には図示せず)に基づいてインクリメントされるカウンタである。したがって、グローバルタイムとは独立して動作し、1カウントの長さL0は固定となる。ローカルカウンタ705は、実行間隔監視手段703および切替手段706に対して、現在のローカルカウンタ705の値を提供する。
実行間隔監視手段703は、同期フラグ704を参照し、ECU701がFlexRayによる通信に同期し、グローバルタイム算出手段702がグローバルタイムを提供している間は、先の実施の形態1と同じ処理を行う。一方、同期する前や、同期から外れた場合には、実行間隔監視手段703は、ローカルカウンタ705の値を取得し、前回実行したときに取得したローカルカウンタ705の値との差分を用いて実行間隔の監視を行う。
図8は、本発明の実施の形態2における実行間隔監視手段108が保持する、アプリケーション毎にあらかじめ定められた実行間隔の閾値のテーブルである。このテーブルでは、各アプリケーションの実行間隔の閾値として、グローバルタイムで計測する場合の閾値thX(X=1〜4)と、ローカルカウンタで計測する場合の閾値LthXの2種類を有している。
切替手段706は、非同期状態から同期状態へ変化したときや、同期状態から非同期状態へ変化したときに実行され、同期フラグ704の状態に応じて、実行間隔監視手段703が記憶している前回実行時のグローバルタイムやローカルカウンタ705の値を上書きする。なお、本実施の形態2の前提条件として、先の実施の形態1と同様、FlexRayの1通信サイクルは、5000チックとする。
次に、切替手段706の動作について、フローチャートを用いて説明する。図9は、本発明の実施の形態2における切替手段706の一連処理を示すフローチャートである。切替手段706は、非同期から同期、同期から非同期などの状態変化時に実行が開始される。
ステップS901において、切替手段706は、同期フラグ704の状態から、ECU701がFlexRayによる通信に同期中か否か確認する。同期中の場合には、ステップS902へ移る。一方、同期中でない、すなわち、非同期の場合には、ステップS903へ移る。
そして、ステップS902において、切替手段706は、実行間隔監視手段703が記憶する、前回アプリケーションX(X=1〜4)を実行する前に取得したグローバルタイムのサイクル値cX’をcX’=65で上書きし、処理を終了する。ここで、サイクル値は、同期中は0〜63の値を取り、65は取りえない。したがって、cX’=65とすることで、前回実行時のグローバルタイムが使用できないことを判断することができる。なお、本実施の形態2では65としたが、0〜63以外の値でああればよく、また、前回実行時のグローバルタイムが使用できないことを示すフラグを設定してもよい。
一方、ステップS901において、非同期中であると判断された場合には、切替手段706は、処理をステップS903に移す。そして、切替手段706は、ステップS903において、現在のローカルカウンタ705の値lを取得する。次に、ステップS904において、切替手段706は、現在のグローバルタイム{サイクル値、チック値}={c、t}を取得する。ただし、このとき、非同期に切り替わった直後であるため、取得するグローバルタイムは、最後にグローバルタイム算出手段702が更新した値となる。
続いて、ステップS905において、切替手段706は、実行間隔監視手段703が前回アプリケーションXを実行する前に取得し、記憶したグローバルタイム{cX’、tX’}を取得する。そして、ステップS906において、切替手段706は、ステップS904で取得したグローバルタイム{c、t}と、ステップS905で取得した前回のグローバルタイム{cX’、tX’}との差を算出し、前回のグローバルタイムから現在までの経過グローバルタイムを算出する。
次に、ステップS907において、切替手段706は、ステップS906の経過グローバルタイム({c、t}−{cX’、tX’})を、ローカルカウンタ705のカウント単位へ変換するため、チックからカウントへの変換係数TLを乗算し、経過カウント数TL({c、t}−{cX’、tX’})とする。このチックからカウントへの変換係数TLは、1チックの長さの初期値T0と、ローカルカウンタ705の1カウントの長さL0を用いて以下のように算出される。
TL=T0/L0
さらに、ステップS908において、切替手段706は、ステップS903で取得した現在のローカルカウンタ705の値lから、ステップS907で算出した経過カウント数TL({c、t}−{cX’、tX’})を差し引く。これにより、前回アプリケーションXを実行する直前のローカルカウンタの値l’が算出される。
次に、ステップS909において、切替手段706は、実行間隔監視手段703が前回アプリケーションXを実行する前に記憶したローカルカウンタの値をステップS908の値l’で上書きし、一連処理を終了する。
次に、実行間隔監視手段703の動作について、フローチャートを用いて説明する。図10は、本発明の実施の形態2における実行間隔監視手段703の一連処理を示すフローチャートである。図10中、先の図4と同一、相当部分には同一符号を付し、説明を省略する。
アプリケーションXの実行前に実行間隔監視手段703が起動すると、実行間隔監視手段703は、ステップS1001において、同期フラグ704の状態から、ECU701がFlexRayによる通信に同期中か否か確認する。同期中の場合には、ステップS401へ移る。一方、同期中でない、すなわち、非同期の場合には、ステップS1003へ移る。
ステップS401において、実行間隔監視手段703は、グローバルタイム算出手段702から、現在のグローバルタイムを示す{サイクル値、チック値}={c、t}を取得する。次に、ステップS402において、実行間隔監視手段703は、前回アプリケーションXを実行する前に取得し、記憶したグローバルタイム{cX’、tX’}を取得する。
そして、ステップS1002において、実行間隔監視手段703は、ステップS402で取得したサイクル値cX’が65であるか否か確認する。そして、実行間隔監視手段703は、サイクル値cX’が65でない場合には、ステップS403に進む。一方、実行間隔監視手段703は、サイクル値cX’が65である場合には、前回実行時は非同期状態であったため、グローバルタイムは取得できていないとして、実行間隔監視はせずに、ステップS406へ進む。
ステップS403からステップS407における実行間隔監視については、すでに説明済みであり、説明を省略する。
先のステップS1001において、非同期であった場合、ステップS1003に進み、このステップS1003において、実行間隔監視手段703は、ローカルカウンタ705から、現在のローカルカウンタ値lを取得する。
さらに、ステップS1004において、実行間隔監視手段703は、前回アプリケーションXを実行する前に取得、あるいは切替手段706によって上書きされた、ローカルカウンタ値lX’を取得する。
次に、ステップS1005において、実行間隔監視手段703は、ステップS1003で取得した現在のローカルカウンタ値lと、ステップS1004で取得した前回のローカルカウンタ値lX’との差を算出し、実行間隔IntXを求める。
次に、ステップS1006において、実行間隔監視手段703は、先の図8に示すテーブルを参照し、アプリケーションX用に設定された閾値LthXを取得する。次に、ステップS1007において、実行間隔監視手段703は、ステップS1005で算出した実行間隔IntXと、ステップS1006で取得した閾値LthXとを比較する。そして、実行間隔監視手段703は、実行間隔IntXが閾値LthXよりも大きい場合には、実行間隔に問題がないと判断して、ステップS1008へ進む。
そして、ステップS1008に進んだ場合には、実行間隔監視手段703は、前回のローカルカウンタ値lX’を現在のローカルカウンタ値lによって上書きし、一連処理を終了する。この結果、演算処理手段107からアプリケーションXが実行可能になる。
一方、ステップS1007において、実行間隔監視手段703は、実行間隔IntXが閾値LthX以下の場合には、ステップS407に進み、実行間隔エラーと判定し、エラー処理を行うために、演算処理手段107によるアプリケーションXの実行を禁止する。そして、一連処理を終了する。
次に、具体的な数値例に基づくタイムチャートを用いて、これら図9、図10のフローチャートに基づく、切替手段706および実行間隔監視手段703による一連処理を詳細に説明する。図11は、本発明の実施の形態2におけるグローバルタイムおよびローカルカウンタ値と、演算処理手段、実行間隔監視手段の起動タイミングの関係と、実行間隔監視状況とを示すタイムチャートである。
なお、この図11において、横軸は、時間を示している。また、ここでは、アプリケーション1のみ説明する。このアプリケーション1は、同期状態、非同期状態であっても、車両状態の取得など、周期的に実行する必要のある機能を実装したアプリケーションであるとする。
はじめに、非同期状態から同期状態になったときの処理について説明する。図11中の(a)において、非同期状態から同期状態になると、切替手段706が起動する。そして、図9のフローチャートのステップS901において、同期中であることから、ステップS902へ移る。そして、ステップS902において、切替手段706は、前回のグローバルタイムのサイクル値c1’をc1’=65で上書きし、処理を終了する。
続いて、図11中の(b)において、グローバルタイムが{c、t}={0、2500}となり、同期状態になってから初めてアプリケーション1の実行タイミングとなったとする。このタイミングは、グローバルタイムを用いてあらかじめ定められているものとする。
アプリケーション1の実行前に実行間隔監視手段703が起動し、図10のフローチャートのステップS1001において、同期フラグ704が1であり、同期中であることから、ステップS401へ移る。
ステップS401において、実行間隔監視手段703は、現在のグローバルタイム{c、t}={0、2500}を取得する。さらに、ステップS402において、実行間隔監視手段703は、前回のグローバルタイム{c1’、t1’}={65、0}を取得する。
そして、ステップS1002において、実行間隔監視手段703は、前回のグローバルタイムがc1’=65であることから、前回実行時は、非同期状態であるため、実行間隔監視は行わず、ステップS406において、前回のグローバルタイムを現在のグローバルタイムで上書き{c1’、t1’}={0、2500}し、処理を終了する。
このように、本実施の形態2において、非同期状態から同期状態へ遷移した場合には、実行間隔監視手段703は、同期状態になってからアプリケーションXに対する最初の実行間隔の監視を行わないようにする。これにより、グローバルタイムに同期してアプリケーションXが実行され、遷移のタイミングで必然的に実行間隔が短くなった場合も、誤って実行間隔エラーと検出することがない。したがって、演算処理手段107は、正常に処理を継続することができる。
また、実行間隔監視手段703は、同期状態になってからアプリケーションXに対する2回目以降の実行間隔の監視処理では、先の実施の形態1で示したのと同じように、グローバルタイムに従って実行間隔を監視することができる。
次に、同期状態から非同期状態になったときの処理について説明する。ここで、前提条件として、グローバルタイムの1チック幅の初期値と、ローカルカウンタ705の1カウント幅は、8対5とし、チックからカウントへの変換係数TL=T0/L0=8/5とする。
図11中の(c)において、同期状態から非同期状態になると、切替手段706が起動する。そして、図9のフローチャートのステップS901において、切替手段706は、非同期であることから、ステップS903に進む。そして、続くステップS903〜S908で、切替手段706は、以下の値を取得する。
ステップS903:現在のローカルカウンタ値l=46000
ステップS904:最新のグローバルタイム{c、t}={51、3750}
ステップS905:前回のグローバルタイム{c1’、t1’}={51、2500}
ステップS906:経過グローバルタイム{c、t}−{c1’、t1’}=1250チック
ステップS907:経過カウント数8/5×1250チック=2000カウント
ステップS908:前回のローカルカウンタ値l1’=l−2000=44000カウント
したがって、ステップS909において、実行間隔監視手段703が記憶する前回のローカルカウンタ値l’を44000で上書きし、切替手段706は、一連処理を終了する。
続いて、図11中の(d)において、ローカルカウンタ値が52000となり、非同期状態になってから初めてアプリケーション1の実行タイミングとなったとする。この非同期状態におけるアプリケーション1の実行タイミングは、あらかじめ定められているものとする。アプリケーション1の実行前に実行間隔監視手段703が起動し、図10のフローチャートのステップS1001において、非同期であることから、ステップS1003へ移る。そして、続くステップS1003〜S1006で、実行間隔監視手段703は、以下の値を取得する。
ステップS1003:現在のローカルカウンタ値l=52000
ステップS1004:前回のローカルカウンタ値l1’=44000
ステップS1005:実行間隔Int1=l−l1’=8000
ステップS1006:図8の閾値Lth1=7920
したがって、ステップS1007において、実行間隔監視手段703は、実行間隔と閾値を比較し、
閾値Lth1=7920 < 実行間隔Int1=8000
となるため、実行間隔が閾値よりも大きいことから、エラー処理を行う必要がないとわかり、ステップS1008において、前回のローカルカウンタ値l1’を現在のローカルカウンタ値lで上書きし(l1’=44000)、一連処理を終了する。
このように、本実施の形態2において、同期状態から非同期状態へ遷移した場合には、実行間隔監視手段703は、遷移時のグローバルタイムとローカルカウンタ値などを用いて、前回実行時のローカルカウンタ値を算出する。これにより、実行間隔監視手段703は、非同期状態になってからアプリケーションXに対する最初の実行間隔の監視処理においても、同期状態での最後の実行間隔監視手段703の実行時点からの実行間隔を算出し、実行間隔を監視することができる。
また、実行間隔監視手段703は、非同期状態になってからアプリケーションXに対する2回目以降の実行間隔の監視処理では、ローカルカウンタ705に従って実行間隔を監視することができる。
本実施の形態2の実行間隔監視手段703においては、FlexRayの通信に同期すると、全てのアプリケーションの実行間隔監視は、グローバルタイムを用いて実行している。これは、先の実施の形態1で説明したように、グローバルタイムを用いて実行間隔を監視することにより、グローバルタイムが補正されても、実行間隔がエラーであると誤検出されることを避けることを目的としている。アプリケーションの起動周期が長いほど、グローバルタイムの補正回数が増えるため、このようなグローバルタイムを用いた実行間隔の監視が必要になる。
逆に、アプリケーションの起動周期が短い場合には、グローバルタイム補正による実行間隔の変動幅は小さくなり、ローカルカウンタ705を用いた実行間隔監視を行っても、誤ってエラーと検出される可能性は小さくなる。従って、起動周期が短いアプリケーションに対しては、実行間隔監視は、常にローカルカウンタ705を用いるようにしてもよい。
このように、図7のような構成を備えた本実施の形態2では、グローバルタイムを用いて監視を行うアプリケーションと、ローカルカウンタ705を用いて監視を行うアプリケーションを並行して使用することができる。これにより、例えば、一方で重大な障害が発生して切替手段706を起動できなくなったとしても、ローカルカウンタ705を用いたアプリケーションは、実行を継続できるため、エラー処理を実行することが可能である。
また、常にローカルカウンタ705を用いて監視を行うアプリケーションに関しては、グローバルタイムからローカルカウンタ705、ローカルカウンタ705からグローバルタイムへの切替えを行う必要がなく、処理負荷を低減することができる。
以上のように、実施の形態2によれば、FlexRayによる通信に対する同期状態/非同期状態に応じて、同期状態においては、グローバルタイムを用いて実行間隔を監視し、非同期状態においては、ローカルカウンタを用いて実行間隔を監視するように切り替えることが可能な構成を有している。このような構成により、同期状態/非同期状態に応じて実行間隔の適切な監視を実行できる。
さらに、非同期状態から同期状態、あるいは同期状態から非同期状態に遷移した場合にも、実行間隔エラーを誤検出することを防止することが可能となる。具体的には、非同期状態から同期状態に遷移した場合には、最初の実行間隔の監視を行わないようにすることで、遷移のタイミングで必然的に実行間隔が短くなった場合の誤検出を防止できる。
一方、同期状態から非同期状態に遷移した場合には、グローバルタイムからローカルカウント値への変換処理を行うことで、同期状態での最後の実行時点から、非同期状態になった最初の実行時点までの間隔を求めることができ、遷移の直後から誤検出を防止した正確な監視処理を実行できる。
さらに、グローバルタイムを用いて監視を行うアプリケーションと、ローカルカウンタを用いて監視を行うアプリケーションを並行して使用することができる。この結果、グローバルタイムやローカルカウンタのいずれかが障害により動作しなくなり、実行間隔監視を正常に行えなくなっても、正常なもう一方を用いた実行間隔監視対象のアプリケーションは実行を継続することができ、電子制御装置の信頼性を高めることができる。また、起動周期が短いアプリケーションに対しては、誤ってエラーを検出する可能性が小さいため、常時、ローカルカウンタを用いて実行間隔の監視を行うことができ、処理負荷を軽減することができる。
なお、本実施の形態2では、グローバルタイムからローカルカウント値への変換に用いる変換係数に、グローバルタイムの1チック幅の初期値を用いたが、本発明はこれに限定されるものではない。例えば、同期状態での最後の補正後の1チック幅をグローバルタイム算出手段702から取得し、これを変換係数に用いるものであってもよい。
また、本実施の形態2では、切替手段706は、非同期から同期、同期から非同期への両遷移時に起動したが、非同期から同期に遷移したときと、同期から非同期へ遷移したときで、図9に示す処理を分離したものであってもよい。
実施の形態3.
本実施の形態3では、先の実施の形態2と同様に、電子制御装置の具体例として、車載電子制御装置(以下、ECU)の構成について、図面に基づいて説明する。図12は、本発明の実施の形態3に係るECU1201の構成図である。図12中、先の実施の形態2における図7と同一、相当部分には同一符号を付し、説明を省略する。
本実施の形態3に係るECU1201は、先の図7の構成に加えて、通信エラーカウンタ1205と通信エラーフラグ1206をさらに備えている。また、グローバルタイム算出手段1202、切替手段1203、および実行間隔監視手段1204は、それぞれ先の図7におけるグローバルタイム算出手段702、切替手段706、および実行間隔監視手段703に対応するものである。
本実施の形態3で用いる通信エラーとは、グローバルタイム算出手段1202がグローバルタイムの算出に必要なスタートアップフレームや同期フレームを受信できなかった場合を指す。FlexRayでは、このような通信エラーでも直ちに通信を停止させるのではなく、通信エラー発生回数が設定値に達するまで、通信を継続することが可能である。
通信エラーが発生する原因としては、スタートアップフレームや同期フレームを送信するECUの故障、他のECUの故障による通信線104上への異常なメッセージの送信、もしくは自ECUの通信制御手段105等の通信コントローラの故障などが考えられる。
そして、本実施の形態3におけるグローバルタイム算出手段1202は、先の実施の形態2で説明した処理に加えて、グローバルタイム算出時の通信エラーを検出すると、通信エラーカウンタ1205の値をインクリメントする。そして、グローバルタイム算出手段1202は、通信エラーカウンタ1205の値が通信エラー検出閾値Error_th1以上になると、通信エラーフラグ1206を1にセットする。
一方、グローバルタイムの算出に成功すると、グローバルタイム算出手段1202は、通信エラーカウンタ1205の値をデクリメントし、通信エラー未検出閾値Error_th2未満になり、かつ通信エラーフラグ1206が1の場合には0にクリアする。さらに、グローバルタイム算出手段1202は、通信エラーフラグ1206が0から1、あるいは1から0に変化したときに、切替手段1203の実行をトリガする。
通信エラーカウンタ1205は、前述の通り、グローバルタイム算出手段1202がグローバルタイム算出時に通信エラーを検出するとインクリメントされ、グローバルタイム算出手段1202が正常にグローバルタイムを算出できるとデクリメントされるカウンタである。
通信エラーフラグ1206は、グローバルタイム算出手段1202によって書き込まれるメモリであり、通信エラーカウンタ1205が示す通信エラー発生回数が通信エラー検出閾値Error_th1以上になると1にセットされ、通信エラー未検出閾値Error_th2未満になると0にクリアされる。また、通信エラーフラグ1206は、実行間隔監視手段1204や切替手段1203によって参照される。
切替手段1203は、先の実施の形態2で説明した起動タイミングに加えて、通信エラーフラグ1206の値が変化したときにも、グローバルタイム算出手段1202によって起動される。
実行間隔監視手段1204は、先の実施の形態2で説明した処理に加えて、通信エラーフラグ1206を参照して実行間隔監視を行う。通信間隔IntXの閾値を取得する際に参照するテーブルは、先の実施の形態2で用いた図8と同じとする。
次に、切替手段1203の動作について、フローチャートを用いて説明する。図13は、本発明の実施の形態3における切替手段1203の一連処理を示すフローチャートである。図13中、先の図9と同一、相当部分には同一符号を付し、説明を省略する。切替手段1203は、非同期から同期、同期から非同期へ状態が変化したとき、あるいは通信エラーフラグ1206の値が変化したときに、グローバルタイム算出手段1202によって実行が開始される。
ステップS1301において、同期中に切替手段1203が起動した場合には、切替手段1203は、通信エラーフラグ1206がセットされているか否か確認する。通信エラーフラグ1206が0の場合には、切替手段1203は、グローバルタイムを用いた実行間隔監視を行うため、ステップS902に進む。一方、通信エラーフラグ1206が1の場合には、切替手段1203は、同期中であってもローカルカウンタ705を用いた実行間隔監視を行うため、ステップS903に進む。
次に、実行間隔監視手段1204の動作について、フローチャートを用いて説明する。図14は、本発明の実施の形態3における実行間隔監視手段1204の一連処理を示すフローチャートである。図14中、先の図10と同一、相当部分には同一符号を付し、説明を省略する。実行間隔監視手段1204は、アプリケーションXの実行前に起動する。
ステップS1401において、実行間隔監視手段1204は、ECU1201がFlexRayの通信に同期中、通信エラーフラグ1206の値を参照し、通信エラーフラグ1206がセットされているか否か確認する。通信エラーフラグが0の場合には、実行間隔監視手段1204は、グローバルタイムを用いた実行監視が可能であるため、ステップS401へ進む。一方、通信エラーフラグ1206が1の場合には、実行間隔監視手段1204は、ローカルカウンタ705を用いた実行監視を行うため、ステップS1003へ進む。
次に、具体的な数値例に基づくタイムチャートを用いて、これら図13、図14のフローチャートに基づく、切替手段1203および実行間隔監視手段1204による一連処理を詳細に説明する。図15は、本発明の実施の形態3におけるグローバルタイムおよびローカルカウンタ値と、演算処理手段、実行間隔監視手段の起動タイミングの関係と、通信エラーカウンタおよび実行間隔監視状況とを示すタイムチャートである。
なお、図15において、横軸は、時間を示している。また、ここでは、簡単のため、通信エラー検出閾値Error_th1と通信エラー未検出閾値Error_th2は、同じ値に設定されているとし、図15中では、通信エラー閾値Error_thとして表記する。
はじめに、通信エラーカウンタ1205の値が通信エラー閾値Error_thに達したときの処理について説明する。図15のタイムチャートでは、同期して通信開始後、通信エラーカウンタ1205の値が上がっていき、図15中の(a)において、通信エラーカウンタ1205の値が、通信エラー閾値Error_thに達する。
これにより、グローバルタイム算出手段1202は、通信エラーフラグ1206を1にセットするとともに、切替手段1203を実行する。切替手段1203は、図13のフローチャートのステップS901において、同期中であることから、ステップS1301へ移る。そして、ステップS1301において、切替手段1203は、通信エラーフラグ1206が1にセットされていることから、ローカルカウンタ705を用いた実行間隔監視に変更するため、ステップS903へ移る。そして、続くステップS903〜S908で、切替手段1203は、以下の値を取得する。
ステップS903:現在のローカルカウンタ値l=40000
ステップS904:最新のグローバルタイム{c、t}={51、0}
ステップS905:前回のグローバルタイム{c1’、t1’}={50、2500}
ステップS906:経過グローバルタイム{c、t}−{c1’、t1’}=2500チック
ステップS907:経過カウント数8/5×2500チック=4000カウント
ステップS908:前回のローカルカウンタ値l1’=l−4000=36000カウント
したがって、ステップS909において、実行間隔監視手段1204が記憶する前回のローカルカウンタ値l’を36000で上書きし、切替手段1203は、一連処理を終了する。
続いて、図15中の(b)において、実行間隔監視にローカルカウンタ705を用いるようにしてから初めてアプリケーション1に関して実行間隔監視手段1204が実行されたとする。実行間隔監視にローカルカウンタ705を用いているが、同期は継続中であるため、アプリケーションの起動は、グローバルタイムに基づいて演算処理手段107によって行われる。よって、実行間隔監視手段1204も、このアプリケーション1の実行前に起動する。
図14のフローチャートのステップS1001において、実行間隔監視手段1204は、同期中であることから、ステップS1401へ移る。そして、ステップS1401において、実行間隔監視手段1204は、通信エラーフラグ1206が1にセットされていることから、ステップS1003へ移る。そして、続くステップS1003〜S1006で、以下の値を取得する。
ステップS1003:現在のローカルカウンタ値l=44000
ステップS1004:前回のローカルカウンタ値l1’=36000
ステップS1005:実行間隔Int1=l−l1’=8000
ステップS1006:図8の閾値Lth1=7920
したがって、ステップS1007において、実行間隔監視手段1204は、実行間隔と閾値を比較し、
閾値Lth1=7920 < 実行間隔Int1=8000
となるため、実行間隔が閾値よりも大きいことから、エラー処理を行う必要がないとわかり、ステップS1008において、前回のローカルカウンタ値l1’を現在のローカルカウンタ値lで上書きし(l1’=44000)、一連処理を終了する。
このように、本実施の形態3では、通信エラー発生回数が閾値に達した場合、同期中であっても、実行間隔監視にグローバルタイムではなくローカルカウンタ705の値を用いるように切り替える。これによって、通信エラーが発生しておりグローバルタイムの信頼性が低い場合には、実行間隔監視にグローバルタイムを用いないようにすることで、実行間隔監視機能の信頼性を保持することができる。
なお、図15中、サイクル値52〜58の通信エラー発生回数が閾値に達した後の実行間隔監視手段1204の動作は、先の図14のフローチャート、および先の実施の形態2と同様であるため、説明を省略する。
次に、通信エラーカウンタ1205の値が通信エラー閾値Error_thより大きく、実行間隔監視にローカルカウンタ705を用いている状態から、通信エラー閾値Error_thの値を下回ったときの処理について説明する。
図15中の(c)のサイクル値58から59へのタイミングにおいて、通信エラーカウンタ1205の値が、通信エラー閾値Error_thより小さくなる。これにより、グローバルタイム算出手段1202は、通信エラーフラグ1206を0にセットするとともに、切替手段1203を実行する。切替手段1203は、図13のフローチャートのステップS901において、同期中であることから、ステップS1301へ移る。
そして、ステップS1301において、切替手段1203は、通信エラーフラグ1206が0にクリアされていることから、グローバルタイムを用いるよう変更するため、ステップS902へ移る。さらに、ステップS902において、切替手段1203は、前回のグローバルタイムのサイクル値c1’をc1’=65で上書きし、処理を終了する。
続いて、図15中の(d)において、グローバルタイムが{c、t}={59、2500}となり、実行間隔監視にグローバルタイムを用いるようにしてから、初めてアプリケーション1の実行タイミングとなったとする。アプリケーション1の実行前に実行間隔監視手段1204が起動し、実行間隔監視手段1204は、図14のフローチャートのステップS1001において、同期中であることから、ステップS1401へ移る。
そして、ステップS1401において、実行間隔監視手段1204は、通信エラーフラグ1206が0にセットされていることから、ステップS401へ移る。次に、ステップS401において、実行間隔監視手段1204は、現在のグローバルタイム{c、t}={59、2500}を取得する。次に、ステップS402において、実行間隔監視手段1204は、前回のグローバルタイム{c1’、t1’}={65、2500}を取得する。
そして、ステップS1002において、実行間隔監視手段1204は、前回のグローバルタイムc1’=65であることから、前回実行時のグローバルタイムは取得していないとわかり、実行間隔監視は行わず、前回のグローバルタイムを現在のグローバルタイムによって上書き{c1’、t1’}={59、2500}し、一連処理を終了する。
このように、本実施の形態3では、通信エラー発生回数が閾値を下回った場合、実行間隔監視にローカルカウンタ705の値からグローバルタイムを再度用いるように切り替える。これにより、通信状態が改善され、信頼性が確保されたグローバルタイムを用いて、先の実施の形態1に示したように、グローバルタイムと同期してアプリケーションを実行しながら、実行間隔監視を適切に行うことができる。
以上のように、実施の形態3によれば、通信エラー発生回数が閾値に達した場合には、通信が不安定である、あるいはECUの通信制御手段にエラーが発生しているなどして、グローバルタイムの信頼性が低いと判断し、実行間隔監視を、グローバルタイムより信頼性が高いローカルカウンタの値を用いて実行することにより、実行間隔監視機能の信頼性を高めることができる。
さらに、通信状態が改善されるなどした場合には、通信エラー発生回数が閾値よりも低下するため、この場合には、ローカルカウンタを用いた実行間隔監視から、グローバルタイムを用いた実行間隔監視へ切り替えて、再びグローバルタイムの補正に対応した実行間隔監視を行うことができる。
なお、本実施の形態3では、通信状態が改善され、ローカルカウンタ705の値からグローバルタイムを用いるように変更した後、最初の実行間隔監視は行わないように設定したが、本発明は、これに限定されるものではない。例えば、同期中において、実行間隔監視にグローバルタイムを用いない場合であっても、実行間隔監視手段1204において、前回実行時のグローバルタイムを記憶するなどして、グローバルタイムを再度使用するように変更した後の最初の実行間隔監視手段1204の実行時においても、監視を行うようにするものであってもよい。
実施の形態4.
本実施の形態4では、先の実施の形態2、3と同様に、電子制御装置の一例として、車載電子制御装置(以下、ECU)の構成について、図面に基づいて説明する。図16は、本発明の実施の形態4に係るECU1601の構成図である。図16中、先の実施の形態2における図7と同一、相当部分には同一符号を付し、説明を省略する。
本実施の形態4に係るECU1601は、通信エラー予兆カウンタ1605と通信エラー予兆フラグ1606をさらに備えている。また、グローバルタイム算出手段1602、切替手段1603、および実行間隔監視手段1604は、それぞれ先の図7におけるグローバルタイム算出手段702、切替手段706、および実行間隔監視手段703に対応するものである。
実施の形態1で述べたように、FlexRayでは、毎通信サイクル、必要に応じてチック値を補正することにより、ネットワークシステムに同期する。この補正は、一定の補正幅内であれば、FlexRayの仕様上、正常であると判断される。
しかしながら、先の実施の形態3で述べたような通信エラーが発生する場合、通信エラーが発生する前の段階として、ECU1601が管理するグローバルタイムと、ネットワークシステムの他のECUのグローバルタイムとのずれが徐々に大きくなり、ECU1601のグローバルタイム補正時の補正幅が大きくなっていくことが考えられる。
したがって、通信エラーが発生する前に、補正幅が大きくなっていることを検出(通信エラー予兆)することで、他のECUや自ECU1601の通信制御手段105等に故障が発生して、ECU1601が管理するグローバルタイムの信頼性が低下していると判断することができる。
本実施の形態4におけるグローバルタイム算出手段1602は、先の実施の形態2で説明した処理に加えて、グローバルタイム算出時に補正幅が補正閾値Correction_th以上になると、通信エラー予兆カウンタ1605をインクリメントする。そして、グローバルタイム算出手段1602は、通信エラー予兆カウンタ1605の値が通信エラー予兆検出閾値PError_th以上になると、通信エラー予兆フラグ1606を1にセットする。
一方、グローバルタイム算出手段1602は、補正幅が補正閾値Correction_th未満になると、通信エラー予兆カウンタ1605をリセットし、通信エラー予兆フラグ1606が1の場合には0にクリアする。さらに、グローバルタイム算出手段1602は、通信エラー予兆フラグが0から1、あるいは1から0に変化したときに、切替手段1603の実行をトリガする。
通信エラー予兆カウンタ1605は、前述の通り、グローバルタイム算出手段1602によるグローバルタイムの補正幅が、補正閾値Correction_th以上になるとインクリメントされ、Correction_th未満になるとリセットされるカウンタである。
通信エラー予兆フラグ1606は、グローバルタイム算出手段1602によって書き込まれるメモリであり、通信エラー予兆カウンタ1605の値が通信エラー予兆検出閾値PError_th以上になると1にセットされ、補正幅が補正閾値Correction_th未満になると0にクリアされる。また、通信エラー予兆フラグ1606は、切替手段1603によって参照される。
切替手段1603は、先の実施の形態2で説明した起動タイミングに加えて、通信エラー予兆フラグ1606の値が変化したときにも、グローバルタイム算出手段1602によって起動される。
実行間隔監視手段1604は、先の実施の形態2で説明した処理に加えて、通信エラー予兆フラグ1606を参照して実行間隔監視を行う。なお、通信間隔IntXの閾値を取得する際に参照するテーブルは、先の実施の形態2で用いた図8と同じとする。
次に、グローバルタイム算出手段1602における通信エラー予兆検出に関する動作について、フローチャートを用いて説明する。図17は、本発明の実施の形態4におけるグローバルタイム算出手段1602の一連処理を示すフローチャートである。
ステップS1701において、グローバルタイム算出手段1602は、グローバルタイム補正に用いた補正幅を取得する。次に、ステップS1702において、グローバルタイム算出手段1602は、補正幅が補正閾値Correction_th以上であるか確認する。そして、グローバルタイム算出手段1602は、補正幅が補正閾値Correction_th以上である場合には、ステップS1703へ進む。また、それ以外の場合には、ステップS1708へ進む。
ステップS1703に進んだ場合には、グローバルタイム算出手段1602は、通信エラー予兆カウンタ1605をインクリメントする。次に、ステップS1704において、グローバルタイム算出手段1602は、ステップS1703でインクリメントした通信エラー予兆カウンタ1605の値が、通信エラー予兆検出閾値PError_th以上であるか否か確認する。
そして、グローバルタイム算出手段1602は、通信エラー予兆カウンタ1605の値が、通信エラー予兆検出閾値PError_th以上である場合には、ステップS1705へ進む。また、それ以外の場合には、グローバルタイム算出手段1602は、通信エラーが発生する可能性は高くないと判断して、通信エラー予兆検出処理を終了する。
ステップS1705に進んだ場合には、通信エラー予兆カウンタ1605の値が通信エラー予兆検出閾値PError_th以上であるため、グローバルタイム算出手段1602は、現在の通信エラー予兆フラグ1606の値を確認する。そして、通信エラー予兆フラグ1606の値が0である場合には、グローバルタイム算出手段1602は、ステップS1706へ進む。一方、通信エラー予兆フラグ1606の値が1である場合には、グローバルタイム算出手段1602は、すでに通信エラー予兆が検出されており、実行間隔監視にはローカルカウンタ705が用いられていると判断できるため、通信エラー予兆検出処理を終了する。
ステップS1705からステップS1706へ進むと、グローバルタイム算出手段1602は、現在通信エラー予兆が未検出であり、かつ通信エラーが発生する可能性が高いとして、通信エラー予兆フラグ1606を1にセットし、ステップS1707へ進む。
そして、ステップS1707において、グローバルタイム算出手段1602は、通信エラー予兆フラグ1606の値の変化により実行間隔監視手段1604がグローバルタイムを用いるかローカルカウンタ705の値を用いるかを変更するため、切替手段1603の実行を要求し、通信エラー予兆検出処理を終了する。
一方、先のステップS1702において、グローバルタイムの補正幅が補正閾値Correction_th未満である場合には、グローバルタイム算出手段1602は、ステップS1708へ進み、通信エラー予兆カウンタ1605をリセットする。
次に、ステップS1709において、グローバルタイム算出手段1602は、現在の通信エラー予兆フラグ1606の値を確認する。そして、通信エラー予兆フラグ1606の値が1である場合には、ステップS1710へ進み、通信エラーが発生する可能性が低いと判断し、通信エラー予兆フラグ1606を0にクリアし、ステップS1707へ進む。一方、通信エラー予兆フラグ1606の値が0である場合には、通信エラー予兆検出処理を終了する。
通信エラー予兆カウンタ1605と通信エラー予兆フラグ1606を用いた切替手段1603および実行間隔監視手段1604の処理内容は、先の実施の形態3の通信エラーカウンタ1205と通信エラーフラグ1206を、それぞれ通信エラー予兆カウンタ1605と通信エラー予兆フラグ1606へ置き換えたものになるため、説明は省略する。
以上のように、実施の形態4によれば、グローバルタイムの補正幅が、設定値に達した場合には、通信が不安定であるか、あるいはECUの通信制御手段にエラーが発生しているなどして、通信エラーが発生する確率が高く、グローバルタイムの信頼性が低いと判断できる。そして、グローバルタイムの信頼性が低いと判断した場合には、事前に実行間隔監視をローカルカウンタの値を用いて実行するように切り替えることにより、実行間隔監視機能の信頼性を高めることができる。
また、補正幅が設定値未満になった場合には、通信エラー予兆カウンタをリセットしている。これにより、グローバルタイムとの同期が不安定になり、補正幅が連続して設定値以上になった場合にのみ、通信エラーが発生する確率が高いと判断できる。
なお、上述した実施の形態4では、補正幅が設定値未満になった場合に、通信エラー予兆カウンタ1605をリセットしているが、本発明はこれに限定されるものではない。先の実施の形態3で説明したように、補正幅が設定未満になった場合には、通信エラー予兆カウンタ1605をデクリメントし、通信エラー予兆未検出閾値未満になった場合に、通信エラー予兆フラグ1606を0にクリアするものであってもよい。
このようにすることで通信サイクルよりも長い周期で発生するノイズの影響で通信状態が不安定である場合も、通信エラー予兆として検出し、実行間隔監視にローカルカウンタを使用するよう切り替えることができる。
101 ネットワークシステム、102、103 車載電子制御装置、104 通信線、105 通信制御手段、106 グローバルタイム算出手段、107 演算処理手段、108 実行間隔監視手段、701 車載電子制御装置、702 グローバルタイム算出手段、703 実行間隔監視手段、704 同期フラグ、705 ローカルカウンタ、706 切替手段、1201 車載電子制御装置、1202 グローバルタイム算出手段、1203 切替手段、1204 実行間隔監視手段、1205 通信エラーカウンタ、1206 通信エラーフラグ、1601 車載電子制御装置、1602 グローバルタイム算出手段、1603 切替手段、1604 実行間隔監視手段、1605 通信エラー予兆カウンタ、1606 通信エラー予兆フラグ。

Claims (13)

  1. 通信線を介して相互接続された複数の電子制御装置が、共通の時間であるグローバルタイムに同期して通信を行うことで情報を送受信するネットワークシステムに用いられる電子制御装置であって、
    他の電子制御装置と前記情報を送受信するための通信制御手段と、
    前記通信制御手段が通信サイクルごとに受信した、前記ネットワークシステムで共通の時刻情報に基づいて、前記グローバルタイムを算出するグローバルタイム算出手段と、
    前記グローバルタイム算出手段で算出された前記グローバルタイムに同期して、1以上のアプリケーションを実行する演算処理手段または、前記グローバルタイム算出手段で算出された前記グローバルタイムを用いて、前記演算処理手段における各アプリケーションの実行間隔の計測を行い、計測したそれぞれの実行間隔と、アプリケーションごとにあらかじめ決められた閾値とを比較し、計測された実行間隔が閾値以下であるアプリケーションがある場合には、当該アプリケーションで実行間隔エラーが発生したと判定する実行間隔監視手段の少なくともいずれか一方と
    を備え
    一定間隔で値が増加あるいは減少するローカルカウンタ
    をさらに備え、
    前記実行間隔監視手段は、前記グローバルタイム算出手段が、グローバルタイムに非同期であると判断した状態においては、前記ローカルカウンタの値を用いて計測した実行間隔に基づいて、各アプリケーションの実行間隔エラーの発生の有無を判定する
    ことを特徴とする電子制御装置。
  2. 請求項に記載の電子制御装置において、
    前記実行間隔監視手段は、前記非同期状態から前記同期状態に切り替わったと判断した場合には、前記グローバルタイムを用いて計測した実行間隔に基づいて、各アプリケーションの実行間隔エラーの発生の有無を判定するように変更する
    ことを特徴とする電子制御装置。
  3. 請求項またはに記載の電子制御装置において、
    前記実行間隔監視手段は、前記同期状態から前記非同期状態に切り替わったと判断した場合には、最後に算出した前記グローバルタイムと変換式を用いてローカルカウンタ換算値を算出し、非同期状態に切り替わった次の実行間隔の計測には、前記ローカルカウンタの値と前記ローカルカウンタ換算値を用いる
    ことを特徴とする電子制御装置。
  4. 通信線を介して相互接続された複数の電子制御装置が、共通の時間であるグローバルタイムに同期して通信を行うことで情報を送受信するネットワークシステムに用いられる電子制御装置であって、
    他の電子制御装置と前記情報を送受信するための通信制御手段と、
    前記通信制御手段が通信サイクルごとに受信した、前記ネットワークシステムで共通の時刻情報に基づいて、前記グローバルタイムを算出するグローバルタイム算出手段と、
    前記グローバルタイム算出手段で算出された前記グローバルタイムに同期して、1以上のアプリケーションを実行する演算処理手段または、前記グローバルタイム算出手段で算出された前記グローバルタイムを用いて、前記演算処理手段における各アプリケーションの実行間隔の計測を行い、計測したそれぞれの実行間隔と、アプリケーションごとにあらかじめ決められた閾値とを比較し、計測された実行間隔が閾値以下であるアプリケーションがある場合には、当該アプリケーションで実行間隔エラーが発生したと判定する実行間隔監視手段の少なくともいずれか一方と
    を備え
    一定間隔で値が増加あるいは減少するローカルカウンタと、
    前記グローバルタイム算出手段が通信エラーを検出するとインクリメントされる通信エラーカウンタと
    をさらに備え、
    前記実行間隔監視手段は、前記通信エラーカウンタの値が第1の値以上になると、前記ローカルカウンタの値を用いて計測した実行間隔に基づいて、各アプリケーションの実行間隔エラーの発生の有無を判定する
    ことを特徴とする電子制御装置。
  5. 請求項に記載の電子制御装置において、
    前記通信エラーカウンタの値は、前記通信制御手段により前記時刻情報が受信できる場合には、デクリメントされ、
    前記実行間隔監視手段は、前記通信エラーカウンタの値が、前記第1の値以上になった後に、前記第1の値以下の値である第2の値未満になった場合には、前記グローバルタイムを用いて計測した実行間隔に基づいて、各アプリケーションの実行間隔エラーの発生の有無を判定するように変更する
    ことを特徴とする電子制御装置。
  6. 請求項またはに記載の電子制御装置において、
    前記実行間隔監視手段は、前記通信エラーカウンタの値が前記第1の値未満である状態から前記第1の値以上に切り替わったと判断した場合には、前記グローバルタイムと変換式を用いてローカルカウンタ換算値を算出し、前記通信エラーカウンタの値が前記第1の値以上の状態に切り替わった次の実行間隔の計測には、前記ローカルカウンタの値と前記ローカルカウンタ換算値を用いる
    ことを特徴とする電子制御装置。
  7. 通信線を介して相互接続された複数の電子制御装置が、共通の時間であるグローバルタイムに同期して通信を行うことで情報を送受信するネットワークシステムに用いられる電子制御装置であって、
    他の電子制御装置と前記情報を送受信するための通信制御手段と、
    前記通信制御手段が通信サイクルごとに受信した、前記ネットワークシステムで共通の時刻情報に基づいて、前記グローバルタイムを算出するグローバルタイム算出手段と、
    前記グローバルタイム算出手段で算出された前記グローバルタイムに同期して、1以上のアプリケーションを実行する演算処理手段または、前記グローバルタイム算出手段で算出された前記グローバルタイムを用いて、前記演算処理手段における各アプリケーションの実行間隔の計測を行い、計測したそれぞれの実行間隔と、アプリケーションごとにあらかじめ決められた閾値とを比較し、計測された実行間隔が閾値以下であるアプリケーションがある場合には、当該アプリケーションで実行間隔エラーが発生したと判定する実行間隔監視手段の少なくともいずれか一方と
    を備え
    一定間隔で値が増加あるいは減少するローカルカウンタと、
    前記グローバルタイム算出手段により算出される前記グローバルタイムと、あらかじめ決められた値との差分値を求め、前記差分値が第3の値以上である場合にインクリメントされる通信エラー予兆カウンタと
    をさらに備え、
    前記実行間隔監視手段は、前記通信エラー予兆カウンタの値が第4の値以上になると、前記ローカルカウンタの値を用いて計測した実行間隔に基づいて、各アプリケーションの実行間隔エラーの発生の有無を判定する
    ことを特徴とする電子制御装置。
  8. 請求項に記載の電子制御装置において、
    前記通信エラー予兆カウンタの値は、前記差分値が第3の値以下になるとデクリメントされ、
    前記実行間隔監視手段は、前記通信エラー予兆カウンタの値が、前記第4の値以上になった後に、前記第4の値以下の値である第5の値未満になった場合には、前記グローバルタイムを用いて計測した実行間隔に基づいて、各アプリケーションの実行間隔エラーの発生の有無を判定するように変更する
    ことを特徴とする電子制御装置。
  9. 請求項またはに記載の電子制御装置において、
    前記実行間隔監視手段は、前記通信エラー予兆カウンタの値が前記第4の値未満である状態から前記第4の値以上に切り替わったと判断した場合には、前記グローバルタイムと変換式を用いてローカルカウンタ換算値を算出し、前記通信エラー予兆カウンタの値が前記第4の値以上の状態に切り替わった次の実行間隔の計測には、前記ローカルカウンタの値と前記ローカルカウンタ換算値を用いる
    ことを特徴とする電子制御装置。
  10. 請求項ないしのいずれか1項に記載の電子制御装置において、
    前記実行間隔監視手段は、前記差分値が前記第三の値未満となった場合には、前記通信エラー予兆カウンタの値をリセットする
    ことを特徴とする電子制御装置。
  11. 通信線を介して相互接続された複数の電子制御装置が、共通の時間であるグローバルタイムに同期して通信を行うことで情報を送受信するネットワークシステムに用いられる電子制御装置であって、
    他の電子制御装置と前記情報を送受信するための通信制御手段と、
    前記通信制御手段が通信サイクルごとに受信した、前記ネットワークシステムで共通の時刻情報に基づいて、前記グローバルタイムを算出するグローバルタイム算出手段と、
    前記グローバルタイム算出手段で算出された前記グローバルタイムに同期して、1以上のアプリケーションを実行する演算処理手段または、前記グローバルタイム算出手段で算出された前記グローバルタイムを用いて、前記演算処理手段における各アプリケーションの実行間隔の計測を行い、計測したそれぞれの実行間隔と、アプリケーションごとにあらかじめ決められた閾値とを比較し、計測された実行間隔が閾値以下であるアプリケーションがある場合には、当該アプリケーションで実行間隔エラーが発生したと判定する実行間隔監視手段の少なくともいずれか一方と
    を備え
    一定間隔で値が増加あるいは減少するローカルカウンタ
    をさらに備え、
    前記実行間隔監視手段は、起動周期があらかじめ決められた第1の期間以上のアプリケーションに対しては、前記グローバルタイムを用いて当該アプリケーションの実行間隔の計測を行い、前記起動周期があらかじめ決められた第1の期間未満のアプリケーションに対しては、前記ローカルカウンタを用いて当該アプリケーションの実行間隔の計測を行い、
    前記グローバルタイムと前記ローカルカウンタを並行して使用する
    ことを特徴とする電子制御装置。
  12. 請求項ないし11のいずれか1項に記載の電子制御装置において、
    前記実行間隔監視手段は、前記実行間隔エラーが発生したと判断した時点でのグローバルタイムを記憶する
    ことを特徴とする電子制御装置。
  13. 通信線を介して相互接続された複数の電子制御装置が、共通の時間であるグローバルタイムに同期して通信を行うことで情報を送受信するネットワークシステムに用いられる電子制御装置に適用されるアプリケーションの実行間隔監視方法であって、
    他の電子制御装置と前記情報を送受信するための通信制御ステップと、
    前記通信制御ステップで通信サイクルごとに受信した、前記ネットワークシステムで共通の時刻情報に基づいて、前記グローバルタイムを算出するグローバルタイム算出ステップと、
    前記グローバルタイム算出ステップで算出された前記グローバルタイムに同期して、1以上のアプリケーションを実行する演算処理ステップまたは、前記グローバルタイム算出ステップで算出された前記グローバルタイムを用いて、前記演算処理ステップにおける各アプリケーションの実行間隔の計測を行い、計測したそれぞれの実行間隔と、アプリケーションごとにあらかじめ決められた閾値とを比較し、計測された実行間隔が閾値以下であるアプリケーションがある場合には、当該アプリケーションで実行間隔エラーが発生したと判定する実行間隔監視ステップの少なくともいずれか一方と
    を備え
    前記実行間隔監視ステップは、前記グローバルタイム算出ステップが、グローバルタイムに非同期であると判断した状態においては、一定間隔で値が増加あるいは減少するローカルカウンタの値を用いて計測した実行間隔に基づいて、各アプリケーションの実行間隔エラーの発生の有無を判定する
    ことを特徴とする電子制御装置に適用されるアプリケーションの実行間隔監視方法。
JP2012183324A 2012-08-22 2012-08-22 電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法 Active JP5449484B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012183324A JP5449484B2 (ja) 2012-08-22 2012-08-22 電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012183324A JP5449484B2 (ja) 2012-08-22 2012-08-22 電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法

Publications (2)

Publication Number Publication Date
JP2014042153A JP2014042153A (ja) 2014-03-06
JP5449484B2 true JP5449484B2 (ja) 2014-03-19

Family

ID=50394082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012183324A Active JP5449484B2 (ja) 2012-08-22 2012-08-22 電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法

Country Status (1)

Country Link
JP (1) JP5449484B2 (ja)

Also Published As

Publication number Publication date
JP2014042153A (ja) 2014-03-06

Similar Documents

Publication Publication Date Title
JP4571668B2 (ja) 時間制御される通信システム内にグローバルなタイムベースを確立する方法および通信システム
KR102148943B1 (ko) 프로그래머블 컨트롤러 시스템, 그 컨트롤러
EP2477296B1 (en) Current sharing method of dc power supply and device thereof
US10594424B2 (en) Time synchronization slave apparatus capable of adjusting time synchronization period, and method of determining time synchronization period
KR101636496B1 (ko) 신호 동기 시스템, 노드 동기 시스템, 신호 동기 방법, 및 노드 동기 방법
US10567401B2 (en) Device and method for detecting attack in network
KR101519719B1 (ko) 게이트웨이의 메시지 처리 방법
US20180027515A1 (en) Server, method, recording medium, and system for maintaining accuracy of time
JP2011131762A (ja) データ中継用制御装置および車両制御システム
JP6418217B2 (ja) 通信システムで実行される情報集約方法
US11546073B2 (en) Control method and time aware bridge device for seamless precision time protocol
EP2876454B1 (en) Fault diagnostic system, fault diagnostic device, and fault diagnostic method
CN108388108B (zh) 一种多重冗余控制系统中同步数据的方法及装置
US20130339791A1 (en) Data polling method and digital instrumentation and control system for atomic power plant using the method
JP5449484B2 (ja) 電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法
JP6400553B2 (ja) ユニット間での同期制御機能を有する数値制御システム
US8897289B2 (en) Node system and supervisory node
US8913703B2 (en) Method and device for determining a quality of a clock signal
JP5223809B2 (ja) 同期通信システム
JP2017092856A (ja) 通信装置および通信システム
JP6492885B2 (ja) 診断装置
JP2014157386A (ja) データ処理システム
CN110098971A (zh) 一种网络链路不对称测量方法和网络节点
JP2011234212A (ja) タスク制御装置
JP2023170679A (ja) 車載装置、プログラム及び情報処理方法

Legal Events

Date Code Title Description
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: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131224

R150 Certificate of patent or registration of utility model

Ref document number: 5449484

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350