(57)【要約】【課題】ＬＩＮプロトコルに基づく通信システムにおいてスレーブからマスタへの通知を実現する場合に、配線の増加やバス負荷の増大を抑えること。【解決手段】通信装置６０は、ＬＩＮプロトコルに基づいて通信を行うマスタ６１およびスレーブ６２を備える。マスタ６１は、識別子フィールドにおける所定のデータを参照することによりスレーブ６２からの通知を検出する。スレーブ６２は、同期バイトフィールドを検出した直後に所定のデータを出力することによりマスタ６１への通信を自ら開始する。【選択図】図１
2010141819.tif 000002
【特許請求の範囲】
【請求項１】
ＬＩＮプロトコルに基づいて通信を行うマスタ及びスレーブを備える通信装置であって、
前記マスタは、識別子フィールドにおける所定のデータを参照することにより前記スレーブからの通知を検出し、
前記スレーブは、同期バイトフィールドを検出した直後に前記所定のデータを出力することにより前記マスタへの通信を自ら開始することを特徴とする通信装置。
【請求項２】
前記所定のデータは、データ０ｘ００であることを特徴とする、請求項１に記載の通信装置。
【請求項３】
請求項１又は２に記載の通信装置を備えることを特徴とする車載ＬＡＮ。
【請求項４】
請求項３に記載の車載ＬＡＮによって制御されることを特徴とする自動車。
【請求項５】
ＬＩＮプロトコルに基づく通信方法であって、
マスタにより、識別子フィールドにおける所定のデータを参照することによりスレーブからの通知を検出する工程と、
スレーブにより、同期バイトフィールドを検出した直後に前記所定のデータを出力することにより前記マスタへの通信を自ら開始する工程とを含むことを特徴とする通信方法。
【請求項６】
前記所定のデータは、データ０ｘ００であることを特徴とする、請求項５に記載の通信方法。
【請求項７】
ＬＩＮプロトコルに基づく通信プログラムであって、
識別子フィールドにおける所定のデータを参照することによりスレーブからの通知を検出する処理をマスタのＥＣＵに含まれるコンピュータに実行させるとともに、
同期バイトフィールドを検出した直後に前記所定のデータを出力することにより前記マスタへの通信を自ら開始する処理をスレーブのＥＣＵに含まれるコンピュータに実行させることを特徴とする通信プログラム。
【請求項８】
前記所定のデータは、データ０ｘ００であることを特徴とする、請求項７に記載の通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法および通信プログラムに関し、特に、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）プロトコルに基づく通信装置、通信方法および通信プログラムに関する。
【背景技術】
【０００２】
近年、自動車の車載システムにおいて電子制御の比重が増加している。特に、車載ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ、電子制御装置）システムにおいては、分散されたＥＣＵは通信ネットワークで接続され、相互に情報を交換する。また、ＥＣＵの個数の増加に伴って、車載ＥＣＵシステムの構成が複雑化したことから、ＣＡＮまたはＬＩＮなどの標準化された通信プロトコルが採用されるに至っている。これらの通信プロトコルは、ＥＣＵ間で適切に情報を交換するための方法を規定する。
【０００３】
ＬＩＮプロトコルに基づく通信装置は、伝送路としてシングルワイヤ方式を採用し、１つのマスタおよび複数のスレーブから構成される。したがって、ＬＩＮプロトコルは、車載サブシステム内のローカルネットワークを低コストで構築するために用いられる。
【０００４】
図８は、ＬＩＮプロトコルにおけるフレームの構成を示す図である。図８を参照すると、ＬＩＮフレーム７４は、ヘッダ（Ｈｅａｄｅｒ）７５およびレスポンス（Ｒｅｓｐｏｎｓｅ）７６から成る。マスタはヘッダ７５を送信する。スレーブはヘッダ７５を受信するとともに、受信したヘッダ７５に対応したレスポンス７６の送受信を行う。
【０００５】
ヘッダ７５は、同期の開始をスレーブに通知するためのブレークフィールド（Ｂｒｅａｋ  Ｆｉｅｌｄ）７１、同期を行うための同期バイトフィールド（Ｓｙｎｃｈ  Ｂｙｔｅ  Ｆｉｅｌｄ）７２、および、ネットワーク内のフレームを識別するための識別子フィールド（ＩＤ  Ｆｉｅｌｄ）７３から成る。識別子フィールド７３は、８ビット長の識別子および２ビットのパリティビットを有する。
【０００６】
レスポンス７６は、１ないし８バイトのデータフィールド（Ｄａｔａ  Ｆｉｅｌｄ）７７、および、データの信頼性を確保するためのチェックサムフィールド（Ｃｈｅｃｋｓｕｍ  Ｆｉｅｌｄ）７８から成る。各フィールドのデータは、一般に、ＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ）によって送受信される。
【０００７】
ＬＩＮプロトコルは、低コストを特徴としていることから、主に、車載サブシステム内のローカルネットワークにおいて用いられる。しかし、ＬＩＮプロトコルはシングルマスタ方式であることから、スレーブから自発的に通知する手段は提供されていない。すなわち、ＬＩＮプロトコルに基づく通信システムにおいて、スレーブから自発的に通知する場合、または、スレーブが途中参加するタイミングを通知する場合には、ＬＩＮプロトコルに規定されていない別の手段によって実現する必要がある。
【０００８】
そこで、一例として、マスタとスレーブとの間を別の伝送路で接続しておいて、スレーブからの通知をＬＩＮプロトコル以外の方法で通知するという方法が用いられる。また、マスタがＬＩＮプロトコルに基づく通信システムに参加していないスレーブに対して定期的にポーリングを実施し、スレーブがポーリングに対する応答をマスタに返却することによって、マスタがスレーブからの自発的な通知を認識する方法も用いられる。
【０００９】
なお、特許文献１において、フレームとフレームとの間に、スレーブからマスタに通知することができる時間を設ける方法が記載されている。
【００１０】
【特許文献１】特開２００３−１２４９５０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ＬＩＮプロトコルに基づく通信システムに対してスレーブを追加する場合に、特許文献１に記載された方法を用いたときには、バスの負荷の増大を招くという問題がある。特許文献１に記載された方法によると、フレームとフレームとの間に、本来のＬＩＮプロトコルにおいて必要とされるウエイトに加えて、情報スロット分を見込んでフレーム間隔を決定する必要がある。したがって、通常のＬＩＮフレームよりもフレームサイズが長くなり、バス負荷が増加するからである。また、スレーブからの通知が頻繁に発生しない通信システムにおいては、かかる情報スロットは無駄になるという問題もある。
【００１２】
そこで、ＬＩＮプロトコルに基づく通信システムにおいてスレーブからマスタへの通知を実現する場合に、配線の増加やバス負荷の増大を抑えることが課題となる。
【課題を解決するための手段】
【００１３】
本発明の第１の視点に係る通信装置は、ＬＩＮプロトコルに基づいて通信を行うマスタおよびスレーブを備える通信装置であって、マスタは、識別子フィールドにおける所定のデータを参照することによりスレーブからの通知を検出し、スレーブは、同期バイトフィールドを検出した直後に所定のデータを出力することによりマスタへの通信を自ら開始する。
【００１４】
本発明の第２の視点に係る通信方法は、ＬＩＮプロトコルに基づく通信方法であって、
マスタによって、識別子フィールドにおける所定のデータを参照することによりスレーブからの通知を検出する工程と、スレーブによって、同期バイトフィールドを検出した直後に所定のデータを出力することによりマスタへの通信を自ら開始する工程とを含む。
【００１５】
本発明の第３の視点に係る通信プログラムは、ＬＩＮプロトコルに基づく通信プログラムであって、識別子フィールドにおける所定のデータを参照することによりスレーブからの通知を検出する処理をマスタのＥＣＵに含まれるコンピュータに実行させるとともに、同期バイトフィールドを検出した直後に所定のデータを出力することによりマスタへの通信を自ら開始する処理をスレーブのＥＣＵに含まれるコンピュータに実行させる。
【発明の効果】
【００１６】
本発明に係る通信装置、方法およびプログラムによると、ＬＩＮプロトコルに基づく通信システムにおいてスレーブからマスタへの通知を実現する場合に、配線の増加やバス負荷の増大を抑えることができる。ＬＩＮプロトコルにおけるフレームの一部（一例として、識別子フィールド）をスレーブからの通知を行うためのフィールドとして利用することによって、従来のように、ＬＩＮプロトコル以外の配線を設ける必要がない上、フレームサイズを大きくする必要もないからである。
【００１７】
また、本発明に係る通信装置、方法およびプログラムによると、既存のＬＩＮシステムに対するわずかな変更のみ（例えば、ハードウェアの変更を必要とせず、ソフトウェアの変更のみ）で、スレーブからマスタへの通知を実現することができる。
【発明を実施するための最良の形態】
【００１８】
本発明の実施形態に係る通信装置について、図面を参照して説明する。図１は、本実施形態に係る通信装置の構成を示すブロック図である。図１を参照すると、通信装置６０は、ＬＩＮプロトコルに基づいて通信を行うマスタ６１およびスレーブ６２を備える。
【００１９】
マスタ６１は、識別子フィールドにおける所定のデータを参照することによりスレーブ６２からの通知を検出する。スレーブ６２は、同期バイトフィールドを検出した直後に所定のデータを出力することによりマスタ６１への通信を自ら開始する。
【００２０】
上記の所定のデータは、データ０ｘ００であることが好ましい。また、車載ＬＡＮ（非図示）は、上記の通信装置を備えることが好ましい。さらに、自動車（非図示）は、かかる車載ＬＡＮによって制御されることが好ましい。
【００２１】
また、上記の通信装置６０は、ＬＩＮプロトコルに基づく通信プログラムによって実現してもよい。ここで、通信プログラムは、識別子フィールドにおける所定のデータを参照することによりスレーブ６２からの通知を検出する処理をマスタ６１のＥＣＵに含まれるコンピュータに実行させる。また、通信プログラムは、同期バイトフィールドを検出した直後に所定のデータを出力することによりマスタ６１への通信を自ら開始する処理をスレーブ６２のＥＣＵに含まれるコンピュータに、実行させる。
【００２２】
さらに、上記の通信プログラムは、勿論、コンピュータ読み取り可能な任意の記録媒体に記録することができる。
【実施例】
【００２３】
本発明の実施例について、図面を参照して説明する。
【００２４】
（構成）
図２は、本発明の実施例における通信ノード（マスタまたはスレーブ）の構成を示すブロック図である。図２を参照すると、通信ノード１６は、ＥＣＵ１０およびトランシーバＩＣ１５を備える。ＥＣＵ１０は、命令を実行するＣＰＵ１１、命令の実行において使用されるＲＡＭ１２、命令が格納されているＲＯＭ１３、および、通信を行うＵＡＲＴ１４を備える。トランシーバＩＣ１５は、ＵＡＲＴ１４とＬＩＮバス５０とを中継する。ＵＡＲＴ１４とトランシーバＩＣ１５は、２本の送受信ライン（ＲｘＤ、ＴｘＤ）によって接続される。これによって、ＥＣＵ１０とＬＩＮバス５０とのデータの送受信が可能となる。
【００２５】
図３は、本発明の実施例におけるマスタの構成を示すブロック図である。マスタ２１は、図２に示した通信ノード１６として実現される。図３を参照すると、マスタ２１は、ブレークフィールド、同期バイトフィールドおよび識別子フィールドを送信するためのヘッダ制御部２２と、データフィールドおよびチェックサムフィールドを送受信するためのレスポンス制御部２３と、各フィールドを送受信するためのデータ送受信部２４と、送信したデータがバス上に正しく送信されているかをチェックする送受信比較部２５とを備える。
【００２６】
ヘッダ制御部２２は、さらに、スレーブ検出部２６を備える。スレーブ検出部２６は、ヘッダ制御機能における識別子フィールドの受信確認時において、スレーブからの通知の有無を判定する。ヘッダ制御部２２およびレスポンス制御部２３は、データ送受信部２４に対し、データ送信および受信確認を指示する。データ送受信部２４は、送受信比較部２５に対し、上記のチェックを指示する。
【００２７】
図４は、本実施例におけるスレーブの構成を示すブロック図である。図４を参照すると、スレーブ３１は、マスタからのヘッダを識別するヘッダ受信部３２と、ヘッダに対応したデータフィールドおよびチェックサムフィールドを送受信するためのレスポンス制御部３３と、各フィールドを送受信するためのデータ送受信部３６と、送信したデータがバス上に正しく送信されているかをチェックする送受信比較部３５と、同期バイトフィールドの検出後にスレーブ通知を出力するためのスレーブ通知部３４とを備える。
【００２８】
ヘッダ受信部３２、レスポンス制御部３３およびスレーブ通知部３４は、データ送受信部３６に対し、データ送信および受信確認を指示する。データ送受信部３６は、送受信比較部３５に対し、上記のチェックを指示する。
【００２９】
（動作）
図５は、本実施例の通信方法を用いた場合の波形図である。一方、図６は、本実施例におけるマスタ２１の動作を示すフローチャートである。図７は、本実施例におけるスレーブ３１の動作を示すフローチャートである。図６および図７は、一例として、マスタ２１が途中から通信装置に接続されるスレーブ３１を予め検出済みである場合において、検出後にスレーブ３１から通知されたデータを取得するときのフローチャートを示す。
【００３０】
マスタ２１は、フレーム送信を開始する場合には、ブレークフィールドを送信する（ステップＳ１１）。ＬＩＮプロトコルの典型的な実装例においては、ＬＩＮ補助機能付きのＵＡＲＴ１４を用いて、１３ビット以上のＬｏｗパルスを出力する。スレーブ３１は、ブレークフィールドを受信して（ステップＳ２１）、同期が開始される。
【００３１】
マスタ２１は、ブレークフィールドの送信（ステップＳ１１）後、ＵＡＲＴ１４を用いて、１バイトデータ０ｘ５５を送信することにより、同期バイトフィールドの送信を行う（ステップＳ１２）。スレーブ３１は、同期バイトフィールドの受信（ステップＳ２２）によって、データ０ｘ５５を認識する。また、スレーブ３１は、受信したデータ０ｘ５５の立ち下がりエッジの間隔をタイマで計測し、正確に１ビットの幅を割り出すことによって、通信ボーレートを同期化するようにしてもよい。
【００３２】
図５の同期バイトフィールド４２は、送信された同期バイトフィールドの波形を示す。１バイトのデータ０ｘ５５がマスタ２１から出力され、スレーブ３１からの出力はレセシブ状態となっている。このとき、ＬＩＮバス５０の波形はマスタ２１の出力と同等となっている。
【００３３】
マスタ２１は、各フレームを識別するための識別子として識別子フィールドを送信する（ステップＳ１３）。
【００３４】
スレーブ３１は、マスタ２１に対して自ら通信を開始する必要があるか否かを判定し（ステップＳ２３）、マスタ２１に対する通信の開始が必要である場合には（ステップＳ２３のＹｅｓ）、所定データとして１バイトのデータ０ｘ００を送信する（ステップＳ２４）。
【００３５】
マスタ２１は、識別子フィールドの送信（ステップＳ１３）を開始した直後、スレーブ３１からの所定のデータ０ｘ００の受信の有無を判定する（ステップＳ１４）。ＬＩＮバス５０に接続されたスレーブ３１以外のスレーブは、識別子フィールドにおいてデータ０ｘ００を受信するものの、識別子フィールドにおけるデータ０ｘ００はパリティエラーの値であることから、これをエラーとみなすか、または無視する。
【００３６】
マスタ２１は、所定のデータの受信の有無を確認して（ステップＳ１４）、受信していない場合には（ステップＳ１４のＮｏ）、データフィールドの送受信（ステップＳ１５）および、チェックサムフィールドの送受信を行う（ステップＳ１６）。
【００３７】
図５の識別子フィールド４３は、スレーブ３１からデータ０ｘ００を送信した場合における波形を示す。マスタ２１からの任意のデータ（２ビットのパリティエラーを含む。）と、スレーブ３１からのデータ０ｘ００とが重なることにより、ＬＩＮバス５０の波形においてはデータ０ｘ００が生じている。
【００３８】
マスタ２１は、所定のデータを受信した場合には（ステップＳ１４のＹｅｓ）、ブレークフィールドを送信し（ステップＳ１１）、通知を行ったスレーブ３１に対応した識別子を指定して（ステップＳ１２）、スレーブ３１からの通知を受信する。
【００３９】
図５のブレークフィールド４４および同期バイトフィールド４５は、再びＬＩＮプロトコルに基づく通信を行った場合の波形を示す。マスタ２１から１３ビット以上のＬｏｗ信号およびデータ０ｘ５５出力され、スレーブ３１からの出力はレセシブ状態となっている。このときのＬＩＮバス５０における波形はマスタ２１からの出力と同等となっている。
【００４０】
スレーブ３１は、マスタ２１に対する通信の開始が必要でない場合には（ステップＳ２３のＮｏ）、通常のＬＩＮプロトコルにおける通信と同様に、識別子フィールドを受信し（ステップＳ２５）、対象のフレームを認識する。
【００４１】
次に、スレーブ３１は、データフィールドの送受信を行い（ステップＳ２６）、チェックサムフィールドの送受信を行う（ステップＳ２７）。また、スレーブ３１は、ステップＳ２１に戻って処理を繰り返す。
【００４２】
本実施例において、マスタ２１は、識別子フィールドにおいてスレーブ３１からの通知を検出するスレーブ検出部２６を備える。また、スレーブ３１は、同期バイトフィールドを検出した直後にデータ０ｘ００を出力するスレーブ通知部３４を備える。本実施例においては、従来のＬＩＮプロトコルに基づく通信を維持しつつ、ＬＩＮプロトコルのフレームに対してスレーブ３１からマスタ２１への通信を開始する機能が埋め込まれる。
【００４３】
したがって、本実施例によると、フレームとフレームとの間に拡張した情報スロットを導入する必要がない。すなわち、本実施例によると、スレーブからマスタへの通信を開始する機能を少ないコストで実現することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態に係る通信装置の構成を示すブロック図である。
【図２】本発明の実施例における通信ノード（マスタまたはスレーブ）の構成を示すブロック図である。
【図３】本発明の実施例におけるマスタの構成を示すブロック図である。
【図４】本発明の実施例におけるスレーブの構成を示すブロック図である。
【図５】本発明の実施例における通信方法を用いた場合の波形図である。
【図６】本発明の実施例におけるマスタの動作を示すフローチャートである。
【図７】本発明の実施例におけるスレーブの動作を示すフローチャートである。
【図８】ＬＩＮプロトコルにおけるフレームの構成を示す図である。
【符号の説明】
【００４５】
１０、６３、６４  ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）
１１  ＣＰＵ
１２  ＲＡＭ
１３  ＲＯＭ
１４  ＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ）
１５  トランシーバＩＣ
１６  通信ノード
２１、６１  マスタ
２２  ヘッダ制御部
２３、３３  レスポンス制御部
２４、３６  データ送受信部
２５、３５  送受信比較部
２６  スレーブ検出部
３１、６２  スレーブ
３２  ヘッダ受信部
３４  スレーブ通知部
４１、４４、７１  ブレークフィールド（Ｂｒｅａｋ  Ｆｉｅｌｄ）
４２、４５、７２  同期バイトフィールド（Ｓｙｎｃｈ  Ｂｙｔｅ  Ｆｉｅｌｄ）
４３、７３  識別子フィールド（ＩＤ  Ｆｉｅｌｄ）
５０  ＬＩＮバス
６０  通信装置
７４  ＬＩＮフレーム
７５  ヘッダ（Ｈｅａｄｅｒ）
７６  レスポンス（Ｒｅｓｐｏｎｓｅ）
７７  データフィールド（Ｄａｔａ  Ｆｉｅｌｄ）
７８  チェックサムフィールド（Ｃｈｅｃｋｓｕｍ  Ｆｉｅｌｄ）
【図１】
2010141819.tif 000003
【図２】
2010141819.tif 000004
【図３】
2010141819.tif 000005
【図４】
2010141819.tif 000006
【図５】
2010141819.tif 000007
【図６】
2010141819.tif 000008
【図７】
2010141819.tif 000009
【図８】
2010141819.tif 000010