(57)【要約】【課題】限られたリソースの中で特定の通信について最大性能を保証しつつ、ＱｏＳの低下を最小限に抑えることが可能な中継装置を提供する。【解決手段】中継装置は、複数の通信線の何れかを介して通信可能に接続された複数の外部装置のうち、一の通信線に接続された外部装置から受信したフレームを、該フレームの中継先を特定するための中継情報テーブルを検索して他の通信線に送信する。中継情報テーブルは、フレームの種別を識別する種別識別情報をフレームの中継先となる通信線を識別する中継先識別情報に対応付けて記憶してあり、且つ、前記種別識別情報又は中継先識別情報に基づく優先度に応じて複数のサブテーブルに分割されている。中継装置は、前記外部装置から受信したフレームに含まれる種別識別情報を検索キーにして優先度が高い順に前記サブテーブルを検索することにより、中継先を特定する。【選択図】図１
2017147662.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信線の何れかを介して通信可能に接続された複数の外部装置のうち、一の通信線に接続された外部装置から送信されたフレームを他の通信線に送信して中継する中継装置において、
フレームの種別を識別する種別識別情報をフレームの中継先となる通信線を識別する中継先識別情報に対応付けて記憶してある中継情報テーブルと、
前記外部装置から送信されたフレームに含まれる種別識別情報に基づいて前記中継情報テーブルを検索することにより、該フレームの中継先を特定する制御部と
を備え、
前記中継情報テーブルは、前記種別識別情報又は中継先識別情報に基づく優先度に応じて複数のサブテーブルに分割されており、
前記制御部は、優先度が高い順に前記サブテーブルを検索するようにしてある
ことを特徴とする中継装置。
【請求項２】
前記サブテーブルは、前記種別識別情報に基づく所定の順にソートされていることを特徴とする請求項１に記載の中継装置。
【請求項３】
前記フレームは、ＣＡＮ、ＬＩＮ、ＭＯＳＴ、ＴＣＰ／ＩＰ、ＡＶＴＰ又はＦｌｅｘＲａｙ（登録商標）の通信プロトコルに準拠するフレームであることを特徴とする請求項１又は２に記載の中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信線の何れかを介して通信可能に接続された複数の外部装置との間でメッセージを中継する中継装置に関する。
【背景技術】
【０００２】
近年、通信線を介して接続された複数の通信装置夫々に機能を割り振って連携させることにより、多様な処理を実行するシステムが数多く利用されている。例えば、車両に配される車載ＬＡＮ（Local Area Network ）の分野では、通信装置としてＥＣＵ（電子制御装置：Electronic Control Unit ）を用い、各ＥＣＵに夫々特化させた処理を行なわせて相互にメッセージを交換させることにより、システムとして多様な機能を実現している。
【０００３】
例えばＣＡＮ（Controller Area Network ）の通信プロトコル（以下、単にプロトコルとも言う）に基づく車載通信システムでは、１つの通信線に接続可能なＥＣＵの数に制限があったり、ＥＣＵの役割によって通信速度が異なったりすることから、ＥＣＵを複数の群に分けて群毎に複数のＥＣＵを１つの通信線に接続しておき、複数の通信線の間で授受されるメッセージを中継装置（ゲートウェイ）で中継する構成がしばしば採用される。
【０００４】
中継装置は、一のＥＣＵから受信したフレームを例えばメッセージＩＤで識別し、識別に用いたメッセージＩＤを検索キーにして、中継の要否及び中継先の通信線を特定するための中継情報テーブルを参照し、特定した中継先の通信線から中継すべきフレームを送信することによって中継処理を実現している。中継対象のＥＣＵが増加したり、一時的に通信量が増大したりする場合は、中継装置における中継処理の性能が著しく低下することがある。
【０００５】
そこで、中継装置にＱｏＳ（Quality of Service ）の機能を実装することによって通信品質の低下を防止したり、中継処理を高速化したりする手法が種々提案されている。例えば特許文献１には、フレームデータの送信元を示すＩＤ毎に記憶領域が分割されているＩＤ毎バッファから、送信すべきデータを記憶した記憶領域を検索する際に、記憶領域のデータが更新されているか否かを示す更新フラグを複数まとめたグループ毎の更新状況を示すインデックスフラグを設けておき、インデックスフラグを先に検索してから更新フラグを検索することによって、送信すべきデータの記憶領域を効率的に検索する技術が記載されている。
【０００６】
また、特許文献２には、ネットワークインタフェース部を介して通信線から受信したパケットをパケットバッファに記憶すると共に、高速アクセス可能なヘッダＲＡＭにパケットのヘッダ情報を記憶し、ヘッダＲＡＭに対する読み出し及び書き込みの競合を抑止することにより、通信品質（ＱｏＳ）を保証して高速にルーティングする中継装置が記載されている。
【０００７】
更に、特許文献３には、パケットのヘッダ情報からパケットの転送先を検索してパケットを転送するルーティングプロセッサに、パケットの転送を実行するパケット転送ユニットを複数個設けておき、受信したパケットをパケット単位にパケット転送ユニットに振り分けることによって中継処理性能を向上させるネットワーク中継装置が記載されている。更にまた、特許文献４には、複数のネットワーク毎に、通信プロトコルの制御処理を行うプロトコルコントローラと、プロトコルコントローラで処理されたフレームのＩＤに対応する情報を宛先検索テーブルから取得するサーチエンジンと、フレームコンバータとを備えてハードウェア自立中継処理を行うことにより、高速処理化及び通信品質確保を可能とするゲートウェイが記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−２２５４４１号公報
【特許文献２】特開２０００−２４４５７０号公報
【特許文献３】特開２００１−２１１２０３号公報
【特許文献４】特開２００６−３５２２３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１から４に記載された技術は、装置又はシステムが成立することに主眼がおかれているため、最大性能を考慮せずに最低性能を保証したり、専用のハードウェアやマルチコア処理等の潤沢なリソースによる処理を前提としたりするものである。これに対し、リソースを過大に消費しないで特定の通信を高速に処理すると同時に、それ以外の通信についてはＱｏＳをできるだけ維持したいという要求がある。
【００１０】
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、限られたリソースの中で特定の通信について最大性能を保証しつつ、ＱｏＳの低下を最小限に抑えることが可能な中継装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一態様に係る中継装置は、複数の通信線の何れかを介して通信可能に接続された複数の外部装置のうち、一の通信線に接続された外部装置から送信されたフレームを他の通信線に送信して中継する中継装置において、フレームの種別を識別する種別識別情報をフレームの中継先となる通信線を識別する中継先識別情報に対応付けて記憶してある中継情報テーブルと、前記外部装置から送信されたフレームに含まれる種別識別情報に基づいて前記中継情報テーブルを検索することにより、該フレームの中継先を特定する制御部とを備え、前記中継情報テーブルは、前記種別識別情報又は中継先識別情報に基づく優先度に応じて複数のサブテーブルに分割されており、前記制御部は、優先度が高い順に前記サブテーブルを検索するようにしてあることを特徴とする。
【００１２】
本発明の一態様に係る中継装置は、前記サブテーブルは、前記種別識別情報に基づく所定の順にソートされていることを特徴とする。
【００１３】
本発明の一態様に係る中継装置は、前記フレームは、ＣＡＮ、ＬＩＮ（Local Interconnect Network ）、ＭＯＳＴ（Media Oriented Systems Transport ）、ＴＣＰ／ＩＰ（Transmission Control Protocol／Internet Protocol ）、ＡＶＴＰ（Audio Video Transport Protocol ）又はＦｌｅｘＲａｙ（登録商標）の通信プロトコルに準拠するフレームであることを特徴とする。
【００１４】
本態様にあっては、フレームの種別を識別する種別識別情報を、フレームの中継先となる通信線を識別する中継先識別情報に対応付けたレコードが中継情報テーブルに記憶されており、更にこの中継情報テーブルが、レコードに含まれる種別識別情報又は中継先識別情報に基づく優先度に応じて複数のサブテーブルに分割されている。中継装置は、複数の通信線の何れかに接続された外部装置から送信されたフレームを受信し、受信したフレームに含まれる種別識別情報を検索キーにして優先度が高い順にサブテーブルを検索し、検索でヒットしたレコードに含まれる中継先識別情報によって識別される通信線に、受信したフレームを中継すべく送信する。
これにより、種別識別情報又は中継先識別情報に基づく優先度が高いフレームほど、少ない処理量で検索がヒットすることとなり、中継先となる通信線が短時間のうちに特定される。
【００１５】
本態様にあっては、レコードに含まれる種別識別情報に基づく所定の順にサブテーブルがソートされているため、例えば二分木探索を用いてサブテーブルが高速に検索される。
【００１６】
本願にあっては、ＣＡＮ、ＬＩＮ、ＭＯＳＴ、ＴＣＰ／ＩＰ、ＡＶＴＰ又はＦｌｅｘＲａｙの通信プロトコルに準拠するフレームを中継するため、車載通信システムに適した中継装置が実現される。
【発明の効果】
【００１７】
上記によれば、種別識別情報又は中継先識別情報に基づく優先度が高いレームほど、少ない処理量で検索がヒットすることとなり、中継先となる通信線が短時間のうちに特定される。比較的優先度が低いフレームについては、検索における処理量が段階的に増加するにとどまる。
従って、限られたリソースの中で特定の通信について最大性能を保証しつつ、ＱｏＳの低下を最小限に抑えることが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態に係る車載通信システムの構成を示すブロック図である。
【図２】中継装置の構成を示すブロック図である。
【図３】一の通信装置の構成を示すブロック図である。
【図４】中継情報テーブルの分割例を示す説明図である。
【図５】中継情報テーブルの具体的な内容例を示す説明図である。
【図６】中継情報テーブルの具体的な内容例を示す説明図である。
【図７】中継情報テーブルを検索して中継先を特定するＣＰＵの処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
（実施の形態）
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。なお、以下に示す実施の形態では、本発明を車載通信システムに適用した場合を例に説明する。図１は、本発明の実施の形態に係る車載通信システム１の構成を示すブロック図である。車載通信システム１は、ワイヤーハーネス等を用いた複数の通信バス（通信線に相当）２ａ、２ｂ又は２ｃに接続されてフレームを送受信するＥＣＵとしての通信装置（外部装置に相当）４，４・・・と、通信バス２ａ、２ｂ及び２ｃに接続されており、一の通信バスに接続された通信装置４から送信されたフレームを受信して他の通信バスに送信することによりフレームを中継する中継装置３とを備える。ここでのフレームは、データリンク層を流れるパケットに限定されず、広義のパケット又は所謂メッセージであってもよい。車載通信システム１は車両１００に搭載されているが、車両１００以外に適用するものであってもよい。
【００２０】
通信装置４，４・・・は、通信バス２ａ，２ｂ，２ｃの何れかにバス型に接続されており、ＣＡＮのプロトコルに準拠するメッセージフレーム（以下、単にフレームという）を送受信する。通信装置４，４・・・及び中継装置３間で送受信されるフレームは、各フレームを識別するメッセージＩＤ（Identifier ：識別子）をヘッダ部に含み、複数のデータをデータ部に含んでなる。通信装置４，４・・・は、自身の動作によって得られるデータを含むフレームを送信する。
【００２１】
通信装置４，４・・・は、測定値、計算値、制御値等の各種物理量の数値情報を含むデータの送信及び／又はエンジン、ブレーキ等の車載機器の制御が可能な装置である。例えば一の通信装置４は、ＡＢＳ（Antilock Brake System ）として機能するものであり、車輪の回転速度（車輪速）を検知するセンサが接続されている。この通信装置４は、車両１００の制動時にセンサを介して検知した車輪速に基づいてブレーキを制御すると共に、車輪速の測定値をデータとして通信バス２ａ，２ｂ，２ｃに接続されている他の通信装置４，４・・・宛に送信する。
【００２２】
図２は、中継装置３の構成を示すブロック図である。中継装置３は、各構成部の動作を制御するＣＰＵ（Central Processing Unit ）３０と、フラッシュメモリ、ＥＰＲＯＭ（Erasable Programmable Read Only Memory ）、ＥＥＰＲＯＭ（Electrically EPROM ：登録商標）等の不揮発性メモリを用いたＲＯＭ３１と、ＤＲＡＭ（Dynamic Random Access Memory ）、ＳＲＡＭ（Static Random Access Memory ）等の書き換え可能なメモリを用いたＲＡＭ３２と、ＣＡＮのプロトコルに準拠したネットワークコントローラを用いたＣＡＮコントローラ３３と、内部バス３４とを備える。ＣＰＵ３０、ＲＯＭ３１、ＲＡＭ３２、及びＣＡＮコントローラ３３はいずれも内部バス３４によって相互に接続されている。ＣＰＵ３０、ＲＯＭ３１、ＲＡＭ３２、ＣＡＮコントローラ３３、及び内部バス３４でマイクロコンピュータを構成してもよい。ＣＰＵ３０は、図示しないオルタネータ、バッテリ等の電力供給装置から電力の供給を受け、ＲＯＭ３１から各種情報をＲＡＭ３２へ読み出し、ＣＡＮコントローラ３３を制御し、フレームを送受信させる。
【００２３】
ＲＯＭ３１には、ＣＰＵ３０が読み出して実行する制御プログラムが記憶されている。ＲＯＭ３１には、また、ＣＰＵ３０が参照する中継情報テーブル３５が記憶されている。中継情報テーブル３５には、中継装置３がフレームを中継するときに中継先の通信バスを特定するためのレコードが記憶されている。中継情報テーブル３５の詳細については後述する。ＲＡＭ３２には、ＣＰＵ３０の処理の過程で発生する情報が一時的に記憶される。
【００２４】
ＣＡＮコントローラ３３は、通信制御部３６と、送受信バッファ３７と、第１送受信部３８ａと、第２送受信部３８ｂと、第３送受信部３８ｃとを備え、ＣＡＮのプロトコルに準拠して通信バス２ａ，２ｂ，２ｃを介した通信を実現する。
【００２５】
通信制御部３６は、第１送受信部３８ａ、第２送受信部３８ｂ又は第３送受信部３８ｃによりフレームを受信した場合、受信したフレームを受信順に送受信バッファ３７に記憶すると共に、フレームを受信した旨をＣＰＵ３０へ通知する。通信制御部３６は、ＣＰＵ３０からの指示に基づいてフレームを中継する。即ち、通信制御部３６は、ＣＰＵ３０からの指示に基づいて送受信バッファ３７に記憶されているフレームを抽出し、中継先の通信バス２ａ、２ｂ及び２ｃ夫々と接続する第１送受信部３８ａ、第２送受信部３８ｂ及び第３送受信部３８ｃの少なくとも１つに、抽出したフレームを受け渡して送信させる。送受信バッファ３７は、ＳＲＡＭ、ＤＲＡＭ等の書き換え可能なメモリを利用して、受信されたフレーム又は送信されるべきフレームを一時的に記憶するものである。
【００２６】
第１送受信部３８ａ、第２送受信部３８ｂ及び第３送受信部３８ｃ夫々はフィルタ回路、ＡＤ変換回路等を含み、通信バス２ａ、２ｂ及び２ｃにおける差動電圧を検知して信号を出力することにより、フレームの送受信を実現する。即ち、通信制御部３６は、第１送受信部３８ａ、第２送受信部３８ｂ及び第３送受信部３８ｃ夫々により通信バス２ａ、２ｂ及び２ｃにおける通信状況をモニタし、自身がフレームを送信することが可能であるか否かを判断し、送信が可能である場合にフレームを送信する。例えば、通信制御部３６は、通信バス２ａに接続されている通信装置４，４・・・がフレームを送信していない間に第１送受信部３８ａによってフレームを送信することができる。一方、通信バス２ａに接続されている通信装置４，４・・・がフレームを送信している間は、通信制御部３６は第１送受信部３８ａにより、送信されているフレームを受信する。
【００２７】
通信バス２ａに接続されている通信装置４，４・・・及び中継装置３の何れか複数から同時にデータの送信が開始された場合、ＣＡＮのプロトコルに基づく調停によって何れかが優先的にフレームを送信する。詳細には、以下のようにしてフレームの優先／非優先が決定される。フレームは０（ゼロ）及び１の２値で表わされるデジタル信号により送受信される。フレーム先頭のヘッダ部に含まれるメッセージＩＤがアービトレーションフィールドとして利用され、アービトレーションフィールド内のビット列により通信バス２ａにおける調停が行なわれる。ＣＡＮのプロトコルでは、０（ゼロ）がより長く続くアービトレーションフィールドを有するフレームの送信が優先される。
【００２８】
つまり、メッセージＩＤを数値として解釈した場合に、より数値が小さいメッセージＩＤを有するフレームを送信する通信装置４，４・・・又は中継装置３の何れか一方が調停に勝つこととなる。通信制御部３６は、通信バス２ａにおける調停に勝った場合、第１送受信部３８ａによって送信を継続することができる。通信制御部３６は調停に負けた場合、第１送受信部３８ａによる送信を停止して、他の送信を継続する通信装置４からのフレームの受信に切り替える。
【００２９】
図３は、一の通信装置４の構成を示すブロック図である。一の通信装置４は、各構成部の動作を制御するＣＰＵ４０と、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等の不揮発性メモリを用いたＲＯＭ４１と、ＤＲＡＭ、ＳＲＡＭ等の書き換え可能なメモリを用いたＲＡＭ４２と、ＣＡＮのプロトコルに準拠したネットワークコントローラを用いたＣＡＮコントローラ４３と、例えば外部のセンサ５に接続された入出力インタフェース（以下、入出力Ｉ／Ｆと表記する）４４と、内部バス４５とを備える。ＣＰＵ４０、ＲＯＭ４１、ＲＡＭ４２、ＣＡＮコントローラ４３及び入出力Ｉ／Ｆ４４はいずれも内部バス４５によって相互に接続されている。ＣＰＵ４０、ＲＯＭ４１、ＲＡＭ４２、ＣＡＮコントローラ４３、入出力Ｉ／Ｆ４４及び内部バス４５でマイクロコンピュータを構成してもよい。ＣＰＵ４０は、図示しないオルタネータ、バッテリ等の電力供給装置から電力の供給を受け、ＲＯＭ４１から各種情報をＲＡＭ４２へ読み出し、ＣＡＮコントローラ４３を制御し、フレームを送受信する。
【００３０】
ＲＯＭ４１には、ＣＰＵ４０が読み出して実行する制御プログラムが記憶されている。ＲＡＭ４２には、ＣＰＵ４０の処理の過程で発生する情報、又はセンサ５から入力される信号が表わす測定値等が一時的に記憶される。ＣＡＮコントローラ４３は、ＣＡＮのプロトコルに準拠して通信バス２ａ、２ｂ又は２ｃを介した通信を実現する。ＣＰＵ４０は、入出力Ｉ／Ｆ４４を介してセンサ５から取り込んだ各種物理量の情報に基づいて制御を実行し、該情報を含むフレームを通信バス２ａ、２ｂ又は２ｃへ送信する。
【００３１】
次に、中継情報テーブル３５について説明する。
図４は、中継装置３のＲＯＭ３１に記憶されている中継情報テーブル３５の分割例を示す説明図であり、図５及び図６は、中継情報テーブル３５の具体的な内容例を示す説明図である。図４に示すように、中継情報テーブル３５は、第１サブテーブル３５ａ（又は３５ｄ）、第２サブテーブル３５ｂ（又は３５ｅ）及び第３サブテーブル３５ｃ（又は３５ｆ）に分割されている。分割数は３に限定されず、２又は４以上であってもよい。
【００３２】
各サブテーブルには、夫々同一の優先度で中継されるフレームの中継先を特定するレコードが複数記憶されている。ここでは、中継されるフレームの優先度と、該フレームの中継先を特定するレコードが記憶されたサブテーブルの優先度とを同じ意味で扱う。図４に示す例では、第１サブテーブル３５ａ（又は３５ｄ）の優先度が最も高く、第３サブテーブル３５ｃ（又は３５ｆ）の優先度が最も低い。中継装置３が中継情報テーブル３５（又は３５ｄ）を検索してフレームの中継先を特定する場合、優先度が高い順に第１サブテーブル３５ａ（又は３５ｄ）から検索されるようになっている。
【００３３】
図５（又は図６）に移って、第１サブテーブル３５ａ（又は３５ｄ）には、中継先の通信バス２ａ，２ｂ，２ｃを識別する中継先バスＩＤ（中継先識別情報に相当）をメッセージＩＤ（種別識別情報に相当）に対応付けたレコードが複数記憶されている。各レコードでは、フレームを送信する送信元の通信装置４が接続されている通信バス２ａ，２ｂ，２ｃを識別する送信元バスＩＤが、メッセージＩＤに更に対応付けられている。送信元バスＩＤが第１サブテーブル３５ａ（又は３５ｄ）に含まれていなくてもよい。送信元の通信装置４を識別する送信元ＩＤが第１サブテーブル３５ａ（又は３５ｄ）に含まれていてもよい。
【００３４】
中継先バスＩＤ及び送信元バスＩＤについて、「１」は第１送受信部３８ａが接続されている通信バス２ａを、「２」は第２送受信部３８ｂが接続されている通信バス２ｂを、「３」は第３送受信部３８ｃが接続されている通信バス２ｃを表わす。第２サブテーブル３５ｂ（又は３５ｅ）及び第３サブテーブル３５ｃ（又は３５ｆ）の内容についても、第１サブテーブル３５ａ（又は３５ｄ）と同様であるが、記憶されているレコードに含まれるメッセージＩＤに応じて、各サブテーブルの優先度が夫々異なっている。
【００３５】
図５(又は図６）に示す例では、例えばメッセージＩＤが「１１０」であるレコードは、通信バス２ａ（送信元バスＩＤ：１）に接続されている通信装置４を送信元とし、通信バス２ｂ（中継先バスＩＤ：２）及び通信バス２ｃ（中継先バスＩＤ：３）が中継先であることが示される。また、メッセージＩＤが「３００」であるレコードは、通信バス２ｂ（送信元バスＩＤ：２）に接続されている通信装置４を送信元とし、通信バス２ａ（中継先バスＩＤ：１）及び通信バス２ｃ（中継先バスＩＤ：３）が中継先であることが示される。また、メッセージＩＤが「１００，１１０，２００，３００，４００，５００，５１０」（又は「２００，２０３，２１０，３００，４００，５００，５１０，・・・」）であるフレームの優先度が最も高いことが示される。特に図６では、中継先バスＩＤの少なくとも１つが「１」であるフレームの優先度が最も高く、中継先バスＩＤが「３」であるフレームの優先度が最も低いことが示される。
【００３６】
ＣＰＵ３０は、第１送受信部３８ａからフレームを受信したことを通信制御部３６からの通知により検知した場合、受信されたフレームに含まれるメッセージＩＤを検索キーにして最初に第１サブテーブル３５ａ（又は３５ｄ）を検索し、ヒットしたレコードにてメッセージＩＤに対応付けられた中継先バスＩＤによって識別される通信バスを中継先として特定する。第１サブテーブル３５ａ（又は３５ｄ）の検索でヒットするレコードがない場合、第２サブテーブル３５ｂ（又は３５ｅ）及び第３サブテーブル３５ｃ（又は３５ｆ）が順次検索される。何れのサブテーブルを検索してもヒットするレコードがない場合、受信されたフレームは、中継装置３における処理（例えばロギング）に用いられ、その必要もないときは廃棄される。
【００３７】
例えば、メッセージＩＤが「１１０」であるフレームが受信された場合、メッセージＩＤの「１１０」を検索キーにして第１サブテーブル３５ａ（又は第１サブテーブル３５ｄと第２サブテーブル３５ｅ）が検索されることにより、中継先として通信バス２ｂ（中継先バスＩＤ：２）及び通信バス２ｃ（中継先バスＩＤ：３）が特定される。ＣＰＵ３０は、通信制御部３６により、特定した通信バス２ｂ及び通信バス２ｃ夫々に接続されている第２送受信部３８ｂ及び第３送受信部３８ｃから、中継すべきフレームを送信させる。
【００３８】
次に、フレームの優先度について説明する。そもそも、中継対象のフレームに、通信プロトコルで定義された優先度情報等の、優先度を示す何らかの情報が含まれており、且つ、優先度を示す情報に基づいて中継情報テーブル３５を検索する場合は、上記何らかの情報に基づくインデックスを作成しておくことにより、レコードを高速に検索することが可能である。この場合、優先度に応じてインデックスを振り分けることにより、優先度の高いフレームの中継先を特定するレコードが先に検索されるため、中継情報テーブル３５をサブテーブルに分割する必要はない。一方、例えばＣＡＮのプロトコルにおけるメッセージＩＤやＴＣＰ／ＩＰのプロトコルにおけるＩＰアドレスのように、優先度を直接的に表すものではない情報を検索キーにして中継情報テーブル３５を検索する場合は、事情が異なる。
【００３９】
具体的に本実施の形態では、ＣＡＮのプロトコルにおけるメッセージＩＤを検索キーにして中継情報テーブル３５を検索するが、例えば特定の通信バスでメッセージＩＤが示す値が小さいほどフレームの優先度が高い場合であっても、このフレームが中継されるときに同じ優先度で中継される必要があるとは限らない。つまり、中継されるフレームの優先度をメッセージＩＤによって一義的に決定することができない上に、フレーム中に優先度を示す情報も無い。従って、中継情報テーブル３５の検索に際してメッセージＩＤに基づくインデックスを作成した場合であっても、ランダムに抽出された特定のメッセージＩＤが含まれるレコードを優先的に検索することはできない。
【００４０】
例えば、中継情報テーブル３５が分割されておらず、メッセージＩＤが示す値の順にソートされた２５５のレコードが中継情報テーブル３５に含まれている構成を想定すると、この２５５レコードに対しメッセージＩＤを検索キーにして二分木探索を行った場合、一律に“［ｌｏｇ2 ２５５］＋１＝８回”（［］はガウス記号）の比較処理が必要である。そこで、本発明に係る中継装置３では、例えば中継情報テーブル３５を第１サブテーブル３５ａ、第２サブテーブル３５ｂ及び第３サブテーブル３５ｃの３つに分割することにより、比較的優先度が高いフレームのメッセージＩＤを含むレコードが、８回よりも少ない比較回数で検索されるようにした。各サブテーブルは、やはりメッセージＩＤが示す値の順（種別識別情報に基づく所定の順に対応）にソートされている。
【００４１】
次に、中継情報テーブル３５を３つのサブテーブルに分割したときのレコードの検索について説明する。図５に示すように、第１サブテーブル３５ａには７個のレコードが記憶されている。第２サブテーブル３５ｂ及び第３サブテーブル３５ｃ夫々には、１５個及び２３３（＝２５５−７−１５）個のレコードが記憶されているものとする。最初に第１サブテーブル３５ａの７レコードに対しメッセージＩＤを検索キーにして二分木探索を行った場合、“［ｌｏｇ2 ７］＋１＝３回”の比較処理が行われる。続いて第２サブテーブル３５ｂの１５レコードに対して二分木探索を行った場合、“［ｌｏｇ2 １５］＋１＝４回”の比較処理が行われる。最後に第３サブテーブル３５ｃの２３３レコードに対して二分木探索を行った場合、“［ｌｏｇ2 ２３３］＋１＝８回”の比較処理が行われる。
【００４２】
即ち、第１サブテーブル３５ａに記憶されたレコードにメッセージＩＤが含まれるフレームは、僅か３回の比較処理で中継先が特定されることとなる。また、第２サブテーブル３５ｂに記憶されたレコードにメッセージＩＤが含まれるフレームは、７（＝３＋４）回の比較処理で中継先が特定される。一方、第３サブテーブル３５ｃに記憶されたレコードにメッセージＩＤが含まれるフレームは、１５（＝３＋４＋８）回の比較処理で中継先が特定される。このように、中継情報テーブル３５を３つのサブテーブルに分割して検索を行うことにより、優先度が高いフレームほど高速に中継先が特定できる上に、比較的優先度が低いフレームについては検索における比較回数が段階的に増加するにとどまる。
【００４３】
フレームの優先度は、メッセージＩＤによって識別されるフレームの発生頻度の大小に応じて設定してもよいし、車両１００に搭載された中継装置３であれば、走行に係る制御に関するメッセージＩＤを有するフレーム、及び異常等の突発的に発生するイベントに関するメッセージＩＤを有するフレームの優先度を高く設定してもよい。また、送信元ＩＤ、送信元バスＩＤに応じて、レームの優先度を設定してもよいし、図６に例示するように中継先バスＩＤに応じてフレームの優先度を設定してもよい。但し、中継装置３としては、中継情報テーブル３５の内容によって処理内容を変更する必要はない。
【００４４】
以下では、上述した中継装置３の動作を、それを示すフローチャートを用いて説明する。
図７は、中継情報テーブル３５を検索して中継先を特定するＣＰＵ３０の処理手順を示すフローチャートである。図７に示す処理は、第１送受信部３８ａ、第２送受信部３８ｂ又は第３送受信部３８ｃでフレームが受信され、送受信バッファ３７に受信フレームの内容が書き込まれたことが通信制御部３６からＣＰＵ３０に通知されたときに起動される。この通知には、送受信バッファ３７に書き込まれた受信フレームの内容の先頭アドレス（ポインタ）が含まれている。以下の処理における「Ｎ」はサブテーブルの総数であり、ＲＯＭ３１に記憶されている。
【００４５】
図７の処理が起動された場合、ＣＰＵ３０は、送受信バッファ３７に書き込まれた受信フレームの内容からメッセージＩＤを読み出す（Ｓ１１）。次いで、ＣＰＵ３０は、ループカウンタとして使用するｊを１に初期化し（Ｓ１２）、読み出したメッセージＩＤを検索キーにして第ｊサブテーブル「３５ａ、３５ｂ若しくは３５ｃ（又は３５ｄ、３５ｅ若しくは３５ｆ）」を二分木探索により検索する（Ｓ１３）。
【００４６】
その後、ＣＰＵ３０は、検索がヒットしたか否かを判定し（Ｓ１４）、ヒットした場合（Ｓ１４：ＹＥＳ）、ヒットしたレコードから中継先バスＩＤを読み出す（Ｓ１５）。ＣＰＵ３０は、処理中の受信フレームの内容に付加すべく、送受信バッファ３７に読み出した中継先バスＩＤを書き込み（Ｓ１６）、図７の処理を終了する。
【００４７】
中継先バスＩＤが付加された受信フレームの内容は、中継先バスＩＤを除いてそのまま送信フレームの内容となり、付加された中継先バスＩＤに基づいて、図７に示す処理とは別の送信処理により第１送受信部３８ａ、第２送受信部３８ｂ又は第３送受信部３８ｃから送信される。この送信処理では、後述のステップＳ１９で廃棄された受信フレームを除くフレームが、受信された順番に送信される。
【００４８】
一方、ステップＳ１４で検索がヒットしない場合（Ｓ１４：ＮＯ）、ＣＰＵ３０は、ｊを１だけインクリメントし（Ｓ１７）、ｊがＮ＋１であるか否かを判定する（Ｓ１８）。ＪがＮ＋１である場合（Ｓ１８：ＹＥＳ）、ＣＰＵ３０は、全てのサブテーブルの検索が終了したものとして処理中の受信フレームを廃棄し（Ｓ１９）、図７の処理を終了する。ＪがＮ＋１ではない場合（Ｓ１８：ＮＯ）、ＣＰＵ３０は、次のサブテーブルを検索するためにステップＳ１３に処理を移す。
【００４９】
なお、上述の実施の形態にあっては、ＣＡＮのプロトコルを例に挙げているが、これに限定されず、例えばＬＩＮ、ＭＯＳＴ、ＴＣＰ／ＩＰ、ＡＶＴＰ、ＦｌｅｘＲａｙ等の他の通信プロトコルにも適応可能である。
【００５０】
以上のように本実施の形態によれば、フレームの種別を識別するメッセージＩＤを、フレームの中継先となる通信バスを識別する中継先バスＩＤに対応付けたレコードが中継情報テーブル３５に記憶されており、更にこの中継情報テーブル３５が、レコードに含まれるメッセージＩＤ又は中継先バスＩＤに基づく優先度に応じて、第１サブテーブル３５ａ（又は３５ｄ）、第２サブテーブル３５ｂ（又は３５ｅ）及び第３サブテーブル３５ｃ（又は３５ｆ）に分割されている。中継装置３は、３つの通信バス２ａ、２ｂ及び２ｃの何れかに接続された通信装置４から送信されたフレームを受信し、受信したフレームに含まれるメッセージＩＤを検索キーにして優先度が高い順に第１サブテーブル３５ａ（又は３５ｄ）、第２サブテーブル３５ｂ（又は３５ｅ）及び第３サブテーブル３５ｃ（又は３５ｆ）を検索し、検索でヒットしたレコードに含まれる中継先バスＩＤによって識別される通信バスに、受信したフレームを中継すべく送信する。
これにより、メッセージＩＤ又は中継先バスＩＤに基づく優先度が高いレームほど、少ない比較回数で検索がヒットすることとなり、中継先となる通信バスが短時間のうちに特定される。比較的優先度が低いフレームについては、検索における比較回数が段階的に増加するにとどまる。
従って、限られたリソースの中で特定の通信について最大性能を保証しつつ、ＱｏＳの低下を最小限に抑えることが可能となる。特に、フレーム中に中継の優先度を示す情報（例えばプライオリティフィールド）又は優先度を算出するための情報が含まれないために、中継テーブルを優先度に応じて検索するためのインデックスが予め作成できない場合に効果を奏する。
【００５１】
また、実施の形態によれば、レコードに含まれるメッセージＩＤが示す値の順に第１サブテーブル３５ａ（又は３５ｄ）、第２サブテーブル３５ｂ（又は３５ｅ）及び第３サブテーブル３５ｃ（又は３５ｆ）がソートされているため、例えば二分木探索を用いて第１サブテーブル３５ａ（又は３５ｄ）、第２サブテーブル３５ｂ（又は３５ｅ）及び第３サブテーブル３５ｃ（又は３５ｆ）サブテーブル３５ａ、３５ｂ及び３５ｃを高速に検索することが可能となる。
【００５２】
更に、実施の形態によれば、ＣＡＮ、ＬＩＮ、ＭＯＳＴ、ＴＣＰ／ＩＰ、ＡＶＴＰ又はＦｌｅｘＲａｙのプロトコルに準拠するフレームを中継するため、車載通信システムに適した中継装置３を実現することが可能となる。
【００５３】
今回開示された実施の形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。また、各実施の形態で記載されている技術的特徴は、お互いに組み合わせることが可能である。
【符号の説明】
【００５４】
１  車載通信システム
１００  車両
２ａ、２ｂ、２ｃ  通信バス
３  中継装置
３０  ＣＰＵ
３１  ＲＯＭ
３５  中継情報テーブル
３５ａ  第１サブテーブル
３５ｂ  第２サブテーブル
３５ｃ  第３サブテーブル
３６  通信制御部
３７  送受信バッファ
４  通信装置
【図１】
2017147662.tif 000003
【図２】
2017147662.tif 000004
【図３】
2017147662.tif 000005
【図４】
2017147662.tif 000006
【図５】
2017147662.tif 000007
【図６】
2017147662.tif 000008
【図７】
2017147662.tif 000009