本発明の一態様に係る電子制御ユニット(ECU)は、第1通信プロトコルに従ってバスで車両の走行制御に係る第1種フレームの伝送が行われる第1ネットワークと、第1通信プロトコルとは異なる第2通信プロトコルに従って第2種フレームの伝送が行われる第2ネットワークとを含む車載ネットワークシステムにおいて第1ネットワークの前記バスと第2ネットワークとに接続される電子制御ユニットであって、第1受信バッファと、第2受信バッファと、第1送信バッファと、第2送信バッファと、前記バスから第1種フレームを逐次受信して当該第1種フレーム内のデータを前記第1受信バッファに格納する第1受信部と、第2ネットワークから第2種フレームを逐次受信して当該第2種フレーム内のデータを前記第2受信バッファに格納する第2受信部と、前記第1受信バッファ及び前記第2受信バッファの内容を参照することで車両の走行制御用のデータである第1種データと車両の走行制御以外に用いられるデータである第2種データとを逐次生成して、生成した第1種データを前記第1送信バッファに格納し、生成した第2種データを前記第2送信バッファに格納する生成部と、前記第1送信バッファ中の未送信の第1種データと前記第2送信バッファ中の未送信の第2種データとを送信する送信部とを備え、前記送信部は、第1種データと第2種データとのうちの一方である優先種データを、他方である非優先種データより優先して送信するように優先送信制御を行う電子制御ユニットである。この電子制御ユニットは、第1ネットワークのバスと第2ネットワークとに接続される通信装置であり、データの送信先のネットワークにおいて用いられる通信プロトコルに従ったフレームを送信先のネットワークに応じた信号として送信する。この電子制御ユニットによれば、例えば、第1ネットワークへ送信するデータの流れと、第2ネットワークへ送信するデータの流れとのうち、その一方が優先され得る(つまりその一方のデータの送信が先になされ得る)。このため、この電子制御ユニットによれば、第1ネットワークと第2ネットワークとのそれぞれの特性を踏まえて、優先種データを適切に定めておけば、優先送信制御によってデータの伝送が適切に行われる。
また、前記優先種データは、第1種データであり、前記送信部は第1種データの送信を、所定の例外条件が成立しない場合においては、当該第1種データを含む第1種フレームを第1ネットワークの前記バスへ送出することにより行い、前記例外条件が成立した場合においては、当該第1種データを含む第2種フレームを第2ネットワークへ送出することにより行い、前記送信部は第2種データの送信を、当該第2種データを含む第2種フレームを第2ネットワークへ送出することにより行うこととしても良い。また、前記所定の例外条件は、第1ネットワークの一部に異常があることが検知された場合に成立する条件であることとしても良い。これらにより、第1ネットワークにデータを送信したのでは適切に伝送されない可能性がある場合に、迂回路として第2ネットワークを利用した第1種データ(つまり例外条件が成立しない通常状態等において第1ネットワークに送信されるべきデータ)の送信が行われる。第1送信バッファ中の、第1種データは、この電子制御ユニットにより、迂回路である第2ネットワークで送信され、その後においては例えば第2ネットワーク及び第1ネットワークに接続された中継装置(HUB等)によって第2ネットワークから宛先の第1ネットワークへと再び移送され得る。そして第1送信バッファ中の第1種データと第2送信バッファ中の第2種データとが、第2ネットワークにおいて競合する場合にも、第1種データを優先する優先送信制御によって、適切な順で各データが送信される。即ち、車両の走行制御に係るデータの伝送に適した第1ネットワークへと送信されるべき第1種データが優先されるので、その他のデータ(例えば画像等の大容量データ)の伝送が車両の安全な走行等に悪影響を及ぼすことが防止され得る。なお、この電子制御ユニットの、第1送信バッファのデータの送信を実現する構成(例えば、通信回路、プロセッサ等)と第2送信バッファのデータの送信を実現する構成との一部を共通化した場合においても、車両の走行制御に係るデータの送信が優先されることにより、その他のデータの伝送が車両の安全な走行等に悪影響を及ぼすことが防止され得る。
また、前記送信部は、前記優先送信制御を、前記第1送信バッファと前記第2送信バッファとを繰り返し確認し、確認時において、前記第1送信バッファ中に未送信の第1種データが存在し、かつ、前記第2送信バッファ中に未送信の第2種データが存在する場合には、当該第1種データと当該第2種データとのうち前記優先種データを送信し、確認時において、前記第1送信バッファ中に未送信の第1種データが存在し、かつ、前記第2送信バッファ中に未送信の第2種データが存在しない場合には、当該第1種データを送信し、確認時において、前記第1送信バッファ中に未送信の第1種データが存在せず、かつ、前記第2送信バッファ中に未送信の第2種データが存在する場合には、当該第2種データを送信することにより行うこととしても良い。これにより、第1ネットワークへと送信されるべき第1種データと第2ネットワークを宛先とする送信すべき第2種データとが各送信バッファに存在する場合に、電子制御ユニットは、第1種データと第2種データとのうち予め定められた一方(つまり優先種データ)を先に送信するので、その一方のデータは迅速に送信され得る。
また、前記送信部は、前記優先送信制御を、前記第1送信バッファと前記第2送信バッファとを繰り返し確認し、確認時において、前記第1送信バッファ中に未送信の第1種データが存在し、かつ、前記第2送信バッファ中に未送信の第2種データが存在する場合には、当該第1種データと当該第2種データとのうち前記優先種データを所定数量分送信した後に前記非優先種データを1つ送信し、確認時において、前記第1送信バッファ中に未送信の第1種データが存在し、かつ、前記第2送信バッファ中に未送信の第2種データが存在しない場合には、当該第1種データを送信し、確認時において、前記第1送信バッファ中に未送信の第1種データが存在せず、かつ、前記第2送信バッファ中に未送信の第2種データが存在する場合には、当該第2種データを送信することにより行うこととしても良い。送信バッファ中の優先種データが優先送信されるように、所定数量分は、例えば、優先種データの1つ分より大きい数量(例えば2個以上のデータの個数、1つ分のデータの2倍以上のデータ量等)として定め得る。これにより、例えば、送信バッファ中の優先種データの連続送信によって非優先種データが全く送信されなくなることを、防止し得る。
また、前記送信部は、前記優先送信制御を、前記第1送信バッファと前記第2送信バッファとを繰り返し確認し、確認時に、前記第1送信バッファ中に未送信の第1種データが存在し、かつ、前記第2送信バッファ中に未送信の第2種データが存在する場合において、当該第1種データと当該第2種データとのうち前記非優先種データの未送信時間が所定閾値を超えないときには前記優先種データを送信し、当該未送信時間が前記所定閾値を超えたときには前記非優先種データを送信し、確認時に、前記第1送信バッファ中に未送信の第1種データが存在し、かつ、前記第2送信バッファ中に未送信の第2種データが存在しない場合には、当該第1種データを送信し、確認時に、前記第1送信バッファ中に未送信の第1種データが存在せず、かつ、前記第2送信バッファ中に未送信の第2種データが存在する場合には、当該第2種データを送信することにより行うこととしても良い。送信バッファ中の優先種データが優先送信されるように、未送信時間に係る所定閾値として、例えば、優先種データの1つ分の送信に要する時間より長い時間を定め得る。これにより、例えば、優先種データの連続送信によって非優先種データが全く送信されなくなることを、防止し得る。
また、前記生成部は、第1種データを、少なくとも前記第1受信バッファから読み出した第1種フレームに係るデータに基づく処理の結果として生成し、第2種データを、少なくとも前記第2受信バッファから読み出した第2種フレームに係るデータに基づく処理の結果として生成し、前記生成部は、前記第1受信バッファと前記第2受信バッファとのうちの一方である優先受信バッファの内容を他方である非優先受信バッファの内容より優先して読み出すように優先読出制御を行うこととしても良い。これにより、例えば、電子制御ユニットの、第1受信バッファのデータを読み出して少なくともそのデータに基づいて送信されるべきデータを生成することを実現する構成(例えば、プロセッサ等)と、第2受信バッファのデータを読み出して少なくともそのデータに基づいて送信されるべきデータを生成することを実現する構成との一部を共通化した場合等において、迅速な伝送を実現すべきネットワークに対応して、一方の受信バッファのデータの読み出しを優先させることが可能となる。
また、前記生成部は、前記優先読出制御を、前記第1受信バッファと前記第2受信バッファとを繰り返し確認し、確認時において、前記第1受信バッファ中に未読出のデータが存在し、かつ、前記第2受信バッファ中に未読出のデータが存在する場合には、前記第1受信バッファと前記第2受信バッファとのうち前記優先受信バッファ中の未読出のデータを読み出し、確認時において、前記第1受信バッファ中に未読出のデータが存在し、かつ、前記第2受信バッファ中に未読出のデータが存在しない場合には、前記第1受信バッファ中の未読出のデータを読み出し、確認時において、前記第1受信バッファ中に未読出のデータが存在せず、かつ、前記第2受信バッファ中に未読出のデータが存在する場合には、前記第2受信バッファ中の未読出のデータを読み出すことにより行うこととしても良い。これにより、第1ネットワークから受信された未読出のデータ(つまり未だ読み出していないデータ)と第2ネットワークから受信された未読出のデータとが存在する場合に、予め定められた優先受信バッファに対応する一方のデータを先に読み出すので、その一方のデータに基づいて生成されたデータは迅速に送信され得る。
また、前記生成部は、前記優先読出制御を、前記第1受信バッファと前記第2受信バッファとを繰り返し確認し、確認時において、前記第1受信バッファ中に未読出のデータが存在し、かつ、前記第2受信バッファ中に未読出のデータが存在する場合には、前記第1受信バッファと前記第2受信バッファとのうち前記優先受信バッファ中の未読出のデータを所定数量分読み出した後に前記非優先受信バッファ中の未読出のデータを1つ読み出し、確認時において、前記第1受信バッファ中に未読出のデータが存在し、かつ、前記第2受信バッファ中に未読出のデータが存在しない場合には、前記第1受信バッファ中の未読出のデータを読み出し、確認時において、前記第1受信バッファ中に未読出のデータが存在せず、かつ、前記第2受信バッファ中に未読出のデータが存在する場合には、前記第2受信バッファ中の未読出のデータを読み出すことにより行うこととしても良い。優先受信バッファ中のデータが優先的に読み出されるように、所定数量分は、例えば、優先受信バッファ中のデータの1つ分より大きい数量(例えば2個以上のデータの個数、1つ分のデータの2倍以上のデータ量等)として定め得る。これにより、例えば、優先受信バッファ中のデータを連続して読み出すことによって非優先受信バッファ中のデータが全く読み出されず送信されなくなることを、防止し得る。
また、前記生成部は、前記優先読出制御を、前記第1受信バッファと前記第2受信バッファとを繰り返し確認し、確認時に、前記第1受信バッファ中に未読出のデータが存在し、かつ、前記第2受信バッファ中に未読出のデータが存在する場合において、前記第1受信バッファと前記第2受信バッファとのうち前記非優先受信バッファ中の未読出のデータの当該未読出時間が一定閾値を超えないときには前記優先受信バッファ中の未読出のデータを読み出し、当該未読出時間が前記一定閾値を超えたときには前記非優先受信バッファ中の未読出のデータを読み出し、確認時において、前記第1受信バッファ中に未読出のデータが存在し、かつ、前記第2受信バッファ中に未読出のデータが存在しない場合には、前記第1受信バッファ中の未読出のデータを読み出し、確認時において、前記第1受信バッファ中に未読出のデータが存在せず、かつ、前記第2受信バッファ中に未読出のデータが存在する場合には、前記第2受信バッファ中の未読出のデータを読み出すことにより行うこととしても良い。優先受信バッファ中のデータが優先的に読み出されるように、未読出時間(つまり未だ読み出されていない時間)に係る一定閾値として、例えば、優先受信バッファ中のデータの1つ分の読み出しに要する時間より長い時間を定め得る。これにより、例えば、優先受信バッファ中のデータを連続して読み出すことによって非優先受信バッファ中のデータが全く読み出されなくなることを、防止し得る。
また、前記優先受信バッファは、前記車両の走行中においては第1受信バッファであり、前記車両の停止中においては第2受信バッファであることとしても良い。これにより、例えば、車両の走行中においては、受信した車両の走行制御に係るデータに基づいて生成したデータの送信を迅速に行うことができ、車両の停止中においては、車両の走行制御に係るデータ以外の受信したデータ(例えば画像、音声等といったマルチメディアデータ等)に基づいて生成したデータの送信を迅速に行うことが可能となり得る。
また、第1通信プロトコルは、CAN(Controller Area Network)プロトコルであり、第2通信プロトコルは、Ethernet(登録商標)プロトコルであり、第1種フレームは、データフレームであり、第2種フレームは、Ethernet(登録商標)フレームであることとしても良い。これにより、車両の走行制御に係るデータの伝送に適したCANのネットワークと、画像等の大容量データの伝送に適したEthernet(登録商標)のネットワークとのいずれかから受信したデータに基づいて生成したデータを、必要な優先度に応じて適切に送信することが可能となり得る。
また、第2種通信プロトコルによる第2種フレームの最大データ量は、第1種通信プロトコルによる第1種フレームの最大データ量より大きいこととしても良い。これにより、例えば、車両の走行制御に係るデータの伝送に適した制御系ネットワークとしての第1ネットワークと、伝送単位の最大データ量が大きいこと等により画像等の大容量データの伝送に適した情報系ネットワークとしての第2ネットワークとのいずれかから受信したデータに基づいて生成したデータを、各ネットワークの特性に応じて定められた優先度(優先種データを特定する情報等)に従って、適切に送信することが可能となり得る。
また、前記優先種データは、前記車両の走行中においては第1種データであり、前記車両の停止中においては第2種データであることとしても良い。これにより、例えば、車両の走行中においては、車両の走行制御に係る伝送に適した第1ネットワークへと送信されるべき第1種データの伝送を迅速に行うことができ、車両の停止中においては、車両の走行制御に係るデータ以外のデータ(例えば画像、音声等といったマルチメディアデータ等)の伝送に適した第2ネットワークへと送信されるべき第2種データの伝送を迅速に行うことが可能となり得る。
また、本発明の一態様に係る通信方法は、第1通信プロトコルに従ってバスで車両の走行制御に係る第1種フレームの伝送が行われる第1ネットワークと、第1通信プロトコルとは異なる第2通信プロトコルに従って第2種フレームの伝送が行われる第2ネットワークとを含む車載ネットワークシステムにおいて第1ネットワークの前記バスと第2ネットワークとに接続され、第1受信バッファと第2受信バッファと第1送信バッファと第2送信バッファとを備える電子制御ユニットで用いられる通信方法であって、前記バスから第1種フレームを逐次受信して当該第1種フレーム内のデータを第1受信バッファに格納する第1受信ステップと、第2ネットワークから第2種フレームを逐次受信して当該第2種フレーム内のデータを第2受信バッファに格納する第2受信ステップと、前記第1受信バッファ及び前記第2受信バッファの内容を参照することで車両の走行制御用のデータである第1種データと車両の走行制御以外に用いられるデータである第2種データとを逐次生成して、生成した第1種データを第1送信バッファに格納し、生成した第2種データを第2送信バッファに格納する生成ステップと、前記第1送信バッファ中の未送信の第1種データと前記第2送信バッファ中の未送信の第2種データとを送信する送信ステップとを含み、前記送信ステップでは、第1種データと第2種データとのうちの一方である優先種データを、他方である非優先種データより優先して送信するように優先送信制御を行う通信方法である。これにより、第1ネットワークと第2ネットワークとのそれぞれの特性を踏まえて、優先種データを適切に定めておけば、優先送信制御によってデータの伝送が適切に行われる。
また、本発明の一態様に係る車載ネットワークシステムは、第1通信プロトコルに従ってバスで車両の走行制御に係る第1種フレームの伝送が行われる第1ネットワークと、第1通信プロトコルとは異なる第2通信プロトコルに従って第2種フレームの伝送が行われる第2ネットワークと、前記バスに接続された電子制御ユニットと、第2ネットワークに接続された電子制御ユニットと、前記バス及び第2ネットワークに接続された所定電子制御ユニットとを備える車載ネットワークシステムであって、前記所定電子制御ユニットは、第1受信バッファと、第2受信バッファと、第1送信バッファと、第2送信バッファと、前記バスから第1種フレームを逐次受信して当該第1種フレーム内のデータを前記第1受信バッファに格納する第1受信部と、第2ネットワークから第2種フレームを逐次受信して当該第2種フレーム内のデータを前記第2受信バッファに格納する第2受信部と、前記第1受信バッファ及び前記第2受信バッファの内容を参照することで車両の走行制御用のデータである第1種データと車両の走行制御以外に用いられるデータである第2種データとを逐次生成して、生成した第1種データを前記第1送信バッファに格納し、生成した第2種データを前記第2送信バッファに格納する生成部と、前記第1送信バッファ中の未送信の第1種データと前記第2送信バッファ中の未送信の第2種データとを送信する送信部とを備え、前記送信部は、第1種データと第2種データとのうちの一方である優先種データを、他方である非優先種データより優先して送信するように優先送信制御を行う車載ネットワークシステムである。これにより、互いに異なるネットワークの1つに接続された各装置(電子制御ユニット等)に対して、所定電子制御ユニットが優先送信制御によって適切にデータを送信し得る。
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
以下、実施の形態に係る電子制御ユニット(ECU)及びネットワークハブ(HUB)を含む車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
(実施の形態1)
以下、本発明の実施の形態として、車載ネットワークでデータの授受を行う複数の電子制御ユニット(ECU)とネットワークハブ(HUB)とを含む車載ネットワークシステム10について、図面を用いて説明する。
[1.1 車載ネットワークシステム10の全体構成]
図1は、車載ネットワークシステム10における2つのネットワークを含む車載ネットワーク11を示す図である。
車両9は、制御装置、センサ、アクチュエータ、ユーザインタフェース装置、電子制御ユニット(ECU)等の各種機器を搭載する。車載ネットワークシステム10は、車両9に搭載されたセンサ、ECU等の各種装置が連携して情報の授受を行うための車載ネットワーク11を有するネットワーク通信システムである。車載ネットワーク11は、CAN(Controller Area Network)プロトコルに従って、バス(CANバス)で車両9の走行制御に係るデータフレーム(CANフレーム)等の各種フレームの伝送が行われる制御系ネットワーク1(第1ネットワーク)と、Ethernet(登録商標)プロトコルに従ってEthernet(登録商標)フレーム(Eフレーム)の伝送が行われる情報系ネットワーク2(第2ネットワーク)とを含んで構成される。車載ネットワーク11は、車両9の外部のインターネット等といった外部ネットワーク91と無線接続され得る。
Ethernet(登録商標)プロトコルにより規定されるEフレームの最大データ量(1500バイト以上)は、CANプロトコルにより規定されるCANフレームの最大データ量(標準フォーマットで8バイト)より、かなり大きい。制御系ネットワーク1のバスには、車両9の走行制御に関連する電子制御ユニット(C−ECU)等が接続される。制御系ネットワーク1では主として、車両9の走行制御の基礎となる車両9の状態を示す車両状態データ、車両9に搭載されたアクチュエータの動作指示等を示す走行制御用の車両制御データ等の比較的小さなデータが伝送される。また、情報系ネットワーク2には、車載カメラ(つまりイメージセンサ)、LIDAR等といった、車両9の周囲の様子等を観測する各種センサが接続される。情報系ネットワーク2には、センサからの情報の処理、車両9の乗員(ユーザ)への情報提供等を行うための電子制御ユニット(E−ECU)も接続され得る。情報系ネットワーク2では、主として、車載カメラで撮像された画像、LIDARで生成された3次元データ等といったセンサ情報(例えばセンサにより生成された比較的大きなデータ等)が伝送される。
図2は、車載ネットワークシステム10の全体構成を示す。図2に示すように車載ネットワークシステム10は、制御系ネットワーク1と、情報系ネットワーク2と、これら両ネットワークと接続されたネットワークハブ(HUB)200と、両ネットワークと接続された電子制御ユニット100(「X−ECU」と称する)とを備える。
制御系ネットワーク1における伝送路であるバス30aには、CANプロトコルに従った通信インタフェースを備える電子制御ユニット(ECU)であるC−ECU500a〜500cが接続されている。C−ECU500a〜500cのそれぞれは、例えば、エンジンの制御を担うエンジン制御ECU、ステアリングの制御を担うステアリング制御ECU、ブレーキの制御を担うブレーキ制御ECU等である。C−ECU500a〜500cは、バス30aを介して互いに通信し、CANプロトコルに従ってフレームの授受を行う。C−ECU500a〜500cは、それぞれエンジン、ステアリング、ブレーキ等の状態を取得し、例えば周期的に、状態を表すデータフレーム(CANフレーム)を、制御系ネットワーク1を構成するバス30aに送信している。また、C−ECU500a〜500cは、制御系ネットワーク1を構成するバス30aからCANフレームを受信して、CANフレームを解釈し、受信すべきCAN−IDを有するCANフレームか否かの判別を行い、必要に応じてCANフレーム内のデータ(データフィールドの内容)に従ってそのC−ECUに接続されているエンジン、ステアリング、ブレーキ等に係る制御を行い得るし、必要に応じてCANフレームを生成して送信し得る。
情報系ネットワーク2では、Ethernet(登録商標)に対応したネットワークハブであるE−HUB400と、伝送路であるEthernet(登録商標)ケーブル20a〜20dのそれぞれによって、Ethernet(登録商標)プロトコルに従った通信インタフェースを備える電子制御ユニット(ECU)であるE−ECU300aと、カメラ300bと、LIDAR300cと、全地球測位システム(GPS:Global Positioning System)受信機(「GPS」と称する)300dとが接続されている。E−ECU300aは、Ethernet(登録商標)プロトコルに従ってEフレームの送信及び受信を行う。E−ECU300aは、例えば、ディスプレイを備え、ユーザへの情報提供を行う機能を有するECUであっても良い。E−ECU300a、カメラ300b、LIDAR300c、GPS300dは、それぞれ固有のMAC(Media Access Control)アドレスを有する。E−HUB400は、例えばEthernet(登録商標)スイッチ(スイッチングハブ)である。E−HUB400は、例えばMACアドレステーブルを保持し、Eフレームを受信するとケーブルの接続端子(ポート)毎に対応するMACアドレスを学習する。また、E−HUB400は、MACアドレステーブルに従って、受信したEフレームのヘッダの宛先MACアドレスに基づいて転送先となるポートを選定し、そのポートに接続されたケーブルへとEフレームを送出することで、Eフレームの転送を行う。
X−ECU100は、CANプロトコルに従った通信インタフェース及びEthernet(登録商標)プロトコルに従った通信インタフェースを備えるECUであり、ある種のADASの機能(例えば駐車支援機能、車線維持支援機能、衝突回避支援機能等)を担う。X−ECU100は、バス30aと接続され、E−HUB400とEthernet(登録商標)ケーブル20eで接続される。X−ECU100は、固有のMACアドレスを有する。
HUB200は、通信プロトコル変換機能を有し、通信データの中継機能を有する通信装置である。HUB200は、バス30aと接続され、E−HUB400とEthernet(登録商標)ケーブル20fで接続される。HUB200は、例えば、固有のMACアドレスを有する。HUB200は、外部通信装置92とも接続されている。外部通信装置92は、例えば、外部ネットワーク91を介して車両9外のサーバ装置(例えば車両に対して情報を提供する機能等を有するコンピュータ)等と通信する通信機能を有する装置である。
なお、車載ネットワークシステム10には、X−ECU100、E−ECU300a、C−ECU500a〜500c以外にも、いくつものECUが含まれ得る。例えば、バス30aには、C−ECU500a〜500c以外にも、図示しないC−ECUが接続され得る。また、例えば、E−HUB400には、直接又は他のE−HUBを介して図示しないE−ECUが接続され得る。
ECU(E−ECU、C−ECU及びX−ECU)は、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行されるプログラム(ソフトウェアとしてのコンピュータプログラム)を記憶することができる。メモリとして、不揮発性メモリを含んでも良い。例えばプロセッサが、プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
[1.2 車載ネットワーク11で送受信されるフレームの構成]
制御系ネットワーク1では、C−ECU500a〜500c等がCANプロトコルに従ってフレームの授受を行う。CANプロトコルにおけるフレームには、データフレーム、リモートフレーム、オーバーロードフレーム及びエラーフレームがあるが、ここでは、主にデータフレームに注目して説明する。
図3は、制御系ネットワーク1で送受信されるデータフレーム(CANフレーム)のフォーマットを示す。図3の(a)は標準フォーマットである。標準フォーマットにおいては、データフレームは、SOF(Start Of Frame)、ID(CAN−ID)、RTR(Remote Transmission Request)、IDE(Identifier Extension)、予約ビット「r」、サイズ、データ、CRC(Cyclic Redundancy Check)シーケンス、CRCデリミタ「DEL」、ACK(Acknowledgement)スロット、ACKデリミタ「DEL」、及び、EOF(End Of Frame)で構成される。ここで、IDフィールドの内容としてのID(CAN−ID)は、データの種類を示す識別子であり、メッセージIDとも称される。なお、CANでは、複数のノードが同時に送信を開始した場合、このCAN−IDが小さい値を持つフレームを優先する通信調停がなされる。サイズは、後続するデータフィールド(データ)の長さを示すDLC(Data Length Code)である。データ(データフィールドの内容)の仕様については、CANプロトコルで規定されておらず、車載ネットワークシステム10において定められる。従って、車両の車種、製造者(製造メーカ)等に依存した仕様となり得る。図3の(b)は拡張フォーマットである。本実施の形態では制御系ネットワーク1で標準フォーマットが用いられることとして説明するが、制御系ネットワーク1において拡張フォーマットが用いられる場合には、11ビットのIDフィールドのベースID(CAN−IDの一部)と、18ビットの拡張ID(CAN−IDの残部)とを合わせた29ビットをCAN−IDと扱えば良い。
図4は、情報系ネットワーク2で送受信されるフレーム(Eフレーム)のフォーマットを示す。同図に示すように、Eフレームは、主たる伝送内容であるデータを格納するペイロードの前にヘッダ(Ethernet(登録商標)ヘッダ)を付加して構成される。ヘッダには、宛先MACアドレス、送信元MACアドレス、及び、タイプが含まれる。
[1.3 X−ECU100の構成]
図5は、X−ECU100の構成図である。X−ECU100は、受信部110a(第1受信部)と、受信部110b(第2受信部)と、受信バッファ120a(第1受信バッファ)と、受信バッファ120b(第2受信バッファ)と、生成部130と、送信バッファ140a(第1送信バッファ)と、送信バッファ140b(第2送信バッファ)と、送信部150と、優先度設定部160とを含んで構成される。これらの各構成要素は、X−ECU100における通信回路、メモリに格納されたプログラムを実行するプロセッサ或いはデジタル回路等により実現される。
受信バッファ120a、受信バッファ120b、送信バッファ140a、送信バッファ140bのそれぞれは、メモリ等の記憶媒体で構成され、例えばFIFO(First-In First-Out)バッファである。受信バッファ120a(第1受信バッファ)を制御系データ受信バッファとも称し、送信バッファ140a(第1送信バッファ)を制御系データ送信バッファとも称する。また、受信バッファ120b(第2受信バッファ)を情報系データ受信バッファとも称し、送信バッファ140b(第2送信バッファ)を情報系データ送信バッファとも称する。
受信部110aは、制御系ネットワーク1のバス30aからCANフレームを逐次受信して、CANフレームを受信する度に、受信IDリストに基づいて受信したCANフレームのCAN−IDが受信すべきIDであるかを確認し、受信すべきIDであればそのCANフレームの内容を受信バッファ120aに格納する。受信部110aが受信バッファ120aに格納するCANフレームの内容は、例えば、データ(データフィールドの内容)に、CAN−ID、サイズ(DLC)等を付加した情報である。図6は、X−ECU100が用いる受信IDリストの一例を示す。X−ECU100の受信IDリストには、例えば、車両状態データ等を含むCANフレームのCAN−IDが記載されている。受信部110aは、受信したCANフレームのCAN−IDが、受信IDリストで示されていないIDであればそのCANフレームの受信を中止し、そのCANフレームの内容を受信バッファ120aに格納しない。
受信部110bは、情報系ネットワーク2のケーブル20eから、例えばX−ECU100のMACアドレス等を宛先MACアドレスとして含むEフレームを逐次受信して、Eフレームを受信する度に、そのEフレームの内容を受信バッファ120bに格納する。受信部110bが受信バッファ120bに格納するEフレームの内容は、例えば、データ(ペイロードの内容)である。例えば、カメラ300b、LIDAR300c、GPS300d等の各種センサから画像その他のデータをペイロードに含むEフレームが、X−ECU100を宛先として送信され、受信部110bはそのEフレームを受信する。
生成部130は、受信バッファ120a及び受信バッファ120bの内容を参照することで車両9の走行制御用のデータである制御系データ(第1種データ)と車両9の走行制御以外に用いられるデータである情報系データ(第2種データ)とを逐次生成して、生成した制御系データを送信バッファ140a(制御系データ送信バッファ)に格納し、生成した情報系データを送信バッファ140b(情報系データ送信バッファ)に格納する。生成部130は、検知部131と制御判断部132とデータ生成部133とを含んで構成される。
検知部131は、制御系データ受信バッファ或いは情報系データ受信バッファから読み出したデータに基づいて、車両9の周辺環境の様子、車両9の状態等に関する予め定められた各種項目(例えば、車両9の進路上の障害物との距離、障害物との相対速度、路面に表示された白、黄色等の線と車両9の進行方向とのなす角度等)を検知する。検知部131は、制御系データ受信バッファ及び情報系データ受信バッファのそれぞれからデータを読み出す場合において、優先度設定部160に設定された優先情報(例えば、優先して読み出しが行われるべき優先受信バッファの特定用の情報等)に基づいて、制御系データ受信バッファと情報系データ受信バッファとのうちの一方である優先受信バッファの内容を他方である非優先受信バッファの内容より優先して読み出すように優先読出制御を行う。優先度設定部160は、メモリ等の記憶媒体の一領域に優先情報を保持する。なお、本実施の形態での一例としては、優先度設定部160において、優先情報が、制御系データ受信バッファが情報系データ受信バッファより優先してデータが読み出されるべき受信バッファであることを示すように設定されている。各受信バッファ120a、120bにおいて、データが読み出された場合にはそのデータは例えば受信バッファから消去される。
制御判断部132は、検知部131の検知結果に基づいて、車両9の走行制御が必要か否か、或いは、車両9に搭載された各種センサの制御が必要か否かを判断し、制御が必要な場合に予め定められた所定アルゴリズムに基づいて制御内容を定めてデータ生成部133に通知する。例えば、車両9の進路上の障害物との距離、車速等が一定条件を満たすと車両9を緊急停止させるための制御内容が定められ得る。また、例えば、センサから得られたセンサ情報が一定条件を満たすとセンサを調整するための制御内容が定められ得る。
データ生成部133は、制御判断部132が車両9の走行制御が必要と判断した場合に通知された制御内容に応じて、車両制御データ等の制御系データを生成して、その制御系データを制御系データ送信バッファに格納する。なお、データ生成部133は、その通知された制御内容に応じてCAN−IDを定めて、CAN−IDをその車両制御データ等に付して制御系データ送信バッファに格納する。また、データ生成部133は、制御判断部132がセンサの制御が必要と判断した場合に通知された制御内容に応じて、センサ制御データ等の情報系データを生成して、その情報系データを情報系データ送信バッファに格納する。なお、データ生成部133は、その通知された制御内容に応じてセンサ制御データ等の宛先となるMACアドレスを定めて、そのMACアドレスをセンサ制御データ等に付して情報系データ送信バッファに格納する。データ生成部133では、制御系データを、少なくとも制御系データ受信バッファから読み出したCANフレームに係るデータ(例えば車両状態データ等)に基づく処理によって生成し、情報系データを、少なくとも情報系データ受信バッファから読み出したEフレームに係るデータ(例えば画像等のセンサ情報)に基づく処理によって生成する。なお、データ生成部133では、制御系データ或いは情報系データを、例えば車両状態データ及びセンサ情報の両方に基づく処理によって生成しても良い。
送信部150は、制御系ネットワーク1及び情報系ネットワーク2それぞれに対応する通信プロトコルに応じてフレームを構築するフレーム構築部151を含んで構成される。送信部150は、送信バッファ140a(制御系データ送信バッファ)中の未送信の制御系データと、送信バッファ140b(情報系データ送信バッファ)中の未送信の情報系データとを送信する。送信部150は、フレーム構築部151により、データが送信されるべきネットワークに対応したフレームにそのデータを含ませてその送信されるべきネットワークに送信する。情報系データが送信されるべきネットワークは、情報系ネットワーク2であり、制御系データが送信されるべきネットワークは、通常は制御系ネットワーク1であるが、制御系ネットワーク1に送信できないような所定の例外条件が成立した場合(例えば制御系ネットワーク1の少なくとも一部に異常があることが検知された場合等)には情報系ネットワーク2である。
即ち、送信部150は、情報系データの送信を、その情報系データを含むEフレームの情報系ネットワーク2への送出により行う。また、送信部150は、制御系データの送信を、所定の例外条件が成立しない場合においては、その制御系データを含むCANフレームの、制御系ネットワーク1のバス30aへの送出により行い、その例外条件が成立した場合においては、その制御系データを含むEフレームの、情報系ネットワーク2への送出により行う。送信部150によりバス30aに送出される、制御系データを含むCANフレームは、例えば、CANフレームのデータフィールドに制御系データを含ませて、送信バッファにおいて制御系データに付されていたCAN−IDを、CANフレームのIDフィールドに含ませたものである。送信部150によりケーブル20eに送出される、情報系データを含むEフレームは、例えば、Eフレームのペイロードに、制御系ネットワーク1に伝送されるべき制御系データを含むか否かを表すための識別フラグ情報であって制御系データを含まないことを示すようにした識別フラグ情報と、情報系データとを含ませ、送信バッファにおいて情報系データに付されていたMACアドレスを宛先MACアドレスとして設定したものである。送信部150によりケーブル20eに送出される、制御系データを含むEフレームは、例えば、Eフレームのペイロードに、制御系ネットワーク1に伝送されるべき制御系データを含むか否かを表すための識別フラグ情報であって制御系データを含むことを示すようにした識別フラグ情報と、制御系データとを含ませ、宛先MACアドレスとして予め定められた特定のMACアドレス(例えばブロードキャストアドレス等)を設定したものである。なお、送信部150が送信するEフレームにおいて、識別フラグ情報をペイロードではなくヘッダのタイプ等に設けても良いし、例えば、ヘッダの宛先MACアドレスにおけるグローバルMACアドレスか否かを識別するビットを識別フラグ情報として用いて、グローバルMACアドレスでない値にすることで制御系ネットワーク1に伝送されるべき制御系データを含むことを示すようにしても良い。
送信部150は、制御系データ送信バッファ及び情報系データ送信バッファのそれぞれにおけるデータを送信する場合において、優先度設定部160に設定された優先情報(例えば、制御系データと情報系データとのうち優先して送信が行われるべき優先種データの特定用の情報等)に基づいて、制御系データ(第1種データ)と情報系データ(第2種データ)とのうちの一方である優先種データを、他方である非優先種データより優先して送信するように優先送信制御を行う。なお、本実施の形態での一例としては、優先度設定部160において、優先情報が、制御系データが情報系データより優先して送信されるべき優先種データであることを示すように設定されている。各送信バッファ140a、140bにおけるデータが送信部150により送信された場合にはそのデータは例えば送信バッファから消去される。
優先度設定部160は、制御系データと情報系データとのいずれを優先するか(いずれの優先度が高いか)を示す優先情報を設定して保持する。なお、優先情報は、制御系データと情報系データとのいずれも優先度が同じであることを示すように設定されても良い。優先度設定部160は、優先情報を予め定められた内容となるように設定しても良いし、優先情報を過去の車両9の状態、車載装置の処理結果等に基づく内容となるように設定しても良い。
[1.4 HUB200の構成]
HUB200は、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含んで構成され、一の伝送路(バス或いはケーブル)から受信したフレームを他の伝送路に転送(中継)する機能を有する。
図7は、HUB200の構成図である。HUB200は、受信部210a(第1受信部)と、受信部210b(第2受信部)と、受信バッファ220a(第1受信バッファ)と、受信バッファ220b(第2受信バッファ)と、選定部230と、転送ルール保持部231と、送信バッファ240a(第1送信バッファ)と、送信バッファ240b(第2送信バッファ)と、送信部250と、優先度設定部260とを含んで構成される。これらの各構成要素は、HUB200における通信回路、メモリに格納されたプログラムを実行するプロセッサ或いはデジタル回路等により実現される。
受信バッファ220a、受信バッファ220b、送信バッファ240a、送信バッファ240bのそれぞれは、例えば、メモリ等の記憶媒体で構成されたFIFOバッファである。受信バッファ220a(第1受信バッファ)を制御系データ受信バッファとも称し、送信バッファ240a(第1送信バッファ)を制御系データ送信バッファとも称する。また、受信バッファ220b(第2受信バッファ)を情報系データ受信バッファとも称し、送信バッファ240b(第2送信バッファ)を情報系データ送信バッファとも称する。
受信部210aは、制御系ネットワーク1のバス30aからCANフレームを逐次受信して、CANフレームを受信する度に、受信IDリスト(図6参照)に基づいて受信したCANフレームのCAN−IDが受信すべきIDであるかを確認し、受信すべきIDであればそのCANフレームの内容を受信バッファ220aに格納する。受信部210aが受信バッファ220aに格納するCANフレームの内容は、例えば、データ(データフィールドの内容)に、CAN−ID、サイズ(DLC)等を付加した情報である。HUB200が用いる受信IDリストは、例えば、情報系ネットワーク2への転送の対象となり得るデータ(例えば車両状態データ等)を含むCANフレームに係るCAN−IDを記載したものであり、X−ECU100が用いる受信IDリストとは内容が異なっても良い。受信部210aは、受信したCANフレームのCAN−IDが、受信IDリストで示されていないIDであればそのCANフレームの受信を中止し、そのCANフレームの内容を受信バッファ220aに格納しない。
受信部210bは、情報系ネットワーク2のケーブル20fから、Eフレームを逐次受信して、Eフレームを受信する度に、そのEフレームの内容を受信バッファ220bに格納する。受信部210bが受信バッファ220bに格納するEフレームの内容は、例えば、データ(ペイロードの内容)に、送信元MACアドレスを付したものである。例えば、カメラ300b、LIDAR300c、GPS300d等の各種センサから画像その他のデータをペイロードに含むEフレームが、例えば、HUB200を宛先として送信され、或いはブロードキャストされ、受信部210bはそのEフレームを受信する。
転送ルール保持部231は、メモリ等の記憶媒体に、予め定められた転送ルール情報を保持する。図8は、転送ルール情報の一例を示す。転送ルール情報は、同図に示すように、転送元の情報と、転送先(宛先)の情報とを対応付けている。同図の例では、HUB200が、バス30aを指すCANバス1から、CAN−IDが0x100或いは0x101のCANフレームを受信した場合にそのCANフレームの内容であるデータを、情報系ネットワーク2におけるMACアドレス「00:11:22:33:44:55」で特定される装置を宛先として転送すべきことを示している。また、HUB200が、CANバス1から、CAN−IDが0x102のCANフレームを受信した場合に、そのCANフレームの内容であるデータを、情報系ネットワーク2におけるMACアドレス「00:12:23:34:45:56」で特定される装置を宛先として転送すべきことを示している。また、HUB200が、MACアドレス「00:11:22:33:44:55」を送信元MACアドレスとするEフレームを受信した場合に、そのEフレームの内容であるデータを、CAN−ID「0x300」を付して制御系ネットワーク1のCANバス1を宛先として転送すべきことを示している。
選定部230は、転送データ生成部233を含んで構成される。選定部230は、転送ルール保持部231が保持する転送ルール情報に基づいて、受信バッファ220a及び受信バッファ220bのいずれかの内容であるデータの宛先が制御系ネットワーク1か情報系ネットワーク2かを選定する。例えば受信されたEフレームに基づいて受信バッファに格納されたデータに、そのEフレームのヘッダの送信元MACアドレス、或いは、宛先MACアドレス等を付しておくと、選定部230はその送信元MACアドレス或いは宛先MACアドレス等と、転送ルール情報とによって、データの宛先を選定し得る。また、例えば受信されたCANフレームに基づいて受信バッファに格納されたデータに、そのCANフレームのCAN−IDを付しておくと、選定部230はそのCAN−IDと、転送ルール情報とによって、データの宛先を選定し得る。
選定部230は、受信バッファ220a及び受信バッファ220bのいずれかの内容であるデータの宛先として、制御系ネットワーク1を選定した場合にはそのデータに基づいて転送データ生成部233により転送(送信)されるべきデータを生成して送信バッファ240a(制御系データ送信バッファ)に格納し、情報系ネットワーク2を選定した場合にはそのデータに基づいて転送データ生成部233により転送(送信)されるべきデータを生成して送信バッファ240b(情報系データ送信バッファ)に格納する。転送データ生成部233は、例えば受信バッファの内容であるデータと同一のデータを、送信されるべきデータとして生成し得る。また、転送データ生成部233は、情報系データ受信バッファの内容であるデータの宛先として制御系ネットワーク1が選定された場合に、そのデータが、CANフレームのデータフィールドに格納できない大きなサイズであるときには、そのデータを複数のデータ(CANフレームのデータフィールドに格納可能なサイズのデータ)に分割して、その分割結果の複数のデータを送信されるべきデータとして生成して制御系データ送信バッファに格納し得る。転送データ生成部233は、送信バッファへのデータの格納に際して、そのデータの宛先等を示す情報(転送ルール情報における転送先の情報等)をそのデータに付加し得る。なお、HUB200によるフレームの転送(中継)は、フレームに係るデータ(情報)の受信及び送信であり、転送先の伝送路で用いられる通信プロトコルに対応した、通信方式、フレームフォーマット等の変換を伴い得る。また、HUB200は、伝送路間でのフレームの転送として、1つ又は複数の伝送路から受信した1つ又は複数のフレームに対応して、1つ又は複数のフレームの、1つ又は複数の伝送路への送信を行い得る。
選定部230は、受信バッファ220a及び受信バッファ220bのいずれかからデータを読み出す毎にそのデータの宛先の選定を行い、そのデータの読み出しにおいては、優先度設定部260に設定された優先情報(例えば、優先して読み出しが行われるべき優先受信バッファの特定用の情報等)に基づいて、制御系データ受信バッファと情報系データ受信バッファとのうちの一方である優先受信バッファの内容を他方である非優先受信バッファの内容より優先して読み出すように優先読出制御を行う。優先度設定部260は、メモリ等の記憶媒体の一領域に優先情報を保持する。なお、本実施の形態での一例としては、優先度設定部260において、優先情報が、制御系データ受信バッファが情報系データ受信バッファより優先してデータが読み出されるべき受信バッファであることを示すように設定されている。各受信バッファ220a、220bにおいて、データが読み出された場合にはそのデータは例えば受信バッファから消去される。
送信部250は、制御系ネットワーク1及び情報系ネットワーク2それぞれに対応する通信プロトコルに応じてフレームを構築するフレーム構築部251を含んで構成される。送信部250は、送信バッファ240a(制御系データ送信バッファ)中の未送信のデータと、送信バッファ240b(情報系データ送信バッファ)中の未送信のデータとを送信する。送信部250は、フレーム構築部251により、データが送信されるべきネットワークに対応したフレームにそのデータを含ませてその送信されるべきネットワークに送信する。情報系データ送信バッファ中のデータが送信されるべきネットワークは、情報系ネットワーク2であり、制御系データ送信バッファ中のデータが送信されるべきネットワークは、通常は制御系ネットワーク1であるが、制御系ネットワーク1に送信できないような所定の例外条件が成立した場合(例えば制御系ネットワーク1の少なくとも一部に異常があることが検知された場合等)には情報系ネットワーク2である。即ち、送信部250は、情報系データ送信バッファ中のデータの送信を、そのデータを含むEフレームの情報系ネットワーク2への送出により行う。また、送信部250は、制御系データ送信バッファ中のデータの送信を、所定の例外条件が成立しない場合においては、そのデータを含むCANフレームの、制御系ネットワーク1のバス30aへの送出により行い、その例外条件が成立した場合においては、そのデータを含むEフレームの、情報系ネットワーク2への送出により行う。送信部250によりバス30aに送出される、データを含むCANフレームは、例えば、CANフレームのデータフィールドにそのデータを含ませて、送信バッファにおいてそのデータに付されていた宛先等の情報としてのCAN−IDを、CANフレームのIDフィールドに含ませたものである。送信部250によりケーブル20fに送出される、データを含むEフレームは、例えば、Eフレームのペイロードに、そのペイロードが制御系ネットワーク1に伝送されるべきデータを含むか否かを表すための識別フラグ情報であって制御系ネットワーク1に伝送されるべきデータを含まないことを示すようにした識別フラグ情報と、情報系データ送信バッファのデータとを含ませ、その送信バッファにおいてそのデータに付されていたMACアドレスを宛先MACアドレスとして設定したものである。送信部250によりケーブル20fに送出される、データを含むEフレームは、例えば、Eフレームのペイロードに、制御系ネットワーク1に伝送されるべきデータを含むか否かを表すための識別フラグ情報であって制御系ネットワーク1に伝送されるべきデータを含むことを示すようにした識別フラグ情報と、制御系データ送信バッファのデータとを含ませ、宛先MACアドレスとして予め定められた特定のMACアドレス(例えばブロードキャストアドレス等)を設定したものである。なお、送信部250が送信するEフレームにおいて、識別フラグ情報をペイロードではなくヘッダのタイプ等に設けても良いし、例えば、ヘッダの宛先MACアドレスにおけるグローバルMACアドレスか否かを識別するビットを識別フラグ情報として用いて、グローバルMACアドレスでない値にすることで制御系ネットワーク1に伝送されるべきデータを含むことを示すようにしても良い。
送信部250は、制御系データ送信バッファ及び情報系データ送信バッファのそれぞれにおけるデータを送信する場合において、優先度設定部260に設定された優先情報(例えば、制御系データ送信バッファと情報系データ送信バッファとのうち優先してデータの送信が行われるべき優先送信バッファの特定用の情報等)に基づいて、制御系データ送信バッファと情報系データ送信バッファとのうちの一方である優先送信バッファ中の未送信のデータを、他方である非優先送信バッファ中の未送信のデータより優先して送信するように優先送信制御を行う。優先情報は、例えば、優先送信バッファが制御系データ送信バッファである場合には、優先受信バッファは制御系データ受信バッファであり、優先送信バッファが情報系データ送信バッファである場合には、優先受信バッファは情報系データ受信バッファであるように、優先送信バッファと優先受信バッファとを対応させた情報である。なお、本実施の形態での一例としては、優先度設定部260において、優先情報が、制御系データ送信バッファが情報系データ送信バッファより優先してデータが送信されるべき送信バッファであることを示すように設定されている。各送信バッファ240a、240bにおけるデータが送信部250により送信された場合にはそのデータは例えば送信バッファから消去される。
優先度設定部260は、制御系データ受信バッファ(或いは制御系データ送信バッファ)と、情報系データ受信バッファ(或いは情報系データ送信バッファ)とのいずれを優先するか(いずれの優先度が高いか)を示す優先情報を設定して保持する。なお、優先情報は、各バッファの優先度が同じであることを示すように設定されても良い。優先度設定部260は、優先情報を予め定められた内容となるように設定しても良いし、優先情報を過去の車両9の状態、車載装置の処理結果等に基づく内容となるように設定しても良い。
[1.5 X−ECU100の動作]
図9は、X−ECU100によるデータ処理の一例を示すフローチャートである。X−ECU100は、受信部110a及び受信部110bのそれぞれにより、伝送路から逐次受信されたフレームの内容を、受信バッファ120a(制御系データ受信バッファ)と、受信バッファ120b(情報系データ受信バッファ)に逐次格納する。この受信部110a、110bによる受信及び格納と並行して、生成部130及び送信部150では、図9に示すデータ処理を行う。X−ECU100は、このデータ処理として、主として生成部130による受信データ読出処理(ステップS1)及び送信データ生成処理(ステップS2)、並びに、主として送信部150によるデータ送信処理(ステップS3)を行う。このデータ処理は、繰り返し行われる。
まず、受信データ読出処理(ステップS1)について、図10に即して説明する。ここでは、各受信部110a、110bにより各受信バッファ120a、120bに格納されたデータは、生成部130に読み出されると、その受信バッファから消去されるものとする。
X−ECU100の生成部130は、制御系データ受信バッファにデータが格納されているかを確認し(ステップS101)、情報系データ受信バッファにデータが格納されているかを確認する(ステップS102)。生成部130は、いずれの受信バッファにもデータが格納されていない間は、ステップS101及びステップS102での処理を繰り返す(ステップS103)。
制御系データ受信バッファ及び情報系データ受信バッファの両方それぞれにデータが格納されていると(ステップS104)、生成部130は、受信バッファに一定時間読み出されていないデータが存在するか確認する(ステップS105)。ステップS105での確認は、例えばデータの未読出時間(読み出されていない時間)を計時して未読出時間が一定閾値を超えたか否かに基づいて行われる。
ステップS105での確認の結果として、一定時間読み出されていないデータが存在しない場合には、生成部130は、優先情報を参照して、いずれの受信バッファから読み出すことを優先すれば良いかを確認し、制御系データ受信バッファから読み出す優先度が高い場合には(ステップS106)、制御系データ受信バッファからデータを読み出す(ステップS107)。また、情報系データ受信バッファから読み出す優先度が高い場合には(ステップS108)、生成部130は、情報系データ受信バッファからデータを読み出す(ステップS109)。また、優先度が同じである場合には、生成部130は、両受信バッファのデータのうち最も古いデータを読み出す(ステップS110)。なお、優先情報が、制御系データ受信バッファから優先して読み出されるように設定されている(つまり制御系データ受信バッファを優先度が高い優先受信バッファとし情報系データ受信バッファを優先度が低い非優先受信バッファとしている)という例においては、ステップS105で一定時間読み出されていないデータが存在しないと確認した場合に生成部130は、ステップS107で制御系データ受信バッファからデータを読み出す。
ステップS105での確認の結果として、一定時間読み出されていないデータが存在する場合には、生成部130は、そのデータを読み出す(ステップS110)。また、ステップS104で、制御系データ受信バッファ及び情報系データ受信バッファのうち一方のみにデータが格納されていると確認した場合にも、生成部130は、その一方の受信バッファの最も古いデータを読み出す(ステップS110)。
ここでは、生成部130に読み出されたデータは、受信バッファから消去されるものとして説明したが、読み出されていないデータ(未読出のデータ)を区別できれば消去以外の方法で受信バッファにおけるデータの管理を行っても良い。いずれの方法でデータの管理を行っても、生成部130は、制御系データ受信バッファ及び情報系データ受信バッファのうちの一方である優先受信バッファを、他方である非優先受信バッファに優先してデータを読み出す優先読出制御を行う。優先読出制御として、生成部130は、受信バッファ120a(制御系データ受信バッファ)と受信バッファ120b(情報系データ受信バッファ)とを繰り返し確認し、確認時に、制御系データ受信バッファに未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合において、非優先受信バッファ中の未読出のデータの読出時間が一定閾値を超えないときには優先受信バッファ中の未読出のデータを読み出し、その未読出時間がその一定閾値を超えたときには非優先受信バッファ中の未読出のデータを読み出す。また、生成部130は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在しない場合には、制御系データ受信バッファ中の未読出のデータを読み出す。また、生成部130は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在せず、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合には、情報系データ受信バッファ中の未読出のデータを読み出す。上述の一定閾値は、過去の車両9の状態、車載装置の処理結果等に基づいて定められても良い。なお、優先読出制御において優先受信バッファ中のデータを連続的に読み出すことで非優先受信バッファ中のデータが全く読み出されなくなることを防止するためには、上述の一定閾値として、例えば、優先受信バッファ中のデータの1つ分の読み出しに要する時間より長い適切な時間を定めておくと良い。
次に、送信データ生成処理(ステップS2)について、図11に即して説明する。
生成部130は、いずれかの受信バッファから読み出したデータに基づいて、車両状態を取得し(ステップS201)、或いはセンサ情報を取得する(ステップS202)。続いて生成部130は、取得した車両状態或いはセンサ情報に基づいて車両9の周辺環境の様子や車両9の状態等に関する各種項目についての検知を行う(ステップS203)。なお、生成部130は、ステップS201或いはステップS202でいずれかの受信バッファから読み出したデータに基づいて取得された車両状態、センサ情報等に基づいてステップS203で環境に係る検知を行う際に、更に、その前の一定期間内(例えば数秒以内等)に受信バッファから読み出した1つ又は複数のデータを参照して、その検知を行うこととしても良い。
続いて生成部130は、ステップS203での検知結果に基づいて、車両9の走行制御が必要か否かを判断する(ステップS204)。車両9の走行制御が必要であると判断した場合には、生成部130は、制御系データ(第1種データ)としての車両制御データを生成し(ステップS205)、その車両制御データに付するように、CANフレームの優先度として作用し得るCAN−IDを設定し(ステップS206)、その制御系データを送信バッファ140a(制御系データ送信バッファ)に書き込む(ステップS207)。ステップS204で、車両9の走行制御が必要でないと判断した場合には、生成部130は、ステップS205〜S207での処理をスキップする。
続いて生成部130は、ステップS203での検知結果に基づいて、車両9に搭載されたセンサの制御が必要か否かを判断する(ステップS208)。センサの制御が必要であると判断した場合には、生成部130は、情報系データ(第2種データ)としてのセンサ制御データを生成し(ステップS209)、そのセンサ制御データに付するように、センサ制御データの宛先となるMACアドレス等の宛先情報を設定し(ステップS210)、その情報系データを送信バッファ140b(情報系データ送信バッファ)に書き込む(ステップS211)。ステップS208で、センサの制御が必要でないと判断した場合には、生成部130は、ステップS209〜S211での処理をスキップする。
次に、データ送信処理(ステップS3)について、図12及び図13に即して説明する。ここでは、各送信バッファ140a、140bに格納されたデータは、送信部150に読み出されて送信されると、その送信バッファから消去されるものとする。
X−ECU100の送信部150は、制御系データ送信バッファにデータが格納されているかを確認し(ステップS301)、情報系データ送信バッファにデータが格納されているかを確認する(ステップS302)。送信部150は、いずれの送信バッファにもデータが格納されていない間は、ステップS301及びステップS302での処理を繰り返す(ステップS303)。
制御系データ送信バッファ及び情報系データ送信バッファの両方それぞれにデータが格納されていると(ステップS304)、送信部150は、送信バッファに一定時間送信されていないデータが存在するか確認する(ステップS305)。ステップS305での確認は、例えばデータの未送信時間(送信されていない時間)を計時して未送信時間が所定閾値を超えたか否かに基づいて行われる。
ステップS305での確認の結果として、一定時間送信されていないデータが存在しない場合には、送信部150は、優先情報を参照して、いずれの送信バッファのデータを送信することを優先すれば良いかを確認し、制御系データを送信する優先度が高い、つまり制御系データ送信バッファのデータを送信する優先度が高い場合には(ステップS306)、制御系データ送信バッファから制御系データを読み出して、そのデータを送信対象として特定する(ステップS307)。また、情報系データを送信する優先度が高い、つまり情報系データ送信バッファのデータを送信する優先度が高い場合には(ステップS308)、送信部150は、情報系データ送信バッファから情報系データを読み出して、そのデータを送信対象として特定する(ステップS309)。また、優先度が同じである場合には、送信部150は、両送信バッファのデータのうち最も古いデータを読み出して送信対象として特定する(ステップS310)。なお、優先情報が、制御系データ(制御系データ送信バッファのデータ)を優先して送信するように設定されている(つまり制御系データを優先度が高い優先種データとし情報系データを優先度が低い非優先種データとしている、或いは、制御系データ送信バッファを優先度が高い優先送信バッファとし情報系データ送信バッファを優先度が低い非優先送信バッファとしている)という例においては、ステップS305で一定時間読み出されていないデータが存在しないと確認した場合に送信部150は、ステップS307で制御系データ送信バッファから制御系データを読み出してそのデータを送信対象として特定する。
ステップS305での確認の結果として、一定時間送信されていないデータが存在する場合には、送信部150は、そのデータを読み出して送信対象として特定する(ステップS310)。また、ステップS304で、制御系データ送信バッファ及び情報系データ送信バッファのうち一方のみにデータが格納されていると確認した場合にも、送信部150は、その一方の送信バッファの最も古いデータを読み出して送信対象として特定する(ステップS310)。
ステップS307、S309或いはS310で送信対象のデータを特定したら、送信部150は、送信対象が制御系データであるか情報系データであるかを判定し(ステップS311)、制御系データであれば、制御系ネットワーク1に送信できないような所定の例外条件が成立しているか否か(例えば制御系ネットワーク1の一部に異常が検知されたか否か)を判定する(ステップS312)。
ステップS312で制御系ネットワーク1の一部に異常が検知される等により所定の例外条件が成立していると判定した場合には、送信部150は、送信対象として特定された制御系データを含むEフレームを構築して、そのEフレームを情報系ネットワーク2へ送信する(ステップS313)。また、ステップS312で所定の例外条件が成立していないと判定した場合には、送信部150は、送信対象として特定された制御系データを含むCANフレームを構築して、そのCANフレームを制御系ネットワーク1へ送信する(ステップS314)。
また、ステップS311で、送信対象が情報系データであると判定した場合には、送信部150は、その送信対象として特定された情報系データを含むEフレームを構築して、そのEフレームを情報系ネットワーク2へ送信する(ステップS315)。
ここでは、送信部150に読み出されて送信されたデータは、送信バッファから消去されるものとして説明したが、送信されていないデータ(未送信のデータ)を区別できれば消去以外の方法で送信バッファにおけるデータの管理を行っても良い。いずれの方法でデータの管理を行っても、送信部150は、制御系データと情報系データとのうちの一方である優先種データを、他方である非優先種データより優先して送信するように優先送信制御を行う。優先送信制御として、送信部150は、送信バッファ140a(制御系データ送信バッファ)と送信バッファ140b(情報系データ送信バッファ)とを繰り返し確認し、確認時に、制御系データ送信バッファ中に未送信の制御系データが存在し、かつ、情報系データ送信バッファ中に未送信の情報系データが存在する場合において、非優先種データの未送信時間が所定閾値を超えないときには優先種データを送信し、その未送信時間がその所定閾値を超えたときには非優先種データを送信する。また、送信部150は、各送信バッファの確認時において、制御系データ送信バッファ中に未送信の制御系データが存在し、かつ、情報系データ送信バッファ中に未送信の情報系データが存在しない場合には、その制御系データを送信する。また、送信部150は、各送信バッファの確認時において、制御系データ送信バッファ中に未送信の制御系データが存在せず、かつ、情報系データ送信バッファ中に未送信の情報系データが存在する場合には、その情報系データを送信する。上述の所定閾値は、過去の車両9の状態、車載装置の処理結果等に基づいて定められても良い。なお、優先送信制御において優先種データを連続的に送信されて非優先種データが全く送信されなくなることを防止するためには、上述の所定閾値として、例えば、優先種データの1つ分の送信に要する時間より長い適切な時間を定めておくと良い。
[1.6 HUB200の動作]
図14は、HUB200によるデータ転送処理の一例を示すフローチャートである。HUB200は、受信部210a及び受信部210bのそれぞれにより、伝送路から逐次受信されたフレームの内容を、受信バッファ220a(制御系データ受信バッファ)と、受信バッファ220b(情報系データ受信バッファ)に逐次格納する。この受信部210a、210bによる受信及び格納と並行して、選定部230及び送信部250では、図14に示すデータ転送処理を行う。HUB200は、このデータ転送処理として、主として選定部230による受信データ読出処理(ステップS1)及び転送データ生成処理(ステップS4)、並びに、主として送信部250によるデータ送信処理(ステップS3)を行う。このデータ転送処理は、繰り返し行われる。なお、選定部230による受信データ読出処理は、上述したX−ECU100の生成部130による受信データ読出処理(図10)と同様であり、送信部250によるデータ送信処理は、X−ECU100の送信部150によるデータ送信処理(図12及び図13)と同様であるので、これらの処理については説明を適宜省略する。
HUB200の各受信部210a、210bにより各受信バッファ220a、220bに格納されたデータは、選定部230に読み出されると、その受信バッファから消去されるものとする。
図10に示すように、HUB200の選定部230は、制御系データ受信バッファ及び情報系データ受信バッファにデータが格納されているかを繰り返し確認する(ステップS101〜S103)。
両受信バッファそれぞれにデータが格納されていると(ステップS104)、選定部230は、受信バッファに一定時間読み出されていないデータが存在するか確認する(ステップS105)。
ステップS105での確認の結果として、一定時間読み出されていないデータが存在しない場合には、選定部230は、優先情報を参照して、制御系データ受信バッファから読み出す優先度が高い場合には(ステップS106)、制御系データ受信バッファからデータを読み出す(ステップS107)。また、情報系データ受信バッファから読み出す優先度が高い場合には(ステップS108)、選定部230は、情報系データ受信バッファからデータを読み出す(ステップS109)。
ステップS105での確認の結果として、一定時間読み出されていないデータが存在する場合には、選定部230は、そのデータを読み出す(ステップS110)。また、ステップS104で、制御系データ受信バッファ及び情報系データ受信バッファのうち一方のみにデータが格納されていると確認した場合にも、選定部230は、その一方の受信バッファの最も古いデータを読み出す(ステップS110)。
ここでは、選定部230に読み出されたデータは、受信バッファから消去されるものとして説明したが、読み出されていないデータ(未読出のデータ)を区別できれば消去以外の方法で受信バッファにおけるデータの管理を行っても良い。いずれの方法でデータの管理を行っても、選定部230は、制御系データ受信バッファ及び情報系データ受信バッファのうちの一方である優先受信バッファを、他方である非優先受信バッファに優先してデータを読み出す優先読出制御を行う。優先読出制御として、選定部230は、受信バッファ220a(制御系データ受信バッファ)と受信バッファ220b(情報系データ受信バッファ)とを繰り返し確認し、確認時に、制御系データ受信バッファに未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合において、非優先受信バッファ中の未読出のデータの読出時間が一定閾値を超えないときには優先受信バッファ中の未読出のデータを読み出し、その未読出時間がその一定閾値を超えたときには非優先受信バッファ中の未読出のデータを読み出す。また、選定部230は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在しない場合には、制御系データ受信バッファ中の未読出のデータを読み出す。また、選定部230は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在せず、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合には、情報系データ受信バッファ中の未読出のデータを読み出す。
次に、選定部230による転送データ生成処理(ステップS4)について、図15に即して説明する。
選定部230は、いずれかの受信バッファから読み出したデータについて、転送ルール情報に基づいて、そのデータの宛先(転送先)が制御系ネットワーク1か情報系ネットワーク2かを選定する(ステップS401)。
続いて選定部230は、その宛先を選定したデータが情報系データ受信バッファから読み出したデータである場合において(ステップS402)、宛先を情報系ネットワーク2と選定したときには(ステップS403)、そのデータに基づいてそのデータを含むように転送データ(転送されるべきデータ)を生成し(ステップS404)、その生成したデータを送信バッファ240b(情報系データ送信バッファ)に書き込む(ステップS405)。また、ステップS403で情報系データ受信バッファから読み出したデータの宛先を制御系ネットワーク1と選定したときには、選定部230は、そのデータがCANのデータフレームに格納可能でない大きさの場合において格納可能となるように複数のデータに分割する(ステップS406)。そして選定部230は、その分割結果の各データそれぞれについてそのデータを含むように転送データを生成し(ステップS407)、生成した各転送データを送信バッファ240a(制御系データ送信バッファ)に書き込む(ステップS408)。
また、ステップS402で、その宛先を選定したデータが制御系データ受信バッファから読み出したデータであると判定した場合において、選定部230は、宛先を制御系ネットワーク1と選定したときには(ステップS409)、そのデータに基づいてそのデータを含むように転送データを生成し(ステップS410)、その生成したデータを送信バッファ240a(制御系データ送信バッファ)に書き込む(ステップS411)。また、ステップS409で制御系データ受信バッファから読み出したデータの宛先を情報系ネットワーク2と選定したときには、選定部230は、そのデータを含むように転送データを生成し(ステップS412)、生成した転送データを送信バッファ240b(情報系データ送信バッファ)に書き込む(ステップS413)。
次に、送信部250によるデータ送信処理(ステップS3)について、図12及び図13に即して説明する。ここでは、各送信バッファ240a、240bに格納されたデータは、送信部250に読み出されて送信されると、その送信バッファから消去されるものとする。
HUB200の送信部250は、制御系データ送信バッファ及び情報系データ送信バッファにデータが格納されているかを繰り返し確認する(ステップS301〜S303)。
両送信バッファそれぞれにデータが格納されていると(ステップS304)、送信部250、送信バッファに一定時間送信されていないデータが存在するか確認する(ステップS305)。
ステップS305での確認の結果として、一定時間送信されていないデータが存在しない場合には、送信部250は、優先情報を参照して、いずれの送信バッファのデータを送信することを優先すれば良いかを確認し、制御系データ送信バッファの優先度が高い場合には(ステップS306)、制御系データ送信バッファからデータを読み出して、そのデータを送信対象として特定する(ステップS307)。また、情報系データ送信バッファの優先度が高い場合には(ステップS308)、送信部250は、情報系データ送信バッファからデータを読み出して、そのデータを送信対象として特定する(ステップS309)。なお、優先情報が、制御系データ送信バッファを優先度が高い優先送信バッファとし情報系データ送信バッファを優先度が低い非優先送信バッファとしているという例においては、ステップS305で一定時間読み出されていないデータが存在しないと確認した場合に送信部250は、ステップS307で制御系データ送信バッファから制御系データを読み出してそのデータを送信対象として特定する。
ステップS305での確認の結果として、一定時間送信されていないデータが存在する場合には、送信部250は、そのデータを読み出して送信対象として特定する(ステップS310)。また、ステップS304で、制御系データ送信バッファ及び情報系データ送信バッファのうち一方のみにデータが格納されていると確認した場合にも、送信部250は、その一方の送信バッファの最も古いデータを読み出して送信対象として特定する(ステップS310)。
ステップS307、S309或いはS310で送信対象のデータを特定したら、送信部250は、送信対象は制御系データ送信バッファのデータか情報系データ送信バッファのデータであるかを判定し(ステップS311)、制御系データ送信バッファのデータであれば、制御系ネットワーク1に送信できないような所定の例外条件が成立しているか否かを判定する(ステップS312)。
ステップS312で制御系ネットワーク1の一部に異常が検知される等により所定の例外条件が成立していると判定した場合には、送信部250は、送信対象として特定されたデータを含むEフレームを構築して、そのEフレームを情報系ネットワーク2へ送信する(ステップS313)。また、ステップS312で所定の例外条件が成立していないと判定した場合には、送信部250は、送信対象として特定されたデータを含むCANフレームを構築して、そのCANフレームを制御系ネットワーク1へ送信する(ステップS314)。
また、ステップS311で、送信対象が情報系データ送信バッファのデータであると判定した場合には、送信部250は、その送信対象として特定されたデータを含むEフレームを構築して、そのEフレームを情報系ネットワーク2へ送信する(ステップS315)。
ここでは、送信部250に読み出されて送信されたデータは、送信バッファから消去されるものとして説明したが、送信されていないデータ(未送信のデータ)を区別できれば消去以外の方法で送信バッファにおけるデータの管理を行っても良い。いずれの方法でデータの管理を行っても、送信部250は、制御系データ送信バッファと情報系データ送信バッファとのうちの一方である優先送信バッファのデータを、他方である非優先送信バッファのデータより優先して送信するように優先送信制御を行う。優先送信制御として、送信部250は、送信バッファ240a(制御系データ送信バッファ)と送信バッファ240b(情報系データ送信バッファ)とを繰り返し確認し、確認時に、制御系データ送信バッファ中に未送信のデータが存在し、かつ、情報系データ送信バッファ中に未送信のデータが存在する場合において、非優先送信バッファのデータの未送信時間が所定閾値を超えないときには優先送信バッファのデータを送信し、その未送信時間がその所定閾値を超えたときには非優先送信バッファのデータを送信する。また、送信部250は、各送信バッファの確認時において、制御系データ送信バッファ中に未送信のデータが存在し、かつ、情報系データ送信バッファ中に未送信のデータが存在しない場合には、その制御系データ送信バッファ中のデータを送信する。また、送信部250は、各送信バッファの確認時において、制御系データ送信バッファ中に未送信のデータが存在せず、かつ、情報系データ送信バッファ中に未送信のデータが存在する場合には、その情報系データ送信バッファ中のデータを送信する。
[1.7 X−ECU100のADAS機能による処理シーケンス]
図16は、X−ECU100のADAS機能による処理シーケンスの一例を示す。
X−ECU100は、制御系ネットワーク1でC−ECU500aが送信した、車両状態データを示すCANフレームを受信し(ステップS1001)、また、情報系ネットワーク2でカメラ300bが送信した、センサ情報である撮影画像を示すEフレームを受信する(ステップS1002)。
X−ECU100は、車両状態データ及び撮影画像に基づいて車両9の周辺環境の検知を行い(ステップS1003)、検知結果に応じて、例えば車両制御データを生成し(ステップS1004)、車両制御データを、制御系ネットワーク1のバス30aに送信する(ステップS1005)。
[1.8 HUB200の転送機能に関連した通信シーケンス]
図17は、HUB200の転送機能に関連した通信シーケンスの一例を示す。ここでは、HUB200において優先情報として制御系データ受信バッファ(或いは制御系データ送信バッファ)の優先度が、情報系データ受信バッファ(或いは情報系データ送信バッファ)より高く設定されているものとする。
HUB200は、情報系ネットワーク2からセンサ情報を含むEフレームを受信し(ステップS1011)、制御系ネットワーク1から車両状態データを含むCANフレームを受信する(ステップS1012)。
HUB200は、受信バッファ220a、220bを確認して、優先的に車両状態データを受信バッファ220aから読み出して宛先を情報系ネットワーク2と選定してその車両状態データを含むEフレームを情報系ネットワーク2へと送信する(ステップS1013)。また、HUB200は、制御系ネットワーク1から車両状態データを含むCANフレームを受信する(ステップS1014)。
HUB200は、受信バッファ220a、220bを確認して、優先的に車両状態データを受信バッファ220aから読み出して宛先を情報系ネットワーク2と選定してその車両状態データを含むEフレームを情報系ネットワーク2へと送信する(ステップS1015)。
HUB200は、受信バッファ220a、220bを確認して、受信バッファ220aにデータがないので、受信バッファ220bからセンサ情報を読み出して宛先を制御系ネットワーク1と選定してそのセンサ情報を含むCANフレームを制御系ネットワーク1へと送信する(ステップS1016)。
[1.9 実施の形態1の効果]
実施の形態1に係る車載ネットワークシステム10では、互いに通信プロトコルの異なる第1ネットワーク(制御系ネットワーク1)と第2ネットワーク(情報系ネットワーク2)との両方に接続されたECUであるX−ECU100が、優先情報に応じて、一方のネットワークからのデータの受信バッファからの優先的な読み出し、或いは、一方のネットワークを宛先とするデータの送信バッファからの優先的な送信を行う。また、両方のネットワークに接続されたHUB200が、データの転送に際して、優先情報に応じて、一方のネットワークからのデータの受信バッファからの優先的な読み出し、或いは、一方のネットワークを宛先とするデータの送信バッファからの優先的な送信を行う。これにより、データの読み出しに基づく処理或いは送信処理等の優先順序を、各ネットワークで伝送されるデータの重要性等に対応させることが可能となり得る。このため、例えば、画像データ等の送信より、車両9の走行制御に係るデータの送信を優先すること等が実現可能となり、画像データ等の大容量データの伝送が、車両9の安全な走行等に悪影響を及ぼすことが防止され得る。
また、実施の形態1に係る車載ネットワークシステム10では、X−ECU100或いはHUB200は、制御系ネットワーク1の一部に異常が検知される等により所定の例外条件が成立していると判定した場合に、制御系ネットワーク1へ送信されるべきデータを含み、かつ、そのことを示す識別フラグ情報を含むEフレームを構築して、そのEフレームを情報系ネットワーク2へ送信する機能を有する。車載ネットワーク11ではネットワークの経路が複数確保されている場合があり得るので、制御系ネットワーク1の一部に異常があったとしても、このX−ECU100或いはHUB200によれば、情報系ネットワーク2を経由して、最終的に宛先となる装置までデータが伝送される可能性がある。車載ネットワークシステム10において、制御系ネットワーク1と情報系ネットワーク2とを結ぶ中継装置は複数存在し得るところ、その中継装置のいずれかが、Eフレームの識別フラグ情報を判別して、Eフレームが制御系ネットワーク1へ送信されるべき情報を含む場合には、そのEフレームをプロトコル変換して制御系ネットワーク1へと転送しても良い。なお、X−ECU100或いはHUB200では、情報系ネットワーク2の一部に異常があることを検知した場合にも情報系ネットワーク2を宛先とするデータを、制御系ネットワーク1へ送信しない。これは、情報系ネットワーク2へ送信すべきデータは、一般にデータサイズが大きいので、制御系ネットワーク1へ送信してしまうと輻輳により、制御系ネットワーク1での車両制御データ等の伝達に遅延が生じるからである。
[1.10 実施の形態1の変形例]
上述したX−ECU100(或いはHUB200)は、図10に例示した生成部130(或いは選定部230)による受信データ読出処理(ステップS1)の代わりに、図18に示す受信データ読出処理(ステップS1a)を行うこととしても良い。
図18の受信データ読出処理は、図10の受信データ読出処理におけるステップS105を、ステップS105aに変形したものである。
ステップS105では、生成部130(或いは選定部230)は、受信バッファに一定時間読み出されていないデータが存在するか確認したが、ステップS105aでは、優先度が高い受信バッファ(優先受信バッファ)からデータを一定数読み出し済みであるか確認する。
これにより、X−ECU100の生成部130は、制御系データ受信バッファ及び情報系データ受信バッファのうちの一方である優先受信バッファを、他方である非優先受信バッファに優先してデータを読み出す優先読出制御を、例えば次のように行うことになる。即ち、生成部130は、受信バッファ120a(制御系データ受信バッファ)と受信バッファ120b(情報系データ受信バッファ)とを繰り返し確認し、確認時に、制御系データ受信バッファに未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合において、優先受信バッファ中の未読出のデータを一定数量分読み出した後に非優先受信バッファ中の未読出のデータを1つ読み出す。また、生成部130は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在しない場合には、制御系データ受信バッファ中の未読出のデータを読み出す。また、生成部130は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在せず、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合には、情報系データ受信バッファ中の未読出のデータを読み出す。
また、HUB200の選定部230は、制御系データ受信バッファ及び情報系データ受信バッファのうちの一方である優先受信バッファを、他方である非優先受信バッファに優先してデータを読み出す優先読出制御を、例えば次のように行うことになる。即ち、選定部230は、受信バッファ220a(制御系データ受信バッファ)と受信バッファ220b(情報系データ受信バッファ)とを繰り返し確認し、確認時に、制御系データ受信バッファに未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合において、優先受信バッファ中の未読出のデータを一定数量分読み出した後に非優先受信バッファ中の未読出のデータを1つ読み出す。また、選定部230は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在しない場合には、制御系データ受信バッファ中の未読出のデータを読み出す。また、選定部230は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在せず、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合には、情報系データ受信バッファ中の未読出のデータを読み出す。
上述の一定数量は、過去の車両9の状態、車載装置の処理結果等に基づいて定められても良い。なお、優先読出制御において優先受信バッファ中のデータを連続的に読み出すことで非優先受信バッファ中のデータが全く読み出されなくなることを防止するためには、上述の一定数量として、例えば、優先受信バッファ中のデータの1つ分より大きい適切な数量(例えば、数量を個数で表せば2個以上、或いは、数量をデータ量で表せば、1つ分のサイズの2倍以上のデータ量)を定めておくと良い。
また、上述したX−ECU100(或いはHUB200)は、図12及び図13に例示した送信部150(或いは送信部250)によるデータ送信処理(ステップS3)の代わりに、図19及び図13に示すデータ送信処理(ステップS3a)を行うこととしても良い。
図19及び図13のデータ送信処理は、図12及び図13のデータ送信処理におけるステップS305を、ステップS305aに変形したものである。
ステップS305では、送信部150(或いは送信部250)は、送信バッファに一定時間送信されていないデータが存在するか確認したが、ステップS305aでは、優先度が高い送信バッファ(優先受信バッファ)のデータ(優先種データ)を一定数送信済みであるか確認する。
これにより、X−ECU100の送信部150は、制御系データ及び情報系データの一方である優先種データを、他方である非優先種データに優先して送信する優先送信制御を、例えば次のように行うことになる。即ち、送信部150は、送信バッファ140aと送信バッファ140bとを繰り返し確認し、確認時において、送信バッファ140a中に未送信の制御系データが存在し、かつ、送信バッファ140b中に未送信の情報系データが存在する場合には、その制御系データと情報系データとのうち優先種データを所定数量分送信した後に非優先種データを1つ送信する。また、送信部150は、各送信バッファの確認時において、送信バッファ140a中に未送信の制御系データが存在し、かつ、送信バッファ140b中に未送信の情報系データが存在しない場合には、その制御系データを送信する。また、送信部150は、各送信バッファの確認時において、送信バッファ140a中に未送信の制御系データが存在せず、かつ、送信バッファ140b中に未送信の情報系データが存在する場合には、その情報系データを送信する。
また、HUB200の送信部250は、制御系データ及び情報系データの一方である優先種データを、他方である非優先種データに優先して送信する優先送信制御を、例えば次のように行うことになる。即ち、送信部250は、送信バッファ240aと送信バッファ240bとを繰り返し確認し、確認時において、送信バッファ240a中に未送信のデータが存在し、かつ、送信バッファ240b中に未送信のデータが存在する場合には、優先送信バッファのデータを所定数量分送信した後に非優先送信バッファのデータを1つ送信する。また、送信部250は、各送信バッファの確認時において、送信バッファ240a中に未送信のデータが存在し、かつ、送信バッファ240b中に未送信のデータが存在しない場合には、その存在するデータを送信する。また、送信部250は、各送信バッファの確認時において、送信バッファ240a中に未送信のデータが存在せず、かつ、送信バッファ240b中に未送信のデータが存在する場合には、その存在するデータを送信する。
上述の所定数量は、過去の車両9の状態、車載装置の処理結果等に基づいて定められても良い。なお、優先送信制御において優先送信バッファ中のデータ(優先種データ)を連続的に送信することで非優先送信バッファ中のデータ(非優先種データ)が全く送信されなくなることを防止するためには、上述の所定数量として、例えば、優先送信バッファ中のデータの1つ分より大きい適切な数量(例えば、数量を個数で表せば2個以上、或いは、数量をデータ量で表せば、1つ分のサイズの2倍以上のデータ量)を定めておくと良い。
また、X−ECU100の生成部130は、図10に示す受信データ読出処理(ステップS1)或いは図18に示す受信データ読出処理(ステップS1a)による優先読出制御を次のように変更しても良い。即ち、生成部130は、受信バッファ120a(制御系データ受信バッファ)と受信バッファ120b(情報系データ受信バッファ)とを繰り返し確認し、確認時に、制御系データ受信バッファに未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合において、優先受信バッファ中の未読出のデータを読み出す。また、生成部130は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在しない場合には、制御系データ受信バッファ中の未読出のデータを読み出す。また、生成部130は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在せず、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合には、情報系データ受信バッファ中の未読出のデータを読み出す。
また、X−ECU100の送信部150は、図12及び図13に示すデータ送信処理(ステップS3)或いは図19及び図13に示すデータ送信処理(ステップS3a)による優先送信制御を次のように変更しても良い。即ち、送信部150は、送信バッファ140aと送信バッファ140bとを繰り返し確認し、確認時において、送信バッファ140a中に未送信の制御系データが存在し、かつ、送信バッファ140b中に未送信の情報系データが存在する場合には、その制御系データと情報系データとのうち優先種データを送信する。また、送信部150は、各送信バッファの確認時において、送信バッファ140a中に未送信の制御系データが存在し、かつ、送信バッファ140b中に未送信の情報系データが存在しない場合には、その制御系データを送信する。また、送信部150は、各送信バッファの確認時において、送信バッファ140a中に未送信の制御系データが存在せず、かつ、送信バッファ140b中に未送信の情報系データが存在する場合には、その情報系データを送信する。
また、HUB200の選定部230は、図10に示す受信データ読出処理(ステップS1)或いは図18に示す受信データ読出処理(ステップS1a)による優先読出制御を次のように変更しても良い。即ち、選定部230は、受信バッファ220a(制御系データ受信バッファ)と受信バッファ220b(情報系データ受信バッファ)とを繰り返し確認し、確認時に、制御系データ受信バッファに未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合において、優先受信バッファ中の未読出のデータを読み出す。また、選定部230は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在し、かつ、情報系データ受信バッファ中に未読出のデータが存在しない場合には、制御系データ受信バッファ中の未読出のデータを読み出す。また、選定部230は、各受信バッファの確認時において、制御系データ受信バッファ中に未読出のデータが存在せず、かつ、情報系データ受信バッファ中に未読出のデータが存在する場合には、情報系データ受信バッファ中の未読出のデータを読み出す。また、HUB200は、優先情報により示される優先受信バッファから読み出されたデータの転送(そのデータに基づくデータ送信)を、非優先受信バッファから読み出されたデータの転送よりも優先して行うように、優先送信制御を行うこととしても良い。
また、HUB200の送信部250は、図12及び図13に示すデータ送信処理(ステップS3)或いは図19及び図13に示すデータ送信処理(ステップS3a)による優先送信制御を次のように変更しても良い。即ち、送信部250は、送信バッファ240aと送信バッファ240bとを繰り返し確認し、確認時において、送信バッファ240a中に未送信のデータが存在し、かつ、送信バッファ240b中に未送信のデータが存在する場合には、優先送信バッファのデータを送信する。また、送信部250は、各送信バッファの確認時において、送信バッファ240a中に未送信のデータが存在し、かつ、送信バッファ240b中に未送信のデータが存在しない場合には、その存在するデータを送信する。また、送信部250は、各送信バッファの確認時において、送信バッファ240a中に未送信のデータが存在せず、かつ、送信バッファ240b中に未送信のデータが存在する場合には、その存在するデータを送信する。
(実施の形態2)
以下、実施の形態1で示した車載ネットワークシステム10(図2参照)の構成を一部変形した例について説明する。
[2.1 車載ネットワークシステム10aの構成]
図20は、車載ネットワークシステム10aの概略構成を示す図である。実施の形態1で示した車載ネットワークシステム10におけるHUB200が制御系ネットワーク1における1つのCANバスに接続していた。これに対して、図20に示すように、車載ネットワークシステム10aは、HUB200を一部変形したHUB200aが、制御系ネットワーク1aにおける2つのバス、つまりバス30a(CANバス1)及びバス30b(CANバス2)に接続している。車載ネットワークシステム10aの構成要素のうち、車載ネットワークシステム10と同様のものについては、図20において図2と同じ符号を付しており、ここでは説明を省略する。また、ここで特に説明しない点については、車載ネットワークシステム10aは車載ネットワークシステム10と同様である。
制御系ネットワーク1aにおけるバス30aには、C−ECU500a〜500cが接続されており、バス30bには、C−ECU500d、500eが接続されている。C−ECU500d、500eのそれぞれは、例えば、ドア開閉センサに直接接続されているドア制御ECU、ウィンドウ開閉センサに直接接続されているウィンドウ制御ECU等である。
HUB200aは、HUB200の機能の他に、CANゲートウェイとしての機能を有し、一方のCANバスから受信したCANフレームを他方のCANバスへ転送する機能を有する。C−ECU500a〜500eは、例えばバス30a、バス30b及びHUB200aを介して、互いに通信し、CANプロトコルに従ってフレームの授受を行う。
HUB200aは、実施の形態1で示したHUB200と同様の構成を備える(図7参照)。但し、HUB200aでは、優先度設定部260は、優先情報の内容を、車両9の状態に応じて随時更新し得る。例えば、優先度設定部260は、図21に示す優先度制御情報に基づいて、車両9が走行中か停止中かに応じて、優先情報を更新する。具体的には、車両走行状態(車両9の走行状態)が走行中であれば、制御系データ受信バッファと制御系データ送信バッファとの優先度を高くし、車両走行状態が停止中であれば、逆に、情報系データ受信バッファと情報系データ送信バッファとの優先度を高くする。即ち、優先送信バッファは、例えば車両9の走行中においては送信バッファ240a(制御系データ送信バッファ)であり、車両9の停止中においては送信バッファ240b(情報系データ送信バッファ)である。HUB200aは、例えば、いずれかのC−ECUから受信したCANフレームの内容(例えば車両状態データ)から車両走行状態が走行中であるか停止中であるかを判別し得る。停止中においては、例えば、車速がゼロである。HUB200aによるデータ転送処理は、随時更新される優先情報に基づいて行われる点以外においては、HUB200によるデータ転送処理と同様である(図10、図12〜図15参照)。
なお、HUB200aは、情報系ネットワーク2の伝送路としての複数のEthernet(登録商標)ケーブルと接続されていても良く、実施の形態1のE−HUB400と同様の機能を包含していても良い。
[2.2 HUB200aの転送機能に関連した通信シーケンス]
図22は、HUB200aの転送機能に関連した通信シーケンスの一例を示す。この例において、HUB200aが保持する転送ルール情報では、バス30aから受信された車両状態データのCANフレームは、バス30b(CANバス2)へと転送されるべきことを示しているものとする。
HUB200aは、例えば車両9が走行を開始すると、優先度設定部260で、優先対象が制御系データとなるように優先情報を設定する(ステップS1021)。これにより、優先情報は、制御系データ受信バッファ(或いは制御系データ送信バッファ)の優先度が、情報系データ受信バッファ(或いは情報系データ送信バッファ)より高く設定される。
HUB200aは、情報系ネットワーク2からセンサ情報を含むEフレームを受信し(ステップS1022)、制御系ネットワーク1aの例えばバス30a(CANバス1)から車両状態データを含むCANフレームを受信する(ステップS1023)。そして、HUB200aは、受信バッファ220a、220bを確認して、優先的に車両状態データを受信バッファ220aから読み出す。HUB200aは、受信バッファから読み出した車両状態データの宛先を制御系ネットワーク1aのバス30bと選定してその車両状態データを含むCANフレームを、制御系ネットワーク1aのバス30bへと送信する(ステップS1024)。また、HUB200aは、制御系ネットワーク1aのバス30aから、また車両状態データを含むCANフレームを受信する(ステップS1025)。
HUB200aは、受信バッファ220a、220bを確認して、優先的に車両状態データを受信バッファ220aから読み出して同様に宛先を制御系ネットワーク1aのバス30bと選定して、その車両状態データを含むCANフレームを制御系ネットワーク1aのバス30bへと送信する(ステップS1026)。
HUB200aは、受信バッファ220a、220bを確認して、受信バッファ220aにデータがないので、受信バッファ220bからセンサ情報を読み出す。ここで、転送ルール情報に、このセンサ情報が、情報系ネットワーク2の一の装置を送信元とし、別の装置を宛先とすることが示されているものとする。そして、HUB200aは、その読み出したセンサ情報の宛先を情報系ネットワーク2と選定してそのセンサ情報をペイロードに含み、宛先の装置のMACアドレスをヘッダの宛先MACアドレスとして含むEフレームを、情報系ネットワーク2へと送信する(ステップS1027)。
[2.3 実施の形態2の効果]
実施の形態2に係る車載ネットワークシステム10aでは、互いに通信プロトコルの異なる第1ネットワーク(制御系ネットワーク1a)と第2ネットワーク(情報系ネットワーク2)との両方に接続されたHUB200aが、データの転送に際して、車両9の状態に基づいて随時更新され得る優先情報に応じて、一方のネットワークからのデータの受信バッファからの優先的な読み出し、或いは、一方のネットワークを宛先とするデータの送信バッファからの優先的な送信を行う。これにより、データの読み出しに基づく処理或いは送信処理等の優先順序を、各ネットワークで伝送されるデータの重要性等に対応させることが可能となり得る。具体例として、車両9の走行中においては、画像データ等の情報系データの送信より、車両9の走行制御に係る制御系データの送信を優先するので、情報系データの伝送が、車両9の安全な走行等に悪影響を及ぼすことが防止され得る。また、逆に車両9の停止中においては、情報系データの伝送を優先し、画像その他の比較的データ量の大きな情報等を遅滞なく車両9の乗員(ユーザ)に提供してユーザの快適さを高めることが可能となり得る。
なお、HUB200aと同様に、X−ECU100においても、優先度設定部160が、車両9の状態に応じて優先情報を随時更新しても良い。これにより、X−ECU100における優先情報は、例えば、車両9の走行状態が走行中であれば、制御系データ受信バッファと制御系データ送信バッファとの優先度を高くし、車両走行状態が停止中であれば、逆に、情報系データ受信バッファと情報系データ送信バッファとの優先度を高くするように設定される。即ち、優先受信バッファは、車両9の走行中においては制御系データ受信バッファであり、車両9の停止中においては情報系データ受信バッファである。また、優先種データは、車両9の走行中においては制御系データであり、車両9の停止中においては情報系データである。
(他の実施の形態)
以上のように、本発明に係る技術の例示として実施の形態1、2を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
(1)上記実施の形態で示した車載ネットワークシステム10、10a(図2、図20参照)における車載ネットワークの構成は、一例に過ぎず、第1通信プロトコル(例えばCANプロトコル)に従ってバスで車両の走行制御に係る第1種フレーム(例えばCANフレーム)の伝送が行われる第1ネットワークと、第1通信プロトコルとは異なる第2通信プロトコル(例えばEthernet(登録商標)プロトコル)に従って第2種フレーム(例えばEフレーム)の伝送が行われる第2ネットワークを含むものであれば、いかなる構成であっても良い。例えば、車載ネットワークシステムの構成は、図23〜図28に示す変形例(変形例1〜6)のようなものであっても良い。各図において同様の構成要素には同じ符号を付している。図23に示す車載ネットワークシステム10bは、車載ネットワークシステム10からX−ECU100を除いた構成を備える。なお、E−ECU300aは、例えばADAS機能を有しても良い。車載ネットワークシステム10bにおいてE−ECU300a及びC−ECU500a〜500cは、X−ECU100のように2種類の通信プロトコルに対応しなくても、HUB200を介して相互に情報の授受を行うことが可能である。図24に示す車載ネットワークシステム10cにおいて、ゲートウェイ600は、Ethernet(登録商標)プロトコルに対応したインタフェースを有さず、制御系ネットワーク1bの伝送路としてのバス(CANバス)30a、30c間でのCANフレームの転送を担うCANゲートウェイの機能を有する。そして、HUB200bが、制御系ネットワーク1bと情報系ネットワーク2aとを接続し、ネットワーク間でのデータの中継(転送)を行う転送機能を有する。HUB200bは、複数のEthernet(登録商標)ケーブルに接続されるポート(接続端子)を有し、実施の形態1で示したHUB200と同様の機能及びE−HUB400と同様の機能を包含する。図25に示す車載ネットワークシステム10dは、主として、車載ネットワークシステム10cにおける制御系ネットワーク1bを、車載ネットワークシステム10における制御系ネットワーク1に置き換えたものに相当する。図26に示す車載ネットワークシステム10eは、車載ネットワークシステム10における情報系ネットワーク2を、バス型の情報系ネットワーク2bに置き換えたものである。ここで、HUB200cは、制御系ネットワーク1のバス30aと情報系ネットワーク2bのバス20xとに接続され、HUB200と同様に2つのネットワーク間でデータを転送する機能を有する。また、X−ECU100aは、制御系ネットワーク1と情報系ネットワーク2bとの両方に対応する通信インタフェースを有し、制御系ネットワーク1のバス30aと情報系ネットワーク2bのバス20xとに接続される。X−ECU100aは、X−ECU100と同様に両方のネットワークからデータを受信でき、両方のネットワークにデータを送信できる。両方のネットワークに対応する通信インタフェースを有するので、X−ECU100aは、HUB200cを介して一方のネットワークとデータの授受を行うより、迅速にデータの授受を行うことが可能となる。図27に示す車載ネットワークシステム10fは、車載ネットワークシステム10eにおける制御系ネットワーク1を、制御系ネットワーク1bに置き換え、HUB200cを、制御系ネットワーク1bの複数のCANバス(バス30a、30c)に接続するHUB200dに置き換えたものである。HUB200dは、HUB200cと同様の機能と、CANゲートウェイとしての機能を有する。図28に示す車載ネットワークシステム10gは、車載ネットワークシステム10eにおける情報系ネットワーク2bを、情報系ネットワーク2cに置き換え、HUB200cを、情報系ネットワーク2bの複数のバス(バス20x、20y)に接続するHUB200eに置き換えたものである。HUB200eは、HUB200cと同様の機能と、情報系ネットワーク2cにおけるフレームの中継機能とを包含する。なお、上述した各車載ネットワークシステムにおいて外部通信装置92を省いても良く、また、情報系ネットワークの伝送路に繋がる各装置(センサ等)の機能、或いは、制御系ネットワークの伝送路に繋がる各C−ECUの機能は、いかなるものであっても良い。また、各車載ネットワークシステムにおけるネットワークハブ(HUB)、例えばE−HUB400、HUB200b等は、Ethernet(登録商標)のスイッチ(スイッチングハブ)としての機能を有さないこととし、Eフレームの宛先MACアドレスを区別せずに、Eフレームを送信する際に、そのHUBに接続された全てのEthernet(登録商標)ケーブルにそのEフレームを送出することとしても良い。また、上述した各車載ネットワークシステムにおける情報系ネットワークの接続形態(ネットワークトポロジー)を変更してもよい。
(2)上記実施の形態で示したX−ECU100は、ADASの機能を有するものとしたが、ADASの機能を有さず他の機能を有するものであっても良い。また、X−ECU100の生成部130は、送信バッファ140a或いは送信バッファ140bに格納するデータについて、優先送信制御の基準とされるための送信優先度を示す情報(例えば優先度を示す数値、或いは優先されるべきことを示す情報等)を付加しても良い。送信部150は、各バッファに格納されているデータの送信優先度に基づき、例えば優先度が高い程先に送信する等といった、優先送信制御を行うこととしても良い。X−ECU100は、この送信優先度を示す情報が付加されたデータを、CANフレーム或いはEフレームの内容に含ませて送信しても良く、例えばHUB200等は、送信優先度を参照して、優先的に転送するための制御(例えば送信優先度が高い程先に受信バッファから読み出して転送する等)を行うこととしても良い。また、X−ECU100は、制御系ネットワークと情報系ネットワークとのそれぞれに対して、ゲートウェイ機能等を有する装置(HUB等の中継装置)を介して、接続されても良い。
(3)上記実施の形態では、車載ネットワークが第1ネットワーク(制御系ネットワーク)及び第2ネットワーク(情報系ネットワーク)を含み、第1ネットワークは、CANプロトコルに従ってCANバスでCANフレーム(データフレーム)の伝送が行われるものとし、第2ネットワークは、Ethenet(登録商標)プロトコルに従ってEフレーム(Ethernet(登録商標)フレーム)の伝送が行われるものとした。このCANプロトコルは、オートメーションシステム内の組み込みシステム等に用いられるCANOpen、或いは、TTCAN(Time-Triggered CAN)、CANFD(CAN with Flexible Data Rate)等の派生的なプロトコルを包含する広義の意味のものと扱われることとしても良い。また、CANプロトコルにおけるデータフレームは、標準IDフォーマットの他、拡張IDフォーマットであっても良い。また、Ethernet(登録商標)フレームは、例えばEthernet(登録商標)バージョン2のフレームであっても良いし、IEEE802.3で規定されたフレームであっても良い。また、Ethernet(登録商標)プロトコルは、IEEE802.1に係るEthernet(登録商標)AVB(Audio Video Bridging)、或いは、IEEE802.1に係るEthernet(登録商標)TSN(Time Sensitive Networking)、Ethernet(登録商標)/IP(Industrial Protocol)、EtherCAT(登録商標)(Ethernet(登録商標) for Control Automation Technology)等の派生的なプロトコルを包含する広義の意味のものと扱われることとしても良い。また、第1ネットワークは、第1通信プロトコルに従ってバスで第1種フレーム(例えばCANフレーム等)の伝送が行われるものであり、第2ネットワークは、第1通信プロトコルとは異なる第2通信プロトコルに従って第2種フレーム(例えばEフレーム等)の伝送が行われるものであることとしても良い。この場合において、第1通信プロトコルは、例えばCANプロトコルであるが、CANプロトコルに限られず、例えばLIN(Local Interconnect Network)、MOST(登録商標)(Media Oriented Systems Transport)、FlexRay(登録商標)等であっても良い。また、第2通信プロトコルは、例えばEthernet(登録商標)プロトコルであるが、Ethernet(登録商標)プロトコルに限られず、例えばブローダーリーチプロトコル等であっても良い。この第1ネットワークと第2ネットワークとを含む車載ネットワークにより、上述のHUB等を介して、第1ネットワークに接続されたECU等(例えばC−ECU)が送信した情報が、第2ネットワークに接続されたECU等(例えばE−ECU)に伝達され得るし、逆に、第2ネットワークに接続されたECU等が送信した情報が、第1ネットワークに接続されたECU等に伝達され得る。なお、上記実施の形態で示したEthernet(登録商標)は、CANに対して1フレームで伝送できるデータ量が多い。この点で、第2通信プロトコルは、第1通信プロトコルに対して1フレームで伝送できるデータ量が多い各種プロトコルであることとしても良い。
(4)上記実施の形態で示した受信バッファ(受信バッファ120a、120b、220a、220b)に格納されるCANフレーム或いはEフレームの内容は、データ(CANフレームのデータフィールドの内容或いはEthernet(登録商標)フレームのペイロードの内容)に限られることはなく、その内容は、CANフレーム或いはEフレームのいかなる部分の情報を含むものであっても良い。また送信バッファ(送信バッファ140a、140b、240a、240b)に格納されるデータも、送信されるべきCANフレーム或いはEフレームの全体の内容に相当するデータであっても良い。このように、送信されるべきCANフレームの全体の内容を送信バッファに格納することとした場合においても、送信部150、250は、CANの制御系ネットワークの一部に異常が発生しているときには、そのCANフレームの内容をペイロード等に含むEフレームを構築して情報系ネットワークへと送信し得る。
(5)上記実施の形態で示した各種処理の手順(例えば図9〜図19に示した手順等)の実行順序は、必ずしも、上述した通りの順序に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えたり、複数の手順を並列に行ったり、その手順の一部を省略したりすることができる。
(6)上記実施の形態におけるHUB、E−HUB、ECU(E−ECU、C−ECU及びX−ECU)等の装置は、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいても良い。また、メモリに記憶されたプログラムがプロセッサにより実行されてソフトウェア的にその装置の機能を実現するものであっても良いし、専用のハードウェア(デジタル回路等)によりその機能を実現するものであっても良い。また、その装置内の各構成要素の機能分担は変更可能である。
(7)上記実施の形態で示したHUB(例えばHUB200等)は、例えば、送信バッファに係る優先度を示す情報を参照せずに、優先情報における受信バッファに係る優先度を示す情報を参照することで、優先受信バッファから優先的にデータを読み出したらそのデータを直ちに転送するような制御を行うこととしても良い。即ち、第1通信プロトコルに従ってバスで車両の走行制御に係る第1種フレームの伝送が行われる第1ネットワークと、第1通信プロトコルとは異なる第2通信プロトコルに従って第2種フレームの伝送が行われる第2ネットワークとを含む車載ネットワークシステムにおいて第1ネットワークの前記バスと第2ネットワークとに接続されるHUBは、第1受信バッファと、第2受信バッファと、前記バスから第1種フレームを逐次受信して当該第1種フレーム内のデータを前記第1受信バッファに格納する第1受信部と、第2ネットワークから第2種フレームを逐次受信して当該第2種フレーム内のデータを前記第2受信バッファに格納する第2受信部と、前記第1受信バッファ及び前記第2受信バッファのいずれかからデータを読み出した際に当該データの宛先が第1ネットワークか第2ネットワークかを選定する選定部と、前記選定部によりデータの宛先が選定された際に当該宛先に当該データを含むフレームを送信する送信部とを備え、前記選定部は、前記第1受信バッファと前記第2受信バッファとのうちの一方である優先受信バッファ中の未読出のデータを、他方である非優先受信バッファ中の未読出のデータより優先して読み出すように優先読出制御を行う。このHUBによれば、第1ネットワークと第2ネットワークとのそれぞれの特性を踏まえて、優先受信バッファを適切に定めておけば、優先読出制御によってデータの伝送が適切に行われ得る。
(8)上記実施の形態における各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全部を含むように1チップ化されても良い。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
(9)上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしても良い。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしても良い。
(10)本発明の一態様としては、例えば図9〜図19等に示す処理手順の全部又は一部を含む通信方法或いは転送方法であるとしても良い。例えば、通信方法は、第1通信プロトコル(例えばCAN)に従ってバスで車両の走行制御に係る第1種フレーム(例えばCANフレーム)の伝送が行われる第1ネットワークと、第1通信プロトコルとは異なる第2通信プロトコル(例えばEthernet(登録商標))に従って第2種フレーム(例えばEフレーム)の伝送が行われる第2ネットワークとを含む車載ネットワークシステムにおいて第1ネットワークのバスと第2ネットワークとに接続され、第1受信バッファ(受信バッファ120a)と第2受信バッファ(受信バッファ120b)と第1送信バッファ(送信バッファ140a)と第2送信バッファ(送信バッファ140b)とを備えるECU(例えばX−ECU100)で用いられる通信方法であって、そのバスから第1種フレームを逐次受信してその第1種フレーム内のデータを第1受信バッファに格納する第1受信ステップ(例えば受信部110aによる処理)と、第2ネットワークから第2種フレームを逐次受信してその第2種フレーム内のデータを第2受信バッファに格納する第2受信ステップ(例えば受信部110bによる処理)と、第1受信バッファ及び第2受信バッファの内容を参照することで車両の走行制御用のデータである第1種データ(例えば制御系データ)と車両の走行制御以外に用いられるデータである第2種データ(例えば情報系データ)とを逐次生成して、生成した第1種データを第1送信バッファに格納し、生成した第2種データを第2送信バッファに格納する生成ステップ(例えばステップS1、S2)と、第1送信バッファ中の未送信の第1種データと第2送信バッファ中の未送信の第2種データとを送信する送信ステップ(例えばステップS3)とを含み、送信ステップでは、第1種データと第2種データとのうちの一方である優先種データを、他方である非優先種データより優先して送信するように優先送信制御を行う方法である。また、例えば、転送方法は、第1通信プロトコルに従ってバスで車両の走行制御に係る第1種フレームの伝送が行われる第1ネットワークと、第1通信プロトコルとは異なる第2通信プロトコルに従って第2種フレームの伝送が行われる第2ネットワークとを含む車載ネットワークシステムにおいて第1ネットワークのバスと第2ネットワークとに接続され、第1受信バッファ(受信バッファ220a)と第2受信バッファ(受信バッファ220b)と第1送信バッファ(送信バッファ240a)と第2送信バッファ(送信バッファ240b)とを備えるHUB(例えばHUB200等)で用いられる転送方法であって、そのバスから第1種フレームを逐次受信してその第1種フレーム内のデータを第1受信バッファに格納する第1受信ステップ(例えば受信部210aによる処理)と、第2ネットワークから第2種フレームを逐次受信してその第2種フレーム内のデータを第2受信バッファに格納する第2受信ステップ(例えば受信部210bによる処理)と、第1受信バッファ及び第2受信バッファのいずれかの内容であるデータの宛先が第1ネットワークか第2ネットワークかを選定して、第1ネットワークを選定した場合にはそのデータを第1送信バッファに格納し、第2ネットワークを選定した場合にはそのデータを第2送信バッファに格納する選定ステップ(例えばステップS1、S4)と、第1送信バッファ中の未送信のデータと第2送信バッファ中の未送信のデータとを送信する送信ステップ(例えばステップS3)とを含み、送信ステップでは、第1送信バッファと第2送信バッファとのうちの一方である優先送信バッファ中の未送信のデータを、他方である非優先送信バッファ中の未送信のデータより優先して送信するように優先送信制御を行う方法である。また、この方法をコンピュータにより実現するプログラム(コンピュータプログラム)であるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
(11)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。