(57)【特許請求の範囲】
【請求項１】
複数の第１ＣＡＮ通信線に夫々接続された電子制御ユニットから受信したメッセージを、前記第１ＣＡＮ通信線よりも伝送速度の速い第２ＣＡＮ通信線に接続された電子制御ユニットにカットスルー方式で中継する車載用の中継接続ユニットであって、
前記第１ＣＡＮ通信線と第２ＣＡＮ通信線と接続された送受信部と、
前記送受信部と接続した中継処理部を備え、
前記中継処理部では、前記複数の第１ＣＡＮ通信線から同時に受信したメッセージについては、これらのメッセージのうちで最も早くコントロールフィールドの受信が完了したメッセージと他のメッセージとの間のコントロールフィールドの受信完了時の時間差と、メッセージ毎にコントロールフィールドの受信が完了した時点からの送信待ち時間から、各メッセージについて前記送信待ち時間と前記受信完了時の時間差の和を求め、該時間差の和が小さいメッセージを最初に前記第２ＣＡＮ通信線へ中継させることを特徴とする車載用の中継接続ユニット。
【請求項２】
各メッセージ毎に演算される前記送信待ち時間は、（前記各メッセージの残りのビット数の受信を完了するために必要な受信時間―前記メッセージの全ビット数を前記第２ＣＡＮ通信線に送信するために必要な送信時間）である請求項１に記載の車載用の中継接続ユニット。
【請求項３】
前記中継処理部は、前記送信待ち時間が負の値となる場合には、前記送信待ち時間をゼロとして前記送信待ち時間と前記受信完了時の時間差の和を求める請求項１または請求項２に記載の車載用の中継接続ユニット。
【請求項４】
前記中継処理部は、最初に前記第２ＣＡＮ通信線へ中継させる前記メッセージのコントロールフィールドの受信が完了した時点から前記送信待ち時間経過後に、該メッセージの前記第２ＣＡＮ通信線への中継を開始させる請求項１乃至請求項３のいずれか１項に記載の車載用の中継接続ユニット。
【請求項５】
前記第１ＣＡＮ通信線または第２ＣＡＮ通信線の伝送速度は、１２５ｋｂｐｓ、２５０ｋｂｐｓ、５００ｋｂｐｓ、１Ｍｂｐｓである請求項１乃至請求項４のいずれか１項に記載の車載用の中継接続ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載用の中継接続ユニットに関し、詳しくは、中継接続ユニットに接続された通信線の伝送速度が相違し、受信側の伝送速度より送信側の伝送速度が早い場合に、メッセージ全体を確実に且つ効率よく送信ができるようにするものである。
【背景技術】
【０００２】
従来、車両搭載機器を制御する電子制御ユニット（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ：ＥＣＵ）を通信線で接続し、該通信線同士を中継接続ユニット（ゲートウェイ装置）を介して接続して、異なる通信線に属するＥＣＵ間で送受信されるメッセージを該中継接続ユニットで中継する車載用通信システムが採用されている。
【０００３】
中継接続ユニットは、通信線に接続されたＥＣＵからのメッセージを受信すると、該メッセージの中継送信先である他の通信線にメッセージを中継している。
詳細には、中継接続ユニットは、該受信したメッセージのメッセージ識別子と中継送信する送信先のＥＣＵを接続した通信線との対応を記載したルーティングマップを備えている。中継接続ユニットはメッセージを受信してメッセージ識別子を読み込み、前記ルーティングマップを参照して該メッセージ識別子と対応する送信先の通信線を判別し、特定した送信先の通信線にメッセージを送信している。
【０００４】
前記中継接続ユニットの中継処理の方法として、例えば、特開平９−１６２９１７号公報（特許文献１）に記載されているように、カットスルー方式が知られている。
カットスルー方式は、図８に示すように、中継接続ユニットが、通信線（受信元バス）からメッセージを受信し、メッセージのうちメッセージ識別子が書き込まれたアービトレーションフィールド（ＩＤ）までを受信した時点ｔｂで、ルーティングマップを参照して該メッセージ識別子に対応する中継先の通信線（送信先バス）を判別し、該通信線に送信を開始する方式である。メッセージを最後まで受信せずに通信線に送信を開始しているので、メッセージを最後まで受信してから送信を開始するストア＆フォワード方式に比べて、メッセージの受信を開始してから送信を開始するまでの時間が短くなり、中継処理を高速化することができる。
【０００５】
しかし、中継接続ユニットがカットスルー方式でメッセージの中継処理を行っている場合に、例えば、図９に示すように、中継接続ユニットが２５０ｋｐｂｓの伝送速度で受信元の通信線（バス）から受信したメッセージを、５００ｋｂｐｓの伝送速度で送信先の通信線（バス）に送信しているときには、メッセージを受信する速度が送信する速度よりも遅いため、送信すべきメッセージのデータが受信できておらず、送信すべきデータが無い状態が発生するという問題がある。
このように送信すべきデータが無い状態が発生すると、中継接続ユニットはエラーとして中継処理を中断し、バス上にエラーが発生し、問題となる。
【０００６】
【特許文献１】特開平９−１６２９１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、前記問題に鑑みてなされたもので、中継接続ユニットが受信側の通信線から受信したメッセージを、受信側の通信線よりも伝送速度の速い送信側の通信線にカットスルー方式で中継するときに、送信すべきデータが無い状態が発生することを防ぐと共に、効率よくメッセージの送信を行うことを課題としている。
【課題を解決するための手段】
【０００８】
前記課題を解決するため、本発明は、複数の第１ＣＡＮ通信線に夫々接続された電子制御ユニットから受信したメッセージを、前記第１ＣＡＮ通信線よりも伝送速度の速い第２ＣＡＮ通信線に接続された電子制御ユニットにカットスルー方式で中継する車載用の中継接続ユニットであって、
前記第１ＣＡＮ通信線と第２ＣＡＮ通信線と接続された送受信部と、
前記送受信部と接続した中継処理部を備え、
前記中継処理部では、前記複数の第１ＣＡＮ通信線から同時に受信したメッセージについては、これらのメッセージのうちで最も早くコントロールフィールドの受信が完了したメッセージと他のメッセージとの間のコントロールフィールドの受信完了時の時間差と、メッセージ毎にコントロールフィールドの受信が完了した時点からの送信待ち時間から、各メッセージについて前記送信待ち時間と前記受信完了時の時間差の和を求め、該時間差の和が小さいメッセージを最初に前記第２ＣＡＮ通信線へ中継させることを特徴とする車載用の中継接続ユニットを提供している。
【０００９】
前記構成によれば、中継接続ユニットが複数の第１ＣＡＮ通信線から同時にメッセージを受信し、これらメッセージの中継送信先が第２ＣＡＮ通信線の場合、前記中継処理部は、最初に前記第２ＣＡＮ通信線へ中継させる前記メッセージのコントロールフィールドの受信が完了した時点から前記送信待ち時間経過後に、該メッセージの前記第２ＣＡＮ通信線への中継を開始させる。
送信待ち時間は、（前記各メッセージの残りのビット数の受信を完了するために必要な受信時間―前記メッセージの全ビット数を前記第２ＣＡＮ通信線に送信するために必要な送信時間）としている。
【００１０】
これにより、中継接続ユニットが第１ＣＡＮ通信線からメッセージの受信を完了した時点では、第２ＣＡＮ通信線へのメッセージの送信は完了していない状態となる。
このため、中継接続ユニットは、第１ＣＡＮ通信線から受信したメッセージを、第１ＣＡＮ通信線よりも伝送速度の速い第２ＣＡＮ通信線にカットスルー方式で中継するときに、送信すべきデータが無い状態が発生することを防ぐことができる。
【００１１】
このとき、中継接続ユニットが複数の第１ＣＡＮ通信線から同時にメッセージを受信し、これら複数のメッセージを第２ＣＡＮ通信線に中継送信するため、受信しているメッセージのうちどのメッセージを優先して第２ＣＡＮ通信線に送信するかを定める必要がある。
一般的には、中継接続ユニットがメッセージを受信した順や、メッセージ毎に定められた優先順位に従って送信順序が定められる。
しかし、コントロールフィールドの受信が完了した時点からの送信待ち時間が他のメッセージより長いメッセージが最初に第２ＣＡＮ通信線に送信されるような場合には、送信待ち時間が短いメッセージは該送信待ち時間が経過するまで送信を待たねばならず、送信待ち時間が無駄となることがある。
【００１２】
本発明では、複数の第１ＣＡＮ通信線から同時に受信したメッセージのうち、最も早くコントロールフィールドの受信が完了したメッセージのコントロールフィールドの受信完了時点ｔ１から、他のメッセージのコントロールフィールドの受信完了時との時間差を求めると共に、メッセージ毎にコントロールフィールドの受信完了時からの送信待ち時間を求める。さらに受信完了時ｔ１を基準としてメッセージの送信開始までに必要な時間である、前記送信待ち時間と前記受信完了時の時間差の和をメッセージ毎に求め、該時間差の和が小さいメッセージを最初に前記第２ＣＡＮ通信線へ中継送信する。
【００１３】
このように、最も早くコントロールフィールドの受信が完了したメッセージのコントロールフィールドの受信完了時点ｔ１を基準として、メッセージの送信開始までに必要な時間が最も短いメッセージを最初に第２ＣＡＮ通信線へ中継送信することで、送信待ち時間の無駄が発生することを防ぐことができる。
また、送信待ち時間の無駄がないため、中継接続ユニットが複数の第１ＣＡＮ通信線からメッセージを同時に受信している場合に、全てのメッセージの第２ＣＡＮ通信線への中継送信を早く完了させることができ、時間的効率を高めた中継を行うことができる。
【００１４】
前記中継処理部は、メッセージ毎に前記送信待ち時間と前記受信完了時の時間差の和を求めている。前記送信待ち時間が負の値となる場合には、前記送信待ち時間をゼロとして前記送信待ち時間と前記受信完了時の時間差の和を求めている。
また、最も早くコントロールフィールドの受信が完了したメッセージについては、受信完了時の時間差はゼロとなる。
【００１５】
前記第１ＣＡＮ通信線または第２ＣＡＮ通信線の伝送速度は、１２５ｋｂｐｓ、２５０ｋｂｐｓ、５００ｋｂｐｓ、１Ｍｂｐｓである。これらはＣＡＮで一般的に使用されている伝送速度である。
【発明の効果】
【００１６】
前述したように、本発明の車載用の中継接続ユニットによれば、中継接続ユニットが複数の第１ＣＡＮ通信線から同時にメッセージを受信し、これらメッセージの中継送信先が第２ＣＡＮ通信線の場合、受信しているメッセージのうち送信順序であるメッセージは、コントロールフィールドの受信が完了した時点から、該送信待ち時間だけ遅らせてメッセージの送信を開始している。これにより、中継接続ユニットが第１ＣＡＮ通信線からメッセージの受信を完了した時点では、第２ＣＡＮ通信線へのメッセージの送信は完了していない状態となり、中継接続ユニットは、第１ＣＡＮ通信線から受信したメッセージを、第１ＣＡＮ通信線よりも伝送速度の速い第２ＣＡＮ通信線にカットスルー方式で中継するときに、送信すべきデータが無い状態が発生することを防ぐことができる。
【００１７】
また、本発明では、複数の第１ＣＡＮ通信線から同時に受信したメッセージのうち最も早くコントロールフィールドの受信が完了したメッセージのコントロールフィールドの受信完了時点ｔ１を基準として、メッセージの送信開始までに必要な時間が最も短いメッセージを最初に第２ＣＡＮ通信線へ中継送信することで、送信待ち時間の無駄が発生することを防ぐことができる。
【発明を実施するための最良の形態】
【００１８】
本発明の実施形態を図面を参照して説明する。
図１乃至図７に本発明の第１実施形態を示す。
車載用の中継接続ユニット１０は、第１通信線３１Ａ、第１通信線３１Ｂ、第２通信線３２と接続していると共に、第１通信線３１ＡにＥＣＵ３０Ａ、第１通信線３１ＢにＥＣＵ３０Ｂ、第２通信線３２にＥＣＵ３０Ｃを接続して通信システム２０を構成しており、異なる通信線に属する前記ＥＣＵ３０間で送受信するメッセージｍを中継するものである。通信プロトコルはＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。
【００１９】
第２通信線３２の伝送速度は第１通信線３１Ａ，第１通信線３１Ｂよりも速い速度としており、また、本実施形態では第１通信線３１Ａと第１通信線３１Ｂの伝送速度は同じとしている。なお、第１通信線３１Ａと第１通信線３１Ｂの伝送速度は異なっていてもよい。
中継接続ユニット１０は、第１通信線３１Ａに接続されたＥＣＵ３０ＡからメッセージｍＡ、第１通信線３１Ｂに接続されたＥＣＵ３０ＢからメッセージｍＢを同時に受信しており、これらメッセージｍＡ，ｍＢを第２通信線３２にカットスルー方式で中継送信している。
【００２０】
中継接続ユニット１０は、中継処理部１１と、送受信部１２Ａ、１２Ｂ、１２Ｃと、記憶部１３を備えている。
中継処理部１１は、送受信部１２Ａ、１２Ｂ、１２Ｃと接続すると共に記憶部１３と接続している。第１通信線３１Ａ、３１Ｂに接続されたＥＣＵ３０Ａ，３０Ｂからのメッセージｍを送受信部１２Ａ、１２Ｂを介して受信すると、メッセージｍのアービトレーションフィールド４２から識別子（ＩＤ）を読み出している。さらに、該ＩＤからルーティングマップを用いて該メッセージｍの中継送信先である第２通信線３２を判別している。
【００２１】
中継処理部１１は、同時に受信しているメッセージｍＡ，ｍＢについて、後述する送信待ちビット数Ｘから送信待ち時間ＴＸを求めると共に、これらのメッセージｍＡ，ｍＢのうちで最も早くコントロールフィールド４３の受信が完了したメッセージｍと他のメッセージｍとの間でコントロールフィールド４３受信完了時の時間差Ｔｄｉｆｆとを求めている。さらに、該時間差Ｔｄｉｆｆと送信待ち時間ＴＸとからメッセージｍＡ，ｍＢのうちどちらのメッセージｍを先に第２通信線３２に送信するかを定めている。送信するメッセージｍの定め方については後述する。
【００２２】
メッセージｍＡ，ｍＢのうち、先に送信するメッセージｍについては、コントロールフィールド４３の受信が完了した時点から、該メッセージｍを受信した通信線３１の伝送速度で送信待ちビット数Ｘを数えた後、メッセージｍの中継送信を開始している。
メッセージｍＡ，ｍＢの残りのメッセージｍについては、先に送信されたメッセージｍの送信完了後に送信している。
【００２３】
記憶部１３は、送信待ちビット数Ｘを記載したテーブルＴを記憶している。テーブルＴには、伝送速度比Ｒ、即ち、（第２通信線３２の伝送速度／第１通信線３１Ａの伝送速度）または、（第２通信線３２の伝送速度／第１通信線３１Ｂの伝送速度）と、メッセージｍのデータフィールド４４のデータ長に対する、送信待ちビット数Ｘが記載されている。テーブルＴの詳細は後述する。
また、記憶部１３は中継処理部１１の中継処理のためのルーティングマップを記憶している。
【００２４】
送受信部１２Ａは第１通信線３１Ａと接続しており、送受信部１２Ｂは第１通信線３１Ｂと接続しており、送受信部１２Ｃは第２通信線３２と接続している。送受信部１２は各通信線を介してメッセージｍの送受信を行っている。
【００２５】
中継接続ユニット１０は、マイコン（図示せず）とＣＡＮコントローラ（図示せず）で構成しており、マイコンのＣＰＵは中継処理部１１を構成し、マイコンのＲＯＭまたはＲＡＭは記憶部１３を構成している。また、ＣＡＮコントローラは送受信部１２を構成している。なお、中継処理部１１を中継接続ユニット用ＬＳＩ等のハードウェアで構成してもよい。
【００２６】
次に、中継接続ユニット１０が送受信するメッセージｍのフォーマットについて説明する。図２に示すように、メッセージｍのフレームは、上位ビットより、メッセージフレームの開始を示すスタートオブフレーム（ＳＯＦ）フィールド４１と、メッセージｍ識別子（ＩＤ）を格納したアービトレーションフィールド４２と、データフィールド４４のデータ長（ＤＬＣ）を格納したコントロールフィールド４３と、送受信されるメッセージｍの内容（データ）を示すデータフィールド４４とを備えている。
メッセージｍはＣＡＮプロトコルに準拠しており、標準フォーマットである。従って、アービトレーションフィールド４２は１２ビット、コントロールフィールド４３は６ビット、ＳＯＦフィールド４１は１ビットと定められており、データフィールド４４のデータ長はメッセージｍ毎に異なる。コントロールフィールド４３にはデータフィールド４４のデータ長がバイト単位で格納されている。
【００２７】
次に、送信待ちビット数Ｘ及び送信待ち時間ＴＸについて、第１通信線３１Ａから受信したメッセージｍを第２通信線３２に中継する場合を例に説明する。
図３に示すように、第１通信線３１Ａのメッセージｍのコントロールフィールド４３の受信の完了時ｔ１においては、中継接続ユニット１０はアービトレーションフィールド４２及びコントロールフィールド４３の受信を完了しており、データフィールド４４を続けて受信する。
中継処理部１１は、コントロールフィールド４３の受信の完了時ｔ１から、第１通信線３１Ａの伝送速度において送信待ちビット数Ｘが経過した時点、即ち送信待ち時間ＴＸの経過後から、第２通信線３２にメッセージｍの送信を開始する。
【００２８】
このとき、中継接続ユニット１０が第１通信線３１Ａからメッセージｍの受信を完了した時ｔ２では、第２通信線３２へのメッセージｍの送信が完了しないように、送信待ちビット数Ｘを設定している。即ち、第１通信線３１Ａから受信するメッセージｍの受信完了時ｔ２が、第２通信線３２に送信するメッセージｍの送信完了時ｔ３よりも早くなるように、送信待ちビット数Ｘを設定している。
従って、送信待ちビット数Ｘとは、図３に示すように、中継接続ユニット１０が第１通信線３１ＡからメッセージｍＡを受信し、コントロールフィールド４３の受信の完了時ｔ１から、第２通信線３２にメッセージｍの中継を開始するまでのビット数Ｘである。
【００２９】
中継処理部１１は第１通信線３１Ａから受信するメッセージｍＡのビット数を数えることで、該送信待ちビット数ＸＡを数えている。例えば、送信待ちビット数ＸＡが１０ビットの場合、図３に示すように中継処理部１１はコントロールフィールド４３の受信の完了時ｔ１から、第１通信線３１Ａから受信するメッセージｍを１０ビット分数えたのち、第２通信線３２にメッセージｍＡの中継を開始している。
第１通信線３１Ａの伝送速度において送信待ちビット数ＸＡが経過する時間を送信待ち時間ＴＸＡとする。
なお、送信待ち時間が負の値となった場合には、前記送信待ち時間をゼロとする。
【００３０】
同様に、中継接続ユニット１０が第１通信線３１ＢからメッセージｍＢを受信し、コントロールフィールド４３の受信の完了時ｔ１から、第２通信線３２にメッセージｍＢの中継を開始するまでのビット数Ｘを送信待ちビット数ＸＢとし、第１通信線３１Ｂの伝送速度において送信待ちビット数ＸＢが経過する時間を送信待ち時間ＴＸＢとする。
【００３１】
次に、中継接続ユニット１０が第１通信線３１Ａ及び第１通信線３１Ｂから同時にメッセージｍを受信している場合に、第２通信線３２に優先的に送信するメッセージｍを定める方法について説明する。
図４に示すように、第１通信線３１ＡからのメッセージｍＡのコントロールフィールド４３の受信の完了時ｔ１が、第１通信線３１ＢからのメッセージｍＢのコントロールフィールド４３の受信の完了時ｔａよりも早いとした場合を例とする。
【００３２】
このとき、中継処理部１１は、メッセージｍＡのコントロールフィールド４３の受信の完了時ｔ１後に、第１通信線３１Ａから受信したメッセージｍＡの送信待ち時間ＴＸＡを演算する。送信待ち時間ＴＸＡは、（メッセージｍＡの送信待ちビット数ＸＡ／第１通信線３１Ａの伝送速度）で求められる。
また、第１通信線３１ＢからのメッセージｍＢのコントロールフィールド４３の受信の完了時ｔａ後に送信待ち時間ＴＸＢを演算する。送信待ち時間ＴＸＢは、（メッセージｍＢの送信待ちビット数ＸＢ／第１通信線３１Ｂの伝送速度）で求められる。
さらに、最も早くコントロールフィールドの受信が完了したメッセージと他のメッセージとの間でコントロールフィールド受信完了時の時間差Ｔｄｉｆｆを求める。メッセージｍＡのコントロールフィールド４３の受信の完了時ｔ１とメッセージｍＢのコントロールフィールド４３の受信の完了時ｔａから受信時間差Ｔｄｉｆｆを演算する。
【００３３】
ここで、メッセージｍＡのコントロールフィールド４３の受信の完了時ｔ１を基準として、メッセージを送信するまでに必要な時間である（送信待ち時間ＴＸ＋受信時間差Ｔｄｉｆｆ）を求める。
第１通信線３１Ａから受信したメッセージｍＡは、早くコントロールフィールドの受信が完了したメッセージであるため受信時間差Ｔｄｉｆｆがゼロとなり、送信待ち時間ＴＸＡ後に第２通信線３２に中継開始が可能である。一方、第１通信線３１Ｂから受信したメッセージｍＢは（送信待ち時間ＴＸＢ＋受信時間差Ｔｄｉｆｆ）後に中継開始が可能である。
このとき、（送信待ち時間ＴＸＡ−受信時間差Ｔｄｉｆｆ）と送信待ち時間ＴＸＢの長さを比べ、送信待ち時間ＴＸＢが（送信待ち時間ＴＸＡ−受信時間差Ｔｄｉｆｆ）よりも短い場合には、メッセージｍＡよりもメッセージｍＢを先に第２通信線３２に送信し、送信待ち時間ＴＸＢが（送信待ち時間ＴＸＡ−受信時間差Ｔｄｉｆｆ）よりも長い場合には、メッセージｍＢよりもメッセージｍＡを先に第２通信線３２に送信する。
また、（送信待ち時間ＴＸＢ＋受信時間差Ｔｄｉｆｆ）と送信待ち時間ＴＸＡの長さを比べ、（送信待ち時間ＴＸＢ＋受信時間差Ｔｄｉｆｆ）が送信待ち時間ＴＸＡよりも短い場合には、メッセージｍＡよりもメッセージｍＢを先に第２通信線３２に送信し、（送信待ち時間ＴＸＢ＋受信時間差Ｔｄｉｆｆ）が送信待ち時間ＴＸＡよりも長い場合には、メッセージｍＢよりもメッセージｍＡを先に第２通信線３２に送信してもよい。
【００３４】
このように、中継接続ユニット１０が第１通信線３１Ａ及び第１通信線３１Ｂから同時にメッセージｍを受信している場合には、いずれかのメッセージｍの早くコントロールフィールド４３の受信が完了した時点を基準時とし、該基準時から各メッセージｍの第２通信線３２への中継が可能となるまでに要する時間を演算し、該時間が短いメッセージｍから中継を開始する。
【００３５】
図５（Ａ）は送信待ち時間ＴＸＢが（送信待ち時間ＴＸＡ−受信時間差Ｔｄｉｆｆ）よりも短い場合に、メッセージｍＡよりもメッセージｍＢを先に第２通信線３２に送信する説明図であり、図５（Ｂ）は、本方式によらず、中継処理部１１がメッセージを受信した順に第２通信線３２にメッセージを送信したときの説明図である。ここでは第１通信線ＡのメッセージｍＡ、第１通信線ＢのメッセージｍＢの順にメッセージを受信した場合を記載している。
【００３６】
図５（Ａ）では、中継処理部１１はメッセージｍＢのコントロールフィールド４３の受信が完了した時点ｔａから送信待ち時間ＴＸＢ後、即ち、メッセージｍＡのコントロールフィールド４３の受信が完了した時点ｔ１から（送信待ち時間ＴＸＢ＋受信時間差Ｔｄｉｆｆ）後にメッセージｍＢを第２通信線３２に送信している。
このとき、第１通信線３１ＡからのメッセージｍＡの受信完了時ｔ２から、第２通信線３２にメッセージｍＡとメッセージｍＢの中継送信が完了した時点ｔ４までの全体の遅れ時間は、図５（Ｂ）の受信完了時ｔ２から時点ｔ５に比べて短くなり、メッセージｍの中継送信が早く完了している。
【００３７】
送信待ちビット数Ｘの求め方について、第１通信線３１Ａから受信したメッセージｍＡを第２通信線３２に中継する場合を例に説明する。
前述したように、送信待ちビット数Ｘは、第１通信線３１Ａから受信するメッセージｍの受信完了時ｔ２が、第２通信線３２に送信するメッセージｍの送信完了時ｔ３よりも早くなるように設定している。
従って、（データフィールド４４を受信するために必要な時間ＴＡ）が、（送信待ち時間ＴＸ＋メッセージｍの全ビット数を第２通信線３２に送信するために必要な時間ＴＢ）よりも小さければよい。
【００３８】
データフィールド４４を受信するために必要な時間ＴＡは、データフィールド４４のビット数／第１通信線３１Ａの伝送速度で求められる。なお、データフィールド４４のデータ長とは、データフィールド４４のビット数を表している。
送信待ち時間ＴＸは、第１通信線３１Ａの伝送速度を基準として考えると、送信待ちビット数Ｘ／第１通信線３１Ａの伝送速度で求められる。
メッセージｍの全ビット数を第２通信線３２に送信するために必要な時間ＴＢは、メッセージｍの全ビット数／第２通信線３２の伝送速度で求められる。
上記より、送信待ちビット数Ｘを求めると、（データフィールド４４のビット数−メッセージｍの全ビット数／伝送速度比Ｒ）となる。ここで、伝送速度比Ｒとは第２通信線３２の伝送速度／第１通信線３１Ａの伝送速度である。
【００３９】
詳細には、データフィールド４４のデータ長（ビット数）は、コントロールフィールド４３より読み出している。データ長はバイト単位で表されており１バイトは８ビットなので、読み出した値がｎの場合、データフィールド４４のデータ長（ビット数）は８×ｎビットである。
メッセージｍの全ビット数は、ＳＯＦフィールド４１、アービトレーション（ＩＤ）フィールド４２、コントロール（ＤＬＣ）フィールド４３、データフィールド４４のビット数の和である。前述したようにアービトレーションフィールド４２は１２ビット、コントロールフィールド４３は６ビット、ＳＯＦは１ビットと定められているため、計１９ビットとなり、データフィールド４４のデータ長は８×ｎビットである。従って、メッセージｍの全ビット数は（１９＋８×ｎ）ビットとなる。
【００４０】
また、第１通信線３１Ａ及び第２通信線３２の伝送速度は１２５ｋｂｐｓ、２５０ｋｂｐｓ、５００ｋｂｐｓ、１Ｍｂｐｓのいずれかであり、また、第１通信線３１Ａは第２通信線３２よりも伝送速度が遅いため、伝送速度比Ｒは２、４、８のいずれかの値となる。
【００４１】
さらに、スタッフビットを考慮する。ＣＡＮプロトコルによる通信システムでは、ＥＣＵ３０及び中継接続ユニット１０は６ビット以上連続して同じ値のビットを受信することができず、連続して５ビット同じ値のビットが続いた場合には１ビットのスタッフビットが挿入される。このため、データフィールド４４のビット数は、最大で８×ｎ×６／５となる。６／５をビットスタッフ率Ｓと称す。
【００４２】
なお、アービトレーションフィールド４２、コントロールフィールド４３にもスタッフビットは挿入される。しかし、メッセージｍの全ビット数が長くなる場合には、第２通信線３２に送信されるメッセージｍの全ビット数が大きくなり、中継接続ユニット１０の第２通信線３２へのメッセージｍの送信完了時ｔ３がさらに遅くなる。本発明では、第１通信線３１Ａから受信するメッセージｍの受信完了時ｔ２が、第２通信線３２に送信するメッセージｍの送信完了時ｔ３よりも早くなるように設定しており、メッセージｍの全ビット数が長くなる場合には、送信待ちビット数Ｘの演算には影響を与えない。そこで、本実施形態では、データフィールド４４に挿入されるスタッフビットのみを考慮している。
【００４３】
従って、送信待ちビット数Ｘは、（データフィールド４４のビット数−メッセージｍの全ビット数／伝送速度比Ｒ）であり、式（１）で表される。
Ｘ＝（８×ｎ×Ｓ）−（１９＋８×ｎ×Ｓ）／Ｒ    式（１）
【００４４】
式１より、送信待ちビット数Ｘは、伝送速度比Ｒとデータフィールド４４のビット数の関数となる。前述したように、伝送速度比Ｒは２、４、８のいずれかの値となり、データフィールド４４のデータ長は８×ｎビット、即ちｎバイトで表される。ＣＡＮのメッセージｍでは、データフィールド４４は０バイトから８バイトの値を取る。
このため、伝送速度比Ｒとデータフィールド４４のデータ長のバイト数から送信待ちビット数Ｘを演算すると、図６に示すテーブルＴとなる。例えば、第１通信線３１Ａの伝送速度が２５０ｋｂｐｓ、第２通信線３２の伝送速度が５００ｋｂｐｓ、データフィールド４４のバイト数ｎが４バイトの場合、伝送速度比Ｒは５００／２５０＝２なので、送信待ちビット数Ｘは図６より１０ビットとなる。
テーブルＴは予め算出して記憶部１３に記憶される。
【００４５】
同様に、第１通信線３１Ｂから受信したメッセージｍＢを第２通信線３２に中継する場合の送信待ちビット数ＸＢについても、メッセージｍＢのデータ長のバイト数と、（第２通信線３２の伝送速度／第１通信線３１Ｂの伝送速度）で求められる伝送速度比ＲＢからテーブルＴを参照して式（１）により求めている。
【００４６】
次に、中継接続ユニット１０の動作について説明する。
中継接続ユニット１０は、第１通信線３１Ａと第１通信線３１Ｂから同時にメッセージｍＡ，ｍＢを受信する。メッセージｍのアービトレーションフィールド４２を受信すると、中継処理部１１はメッセージｍのＩＤを読み出し、記憶部１３のルーティングマップを参照して中継送信先の通信線を判別する。ここでは、メッセージｍＡ，ｍＢともに第２通信線３２を送信先とする。
次に、受信元である第１通信線３１Ａの伝送速度と、送信先の第２通信線３２の伝送速度から伝送速度比ＲＡを求める。また、受信元である第１通信線３１Ｂの伝送速度と、送信先の第２通信線３２の伝送速度から伝送速度比ＲＢを求める。各伝送速度比ＲＡ，ＲＢは予め記憶させておいてもよいし、各通信線の伝送速度を記憶しておき、メッセージｍの受信毎に演算してもよい。
【００４７】
メッセージｍＡのコントロールフィールド４３の受信完了時がメッセージｍＢのコントロールフィールド４３の受信完了時よりも早いとした場合を考える。このとき、メッセージｍＡのコントロールフィールド４３の受信が完了すると、コントロールフィールド４３からデータフィールド４４のデータ長であるバイト数ｎを読み出す。
さらに、中継処理部１１は記憶部１３のテーブルＴを参照して、データフィールド４４のバイト数ｎと伝送速度比ＲＡから送信待ちビット数ＸＡを読み出し、（メッセージｍＡの送信待ちビット数ＸＡ／第１通信線３１Ａの伝送速度）から送信待ち時間ＴＸＡを演算する。
【００４８】
中継処理部１１はメッセージｍＢのコントロールフィールド４３の受信が完了すると、コントロールフィールド４３からデータフィールド４４のデータ長であるバイト数ｎを読み出し、記憶部１３のテーブルＴを参照して、データフィールド４４のバイト数ｎと伝送速度比ＲＢから送信待ちビット数ＸＢを読み出し、（メッセージｍＢの送信待ちビット数ＸＢ／第１通信線３１Ｂの伝送速度）から送信待ち時間ＴＸＢを演算する。
また、中継処理部１１はメッセージｍＡのコントロールフィールド４３の受信の完了時ｔ１とメッセージｍＢのコントロールフィールド４３の受信の完了時ｔａから受信時間差Ｔｄｉｆｆを演算し、（メッセージｍＡの送信待ち時間ＴＸＡ−受信時間差Ｔｄｉｆｆ）を求める。
【００４９】
演算処理部は、（送信待ち時間ＴＸＡ−受信時間差Ｔｄｉｆｆ）と、メッセージｍＢの送信待ち時間ＴＸＢを比較する。
（送信待ち時間ＴＸＡ−受信時間差Ｔｄｉｆｆ）のほうが短い場合には、中継処理部１１は、メッセージｍＡのコントロールフィールド４３の受信が完了した時点ｔ１から第１通信線３１ＡからのメッセージｍＡを送信待ちビット数ＸＡ分数えた後、第２通信線３２にメッセージｍＡの中継を開始する。
なお、（メッセージｍＢの送信待ち時間ＴＸＢ＋受信時間差Ｔｄｉｆｆ）を演算して、メッセージｍＡの送信待ち時間ＴＸＡと比較してもよい。この場合、（送信待ち時間ＴＸＢ＋受信時間差Ｔｄｉｆｆ）が送信待ち時間ＴＸＡよりも長い場合には、メッセージｍＢよりもメッセージｍＡを先に第２通信線３２に送信する。
メッセージｍＡの中継送信が完了した後に、メッセージｍＢの中継送信を開始する。このとき、中継処理部１１はメッセージｍＢのコントロールフィールド４３の受信が完了した時点ｔａから実際にメッセージｍＢの送信が開始されるまでの待機時間が、メッセージｍＢの送信待ち時間ＴＸＢを超えているか否かをチェックしている。超えていない場合は送信待ち時間ＴＸＢの経過後に中継を開始する。
【００５０】
メッセージｍＢの送信待ち時間ＴＸＢのほうが短い場合には、中継処理部１１は、メッセージｍＢのコントロールフィールド４３の受信が完了した時点ｔａから第１通信線３１ＢからのメッセージｍＢを送信待ちビット数ＸＢ分数えた後、第２通信線３２にメッセージｍＢの中継を開始する。メッセージｍＢの中継送信が完了した後に、メッセージｍＡのコントロールフィールド４３の受信が完了した時点ｔ１から実際にメッセージｍＡの送信が開始されるまでの待機時間が、メッセージｍＡの送信待ち時間ＴＸＡを超えているか否かをチェックして、メッセージｍＡの中継送信を開始する。
【００５１】
本発明によれば、中継接続ユニット１０が複数の第１通信線３１から同時にメッセージｍを受信し、これらメッセージｍの中継送信先が第２通信線３２の場合、受信しているメッセージｍのうち送信順序であるメッセージｍは、コントロールフィールド４３の受信が完了した時点から、該送信待ち時間ＴＸだけ遅らせてメッセージｍの送信を開始している。これにより、中継接続ユニット１０が第１通信線３１からメッセージｍの受信を完了した時点では、第２通信線３２へのメッセージｍの送信は完了しないようになり、中継接続ユニット１０は、第１通信線３１から受信したメッセージｍを、第１通信線３１よりも伝送速度の速い第２通信線３２にカットスルー方式で中継するときに、送信すべきデータが無い状態が発生することを防ぐことができる。
【００５２】
また、本発明では、複数の第１通信線３１から同時に受信したメッセージｍのうち最も早くコントロールフィールド４３の受信が完了したメッセージｍのコントロールフィールド４３の受信完了時点ｔ１を基準として、メッセージｍの送信開始までに必要な時間が最も短いメッセージｍを最初に第２通信線３２へ中継送信することで、送信待ち時間ＴＸの無駄が発生することを防いでいる。
【００５３】
なお、本実施形態では、第２通信線３２よりも伝送速度の遅い２本の第１通信線３１Ａ、３１Ｂから同時にメッセージｍを受信しているが、３本以上の第１通信線３１から同時にメッセージｍを受信していてもよい。
【００５４】
例えば、３つのメッセージを、メッセージｍＡ，ｍＢ，ｍＣの順で受信した場合、メッセージｍＡのコントロールフィールド４３の受信が完了した時点ｔ１を基準とし、メッセージｍＢのコントロールフィールド４３の受信が完了した時点ｔａで、メッセージｍＡとｍＢのどちらを先に送信するかを判定する。さらに、メッセージｍＣのコントロールフィールド４３の受信が完了した時点で、まだ、いずれのメッセージも送信されていない場合には、メッセージｍＡとメッセージｍＣのどちらを先に送信するかを判定し、また、メッセージｍＢとメッセージｍＣのどちらを先に送信するかを判定することで、メッセージｍＡ，ｍＢ，ｍＣの送信順序を定める。
すでにメッセージｍＡまたはｍＢのいずれか１つ送信が開始されていれば、残っているメッセージとの間でどちらを先に送信するかの判定を行う。
【００５５】
また、テーブルＴを記憶部１３に記憶せず、送信待ちビット数Ｘを、データフィールド４４のバイト数と伝送速度比Ｒからメッセージｍの受信毎に演算して求めてもよい。
【００５６】
さらに、記憶部１３にテーブルＴを持たず、中継処理部１１はメッセージｍを受信する毎に、データフィールド４４を受信するために必要な時間ＴＡとメッセージｍの全ビット数を第２通信線３２に送信するために必要な時間ＴＢから送信待ち時間ＴＸを求め、コントロールフィールド４３の受信が完了した時点から、第１通信線３１Ａの伝送速度で送信待ちビット数Ｘ分の送信待ち時間ＴＸが経過したのち、第２通信線３２にメッセージｍの中継を開始してもよい。
【００５７】
また、本実施形態ではＣＡＮメッセージｍは標準フォーマットとしたが、拡張フォーマットを用いてもよい。
拡張フォーマットの場合、アービトレーションフィールド４２は３２ビット、コントロールフィールド４３は６ビット、ＳＯＦフィールドは１ビットと定められており、送信待ちビット数Ｘは、（データフィールド４４のビット数−メッセージｍの全ビット数／伝送速度比Ｒ）＝（８×ｎ×Ｓ）−（３９＋８×ｎ×Ｓ）／Ｒで表される。
拡張フォーマットの場合に、伝送速度比Ｒとデータフィールド４４のバイト数から送信待ちビット数Ｘを演算すると、図７に示すテーブルＴとなる。
なお、他の構成および作用効果は第１実施形態と同様のため、同一の符号を付して説明を省略する。
【図面の簡単な説明】
【００５８】
【図１】本発明である中継接続ユニットを接続した通信システムの構成図である。
【図２】メッセージのフォーマットの説明図である。
【図３】送信待ち時間の説明図である。
【図４】複数の第１通信線から受信するメッセージの送信待ち時間と、コントロールフィールド受信完了時の時間差の説明図である。
【図５】（Ａ）時間差と送信待ち時間の和が小さいメッセージを先に第２通信線に中継送信する場合の説明図であり、（Ｂ）はメッセージを受信した順に中継送信を開始する場合の説明図である。
【図６】伝送速度比とデータフィールドのデータ長に対する送信待ちビット数Ｘを示した図である。
【図７】拡張フォーマット時の伝送速度比とデータフィールドのデータ長に対する送信待ちビット数Ｘを示した図である。
【図８】カットスルー方式の説明図である。
【図９】送信すべきデータがない状態を示す図である。
【符号の説明】
【００５９】
１０  中継接続ユニット
１１  中継処理部
１２  送受信部
１３  記憶部
３０  電子制御ユニット（ＥＣＵ）
３１Ａ  第１通信線
３１Ｂ  第１通信線
３２  第２通信線
４２  アービトレーションフィールド
４３  コントロールフィールド
Ｘ（ＸＡ，ＸＢ）  送信待ちビット数
ＴＸ（ＴＸＡ，ＴＸＢ）  送信待ち時間
Ｔ  テーブル
Ｒ（ＲＡ，ＲＢ）  伝送速度比
ｍ（ｍＡ，ｍＢ）  メッセージ
【図１】
0004917557.tif 000002
【図２】
0004917557.tif 000003
【図３】
0004917557.tif 000004
【図４】
0004917557.tif 000005
【図５】
0004917557.tif 000006
【図６】
0004917557.tif 000007
【図７】
0004917557.tif 000008
【図８】
0004917557.tif 000009
【図９】
0004917557.tif 000010