(57)【要約】【課題】通信モジュールに対する初期化処理を実施しても初期化処理以外の制御処理の遅れを防止する電子制御装置を提供する。【解決手段】ＥＣＵ１０は、エンジンスタート時、および異常発生時のＥＣＵ１０の再起動時等において、通信ソフト２０により、通信モジュール３０に対する初期化処理を複数回に分けて実施する。例えば、ＥＣＵ１０は、通信ドライバ６０の送受信キュー６２、コントローラ５０のメッセージボックス５２、コントローラ５０のレジスタ５４に初期値を書き込んで初期化するとともに、トランシーバ４０の端子４２を初期設定する。さらにＥＣＵ１０は、コントローラ５０のレジスタ５４に対して所定データを書き込み、書き込んだ所定データの値とレジスタ５４から読み出した値とが一致するかを判定する動作確認処理を実施する。ＥＣＵ１０は、複数回に分割された各回の初期化処理が終了すると、初期化処理以外の車両制御を実施する。【選択図】図１
2009288953.tif 000002
【特許請求の範囲】
【請求項１】
通信線を介して通信を行う電子制御装置において、
前記通信線との間でデータを送受信する通信モジュールと、
前記通信モジュールに対する初期化処理を複数回に分けて実施する初期化手段と、
を備えることを特徴とする電子制御装置。
【請求項２】
前記初期化手段が前記初期化処理を複数回に分けて実施する分割数を記憶する書換え可能な不揮発性の分割数記憶手段をさらに備え、
前記初期化手段は前記分割数記憶手段に記憶されている前記分割数に基づいて前記初期化処理を複数回に分けて実施することを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記通信モジュールは、前記通信線から受信する受信データと、前記通信線に送信する送信データとを格納するレジスタを有し、
前記初期化手段は、前記レジスタに対して所定データを書き込み、書き込んだ前記所定データの値と前記レジスタから読み出した値とが一致するかを判定する動作確認処理を実施することを特徴とする請求項１または２に記載の電子制御装置。
【請求項４】
前記電子制御装置は車両に搭載されて車両制御を実施することを特徴とする請求項１から３のいずれか一項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信線を介して通信を行う電子制御装置の通信モジュールに対する初期化に関する。
【背景技術】
【０００２】
従来、ＣＡＮ（Controller Area Network）等のＬＡＮ（Local Area Network）に電子制御装置（ＥＣＵ：Electronic Control Unit）が接続し、ＥＣＵ毎に動作する制御プログラムによりＥＣＵ内で処理を実行するとともに、通信モジュールにより通信線を介して他のＥＣＵとデータを送受信することが知られている。
【０００３】
このようにＬＡＮに接続しているＥＣＵは、電源投入時、または異常発生時の再起動時等において、通信モジュールのメモリ、レジスタ等の各部のハードウェアを初期化する必要がある。しかし、通信モジュールの初期化処理を実施している間は、通信モジュールを使用しなくても実施できる初期化処理以外の制御処理を実施できないので、通信モジュールに対する初期化処理に要する時間が長くなると、通信モジュールを使用しない制御処理の実施が遅れる。
【０００４】
例えば、車内ＬＡＮに接続しているＥＣＵにおいては、通信モジュールに対する初期化処理に要する時間が長くなると、通信モジュールを使用しなくても実施できる車両制御を行う制御処理に遅延が発生し、リアルタイム性を要求される車両制御が妨げられるおそれがある。
【０００５】
そこで、特許文献１では、初期化を実施するタイミングに応じて不要な初期化処理を省略することにより、初期化に要する時間を短縮しようとしている。
【特許文献１】特開平７−３０２１３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、省略できない必須の初期化処理は実施されるので、必須の初期化処理が終了するまでは初期化処理以外の制御処理を実施することはできない。そして、ＥＣＵの通信品質を確保するために、ＥＣＵの通信モジュールの初期化は必須の処理であるから、通信モジュールに対する初期化処理の一部を省略することはできない。
【０００７】
本発明は、上記問題を解決するためになされたものであり、通信モジュールに対する初期化処理を実施しても初期化処理以外の制御処理の遅れを防止する電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１から４に記載の発明によると、初期化手段は、通信線との間でデータを送受信する通信モジュールに対する初期化処理を複数回に分けて実施する。
通信モジュールに対する初期化処理を１回で全て実施するのではなく、複数回に分けて実施するので、複数回に分割された１回当たりの初期化処理に要する時間が短くなる。これにより、通信モジュールに対する全ての初期化処理が終了するまで通信モジュールを使用しない制御処理の実施を待ち合わせる必要がなく、各回の初期化処理が終了すると、初期化処理以外の制御処理を実施できる。その結果、通信モジュールに対する初期化処理を実施する場合にも、他の制御処理の遅れを防止できる。複数回に分割された通信モジュールに対する初期化処理がすべて終了すれば、通信モジュールを使用する制御処理も実施できる。
【０００９】
請求項２に記載の発明によると、初期化手段が初期化処理を複数回に分けて実施する分割数を記憶する書換え可能な不揮発性の分割数記憶手段をさらに備え、初期化手段は分割数記憶手段に記憶されている分割数に基づいて初期化処理を複数回に分けて実施する。
【００１０】
これにより、電子制御装置の性能、通信モジュールに対する初期化処理に要する時間等に応じて、分割数記憶手段に記憶されている分割数を適宜設定できる。
ところで、通信モジュールにおいて受信データと送信データとを格納するレジスタに異常があると、通信線との間で正常にデータを送受信できなくなるおそれがある。
【００１１】
そこで、請求項３に記載の発明によると、通信線から受信する受信データと、通信線に送信する送信データとを格納する通信モジュールのレジスタに対して、初期化手段は、所定データを書き込み、書き込んだ所定データの値とレジスタから読み出した値とが一致するかを判定する動作確認処理を実施する。
【００１２】
レジスタに書き込んだ所定データの値とレジスタから読み出した値とが一致すれば、レジスタは正常であると判断できる。そして、正常なレジスタを使用して、通信線との間で正常にデータを送受信できる。
【００１３】
さらに、送受信データを格納する複数のレジスタに所定データを書き込み、レジスタに書き込んだ所定データの値とレジスタから読み出した値とが一致するかを判定する動作確認処理には、他の初期化処理よりも長い時間を要する。したがって、レジスタに対する動作確認処理を含めた初期化処理を複数回に分けて実施することにより、レジスタに対する動作確認処理を含む初期化処理を実施する場合にも、他の制御処理の遅れを防止できる。
【００１４】
請求項４に記載の発明によると、電子制御装置は車両に搭載されて車両制御を実施する。
これにより、各回の初期化処理が終了すると、通信モジュールを使用しない初期化処理以外の車両制御を実施できる。その結果、通信モジュールに対する初期化処理を実施する場合にも、リアルタイムを要求される車両制御の遅れを極力低減し速やかに車両制御を実施できる。そして、通信モジュールに対する初期化処理がすべて終了すれば、通信モジュールを使用する車両制御を実施できる。
【００１５】
尚、本発明に備わる手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、またはそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を図に基づいて説明する。
本発明の一実施形態を図に基づいて説明する。
図１に示すように、ＥＣＵ１０は、通信線としてＣＡＮバス１００を用いた車内ＬＡＮに接続される。ＥＣＵ１０以外にも、複数のＥＣＵがＣＡＮバス１００に接続している。ＥＣＵ１０は、ＣＰＵ１２、ＲＡＭ１４、ＲＯＭ１６、フラッシュメモリ１８、各種レジスタ、通信インタフェース等から構成されるマイクロコンピュータである。ＥＣＵ１０は、特許請求の範囲に記載した初期化手段、分割数記憶手段として機能する。
【００１７】
ＥＣＵ１０のＣＰＵ１２は、通信ソフト２０を実行することにより通信モジュール３０を制御するとともに、車両制御ソフトを実行することにより車両各部の装置を制御する。通信ソフト２０および車両制御ソフトは、ＲＯＭ１６またはフラッシュメモリ１８に記憶されている。ＥＣＵ１０は、通信モジュール３０を使用してＣＡＮバス１００を介して他のＥＣＵとデータを送受信する。ＥＣＵ１０が複数の通信チャネルを備える場合、通信チャネル毎に通信モジュール３０が設置される。
【００１８】
ＥＣＵ１０は、ＣＡＮバス１００を介して他のＥＣＵとデータを送受信することにより他のＥＣＵと連携して車両制御を実施してもよいし、ＣＡＮバス１００を介さず各種センサの検出信号を直接入力し独立して車両制御を実施してもよい。
【００１９】
（通信ソフト２０）
ＥＣＵ１０は、通信ソフト２０を実行することにより、車両制御ソフトからの要求に応じて通信モジュール３０を制御し、ＣＡＮバス１００を介して他のＥＣＵとデータを送受信する。また、ＥＣＵ１０は、通信ソフト２０により通信モジュール３０に対する初期化処理を実施する。
【００２０】
（通信モジュール３０）
通信モジュール３０は、上位の通信ソフト２０が生成した送信データをＣＡＮバス１００に送信するとともに、ＣＡＮバス１００から受信した受信データを通信ソフト２０に受け渡す。
【００２１】
通信モジュール３０は、主にトランシーバ４０とコントローラ５０と通信ドライバ６０とから構成されている。
トランシーバ４０は、ＣＡＮバス１００のバス信号を端子４２から受信し、コントローラ５０が扱える受信信号に変換してコントローラ５０に出力するとともに、コントローラ５０が送信する送信信号をＣＡＮバス１００のバス用のバス信号に変換してＣＡＮバス１００に送信する。
【００２２】
コントローラ５０は、メッセージボックス５２とレジスタ５４とを有している。メッセージボックス５２は、例えば送信用のメッセージボックス５２と受信用のメッセージボックス５２とからなり、コントローラ５０のレジスタ５４と通信ドライバ６０の送受信キュー６２との間でデータの受け渡しを行う。
【００２３】
複数のレジスタ５４は、メッセージボックス５２から受け取った送信データの格納用、あるいはトランシーバ４０が受信した受信データの格納用に使用されるレジスタである。
コントローラ５０は、送信用のメッセージボックス５２を介して通信ドライバ６０の送信キュー６２から送信データを複数のレジスタ５４に順次格納し、レジスタ５４に格納された送信データをフレーム化してトランシーバ４０に出力する送信制御と、トランシーバ４０を介してＣＡＮバス１００からフレームを受信してメッセージ等を抽出して複数のレジスタ５４に順次格納し、受信用のメッセージボックス５２から通信ドライバ６０の受信キュー６２に出力する受信制御と、ＣＡＮバス１００上で送信フレームが衝突したときのバス権の調停制御などを実施する。
【００２４】
通信ドライバ６０は、送信時には、通信ソフト２０が生成した送信データを送信キュー６２に格納する。そして、通信ドライバ６０は、メッセージの内容からそのメッセージに対応するＩＤコードを特定し、これらメッセージ及びＩＤコードを送信用のメッセージボックス５２に出力する。
【００２５】
また、通信ドライバ６０は、コントローラ５０から、割込やフラグの表示等によりフレームを受信した旨の通知を受けた場合、受信用のメッセージボックス５２を読み出して受信キュー６２に格納する。
【００２６】
（初期化処理）
ＥＣＵ１０のＣＰＵ１２は、エンジンスタート時、および異常発生時のＥＣＵ１０の再起動時等において、通信モジュール３０を含む通信ソフトウェアおよび通信ハードウェアに対する初期化処理を通信ソフト２０により実施する。この初期化処理は、通信モジュール３０のレジスタ５４に対する動作確認処理を含んでいる。
【００２７】
図２〜図５に、通信に関する初期化処理のフローチャートを示す。図２〜図５において、「Ｓ」はステップを表している。
図２のＳ３００において、ＥＣＵ１０は、上位の通信ソフト２０が使用するＲＡＭ１４の使用領域に初期値を書き込み、Ｓ３０２において通信モジュール３０を初期化する。Ｓ３１０〜Ｓ３１８は、Ｓ３０２において実施される通信モジュール３０の初期化処理の概要を示すフローチャートである。
【００２８】
（通信モジュール３０の初期化処理１）
Ｓ３１０、Ｓ３１２、Ｓ３１４においてＥＣＵ１０は、それぞれ通信ドライバ６０の送受信キュー６２、コントローラ５０のメッセージボックス５２、コントローラ５０のレジスタ５４に初期値を書き込んで初期化する。そして、ＥＣＵ１０は、Ｓ３１６においてトランシーバ４０の端子４２を初期設定し、Ｓ３１８においてコントローラ５０のレジスタ５４に対して動作確認処理を実施する。
【００２９】
ここで、図２のＳ３１０〜Ｓ３１８に示す通信モジュール３０に対する全ての初期化処理を１回の周期で実施しようとすると、図６の（Ａ）に示すように、通信モジュール３０の全ての初期化処理時間Ｔａが、ＥＣＵ１０に与えられた１回の処理周期の長さである１周期処理時間Ｔｐを超えることがある。この場合、通信モジュール３０の全ての初期化処理を処理毎に分類した処理１〜処理５のうち処理５を１周期処理時間Ｔｐ内で実施できないばかりでなく、通信モジュール３０を使用しない制御処理も１回の周期で実施できなくなる。
【００３０】
ここで、処理１〜処理５は、例えば次のように分類されている。
（処理１）
トランシーバ４０の端子４２を初期設定し、コントローラ５０のメッセージボックス５２およびレジスタ５４、ならびに通信ドライバ６０の送受信キュー６２に初期値を書き込む。
【００３１】
（処理２）
コントローラ５０のレジスタ５４に所定データを書き込む。
（処理３）
レジスタ５４に書き込んだ所定データの値を読み出す。
【００３２】
（処理４）
レジスタ書き５４に書き込んだ所定データの値とレジスタ５４から読み出した値とを比較する。
【００３３】
（処理５）
比較した値が一致すれば通信モジュール３０に対する初期化処理が正常終了したことを上位の通信ソフト２０に通知する。比較した値が不一致であれば、通信モジュール３０に対する初期化処理が異常終了したことを上位の通信ソフト２０に通知する。
【００３４】
前述したように、通信モジュール３０に対する全ての初期化処理を１回の処理周期で実施すると全通信モジュール初期化処理時間Ｔａが１周期処理時間Ｔｐを超える場合、通信モジュール３０を初期化する処理１〜処理５を複数回に分けて実施することが考えられる。例えば、処理１〜処理５を、図６の（Ｂ）に示すように処理１および処理２と、処理３〜５との２回に分ける。これにより、複数回に分割した通信モジュール３０の初期化処理の最大初期化処理時間Ｔａ１と通信モジュール３０を使用しない制御処理の制御処理時間Ｔｂとの合計時間が１周期処理時間Ｔｐより短くなる。その結果、各回の初期化処理の終了後に通信モジュール３０を使用しない車両制御処理を実施できる。最終回の初期化処理の終了後には、通信モジュール３０を使用した車両制御処理を実施できる。このように通信モジュール３０に対する初期化処理を複数回に分けて実施することにより、初期化処理以外の車両制御の実施遅れを防止し、車両制御を極力速やかに実施できる。
【００３５】
図６の（Ｃ）に示すように、１周期処理時間Ｔｐ１がさらに短い場合には、通信モジュール３０の全ての初期化処理を処理１および処理２と、処理３および処理４と、処理５との３回に分けてもよい。これにより、複数回に分割した通信モジュール３０の初期化処理の最大初期化処理時間Ｔａ２と制御処理時間Ｔｂとの合計時間が１周期処理時間Ｔｐ２より短くなる。
【００３６】
尚、ＥＣＵ１０が複数の通信チャネルを備える場合には、複数の通信チャネルに対応する全ての通信モジュール３０に対する初期化処理を複数回に分けて実施する。
また、通信モジュール３０に対する初期化処理を分割しない場合の全通信モジュール初期化処理時間Ｔａと制御処理時間Ｔｂとの合計が１周期処理時間Ｔｐよりも短い場合には、通信モジュール３０に対する初期化処理を分割せず、１周期で実施してもよい。
【００３７】
（通信モジュール３０の初期化処理２）
図３〜図５に、通信モジュール３０の初期化処理を複数回の周期に分けて実施することを考慮したフローチャートを示す。図３は、分割された通信モジュール３０の初期化処理の１回目の実施周期における処理を示し、図４は初期化処理の２回目以降の実施周期における処理を示し、図５は動作確認処理の結果に応じた処理を示す。
【００３８】
（１回目の実施周期）
図３のＳ３２０においてＥＣＵ１０は、通信モジュール３０の初期化処理の分割数を、書換え可能な不揮発性の分割数記憶手段としてのフラッシュメモリ１８から取得し、Ｓ３２２においてＲＡＭ１４に記憶する。Ｓ３２４においてＥＣＵ１０は、初期化処理の分割数が２より少ないか、つまり分割数が１であり分割する必要がないかを判定する。
【００３９】
フラッシュメモリ１８に記憶されている分割数は、ＥＣＵ１０の性能、通信モジュール３０の対する初期化処理に要する時間等に基づき、例えばＣＡＮバス１００に接続した外部端末装置から通信ソフト２０のユーザにより適宜設定できることが望ましい。
【００４０】
尚、これ以外にも、通信ソフト２０内で設定されている初期化処理の分割数を書き換えて通信ソフト２０をコンパイルすることにより、ユーザが分割数を適宜設定してもよい。
分割数が２より小さい場合（Ｓ３２４：Ｙｅｓ）、Ｓ３２６、Ｓ３２８においてＥＣＵ１０は、図６の（Ａ）に示すように初期化処理を１回の実施周期ですべて実施し初期化処理を実施した結果の判定処理を実施する。
【００４１】
分割数が２以上の場合（Ｓ３２４：Ｎｏ）、ＥＣＵ１０は、分割数に基づいて初期化処理を実施する１回目の周期に応じた初期化処理を実施し（Ｓ３３０）、初期化処理の実施回数を１回として記憶する（Ｓ３３２）。そして、Ｓ３３４においてＥＣＵ１０は、上位の通信ソフト２０に初期化処理の未完了を通知する。上位の通信ソフト２０に初期化処理の未完了が通知されると、ＥＣＵ１０は、通信モジュール３０を使用しない車両制御処理を１周期処理時間Ｔｐの残り時間内で実施する。これにより、２周期目以降も含め、複数回に分割された通信モジュール３０に対する初期化処理が各周期において終了すると、車両制御を実施できる。
【００４２】
（２回目以降の実施周期）
図４のＳ３４０においてＥＣＵ１０は、２回目以降の実施周期に応じた未実施の初期化処理を実施し、初期化処理の実施回数を＋１する（Ｓ３４２）。
【００４３】
Ｓ３４４においてＥＣＵ１０は、初期化処理の実施回数が分割数に一致し、通信モジュール３０に対する初期化処理が終了したかを判定する。初期化処理の実施回数が分割数に一致する場合（Ｓ３４４：Ｙｅｓ）、Ｓ３４６においてＥＣＵ１０は初期化処理を実施した結果の判定処理を実施する。
【００４４】
初期化処理の実施回数が分割数に一致しない場合（Ｓ３４４：Ｎｏ）、Ｓ３４８においてＥＣＵ１０は、上位の通信ソフト２０に初期化処理の未完了を通知する。上位の通信ソフト２０に初期化処理の未完了が通知されると、ＥＣＵ１０は、通信モジュール３０を使用しない車両制御処理を１周期処理時間Ｔｐの残り時間内で実施する。
【００４５】
（動作確認処理結果）
図５のルーチンは、図３のＳ３２８、図４のＳ３４６において実施される初期化処理の結果判定処理に該当する。Ｓ３５０においてＥＣＵ１０は、通信モジュール３０に対する初期化処理の結果、つまりレジスタ５４に対して動作確認処理を実施した結果が正常か異常かを判定する。初期化処理の結果が正常の場合（Ｓ３５０：ＯＫ）、Ｓ３５２においてＥＣＵ１０は、初期化処理の結果が正常であると上位の通信ソフトに通知する。
【００４６】
通信モジュール３０に対する初期化処理の結果が異常の場合（Ｓ３５０：ＮＧ）、Ｓ３５４においてＥＣＵ１０は、初期化処理の結果が異常であると上位の通信ソフトに通知する。
【００４７】
以上説明した上記実施形態では、通信モジュール３０に対する初期化処理を複数回に分けて実施することにより、通信モジュール３０に対する各回の初期化処理が終了すると、１周期処理時間Ｔｐの範囲内で、通信モジュール３０を使用しない初期化処理以外の車両制御処理を実施できる。その結果、通信モジュール３０に対する初期化処理を実施する場合にも、車両制御の遅れを極力低減し速やかに車両制御を実施できる。
【００４８】
［他の実施形態］
上記実施形態では、コントローラ５０のレジスタ５４に対して所定データを書き込み、書き込んだ所定データの値と、レジスタ５４から読み出した値とが一致するかを判定して動作確認処理を実施した。これに対し、通信モジュール３０に対する初期化処理において、レジスタ５４以外にもコントローラ５０のメッセージボックス５２、通信ドライバ６０の送受信キュー６２に対して所定データを書き込み、書き込んだ所定データの値と読み出した値とが一致するかを判定して動作確認処理を実施してもよい。
【００４９】
上記実施形態では、通信モジュール３０に対する初期化処理の分割数をユーザが適宜設定してフラッシュメモリ１８に記憶した。これに対し、通信モジュール３０に対する初期化処理の分割数を固定にしてもよい。
【００５０】
上記実施形態では、車両に搭載される通信線としてＣＡＮバスを例にして説明した。車両に搭載される通信線としては、ＣＡＮバスに限るものではなく、他の仕様のバスであってもよい。
【００５１】
また、車内ＬＡＮに接続し車両制御を実施するＥＣＵ以外にも、通信モジュールを使用して通信線を介して通信を行うＥＣＵであれば、どのような用途に使用されるＥＣＵに本発明を適用してもよい。
【００５２】
このように、本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
【図面の簡単な説明】
【００５３】
【図１】本実施形態によるＥＣＵの構成を示すブロック図。
【図２】通信モジュールに対する初期化処理を示すフローチャート。
【図３】通信モジュールに対する１回目の初期化処理を示すフローチャート。
【図４】通信モジュールに対する２回目以降の初期化処理を示すフローチャート。
【図５】通信モジュールに対する初期化処理の結果判定を示すフローチャート。
【図６】初期化処理の分割状態を示す説明図。
【符号の説明】
【００５４】
１０：ＥＣＵ（電子制御装置、初期化手段、分割数記憶手段）、１８：フラッシュメモリ（分割数記憶手段）、３０：通信モジュール、５０：コントローラ、５４：レジスタ、１００：ＣＡＮバス（通信線）
【図１】
2009288953.tif 000003
【図２】
2009288953.tif 000004
【図３】
2009288953.tif 000005
【図４】
2009288953.tif 000006
【図５】
2009288953.tif 000007
【図６】
2009288953.tif 000008