(57)【要約】【課題】プログラムの書き換え時間を短縮するようにしたゲートウェイ装置、及びデータ送信方法を提供すること。【解決手段】複数のバスを介して接続された複数の制御装置にプログラムを書き換えるための書き換えデータを送信するゲートウェイ装置において、前記書き換えデータを受信する受信部と、書き換え対象がある制御装置が接続されたバスが複数ある場合に、複数のバスに、それぞれのバスに接続された制御装置の書き換えデータの送信を並行して行う送信部とを備える。【選択図】図１
2010271891.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスを介して接続された複数の制御装置にプログラムを書き換えるための書き換えデータを送信するゲートウェイ装置において、
前記書き換えデータを受信する受信部と、
書き換え対象がある制御装置が接続されたバスが複数ある場合に、複数のバスに、それぞれのバスに接続された制御装置の書き換えデータの送信を並行して行う送信部と
を備えることを特徴とするゲートウェイ装置。  
【請求項２】
前記書き換え装置からの前記書き換えデータは、前記バスに送信する書き換えデータよりも高速に受信することを特徴とする請求項１記載のゲートウェイ装置。
【請求項３】
前記複数のバスがＣＡＮプロトコルによるバスであり、単一のバスに複数の書き換え対象である制御装置が存在した場合には、１つの制御装置ごとに書き換えデータの送信を行うことを特徴とする請求項１記載のゲートウェイ装置。
【請求項４】
前記送信部は、送信制御部と、複数のメッセージボックス部を備え、
前記各メッセージボックスは順次前記書き換えデータを記憶し、前記送信制御部により連続して前記各バスに前記書き換えデータを送信することを特徴とする請求項１記載のゲートウェイ装置。
【請求項５】
複数のバスを介して接続された複数の制御装置にプログラムを書き換えるための書き換えデータを送信するゲートウェイ装置におけるデータ送信方法であって、
前記書き換えデータを受信し、
書き換え対象がある制御装置が接続されたバスが複数ある場合に、複数のバスに、それぞれのバスに接続された制御装置の書き換えデータの送信を並行して行う
ことを特徴とするデータ送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲートウェイ装置、及びデータ送信方法に関する。
【背景技術】
【０００２】
昨今、車両の車載ネットワークとしてＣＡＮプロトコルが注目されている（例えば、以下の非特許文献１及び２）。ＣＡＮはＩＳＯ（International Organization for Standardization）で国際的に標準化された通信プロトコルである。
【０００３】
図８はＣＡＮプロトコルによる車載ネットワークシステム３００の構成例を示す図である。複数のＥＣＵ（Electric Control Unit）３０１〜３０７が各ＣＡＮバス（ＨＳ‐Ｖ１バス〜ＨＳ‐Ｖ３バス）に接続され、ゲートウェイＥＣＵ３０５，３０６により各ＣＡＮバス間が接続される。
【０００４】
さらに車載ネットワークシステム３００は、ダイアグツール３５０を接続するコネクタ３１０を備える。ダイアグツール３５０は、各ＥＣＵ３０１等に記憶されたプログラムを書き換えるための書き換えデータを保持し、コネクタ３１０を介して書き換え対象のＥＣＵ３０１に書き換えデータを送信する。
【０００５】
なお、この種の従来技術は例えば以下に示す特許文献に開示されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】「ＣＡＮ入門書」www.renesas.com
【非特許文献２】「ＣＡＮとは？」www.toyo.co.jp/car/CAN/CAN_General.htm
【特許文献】
【０００７】
【特許文献１】特開平１０‐３２６１０７号公報
【特許文献２】特開２００４‐１３４０１４号公報
【特許文献３】特開２００５‐７８３２４号公報
【特許文献４】特開２００６‐２６８５５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、ダイアグツール３５０は車載ネットワークシステム３００において、一度に一つのＥＣＵ３０１〜３０４，３０７しか書き換えデータを送信できない。ＣＡＮバス内ではＩＤによりデータの種別を示しており書き換えデータを送信するためのＩＤは限られていること、書き換え対象のＥＣＵ３０１〜３０４，３０７を一つに特定することで他のＥＣＵ３０１〜３０４，３０７が同時に書き換えられることを防止すること、等の理由からである。
【０００９】
このような場合、同じ書き換えデータを複数のＥＣＵ３０１〜３０４，３０７に送信するとき、ダイアグツール３５０はＥＣＵ３０１〜３０４，３０７一つ一つに書き換えデータを送信する。そのため、例えば、複数のＥＣＵ３０１〜３０４，３０７のプログラムを書き換えるには時間がかかる。
【００１０】
さらに、ダイアグツール３５０から送信される書き換えデータは、ゲートウェイＥＣＵ３０５，３０６を介して他のＥＣＵ３０４，３０７に送信される場合もあり、さらに時間がかかる。
【００１１】
そこで、一目的はプログラムの書き換え時間を短縮するようにしたゲートウェイ装置、及びデータ送信方法を提供することにある。  
【課題を解決するための手段】
【００１２】
一態様によれば、複数のバスを介して接続された複数の制御装置にプログラムを書き換えるための書き換えデータを送信するゲートウェイ装置において、前記書き換えデータを受信する受信部と、書き換え対象がある制御装置が接続されたバスが複数ある場合に、複数のバスに、それぞれのバスに接続された制御装置の書き換えデータの送信を並行して行う送信部とを備える。
【００１３】
また、他の態様によれば、複数のバスを介して接続された複数の制御装置にプログラムを書き換えるための書き換えデータを送信するゲートウェイ装置におけるデータ送信方法であって、前記書き換えデータを受信し、書き換え対象がある制御装置が接続されたバスが複数ある場合に、複数のバスに、それぞれのバスに接続された制御装置の書き換えデータの送信を並行して行う。
【発明の効果】
【００１４】
プログラムの書き換え時間を短縮するようにしたゲートウェイ装置、及びデータ送信方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は車載ネットワークシステムの構成例を示す図である。
【図２】図２（Ａ）及び同図（Ｂ）はフレームフォーマットの例を示す図である。
【図３】図３はゲートウェイＥＣＵの構成例を示す図である。
【図４】図４はゲートウェイＥＣＵにおける書き換え処理の例を示すフローチャートである。
【図５】図５はゲートウェイＥＣＵにおける書き換え処理の例を示すフローチャートである。
【図６】図６はＣＡＮコントローラの構成例を示す図である。
【図７】図７はゲートウェイＥＣＵにおけるデータセット処理の例を示すフローチャートである。
【図８】図８は従来の車載ネットワークシステムの構成例を示す図である。
【発明を実施するための形態】
【００１６】
実施するための最良の形態について、以下図面を参照しながら説明する。
【００１７】
図１は、本発明が適用される車載ネットワークシステム１００の一例である。車載ネットワークシステム１００は、複数のＥＣＵ（または制御装置）１１〜１３，２１〜２２，３１〜３３と、ゲートウェイＥＣＵ（ゲートウェイ装置）５０とを備える。
【００１８】
各ＥＣＵ１１等は、各々ＣＡＮバス（ＨＳ‐Ｖ１バス〜ＨＳ‐Ｖ３バス）に接続される。図１に示す例では、ＥＣＵ１１〜１３がＣＡＮバス（ＨＳ‐Ｖ１バス）に接続され、ＥＣＵ２１〜２２がＣＡＮバス（ＨＳ‐Ｖ２バス）に接続され、ＥＣＵ３１〜３３がＣＡＮバス（ＨＳ‐Ｖ３バス）に接続される。
【００１９】
ゲートウェイＥＣＵ５０は、複数のＣＡＮバスまたはネットワークにまたがるように車載ネットワークシステム１００内に設けられている。ゲートウェイＥＣＵ５０は、複数のＣＡＮバス、すなわち車載ネットワークシステム１００のＣＡＮバスすべてに接続されている。したがって、ゲートウェイＥＣＵ５０は例えばマルチバスゲートウェイ装置でもある。
【００２０】
また、ゲートウェイＥＣＵ５０は、例えばイーサネット（登録商標）を介して書き換えツール２００に接続される。このため、ゲートウェイＥＣＵ５０はイーサネットに接続するための例えばコネクタを備える。
【００２１】
イーサネットはＣＡＮバスよりも高速にデータを送受信できる。書き換えツール２００とゲートウェイＥＣＵ５０との間は、イーサネット以外にも、ＵＳＢ（Universal Serial Bus）、ブルートゥース、車載通信用のＦｌｅｘＲａｙなどの通信プロトコルにより通信されてもよい。
【００２２】
書き換えツール（または書き換え装置）２００は、ゲートウェイＥＣＵ５０を介して車載ネットワークシステム１００の各ＥＣＵ１１等に対して、プログラムを書き換えるための書き換えデータを送信する。書き換えツール２００は、例えばパーソナルコンピュータやサーバ装置などである。
【００２３】
送信された書き換えデータは、ゲートウェイＥＣＵ５０が複数のＣＡＮバスに接続されているため、複数のＥＣＵ１１等に同時に送信される。
【００２４】
図２（Ａ）は、書き換えツール２００からゲートウェイＥＣＵ５０に送信されるフレームのフォーマットの例を示す図である。書き換えツール２００から送信されるフレームは、先頭に例えばデータ種別を示すＩＤ領域と、各ＥＣＵ１１等に送信されるＥＣＵデータ（書き換えデータを含む）が格納されるＥＣＵデータ領域とを有する。同図（Ａ）の例は、８バイトごとにＥＣＵデータがＥＣＵデータ領域に格納できる。また、書き換えデータはＥＣＵデータ領域に格納される。
【００２５】
図２（Ｂ）はゲートウェイＥＣＵ５０からＥＣＵ１１等へ送信されるフレームのフォーマットの例を示す図である。ＥＣＵ１１等に送信されるフレームは、ＣＡＮＩＤ領域と、データ長領域（ＤＬＣ）と、ＥＣＵデータ領域とを有する。
【００２６】
ＣＡＮＩＤ領域は、ＣＡＮプロトコルで決められたフレームの種別やデータの種別等を示すＣＡＮＩＤが格納される。
【００２７】
データ長領域は、ＥＣＵデータ領域に格納されるデータのデータ長が格納される。また、ＥＣＵデータ領域は、ＥＣＵデータが格納される。書き換えデータはＥＣＵデータ領域に格納される。
【００２８】
図２（Ａ）及び同図（Ｂ）の例は、ＥＣＵデータ１がＥＣＵ１２、ＥＣＵデータ２がＥＣＵ２２、ＥＣＵデータ３がＥＣＵ３３、の各書き換えデータとして、各々ＣＡＮバス（ＨＳ‐Ｖ１バス〜ＨＳ‐Ｖ３バス）に送信される例を示す。
【００２９】
図３はゲートウェイＥＣＵ５０の構成例を示す図である。ゲートウェイＥＣＵ５０は、イーサ受信部５１と、ＲＡＭ５２と、ＣＡＮ送信部５３、及びＣＰＵ５４を備える。
【００３０】
イーサ受信部５１は、イーサネットを介して書き換えツール２００と接続される。イーサ受信部５１は、ＣＰＵ５４の制御により書き換えデータをＣＡＮバス（ＨＳ‐Ｖ１バス〜ＨＳ‐Ｖ３バス）ごとに振分けて出力する。ＣＰＵ５４は、例えば、書き換えツール２００から受信したフレームのＩＤに基づいて、ＥＣＵ１１等に対する書き換えデータであることを判別し、書き換えデータであるとき、書き換えデータをＣＡＮバス（ＨＳ‐Ｖ１バス〜ＨＳ‐Ｖ３バス）ごとに振分ける。振分けは、例えばバイト単位（８バイトなど）で行う。
【００３１】
ＲＡＭ５２は、イーサ受信部５１により振分けられた書き換えデータを、ＣＰＵ５４の制御により、一時記憶し、一時記憶された書き換えデータをＣＡＮ送信部５３に出力する。
【００３２】
ＣＡＮ送信部５３は、ＣＡＮバス（ＨＳ‐Ｖ１バス〜ＨＳ‐Ｖ３バス）ごとにＣＡＮコントローラ５３１〜５３３を備える。
【００３３】
ＣＰＵ５４は、イーサ受信部５１で受信したデータを、ＣＡＮコントローラ５３１〜５３３内のメッセージボックスにセットするまでの処理（ソフトウェア処理）を行う。なお、メッセージボックスにセットされたデータをバスに送信する処理は、ハードウェア（ＣＡＮ送信部５３）で処理する。
【００３４】
例えば、ＣＡＮコントローラ５３１〜５３３は、ＲＡＭ５２から出力された書き換えデータを、各ＣＡＮバス内に送信するフレーム（例えば図２（Ｂ））に変換し、各ＣＡＮバスに送信する。
【００３５】
ＣＡＮコントローラ５３１〜５３３は、データのバスへの送信が完了すると、送信完了通知をＣＰＵ５４に出力する。送信完了通知は、ＣＡＮコントローラ５３１〜５３３内の１つのメッセージボックスが空になる（メッセージボックス内のデータの送信が完了する）毎にＣＰＵに対して行うように構成してもよいし、１つのＣＡＮコントローラ５３１〜５３３内のすべてのメッセージボックスが空になる毎に行うように構成してもよい。
【００３６】
なお、ＲＡＭ５２に記憶されたデータをＣＡＮコントローラ５３１〜５３３内のメッセージボックスにセットする処理はハードウェアで処理される構成としてもよい。例えば、各ＣＡＮコントローラ５３１〜５３３は、ＲＡＭ５２に記憶されたデータを読み出して、メッセージボックスにセットするようにしてもよい。
【００３７】
図４はゲートウェイＥＣＵ５０で行われる処理の例を示すフローチャートである。例えばゲートウェイＥＣＵ５０が書き換えデータを受信することで、処理が開始される（Ｓ１０）。
【００３８】
次いで、ＣＰＵ５４は、イーサ受信部５１で受信した書き換えデータをＣＡＮバスごとに振分ける（Ｓ１１）。
【００３９】
次いで、ＣＰＵ５４は、振分けられた書き換えデータをＲＡＭ５２に一時記憶する（Ｓ１２）。
【００４０】
次いで、ＣＰＵ５４は、バス１（ＨＳ‐Ｖ１バス）に書き換え処理が未処理なＥＣＵ１１〜１３があるか否かを判断する（Ｓ１３）。
【００４１】
ＣＰＵ５４は、バス１に書き換え処理が未処理のＥＣＵ１１〜１３があると判断したときは（Ｓ１３でＹＥＳ）、ＣＡＮコントローラ１（５３１）から送信完了通知があったか否かを判断する（Ｓ１４）。
【００４２】
ＣＰＵ５４は、ＣＡＮコントローラ１から送信完了通知があったとき（Ｓ１４でＹＥＳ）、ＣＡＮコントローラ１へのデータセット処理を行う（Ｓ１５）。一方、ＣＰＵ５４は、バス１に書き換え処理が未処理なＥＣＵがないとき（Ｓ１３でＮＯ）、またはＣＡＮコントローラ１から送信完了通知がないとき（Ｓ１４でＮＯ）、データセット処理（Ｓ１５）を行うことなくＳ１６（図５）の処理に移行する。
【００４３】
図７はデータセット処理の詳細な例を示すフローチャートである。ＣＰＵ５４は、データセット処理（Ｓ１５）に移行すると、ＣＡＮコントローラ１を、メッセージボックス１〜３のデータをメッセージ番号順に送信するモードに設定する（Ｓ１５１）。
【００４４】
次いで、ＣＰＵ５４は、ＥＣＵ用書き換えデータをＲＡＭ５２からＣＡＮコントローラ１のメッセージボックス１〜３に連続して書き込む（Ｓ１５２）。
【００４５】
次いで、ＣＰＵ５４は、メッセージボックス１〜３の送信要求を順番にセットする（Ｓ１５３）。
【００４６】
そして、一連のデータセット処理が終了する（Ｓ１５４）。これにより、ＣＡＮコントローラ１はメッセージボックス１〜３に書き込まれたＥＣＵ用書き換えデータを書き換え対象のＥＣＵ１１〜１３に送信可能となる。
【００４７】
ＣＰＵ５４は、ＣＡＮコントローラ１へのデータセット処理が終了すると、次いで、バス２（ＨＳ‐Ｖ２バス）に対して、書き換え処理が未処理なＥＣＵ２１〜２２があるか否か（図５のＳ１６）、ＣＡＮコントローラ２から送信完了通知があるか否か（Ｓ１７）を判断する。
【００４８】
ＣＰＵ５４は、バス２に対して、書き換え処理が未処理なＥＣＵ２１〜２２があり（Ｓ１６でＹＥＳ）、ＣＡＮコントローラ２から送信完了通知があれば（Ｓ１７でＹＥＳ）、ＣＡＮコントローラ２へのデータセット処理を行う（Ｓ１８）。ＣＡＮコントローラ２へのデータセット処理は、図７とほぼ同様である。ＣＰＵ５４は、ＣＡＮコントローラ２を、メッセージボックス１〜３のデータをメッセージ番号順に送信するモードに設定し（Ｓ１５１）、ＥＣＵ用書き換えデータをＲＡＭ５２からＣＡＮコントローラ１のメッセージボックス１〜３に連続して書き込む（Ｓ１５２）。そして、ＣＰＵ１５４は、メッセージボックス１〜３の送信要求を順番にセットし（Ｓ１５３）、データセット処理を終了する（Ｓ１５４）。
【００４９】
一方、ＣＰＵ５４は、バス２に対して、書き換え処理が未処理なＥＣＵ２１〜２がなく（Ｓ１６でＮＯ）、ＣＡＮコントローラ２から送信完了通知がなければ（Ｓ１７でＮＯ）、データセット処理を行うことなく、Ｓ１９に移行する。
【００５０】
ＣＰＵ５４は、ＣＡＮコントローラ２へのデータセット処理が終了すると（Ｓ１８）、バス３（ＨＳ‐Ｖ３バス）に対して、バス１に対する処理（Ｓ１３〜Ｓ１５）等と同様の処理（Ｓ１９〜Ｓ２１、Ｓ１５０〜Ｓ１５３）を行う。
【００５１】
そして、ＣＰＵ５４は、ＣＡＮコントローラ２へのデータセット処理が終了すると、全てのＥＣＵ１１〜３３に対する書き換え処理が完了したか否かを判断し（Ｓ２２）、完了していれば（ＹＥＳ）、一連の処理を終了させる（Ｓ２３）。一方、ＣＰＵ５４は完了していないと判断したとき（Ｓ２２でＮＯ）、再びＳ１３に移行して上述の処理を繰り返す。
【００５２】
このように、ゲートウェイＥＣＵ５０が複数のＣＡＮバスに接続され、各ＣＡＮバスに同時に書き換えデータを送信できるため、各ＣＡＮバスのＥＣＵ１１等は他のＣＡＮバスのＥＣＵ２１等と同時にプログラムの書き換えを行うことができる。また、複数のバスが接続されたゲートウェイＥＣＵ５０において、書き換え対象ＥＣＵ１１〜３３が複数のバス（ＨＳ‐Ｖ１バス〜ＨＳ‐Ｖ３バス）に分散している場合には、複数のバスに接続されたＥＣＵ１１〜３３の書き換え処理（データ送信）を並行して行うものであり、単一のバスに複数の書き換え対象ＥＣＵがある場合には、順番にＥＣＵの書き換えを行うものである。よって、一つ一つのＥＣＵ１１等に対して書き換えデータを送信する場合と比較して、本車載ネットワークシステム１００はプログラムの書き換え時間を短縮できる。
【００５３】
また、ＣＡＮコントローラ５３１は複数のメッセージボックス５３１‐１〜５３１‐３を備え、各メッセージボックス５３１‐１〜５３１‐３から順次読み出して送信しているため、各ＣＡＮバスに連続して書き換えデータを送信できる。例えば、大量の書き換えデータを送信する場合に連続して送信できるため、各ＥＣＵ１１等のプログラムの書き換え時間をさらに短縮できる。
【００５４】
さらに、複数のバス（ＨＳ‐Ｖ１バス〜ＨＳ‐Ｖ３バス）がＣＡＮプロトコルによるバスであり、単一のバスに複数の書き換え対象のＥＣＵが存在した場合、ゲートウェイＥＣＵ５０は１つのＥＣＵごとに書き換え対象データの送信を行うようにしている。ＣＡＮプロトコルのＩＤは、ＥＣＵ毎ではなく、書き換えデータであることを示すＩＤなど、データ種別毎に付与される構成であるので、同じバス内で複数のＥＣＵの書き換えを並行して行うと、データ受信したＥＣＵがデータ誤りなどにより、誤って別のＥＣＵに対するデータを用いて書き換えを行ってしまう可能性があるが、上記構成によりその可能性を防ぐことができる。なお、単一のバスに複数の書き換え対象のＥＣＵが存在した場合にゲートウェイＥＣＵ５０が１つのＥＣＵごとに書き換え対象データを送信するようにした構成は、ＣＡＮプロトコルのバス以外に適用してもよい。
【００５５】
図６は、ＣＡＮコントローラ５３１の構成例とデータハンドリングの例を示す図である。ＣＡＮコントローラ５３１は、複数のメッセージボックス５３１‐１〜５３１‐３を備える。
【００５６】
ＣＡＮコントローラ５３１は、例えばＣＡＮバス（ＨＳ‐Ｖ１バス）に接続され、ＲＡＭ５２から書き換えデータを読み出し、連続してＣＡＮバス（ＨＳ‐Ｖ１バス）に送信する。
【００５７】
同図に示すように、例えば、ＣＡＮコントローラ５３１は８バイトの書き換えデータ（ＥＣＵ１データ１）をメッセージボックス５３１‐１に書き込み、８バイトの書き換えデータ（ＥＣＵデータ２）をメッセージボックス５３１‐２に書き込み、８バイトの書き換えデータ（ＥＣＵデータ３）をメッセージボックス５３１‐３に書き込む。各メッセージボックス５３１‐１〜５３１‐３は各々書き換えデータを一時記憶する。
【００５８】
そして、ＣＡＮコントローラ５３１は各メッセージボックス５３１‐１〜５３１‐３から順番に書き換えデータを読み出してＣＡＮバス（ＨＳ‐Ｖ１バス）に送信する。
【００５９】
上述した例は、車載ネットワークシステム１００に３つのＣＡＮバス（ＨＳ‐Ｖ１バス〜ＨＳ‐Ｖ３バス）が接続される例を説明した（図１参照）。車載ネットワークシステム１００は、複数のＣＡＮバスを備えていればよい。
【００６０】
また、図６に示すＣＡＮコントローラ５３１は３つのメッセージボックス５３１‐１〜５３１‐３の例について説明した。ＣＡＮコントローラ５３１は複数のメッセージボックスを備えていれば実施できる。他のＣＡＮコントローラ５３２〜５３３も同様である。
【００６１】
さらに、ＣＡＮ送信部５３は３つのＣＡＮコントローラ５３１〜５３３について説明したが、複数あれば実施できる。その場合、各ＣＡＮコントローラは、車載ネットワークシステム１００の各ＣＡＮバスに接続される。
【００６２】
さらに、本車載ネットワークシステム１００においてゲートウェイＥＣＵ５０は複数あってもよい。
【符号の説明】
【００６３】
１１〜１３，２１〜２２，３１〜３３  ＥＣＵ、  ５０  ゲートウェイＥＣＵ、  ５１  イーサ受信部、  ５２  ＲＡＭ、  ５３  ＣＡＮ送信部、  ５４  ＣＰＵ、  ５３１〜５３３  ＣＡＮコントローラ、  ５３１‐１〜５３１‐３  メッセージボックス
【図１】
2010271891.tif 000003
【図２】
2010271891.tif 000004
【図３】
2010271891.tif 000005
【図４】
2010271891.tif 000006
【図５】
2010271891.tif 000007
【図６】
2010271891.tif 000008
【図７】
2010271891.tif 000009
【図８】
2010271891.tif 000010