中継装置又はECUを含む通信装置には、接続される通信バス毎に複数の送信メールボックスを備え、一の通信バスにメッセージを送出するとき、対応する複数の送信メールボックスの何れかに当該メッセージを割り当てるように構成されているものがある。このような通信装置において、各送信メールボックスには、一のメッセージのみ割り当てることができる。そのため、同じ送信メールボックスに割り当てられる複数のメッセージが通信装置に存在する場合、当該送信メールボックスに先に割り当てられているメッセージが通信バスに送出されるまで、他のメッセージが通信バスに送出されない。このとき、先に割り当てられているメッセージが種々の要因で通信バスに送出されなかった場合、他のメッセージが送出されず、通信に遅延が生じ、車両制御に悪影響を及ぼす虞がある。
このような悪影響を事前に防ぐために、通信装置がメッセージを送出するときの挙動のシミュレーションを行う方法が考えられる。当該シミュレーションでは、通信装置が一の通信バスに送出される複数のメッセージを受信した場合であっても通信に遅延が生じないように、メッセージが割り当てられるべき送信メールボックスを事前に決定することができる。
一般に、シミュレーションは予め定められた処理手順に従って行われる。そのため、当該処理手順に基づいて決定されたメッセージ及び送信メールボックスの組よりも、通信装置がメッセージの送出に要する時間をより短縮することができるメッセージ及び送信メールボックスの組が存在する余地がある。
本発明は斯かる事情に鑑みてなされたものであり、その目的は、メッセージが送出されるときに要する時間をより短縮可能なメッセージ及び送信メールボックスの組を決定する割当装置、割当システム、割当方法、及びコンピュータプログラムを提供することにある。また、他の目的は、中継の遅延を確実に防止することができ、かつ中継に要する時間をより短縮することができる中継装置の製造方法を提供することにある。
本発明に係る割当装置は、複数のメッセージの夫々を複数の送信メールボックスに割り当てるに際しての前記メッセージ及び送信メールボックスの組を決定する割当装置であって、複数のメッセージ及び該複数のメッセージが各割り当てられる複数の第1の送信メールボックスを対応付けて記憶する割当情報記憶部と、前記複数のメッセージの割り当てがない一又は複数の第2の送信メールボックスを記憶する未割当情報記憶部と、前記割当情報記憶部に記憶された複数のメッセージの少なくとも一部を、前記未割当情報記憶部に記憶された第2の送信メールボックスに割り当てる再割当処理部とを備え、前記複数のメッセージの少なくとも一部及び前記第2の送信メールボックスと、該複数のメッセージの残部及び各対応する第1の送信メールボックスとを夫々前記組として決定するようにしてあることを特徴とする。
本発明にあっては、割当情報記憶部は、送出される複数のメッセージと、当該複数のメッセージが各割り当てられる複数の第1の送信メールボックスとを対応付けて記憶する。未割当情報記憶部は、メッセージの割り当てがない第2の送信メールボックスを記憶する。再割当処理部は、割当情報記憶部に記憶された複数のメッセージの少なくとも一部を、未割当情報記憶部に記憶された第2の送信メールボックスに割り当てる。割当装置は、再割当処理部が割り当てた複数のメッセージの少なくとも一部及び第2の送信メールボックスと、当該複数のメッセージの残部及び各対応する第1の送信メールボックスとを夫々、メッセージ及び当該メッセージが割り当てられる送信メールボックスの組として決定する。従って、第1の送信メールボックスに割り当てられているメッセージを第2送信メールボックスに割り当てることで、各送信メールボックスに割り当てられているメッセージの数を減らすことができる。そのため、各メッセージが送信メールボックスに割り当てられるときの処理時間を減らすことができるため、メッセージが送出されるときに要する時間をより短縮することができる。
本発明に係る割当装置は、前記第1の送信メールボックス及び第2の送信メールボックスの総数と前記複数のメッセージの総数とから、各送信メールボックスに割り当てられるメッセージの数の平均値を算出する算出部を備え、前記再割当処理部は、前記算出部が算出した平均値に基づいて、前記複数のメッセージの少なくとも一部を前記第2の送信メールボックスに割り当てるようにしてあることを特徴とする。
本発明にあっては、算出部は、第1の送信メールボックス及び第2の送信メールボックスの総数と送出される複数のメッセージの総数とから、各送信メールボックスに割り当てられるメッセージの数の平均値を算出する。再割当処理部は、算出部が算出した平均値に基づいて、複数のメッセージの少なくとも一部を第2の送信メールボックスに割り当てる。従って、割当装置は、例えば、各送信メールボックスに割り当てるメッセージの数を平均値に近づけることができる。そのため、例えば各送信メールボックスに割り当てられるメッセージの数を略均等とすることができ、メッセージが送出されるときに要する時間をより短縮することができる。
本発明に係る割当装置は、前記割当情報記憶部には、前記第1の送信メールボックスの1つと複数のメッセージとが対応付けて記憶され、前記複数のメッセージの数と前記算出部が算出した平均値とに基づいて、該複数のメッセージが各割り当てられる送信メールボックスの数を決定する決定部を備え、前記再割当処理部は、前記複数のメッセージを前記決定部に決定された数の送信メールボックスに各割り当てるようにしてあることを特徴とする。
本発明にあっては、割当情報記憶部には、第1の送信メールボックスの1つと複数のメッセージとが対応付けて記憶されている。決定部は、複数のメッセージの数と算出部が算出した平均値とに基づいて、当該複数のメッセージが各割り当てられる送信メールボックスの数を決定する。再割当処理部は、当該複数のメッセージを決定部に決定された数の送信メールボックスに各割り当てる。従って、割当装置は、一の送信メールボックスに割り当てられる複数のメッセージを他の送信メールボックスに割り当てることで、各送信メールボックスに割り当てられるメッセージの数を算出した平均値に近づけることができる。そのため、割当装置は、各送信メールボックスに割り当てられるメッセージの数の均一化を図ることができ、メッセージの送出に要する時間を短縮可能なメッセージ及び送信メールボックスの組をより確実に決定することができる。
本発明に係る割当装置は、前記決定部は、前記複数のメッセージの数を前記平均値で除し、除した値の小数部を切り上げた値を前記複数のメッセージが各割り当てられる送信メールボックスの数とすることを特徴とする。
本発明にあっては、決定部は、一の第1の送信メールボックスに対応する複数のメッセージの数を算出部が算出した平均値で除し、除した値の小数部を切り上げた値を複数の当該複数のメッセージが各割り当てられる送信メールボックスの数とする。従って、割当装置は、一の送信メールボックスに割り当てられる複数のメッセージを他の送信メールボックスに割り当てるときに、各送信メールボックスに割り当てられるメッセージの数が算出した平均値以下となるようにすることができる。そのため、割当装置は、メッセージの送出に要する時間を短縮可能なメッセージ及び割り当てられるべき送信メールボックスの組をより確実に決定することができる。
本発明に係る割当装置は、前記割当情報記憶部が記憶する複数のメッセージは夫々、送出されるときの優先度を含み、前記再割当処理部は、前記決定部が決定した数が複数であった場合、前記一の第1の送信メールボックスに対応する複数のメッセージに各含まれる優先度の高低に基づいて、前記決定部が決定した数の送信メールボックスに各割り当てるようにしてあることを特徴とする。
本発明にあっては、割当情報記憶部が記憶する複数のメッセージは夫々、送出されるときの優先度を含んでいる。再割当処理部は、決定部が決定した数が複数であった場合、一の第1の送信メールボックスに対応する複数のメッセージに各含まれる優先度の高低に基づいて、決定部が決定した数の送信メールボックスに各割り当てる。従って、割当装置は例えば、高い優先度を含むメッセージが送出されるまでの時間をより短縮することができるため、利便性が向上する。
本発明に係る割当装置は、前記再割当処理部は、前記平均値が小数部を含む場合、割り当てられるメッセージの数が少ない送信メールボックスに高い優先度を含むメッセージが割り当てられるように、前記一の第1の送信メールボックスに対応する複数のメッセージを前記決定部が決定した数の送信メールボックスに各割り当てるようにしてあることを特徴とする。
本発明にあっては、再割当処理部は、算出部が算出した平均値が小数部を含む場合、割り当てられるメッセージが少ない送信メールボックスに高い優先度を含むメッセージが割り当てられるように、一の第1の送信メールボックスに対応する複数のメッセージを決定部が決定した数の送信メールボックスに各割り当てる。従って、割当装置は、高い優先度を含むメッセージについて、送信メールボックスに割り当てられるときの処理時間を短縮することができるため、高い優先度を含むメッセージが送出されるまでの時間をより短縮することができる。
本発明に係る割当装置は、前記決定部は、前記割当情報記憶部に記憶された第1の送信メールボックス全てについて、対応するメッセージが割り当てられる送信メールボックスの数を決定するようにしてあり、前記決定部が決定した送信メールボックスの数の総数が、前記第1の送信メールボックス及び第2の送信メールボックスの数の総数よりも多いか否かを判定する判定部を備え、前記決定部は更に、前記判定部が多いと判定した場合、最低の優先度を含むメッセージに対応する第1の送信メールボックスについて、先に決定した送信メールボックスの数に代え、該数よりも少ない数を前記送信メールボックスの数とすることを特徴とする。
本発明にあっては、決定部は、割当情報記憶部に記憶された第1の送信メールボックス全てについて、対応するメッセージが割り当てられる送信メールボックスの数を決定する。判定部は、決定部が決定した送信メールボックスの数の総数が、第1の送信メールボックス及び第2の送信メールボックスの数の総数よりも多いか否かを判定する。決定部は更に、判定部が多いと判定した場合、最低の優先度を含むメッセージに対応する第1の送信メールボックスについて、先に決定した送信メールボックスの数に代え、当該数よりも少ない数を送信メールボックスの数とする。従って、高い優先度を含むメッセージが多く割り当てられている送信メールボックスにおける各メッセージを、多くの送信メールボックスに再割り当てすることができる。そのため、高い優先度を含むメッセージを、割り当てられるメッセージが少ない送信メールボックスに割り当てることができ、高い優先度を含むメッセージが送出されるまでの時間をより短縮することができる。
本発明に係る割当装置は、前記再割当処理部は、異なる第1の送信メールボックスに対応するメッセージを前記第2送信メールボックスに割り当てないようにしてあることを特徴とする。
本発明にあっては、再割当処理部は、異なる第1の送信メールボックスに対応するメッセージを第2送信メールボックスに割り当てない。従って、割当装置は、例えば、第1の送信メールボックス夫々に、メッセージが優先度順に割り当てられていた場合、高い優先度を含むメッセージ及び低い優先度を含むメッセージが混在することを防ぐことができる。そのため、例えば、アービトレーション等を行う通信プロトコルに基づいてメッセージが送出される場合、当該アービトレーションによる通信遅延を防ぐことができる。
本発明に係る割当システムは、上述の割当装置と、複数の送信メールボックスを備える通信装置が複数のメッセージを順次送出するときの挙動をシミュレートし、前記複数のメッセージ全てが所定の許容時間以内に送出され得るメッセージ及び送信メールボックスの組を出力するシミュレーション装置とを備え、前記割当情報記憶部は、前記シミュレーション装置が出力したメッセージ及び送信メールボックスの組を記憶するようにしてあり、前記未割当情報記憶部は、前記割当情報記憶部が記憶する送信メールボックス以外の前記通信装置が備える送信メールボックスを記憶するようにしてあることを特徴とする。
本発明にあっては、シミュレーション装置は、複数の送信メールボックスを備える通信装置が複数のメッセージを順次送出するときの挙動をシミュレートし、前記複数のメッセージ全てが所定の許容時間以内に送出され得るメッセージ及び送信メールボックスの組を出力する。割当装置が備える割当情報記憶部は、シミュレーション装置が出力したメッセージ及び送信メールボックスの組を記憶する。割当装置が備える未割当情報記憶部は、割当情報記憶部が記憶する送信メールボックス以外の通信装置が備える送信メールボックスを記憶する。従って、例えば、シミュレーション装置によって、通信装置が各メッセージを送出するときの所要時間を所定の許容時間以内に割り当てることができ、更に割当装置によって当該所要時間を短縮することができる。
本発明に係る割当システムは、前記割当装置及びシミュレーション装置は、一体に構成されていることを特徴とする。
本発明にあっては、割当装置とシミュレーション装置とは一体に構成されている。従って、例えば、コンピュータ等の一の計算機によってシミュレーション及び割当の双方を行うことができる。
本発明に係る中継装置の製造方法は、接続される通信バスに優先度を含む複数のメッセージを送出するときに該メッセージ夫々を割り当てるべき複数の送信メールボックスを備え、異なるバスの間で所定のメッセージ群におけるメッセージを順次中継する中継装置を、上述の割当システムを用いて製造する中継装置の製造方法であって、前記シミュレーション装置に、前記中継装置の挙動をシミュレートさせる工程と、前記割当装置に、前記シミュレーション装置が出力した前記メッセージ群におけるメッセージ及び送信メールボックスの組に基づいて、前記中継装置が備える複数の送信メールボックス夫々に割り当てるべき前記メッセージ群におけるメッセージを決定させる工程とを含むことを特徴とする。
本発明にあっては、上述のシミュレーション装置に中継装置の挙動をシミュレートさせる工程を含む。また、当該シミュレーション装置が出力したメッセージ群におけるメッセージ及び送信メールボックスの組に基づいて、中継装置が備える複数の送信メールボックス夫々に割り当てるべき当該メッセージ群におけるメッセージを、上述の割当装置に決定させる工程を含む。従って、中継装置は例えば、シミュレーション装置によって、各メッセージを送出するときの所要時間を所定の許容時間以内に割り当てることができ、更に割当装置によって当該所要時間を短縮することができる。
本発明に係る割当方法は、複数のメッセージの夫々を複数の送信メールボックスに割り当てるに際しての前記メッセージ及び送信メールボックスの組を決定する割当方法であって、前記複数のメッセージ及び複数のメッセージが各割り当てられる複数の第1の送信メールボックスを対応付けて記憶するステップと、前記メッセージの割り当てがない一又は複数の第2の送信メールボックスを記憶するステップと、記憶された複数のメッセージの少なくとも一部を、前記第2の送信メールボックスに割り当てるステップと、前記少なくとも一部のメッセージ及び前記第2の送信メールボックスと、記憶された残部のメッセージ及び対応する第1の送信メールボックスとを夫々前記組として決定するステップとを含むことを特徴とする。
本発明にあっては、送出される複数のメッセージと、当該複数のメッセージが各割り当てられる複数の第1の送信メールボックスを対応付けて記憶するステップを含む。また、当該メッセージの割り当てがない第2の送信メールボックスを記憶するステップを含む。また、記憶された複数のメッセージの少なくとも一部を、第2の送信メールボックスに割り当てるステップを含む。更に、当該少なくとも一部のメッセージ及び第2の送信メールボックスと、記憶された残部のメッセージ及び対応する第1の送信メールボックスとを夫々、メッセージ及び当該メッセージが割り当てられる送信メールボックスの組として決定するステップを含む。従って、第1の送信メールボックスに割り当てられているメッセージを第2送信メールボックスに割り当てることで、各送信メールボックスに割り当てられているメッセージの数を減らすことができる。そのため、各メッセージが送信メールボックスに割り当てられるときの処理時間を減らすことができるため、メッセージが送出されるときに要する時間をより短縮することができる。
本発明に係るコンピュータプログラムは、複数のメッセージの夫々を複数の送信メールボックスに割り当てるに際しての前記メッセージ及び送信メールボックスの組の決定を、コンピュータに行わせるコンピュータプログラムにおいて、コンピュータに、前記複数のメッセージ及び複数のメッセージが各割り当てられる複数の第1の送信メールボックスを対応付けて記憶するステップと、前記メッセージの割り当てがない一又は複数の第2の送信メールボックスを記憶するステップと、記憶された複数のメッセージの少なくとも一部を、前記第2の送信メールボックスに割り当てるステップと、前記少なくとも一部のメッセージ及び前記第2の送信メールボックスと、記憶された残部のメッセージ及び対応する第1の送信メールボックスとを夫々前記組として決定するステップとを実行させることを特徴とする。
本発明にあっては、送出される複数のメッセージと、当該複数のメッセージが各割り当てられる複数の第1の送信メールボックスを対応付けて記憶するステップを、コンピュータに実行させる。また、当該メッセージの割り当てがない第2の送信メールボックスを記憶するステップを、コンピュータに実行させる。また、記憶された複数のメッセージの少なくとも一部を、第2の送信メールボックスに割り当てるステップを、コンピュータに実行させる。更に、当該少なくとも一部のメッセージ及び第2の送信メールボックスと、記憶された残部のメッセージ及び対応する第1の送信メールボックスとを夫々、メッセージ及び当該メッセージが割り当てられる送信メールボックスの組として決定するステップを、コンピュータに実行させる。従って、第1の送信メールボックスに割り当てられているメッセージを第2送信メールボックスに割り当てることで、各送信メールボックスに割り当てられているメッセージの数を減らすことができる。そのため、各メッセージが送信メールボックスに割り当てられるときの処理時間を減らすことができるため、メッセージが送出されるときに要する時間をより短縮することができる。
本発明によれば、メッセージの送出に要する時間をより短縮可能なメッセージ及び送信メールボックスの組を決定することができる。また、中継の遅延を確実に防止することができ、かつ中継に要する時間をより短縮することができる中継装置を製造することができる。
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
図1は、本実施の形態における割当システムとしてのコンピュータ1の構成を示すブロック図である。コンピュータ1は、パーソナルコンピュータ等の計算機が用いられ、車両に搭載される中継装置3(図3参照)の挙動のシミュレーションを行う。コンピュータ1がシミュレーションを行う対象となる中継装置3は、車両に搭載される複数の通信バス5(図3参照)と接続し、各通信バス5に対応する送信メールボックス34b(図3参照)を複数備え、当該通信バス5間でのメッセージのやり取りを中継する。このとき中継装置3は、メッセージを送出すべき通信バス5に対応する送信メールボックス34bの何れかに当該メッセージを割り当てた後、当該メッセージの送出を行う。コンピュータ1は、当該中継装置3の挙動のシミュレーションを行い、当該シミュレーションに基づいて、中継装置3がメッセージを中継するときにおける、当該メッセージ及び送信メールボックス34bの組を決定する。
コンピュータ1は、制御部11を備える。制御部11は、例えば一又は複数のCPU(Central Processing Unit)、マルチコアCPU等により構成される。また、コンピュータ1は、バスを介して制御部11に接続されている、記憶部12、一時記憶部13、入出力部14、読取部15、及び計時部16を備える。制御部11は、記憶部12に記憶されている後述のシミュレーションプログラム12a及び最適化プログラム12bを読み出して実行することにより各部を制御する。
記憶部12は、EEPROM(Electrically Erasable and Programmable ROM)、フラッシュメモリ、HDD(Hard Disk Drive)等の不揮発性メモリにより構成される。記憶部12には、シミュレーションプログラム12aが記憶されている。シミュレーションプログラム12aは、コンピュータ1が備える各部を制御し、中継装置3の挙動をシミュレートするためのプログラムである。また、記憶部12には、最適化プログラム12bが記憶されている。最適化プログラム12bは、コンピュータ1が備える各部を制御し、中継装置3がメッセージを中継するときにおける、当該メッセージ及び送信メールボックス34bの組を決定するためのプログラムである。また、記憶部12には、メッセージテーブル12cが記憶されている。メッセージテーブル12cには、コンピュータ1によってシミュレートされる中継装置3が接続される通信バス5に送出すべきメッセージ、及び当該通信バス5に送出されるべき他のメッセージを含んだテーブル形式のデータが記憶されており、詳細は後述する。更に、記憶部12には、中継装置3のシミュレートに用いられるシミュレーション条件が記憶されている。
一時記憶部13は、SRAM(Static RAM)、DRAM(Dynamic RAM)等のメモリにより構成される。一時記憶部13は、制御部11がシミュレーションプログラム12a及び最適化プログラム12bによる処理を行うことによって生ずる各種データを一時記憶する。
入出力部14には、外部からキーボード、ディスプレイ等の入出力装置が接続され、入出力装置からの入力信号を制御部11に出力し、制御部11からの出力信号を入出力装置に出力する。
読取部15は、CD−ROM、DVD、ブルーレイディスク、又はフレキシブルディスク等である記録媒体2から情報を読み取ることが可能である。制御部11は、読取部15により読み出された記録媒体2に記録されているデータを、一時記憶部13に記憶するか、又は記憶部12に記憶する。記録媒体2には、制御部11が実行することによりコンピュータ1が動作するための最適化プログラム2aが記録されている。記憶部12に記憶されている最適化プログラム12bは、記録媒体2から読取部15が読み取った最適化プログラム2aの複製であってもよい。
計時部16は、タイマ又はリアルタイムクロックを備え、制御部11の要求に応じて計時処理を行い、計時した時間を制御部11へ出力する。
図2は、メッセージテーブル12cの具体例を示す説明図である。メッセージテーブル12cには、各メッセージを識別するID毎に、ECU−ID、周期、データ長、及びバスIDが記憶されている。メッセージテーブル12cの各行は、メッセージを示している。IDは、例えば16進数で表される値であり、CANプロトコルのデータフレームにおける所謂アービトレーションフィールドに相当する優先度を含んだ情報である。このときIDは、値が小さくなるほど優先度が高くなる。ECU−IDは、メッセージの送出元となる中継装置3又はECUを識別する情報であり、例えば、値が0のとき中継装置3が送出することを表し、それ以外は、各値に対応するECUが送出することを表す。
また、周期は、メッセージの送出元が中継装置3のときは当該メッセージが中継装置3に受信されるべき周期を表し、メッセージの送出元がECUのときは当該メッセージがECUから送出されるべき周期を表す。単位は例えばミリ秒である。データ長は、各メッセージのデータの大きさを表し、単位は例えばバイトである。バスIDは、メッセージが送出されるべき通信バス5を識別するIDを表す。なお、本実施の形態においては、メッセージを識別するIDに優先度を含んでいる例を説明したが、メッセージを識別するIDとは別に優先度に係る情報を、ID毎に記憶していてもよい。
図3は、シミュレートの対象となる中継装置3の構成を示すブロック図である。中継装置3は、車両に搭載され、一又は複数のECU4が接続された複数の通信バス5に接続される。本実施の形態においては、中継装置3及び各ECU4は、CANプロトコルに基づく通信を行う。中継装置3は、制御部31を備え、制御部31は、例えば一又は複数のCPU、マルチコアCPU等により構成される。また、中継装置3は、バスを介して制御部31に接続されている記憶部32、一時記憶部33、及び通信部34を備える。制御部31は、記憶部32に記憶されている後述の制御プログラム32aを読み出して実行することにより各部を制御する。
記憶部32は、EEPROM、フラッシュメモリ等の不揮発性メモリにより構成される。記憶部32には、制御プログラム32aが記憶されている。制御プログラム32aは、中継装置3に受信されたメッセージを中継先に送信する等の中継装置3がメッセージを中継するための処理内容と、中継装置3が備える各部を制御するための処理内容とが記述されたプログラムである。また、記憶部32は、接続している通信バス5を識別するバスIDを記憶している。
一時記憶部33は、SRAM、DRAM等のメモリにより構成される。一時記憶部33は、制御部31が制御プログラム32aによる処理を行うことによって生ずる各種データを一時記憶する。
通信部34は、接続される通信バス5と同数備えられ、各通信バス5に伝送されるメッセージを受信し、制御部31の指令に基づいて、当該各通信バス5にメッセージを送出する。通信部34は、一又は複数の受信メールボックス34a及び送信メールボックス34bを備える。受信メールボックス34aは、対応する通信バス5に伝送するメッセージを順次格納し、制御部31に当該メッセージを出力する。制御部31は、受信メールボックス34aから出力されたメッセージに基づいて、当該メッセージを送出すべき通信バス5に対応する通信部34が備える送信メールボックス34bに当該メッセージを割り当てる。その後、制御部31は送信メールボックス34bに割り当てたメッセージを通信バス5に送出する前に、当該メッセージに含まれる優先度に基づいて、当該通信バス5に接続しているECU4とアービトレーションを行い、当該メッセージの送信権を取得する。制御部31は、送信権を取得したメッセージが割り当てられている送信メールボックス34bに指令を出し、当該メッセージを通信バス5に送出する。アービトレーションの処理は、従来のCANプロトコルによるものと同じであるため、詳細な説明を省略する。送信メールボックス34bは、一のメッセージが割り当てられている間、他のメッセージを割り当てることができない。
以上の構成の中継装置3は、異なる通信バス5に各接続されたECU4が送受信する複数のメッセージを順次中継する。このとき、中継装置3の送信メールボックス34bに割り当てられているメッセージに含まれる優先度が低かった場合、アービトレーションにより当該メッセージの送信権が取得され、通信バス5に送出されるまでに時間を要する虞がある。その間に、当該送信メールボックス34bに送出されるべき他の優先度の高いメッセージが中継装置3に受信されたとき、当該優先度が高いメッセージが通信バス5に送出されるまでに時間を要し、車両制御に悪影響を及ぼす虞がある。そこで、コンピュータ1により、中継装置3がメッセージを中継するときの挙動をシミュレートし、当該悪影響を及ぼさないメッセージ及び当該メッセージが割り当てられる送信メールボックス34bの組を事前に決定することで、当該悪影響を事前に回避可能となる。以下に、コンピュータ1がメッセージ及び送信メールボックス34bの組を決定するときの処理手順について説明する。
図4は、コンピュータ1が、メッセージ及び送信メールボックス34bの組を決定するときにおける処理手順を示すフローチャートである。コンピュータ1の制御部11は、記憶部12に記憶されているシミュレーションプログラム12a及びシミュレーション条件に基づいて、中継装置3の挙動のシミュレーション処理を行う(ステップS1)。制御部11は、ステップS1の処理で、中継装置3が中継する全メッセージについて、各メッセージの中継装置3による中継に要する所要時間が許容時間以内となるような、メッセージ及び送信メールボックス34bの組を出力結果とする。コンピュータ1は、ステップS1の処理を行うとき本発明のシミュレーション装置として機能する。なお、ステップS1のシミュレーション処理の詳細は後述する。
次いで、制御部11は、ステップS1の出力結果におけるメッセージ及び送信メールボックス34bの組と、メッセージが未割当の送信メールボックス34bとを夫々、一時記憶部13に一時記憶する(ステップS2)。当該組に含まれる送信メールボックス34bは、本発明における第1の送信メールボックスに相当し、メッセージが未割当の送信メールボックス34bは、本発明における第2の送信メールボックスに相当する。また、一時記憶部13は、ステップS2において、本発明の割当情報記憶部及び未割当情報記憶部に相当する。
次いで、制御部11は、ステップS2で一時記憶したメッセージ及び送信メールボックス34bの組と、未割当の送信メールボックス34bとに基づいて最適化処理を行う(ステップS3)。最適化処理とは、ステップS2で一時記憶した組及び未割当の送信メールボックス34bに基づいて、当該組に割り当てられているメッセージの少なくとも一部を未割当の送信メールボックス34bに再度割り当てる処理である。当該処理を行うことにより、制御部11は中継装置3におけるメッセージ及び送信メールボックス34bの組を決定する。コンピュータ1は、ステップS3の処理を行うとき本発明の割当装置として機能する。なお、ステップS3の最適化処理の詳細は後述する。
次いで、制御部11は、ステップS3の処理を行うことにより決定した決定結果を報知し(ステップS4)、その後処理を終える。決定結果は、中継装置3におけるメッセージ及び送信メールボックス34bの組を表す。ステップS4において、制御部11は、入出力部14に指令を出し、入出力部14に接続されている出力機器に当該決定結果を出力する。例えば、入出力部14にディスプレイが接続されている場合、当該決定結果をディスプレイの画面上に表示する。また、例えば、入出力部14にプリンタ等の画像形成装置が接続されている場合、紙等のシートに決定結果の画像形成を行ってもよい。ステップS4の処理の後、制御部11は処理を終える。
制御部11は、以上の処理を、シミュレーションの対象となる中継装置3の通信部34毎に行う。そのため、以下で説明するシミュレーション処理、最適化処理については、一の通信部34が対応する通信バス5にメッセージを送出するときに、車両制御に悪影響を及ぼさないメッセージ及び送信メールボックス34bの組を決定するために行われる処理である。
次に、ステップS1におけるシミュレーション処理について説明する。シミュレーション処理において、制御部11は、メッセージテーブル12c及びシミュレーション条件に基づいて、中継装置3がメッセージを中継するときの挙動をシミュレートする。本実施形態において、シミュレーション条件は、中継装置3の通信部34が備える送信メールボックス34bの数と、当該通信部34が送出する各メッセージが中継装置3に受信された後、送出されるまでに要する許容時間とを含む。許容時間は、各メッセージで異なっていてもよいし、同じであってもよい。シミュレーション条件には、中継装置3のシミュレートに必要な他の各種情報が含まれていてもよい。以下では適宜、中継装置3が図2中のメッセージテーブル12cにおけるバスIDが1のメッセージを中継するときを例として説明する。このとき、シミュレーション条件に含まれている送信メールボックス34bの数を6個として説明する。
図5は、シミュレーション処理のサブルーチンを示すフローチャートである。コンピュータ1の制御部11は、一の送信メールボックス34bを選択する(ステップS11)。制御部11は例えば、中継装置3の送信メールボックス34bに見立てた領域を一時記憶部13に確保する。このとき、制御部11は、送信メールボックス34bのIDを記憶する等により、確保した領域を識別可能にする。
次いで、制御部11は、メッセージテーブル12cから、ECU−IDが0のメッセージを一つ選択する(ステップS12)。制御部11は例えば、ステップS11の処理の後初めてステップS12の処理を行うとき、ECU−IDが0でかつ、最低の優先度を含むメッセージを選択する。例えば、制御部11は、メッセージテーブル12cにおけるIDが49Bのメッセージを選択する。このように、最低の優先度を含むメッセージから選択することによって、中継装置3がメッセージを中継する際に遅延を生じ易い状況のシミュレーションを行うことができる。
その後、制御部11は、ステップS12で選択したメッセージの遅延時間を算出する(ステップS13)。制御部11は例えば、メッセージを選択してから、送出される通信バス5に接続されたECU4が送出するメッセージとのアービトレーションにより、当該メッセージが送信権を取得するまでの時間を、計時部16が計時した時間等を用いて算出する。このとき、制御部11は、中継装置3が当該アービトレーションによりメッセージが送信権を取得するまでの過程をメッセージテーブル12cに記憶されている各種情報を用いて再現する。
次いで、制御部11は、全メッセージを選択したか否かを判定する(ステップS14)。例えば、制御部11は、メッセージテーブル12cに記憶されているECU−IDが0のメッセージ数を取得し、ステップS12でメッセージを選択した回数が取得したメッセージ数と同じであるか否かにより判定を行う。全メッセージを選択していないと判定した場合(S14:NO)、制御部11は、ステップS12に処理を戻す。このとき、制御部11は、先にステップS12で選択したメッセージが最低の優先度を含むメッセージであったとき、最高の優先度を含むメッセージを選択する。先に選択したメッセージが最低の優先度を含んでいない場合、制御部11は、全メッセージにおける優先度の高さの順において、当該先に選択したメッセージが含む優先度の次位の優先度を含むメッセージを選択する。例えば、制御部11は、先に選択したメッセージのIDが49Bであったとき、IDが024のメッセージを選択する。また例えば、先に選択したメッセージのIDが025であったとき、IDが026のメッセージを選択する。
また、制御部11は、ステップS13の処理において、ステップS12で先に選択されたメッセージの遅延時間を積算するように処理を行う。例えば、制御部11は、メッセージのIDが49Bのメッセージについて先に遅延時間を算出した場合、IDが024の遅延時間を49Bの遅延時間に積算する。このように遅延時間を積算することによって、送信メールボックス34bにメッセージが順次割り当てられたときの各メッセージの遅延時間を算出することができる。
ステップS14において全メッセージを選択したと判定した場合(S14:YES)、制御部11は、各メッセージの遅延時間が許容時間未満であるか否かを判定する(ステップS15)。許容時間未満でないと判定した場合(S15:NO)、制御部11は、ステップS11に処理を戻す。このとき、制御部11は遅延時間が許容時間以上であったメッセージについて、新たな送信メールボックスに割り当て、再度遅延時間を算出する処理を行う。具体的には、制御部11は、ステップS11の処理で先に選択した送信メールボックス34bとは異なる送信メールボックス34bを選択する。即ち、先に一時記憶部13に確保した領域とは異なる領域を確保する。ステップS12の処理では、制御部11は、ステップS15で遅延時間が許容時間以上と判定されたメッセージを選択する。その後、ステップS13の処理で制御部11は、選択したメッセージの遅延時間を算出する。また、制御部11は、ステップS11の処理で確保する領域の数が、シミュレーション条件の送信メールボックス34bの数よりも多くなる場合、シミュレーション条件の許容時間の条件を変更し、全メッセージについて再度シミュレーション処理を行うように構成してもよい。
許容時間未満であると判定した場合(S15:YES)、制御部11は、図4中のステップS2に処理を戻す。
以上のシミュレーション処理を行うことによって、制御部11は、全メッセージが許容時間以内に通信バス5に送出可能なメッセージ及び送信メールボックス34bの組を出力結果とすることができる。なお、出力結果は、本発明の割当情報記憶部に記憶されるべき情報である。また、シミュレーション処理の処理手順は、上述の処理手順以外であってもよい。
図6は、シミュレーション処理の出力結果の具体例を示す説明図である。図6には、中継装置3が図2中のメッセージテーブル12cにおけるバスIDが1のメッセージを中継するときの挙動をシミュレーションした出力結果が表されている。図6においては、各IDのメッセージが送信メールボックスIDの送信メールボックス34bに割り当てられることを表している。例えば、IDが024のメッセージは、送信メールボックスIDが2の送信メールボックス34bに割り当てられることが表されている。即ち、図6においては、送信メールボックスIDが1、2、及び3の送信メールボックス34bには、6個、5個、及び1個のメッセージが夫々割り当てられる。このように、全メッセージが許容時間以内に送出可能なメッセージ及び送信メールボックス34bの組をシミュレーションの出力結果として得ることができたとしても、各送信メールボックス34bに割り当てられているメッセージの数にばらつきがある。また、シミュレーション条件で送信メールボックス34bの数を6個と設定した場合、メッセージが未割当の3個の送信メールボックス34bが余る。従って本実施形態においては、制御部11が以下に示す最適化処理の処理手順を行うことによって、未割当の送信メールボックス34bが存在せず、各送信メールボックス34bに割り当てられるメッセージの数が少なくなるように、メッセージの再割り当てを行う。
図7は、最適化処理のサブルーチンを示すフローチャートである。以下では適宜、図6の出力結果に基づいて最適化処理を行うことを例として説明する。このとき、シミュレーション条件に含まれている送信メールボックス34bの数を6個として説明する。
コンピュータ1の制御部11は、平均メッセージ数を算出する(ステップS21)。平均メッセージ数は、各送信メールボックス34bに割り当てられるべきメッセージの数の平均値を表す。制御部11は例えば、上述のシミュレーション処理の出力結果におけるメッセージの総数を、シミュレーション条件に含まれる送信メールボックス34bの数で除することで算出する。例えば、図6の出力結果において、制御部11は、12個のメッセージを、6個の送信メールボックス34bで除した値である2を、平均メッセージ数として算出する。このとき、送信メールボックス34bの数は、シミュレーション処理によってメッセージが割り当てられる送信メールボックス34b及びメッセージが未割当の送信メールボックス34bの総数であることは言うまでもない。制御部11はステップS21において最適化プログラム12bを実行することにより、本発明の算出部として機能する。
次いで、制御部11は、決定処理を行う(ステップS22)。決定処理とは、上述の出力結果における送信メールボックス34b毎に対応するメッセージを再割り当てするときに必要な送信メールボックス34bの数を決定する処理である。このとき、制御部11は、中継装置3が備える各送信メールボックス34bにステップS21で算出した平均メッセージ数に基づいて、送信メールボックス34bの数を決定する。制御部11はステップS22において最適化プログラム12bを実行することにより、本発明の決定部及び判定部として機能する。決定処理の詳細は後述する。
次いで、制御部11は、再割当処理を行う(ステップS23)。再割当処理とは、ステップS22で決定した数の送信メールボックス34b夫々に、上述の出力結果における送信メールボックス34bに対応するメッセージの再割り当てを行う処理である。制御部11はステップS23において最適化プログラム12bを実行することにより、本発明の再割当処理部として機能する。再割当処理の詳細は後述する。
図8は、決定処理のサブルーチンを示すフローチャートである。コンピュータ1の制御部11は、一時記憶部13に記憶されている上述のシミュレーション処理の出力結果からメッセージを選択する(ステップS31)。このとき、制御部11は、出力結果における一の送信メールボックス34bに対応するメッセージを全て選択する。次いで、制御部11は、選択したメッセージの再割り当てを行うときに必要となる送信メールボックス34bの必要数を算出する(ステップS32)。具体的には、制御部11は、選択したメッセージの数を、図7中のステップS21で算出した平均メッセージ数で除し、除した値の小数部を切り上げた値を当該必要数とする。例えば、選択したメッセージの数が5個であり、算出した平均メッセージ数が2個であった場合、制御部11は、ステップS32において、必要数を3個とする。
次いで、制御部11は、算出した必要数を一時記憶部13に一時記憶する(ステップS33)。その後、制御部11は、メッセージの選択を完了したか否かを判定する(ステップS34)。具体的には、制御部11は、シミュレーション処理の出力結果における送信メールボックス34b全てについて対応するメッセージを選択したか否かにより判定を行う。例えば、図6に示す出力結果の場合、制御部11は、送信メールボックスIDが1、2、及び3に各対応するメッセージが全て選択されたか否かにより判定を行う。選択が完了していないと判定した場合(S34:NO)、制御部11は、ステップS31に処理を戻す。このとき、制御部11は、ステップS31において、先に選択したメッセージに対応する送信メールボックス34bとは異なる送信メールボックス34bに対応するメッセージを選択する。
選択が完了したと判定した場合(S34:YES)、制御部11は、送信メールボックス34bの必要総数を算出する(ステップS35)。具体的には、制御部11は、ステップS33で一時記憶された必要数の総数を算出する。
次いで、制御部11は、算出した必要総数が、中継装置3が備える送信メールボックス34bの数よりも多いか否かを判定する(ステップS36)。必要総数が送信メールボックス34bの数以下であると判定した場合(S36:NO)、制御部11は、図7中のステップS23に処理を戻す。
必要総数が送信メールボックス34bの数よりも多いと判定した場合(S36:YES)、制御部11は、必要数調整処理を行う(ステップS37)。必要数調整処理とは、必要総数が送信メールボックス34bの数と同数となるように調整する処理である。具体的には、制御部11は、ステップS31で選択されたメッセージの中に最低の優先度を含むメッセージが存在するときに算出された必要数を減らし、減らした値を先に算出した必要数に代えて一時記憶部13に記憶する。例えば、図6の出力結果の場合、送信メールボックスID1、2、3夫々に対応し、ステップS31で選択されたメッセージに基づいて、ステップS32で算出される必要数は夫々、3個、3個及び1個となり、必要総数は7個となる。このとき、必要総数が、送信メールボックス34bの数の6個よりも多いため、送信メールボックスID1に対応するメッセージについて送信メールボックス34bの必要数を3個から2個に代えて一時記憶部13に記憶する。
また例えば、必要総数及び送信メールボックス34bの差が2以上であるとき、ステップS37において制御部11は、選択されたメッセージの中に最低の優先度を含むメッセージが存在するときに算出された必要数の数を、当該差の値だけ減らす処理を行う。このとき、制御部11は、特定の条件の成否を判定し、当該条件が成立すると判定した場合、当該選択されたメッセージとは異なるメッセージがステップS31で選択されたときに算出された必要数の数を減らすようにしてもよい。特定の条件は例えば、ステップS31で選択されたメッセージの中に最低の優先度を含むメッセージが存在するときに算出された必要数が、当該差の値以下ということを表す。また、当該選択されたメッセージとは異なるメッセージとは例えば、当該選択されたメッセージ以外の全メッセージ中における最も低い優先度を含むメッセージである。即ち、当該選択されたメッセージとは異なるメッセージは、当該最低の優先度を含むメッセージに対応する送信メールボックスとは異なる送信メールボックスに割り当てられるメッセージの中において、最低の優先度を含むメッセージを表す。例えば図6の出力結果においては、IDが0B8のメッセージを指す。
以上の処理を行うことによって、通信部34が備える送信メールボックス34b全てにメッセージが割り当てられるようにすることができる。なお、図8中の処理において制御部11は、ステップS36で最適化プログラム12bを実行することにより、本発明の判定部として機能し、それ以外のステップでは決定部として機能する。
図9は、再割当処理のサブルーチンを示すフローチャートである。コンピュータ1の制御部11は、一時記憶部13に記憶されている上述のシミュレーション処理の出力結果からメッセージを選択する(ステップS41)。このとき、制御部11は、出力結果における一の送信メールボックス34bに対応するメッセージを全て選択する。
次いで、制御部11は、均等割当が可能であるか否かを判定する(ステップS42)。具体的には、制御部11は、図7中のステップS21で算出した平均メッセージ数が小数部を含まず、かつステップS41で選択したメッセージの数を当該平均メッセージ数で除したときに小数部を含まないとき、均等割当が可能であると判定する。
均等割当が可能であると判定した場合(S42:YES)、制御部11は、均等割当処理を行う(ステップS43)。均等割当処理とは、上述の決定処理によって決定され、一時記憶部13に記憶されている必要数の送信メールボックス34b夫々に、選択したメッセージを均等に割り当てる処理である。このとき、均等割当処理では、近い優先度を含むメッセージが同じ送信メールボックス34bに割り当てられる。例えば図6の出力結果において、IDが0C1、123、23B、321、400、及び49Bのメッセージが選択され、必要数が2個あったとき、0C1、123、及び23Bのメッセージと、321、400、及び49Bのメッセージとが夫々同じ送信メールボックス34bに割り当てられる。
均等割当が可能でないと判定した場合(S42:NO)、制御部11は、不均等割当処理を行う(ステップS44)。不均等割当処理とは、割り当てられるメッセージの数が少ない送信メールボックス34bに高い優先度を含むメッセージが割り当てられるように、必要数の送信メールボックス34b夫々に、選択したメッセージを割り当てる処理である。例えば、IDが024、025、026、0B4、及び0B8のメッセージが選択され、必要数が3個であったとき、024のメッセージと、025及び026のメッセージと、0B4及び0B8のメッセージとが夫々同じ送信メールボックス34bに割り当てられる。
ステップS43又はステップS44の処理の後、制御部11は、メッセージの選択を完了したか否かを判定する(ステップS45)。ここで、ステップS45の処理は、図8中のステップS34の処理と同様であるため説明を省略する。選択を完了していないと判定した場合(S45:NO)、制御部11は、ステップS41に処理を戻す。このとき、制御部11は、ステップS41において、先に選択したメッセージに対応する送信メールボックス34bとは異なる送信メールボックス34bに対応するメッセージを選択する。選択を完了したと判定した場合(S45:YES)、制御部11は、図7中の最適化処理のサブルーチンに処理を戻す。即ち、制御部11は、当該サブルーチンを抜け、図4中のステップS4に処理を戻す。
制御部11は、以上の図7〜9までの処理を行うことによって、未割当の送信メールボックス34bが存在せず、各送信メールボックス34bに割り当てられるメッセージの数が少なくなるような、メッセージ及び送信メールボックスの組を決定することができる。図10は、最適化処理の効果を説明する説明図である。図10には、図6の出力結果に基づく最適化処理前と最適化処理後とでの、メッセージと当該メッセージが割り当てられる送信メールボックスとの対応表が示されている。送信メールボックスID(最適化前)の列には、最適化処理前の送信メールボックスのIDが示されている。即ち、図6に示した送信メールボックスIDと同様である。送信メールボックスID(最適化後)の列には、最適化処理後の送信メールボックスIDが示されている。
図10の表に示されているように、最適化処理を行った方が、未割当の送信メールボックス34bが存在せず、各送信メールボックス34bに割り当てられるメッセージの数が少なくなっている。また、最適化処理後の各送信メールボックス34b夫々には、最適化処理前に異なる送信メールボックス34bに対応していたメッセージが割り当てられていない。そのため、高い優先度を含むメッセージ及び低い優先度を含むメッセージが混在することを防ぐことができる。なお、制御部11は、最適化処理前に異なる送信メールボックス34bに対応していたメッセージが、最適化処理後の各送信メールボックス34b夫々に割り当てられるように処理を行ってもよい。この場合であっても、各送信メールボックス34bに割り当てられるメッセージの数を、最適化処理を行う前に比べて減らすことができるため、各メッセージが送出されるときに要する時間を短縮することができる。
以上の構成及び処理によって、コンピュータ1は、メッセージの送出に要する時間をより短縮可能なメッセージ及び送信メールボックスの組を決定することができる。
なお、本実施形態においては、制御部11は、図7〜9に示したような処理手順で最適化処理を行うことを説明したが、各送信メールボックス34bに割り当てられるメッセージの数が少なくなるような他の処理手順で最適化処理を行ってもよい。例えば、制御部11は、最適化処理を行う前の送信メールボックス34bに割り当てられるメッセージの数に基づいて、特定の一の送信メールボックス34bに対応するメッセージを、一又は複数の未割当の送信メールボックス34bに優先的に割り当てるようにしてもよい。特定の一の送信メールボックス34bは例えば、対応するメッセージの数が、全メッセージに対して所定の割合以上の数である送信メールボックス34bを表す。このような処理を行うことによって、最適化処理を行う前の各送信メールボックス34bに割り当てられるメッセージの数のばらつきが大きい場合であっても、各送信メールボックス34bに割り当てられるメッセージの数が略均等となるようにすることができる。そのため、当該処理手順による最適化処理は、各送信メールボックス34bに割り当てられるメッセージ数のばらつきが大きくなるようなシミュレーション処理の出力結果に対して好適である。
次に、上述のコンピュータ1を用いて中継装置3を製造する製造方法を説明する。中継装置3の製造装置は、中継装置3に接続されるべき通信バス5、各通信バス5に接続されるべきECU4、及び各ECU4が送出するメッセージに係る情報を用いて、メッセージテーブル12cを作成し、コンピュータ1に記憶させる。また、製造装置は、中継装置3が備える送信メールボックス34bの数及び各メッセージの許容時間を含むシミュレーション条件を記憶部12に記憶させる。その後、製造装置は、コンピュータ1に図4、5、及び7〜9に示した処理を行わせて決定された組となるように、メッセージを送信メールボックス34bに割り当てるようにする。
以上のようにして中継装置3を製造することによって、中継装置3による中継の遅延を確実に防止することができ、かつメッセージの中継に要する時間をより短縮することができる。製造装置は、中継装置3に係る条件を反映したメッセージテーブル12c及びシミュレーション条件を新たに作成し、記憶部12に記憶させることで、コンピュータ1は様々な条件に係る中継装置3の挙動をシミュレートし、メッセージ及び送信メールボックス34bの組を決定することができる。そのため、接続されるべき通信バス5の数等の条件が夫々異なる複数の中継装置3を製造する場合であっても、各中継装置3に対応するメッセージテーブル12c及びシミュレーション条件を作成し、コンピュータ1を用いることができる。
なお、本実施の形態においては、コンピュータ1が中継装置3における挙動のシミュレーションと、当該シミュレーションの出力結果に基づく最適化とを行うことを説明したが、当該シミュレーションと最適化とは別の装置で行われてもよい。このとき、シミュレーションを行った装置が、最適化を行う装置にシミュレーションの結果を出力し、最適化を行う装置が当該出力結果を記憶領域に記憶することで、上述のような処理を実現することができる。シミュレーションを行う装置は、本発明のシミュレーション装置に相当し、最適化を行う装置は、本発明の割当装置に相当する。
また、本実施の形態においては、コンピュータ1は、中継装置3がメッセージを中継するときの挙動をシミュレートしたが、送信メールボックス34bを備える中継装置3以外の通信装置の挙動をシミュレートし、メッセージ及び当該メッセージが割り当てられる送信メールボックスの組を決定するようにしてもよい。更には、コンピュータ1は、上述の出力結果のような、複数のメッセージ及び当該メッセージが各割り当てられる送信メールボックスの情報と、未割当の送信メールボックスの情報とを予め記憶しておけば、シミュレーションを行わなくてもよい。
更に、今回開示された実施の形態は全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。