(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-17
(45)【発行日】2022-03-28
(54)【発明の名称】通信装置、送信方法及びコンピュータプログラム
(51)【国際特許分類】
H04L 12/46 20060101AFI20220318BHJP
H04L 12/28 20060101ALI20220318BHJP
【FI】
H04L12/46 D
H04L12/28 100A
(21)【出願番号】P 2018164662
(22)【出願日】2018-09-03
【審査請求日】2021-03-30
(73)【特許権者】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(73)【特許権者】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(73)【特許権者】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】咸 元俊
(72)【発明者】
【氏名】萩原 剛志
(72)【発明者】
【氏名】真下 誠
(72)【発明者】
【氏名】藪内 靖弘
(72)【発明者】
【氏名】松本 真
(72)【発明者】
【氏名】神田 一郎
(72)【発明者】
【氏名】岩田 章人
(72)【発明者】
【氏名】川内 偉博
【審査官】鈴木 肇
(56)【参考文献】
【文献】特開2017-005617(JP,A)
【文献】特開2000-295255(JP,A)
【文献】特開平10-056470(JP,A)
【文献】特開2008-005290(JP,A)
【文献】特開平07-240756(JP,A)
【文献】特開平09-326818(JP,A)
【文献】特開2017-188793(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-13/18
H04L 41/00-49/9057
(57)【特許請求の範囲】
【請求項1】
複数の装置に接続される通信バスを介した複数のデータの同時送信を検知する検知部と、
所定時間内に前記同時送信を検知した回数が所定回数未満である場合に前記通信バスを介したデータの送信を開始する第1送信部と、
前記所定時間内に前記同時送信を検知した回数が前記所定回数以上である場合に、前記通信バスとは異なる通信線を介して前記複数の装置中の1つにデータを送信する第2送信部と
を備え
、
前記通信バスを介して前記同時送信が開始された場合、同時に送信されている複数のデータ中の1つを除く他のデータの送信元の装置は、データの送信を停止し、
前記複数の装置には、前記通信バスとは異なる通信線に未接続である未接続装置が含まれ、
前記第1送信部が前記通信線を介した送信先への送信が可能なデータの送信を開始したことによって、前記通信バスを介して複数のデータが同時に送信された場合にて、同時に送信された複数のデータに、送信元が前記未接続装置であるか、又は、送信先が前記未接続装置であるデータが含まれるとき、前記第1送信部はデータの送信を停止する
通信装置。
【請求項2】
前記第2送信部は、前記第1送信部が前記通信バスを介したデータの送信を停止した場合、前記通信線を介して、前記第1送信部が送信を停止したデータを送信する
請求項
1に記載の通信装置。
【請求項3】
前記第2送信部は、共通のデータについて、前記第1送信部が前記通信バスを介した送信を停止した回数が第2の所定回数以上となった場合、前記通信線を介して、前記第1送信部が送信を停止した共通のデータを送信し、
前記第2の所定回数は2以上である
請求項2に記載の通信装置。
【請求項4】
前記通信バスを介した通信で用いられるプロトコルは、前記通信線を介した通信で用いられるプロトコルと異なる
請求項1から
請求項3のいずれか1つに記載の通信装置。
【請求項5】
前記第2送信部の数は、前記第1送信部から前記通信バスを介してデータを受信する装置の数よりも少ない
請求項1から
請求項4のいずれか1つに記載の通信装置。
【請求項6】
前記通信バスに接続される前記複数の装置とは異なる第2の装置からデータを受信する受信部を備え、
前記第1送信部及び第2送信部は、前記受信部が受信したデータを送信する
請求項1から
請求項5のいずれか1つに記載の通信装置。
【請求項7】
複数の装置に接続される通信バスを介した複数のデータの同時送信を検知するステップと、
所定時間内に前記同時送信を検知した回数が所定回数未満である場合に前記通信バスを介してデータを送信するステップと、
前記所定時間内に前記同時送信を検知した回数が前記所定回数以上である場合に、前記通信バスとは異なる通信線を介して前記複数の装置中の1つにデータを送信するステップと
、
前記通信バスを介したデータの送信を停止するステップと
を含
み、
前記通信バスを介して前記同時送信が開始された場合、同時に送信されている複数のデータ中の1つを除く他のデータの送信元の装置は、データの送信を停止し、
前記複数の装置には、前記通信バスとは異なる通信線に未接続である未接続装置が含まれ、
前記通信線を介した送信先への送信が可能なデータの前記通信バスを介した送信を開始したことによって、前記通信バスを介して複数のデータが同時に送信された場合にて、同時に送信された複数のデータに、送信元が前記未接続装置であるか、又は、送信先が前記未接続装置であるデータが含まれるとき、前記通信バスを介したデータの送信が停止される
送信方法。
【請求項8】
コンピュータに、
複数の装置に接続される通信バスを介した複数のデータの同時送信を検知するステップと、
所定時間内に前記同時送信を検知した回数が所定回数未満である場合に前記通信バスを介したデータの送信を指示するステップと、
前記所定時間内に前記同時送信を検知した回数が前記所定回数以上である場合に、前記通信バスとは異なる通信線を介した前記複数の装置中の1つへのデータの送信を指示するステップと
、
前記通信バスを介したデータの送信を停止するステップと
を実行させるため
に用いられ、
前記通信バスを介して前記同時送信が開始された場合、同時に送信されている複数のデータ中の1つを除く他のデータの送信元の装置は、データの送信を停止し、
前記複数の装置には、前記通信バスとは異なる通信線に未接続である未接続装置が含まれ、
前記通信線を介した送信先への送信が可能なデータの前記通信バスを介した送信を開始したことによって、前記通信バスを介して複数のデータが同時に送信された場合にて、同時に送信された複数のデータに、送信元が前記未接続装置であるか、又は、送信先が前記未接続装置であるデータが含まれるとき、前記通信バスを介したデータの送信が停止される
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は通信装置、送信方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
車両には、複数の通信装置が通信バスを介してデータを相互に送信する通信システム(例えば、特許文献1を参照)が搭載されている。特許文献1に記載の通信システムでは、通信バスを介した通信は、例えば、CAN(Controller Area Network)のプロトコルに従って行われる。
【0003】
CANのプロトコルに従った通信では、複数の通信装置夫々は、送信先の装置に通知すべき内容を示すメインデータを含むデータフレームを送信することによって、メインデータを送信する。データフレームには、送信に係る優先度を示すサブデータが更に含まれる。通信バスを介して複数のデータフレームの同時送信が開始された場合、複数のデータフレームの中で優先度が最も高いデータフレームの送信は継続され、他のデータフレームの送信は停止する。優先度が低いデータフレームの送信は、優先度が高いデータフレームの送信が完了した後に再び開始される。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の通信システムでは、通信バスの通信負荷、即ち、通信バスを介してデータフレームが送信されている送信時間が単位時間当たりに占める割合が大きい場合、優先度が低いデータフレームのメインデータの送信に係る所要時間は長い。従って、通信負荷が大きい場合、優先度が低いデータフレームのメインデータに基づく処理が適切なタイミングで実行されない可能性がある。
【0006】
例えば、通信負荷が大きい状況で車両の窓の開放を指示するメインデータを含むデータフレームが送信されたと仮定する。ここで、このデータフレームの優先度が低い場合、データフレームが停滞し、窓の開放にかかる時間が長く、乗員に不快感を与える可能性がある。
【0007】
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、データの送信に係る所要時間が短い通信装置、送信方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0008】
本発明の一態様に係る通信装置は、複数の装置に接続される通信バスを介した複数のデータの同時送信を検知する検知部と、所定時間内に前記同時送信を検知した回数が所定回数未満である場合に前記通信バスを介したデータの送信を開始する第1送信部と、前記所定時間内に前記同時送信を検知した回数が前記所定回数以上である場合に、前記通信バスとは異なる通信線を介して前記複数の装置中の1つにデータを送信する第2送信部とを備え、前記通信バスを介して前記同時送信が開始された場合、同時に送信されている複数のデータ中の1つを除く他のデータの送信元の装置は、データの送信を停止し、前記複数の装置には、前記通信バスとは異なる通信線に未接続である未接続装置が含まれ、前記第1送信部が前記通信線を介した送信先への送信が可能なデータの送信を開始したことによって、前記通信バスを介して複数のデータが同時に送信された場合にて、同時に送信された複数のデータに、送信元が前記未接続装置であるか、又は、送信先が前記未接続装置であるデータが含まれるとき、前記第1送信部はデータの送信を停止する。
【0009】
本発明の一態様に係る送信方法は、複数の装置に接続される通信バスを介した複数のデータの同時送信を検知するステップと、所定時間内に前記同時送信を検知した回数が所定回数未満である場合に前記通信バスを介してデータを送信するステップと、前記所定時間内に前記同時送信を検知した回数が前記所定回数以上である場合に、前記通信バスとは異なる通信線を介して前記複数の装置中の1つにデータを送信するステップと、前記通信バスを介したデータの送信を停止するステップとを含み、前記通信バスを介して前記同時送信が開始された場合、同時に送信されている複数のデータ中の1つを除く他のデータの送信元の装置は、データの送信を停止し、前記複数の装置には、前記通信バスとは異なる通信線に未接続である未接続装置が含まれ、前記通信線を介した送信先への送信が可能なデータの前記通信バスを介した送信を開始したことによって、前記通信バスを介して複数のデータが同時に送信された場合にて、同時に送信された複数のデータに、送信元が前記未接続装置であるか、又は、送信先が前記未接続装置であるデータが含まれるとき、前記通信バスを介したデータの送信が停止される。
【0010】
本発明の一態様に係るコンピュータプログラムは、コンピュータに、複数の装置に接続される通信バスを介した複数のデータの同時送信を検知するステップと、所定時間内に前記同時送信を検知した回数が所定回数未満である場合に前記通信バスを介したデータの送信を指示するステップと、前記所定時間内に前記同時送信を検知した回数が前記所定回数以上である場合に、前記通信バスとは異なる通信線を介した前記複数の装置中の1つへのデータの送信を指示するステップと、前記通信バスを介したデータの送信を停止するステップとを実行させるために用いられ、前記通信バスを介して前記同時送信が開始された場合、同時に送信されている複数のデータ中の1つを除く他のデータの送信元の装置は、データの送信を停止し、前記複数の装置には、前記通信バスとは異なる通信線に未接続である未接続装置が含まれ、前記通信線を介した送信先への送信が可能なデータの前記通信バスを介した送信を開始したことによって、前記通信バスを介して複数のデータが同時に送信された場合にて、同時に送信された複数のデータに、送信元が前記未接続装置であるか、又は、送信先が前記未接続装置であるデータが含まれるとき、前記通信バスを介したデータの送信が停止される。
【0011】
なお、本発明を、このような特徴的な処理部を備える通信装置として実現することができるだけでなく、かかる特徴的な処理をステップとする送信方法として実現したり、かかるステップをコンピュータに実行させるためのコンピュータプログラムとして実現したりすることができる。また、本発明を、通信装置の一部又は全部を実現する半導体集積回路として実現したり、通信装置を含む通信システムとして実現したりすることができる。
【発明の効果】
【0012】
上記の態様によれば、データの送信に係る所要時間が短い。
【図面の簡単な説明】
【0013】
【
図1】実施形態1における通信システムの要部構成を示すブロック図である。
【
図3】中継装置の要部構成を示すブロック図である。
【
図4】第1中継データ記憶処理の手順を示すフローチャートである。
【
図5】第1中継データ送信処理の手順を示すフローチャートである。
【
図6】第1中継データ送信処理の手順を示すフローチャートである。
【
図8】高機能ECUの要部構成を示すブロック図である。
【
図9】制御データ記憶処理の手順を示すフローチャートである。
【
図10】送信データ記憶処理の手順を示すフローチャートである。
【
図11】送信データ送信処理の手順を示すフローチャートである。
【
図12】送信データ送信処理の手順を示すフローチャートである。
【
図13】実施形態2におけるCAN用のデータフレームの説明図である。
【
図14】第1中継データ記憶処理の手順を示すフローチャートである。
【
図15】第1中継データ送信処理の手順を示すフローチャートである。
【
図16】第1中継データ送信処理の手順を示すフローチャートである。
【
図17】制御データ記憶処理の手順を示すフローチャートである。
【
図18】送信データ記憶処理の手順を示すフローチャートである。
【
図19】送信データ送信処理の手順を示すフローチャートである。
【
図20】送信データ送信処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0014】
[本発明の実施形態の説明]
最初に本発明の実施態様を列挙して説明する。以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0015】
(1)本発明の一態様に係る通信装置は、複数の装置に接続される通信バスを介した複数のデータの同時送信を検知する検知部と、所定時間内に前記同時送信を検知した回数が所定回数未満である場合に前記通信バスを介したデータの送信を開始する第1送信部と、前記所定時間内に前記同時送信を検知した回数が前記所定回数以上である場合に、前記通信バスとは異なる通信線を介して前記複数の装置中の1つにデータを送信する第2送信部とを備える。
【0016】
(2)本発明の一態様に係る通信装置では、前記通信バスを介して前記同時送信が開始された場合、同時に送信されている複数のデータ中の1つを除く他のデータの送信元の装置は、データの送信を停止する。
【0017】
(3)本発明の一態様に係る通信装置では、前記第2送信部は、前記第1送信部が前記通信バスを介したデータの送信を停止した場合、前記通信線を介して、前記第1送信部が送信を停止したデータを送信する。
【0018】
(4)本発明の一態様に係る通信装置では、前記第2送信部は、共通のデータについて、前記第1送信部が前記通信バスを介した送信を停止した回数が第2の所定回数以上となった場合、前記通信線を介して、前記第1送信部が送信を停止した共通のデータを送信し、前記第2の所定回数は2以上である。
【0019】
(5)本発明の一態様に係る通信装置では、前記通信バスを介した通信で用いられるプロトコルは、前記通信線を介した通信で用いられるプロトコルと異なる。
【0020】
(6)本発明の一態様に係る通信装置では、前記第2送信部の数は、前記第1送信部から前記通信バスを介してデータを受信する装置の数よりも少ない。
【0021】
(7)本発明の一態様に係る通信装置は、前記通信バスに接続される前記複数の装置とは異なる第2の装置からデータを受信する受信部を備え、前記第1送信部及び第2送信部は、前記受信部が受信したデータを送信する。
【0022】
(8)本発明の一態様に係る送信方法は、複数の装置に接続される通信バスを介した複数のデータの同時送信を検知するステップと、所定時間内に前記同時送信を検知した回数が所定回数未満である場合に前記通信バスを介してデータを送信するステップと、前記所定時間内に前記同時送信を検知した回数が前記所定回数以上である場合に、前記通信バスとは異なる通信線を介して前記複数の装置中の1つにデータを送信するステップとを含む。
【0023】
(9)本発明の一態様に係るコンピュータプログラムは、コンピュータに、複数の装置に接続される通信バスを介した複数のデータの同時送信を検知するステップと、所定時間内に前記同時送信を検知した回数が所定回数未満である場合に前記通信バスを介したデータの送信を指示するステップと、前記所定時間内に前記同時送信を検知した回数が前記所定回数以上である場合に、前記通信バスとは異なる通信線を介した前記複数の装置中の1つへのデータの送信を指示するステップとを実行させる。
【0024】
上記の一態様に係る通信装置、送信方法及びコンピュータプログラムにあっては、所定時間内に通信バスを介して同時送信が行われた回数が多い場合、通信バスの通信負荷が大きいので、通信線を介してデータを送信する。このため、データが長期間停滞することなく、データの送信に係る所有時間が短い。
【0025】
上記の一態様に係る通信装置にあっては、通信バスを介した複数のデータの同時送信が開始された場合、同時に送信されている複数のデータ中の1つを除く他のデータの送信元の装置は送信を停止する。複数のデータ中の1つの送信元の装置は送信を継続する。これにより、通信バスを介して適切な通信が行われる。
【0026】
上記の一態様に係る通信装置にあっては、所定時間内に同時送信を検知した回数が所定回数未満である場合、通信バスを介したデータの送信を開始する。例えば、通信バスを介してデータの送信を開始した場合において、同時送信が開始されたとき、通信バスを介したデータの送信を停止する可能性がある。通信バスを介したデータの送信を停止した場合、送信を停止したデータを、通信線を介して送信する。従って、データの送信に係る所要時間が更に短い。
【0027】
上記の一態様に係る通信装置にあっては、共通のデータについて、通信バスを介した送信を停止した回数が第2の所定回数となった場合、送信を停止した共通のデータを、通信線を介して送信する。従って、通信バスを介してデータが送信される頻度が適当な値に調整される。
【0028】
上記の一態様に係る通信装置にあっては、通信バスを介した通信では例えばCANのプロトコルが用いられる。一方で、通信線を介した通信では、例えば、イーサネット(登録商標)のプロトコルが用いられる。
【0029】
上記の一態様に係る通信装置にあっては、通信バス及び通信線に接続される高機能な装置の数が少ない。このため、製造費用が安価である。
【0030】
上記の一態様に係る通信装置にあっては、第2の装置から受信したデータを、通信バスに接続される装置に送信する。
【0031】
[本発明の実施形態の詳細]
本発明の実施形態に係る通信システムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0032】
(実施形態1)
図1は、実施形態1における通信システムNの要部構成を示すブロック図である。通信システムNは車両100に好適に搭載されている。通信システムNは、4つの高機能ECU(Electronic Control Unit)10,20、6つの低機能ECU11,21、第1通信バス12、2つの第1通信線13、第2通信バス22、2つの第2通信線23及び中継装置30を備える。
【0033】
2つの高機能ECU10及び3つの低機能ECU11は第1通信バス12に接続されている。2つの高機能ECU20及び3つの低機能ECU21は第2通信バス22に接続されている。第1通信バス12及び第2通信バス22は、更に、中継装置30に接続されている。2つの高機能ECU10夫々は、更に、第1通信線13に接続されている。2つの高機能ECU20夫々は、更に、第2通信線23に接続されている。中継装置30は、2つの第1通信線13及び2つの第2通信線23に接続されている。
【0034】
高機能ECU10,20及び低機能ECU11,21夫々は、車両100に搭載された電気機器に関する制御を行う。高機能ECU10,20及び低機能ECU11,21は、通信装置として機能し、相互に通信する。これにより、4つの高機能ECU10,20及び6つの低機能ECU11,21中の少なくとも2つは協調動作を行う。
【0035】
例えば、車両100のドアのドアノブを人物が接触した場合、低機能ECU11に、ドアの解錠を指示するデータが入力される。低機能ECU11は、高機能ECU20にこのデータを送信する。高機能ECU20は、ドアの解錠を指示するデータを受信した場合、ドアを解錠するドアモータを駆動する駆動機に、受信したデータを出力する。これにより、ドアが解錠される。
【0036】
中継装置30は、2つの高機能ECU20及び3つの低機能ECU21中の1つから受信したデータを、2つの高機能ECU10及び3つの低機能ECU11中の少なくとも1つに送信する。同様に、中継装置30は、2つの高機能ECU10及び3つの低機能ECU11中の1つから受信したデータを、2つの高機能ECU20及び3つの低機能ECU21中の少なくとも1つに送信する。中継装置30も通信装置として機能する。
【0037】
通信システムNでは、送信先である装置に通知すべき内容を示すメインデータを含むデータフレームを送信することによって、メインデータを送信する。メインデータは、例えば、ドアの解錠を指示するデータである。データフレームには、メインデータの他に種々のサブデータが含まれる。サブデータは、メインデータを識別するための識別データ、送信元の装置を示す送信元データ、又は、送信先の装置を示す送信先データ等である。データフレームは、「1」又は「0」を示す複数のビットデータによって構成される。
【0038】
2つの高機能ECU10、3つの低機能ECU11及び中継装置30は、第1通信バス12を介して相互に通信する。第1通信バス12に接続されている装置中の1つが送信したデータフレームは、第1通信バス12に接続されている全ての装置によって受信される。2つの高機能ECU10、3つの低機能ECU11及び中継装置30夫々は、他の装置が送信したデータフレームだけではなく、自装置が送信したデータフレームも受信する。
【0039】
第1通信バス12を介した通信では、CANのプロトコルが用いられる。第1通信バス12は、ツイストペアケーブルであり、撚り合された2つの導線を含む。2つの導線間の電圧差を、ゼロVを超える所定電圧に調整することによってドミナントを送信する。2つの導線間の電圧差をゼロVに調整することによってレセッシブを送信する。第1通信バス12を介してドミナント及びレセッシブが同時に出力された場合、第1通信バス12に含まれる2つの導線間の電位差は所定電圧であり、第1通信バス12はドミナントを示す。
【0040】
ドミナントは、ビットデータの「1」又は「0」に対応する。ドミナントが「1」に対応する場合、レセッシブは「0」に対応する。ドミナントが「0」に対応する場合、レセッシブは「1」に対応する。
以下では、ドミナント及びレセッシブ夫々は、「1」及び「0」を示すと仮定する。従って、「1」を示すビットデータと、「0」を示すビットデータとが同時に送信された場合、「1」を示すビットデータが受信される。
【0041】
図2は、CAN用のデータフレームの説明図である。CAN用のデータフレームでは、SOF(Start Of Frame)フィールド、ID(Identification Data)フィールド、データフィールド、衝突通知フィールド及びEOF(End Of Frame)フィールド等が設けられている。データフィールドにメインデータが含まれる。データフィールドとは異なるフィールドにサブデータが含まれる。
【0042】
SOFフィールド及びEOFフィールド夫々に含まれるサブデータは、データフレームの開始及び終了を示す。SOFフィールド及びEOFフィールドを構成する一又は複数のビットデータの値は、CAN用の全てのデータフレームで共通である。IDフィールドに含まれるサブデータは、データフィールドに含まれるメインデータを識別するための識別データであり、複数のビットデータで構成される。
【0043】
第1通信バス12を介して複数のデータフレームの同時送信が開始された場合、複数のデータフレームのIDフィールドに含まれるサブデータに基づいて調停が行われる。これにより、同時に送信された複数のデータフレーム中の1つを除く他のデータフレームの送信元である装置は、データフレームの送信を停止する。
【0044】
なお、複数のデータフレームの同時送信は、複数のデータフレームが同時に送信されることを意味する。また、同時送信の「同時」は、複数のデータフレームが送信される複数の時点が完全に一致している状態だけではなく、1つのビットデータの期間中に複数のデータフレームの送信が開始された状態も示す。同時送信が行われることを衝突と呼ぶ。
【0045】
第1通信バス12に接続される装置は、第1通信バス12を介してデータフレームを送信する場合、送信したビットデータの値を、受信したビットデータの値と照合する。前述したように、「1」(ドミナント)を示すビットデータと、「0」(レセッシブ)を示すビットデータとが同時に送信された場合、「1」を示すビットデータが受信される。従って、第1通信バス12に接続される装置は、「0」を示すビットデータを送信したにも関わらず、「1」を示すビットデータを受信した場合、複数のデータフレームの衝突を検出する。「1」を示すビットデータを送信した装置は、衝突を検出することはない。
【0046】
衝突を検出した装置は、第1通信バス12を介したデータフレームの送信を停止する。従って、第1通信バス12を介して、複数のデータフレームの同時送信が開始された場合、即ち、衝突が発生した場合、同時に送信された複数のデータフレーム中の1つを除く他のデータフレームの送信元である装置は、データフレームの送信を停止する。同時に送信された複数のデータフレーム中の1つの送信元である装置は送信を継続する。これにより、第1通信バス12を介して適切な通信が行われる。
【0047】
前述した調停は、IDフィールドに含まれる複数のビットデータが送信されている間に実行される。前述したように、「1」を示すビットデータと、「0」を示すビットデータとが同時に送信された場合、「1」を示すビットデータが受信される。従って、IDフィールドに含まれる識別データを2進数の数値とみなした場合、この数値が大きい程、データフレームの送信に係る優先度は大きい。同時に送信された複数のデータフレームの中で優先度が最も大きいデータフレームの送信元である装置が送信を継続し、他のデータフレームの送信元である装置は送信を停止する。
【0048】
図2に示すCAN用のデータフレームの衝突通知フィールドは、1つのビットデータによって構成される。第1通信バス12を介した複数のデータフレームの同時送信が開始された場合において、送信を継続した装置は、送信中のデータフレームの衝突通知フィールドでは、「0」(レセッシブ)を示すビットデータを送信する。送信を停止した装置は、他の装置が送信しているデータフレームの衝突通知フィールドで「1」(ドミナント)を示すビットデータを送信する。このとき、衝突通知フィールドのビットデータは「1」(ドミナント)を示す。これにより、第1通信バス12に接続されている全ての装置に衝突の発生が通知され、これらの装置は衝突を検知する。
【0049】
第1通信バス12を介して送信されたデータフレームの数が1である場合、衝突通知フィールドのビットデータは「0」を示す。これにより、衝突が発生していないことが、第1通信バス12に接続されている全ての装置に通知される。
【0050】
高機能ECU10、低機能ECU11及び中継装置30夫々は、第1通信バス12を介してデータフレームを受信した場合、受信したデータフレームのIDフィールドに含まれる識別データに基づいて、受信したデータフレームのデータフィールドに含まれるメインデータを記憶するか否かを判定する。高機能ECU10、低機能ECU11及び中継装置30夫々は、メインデータを記憶すると判定した場合、メインデータを記憶し、メインデータを記憶しないと判定した場合、受信したデータフレームを無視する。
【0051】
2つの高機能ECU20、3つの低機能ECU21及び中継装置30は、第2通信バス22を介して相互に通信する。第2通信バス22を介した通信は、第1通信バス12を介した通信と同様である。従って、第2通信バス22を介した通信では、CANのプロトコルが用いられる。第2通信バス22は、ツイストペアケーブルであり、撚り合された2つの導線を含む。
【0052】
第2通信バス22を介した通信でも、
図2に示すCAN用のデータフレームが用いられる。第2通信バス22を介した複数のデータフレームの同時送信が開始された場合、第1通信バス12を介した通信と同様に調停が行われる。第2通信バス22を介して、複数のデータフレームの同時送信が開始された場合、同時に送信された複数のデータフレーム中の1つを除く他のデータフレームの送信元である装置は、データフレームの送信を停止する。同時に送信された複数のデータフレーム中の1つの送信元である装置は送信を継続する。これにより、第2通信バス22を介して適切な通信が行われる。IDフィールドに含まれるサブデータは、第2通信バス22を介したデータフレームの送信に係る優先度を示す。
【0053】
第2通信バス22を介した複数のデータフレームの同時送信が開始された場合、送信が継続されたデータフレームの衝突通知フィールドのビットデータが「1」(ドミナント)を示し、第2通信バス22に接続されている全ての装置に衝突の発生が通知される。これらの装置は衝突を検知する。
【0054】
高機能ECU20、低機能ECU21及び中継装置30夫々は、第2通信バス22を介してデータフレームを受信した場合、受信したデータフレームのIDフィールドに含まれる識別データに基づいて、受信したデータフレームのデータフィールドに含まれるメインデータを記憶するか否かを判定する。高機能ECU20、低機能ECU21及び中継装置30夫々は、メインデータを記憶すると判定した場合、メインデータを記憶し、メインデータを記憶しないと判定した場合、受信したデータフレームを無視する。
【0055】
中継装置30は、第1通信線13を介して高機能ECU10と通信し、第2通信線23を介して高機能ECU20と通信する。第1通信線13及び第2通信線23夫々を介した通信では、イーサネット(登録商標)のプロトコルが用いられ、イーサネット用のデータフレームが送信される。イーサネット用のデータフレームには、メインデータの他に、データフレームの送信元の装置を示す送信元データ、及び、データフレームの送信先の装置を示す送信先データが含まれている。
【0056】
第1通信バス12を介した通信で用いるプロトコルは、第1通信線13を介した通信で用いるプロトコルと異なる。同様に、第2通信バス22を介した通信で用いるプロトコルは、第2通信線23を介した通信で用いるプロトコルと異なる。
【0057】
中継装置30は、第1通信線13を介して高機能ECU10にデータフレームを送信し、第2通信線23を介して高機能ECU20にデータフレームを送信する。高機能ECU10,20夫々は、第1通信線13及び第2通信線23を介してデータフレームを中継装置30に送信する。
【0058】
高機能ECU10及び中継装置30夫々は、第1通信線13を介してデータフレームを受信した場合、受信したデータフレームに含まれるメインデータを記憶する。高機能ECU20及び中継装置30夫々は、第2通信線23を介してデータフレームを受信した場合、受信したデータフレームに含まれるメインデータを記憶する。第1通信線13及び第2通信線23夫々を介した通信は、1対1の通信である。このため、第1通信線13及び第2通信線23夫々に接続される装置の数は2である。
【0059】
中継装置30は、自装置に記憶されているメインデータを送信することによって、メインデータの送信を中継する。高機能ECU10,20及び低機能ECU11,21夫々は、自装置に記憶されているメインデータに基づいて電気機器に関する制御を行う。
【0060】
図3は中継装置30の要部構成を示すブロック図である。中継装置30は、2つのCAN通信部40a,40b、4つのイーサネット通信部41a,41b、一時記憶部42、時計部43、記憶部44及び制御部45を有する。これらは、中継装置30内において、内部バス46に接続されている。CAN通信部40aは、更に、第1通信バス12に接続されている。イーサネット通信部41aは、更に、第1通信線13に接続されている。CAN通信部40bは、更に、第2通信バス22に接続されている。イーサネット通信部41bは、更に、第2通信線23に接続されている。
【0061】
CAN通信部40a,40b及びイーサネット通信部41a,41bは、インタフェースであり、制御部45の指示に従って、データフレームを送信する。具体的には、これらは、データフレームを構成する複数のビットデータを順次送信する。
【0062】
CAN通信部40aは、更に、制御部45の指示に従って、中継装置30とは異なる装置が第1通信バス12を介して送信しているデータフレームの衝突通知フィールドで「1」(ドミナント)を示すビットデータを送信する。CAN通信部40bは、更に、制御部45の指示に従って、中継装置30とは異なる装置が第2通信バス22を介して送信しているデータフレームの衝突通知フィールドで「1」を示すビットデータを送信する。
【0063】
CAN通信部40aは、第1通信バス12を介して送信された全てのデータフレームを受信する。イーサネット通信部41aは、自身に接続されている第1通信線13を介して高機能ECU10から送信されたデータフレームを受信する。CAN通信部40bは、第2通信バス22を介して送信された全てのデータフレームを受信する。イーサネット通信部41bは、自身に接続されている第2通信線23を介して高機能ECU20から送信されたデータフレームを受信する。制御部45は、CAN通信部40a,40b及びイーサネット通信部41a,41bが受信したデータフレームをこれらから取得する。
【0064】
制御部45は、データを一時記憶部42に記憶する。一時記憶部42では、データが一時的に記憶される。一時記憶部42に記憶されているデータは、制御部45によって一時記憶部42から読み出される。制御部45は、送信を中継する中継データを一時記憶部42に記憶する。また、制御部45は、中継データに対応付けて、送信を停止した送信停止回数を示す送信停止回数データを一時記憶部42に記憶する。送信停止回数データが示す回数は、自身に対応する中継データについて、CAN通信部40a,40b中の1つが送信を停止した回数を示す。
【0065】
制御部45は、更に、第1通信バス12において衝突が発生した日時を示す第1衝突時刻データと、第2通信バス22において衝突が発生した日時を示す第2衝突時刻データとを一時記憶部42に記憶する。一時記憶部42に記憶されているデータは、一時記憶部42への電力供給が停止した場合に消去される。
【0066】
制御部45は、時計部43から日時を示す日時データを取得する。制御部45が取得した日時データは、この日時データを取得した時点の日時を示す。
【0067】
記憶部44は不揮発性メモリである。記憶部44には、コンピュータプログラムP1が記憶されている。制御部45は、一又は複数のCPU(Central Processing Unit)を有する。制御部45が有する一又は複数のCPUは、コンピュータプログラムP1を実行することによって、第1中継データ記憶処理、第2中継データ記憶処理、第1中継データ送信処理及び第2中継データ送信処理を並行して実行する。
【0068】
第1中継データ記憶処理は、CAN通信部40a及びイーサネット通信部41aが受信したデータフレームに含まれるメインデータを、中継データとして一時記憶部42に記憶する処理である。第2中継データ記憶処理は、CAN通信部40b及びイーサネット通信部41bが受信したデータフレームに含まれるメインデータを、中継データとして一時記憶部42に記憶する処理である。
【0069】
第1中継データ送信処理は、第1通信バス12又は第1通信線13を介してデータフレームを送信する処理である。第2中継データ送信処理は、第2通信バス22又は第2通信線23を介してデータフレームを送信する処理である。
【0070】
コンピュータプログラムP1は、制御部45が有する一又は複数のCPUに、第1中継データ記憶処理、第2中継データ記憶処理、第1中継データ送信処理及び第2中継データ送信処理を実行させるために用いられる。
【0071】
なお、コンピュータプログラムP1は、制御部45が有する一又は複数のCPUが読み取り可能に、記憶媒体A1に記憶されていてもよい。この場合、図示しない読み出し装置によって記憶媒体A1から読み出されたコンピュータプログラムP1が記憶部44に記憶される。記憶媒体A1は、光ディスク、フレキシブルディスク、磁気ディスク、磁気光ディスク又は半導体メモリ等である。光ディスクは、CD(Compact Disc)-ROM(Read Only Memory)、DVD(Digital Versatile Disc)-ROM、又は、BD(Blu-ray(登録商標) Disc)等である。磁気ディスクは、例えばハードディスクである。また、図示しない通信網に接続されている図示しない外部装置からコンピュータプログラムP1をダウンロードし、ダウンロードしたコンピュータプログラムP1を記憶部44に記憶してもよい。
【0072】
図4は、第1中継データ記憶処理の手順を示すフローチャートである。制御部45は、第1中継データ記憶処理を周期的に実行する。制御部45は、まず、2つのイーサネット通信部41a中の1つが第1通信線13を介してデータフレームを受信したか否かを判定する(ステップS1)。制御部45は、第1通信線13を介してデータフレームを受信したと判定した場合(S1:YES)、イーサネット通信部41aが受信したデータフレームに含まれるメインデータを、中継データとして一時記憶部42に記憶する(ステップS2)。
【0073】
制御部45は、第1通信線13を介してデータフレームを受信していないと判定した場合(S1:NO)、CAN通信部40aが第1通信バス12を介してデータフレームを受信したか否かを判定する(ステップS3)。制御部45は、第1通信バス12を介してデータフレームを受信していないと判定した場合(S3:NO)、第1中継データ記憶処理を終了する。
【0074】
制御部45は、第1通信バス12を介してデータフレームを受信したと判定した場合(S3:YES)、CAN通信部40aが受信したデータフレームの衝突通知フィールドに含まれるビットデータの値に基づいて、第1通信バス12において衝突が発生したか否かを判定する(ステップS4)。前述したように、衝突が発生した場合、衝突通知フィールドのビットデータは「1」(ドミナント)を示す。衝突が発生していない場合、衝突通知フィールドのビットデータは「0」(レセッシブ)を示す。第1通信バス12における衝突の発生は、第1通信バス12を介して複数のデータフレームの同時送信が行われたことを意味する。
【0075】
制御部45は、ステップS4を実行することによって、第1通信バス12における衝突、即ち、第1通信バス12を介した複数のデータフレームの同時送信を検知する。具体的には、制御部45は、衝突通知フィールドのビットデータが「1」(ドミナント)を示す場合に衝突を検知する。制御部45は検知部として機能する。
【0076】
ステップS4において制御部45が検知する同時送信は、中継装置30と、2つの高機能ECU10及び3つの低機能ECU11中の少なくとも1つとが行った同時送信だけではない。ステップS4において、制御部45は、2つの高機能ECU10及び3つの低機能ECU11中の少なくとも2つが行った同時送信も検知する。前述したように、第1通信バス12に接続されている装置の1つが送信したデータフレームは、第1通信バス12に接続されている全ての装置によって受信される。このため、第1通信バス12を介して行われた全ての同時送信を検知することができる。
【0077】
制御部45は、第1通信バス12において衝突が発生したと判定した場合、即ち、第1通信バス12を介した複数のデータフレームの同時送信を検知した場合(S4:YES)、時計部43から日時データを取得する(ステップS5)。次に、制御部45は、ステップS5で取得した日時データを第1衝突時刻データとして一時記憶部42に記憶する(ステップS6)。
【0078】
制御部45は、第1通信バス12において衝突が発生していないと判定した場合(S4:NO)、又は、ステップS6を実行した後、CAN通信部40aが受信したデータフレームに含まれるメインデータについて送信の中継が必要であるか否かを判定する(ステップS7)。記憶部44には、送信を中継する必要があるメインデータに対応する複数の識別データが記憶されている。
【0079】
ステップS7において、制御部45は、CAN通信部40aが受信したデータフレームのIDフィールドに含まれている識別データが、記憶部44に記憶されている複数の識別データ中の1つと一致した場合、中継が必要であると判定する。制御部45は、CAN通信部40aが受信したデータフレームのIDフィールドに含まれている識別データが、記憶部44に記憶されている複数の識別データのいずれとも一致しなかった場合、中継が必要ではないと判定する。
【0080】
制御部45は、中継が必要ではないと判定した場合(S7:NO)、第1中継データ記憶処理を終了する。その後、制御部45は、CAN通信部40aが受信したデータフレームに係る処理を実行することはなく、このデータフレームを無視する。
【0081】
制御部45は、中継が必要であると判定した場合(S7:YES)、CAN通信部40aが受信したデータフレームのデータフィールドに含まれているメインデータを、中継データとして一時記憶部42に記憶する(ステップS8)。制御部45は、ステップS2,S8の一方を実行した後、ステップS2,S8中の実行したステップで記憶した中継データに対応付けて送信停止回数データを記憶する(ステップS9)。ステップS9が実行された時点では、中継装置30は、ステップS2又はステップS8で記憶された中継データの送信を開始していない。このため、ステップS9では、制御部45は、送信停止回数としてゼロを示す送信停止回数データを一時記憶部42に記憶する。
制御部45は、ステップS9を実行した後、第1中継データ記憶処理を終了する。
【0082】
以上のように、制御部45は、第1通信バス12又は第1通信線13を介してデータフレームが受信されてない場合、第1中継データ記憶処理を繰り返し実行し、第1通信バス12又は第1通信線13を介してデータフレームが受信されるまで待機する。制御部45は、イーサネット通信部41aが第1通信線13を介してデータフレームを受信した場合、イーサネット通信部41aが受信したデータフレームに含まれているメインデータを中継データとして記憶する。制御部45は、更に、この中継データに対応する送信停止回数データを一時記憶部42に記憶する。
【0083】
制御部45は、CAN通信部40aが第1通信バス12を介してデータフレームを受信した場合において、CAN通信部40aが受信したデータフレームに含まれているメインデータの送信を中継する必要があるとき、このメインデータを中継データとして一時記憶部42に記憶する。更に、制御部45は、この中継データに対応する送信停止回数データを記憶する。制御部45は、第1通信バス12を介した複数のデータフレームの同時送信を検知した場合、同時送信を検知した日時を示す第1衝突時刻データを記憶する。
【0084】
制御部45は、第2中継データ記憶処理を周期的に実行する。第2中継データ記憶処理の内容は、第1中継データ記憶処理の内容と同様である。第1中継データ記憶処理の説明において、高機能ECU10、低機能ECU11、第1通信バス12、第1通信線13、CAN通信部40a、イーサネット通信部41a及び第1衝突時刻データ夫々を、高機能ECU20、低機能ECU21、第2通信バス22、第2通信線23、CAN通信部40b、イーサネット通信部41b及び第2衝突時刻データに置き換える。これにより、第2中継データ記憶処理を理解することができる。第2衝突時刻データは、第2通信バス22における衝突を検知した日時を示す。
【0085】
制御部45は、第2通信バス22又は第2通信線23を介してデータフレームが受信されてない場合、第2中継データ記憶処理を繰り返し実行し、第2通信バス22又は第2通信線23を介してデータフレームが受信されるまで待機する。制御部45は、イーサネット通信部41bが第2通信線23を介してデータフレームを受信した場合、イーサネット通信部41bが受信したデータフレームに含まれているメインデータを中継データとして記憶する。制御部45は、更に、この中継データに対応する送信停止回数データを一時記憶部42に記憶する。
【0086】
制御部45は、CAN通信部40bが第2通信バス22を介してデータフレームを受信した場合において、CAN通信部40bが受信したデータフレームに含まれているメインデータの送信を中継する必要があるとき、このメインデータを中継データとして一時記憶部42に記憶する。更に、制御部45は、この中継データに対応する送信停止回数データを記憶する。制御部45は、第2通信バス22を介した複数のデータフレームの同時送信を検知した場合、同時送信を検知した日時を示す第2衝突時刻データを記憶する。
【0087】
図5及び
図6は、第1中継データ送信処理の手順を示すフローチャートである。制御部45は、送信先の装置が2つの高機能ECU10及び3つの低機能ECU11中の1つである中継データが一時記憶部42に記憶されている場合に第1中継データ送信処理を実行する。CAN用のデータフレームに含まれていた中継データの送信先の装置は、このデータフレームのIDフィールドに含まれている識別データに基づいて決まる。イーサネット用のデータフレームに含まれていた中継データの送信先の装置は、このデータフレームに含まれている送信先データが示す装置である。
【0088】
第1中継データ送信処理では、制御部45は、送信対象である中継データの送信先の装置が2つの高機能ECU10中の1つであるか否かを判定する(ステップS11)。制御部45は、送信先の装置が2つの高機能ECU10中の1つではないと判定した場合(S11:NO)、送信対象である中継データがメインデータとしてデータフィールドに含まれたCAN用のデータフレームを生成する(ステップS12)。
【0089】
次に、制御部45は、ステップS12で生成したデータフレームの1つのビットデータの送信をCAN通信部40aに指示する(ステップS13)。これにより、CAN通信部40aは、第1通信バス12を介してビットデータを送信する。第1中継データ送信処理では、制御部45は、ステップS13を繰り返し実行し、CAN通信部40aは、ステップS12で生成したデータフレームを構成する複数のビットデータを順次送信する。
【0090】
即ち、第1中継データ送信処理において、第1回目のステップS13では、制御部45は、CAN通信部40aに、データフレームの1番目のビットデータを送信させる。第2回目のステップS13では、制御部45はCAN通信部40aにデータフレームの2番目のビットデータを送信させる。このように、制御部45は、CAN通信部40aに、データフレームを構成する複数のビットデータを順次送信させる。
図2に示すCAN用のデータフレームでは、左端のビットデータからビットデータが順次送信される。
【0091】
前述したように、CAN通信部40aは、自身が送信したビットデータを受信する。また、データフレームのIDフィールドに含まれるビットデータを送信している間に衝突が検出される可能性がある。
【0092】
制御部45は、ステップS13を実行した後、第1通信バス12において衝突が発生したか否かを判定する(ステップS14)。制御部45は、ステップS13で「0」(レセッシブ)を示すビットデータの送信を指示した場合において、CAN通信部40aが「1」(ドミナント)を示すビットデータを受信したとき、衝突が発生したと判定する。制御部45は、ステップS13で「1」を示すビットデータの送信を指示した場合、又は、ステップS13で送信を指示したビットデータと、CAN通信部40aが受信したビットデータとが「0」を示す場合、衝突は発生していないと判定する。
【0093】
制御部45は、衝突が発生していないと判定した場合(S14:NO)、ステップS12で生成したデータフレームのIDフィールドに含まれるビットデータの送信が完了したか否かを判定する(ステップS15)。制御部45は、IDフィールドに含まれるビットデータの送信が完了していないと判定した場合(S15:NO)、ステップS13を実行し、CAN通信部40aに次のビットデータを送信させる。
【0094】
制御部45は、IDフィールドに含まれるビットデータの送信が完了したと判定した場合(S15:YES)、ステップS13と同様に、ステップS12で生成したデータフレームの1つのビットデータの送信をCAN通信部40aに指示する(ステップS16)。これにより、CAN通信部40aは、第1通信バス12を介してビットデータを送信する。第1中継データ送信処理では、制御部45は、ステップS16を繰り返し実行する。IDフィールドに含まれるビットデータの送信は完了しているので、CAN通信部40aは、IDフィールドの次のフィールドに含まれるビットデータから、ビットデータを順次送信する。
【0095】
制御部45は、ステップS16を実行した後、ステップS12で生成したデータフレームを構成する全てのビットデータの送信が完了したか否かを判定する(ステップS17)。制御部45は、全てのビットデータの送信が完了していないと判定した場合(S17:NO)、再びステップS16を実行し、CAN通信部40aに次のビットデータを送信させる。CAN通信部40aは、データフレームを構成する全てのビットデータの送信が完了するまで、ビットデータを順次送信する。
【0096】
第1通信バス12を介した通信はCANのプロトコルに従っているので、IDフィールド以降のフィールドに含まれるビットデータの送信では、衝突が発生することはない。第1通信バス12を介した送信を行う装置の数は1つである。このため、ステップS16に係るビットデータの送信について、制御部45は衝突が発生したか否かを判定しない。
【0097】
制御部45は、全てのビットデータの送信が完了したと判定した場合(S17:YES)、CAN通信部40aが送信した中継データ、及び、この中継データに対応する送信停止回数データを一時記憶部42から削除する(ステップS18)。制御部45は、ステップS18を実行した後、第1中継データ記憶処理を終了する。
【0098】
衝突が発生したと判定した後においては、第1中継データ記憶処理が終了するまで、制御部45が、CAN通信部40aにビットデータの送信を指示することはなく、CAN通信部40aは、ステップS12で生成したデータフレームの送信を停止する。中継装置30とは異なる装置、即ち、2つの高機能ECU10及び3つの低機能ECU11中の少なくとも1つが第1通信バス12を介したデータフレームの送信を継続する。
【0099】
制御部45は、衝突が発生したと判定した場合(S14:YES)、送信対象であった中継データに対応する送信停止回数データが示す送信停止回数を1だけインクリメントする(ステップS19)。次に、制御部45は、中継装置30とは異なる装置が第1通信バス12を介して送信しているデータフレームにおいて、衝突通知フィールド以前のビットデータの送信が完了したか否かを判定する(ステップS20)。
【0100】
制御部45は、衝突通知フィールド以前のビットデータの送信が完了していないと判定した場合(S20:NO)、ステップS20を再び実行し、衝突通知フィールド以前のビットデータの送信が完了するまで待機する。
【0101】
制御部45は、衝突通知フィールド以前のビットデータの送信が完了したと判定した場合(S20:YES)、「1」(ドミナント)を示すビットデータの送信をCAN通信部40aに指示する(ステップS21)。これにより、送信中のデータフレームの衝突通知フィールドに含まれるビットデータは「1」を示し、第1通信バス12に接続されている全ての装置に衝突の発生が通知される。
【0102】
制御部45は、ステップS21を実行した後、第1中継データ送信処理を終了する。送信が停止された中継データは、送信停止回数が1だけインクリメントされた状態で一時記憶部42に記憶され続ける。次の第1中継データ送信処理において、この中継データの送信が再び開始される。
【0103】
制御部45は、送信先の装置が2つの高機能ECU10中の1つであると判定した場合(S11:YES)、送信対象である中継データに対応する送信停止回数データが示す送信停止回数、即ち、送信対象である中継データの送信停止回数が第1閾値以上であるか否かを判定する(ステップS22)。第1閾値は、2以上の整数であり、予め設定されている。第1閾値は、第2の所定回数に相当する。
【0104】
制御部45は、送信停止回数が第1閾値未満であると判定した場合(S22:NO)、基準時間内において衝突を検知した回数(以下、衝突検知回数)が第2閾値以上であるか否かを判定する(ステップS23)。基準時間は、一定であり、予め設定されている。第2閾値は、自然数であり、予め設定されている。第2閾値は所定回数に相当する。
【0105】
図7は衝突検知回数の説明図である。
図7では、時間軸において、衝突が検知された時点、具体的には、一時記憶部42に記憶されている第1衝突時刻データが示す時点(日時)が黒丸で示されている。衝突検知回数は、ステップS23の実行を開始した時点から基準時間遡った時点から、ステップS23の実行が開始された時点までに、衝突を検知した回数である。
図7の例では、衝突検知回数は7である。
【0106】
制御部45は、衝突検知回数が第2閾値未満である場合(S23:NO)、ステップS12を実行する。従って、送信先の装置が2つの高機能ECU10中の1つである場合において、送信停止回数が第1閾値未満であり、かつ、衝突検知回数が第2閾値未満であるとき、CAN通信部40aは、中継データについて、第1通信バス12を介した送信を開始する。CAN通信部40aは第1送信部として機能する。
【0107】
制御部45は、送信停止回数が第1閾値以上であると判定した場合(S22:YES)、又は、衝突検知回数が第2閾値以上であると判定した場合(S23:YES)、送信対象である中継データをメインデータとして含むイーサネット用のデータフレームを生成する(ステップS24)。
【0108】
次に、制御部45は、中継データの送信先である装置に基づいて、2つのイーサネット通信部41aの中から1つのイーサネット通信部41aを選択する(ステップS25)。次に、制御部45は、ステップS24で生成したデータフレームの送信を、ステップS25で選択したイーサネット通信部41aに指示する(ステップS26)。これにより、ステップS25で選択されたイーサネット通信部41aは、ステップS24で生成されたデータフレーム、即ち、CAN通信部40aが送信を停止したデータを含むデータフレームを、第1通信線13を介して高機能ECU10に送信する。送信停止回数が第1閾値以上であると制御部45が判定した場合にイーサネット通信部41aが送信するデータフレームには、CAN通信部40aが送信を停止したメインデータが含まれている。イーサネット通信部41aは第2送信部として機能する。
【0109】
制御部45は、ステップS26を実行した後、イーサネット通信部41aが送信した中継データ、及び、この中継データに対応する送信停止回数データを一時記憶部42から削除する(ステップS27)。制御部45は、ステップS27を実行した後、第1中継データ送信処理を終了する。
【0110】
以上のように、中継装置30では、送信先の装置が3つの低機能ECU11中の1つである中継データは、CAN通信部40aによって、第1通信バス12を介して送信される。送信先の装置が2つの高機能ECU10中の1つである中継データについて、送信停止回数が第1閾値未満であり、かつ、衝突検知回数が第2閾値未満である場合、CAN通信部40aが第1通信バス12を介して中継データを送信する。送信先の装置が2つの高機能ECU10中の1つである中継データについて、送信停止回数が第1閾値以上であるか、又は、衝突検知回数が第2閾値以上である場合、2つのイーサネット通信部41a中の1つが中継データを、第1通信線13を介して送信する。
【0111】
送信先の装置が2つの高機能ECU10中の1つである中継データについて、基準時間内に第1通信バス12を介して同時送信が行われた回数、即ち、衝突検知回数が多い場合、第1通信バス12の通信負荷が大きいので、第1通信線13を介して中継データを送信する。このため、中継装置30で中継データが長期間停滞することはなく、中継データの送信に係る所要時間は短い。通信負荷は、第1通信バス12を介してデータフレームが送信されている送信時間が単位時間当たりに占める割合である。
【0112】
衝突検知回数が第2閾値未満である場合、CAN通信部40aは第1通信バス12を介した中継データの送信を開始する。第1通信バスを介した中継データの送信では、衝突が発生したために送信を停止する可能性がある。共通の中継データについて、送信停止回数が第1閾値となった場合、2つのイーサネット通信部41a中の1つが第1通信線13を介して、CAN通信部40aが送信を停止した共通の中継データを送信する。このように、衝突が発生したために送信が停止した場合、中継データは第1通信線13を介して送信されるので、中継データの送信に係る所要時間は更に短い。また、送信停止回数が多い場合に中継データが第1通信線13を介して送信されるので、第1通信バス12を介してデータフレームが送信される頻度が適当な値に調整される。
【0113】
制御部45は、送信先の装置が2つの高機能ECU20及び3つの低機能ECU21中の1つである中継データが一時記憶部42に記憶されている場合に第2中継データ送信処理を実行する。第2中継データ送信処理は、第1中継データ送信処理と同様である。第1中継データ送信処理の説明において、高機能ECU10、低機能ECU11、第1通信バス12、第1通信線13、CAN通信部40a、イーサネット通信部41a及び第1衝突時刻データ夫々を、高機能ECU20、低機能ECU21、第2通信バス22、第2通信線23、CAN通信部40b、イーサネット通信部41b及び第2衝突時刻データに置き換える。これにより、第2中継データ送信処理を理解することができる。CAN通信部40bも第1送信部として機能する。イーサネット通信部41bも第2送信部として機能する。
【0114】
従って、中継装置30は、送信先の装置が2つの高機能ECU20及び3つの低機能ECU21中の1つである中継データの送信に関しても、送信先の装置が2つの高機能ECU10及び3つの低機能ECU11中の1つである中継データの送信に関して奏する効果と同様の効果を奏する。
【0115】
中継装置30において、イーサネット通信部41aの数は、CAN通信部40aから第1通信バス12を介してデータフレームを受信する装置の数よりも少ない。また、イーサネット通信部41bの数は、CAN通信部40bから第2通信バス22を介してデータフレームを受信する装置の数よりも少ない。このため、高機能ECU10,20夫々の数は少ない。結果、中継装置30及び通信システムNの製造費用は安価である。
【0116】
中継装置30では、CAN通信部40bは2つの高機能ECU20及び3つの低機能ECU21からデータフレームを受信する。イーサネット通信部41bは、自身に接続されている高機能ECU20からデータフレームを受信する。CAN通信部40b及びイーサネット通信部41bが受信したデータフレームに含まれるメインデータは一時記憶部42に記憶される。CAN通信部40a及びイーサネット通信部41aは、一時記憶部42に記憶されたメインデータを含むデータフレームを送信する。これにより、高機能ECU20及び低機能ECU21中の1つから高機能ECU10及び低機能ECU11中の1つへの送信が中継される。
【0117】
同様に、CAN通信部40aは2つの高機能ECU10及び3つの低機能ECU11からデータフレームを受信する。イーサネット通信部41aは、自身に接続されている高機能ECU10からデータフレームを受信する。CAN通信部40a及びイーサネット通信部41aが受信したデータフレームに含まれるメインデータは一時記憶部42に記憶される。CAN通信部40b及びイーサネット通信部41bは、一時記憶部42に記憶されたメインデータを含むデータフレームを送信する。これにより、高機能ECU10及び低機能ECU11中の1つから高機能ECU20及び低機能ECU21中の1つへの送信が中継される。
CAN通信部40a,40b及びイーサネット通信部41a,41b夫々は受信部としても機能する。
【0118】
高機能ECU10,20は、中継装置30と同様にメインデータを送信し、メインデータの送信に関して中継装置30が奏する効果と同様の効果を奏する。以下では、高機能ECU10の詳細な構成を説明する。
【0119】
図8は高機能ECU10の要部構成を示すブロック図である。高機能ECU10は、CAN通信部50、イーサネット通信部51、一時記憶部52、時計部53、記憶部54及び制御部55を有する。これらは、高機能ECU10内において、内部バス56に接続されている。CAN通信部50は、更に、第1通信バス12に接続されている。イーサネット通信部51は、更に、第1通信線13に接続されている。
【0120】
CAN通信部50及びイーサネット通信部51は、インタフェースであり、制御部55の指示に従って、データフレームを送信する。具体的には、これらは、データフレームを構成する複数のビットデータを順次送信する。CAN通信部50は、更に、制御部55の指示に従って、高機能ECU10とは異なる装置が第1通信バス12を介して送信しているデータフレームの衝突通知フィールドで「1」(ドミナント)を示すビットデータを送信する。
【0121】
CAN通信部50は、第1通信バス12を介して送信された全てのデータフレームを受信する。イーサネット通信部51は、第1通信線13を介して中継装置30から送信されたデータフレームを受信する。制御部55は、CAN通信部50及びイーサネット通信部51が受信したデータフレームをこれらから取得する。
【0122】
制御部55は、データを一時記憶部52に記憶する。一時記憶部52では、データが一時的に記憶される。一時記憶部52に記憶されているデータは、制御部55によって一時記憶部42から読み出される。制御部55は、電気機器に関する制御で用いる制御データと、第1通信バス12又は第1通信線13を介して送信する送信データとを一時記憶部42に記憶する。また、制御部55は、送信データに対応付けて、送信を停止した送信停止回数を示す送信停止回数データを一時記憶部52に記憶する。送信停止回数データが示す回数は、自身に対応する送信データについて、CAN通信部50が送信を停止した回数を示す。
【0123】
制御部55は、更に、第1通信バス12において衝突が発生した日時を示す衝突時刻データを一時記憶部52に記憶する。一時記憶部52に記憶されているデータは、一時記憶部52への電力供給が停止した場合に消去される。
【0124】
制御部55は、時計部53から日時を示す日時データを取得する。制御部55が取得した日時データは、この日時データを取得した時点の日時を示す。
【0125】
記憶部54は不揮発性メモリである。記憶部54には、コンピュータプログラムP2が記憶されている。制御部55は、一又は複数のCPUを有する。制御部55が有する一又は複数のCPUは、コンピュータプログラムP2を実行することによって、制御データ記憶処理、制御処理、送信データ記憶処理及び送信データ送信処理を並行して実行する。
【0126】
制御データ記憶処理は、CAN通信部50又はイーサネット通信部51が受信したデータフレームに含まれるメインデータを制御データとして一時記憶部52に記憶する処理である。制御処理は、一時記憶部52に記憶されている制御データに基づいて、電気機器に関する制御を行う処理である。送信データ記憶処理は、送信データを生成し、生成した送信データを記憶する処理である。送信データ送信処理は、送信データを送信する処理である。
【0127】
コンピュータプログラムP2は、制御部55が有する一又は複数のCPUに、制御データ記憶処理、制御処理、送信データ記憶処理及び送信データ送信処理を実行させるために用いられる。
【0128】
なお、コンピュータプログラムP2は、制御部55が有する一又は複数のCPUが読み取り可能に、記憶媒体A2に記憶されていてもよい。この場合、図示しない読み出し装置によって記憶媒体A2から読み出されたコンピュータプログラムP2が記憶部54に記憶される。記憶媒体A2は、光ディスク、フレキシブルディスク、磁気ディスク、磁気光ディスク又は半導体メモリ等である。また、図示しない通信網に接続されている図示しない外部装置からコンピュータプログラムP2をダウンロードし、ダウンロードしたコンピュータプログラムP2を記憶部54に記憶してもよい。
【0129】
図9は、制御データ記憶処理の手順を示すフローチャートである。制御部55は制御データ記憶処理を周期的に実行する。制御データ記憶処理のステップS31~S36夫々は、第1中継データ記憶処理のステップS1~S6と同様である。このため、ステップS31~S36の詳細な説明を省略する。
【0130】
ステップS1~S6の説明において、CAN通信部40a、イーサネット通信部41a、制御部45、中継データ及び第1衝突時刻データ夫々を、CAN通信部50、イーサネット通信部51、制御部55、制御データ及び衝突時刻データに置き換える。これにより、ステップS31~S36を理解することができる。制御部55も検知部として機能する。
【0131】
ステップS32では、制御部55は、イーサネット通信部51が受信したデータフレームに含まれるメインデータを、制御データとして一時記憶部52に記憶する。制御部55は、ステップS32を実行した後、制御データ記憶処理を終了する。また、制御部55は、第1通信バス12を介してデータフレームを受信していないと判定した場合(S33:NO)、制御データ記憶処理を終了する。ステップS36では、制御部55は、ステップS35で取得した日時データを衝突時刻データとして一時記憶部52に記憶する。
【0132】
制御部55は、第1通信バス12において衝突が発生していないと判定した場合(S34:NO)、又は、ステップS36を実行した後、CAN通信部50が受信したデータフレームに含まれるメインデータの送信先の装置が自装置であるか否かを判定する(ステップS37)。記憶部54には、送信先の装置が自装置であるメインデータに対応する複数の識別データが記憶されている。
【0133】
ステップS37において、制御部55は、CAN通信部50が受信したデータフレームのIDフィールドに含まれている識別データが、記憶部54に記憶されている複数の識別データ中の1つと一致した場合、送信先の装置が自装置であると判定する。制御部55は、CAN通信部50が受信したデータフレームのIDフィールドに含まれている識別データが、記憶部54に記憶されている複数の識別データのいずれとも一致しなかった場合、送信先の装置が自装置ではないと判定する。
【0134】
制御部55は、送信先の装置が自装置ではないと判定した場合(S37:NO)、制御データ記憶処理を終了する。その後、制御部55は、CAN通信部50が受信したデータフレームに係る処理を実行することはなく、このデータフレームを無視する。
【0135】
制御部55は、送信先の装置が自装置であると判定した場合(S37:YES)、CAN通信部50が受信したデータフレームのデータフィールドに含まれているメインデータを、制御データとして一時記憶部52に記憶する(ステップS38)。制御部55は、ステップS38を実行した後、制御データ記憶処理を終了する。
【0136】
以上のように、制御部55は、第1通信バス12又は第1通信線13を介してデータフレームが受信されてない場合、制御データ記憶処理を繰り返し実行し、第1通信バス12又は第1通信線13を介してデータフレームが受信されるまで待機する。制御部55は、イーサネット通信部51が第1通信線13を介してデータフレームを受信した場合、イーサネット通信部51が受信したデータフレームに含まれているメインデータを制御データとして記憶する。
【0137】
制御部55は、CAN通信部50が第1通信バス12を介してデータフレームを受信した場合において、CAN通信部50が受信したデータフレームの送信先の装置が自装置であるとき、このデータフレームに含まれるメインデータを制御データとして一時記憶部52に記憶する。更に、制御部55は、第1通信バス12を介した複数のデータフレームの同時送信を検知した場合、同時送信を検知した日時を示す衝突時刻データを記憶する。
【0138】
制御部55は、一時記憶部52に制御データが記憶されている場合、制御処理を実行する。制御処理では、制御部55は、一時記憶部52に記憶されている制御データに基づく処理を実行する。例えば、制御部55は、図示しない出力部に、特定の動作を指示するデータを電気機器に出力させ、電気機器に特定の動作を行わせる。その後、制御部55は、一時記憶部52から、実行した処理に係る制御データを削除し、制御処理を終了する。他の制御データが一時記憶部52に記憶されている場合、制御部55は再び制御処理を実行する。
【0139】
図10は送信データ記憶処理の手順を示すフローチャートである。制御部55は、例えば、センサの検出結果を示すデータ又は特定の動作を指示するデータ等が図示しない入力部に入力された場合に送信データ記憶処理を実行する。送信データ記憶処理では、制御部55は、まず、送信データを生成し(ステップS41)、生成した送信データを一時記憶部52に記憶する(ステップS42)。
【0140】
次に、制御部55は、ステップS42で記憶した送信データに対応付けて送信停止回数データを記憶する(ステップS43)。ステップS43が実行された時点では、高機能ECU10は、ステップS42で記憶された送信データの送信を開始していない。このため、ステップS43では、制御部55は、送信停止回数としてゼロを示す送信停止回数データを一時記憶部52に記憶する。
制御部55は、ステップS43を実行した後、送信データ記憶処理を終了する。
【0141】
図11及び
図12は、送信データ送信処理の手順を示すフローチャートである。制御部55は、送信先の装置が自装置とは異なる高機能ECU10、低機能ECU11及び中継装置30中の1つである送信データが一時記憶部42に記憶されている場合に送信データ送信処理を実行する。送信データの送信先の装置は、送信データの内容に応じて適宜決定される。送信先の装置が中継装置30である送信データは、具体的には、送信先の装置が第1通信バス12に接続されるいずれの装置とも異なる装置である送信データである。
【0142】
送信データ送信処理のステップS52~S64夫々は、第1中継データ送信処理のステップS12~S24と同様である。このため、ステップS52~S64の詳細な説明を省略する。ステップS12~S24の説明において、CAN通信部40a、一時記憶部42、制御部45及び中継データ夫々を、CAN通信部50、一時記憶部52、制御部55及び送信データに置き換える。これにより、ステップS52~S64を理解することができる。CAN通信部50も第1送信部として機能する。
【0143】
送信データ送信処理では、制御部55は、まず、送信対象である送信データの送信先の装置が、自装置とは異なる高機能ECU10又は中継装置30であるか否かを判定する(ステップS51)。制御部55は、送信先の装置が高機能ECU10又は中継装置30ではない、即ち、送信先の装置が3つの低機能ECU11中の1つであると判定した場合(S51:NO)、ステップS52を実行し、CAN通信部50が第1通信バス12を介して送信データを送信する。
【0144】
衝突が発生してCAN通信部50が第1通信バス12を介した送信を停止した場合、自装置とは異なる高機能ECU10、3つの低機能ECU11及び中継装置30中の少なくとも1つが第1通信バス12を介した送信を継続する。CAN通信部50は、第1通信バス12を介して送信されているデータフレームの衝突通知フィールドにおいて、「1」(ドミナント)を示すビットデータを送信し、衝突を通知する。
【0145】
制御部55は、送信先の装置が自装置とは異なる高機能ECU10又は中継装置30である場合(S51:YES)、ステップS62を実行する。制御部55は、送信停止回数が第1閾値以上であると判定した場合(S62:YES)、又は、衝突検知回数が第2閾値以上であると判定した場合(S63:YES)、ステップS64を実行する。ステップS64では、イーサネット用のデータフレームを生成する。
【0146】
送信データ送信処理の衝突検知回数は、ステップS63の実行を開始した時点から基準時間遡った時点から、ステップS63の実行が開始された時点までに、衝突を検知した回数である。送信データ送信処理に係る第1閾値は、中継データ送信処理に係る第1閾値と同一であってもよいし、異なっていてもよい。同様に、送信データ送信処理に係る第2閾値は、中継データ送信処理に係る第2閾値と同一であってもよいし、異なっていてもよい。
【0147】
制御部55は、ステップS64を実行した後、イーサネット通信部51にステップS64で生成したデータフレームの送信を指示する(ステップS65)。これにより、イーサネット通信部51は、ステップS64で生成したデータフレームを、第1通信線13を介して中継装置30に送信する。送信データの送信先の装置が自装置とは異なる高機能ECU10である場合、中継装置30を介して、この高機能ECU10に送信データが送信される。イーサネット通信部51も第2送信部として機能する。
【0148】
制御部55は、ステップS65を実行した後、イーサネット通信部51が送信した送信データ、及び、この送信データに対応する送信停止回数データを一時記憶部52から削除する(ステップS66)。制御部55は、ステップS66を実行した後、送信データ送信処理を終了する。
【0149】
以上のように、高機能ECU10では、送信先の装置が3つの低機能ECU11中の1つである送信データは、CAN通信部50によって、第1通信バス12を介して送信される。送信先の装置が、自装置と異なる高機能ECU10又は中継装置30である送信データについて、送信停止回数が第1閾値未満であり、かつ、衝突検知回数が第2閾値未満である場合、CAN通信部50は第1通信バス12を介して送信データを送信する。
【0150】
送信先の装置が、自装置とは異なる高機能ECU10又は中継装置30である送信データについて、送信停止回数が第1閾値以上であるか、又は、衝突検知回数が第2閾値以上である場合、イーサネット通信部51がこの送信データを送信する。
送信データの送信に関して、高機能ECU10は、中継装置30が奏する効果と同様の効果を奏する。
【0151】
高機能ECU20の構成は、高機能ECU10の構成と同様である。高機能ECU10の構成の説明において、第1通信バス12及び第1通信線13夫々を、第2通信バス22及び第2通信線23に置き換える。これにより、高機能ECU20の構成を理解することができる。高機能ECU20は、高機能ECU10が奏する効果を同様に奏する。
【0152】
第1通信バス12のみを介して送信されるメインデータ、即ち、送信先又は送信元が低機能ECU11であるメインデータの送信に係る優先度は、第1通信バス12及び第1通信線13を介して送信することが可能なメインデータの送信に係る優先度よりも高いことが好ましい。この場合、メインデータの送信に係る所要時間が更に短い。同様に、第2通信バス22のみを介して送信されるメインデータ、即ち、送信先又は送信元が低機能ECU21であるメインデータの送信に係る優先度は、第2通信バス22及び第2通信線23を介して送信することが可能なメインデータの送信に係る優先度よりも高いことが好ましい。この場合も、メインデータの送信に係る所要時間が更に短い。
【0153】
(実施形態2)
第1通信バス12又は第2通信バス22を介した複数のデータフレームの同時送信を通知する構成は、送信を停止した装置が、送信中のデータフレームの衝突通知フィールドにおいて、「1」(ドミナント)を示すビットデータを送信する構成に限定されない。
以下では、実施形態2について、実施形態1と異なる点を説明する。後述する構成を除く他の構成については、実施形態1と共通している。このため、実施形態1と共通する構成部には実施形態1と同一の参照符号を付してその説明を省略する。
【0154】
図13は、実施形態2におけるCAN用のデータフレームの説明図である。実施形態2におけるCAN用のデータフレームでは、実施形態1と同様に、SOFフィールド、IDフィールド、データフィールド及びEOFフィールド等が設けられている。実施形態2におけるCAN用のデータフレームでは、衝突検知フィールドは設けられていない。従って、送信を停止した装置が、送信中のデータフレームの衝突通知フィールドにおいて、「1」(ドミナント)を示すビットデータを送信することによって、衝突を通知することはない。
【0155】
図14は、第1中継データ記憶処理の手順を示すフローチャートである。実施形態2においても、中継装置30の制御部45は、第1中継データ記憶処理を周期的に実行する。実施形態2における第1中継データ記憶処理のステップS71~S73,S74,S75夫々は、実施形態1における第1中継データ記憶処理のステップS1~S3,S7,S8と同様である。このため、ステップS71~S75の詳細な説明を省略する。
【0156】
制御部45は、第1通信バス12を介してデータフレームを受信したと判定した場合(S73:YES)、ステップS74を実行する。制御部45は、ステップS72,S75の一方を実行した後、第1中継データ記憶処理を終了する。
【0157】
以上のように、制御部45は、第1通信バス12又は第1通信線13を介してデータフレームが受信されてない場合、第1中継データ記憶処理を繰り返し実行し、第1通信バス12又は第1通信線13を介してデータフレームが受信されるまで待機する。制御部45は、イーサネット通信部41aが第1通信線13を介してデータフレームを受信した場合、イーサネット通信部41aが受信したデータフレームに含まれているメインデータを中継データとして記憶する。
【0158】
更に、制御部45は、CAN通信部40aが第1通信バス12を介してデータフレームを受信した場合において、CAN通信部40aが受信したデータフレームに含まれているメインデータの送信を中継する必要があるとき、このメインデータを中継データとして一時記憶部42に記憶する。
なお、実施形態2における第2中継データ記憶処理の内容は、第1中継データ記憶処理の内容と同様である。
【0159】
図15及び
図16は、第1中継データ送信処理の手順を示すフローチャートである。制御部45は、実施形態1と同様に、送信先の装置が2つの高機能ECU10及び3つの低機能ECU11中の1つである中継データが一時記憶部42に記憶されている場合に第1中継データ送信処理を実行する。実施形態2における第1中継データ送信処理のステップS81~S87,S91~S94夫々は、実施形態1における第1中継データ送信処理のステップS11~S17,S23~S26と同様である。このため、ステップS81~S87,S91~S94の詳細な説明を省略する。
【0160】
制御部45は、ステップS84を実行することによって、第1通信バス12における衝突、即ち、第1通信バス12を介した複数のデータフレームの同時送信を検知する。具体的には、制御部45は、ステップS83で「0」(レセッシブ)を示すビットデータの送信を指示した場合において、CAN通信部40aが「1」(ドミナント)を示すビットデータを受信したとき、衝突を検知する。
【0161】
制御部45は、全てのビットデータの送信が完了したと判定した場合(S87:YES)、CAN通信部40aが送信した中継データを一時記憶部42から削除する(ステップS88)。制御部45は、第1通信バス12において衝突が発生したと判定した場合、即ち、第1通信バス12を介した複数のデータフレームの同時送信を検知した場合(S84:YES)、時計部43から日時データを取得する(ステップS89)。次に、制御部45は、ステップS89で取得した日時データを第1衝突時刻データとして一時記憶部42に記憶する(ステップS90)。制御部45は、ステップS88,S90中の1つを実行した後、第1中継データ記憶処理を終了する。
【0162】
制御部45は、送信先の装置が2つの高機能ECU10中の1つであると判定した場合(S81:YES)、ステップS91を実行する。実施形態2における第1中継データ送信処理の衝突検知回数は、ステップS91の実行を開始した時点から基準時間遡った時点から、ステップS91の実行が開始された時点までに、衝突を検知した回数である。制御部45は、ステップS94を実行した後、イーサネット通信部41aが送信した中継データを一時記憶部42から削除し(ステップS95)、第1中継データ送信処理を終了する。
【0163】
以上のように、中継装置30では、制御部45は、第1通信バス12を介した複数のデータフレームの同時送信を検知した場合、同時送信を検知した日時を示す第1衝突時刻データを記憶する。送信先の装置が3つの低機能ECU11中の1つである中継データは、CAN通信部40aによって、第1通信バス12を介して送信される。送信先の装置が2つの高機能ECU10中の1つである中継データについて、衝突検知回数が第2閾値未満である場合、CAN通信部40aが第1通信バス12を介して中継データを送信する。送信先の装置が2つの高機能ECU10中の1つである中継データについて、衝突検知回数が第2閾値以上である場合、2つのイーサネット通信部41a中の1つが中継データを、第1通信線13を介して送信する。
【0164】
送信先の装置が2つの高機能ECU10中の1つである中継データについて、基準時間内に第1通信バス12を介して同時送信が行われた回数、即ち、衝突検知回数が多い場合、第1通信バス12の通信負荷が大きいので、第1通信線13を介して中継データを送信する。このため、中継装置30で中継データが長期間停滞することはなく、中継データの送信に係る所要時間は短い。
【0165】
実施形態2において、第2中継データ送信処理は、第1中継データ送信処理と同様である。第2中継データ送信処理では、取得した日時データを、第1衝突時刻データとしてではなく、第2衝突時刻データとして記憶する。中継装置30は、送信先の装置が2つの高機能ECU20及び3つの低機能ECU21中の1つである中継データの送信に関しても、送信先の装置が2つの高機能ECU10及び3つの低機能ECU11中の1つである中継データの送信に関して奏する効果と同様の効果を奏する。
【0166】
図17は、制御データ記憶処理の手順を示すフローチャートである。高機能ECU10の制御部55は、実施形態1と同様に、制御データ記憶処理を周期的に実行する。実施形態2における制御データ記憶処理のステップS101~S103,S104,S105夫々は、実施形態1における制御データ記憶処理のステップS31~S33,S37,S38と同様である。このため、ステップS101~S105の詳細な説明を省略する。
制御部55は、第1通信バス12を介してデータフレームを受信したと判定した場合(S103:YES)、ステップS104を実行する。
【0167】
以上のように、高機能ECU10では、制御部55は、第1通信バス12又は第1通信線13を介してデータフレームが受信されてない場合、制御データ記憶処理を繰り返し実行し、第1通信バス12又は第1通信線13を介してデータフレームが受信されるまで待機する。制御部55は、イーサネット通信部51が第1通信線13を介してデータフレームを受信した場合、イーサネット通信部51が受信したデータフレームに含まれているメインデータを制御データとして記憶する。制御部55は、CAN通信部50が第1通信バス12を介してデータフレームを受信した場合において、CAN通信部50が受信したデータフレームの送信先の装置が自装置であるとき、このデータフレームに含まれるメインデータを制御データとして一時記憶部52に記憶する。
【0168】
図18は送信データ記憶処理の手順を示すフローチャートである。高機能ECU10の制御部55は、実施形態1と同様に、例えば、センサの検出結果を示すデータ又は特定の動作を指示するデータ等が図示しない入力部に入力された場合に送信データ記憶処理を実行する。実施形態2における送信データ記憶処理のステップS111,S112夫々は、実施形態1における送信データ記憶処理のステップS41,S42と同様である。このため、ステップS111,S112の詳細な説明を省略する。
実施形態2における送信データ記憶処理では、制御部55は、ステップS112を実行した後、送信データ記憶処理を終了する。
【0169】
図19及び
図20は、送信データ送信処理の手順を示すフローチャートである。制御部55は、実施形態1と同様に、送信先の装置が自装置とは異なる高機能ECU10、低機能ECU11及び中継装置30中の1つである送信データが一時記憶部42に記憶されている場合に送信データ送信処理を実行する。実施形態2におけるステップS121~S127,S131~S133夫々は、実施形態1におけるステップS51~S57,S63~S65と同様である。このため、ステップS121~S127,S131~S133の詳細な説明を省略する。
【0170】
制御部55は、ステップS124を実行することによって、第1中継データ送信処理のステップS84と同様に、第1通信バス12における衝突、即ち、第1通信バス12を介した複数のデータフレームの同時送信を検知する。
【0171】
制御部55は、全てのビットデータの送信が完了したと判定した場合(S127:YES)、CAN通信部50が送信した送信データを一時記憶部52から削除する(ステップS128)。制御部55は、第1通信バス12において衝突が発生したと判定した場合、即ち、第1通信バス12を介した複数のデータフレームの同時送信を検知した場合(S124:YES)、時計部53から日時データを取得する(ステップS129)。次に、制御部55は、ステップS129で取得した日時データを衝突時刻データとして一時記憶部52に記憶する(ステップS130)。制御部55は、ステップS128,S130中の1つを実行した後、送信データ送信処理を終了する。
【0172】
制御部55は、送信先の装置が自装置とは異なる高機能ECU10又は中継装置30である場合(S121:YES)、ステップS131を実行する。実施形態2における送信データ送信処理の衝突検知回数は、ステップS131の実行を開始した時点から基準時間遡った時点から、ステップS131の実行が開始された時点までに、衝突を検知した回数である。制御部55は、ステップS133を実行した後、イーサネット通信部51が送信した送信データを一時記憶部52から削除し(ステップS134)、送信データ送信処理を終了する。
【0173】
以上のように、高機能ECU10では、制御部55は、第1通信バス12を介した複数のデータフレームの同時送信を検知した場合、同時送信を検知した日時を示す衝突時刻データを記憶する。送信先の装置が3つの低機能ECU11中の1つである送信データは、CAN通信部50によって、第1通信バス12を介して送信される。送信先の装置が、自装置と異なる高機能ECU10又は中継装置30である送信データについて、衝突検知回数が第2閾値未満である場合、CAN通信部50は第1通信バス12を介して送信データを送信する。送信先の装置が、自装置とは異なる高機能ECU10又は中継装置30である送信データについて、衝突検知回数が第2閾値以上である場合、イーサネット通信部51がこの送信データを送信する。
送信データの送信に関して、高機能ECU10は、中継装置30が奏する効果と同様の効果を奏する。
【0174】
高機能ECU20の構成は、高機能ECU10の構成と同様である。高機能ECU20は、高機能ECU10が奏する効果を同様に奏する。
【0175】
なお、実施形態1,2において、第1通信バス12又は第2通信バス22を介した複数のデータフレームの同時送信を通知する構成は、送信を停止した場合に、衝突の発生を示すメインデータを含むデータフレームを、第1通信バス12又は第2通信バス22を介して送信する構成であってもよい。この場合、CAN用のデータフレームにおいて、衝突通知フィールドは不要である。
【0176】
第1通信バス12及び第2通信バス22夫々に接続される高機能ECU10,20の数は、2に限定されず、1又は3以上であってもよい。また、第1通信バス12及び第2通信バス22夫々に接続される低機能ECU11,21の数は、3に限定されず、1、2又は4以上であってもよい。更に、第1通信バス12又は第2通信バス22に接続される複数の装置の中で、中継装置30を除く全ての装置は、高機能ECU10であってもよい。
【0177】
第1通信バス12及び第2通信バス22を介した通信で用いられるプロトコルは、CANのプロトコルに限定されず、通信バスを介した通信で用いられるプロトコルであればよい。第1通信線13及び第2通信線23を介した通信で用いられるプロトコルは、イーサネットのプロトコルに限定されない。中継データ送信処理及び送信データ送信処理夫々に係る第1閾値は、2以上の整数に限定されず、1であってもよい。中継装置30に接続される通信バスの数は、2に限定されず、3以上であってもよい。
【0178】
開示された実施形態1,2はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0179】
10,20 高機能ECU(通信装置)
11,21 低機能ECU
12 第1通信バス
13 第1通信線
22 第2通信バス
23 第2通信線
30 中継装置(通信装置)
40a,40b CAN通信部(第1送信部、受信部)
41a,41b イーサネット通信部(第2送信部、受信部)
42,52 一時記憶部
43,53 時計部
44,54 記憶部
45,55 制御部(検知部)
46,56 内部バス
50 CAN通信部(第1送信部)
51 イーサネット通信部(第2送信部)
100 車両
A1,A2 記憶媒体
N 通信システム
P1,P2 コンピュータプログラム