(57)【要約】【課題】本発明は、ＣＡＮ通信装置及び固着判定方法に係り、ＣＡＮコントローラの有するメッセージバッファの固着有無を判定する時間の短縮化を図ることにある。【解決手段】ＣＡＮメッセージを格納するメッセージバッファを有する、ＣＡＮ通信の制御を行うＣＡＮコントローラを備えるＣＡＮ通信装置は、ブート処理時に、メッセージバッファの固着有無判定に用いるパターン値を該メッセージバッファに書き込み、次に、該メッセージバッファに書き込まれている値を読み込んで記憶手段に書き込むシーケンサと、ＣＡＮ通信前の初期化処理時に、記憶手段に格納されている値を読み込み、次に、該値をパターン値と比較することによりメッセージバッファの固着有無を判定する演算処理装置と、を備える。【選択図】図１
2015130596.tif 000002
【特許請求の範囲】
【請求項１】
ＣＡＮメッセージを格納するメッセージバッファを有する、ＣＡＮ通信の制御を行うＣＡＮコントローラを備えるＣＡＮ通信装置であって、
ブート処理時に、前記メッセージバッファの固着有無判定に用いるパターン値を該メッセージバッファに書き込み、次に、該メッセージバッファに書き込まれている値を読み込んで記憶手段に書き込むシーケンサと、
前記ＣＡＮ通信前の初期化処理時に、前記記憶手段に格納されている値を読み込み、次に、該値を前記パターン値と比較することにより前記メッセージバッファの固着有無を判定する演算処理装置と、
を備えることを特徴とするＣＡＮ通信装置。
【請求項２】
ＣＡＮ通信の制御を行うＣＡＮコントローラの有する、ＣＡＮメッセージを格納するメッセージバッファの固着有無を判定する固着判定方法であって、
シーケンサが、ブート処理時に、前記メッセージバッファの固着有無判定に用いるパターン値を該メッセージバッファに書き込み、次に、該メッセージバッファに書き込まれている値を読み込んで記憶手段に書き込む第１の工程と、
演算処理装置が、前記ＣＡＮ通信前の初期化処理時に、前記記憶手段に格納されている値を読み込み、次に、該値を前記パターン値と比較することにより前記メッセージバッファの固着有無を判定する第２の工程と、
を備えることを特徴とする固着判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＡＮ通信装置及び固着判定方法に係り、特に、ＣＡＮ（Controller Area Network）通信の制御を行うＣＡＮコントローラの有するメッセージバッファの固着有無を判定するうえで好適なＣＡＮ通信装置及び固着判定方法に関する。
【背景技術】
【０００２】
従来、ＣＡＮコントローラの有するメッセージバッファの固着有無を判定するＣＡＮ通信装置及び固着判定方法が知られている（例えば、特許文献１参照）。特許文献１記載の装置では、ＣＡＮ通信前の初期化処理時、演算処理装置（ＣＰＵ）が、ＣＡＮコントローラのメッセージバッファに検査用データを書き込み、次に、そのメッセージバッファに書き込まれているデータを読み込んで、その読み込んだデータと検査用データとを照合することによりメッセージバッファの固着有無を判定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−５５５９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般的に、ＣＡＮコントローラの処理速度は、ＣＰＵの処理速度に比べて遅い。このため、上記した特許文献１記載の装置の如く、ＣＡＮ通信前の初期化処理時にＣＰＵがＣＡＮコントローラにアクセスしてメッセージバッファにデータを書き込みかつそのメッセージバッファからデータを読み込むものとすると、かかる処理のすべてが完了するまでＣＰＵが動作待機する必要がある。この点、ＣＰＵによる固着有無の判定に要する時間が長くなり、初期化処理が長期化するおそれがある。
【０００５】
本発明は、上述の点に鑑みてなされたものであり、ＣＡＮコントローラの有するメッセージバッファの固着有無を判定する時間の短縮化を図ることが可能なＣＡＮ通信装置及び固着判定方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的は、ＣＡＮメッセージを格納するメッセージバッファを有する、ＣＡＮ通信の制御を行うＣＡＮコントローラを備えるＣＡＮ通信装置であって、ブート処理時に、前記メッセージバッファの固着有無判定に用いるパターン値を該メッセージバッファに書き込み、次に、該メッセージバッファに書き込まれている値を読み込んで記憶手段に書き込むシーケンサと、前記ＣＡＮ通信前の初期化処理時に、前記記憶手段に格納されている値を読み込み、次に、該値を前記パターン値と比較することにより前記メッセージバッファの固着有無を判定する演算処理装置と、を備えるＣＡＮ通信装置により達成される。
【０００７】
また、上記の目的は、ＣＡＮ通信の制御を行うＣＡＮコントローラの有する、ＣＡＮメッセージを格納するメッセージバッファの固着有無を判定する固着判定方法であって、シーケンサが、ブート処理時に、前記メッセージバッファの固着有無判定に用いるパターン値を該メッセージバッファに書き込み、次に、該メッセージバッファに書き込まれている値を読み込んで記憶手段に書き込む第１の工程と、演算処理装置が、前記ＣＡＮ通信前の初期化処理時に、前記記憶手段に格納されている値を読み込み、次に、該値を前記パターン値と比較することにより前記メッセージバッファの固着有無を判定する第２の工程と、を備える固着判定方法により達成される。
【発明の効果】
【０００８】
本発明によれば、ＣＡＮコントローラの有するメッセージバッファの固着有無を判定する時間の短縮化を図ることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施例であるＣＡＮ通信装置のハードウェア構成図である。
【図２】本実施例のＣＡＮ通信装置においてメッセージバッファの固着有無判定時に実現される動作工程を表した図である。
【発明を実施するための形態】
【００１０】
以下、図面を用いて、本発明に係るＣＡＮ通信装置及び固着判定方法の具体的な実施の形態について説明する。
【００１１】
図１は、本発明の一実施例であるＣＡＮ通信装置１０のハードウェア構成図を示す。本実施例のＣＡＮ通信装置１０は、例えば、車両などに搭載されており、車内通信を行うための装置である。車両は、それぞれマイクロコンピュータを主体に構成された複数の電子制御ユニット（ＥＣＵ）１２を有している。ＣＡＮ通信装置１０は、ＥＣＵ１２ごとに設けられている。
【００１２】
ＣＡＮ通信装置１０は、ＣＡＮ（Controller Area Network）バス１４に接続されており、ＣＡＮバス１４を介して他のＥＣＵ１２のＣＡＮ通信装置１０との間でデータ通信を行う。ＣＡＮバス１４は、予め定められたＣＡＮの通信プロトコルに従ってデータ通信を行うＬＡＮ（Local Area Network）である。
【００１３】
ＣＡＮ通信装置１０は、ＣＡＮコントローラ１６と、ＣＡＮトランシーバ１８と、演算処理装置（ＣＰＵ）２０と、を備えている。ＣＡＮコントローラ１６は、ＣＡＮの通信プロトコルに従って他のＥＣＵ１２との間のデータ通信を制御する装置である。ＣＡＮコントローラ１６は、予め定められた所定の動作周波数（例えば、６４ＭＨｚ）で動作することができる。
【００１４】
ＣＡＮトランシーバ１８は、ＣＡＮコントローラ１６とＣＡＮバス１４との間に介在している。ＣＡＮトランシーバ１８は、ＣＡＮコントローラ１６とＣＡＮバス１４との間でメッセージデータを送受信するための送受信機である。ＣＰＵ２０は、ＣＡＮコントローラ１６に接続されている。ＣＰＵ２０は、ＣＡＮコントローラ１６を介して他のＥＣＵ１２との間でメッセージデータを授受することにより各種処理を実行する処理部である。ＣＰＵ２０は、ＣＡＮコントローラ１６の動作周波数よりも動作が速い、予め定められた所定の動作周波数（例えば、１９２ＭＨｚ）で動作することができる。
【００１５】
ＣＡＮコントローラ１６は、他のＥＣＵ１２との間で送受信されるメッセージデータを格納するメッセージバッファ２２を有している。メッセージバッファ２２は、複数のメッセージデータを格納することができるように構成されている。ＣＡＮコントローラ１６は、メッセージバッファ２２内のメッセージデータをフレーム化してＣＡＮトランシーバ１８を介してＣＡＮバス１４へ送信する送信機能、ＣＡＮトランシーバ１８を介してフレームを受信してメッセージデータ等の抽出を行う受信機能、ＣＡＮバス１４上で複数のフレームが衝突した際に調停を行う調停機能などの、ＣＡＮの通信プロトコルに従った通信制御を実行する。
【００１６】
ＣＰＵ２０は、例えば、自ＥＣＵ１２から他のＥＣＵ１２へ送信すべきメッセージデータがある場合に、そのメッセージデータをメッセージバッファ２２に格納させる指令をＣＡＮコントローラ１６に対して行う。また、ＣＰＵ２０は、他のＥＣＵ１２からのメッセージデータがメッセージバッファ２２に格納された後、ＣＡＮコントローラ１６からフレームを受信した旨の通知を受けた場合に、メッセージバッファ２２にアクセスしてそのメッセージデータを読み出してそのメッセージデータを用いた処理を実行する。更に、ＣＰＵ２０は、後述の如く、ＣＡＮコントローラ１６のメッセージバッファ２２に生ずる信号レベルの固着（例えば、ビットが"０"又は"１"に固定される故障）の有無を判定する処理（固着有無判定）を実行する。
【００１７】
ＣＡＮ通信装置１０は、また、ＲＡＭ２４と、シーケンサ２６と、を備えている。ＲＡＭ２４は、ＣＰＵ２０に接続されていると共に、シーケンサ２６を介してＣＡＮコントローラ１６のメッセージバッファ２２に接続されている。ＲＡＭ２４は、ＣＰＵ２０によるメッセージバッファ２２の固着有無判定に用いるデータとしてのパターン値を格納していると共に、ＣＡＮコントローラ１６のメッセージバッファ２２の値を格納可能である主記憶装置である。
【００１８】
ＲＡＭ２４には、シーケンサ２６の動作によりメッセージバッファ２２の値が格納される。また、ＲＡＭ２４に格納された値は、シーケンサ２６の動作及びＣＰＵ２０の動作により読み出される。上記の固着有無判定に用いるパターン値は、例えば、"ＡＡＨ"や"５５Ｈ"などの値である。また、このパターン値は、複数格納されていてもよい。尚、本実施例では、互いに異なる２つのパターン値I及びパターン値IIが格納されているものとする。
【００１９】
シーケンサ２６は、ＣＡＮコントローラ１６のメッセージバッファ２２に接続されていると共に、ＲＡＭ２４に接続されている。シーケンサ２６は、ＣＰＵ２０による固着有無判定に必要な処理を行う制御装置である。シーケンサ２６は、上記のパターン値をＲＡＭ２４から読み込んでメッセージバッファ２２に書き込むことができると共に、メッセージバッファ２２に書き込まれている値を読み込んでＲＡＭ２４に書き込むことができる。これらのシーケンサ２６によるメッセージバッファ２２及びＲＡＭ２４との間の値の読み込み及び書き込みは、ＤＭＡ（Direct Memory Access）転送により行われる。
【００２０】
以下、図２を参照して、本実施例のＣＡＮ通信装置１０におけるメッセージバッファ２２の固着有無を判定するための動作について説明する。図２は、本実施例のＣＡＮ通信装置１０においてメッセージバッファ２２の固着有無判定時に実現される動作工程を表した図を示す。
【００２１】
本実施例のＣＡＮ通信装置１０においては、メッセージバッファ２２の固着有無を判定するうえで、まず、ブート（ＢＯＯＴ）処理時、シーケンサ２６が、ＲＡＭ２４から読み込んだパターン値IをＣＡＮコントローラ１６のメッセージバッファ２２に書き込む。そして、その書き込みを行った後、そのメッセージバッファ２２に書き込まれている値（ＭＢ値）を読み込み、その読み込んだＭＢ値をＲＡＭ２４に書き込む。
【００２２】
次に同様に、シーケンサ２６が、ＲＡＭ２４から読み込んだパターン値IIをＣＡＮコントローラ１６のメッセージバッファ２２に書き込む。そして、その書き込みを行った後、そのメッセージバッファ２２に書き込まれている値（ＭＢ値）を読み込み、その読み込んだＭＢ値をＲＡＭ２４に書き込む。
【００２３】
このように、本実施例においては、ブート処理時、シーケンサ２６が、ＣＡＮコントローラ１６（具体的には、メッセージバッファ２２）にアクセスして、メッセージバッファ２２の固着有無の判定に必要な情報（ＭＢ値）を収集し、その収集した情報をＲＡＭ２４に格納させることができる。かかるシーケンサ２６による処理が行われると、ＲＡＭ２４に、シーケンサ２６が取得したメッセージバッファ２２のＭＢ値が格納される。
【００２４】
この場合、ＲＡＭ２４は、メッセージバッファ２２が固着していなければ、パターン値I用のアドレスにパターン値Iに従ったＭＢ値を格納すると共に、パターン値II用のアドレスにパターン値IIに従ったＭＢ値を格納する。一方、メッセージバッファ２２が固着していれば、パターン値I用のアドレスにパターン値Iに従わないＭＢ値を格納すると共に、パターン値II用のアドレスにパターン値IIに従わないＭＢ値を格納する。
【００２５】
次に、上記したブート処理後におけるＣＰＵ２０の初期化処理時、ＣＰＵ２０が、ＲＡＭ２４に格納されているＭＢ値を読み込むと共に、ＲＡＭ２４に格納されているパターン値を読み込む。そして、それらの読み込んだＭＢ値とパターン値とを比較する。具体的には、パターン値I用のアドレスに格納されていたＭＢ値とパターン値Iとを比較すると共に、パターン値II用のアドレスに格納されていたＭＢ値とパターン値IIとを比較する。
【００２６】
そして、ＣＰＵ２０は、それらの比較結果としてＭＢ値とパターン値とが一致する場合は、メッセージバッファ２２の固着が生じていないと判定する。一方、上記の比較結果としてＭＢ値とパターン値とが一致しない場合は、メッセージバッファ２２の固着が生じていると判定する。
【００２７】
このように、本実施例においては、初期化処理時、ＣＰＵ２０が、ブート処理時にシーケンサ２６がＭＢ値を取得して格納したＲＡＭ２４にアクセスして、そのＭＢ値とパターン値との比較によりメッセージバッファ２２の固着有無を判定することができる。
【００２８】
従って、本実施例のＣＡＮ通信装置１０によれば、ＣＡＮコントローラ１６内のメッセージバッファ２２の固着有無を判定するのに、初期化処理時にＣＰＵ２０がそのメッセージバッファ２２にアクセスすることは不要である。すなわち、初期化処理時にＣＰＵ２０がＣＡＮコントローラ１６内のメッセージバッファ２２にアクセスすることなくそのメッセージバッファ２２の固着有無を判定することができる。
【００２９】
このため、本実施例によれば、ＣＰＵ２０が初期化処理時においてメッセージバッファ２２へのアクセスに要する時間を待機する必要がないので、ＣＰＵ２０によるＣＡＮコントローラ１６内のメッセージバッファ２２の固着有無の判定に要する時間の短縮化を図ることができ、初期化処理の長期化を回避することができる。特に、ＣＡＮコントローラ１６内のメッセージバッファ２２の数が多くなっても、それらすべてのメッセージバッファ２２の固着有無の判定を、初期化処理のために定められている初期化時間内に収めることが可能となる。
【００３０】
また、本実施例のＣＡＮ通信装置１０において、シーケンサ２６が行う動作は、ＣＡＮコントローラ１６のメッセージバッファ２２とＲＡＭ２４との間におけるＭＢ値のＤＭＡ転送だけである。このため、本実施例によれば、ＣＡＮ通信装置１０が備えるシーケンサ２６を簡易な構造でかつ低コストで実現することができる。
【００３１】
尚、上記の実施例においては、ＲＡＭ２４が特許請求の範囲に記載した「記憶手段」に、ブート処理時にシーケンサ２６がメッセージバッファ２２の固着有無判定に用いるパターン値をメッセージバッファ２２に書き込み、次に、そのメッセージバッファ２２に書き込まれているＭＢ値を読み込んでＲＡＭ２４に書き込むことが特許請求の範囲に記載した「第１の工程」に、初期化処理時にＣＰＵ２０がＲＡＭ２４に格納されているＭＢ値を読み込み、次に、そのＭＢ値をパターン値と比較することによりメッセージバッファ２２の固着有無を判定することが特許請求の範囲に記載した「第２の工程」に、それぞれ相当している。
【符号の説明】
【００３２】
１０  ＣＡＮ通信装置
１２  電子制御ユニット（ＥＣＵ）
１４  ＣＡＮバス
１６  ＣＡＮコントローラ
２０  演算処理装置（ＣＰＵ）
２２  メッセージバッファ
２４  ＲＡＭ
２６  シーケンサ
【図１】
2015130596.tif 000003
【図２】
2015130596.tif 000004