説明

車両用通信中継装置、スリープ制御方法

【課題】付け捨て端子がある場合でも早期にスリープモードに入れる車両用通信中継装置を提供すること。
【解決手段】複数の端子に接続された1つ以上の端末に対しスリープ許可する車両用通信中継装置100であって、端子毎に通信データを送信し、送信異常の回数をカウントする送信処理手段23と、端子毎に過去に端末から通信データを受信したことを示す受信情報を記憶する受信情報記憶手段25と、送信異常の回数が第1の閾値以上になった場合に端末ごとに設けられたカウンタフラグを1つ大きくし、前記受信情報記憶手段に受信情報が記憶されている場合、カウンタフラグに所定値を設定するフラグ処理手段22と、前記カウンタフラグが前記所定値以上の第2の閾値になった場合、端子に接続された端末のスリープ条件が成立したと判定するスリープ制御手段21と、を有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の端子に接続された1つ以上の端末に対しスリープ許可する車両用通信中継装置等に関する。
【背景技術】
【0002】
車両には、エンジン、パワーステアリング、ボディ系などの車載装置を制御するための多くのECU(Electronic Control Unit)が搭載されている。各ECUはネットワークを介して接続されており、一方のECUが他方のECUの通信データを利用することなどにより、車載装置の高度な制御を実現している。
【0003】
車載されるECUの数が多くなると、ネットワーク上を通信データが輻輳して送信の遅延が生じやすくなるため、ゲートウェイ装置を配置することでネットワークをいくつかの車載LANに分割することがしばしば行われる。また、ゲートウェイ装置は、エンジンやトランスミッション、ブレーキなどを制御するECUが接続された制御系の車載LAN、ドアロック、パワーウインドウ、エアコンなどを制御するECUが接続されたボディ系、オーディオ、ナビなどを制御するECUが接続された情報系など、異なる車載LANの境界に配置されることも多い。
【0004】
ゲートウェイ装置は複数のチャネル(端子)を有し、チャネル毎に1つの車載LANを接続する。ゲートウェイ装置は、通信プロトコルの違いを吸収したり、通信速度の違いを吸収して、あるチャネルから他方のチャネルに転送する通信データを取捨する制御等を行う。また、ゲートウェイ装置は、チャネルに接続されているECUが通信データを受信可能か否か判定するため、各ECUの異常の有無を判定することがある(例えば、特許文献1参照。)。特許文献1には、定期的に送信されるメッセージを受信バッファが受信した回数をカウントし、受信バッファが受信すべきメッセージの受信回数である判定値と比較することによりECUの異常を検出するゲートウェイ装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−287739号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、各ECUは、IG−ONの間、常に動作しているとは限らず、処理が終了してから所定時間が経過するとスリープモードに入るなどの省エネ機能を搭載している。しかしながら、複数のECUがゲートウェイ装置を介して接続されている場合、あるECUがスリープモードに入れるとしても、他のECUは処理を継続している可能性があり、あるECUがスリープモードに入った後に他のECUが通信データを送信しても、スリープモードに入ったECUが受信できない状況が生じてしまう。そこで、ゲートウェイ装置は、全てのチャネルに接続されたECU(又は予め決められたECU)がスリープモードに入れる場合に各ECUにスリープモードに入ることを許可する。このようなスリープ制御をバス間協調スリープ制御という。
【0007】
しかしながら、各ECUが正常であれば、ゲートウェイ装置にスリープモードへの移行要求を送信することができるが、通信ができないなどの異常のあるECUはゲートウェイ装置にスリープモードへの移行要求を送信することができない。同様のことがチャネルから車載LANのケーブルが外れた場合にも発生する。このような場合、異常のあるECUやチャネルのために、他の全てのチャネルに接続された全てのECUがスリープモードに入れないという不都合を生じる。
【0008】
そこで、ゲートウェイ装置は、ECUの通信異常を判断することで、異常のあるECUからスリープモードへの移行要求を受信できなくても、バス間協調スリープ制御を可能にしている。具体的には、ゲートウェイ装置は、定期的に各ECUの通信データを受信し、そのフレームの受信有無を判定することで、ECUの異常を検出している。ECUに異常であることが検出されれば、そのECUからスリープモードへの移行要求がなくても、各ECUにスリープモードに入ることを許可できる。しかしながら、通信データを受信できない異常の場合、ゲートウェイのスリープに時間がかかる(タイムアウトまで待機するため)。
【0009】
ここで、ゲートウェイ装置から見てECUの異常やケーブルの断線と似た現象をもたらす状況として、端子の付け捨てがある。
【0010】
図1は、端子の付け捨ての一例を示す図である。端子の付け捨てとは、ゲートウェイ装置の複数のチャネル(図では3つ)のうち、予備のチャネル(図ではCH3)であるため車両の出荷時にECUが接続されないことをいう。ゲートウェイ装置から見ると、ECUに通信異常や断線が生じた場合は、スリープモードに入るまでに時間がかかる。このため、付け捨ての端子があるゲートウェイ装置に接続された全てのチャネルの全てのECUは、通信異常や断線が生じたと判定されるまで、スリープモードに入れないという問題がある。
【0011】
ECUがスリープモードに移行する度に、付け捨て端子のECU(実際には存在しない)や付け捨て端子に通信異常が生じていると判定されるまで時間を費やしてしまう。この間は全てのECUが作動しているので、消費電力も無駄に使用されてしまう。
【0012】
本発明は、上記課題に鑑み、付け捨て端子がある場合でも早期にスリープモードに入れる車両用通信中継装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明は、複数の端子に接続された1つ以上の端末に対しスリープ許可する車両用通信中継装置であって、端子毎に通信データを送信し、送信異常の回数をカウントする送信処理手段と、端子毎に過去に端末から通信データを受信したことを示す受信情報を記憶する受信情報記憶手段と、送信異常の回数が第1の閾値(例えば、100回)以上になった場合に端子毎に設けられたカウンタフラグ(例えば停止フラグ)を1つ大きくし、前記受信情報記憶手段に受信情報が記憶されている場合、前記カウンタフラグに所定値(例えば2)を設定するフラグ処理手段と、前記カウンタフラグが前記所定値以上の第2の閾値(例えば3)になった場合、端子に接続された端末のスリープ条件が成立したと判定するスリープ制御手段と、を有することを特徴とする。
【発明の効果】
【0014】
付け捨て端子がある場合でも早期にスリープモードに入れる車両用通信中継装置を提供することができる。
【図面の簡単な説明】
【0015】
【図1】端子の付け捨ての一例を示す図である。
【図2】本実施形態のゲートウェイ装置の概略的な特徴の一例を示す図である。
【図3】車両のネットワークの概略構成図の一例である。
【図4】ゲートウェイ装置のハードウェア構成図の一例である。
【図5】ゲートウェイ装置の機能ブロック図の一例である。
【図6】スリープ制御部がバス間協調スリープ制御する手順を示すフローチャート図の一例である。
【図7】付け捨てか断線かを判別することなく、ゲートウェイ装置が停止フラグを操作する従来の手順を示すフローチャート図の一例である。
【図8】送信処理の手順を示すフローチャート図の一例である。
【図9】付け捨て端子に対応して、停止フラグ操作部が停止フラグを操作する手順を示すフローチャート図の一例である。
【図10】端子3に対し、ゲートウェイ装置が送信停止するまでの時間を模式的に説明する図の一例である。
【発明を実施するための形態】
【0016】
以下、本発明を実施するための形態について図面を参照しながら説明する。
〔概略例〕
図2は、本実施形態のゲートウェイ装置100の概略的な特徴の一例を示す図である。図2のゲートウェイ装置100は3つの端子(チャネル)を有しており、端子3は車載LANに接続されない付け捨て端子である。
(1)ゲートウェイ装置100は各端子1〜3毎に送信及び受信が可能か否かを判定している。端子1,2については送信及び受信が可能であるが、端子3から送信及び受信することができない。
(2)ゲートウェイ装置100は、送信回数をカウントして無応答の回数が閾値以上になると端子3に異常があると判定する。ゲートウェイ装置100は端子3に異常があると判定すると、他の端子1,2の状況に応じて車載LAN1,2のECUがスリープモードに入ることを許可できる。ここまでは従来と同様になる。
(3)ところで、ゲートウェイ装置100は、通信データを転送するため端子に接続しているECUを管理している。したがって、過去に一度でも、ゲートウェイ装置100と正常に通信したECUは端子と対応づけて受信情報が残っている。受信情報は、例えば各ECUのCAN IDである。したがって、端子1,2には受信情報があるが、付け捨てである端子3には受信記録がない。本実施形態のゲートウェイ装置100はこのことを利用して、付け捨て端子があっても早期にスリープモードに入ることを可能とする。
【0017】
このため、ゲートウェイ装置100は、端子3に受信情報があるか否かを判定する。受信情報がない場合、端子が断線していることを示す停止フラグに、送信回数のカウントを省略可能な値(図では2)を設定する。停止フラグにこのような値が設定されることで、送信を繰り返す時間を短縮でき、早期にスリープモードに入ることが可能になる。
(4)また、ゲートウェイ装置100は、閾値以上になったカウンタ値(送信回数)をRAM13などに記憶しておく(RAM13にはバッテリから電力が供給されるのでカウンタ値は消去されない)。
(5)したがって、次回の端子1,2のECUがウェイクアップした場合、ゲートウェイ装置100はRAM13に記憶されたカウンタ値を初期値として、閾値以上か否かを判定する。端子3の停止フラグには、上記と同様に、送信回数のカウントを省略可能な値(図では2)が設定される。カウンタ値はすでに閾値以上なので、ゲートウェイ装置100はほとんど時間を費やすことなく、端子3は異常があると判定し、早期にスリープモードに入ることが可能になる。
【0018】
このように、本実施形態のゲートウェイ装置100は、出荷後(又はバッテリ装着後)の最初のウェイクアップ時だけ、閾値以上になるまで送信回数をカウントする必要があるが、その場合でも、停止フラグに適切な値を設定するので、従来よりも短い時間でバス間協調スリープが可能になる。
【0019】
また、閾値以上になったカウンタ値を記憶しておくので、一度だけカウンタ値を閾値以上までカウントしておけば、次回からは、停止フラグに送信回数のカウントを省略可能な値(上記の2)を設定することも作用して、ウェイクアップ時にすぐにスリープモードに入ることができる。
【0020】
また、端子1,2については、断線などが生じても受信記録があるため、停止フラグに送信回数のカウントを省略可能な値は設定されない。このため、付け捨てでない端子1,2については、従来どおり、送信回数が閾値以上になるまでカウントして、異常の有無を判定することができる。
【0021】
〔構成例〕
図3は、車載システム200の概略構成図の一例を示す。ゲートウェイ装置100には、車載LAN1と車載LAN2が接続されており、車載LAN1には1つ以上のECU11〜1n(単にECU1という)が、車載LAN2には1つ以上のECU21〜2n(単にECU1という)が、それぞれ接続されている。ゲートウェイ装置100は3つの端子を有し、端子1に車載LAN1が、端子2に車載LAN2がそれぞれ接続されているが、端子3は付け捨て端子である。端子の数は3つ以上であればよく、そのうち少なくとも1つが付け捨て端子であればよい。
【0022】
車載システム200は、ネットワークに接続されるECU1,2を機能的又は場所的にグループに分けるために別々の車載LAN1,2に分割されている。ネットワークをグループ分けすることで、1つの車載LANに接続されている複数のECUの起動状態の管理やウェイクアップ制御、スリープ制御が容易になる。
【0023】
車載LAN1,2の通信プロトコルは、例えば、CAN(Controller Area Network)、LIN(Local Interconnect Network)、Flexray等であり、この他どのようなプロトコルを採用してもよい。本実施例では、CANプロトコルを例にして説明する。
【0024】
ゲートウェイ装置100は、このように、複数の車載LAN1,2の間で、異なる系統間の通信データを仲介したり、1つの車載LANのケーブルの配線長や通信データの通信量がもたらす負荷を緩和する。
【0025】
例えば、ゲートウェイ装置100は、車載LAN1から車載LAN2に、車載LAN2から車載LAN1に通信データを中継する。ECU1が送信する通信データは車載LAN1を伝わってゲートウェイ装置100に到達して受信バッファに記憶される。ECU2が通信データを送信した場合も同様である。ゲートウェイ装置100は、通信データのCAN IDを参照してフィルタリングポリシーに従って、他方の車載LANに中継するか否かを決定する。
【0026】
例えば、CANプロトコルの場合、次のようなデータフォーマット「SOF;データIDフィールド;RTR;制御フィールド;データフィールド;CRCフィールド;ACKフィールド;EOF」を1フレームとして1つの通信データを送信する。データIDフィールドにはECU1、ECU2に固有のID(CAN ID)が格納されており、ゲートウェイ装置100や他のECUが通信データを識別するために使用される。フィルタリングポリシーでは、端子毎に転送すべき通信データのIDとその転送先の端子が登録されている。
【0027】
ゲートウェイ装置100は、ECU1、ECU2が後述する通常モードで動作中、定期的に通信確認を行うことでECU1,2や車載LAN1,2に異常があるか否か、及び、異常の内容等を検出している。ゲートウェイ装置100が定期的に送信する通信データをステータス通知要求といい、ECU1,2がステータス通知要求に応答して少なくともACKを送信し又は通信可能な異常があればその内容をゲートウェイ装置100に送信する(以下、単にECU1,2が返送する通信データを“ACK”という)。ゲートウェイ装置100はECU1やECU2からACKがない場合、ECU1,2の通信異常や端子1,2の断線を検出する。
【0028】
図4は、ゲートウェイ装置100のハードウェア構成図の一例を示す。ゲートウェイ装置100は、端子毎に搭載されたCANコントローラ11、CPU12、ROM14及びRAM13を有している。この他、ゲートウェイ装置100が有しているフラッシュメモリ、タイマ、WDT、I/O、IC等は省略している。CPU12はROM14に記憶されたプログラムを実行して、通信データの中継処理、バス間協調スリープ制御、ECUの通信異常や端子の断線判定等を行う。これらの処理の中で付け捨て端子が特定される。
【0029】
CANコントローラ11は、車載LAN1又は車載LAN2から通信データを受信するとCPU12に割り込むなどして受信したことを通知する。通信データは受信バッファ(RAM13の一領域にある)に記憶される。CPU12は、受信バッファに記憶されたデータフレームからCAN IDを抽出して、フィルタリングポリシーと照らし合わせ、転送が必要か否かを判定する。CPU12は、転送が必要な通信データは送信バッファに記憶して、送信側のCANコントローラ11に送信を要求する。送信側のCANコントローラ11は、通信データの送信要求を受け付けると上記のようなフレームの各フィールドに、CAN ID(この場合はゲートウェイのCAN ID)、データ等を格納し車載LAN1,2に送信する。
【0030】
このように、ゲートウェイ装置100の端子1にはECU1の通信データ、端子2にはECU2の通信データが到達するので、ゲートウェイ装置100は端子に対応づけて各ECUのCAN IDを記憶しておく。このCAN IDが受信情報である。こうすることで、端子1,2に接続されているECU1,2を特定することができる(上記のような転送も可能になる)。以下、端子とCAN IDの関係を登録したデータを端子受信テーブル25という。
【0031】
端子受信テーブル25は例えばRAM13に記憶される。ゲートウェイ装置100にはバッテリから電力が供給されるので、IG−OFFしてもRAM13のデータは消去されない。また、RAM13には、ACKを受信できなかったステータス通知要求の送信回数を端子毎に登録した送信回数テーブル24、端子毎の停止フラグが登録された停止フラグテーブル26が記録される。送信回数については後述する。
【0032】
<スリープモードについて>
各ECU1、2は、プログラムが動作可能な通常モードと対比して称されるスリープモード(又は省電力モード)で動作することができる。スリープモードは、例えば、CPU12の動作クロックが最小限に低減される状態、RAM13などの最小限のチップにしか電力が供給されない状態など、消費電力を抑制可能な動作モードである。説明のため、プログラムが動作可能なモードを通常モードと称す。よって、スリープモード以外の動作モードが通常モードである。なお、動作クロックが数段階に低減されたり、段階的に電力を供給するチップ数を低減するなど、スリープモードにいくつかの段階があってもよい。
【0033】
通常モードからスリープモードへの移行条件は、ECU毎に様々であるが、例えば、乗員がIGオフに操作したこと、IGオフ後、定められた終了処理(アクチュエータを安全に停止させる処理、ECUハードのアクセスを適切に終了させる処理等)が終了したこと、監視対象の通信線の所定時間の平均電圧が閾値未満であったこと(つまりそのECUが使用されていない)、等である。
【0034】
スリープモードから通常モードへの移行条件もECU100によって様々であるが、例えば、乗員がIGオンに操作したこと(ハイブリッド車や電気自動車の場合はメインシステムをオンに操作すること)、監視対象の通信線の所定時間の平均電圧が閾値以上であったこと、ユーザ操作が検出されたこと等である。例えば、IG−ONの場合は、ECU(マイコン、又は、CPU12でもよい)及びゲートウェイ装置100のWAKE端子にウェイクアップ信号が入力されることで検出される。スリープモードから通常モードへ移行することをウェイクアップという。
【0035】
〔ゲートウェイ装置の機能〕
図5は、ゲートウェイ装置100の機能ブロック図の一例である。ゲートウェイ装置100は、スリープ制御部21、停止フラグ操作部22及び送信処理部23を有する。スリープ制御部21は車載LANの全てのECU1,2がスリープ可能か否かを判断して、バス間協調スリープ制御を行う。送信処理部23は、ステータス通知要求をECU1,2に送信して、ACKを受信できない回数をカウントする。停止フラグ操作部22は、送信回数が閾値以上になると停止フラグを1つ大きくする。これにより、ECUの通信異常若しくは断線、又は、付け捨て端子である場合に停止フラグが大きくなる。また、停止フラグ操作部22は、受信端子テーブル25を参照して、ECUが登録されていない端子の停止フラグに“2”を設定する。
【0036】
例えば、図の端子受信テーブル25には、端子1にECU1が、端子2にECU2が、接続されていること(過去にECU1、2から端子1,2に通信データが送信されたこと)が登録されている。また、端子3は付け捨て端子なので、端子3にはECUが登録されていない。端子受信テーブル25のECU1,2は例えば、CAN ID(図1の受信情報に相当)であるが、過去に受信があったことを記録できればどのような情報でもよい。
【0037】
<バス間協調スリープ制御>
図6を用いて、バス間協調スリープ制御について説明する。図6は、スリープ制御部21がバス間協調スリープ制御する手順を示すフローチャート図の一例である。図6の処理は、各ECUがウェイクアップすることで開始され、ゲートウェイ装置100が各ECU1,2にスリープを許可するまでは繰り返し実行される。
【0038】
まず、スリープ制御部21はECU1,2からスリープ要求があるか否かを判定する(S1)。
【0039】
スリープ要求がある場合(S1のYes)、スリープ制御部21はスリープ要求したECU1,2の識別情報(例えば、CAN ID)を登録しておく(S2)。
【0040】
スリープ要求したECU1,2を登録すると、スリープ制御部21は車載LAN1,2に接続された全てのECUからスリープ要求があったか否かを判定する(S3)。すなわち、スリープ制御部21は端子受信テーブル25に登録されている全てのECU1,2からスリープ要求があったか否かを判定する。
【0041】
全てのECU1,2からスリープ要求があった場合(S3のYes)、スリープしているECU1,2に通信データが送信される可能性がないため、スリープ制御部21は全てのECU1,2にスリープを許可する(S100)。
【0042】
全てのECU1,2からスリープ要求がない場合(S3のNo)、通信異常、端子とケーブルの断線、又は、付け捨て端子の可能性があるため、スリープ制御部21はスリープ要求のないECUが接続された端子の停止フラグが“3”か否か判定する(S4)。停止フラグについては後述するが、停止フラグが“3”であるとはその端子とケーブルが断線しているか又は付け捨て端子であることを意味する。
【0043】
スリープ要求のないECUが接続された端子の停止フラグが“3”である場合(S4のYes)、スリープ制御部21は、スリープ制御部21は全てのECUにスリープを許可する(S100)。
【0044】
本実施形態では、停止フラグのカウント方法に特徴があり、付け捨て端子については早期にそれを検出し、断線の可能性のある端子については断線の有無を十分に判定することができる。
【0045】
<従来の停止フラグの操作>
図7は、付け捨てか断線かを判別することなく、ゲートウェイ装置100が停止フラグを操作する従来の手順を示すフローチャート図の一例である。
【0046】
まず、スリープ制御部21は各ECU及びゲートウェイ装置100がウェイクアップしたことを検出して、停止フラグをリセットする(S10)。停止フラグはウェイクアップ毎に初期化され、その初期値はゼロとする。
【0047】
バス間協調スリープ制御に至るまで、停止フラグ操作部22はステータス通知要求の送信処理を繰り返す。すなわち、スリープ制御部21はサイクル時間が経過したか否かを判定し(S20)、サイクル時間が経過する毎に(S12のYes)、停止フラグ操作部22は送信回数が閾値以上か否かを判定する(S30)。この閾値は上記と同じ例えば“100”回などであり、断線していると確定してよいか否かが判定されている。
【0048】
送信回数が閾値以上の場合(S30のYes)、停止フラグ操作部22は停止フラグを1つインクリメントする(S40)。このように、停止フラグは送信回数が閾値以上になると1つ増えるフラグである。
【0049】
次に、送信処理部23に送信処理を要求する(S50)。送信処理は、例えばS12のタイマ割込みにより実行されるサブルーチン、メイン関数から呼びだされる関数などである。
【0050】
これにより、送信処理部23は定期的に送信処理を行うことができる。
図8は、送信処理の手順を示すフローチャート図の一例である。送信処理部23は、各ECU1,2にステータス通知要求を送信する(S301)。ステータス通知要求を送信すべきECU1,2は端子受信テーブル25に登録されている。または、全ての端子1,2から同報的にステータス通知要求を送信してもよい。
【0051】
送信処理部23はACKを受信したか否かを判定する(S302)。特定のECUに不具合が生じた場合、特定のECUのみからACKが受信できない状況が生じるが、本実施例では、端子1又は端子2から車載LANのケーブルが外れているような場合を想定する。特定のECUの不具合が検出された場合、該ECUをリセットするなど所定の処理を行う。
【0052】
端子1のECUから1つでもACKを受信した場合、及び、端子2のECUから1つでもACKを受信した場合(S302のYes)、端子1,2に断線が生じておらず正常に通信可能であることになる。
【0053】
端子1又は端子2から全くACKを受信しない場合(S302のNo)、送信処理部23は端子毎に送信回数をインクリメントする(S303)。送信回数は、RAMに記憶されている値が初期値であり、ステータス通知要求を送信してACKが受信されない毎に1つずつ大きくなる。したがって、送信回数が大きいことは断線の可能性が高いことを意味する。
【0054】
次に、送信処理部23は停止フラグが2以上か否かを判定する(S304)。停止フラグは断線していると判定してスリープモードに移行するか否かを判定するためのフラグである。閾値である“2”は一例であって、適宜設計できる。
【0055】
停止フラグが2以上である場合(S304のYes)、断線しているためスリープモードに移行すべきなので、送信処理部23は何もしない。これにより、図7の手順で断線時のスリープモード移行制御が可能になる。
【0056】
停止フラグが2以上でない場合(S304のNo)、送信処理部23は送信回数が“閾値+1”以上か否かを判定する(S305)。この閾値は、断線していると判定してよい程度の数であり例えば“100”回などである。より具体的には、車両の出荷後又はバッテリ装着後、最初のカウント時だけ合計2回、送信処理部23は送信回数が閾値以上になるまでカウントする。一度、停止フラグが2以上になると、1回だけ、送信処理部23は送信回数が閾値以上になるまでカウントする。
【0057】
このため、送信処理部23は端子毎にカウントした送信回数をリセットする(S306)。リセットとはゼロに戻すこという。送信回数がリセットされることで、送信処理部23は、再度、閾値までカウントされるのでS301〜S303の処理が行われ、断線していなければ、この間にACKがあることが期待できる。
【0058】
このように図8では、停止フラグが2以上の場合はステップS306で送信回数がリセットされず、停止フラグが2以上でない場合にだけ(送信回数が閾値+1である場合)送信回数がリセットされる。停止フラグが2以上になる時は、必ず送信回数が閾値以上になっている(S40のYesにより)。したがって、停止フラグが2以上になった端子の送信回数は閾値のままRAM13に記憶されている。また、次回は、閾値の送信回数が初期値となる。
【0059】
図7に戻り、停止フラグ操作部22は、停止フラグが”3”か否かを判定する(S60)。停止フラグが3以上であることは、送信回数が2回(出荷後又はバッテリ装着後の初回だけが2回で、それ以降は1回)、閾値以上となったことを意味し、その端子は完全に断線していると判断される判断基準である。
【0060】
停止フラグが”3”の場合(S60のYes)、スリープ制御部21は送信処理の呼び出しを禁止するなどして、その端子への送信処理を停止する(S70)。この場合、断線の可能性があるので、ゲートウェイ装置100は端子番号と通信異常を記録するなどして、後に解析可能としておく。
【0061】
停止フラグが”3”でない場合(S60のNo)、停止フラグは2以下なので、停止フラグ操作部22はステップS10からの処理を繰り返す。ステップS50の送信処理において、停止フラグが0,1であれば送信回数はリセットされるので、送信回数がゼロからカウントされる。
【0062】
以上のような処理によれば、それまでゲートウェイ装置100が正常に通信できていた端子なら、停止フラグが”3”以上になるまで、ACKの受信の有無を確認できるため好ましいと言える。一方、付け捨て端子がある場合、停止フラグが”3”以上になるまでスリープモードに入れないという不都合が生じる。
【0063】
そこで、本実施形態のゲートウェイ装置100は付け捨て端子には過去に通信データが到達していないことを利用して、早期に全てのECUがスリープモードに入ることを可能にする。
【0064】
<本実施形態の停止フラグの操作>
図9は、付け捨て端子に対応して、停止フラグ操作部22が停止フラグを操作する手順を示すフローチャート図の一例である。図9の手順において図7と同一部の処理は、簡単に説明する。
【0065】
図9では、停止フラグをリセットすると、端子に受信履歴があるか否かを判定する(S12)。停止フラグ操作部22は端子受信テーブル25を参照して、端子毎に1つ以上のECUが登録されているか否かを判定する。端子3のように付け捨て端子の場合、1つのECUも登録されていない。
【0066】
端子3に受信履歴がない場合(S12のNo)、停止フラグ操作部22は停止フラグを2つインクリメントする(S14)。端子3に受信履歴がないということは、端子3は出荷時から付け捨てであったと判定してよい。よって、停止フラグを2つインクリメントすることで、送信回数が閾値を2回超えるまでに必要な時間を短縮できる。
【0067】
端子1,2のように受信履歴がある場合(S12のYes)、停止フラグ操作部22は停止フラグを操作しない(S16)。よって、端子1,2のように出荷時にケーブルが接続されており、過去にECU1,2が通信可能であった場合、従来と同様に、送信処理を行い断線の可能性を判定することができる。
【0068】
以降の処理について、端子3を例に説明する。ステップS14の処理により停止フラグは“2”になっている。
【0069】
サイクル時間が経過すると(S20のYes)、ステップS30では送信回数が閾値以上か否かが判定される。ここで、送信回数は閾値のままRAM13に記憶されているが、車両の出荷後又はバッテリ装着後、端子3の送信回数が閾値以上になる処理が1度だけ必要になる。
【0070】
よって、車両の出荷後又はバッテリ装着後、停止フラグが“2”のまま送信処理が実行される(S50)。図8の送信処理では、停止フラグが“2”なので、送信回数はリセットされることなく、端子3の送信回数は閾値以上になるまでインクメントされる。
【0071】
図9に戻り、送信回数が閾値以上になると(S30のYes)、停止フラグ操作部22は停止フラグをインクリメントする(S40)。これにより端子3に起因して停止フラグが“3”になる。図8の送信処理では停止フラグは変化しないので、ステップS60の判定がYesとなり、端子3への送信処理が停止される(S70)。
【0072】
このように、図9のステップS14により、ウェイクアップの後、すぐに停止フラグが“2”になるので、1度だけ送信回数が閾値以上になるまでカウントすれば、ゲートウェイ装置100は送信処理を停止することができる。
【0073】
これにより、バス間協調スリープ制御で説明したように、他の端子1,2の車載LANに接続された各ECUがスリープ要求することで、ゲートウェイ装置100は車載LAN1,2に対し協調してスリープを許可することができる。
【0074】
そして、車両の出荷後又はバッテリ装着後でない場合、送信回数はすでに閾値になっているので、最初のステップS30でYesとなり、停止フラグは”3”となる(S40)。その後、図8の送信処理から戻ると、ステップS60の判定がYesとなり、端子3への送信処理が停止される(S70)。
【0075】
次回、ECU1,2やゲートウェイ装置100がIG−ONなどによりウェイクアップすると、ウェイクアップ後、ステップS14で停止フラグは“2”になる。また、一度、閾値以上になった端子3の送信回数はRAM13に記憶されているので、ステップS30ではウェイクアップの直後に閾値以上になっている。これにより、停止フラグは“3”にインクリメントされ、ウェイクアップ後、すぐに送信処理が停止される(S70)。
【0076】
このように、付け捨て端子である端子3は、一度でも送信回数が閾値以上になると、ウェイクアップの直後から、スリープモードに入るための条件を満たす。したがって、ウェイクアップが2回目以降であれば、ゲートウェイ装置100は、車載LAN1,2のECU1,2のスリープ要求しだいですぐにスリープを許可することができる。
【0077】
〔効果の説明〕
図10は、端子3に対し、ゲートウェイ装置100が送信停止するまでの時間を模式的に説明する図の一例である。
(a)端子3が付け捨てか否かを判定しない場合
ゲートウェイ装置100は端子3が付け捨てか否かを判定せず、断線している可能性を判定するため送信回数が2回、閾値(100回)になるまで送信処理を行う。したがって、他の端子1,2のECU1,2がスリープ要求していても、バス間協調スリープ制御が可能になるまでの時間が長くなる。
(b)端子3が付け捨てか否かを判定する、出荷直後又はバッテリ装着直後の場合
出荷直後の端子3の送信回数はゼロとしてRAM13に記憶されている。このため、停止フラグを3にするため、送信回数が1回だけ閾値になるまでカウントされる。したがって、従来よりも早期にECU1,2の状態に応じてバス間協調スリープ制御が可能になる。なお、端子3の停止フラグは2以上なので、端子3の送信回数は閾値のままRAM13に記憶される。
(c)端子3が付け捨てか否かを判定する、出荷後又はバッテリ装着直後の2回目以降の場合
ウェイクアップの直後、端子3の送信回数はすでに閾値に達している。したがって、ゲートウェイ装置100が1回送信を行うと(アルゴリズム上の処理であり1回も送信を行なわないようにすることも可能である)、停止フラグが3になる。したがって、ウェイクアップの直後、ほとんど時間を費やすことなく、端子3は、ECU1,2の状態に応じてバス間協調スリープ制御が可能になる。
【0078】
図7と9を比較すると明らかなように、従来のロジックと比較して修正点も少ないのでソフトウェア開発のコストも低減できる。
【0079】
〔付け捨て端子にECUが接続された場合〕
車両の出荷時に付け捨てであった端子に、出荷後、ディーラーオプションの車載装置(例えば、盗難防止装置、リモートエンジン始動装置)やナビゲーション装置が接続される場合がある。この場合、本実施形態では、付け捨て端子に受信履歴が記録されていないため、装着後(ウェイクアップ後)、停止フラグがすぐに3になるおそれがある。
【0080】
しかしながら、新しいECUが接続される場合、作業のため、車両からバッテリが取り外される。このため、RAM13にも電力が供給されなくなり、RAM13に記憶された端子3(端子1,2も)の送信回数はリセットされる。
【0081】
送信回数がリセットされた場合、送信処理部23は閾値(100回)に達するまで送信処理を繰り返すので、その間に、新しいECUがゲートウェイ装置100に対しACKを含む通信データを送信する。これにより、受信端子テーブル25には端子3にECUから送信があったことが記録される。
【0082】
したがって、出荷後に付け捨て端子にECUが接続されても、停止フラグに”2”が設定されることはなく、出荷時からECUが接続されている他の端子1,2と同様に、断線が判定されるようになる。
【符号の説明】
【0083】
11 CANコントローラ
12 CPU
13 RAM
14 ROM
21 スリープ制御部
22 停止フラグ操作部
23 送信処理部
24 送信回数テーブル
25 端子受信テーブル
26 停止フラグテーブル
100 ゲートウェイ装置
200 車載システム

【特許請求の範囲】
【請求項1】
複数の端子に接続された1つ以上の端末に対しスリープ許可する車両用通信中継装置であって、
端子毎に通信データを送信し、送信異常の回数をカウントする送信処理手段と、
端子毎に過去に端末から通信データを受信したことを示す受信情報を記憶する受信情報記憶手段と、
送信異常の回数が第1の閾値以上になった場合に端子毎に設けられるカウンタフラグを1つ大きくし、前記受信情報記憶手段に受信情報が記憶されている場合、前記カウンタフラグに所定値を設定するフラグ処理手段と、
前記カウンタフラグが前記所定値より大きい第2の閾値になった場合、端子に接続されている端末のスリープ条件が成立したと判定するスリープ制御手段と、
を有することを特徴とする車両用通信中継装置。
【請求項2】
前記スリープ制御手段は、他の端子に接続された全ての端末からスリープ要求を受信した場合、前記カウンタフラグが前記第2の閾値になった端子からスリープ要求を受信しなくても、他の端子に接続された全ての端末にスリープを許可する、
ことを特徴とする請求項1記載の車両用通信中継装置。
【請求項3】
前記送信処理手段は、周期的に、端子毎に通信データを送信して端子からの応答がない場合に、送信異常の回数を1つ大きくし、
前記カウンタフラグが前記所定値以上でない場合、送信異常の回数をリセットし、前記カウンタフラグが前記所定値以上の場合、送信異常の回数をリセットしない、
ことを特徴とする請求項1又は2記載の車両用通信中継装置。
【請求項4】
前記カウンタフラグが第2の閾値になった場合、前記送信処理手段は、前記カウンタフラグが第2の閾値になった端子に対する周期的な通信データの送信を停止する、
ことを特徴とする請求項1〜3いずれか1項記載の車両用通信中継装置。
【請求項5】
前記送信処理手段は、前記カウンタフラグが前記所定値以上になりリセットされていない送信異常の回数を、バッテリ電力で記憶内容を維持可能な記憶手段に記録しておき、
端末がスリープから起動した際、前記フラグ処理手段は、前記記憶手段に記憶された送信異常の回数が前記第1の閾値以上になったか否かを判定する、
ことを特徴とする請求項3記載の車両用通信中継装置。
【請求項6】
バッテリ電力の喪失により、前記記憶手段に記憶された送信異常の回数がリセットされた場合、前記送信処理手段は、前記受信情報記憶手段に受信情報が記憶されていない端子に対し、周期的に通信データを送信する、
ことを特徴とする請求項5記載の車両用通信中継装置。
【請求項7】
前記スリープ制御手段は、前記カウンタフラグが第2の閾値になった場合、該端子が付け捨てである又は該端子と端末が断線していると判定する、
ことを特徴とする請求項1〜6いずれか1項記載の車両用通信中継装置。
【請求項8】
端子毎に過去に端末から通信データを受信したことを示す受信情報を記憶する受信情報記憶手段を有し、複数の端子に接続された1つ以上の端末に対しスリープ許可する車両用通信中継装置のスリープ制御方法であって、
送信処理手段が、端子毎に通信データを送信し、送信異常の回数をカウントするステップと、
フラグ処理手段が、送信異常の回数が第1の閾値以上になった場合に端子毎に設けられるカウンタフラグを1つ大きくし、前記受信情報記憶手段に受信情報が記憶されている場合、前記カウンタフラグに所定値を設定するステップと、
スリープ制御手段が、前記カウンタフラグが前記所定値より大きい第2の閾値になった場合、端子に接続された端末のスリープ条件が成立したと判定するステップと、
を有することを特徴とするスリープ制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate