(57)【要約】【課題】マスタスレーブ方式の通信プロトコルが適用される通信システムにおいて、通信効率を低下させることなく、少ない待ち時間でスレーブからの能動的なフレームの送信を可能とする。【解決手段】各スレーブ３は、マスタ１から送信されるヘッダによって、受動通信（定期フレームによる通信）の実行タイミングか能動通信（イベントフレームによる通信）の実行タイミングかを識別する。能動通信時に、複数のスレーブ３がデータの送信を要求する場合でも、最も早くＩＤを送信したスレーブだけがレスポンスを送信し、更に、ＩＤの送信タイミングが同時である場合には、ＩＤを用いてバス調停を行い、勝ち残ったスレーブ３だけがレスポンスを送信する。【選択図】図７
2012080360.tif 000002
【特許請求の範囲】
【請求項１】
バスを介して接続されたマスタノードと複数のスレーブノードとからなり、前記マスタノードが前記スレーブノードのいずれかを順次指定し、指定された前記スレーブノードがデータを送信する受動通信と、前記スレーブノードが能動的にデータを送信する能動通信とを併用する通信システムであって、
前記受動通信では、
前記マスタノードは、前記受動通信の実行タイミングであることを示す識別情報に続けて、データの送信を行わせるスレーブノードを指定した指定情報を送信し、
前記スレーブノードは、前記マスタから送信された前記指定情報が自ノードを指定するものである場合に、該指定情報に続けてデータを送信し、
前記能動通信では、
前記マスタノードは、前記能動通信の実行タイミングであることを示す識別情報を送信し、
前記スレーブノードは、前記能動通信による送信が必要なデータを有する場合に、前記識別情報に続けてデータの送信を要求することを示す要求情報を送信し、該要求情報を用いたバス調停に勝ち残った場合に、該要求情報に続けてデータを送信することを特徴とする通信システム。
【請求項２】
前記指定情報の一つを、前記能動通信の実行タイミングであることを示す識別情報として用いることで、前記指定情報に前記識別情報としての機能を持たせ、
前記マスタノードは、前記受動通信では、前記識別情報の送信を省略し、前記識別情報を兼用する前記指定情報のみ送信することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記バス調停では、最も早いタイミングで前記要求情報を送信したスレーブノードが勝ち残ることを特徴とする請求項１又は請求項２に記載の通信システム。
【請求項４】
前記能動通信により前記スレーブノードから送信されるデータには、予め優先度が設定されており、
前記要求情報は、該要求情報に対応するデータの優先度が高いほど早いタイミングで送信されることを特徴とする請求項３に記載の通信システム。
【請求項５】
前記バス上の信号レベルが、優位なドミナントと劣位なレセッシブとからなり、
前記バス調停では、前記要求情報のビットパタンがバス上でも保持されたスレーブノードが勝ち残ることを特徴とする請求項１乃至請求項４のいずれか１項に記載の通信システム。
【請求項６】
複数のスレーブノードと共にバスに接続され、前記スレーブノードのいずれかを順次指定し、指定された前記スレーブノードがデータを送信する受動通信と、前記スレーブノードが能動的にデータを送信する能動通信とが併用される通信システムを、前記複数のスレーブノードと共に構成するマスタノードであって、
前記受動通信の実行タイミングであることを示す識別情報に続けてデータの送信を行わせるスレーブノードを指定した指定情報を送信するマスタ側受動通信実行手段と、
前記受動通信の実行タイミングであることを示す識別情報を送信する能動通信許可手段と、
前記マスタ側受動通信実行手段および前記能動通信許可手段を、予め設定されたスケジュールに従っていずれか一方ずつ機能させる切替制御手段と、
を備えることを特徴とするマスタノード。
【請求項７】
前記指定情報の一つを、前記能動通信の実行タイミングであることを示す識別情報として用いることで、前記指定情報に前記識別情報としての機能を持たせ、
前記マスタ側受動通信実行手段は、前記識別情報の送信を省略し、前記識別情報を兼用する前記指定情報のみ送信することを特徴とする請求項６に記載のマスタノード。
【請求項８】
バスを介してマスタノードと接続され、前記マスタノードから指定された場合にデータを送信する受動通信と、前記マスタノードからの指定によらず能動的にデータを送信する能動通信とを併用する通信システムを、前記マスタノードと共に構成するスレーブノードであって、
前記マスタノードから、前記受動通信の実行タイミングであることを示す識別情報に続けて、自ノードを指定する指定情報を受信した場合に、該指定情報に続けてデータを送信するスレーブ側受動通信実行手段と、
前記マスタノードから、前記能動通信の実行タイミングであることを示す識別情報を受信し、且つ、前記能動通信による送信が必要なデータを有する場合に、前記識別情報に続けて、データの送信を要求することを示す要求情報を送信する能動通信要求手段と、
前記要求情報送信時のバス上の信号レベルを監視するバス監視手段と、
前記バス監視手段での監視結果から、自ノードが前記要求情報を用いたバス調停に勝ち残った場合に、該要求情報に続けてデータを送信する能動通信実行手段と、
ことを特徴とするスレーブノード。
【請求項９】
バスを介してマスタノードと接続され、前記マスタノードから指定された場合にデータを送信する受動通信と、前記マスタノードからの指定によらず能動的にデータを送信する能動通信とを併用する通信システムを、前記マスタノードと共に構成するスレーブノードであって、
前記マスタノードから、自ノードを指定する指定情報を受信した場合に、該指定情報に続けてデータを送信するスレーブ側受動通信実行手段と、
前記マスタノードから、前記能動通信の実行タイミングであることを示す指定情報を受信し、且つ、該能動通信による送信が必要なデータを有する場合に、前記識別情報に続けて、データの送信を要求することを示す要求情報を送信する能動通信要求手段と、
前記要求情報送信時のバス上の信号レベルを監視するバス監視手段と、
前記バス監視手段での監視結果から、自ノードが前記要求情報を用いたバス調停に勝ち残った場合に、該要求情報に続けてデータを送信する能動通信実行手段と、
ことを特徴とするスレーブノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタノードから指定されたスレーブノードがデータを送信する受動通信と、スレーブノードが能動的にデータを送信する能動通信とを併用する通信システムに関する。
【背景技術】
【０００２】
従来、マスタノード（以下「マスタ」という）からヘッダを送信し、そのヘッダに対応付けられたスレーブノード（以下「スレーブ」という）が、ネットワーク上にデータを送出するマスタスレーブ方式の通信プロトコルが知られている。
【０００３】
マスタフレーブ方式の通信プロトコルでは、スレーブは、通常、予め設定されたスケジュールに従ってマスタから送信されてくるヘッダに従って、受動的にデータの送信を行っている。しかし、あるスレーブにてイベントが発生した場合に、これを速やかに他のノードに伝えたい等の要求があり、こういった要求を実現するために、上述のスケジュールに従ったデータ送信のタイミングを待つことなく、スレーブから能動的にデータを送信する仕組みを組み込むことが考えられている。
【０００４】
例えば、車載ネットワークに適用されるＬＩＮ（Local Interconnect Network）プロトコルでは、指定したスレーブだけにレスポンスを送信させるためのヘッダ（いわゆる無条件フレーム用のヘッダ）の他に、イベントの発生を検出したスレーブにレスポンスを送信させるためのヘッダ（いわゆるイベントトリガフレーム用のヘッダ）が用意されている。
【０００５】
そして、スレーブは、イベントの発生を検出すると、イベントトリガフレームを用いてレスポンスを送信するようにされている（例えば、非特許文献１参照）。
また、次のような通信方法も提案されている。即ち、マスタからスレーブへの出力データは、１つのＯＵＴフレームで一括して転送し、スレーブからマスタへの入力データは、各スレーブに互いに重複しないように割り当てられた時間帯にＩＮフレームをそれぞれ返送することで、定期的な通信を実現する。これと共に、ＯＵＴフレームにてマスタがメッセージ通信要求の有無を確認したい単数または複数のスレーブを指定し、その指定されたスレーブがメッセージ送信要求を示す応答フレームを返送すると、マスタは、応答フレームを返送してきたスレーブに対してメッセージ送信許可フレームを送信することでバス権を渡し、バス権を持ったスレーブがマスタに対してメッセージを送信することにより、スレーブから能動的にデータを送信することを可能としている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−６６１１１号公報
【非特許文献】
【０００７】
【非特許文献１】佐藤道夫著「車載ネットワークシステム徹底解説」ＣＱ出版株式会社、２００５年１２月１日発行
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、ＬＩＮでは、イベントトリガフレーム用のヘッダ（以下「イベントヘッダ」という）は、無条件フレーム用のヘッダとは異なり、同一のヘッダが複数のスレーブに対応付けられているため、図１０に示すように、その同一のイベントヘッダに対応付けられた複数のスレーブが同時にレスポンスを送信した場合には衝突が発生する。
【０００９】
なお、図中では、スレーブ＿１，スレーブ＿２に共通のイベントヘッダとしてＩＤ＝０Ｘ１０を用い、スレーブ＿１，スレーブ＿２を個別に指定するヘッダとしてＩＤ＝０ｘ２０、ＩＤ＝０ｘ３０を用いるものとする。
【００１０】
このようなレスポンスの衝突を検出した場合（衝突発生時の最初のスロット）、衝突したレスポンスが破棄されると共に、マスタは、再度の衝突を避けるために、衝突を引き起こしたイベントヘッダに対応付けられている個々のスレーブに対して、レスポンスするスレーブを指定したヘッダ（無条件フレーム用のヘッダ）を順次送信することになり（衝突発生時の２番目および３番目のスロット）、通信効率を低下させてしまうという問題があった。
【００１１】
また、特許文献１に記載の通信方法では、スレーブが能動的にマスタに対してデータを送信するためには、マスタからスレーブにＯＵＴフレーム（スレーブ指定）を送信し、スレーブからマスタに応答フレーム（メッセージ送信要求）を送信し、マスタからスレーブにメッセージ送信許可フレームを送信するという３個のフレームのやり取りが必要であり、その後、やっとスレーブからの能動的なメッセージを送信することが可能となる。
【００１２】
このように特許文献１に記載の方法では、メッセージをやり取りする手順が複雑であり、そのやり取りによってバス上の通信効率を悪化させるだけでなく、イベントの発生を速やかにマスタに通知することができないという問題があった。
【００１３】
本発明は、上記問題点を解決するために、マスタスレーブ方式の通信プロトコルが適用される通信システムにおいて、通信効率を低下させることなく、少ない待ち時間でスレーブからの能動的なフレームの送信を可能とすることを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するためになされた発明である請求項１に記載の通信システムは、バスを介して接続されたマスタノードと複数のスレーブノードとからなり、マスタノードがスレーブノードのいずれかを順次指定し、指定されたスレーブノードがデータを送信する受動通信と、スレーブノードが能動的にデータを送信する能動通信とを併用する。
【００１５】
そして、受動通信では、マスタノードは、受動通信の実行タイミングであることを示す識別情報に続けて、データの送信を行わせるスレーブノードを指定した指定情報を送信し、これに対して、スレーブノードは、マスタから送信された指定情報が自ノードを指定するものである場合に、その指定情報に続けてデータを送信する。
【００１６】
一方、能動通信では、マスタノードは、能動通信の実行タイミングであることを示す識別情報を送信し、これに対して、スレーブノードは、能動通信による送信が必要なデータを有する場合に、識別情報に続けてデータの送信を要求することを示す要求情報を送信し、要求情報を用いたバス調停に勝ち残った場合に、その要求情報に続けてデータを送信する。
【００１７】
このように構成された本発明の通信システムでは、各スレーブノードは、マスタノードから送信される識別情報によって、受動通信の実行タイミングか能動通信の実行タイミングかを識別しており、受動通信と能動通信との切替のためにマスタノードとスレーブノードとの間で特別なフレームをやり取りする必要がないため、スレーブノードから能動的にデータを送信する必要がある場合に、その送信を速やかに実現することができる。
【００１８】
しかも、本発明の通信システムによれば、能動通信時に、複数のスレーブノードがデータの送信を要求（要求情報を送信）したとしても、要求情報を用いてバス調停を行い、勝ち残ったスレーブノードだけがデータを送信するようにされているため、スレーブノードからの能動的なデータの送信を、バス上の通信効率を悪化させることなく実現することができる。
【００１９】
なお、指定情報としては、例えば、ノードを識別するノードＩＤやメッセージを識別するメッセージＩＤを用いることができ、この場合、個々の指定情報は、通信システムに接続されたいずれかのノードや、通信システムで用いるいずれかのメッセージ（ひいてはメッセージの送信元となるノード）を特定することになる。
【００２０】
ところで、このような指定情報の一つを、ノードやメッセージを特定するのではなく、能動通信の実行タイミングであることを示す識別情報として用いれば、指定情報に識別情報としての機能を持たせることができる。このような指定情報を用いた場合、指定情報の設定値がノードやメッセージを特定するために割り当てられたものであれば、能動通信を実行するタイミングであり、そうでなければ能動通信の実行タイミングであると識別することができる。
【００２１】
従って、この場合、マスタノードは、受動通信において、識別情報と指定情報を両方送信するのではなく、識別情報の送信を省略し、識別情報を兼用する指定情報のみ送信するように構成すればよい。
【００２２】
このように構成された本発明の通信システムによれば、受動通信でのメッセージ長が短くなるため、バス上の通信効率をより向上させることができる。
本発明の通信システムにおいて、バス調停は、例えば、最も早いタイミングで要求情報を送信したスレーブノードが勝ち残るようにすることが考えられる。
【００２３】
この場合、具体的には、能動通信によりスレーブノードから送信されるデータに、予め優先度を設定しておき、要求情報は、その要求情報に対応する（要求情報に続けて送信される）データの優先度が高いほど早いタイミングで送信されるようにすればよい。
【００２４】
また、バス上の信号レベルが、優位なドミナントと劣位なレセッシブとからなる場合、例えば、要求情報同士が衝突した時に、要求情報のビットパタンがバス上で保持されたスレーブノードが勝ち残るようなバス調停を行ってもよい。なお、このようなバス調停は、例えば、ＣＡＮプロトコルにおいて実現されている周知のものである。
【００２５】
次に、請求項６に記載のマスタノードでは、受動通信の実行タイミングであることを示す識別情報に続けて、データの送信を行わせるスレーブノードを指定した指定情報を送信するマスタ側受動通信実行手段と、受動通信の実行タイミングであることを示す識別情報を送信する能動通信許可手段とを備えており、切替制御手段が、マスタ側受動通信実行手段および能動通信許可手段を、予め設定されたスケジュールに従っていずれか一方ずつ機能させる。
【００２６】
このように構成された本発明のマスタノードは、請求項１に記載の通信システムを構築する際に、好適に用いることができる。
なお、指定情報の一つを、能動通信の実行タイミングであることを示す識別情報として用いることで、指定情報に識別情報としての機能を持たせ、マスタ側受動通信実行手段は、識別情報の送信を省略し、識別情報を兼用する指定情報のみ送信するように構成されていてもよい。
【００２７】
このように構成された本発明のマスタノードは、請求項２に記載の通信システムを構築する際に、好適に用いることができる。
次に請求項８に記載のスレーブノードでは、スレーブ側受動通信実行手段が、マスタノードから、受動通信の実行タイミングであることを示す識別情報に続けて、自ノードを指定する指定情報を受信した場合に、その指定情報に続けてデータを送信する。
【００２８】
また、能動通信要求手段が、マスタノードから、能動通信の実行タイミングであることを示す識別情報を受信し、且つ、能動通信による送信が必要なデータを有する場合に、識別情報に続けて、データの送信を要求することを示す要求情報を送信する。
【００２９】
そして、要求情報送信時のバス上の信号レベルを監視するバス監視手段での監視結果から、自ノードが要求情報を用いたバス調停に勝ち残ったと判断した場合、能動通信実行手段が、要求情報に続けてデータを送信する。
【００３０】
このように構成された本発明のスレーブノードは、請求項１に記載の通信システムを構築する際に、好適に用いることができる。
また請求項９に記載のスレーブノードは、能動通信要求手段が、マスタノードから、能動通信の実行タイミングであることを示す指定情報を受信し、且つ、能動通信による送信が必要なデータを有する場合に、識別情報に続けて、データの送信を要求することを示す要求情報を送信する。それ以外は、請求項８に記載のスレーブノードと同様に構成されている。
【００３１】
このように構成された本発明のスレーブノードは、請求項２に記載の通信システムを構築する際に、好適に用いることができる。
【図面の簡単な説明】
【００３２】
【図１】通信システムおよびその一部であるノードの構成を示すブロック図。
【図２】通信システムで使用するフレームの構成、マイコンとトランシーバとの間で送受信するデータの構成、符号化されたデータの構成を示す説明図。
【図３】マスタタスクによって実行される処理の内容を示すフローチャート。
【図４】スレーブタスクによって実行される処理の内容を示すフローチャート。
【図５】イベントフレーム送信処理の詳細を示すフローチャート。
【図６】第１実施形態の通信システムにおける基本動作を示すタイミング図。
【図７】複数のスレーブがイベントフレームの送信を要求した場合の動作例を示すタイミング図。
【図８】複数のスレーブがイベントフレームの送信を要求した場合の他の動作例を示すタイミング図。
【図９】第２実施形態の通信システムにおける基本動作を示すタイミング図。
【図１０】従来技術の問題点を示すタイミング図。
【発明を実施するための形態】
【００３３】
以下に本発明の実施形態を図面と共に説明する。
［第１実施形態］
＜全体構成＞
図１は、マスタスレーブ方式の通信プロトコルが適用された車載用の通信システムの構成を示すブロック図である。
【００３４】
図１に示すように、通信システムは、車両の状態を検出したり車両の状態を制御したりするため設けられた各種機器（以下「制御対象機器」という）に搭載されるスレーブノード３（３ａ，３ｂ，３ｃ，３ｄ，…）と、バスＢＳを介して接続されたスレーブノード３との通信により、制御対象機器が検出した車両の状態を取得したり、制御対象機器に対する各種指令を生成して車両制御を行うマスタノード１とを備えている。以下では、マスタノード１を、単にマスタ１と称し、また、スレーブノード３を、単にスレーブ３と称する。
【００３５】
マスタ１は、ＣＡＮプロトコルが適用された車載ネットワークに接続され、ボディ系のアプリケーションを実現する電子制御装置（ＥＣＵ）からなる。例えば、マスタ１が、ドアに関するアプリケーションを制御するＥＣＵである場合、スレーブ３（３ａ，３ｂ，３ｃ，３ｄ，…）を搭載する制御対象機器としては、ミラー、ドアロック、ウィンドウ等を制御する機器が考えられる。
【００３６】
なお、マスタ１は、車両に複数存在していてもよく、また、スレーブ３を搭載する制御対象機器としては、例えば、サンルーフ、ワイパ、パワーシート、エアコン、ステアリング、ライト等を制御する機器であってもよい。
【００３７】
＜フレームフォーマット＞
ここで、図２は、通信システムにおいてデータの送受信に使用するフレームの構成を示す説明図である。
【００３８】
マスタ１，スレーブ３間では、マスタ１がスレーブを順次指定（いわゆるポーリング）して、指定されたスレーブ３がレスポンス（データ）を送信する受動通信と、マスタ１が指定する期間を利用して、各スレーブ３が能動的にデータを送信する能動通信とを行う。
【００３９】
そして、図２（ａ）に示すように、受動通信では、マスタ１が、通信の種類（ここでは受動通信）を指定するヘッダ、およびレスポンスを返すスレーブを指定するＩＤを続けて送信する。このヘッダおよびＩＤを受信したスレーブ３は、ＩＤが自スレーブ３を指定するものである場合に、受信したＩＤに続けてレスポンスを送信する。
【００４０】
一方、能動通信では、マスタ１が、通信の種類（ここでは能動通信）を指定するヘッダのみを送信し、このヘッダを受信したスレーブ３は、送信すべきデータが存在する場合には、自スレーブ３のＩＤを、受信したヘッダに続けて送信し、そのＩＤを用いたバス上の調停に勝ち残った場合に、ＩＤに続けてデータを送信する。
【００４１】
なお、ＩＤは、スレーブ３を識別するために割り当てられたものでもよいし、データを識別するために割り当てられたものであってもよい。
また、能動通信は、ドライバの操作（例えば、ドアの開閉操作等）によって制御対象機器の状態が変化し、その状態の変化（イベント要因）を速やかにマスタ１に通知する必要がある場合等に利用される。
【００４２】
以下では、受動通信で使用するフレームを定期フレーム、能動通信で使用するフレームをイベントフレームともいう。イベントフレームによる通知を、単に、イベントともいう。
【００４３】
＜ノード＞
マスタ１は、スレーブ３との通信を他のＥＣＵと通信を行うための処理を実行するマイクロコンピュータ（以下「マイコン」という）１１と、バスＢＳに接続されて、マイコン１１から与えられるデータＴｘを符号化した送信データＴｘＤをバスＢＳに出力すると共に、バスＢＳ上のデータ（受信データ）ＲｘＤを受信し、復号したデータＲｘをマイコン１１に入力するトランシーバ１２とを備えている。
【００４４】
トランシーバ１２は、自ノードから出力された送信データＴｘＤがバスＢＳ上で書き換えられた場合（他ノードからの出力と衝突し調停負けした場合）に、アクティブレベルとなる衝突検出信号ＣＤを生成してマイコン１１に供給するように構成されている。
【００４５】
一方、スレーブ３は、マスタ１と同様の構成を有しており、マイコン１１で実行される処理が、マスタ１とは一部異なるだけであるため、以下では、マスタ１の構成についてのみ説明し、スレーブ３の構成については説明を省略する。
【００４６】
なお、スレーブ３では、マスタ１から送信されてくるヘッダの種類に従って、データ（レスポンス）の送信を制御するスレーブタスクを実行する。
一方、マスタ１では、予め設定されたスケジュールに従って、定期フレームのヘッダ，ＩＤの送信と、イベントフレームのヘッダの送信とを切り替えることでバスＢＳ上の通信を制御するマスタタスクを実行する。また、マスタ１では、更に、マスタ１自身がデータ（レスポンス）を送信することを可能とするために、スレーブ３で実行するものと同様のスレーブタスクを実行する。
【００４７】
更に、マスタ１，スレーブ３では、それぞれに個別に割り当てられた機能を実現するための処理を実行し、その処理の中でレスポンスとして送信するデータを生成するように構成されている。
【００４８】
＜マイコン＞
マイコン１１は、ＣＰＵ，ＲＯＭ，ＲＡＭ，ＩＯポート等からなるマイコンにおける周知の構成に加えて、調歩同期（非同期）方式のシリアル通信を実現するＵＡＲＴ（汎用非同期受信・送信機：Universal Asynchronous Receiver Transmitter ）１１ａを備えている。
【００４９】
ＵＡＲＴ１１ａが送受信するデータＴｘ，Ｒｘは、図２（ｂ）に示すように、データの開始を示す１ビット長のスタートビット（ロウレベル）と、データの終了を示すストップビット（ハイレベル）とで挟まれた８ビットのデータとで構成された合計１０ビットのブロックデータからなり、主要部となる８ビートのデータは、ＬＳＢが先頭、ＭＳＢが末尾となるように設定されている。
【００５０】
本実施形態では、ヘッダ，ＩＤは、いずれも、ＵＡＲＴ１１ａが１度に送受信可能な１０ビットのブロックデータで構成され、レスポンスは、予め設定された個数（１ないし複数個）のブロックデータで構成されている。
【００５１】
＜トランシーバ＞
図１に戻り、トランシーバ１２は、マイコン１１からの供給されるデータＴｘ（ＮＲＺ符号）を、バスＢＳ上で用いる符号に符号化する符号化回路１３と、符号化回路１３にて符号化された送信データＴｘＤをバスＢＳに出力する送信バッファ１４と、バスＢＳ上のデータを取り込む受信バッファ１５と、受信バッファ１５が取り込んだ受信データＲｘＤを復号し、復号したデータＲｘをマイコン１１に供給する復号回路１６と、送信データＴｘＤと受信データＲｘＤとで信号レベルが不一致である場合にアクティブレベルとなる衝突検出信号ＣＤを出力する調停回路１７とを備えている。
【００５２】
送信バッファ１４は、複数のノードからバスＢＳに信号が同時に出力された場合、いずれか一つでもロウレベルであれば、バスＢＳの信号レベルがロウレベルとなるように構成されている。このような構成は、例えば、周知のオープンコレクタ回路を用いて構成することができる。以下では、バスＢＳ上のハイレベルをレセッシブ、ロウレベルをドミナントともいう。
【００５３】
受信バッファ１５は、バスＢＳの信号レベルが、予め設定された閾値より大きければハイレベル、閾値より低ければロウレベルを出力する周知のコンパレータによって構成することができる。
【００５４】
符号化回路１３は、図２（ｃ）に示すように、データＴｘの１ビットの長さを４等分し、データＴｘがロウレベル（０）の時には、１ビット中の前３／４期間がロウレベル、後１／４期間がハイレベルとなる第１符号に変換し、データＴｘがハイレベル（１）の時には、１ビット中の前１／４期間がロウレベル、後３／４期間がハイレベルとなる第２符号に変換する。つまり、符号化回路１３は、ＮＲＺ符号をＰＷＭ符号に変換し、復号回路１６は、ＰＷＭ符号をＮＲＺ符号に変換するように構成されている。
【００５５】
但し、符号化回路１３は、衝突検出信号ＣＤが非アクティブレベルの時に、データＴｘに従って符号化された送信データＴｘＤを送信バッファ１４に供給し、衝突検出信号ＣＤがアクティブレベルになると、マイコン１１から許可信号ＥＮが入力されるまでの間、ハイレベル（レセッシブ）に固定された送信データＴｘＤを送信バッファ１４に供給するように構成されている。
【００５６】
調停回路１７は、例えば、排他的論理和回路（ＸＯＲゲート）によって、送信データと受信データを比較することで実現される。
なお、バスＢＳ上で、第１符号（ＴＸ＝‘Ｌ’）と第２符号（ＴＸ＝‘Ｈ’）とが衝突した場合、第１符号はそのまま送信され（調停に勝ち残り）、第２符号は第１符号に書き換えられる（調停に負ける）。従って、この場合、第２符号を送信したノードでは、送信した信号の信号レベルとバスＢＳから取り込んだ信号の信号レベルが不一致となり、調停回路１７から出力される衝突検出信号ＣＤがアクティブレベルとなる。
【００５７】
＜マスタタスク＞
次に、マスタ１のマイコン１１が実行するマスタタスクの内容を、図３に示すフローチャートに沿って説明する。
【００５８】
マスタタスクは、マスタ１に電源が投入され、初期化処理等が実行されることによって、バスＢＳの使用が可能となると起動する。
本処理が起動すると、定期フレーム用のヘッダである定期ヘッダの送信タイミングであるか否かを判断し（Ｓ１１０）、定期ヘッダの送信タイミングでなければ（Ｓ１１０：ＮＯ）、イベントフレーム用のヘッダであるイベントヘッダの送信タイミングであるか否かを判断し（Ｓ１９０）、イベントヘッダの送信タイミングでなければ（Ｓ１９０：ＮＯ）、Ｓ１１０に戻る。
【００５９】
なお、定期ヘッダおよびイベントヘッダは、予め設定されたスケジュールに従って送信される。具体的には、定期ヘッダとイベントヘッダとを交互に送信するようなスケジュールであってもよいし、定期ヘッダおよびイベントヘッダのいずれか一方をＭ（Ｍは２以上の整数）回続ける毎に、他方を１回だけ挿入するようなスケジュールであってもよい。
【００６０】
そして、定期ヘッダの送信タイミングであると判断した場合（Ｓ１１０：ＹＥＳ）、許可信号ＥＮにより符号化回路１３を符号化したデータの出力が可能な状態にして、定期ヘッダを送信し（Ｓ１２０）、続けて、レスポンスを要求するスレーブ３のＩＤを送信する（Ｓ１３０）。
【００６１】
この時、ＵＡＲＴ１１ａからは、スタートビットとストップビットに挟まれた定期ヘッダを表す８ビットのデータが送信され、続けて、スタートビットとストップビットに挟まれたＩＤを表す８ビットのデータが送信される。これら定期ヘッダおよびＩＤは、符号化回路１３により、ＰＷＭ符号に符号化され、送信バッファ１４を介してバスＢＳに送出される。
【００６２】
その後、レスポンスの受信を待つ最大許容時間を計測するようにタイマをセットし（Ｓ１４０）、レスポンスを受信したか否かを判断する（Ｓ１５０）。
なお、レスポンスを受信したか否かは、ＵＡＲＴ１１ａが復号回路１６を介して、スタートビットとストップビットに挟まれた８ビットのデータを、予め設定された個数だけ受信したか否かによって判断する。
【００６３】
レスポンスを受信したと判断した場合（Ｓ１５０：ＹＥＳ）、予め用意されている受信処理を行って（Ｓ１６０）、Ｓ１１０に戻る。
一方、レスポンスを受信していないと判断した場合（Ｓ１５０：ＮＯ）、先のＳ１４０にてセットしたタイマがタイムアウトしたか否かを判断する（Ｓ１７０）。
【００６４】
タイマがタイムアウトしていなければ（Ｓ１７０：ＮＯ）、Ｓ１５０に戻って、引き続きレスポンスの受信を待ち、タイマがタイムアウトしていれば（Ｓ１７０：ＹＥＳ）、指定されたスレーブまたはバスＢＳ上で何等かのエラーが発生したものとして、予め用意されているエラー処理を実行して（Ｓ１８０）、Ｓ１１０に戻る。
【００６５】
なお、受信処理やエラー処理の詳細は、本発明の主旨とは関係がないため、ここでは説明を省略する。
先のＳ１９０に戻り、イベントヘッダの送信タイミングであると判断した場合（Ｓ１９０：ＹＥＳ）、許可信号ＥＮにより符号化回路１３を符号化したデータの出力が可能な状態にして、イベントヘッダを送信する（Ｓ２００）。
【００６６】
その後、ＩＤの受信を待つ最大許容時間を計測するようにタイマをセットし（Ｓ２１０）、ＩＤを受信したか否かを判断する（Ｓ２２０）。
なお、ＩＤを受信したか否かは、ＵＡＲＴ１１ａが復号回路１６を介して、スタートビットとストップビットに挟まれた８ビットのデータを受信し、しかも、８ビットのデータがＩＤを表すものであるか否かによって判断する。
【００６７】
ＩＤを受信したと判断した場合（Ｓ２２０：ＹＥＳ）、レスポンスの受信を行うために上述したＳ１４０〜Ｓ１８０の処理を実行する。
一方、ＩＤを受信していないと判断した場合（Ｓ２２０：ＮＯ）、先のＳ２１０にてセットしたタイマがタイムアウトしたか否かを判断する（Ｓ２３０）。
【００６８】
タイマがタイムアウトしていなければ（Ｓ２３０：ＮＯ）、Ｓ２２０に戻って、引き続きＩＤの受信を待ち、タイマがタイムアウトしていれば（Ｓ２３０：ＹＥＳ）、どのスレーブ３からもイベントフレームが送信されなかったものとして、そのままＳ１１０に戻る。
【００６９】
＜スレーブタスク＞
次に、マスタ１およびスレーブ３のマイコン１１が実行するスレーブタスクの内容を、図４に示すフローチャートに沿って説明する。
【００７０】
スレーブタスクは、マスタ１からバスＢＳを介してヘッダを受信する毎に起動する。
本処理が起動すると、まず、受信したヘッダの種類を判別し（Ｓ３１０）、受信したヘッダが定期ヘッダである場合（Ｓ３１０：定期）には、ＩＤ受信を待つ最大許容時間を計測するようにタイマをセットし（Ｓ３２０）、ＩＤを受信したか否かを判断する（Ｓ３３０）。
【００７１】
ＩＤを受信したと判断した場合（Ｓ３３０：ＹＥＳ）、受信したＩＤは自スレーブ３を指定するものであるか否かを判断し（Ｓ３４０）、受信したＩＤが自スレーブ３を指定するものであれば（Ｓ３４０：ＹＥＳ）、許可信号ＥＮにより符号化回路１３を符号化したデータの出力が可能な状態にし、受信したＩＤに続けて、予め用意されているデータ（レスポンス）を送信（Ｓ３５０）して、本処理を終了し、受信したＩＤが自スレーブ３を指定するものでなければ（Ｓ３４０：ＮＯ）、そのまま本処理を終了する。
【００７２】
一方、ＩＤを受信していないと判断した場合（Ｓ３３０：ＮＯ）、先のＳ３２０にてセットしたタイマがタイムアウトしたか否かを判断する（Ｓ３６０）。
タイマがタイムアウトしていなければ（Ｓ３６０：ＮＯ）、Ｓ３３０に戻って、引き続きＩＤの受信を待ち、タイマがタイムアウトしていれば（Ｓ３６０：ＹＥＳ）、マスタ１またはバスＢＳ上でエラーが発生したものとして、予め用意されたエラー処理を実行して（Ｓ３７０）、本処理を終了する。
【００７３】
先のＳ３１０に戻り、受信したヘッダがイベントヘッダであると判断した場合には、自ノードにてイベント要因が生じているか否かを判断し（Ｓ３８０）、イベント発生中でなければ（Ｓ３８０：ＮＯ）そのまま本処理を終了し、イベント発生中であれば（Ｓ３８０：ＹＥＳ）、イベントフレーム送信処理を実行して（Ｓ３９０）本処理を終了する。
【００７４】
なお、Ｓ３８０におけるイベント要因が生じているか否かの判断は、スレーブタスクとは別に実行される処理により設定されるフラグ（以下「要因フラグ」という）によって判断する。
【００７５】
＜イベントフレーム送信処理＞
次に、先のＳ３９０で実行するイベントフレーム送信処理の詳細を、図５に示すフローチャートに沿って説明する。
【００７６】
本処理が起動すると、まず、他スレーブ３がＩＤの送信を開始しているか否かを判断し（Ｓ４１０）、開始していれば、そのまま本処理を終了し、開始していなければ、許可信号ＥＮにより符号化回路１３を符号化したデータの出力が可能な状態にして、自スレーブ３のＩＤの送信を開始する（Ｓ４２０）。
【００７７】
なお、Ｓ４１０では、バスＢＳの信号レベルがレセッシブであれば、いずれのスレーブ３も送信していないものと判断する。なお、マイコン１１が、バスＢＳの信号レベルを直接監視するようには構成されていない場合は、衝突検出信号ＣＤの信号レベルから判断してもよい。
【００７８】
そして、自スレーブ３のＩＤの送信開始と共に衝突検出信号ＣＤの信号レベルを監視し、Ｓ４２０にて送信したＩＤが他スレーブ３から送出されたＩＤと衝突することによって調停負けしたか否かを、衝突検出信号ＣＤがアクティブレベルになったか否かにより判断する（Ｓ４３０）。
【００７９】
調停負けしていると判断した場合（Ｓ４３０：ＹＥＳ）、そのまま本処理を終了する。この時、符号化回路１３は、衝突検出信号ＣＤがアクティブレベルになったことによって、符号化したデータの出力が禁止された状態となる。
【００８０】
即ち、ＵＡＲＴ１１ａは、スタートビットからストップビットの間で、送信を止めることができないため、符号化回路１３の出力を止めることで、ＩＤの送信停止を実現している。
【００８１】
一方、送信した自スレーブ３のＩＤは調停負けしていないと判断した場合（Ｓ４３０：ＮＯ）、ＵＡＲＴ１１ａの動作状態からＩＤの送信が終了したか否かを判断し（Ｓ４４０）、終了していないと判断した場合（Ｓ４４０：ＮＯ）、Ｓ４３０に戻って衝突検出信号ＣＤの信号レベルの監視を続ける。
【００８２】
ＩＤの送信が終了したと判断した場合（Ｓ４４０：ＹＥＳ）、イベントの発生を通知するためのデータ（レスポンス）を、ＩＤに続けて送信し（Ｓ４５０）、その後、イベント要因の有無を表す要因フラグをクリアして（Ｓ４６０）、本処理を終了する。
【００８３】
なお、上述したスレーブタスク、イベントフレーム送信処理の内容は、レスポンスの送信のみを行う基本的な処理を示したものであり、例えば、スレーブ３でもレスポンスの受信を行う必要がある場合、スレーブ３が実行するスレーブタスクを次のように構成すればよい。
【００８４】
即ち、他のスレーブが送信した定期フレームを受信可能とする必要がある場合、図４中に点線で示すように、受信したＩＤが自スレーブ３を指定するものでなかった時（Ｓ３４０：ＮＯ）に、Ｓ１４０〜Ｓ１８０と同様の処理であるレスポンス受信処理（Ｓ３５５）を実行するように構成すればよい。
【００８５】
また、他のスレーブが送信したイベントフレームを受信可能とする必要がある場合には、図４中に点線で示すように、受信したヘッダがイベントヘッダ（Ｓ３１０：イベント）であるが、自スレーブ３がイベント発生中でない時（Ｓ３８０：ＮＯ）に、Ｓ２２０〜Ｓ２３０，Ｓ１４０〜Ｓ１８０と同様の処理であるイベントフレーム受信処理（Ｓ３９５）を実行すると共に、図５中に点線で示すように、イベントフレーム送信処理において、他ＩＤの送信を検出した場合（Ｓ４１０：ＹＥＳ）および調停負けした場合（Ｓ４３０：ＹＥＳ）に、他ＩＤの受信終了を待って（Ｓ４７０）、Ｓ１４０〜Ｓ１８０と同様の処理であるレスポンス受信処理（Ｓ４８０）を実行するように構成すればよい。
【００８６】
また、マスタ１や一部のスレーブ３がイベントフレームを送信する必要がない場合、そのマスタ１や一部のスレーブ３が実行するスレーブタスクでは、Ｓ３８０，Ｓ３９０が省略されていてもよい。
【００８７】
＜動作＞
図６は、マスタ１やスレーブ３を用いて構成された通信システムの基本動作を表すタイミング図である。
【００８８】
図６に示すように、マスタ１のマスタタスクは、予め設定されたスケジュールに従って、定期ヘッダまたはイベントヘッダのいずれかを、予め設定された１スロット毎に送信する。図では、定期ヘッダとイベントヘッダを交互に送信する場合を示す。そして、定期ヘッダを送信する時には続けてＩＤも送信する。ＩＤの値は、予め設定されたスケジュールに従って、全てのスレーブ３が順次選択されるように設定される。
【００８９】
定期ヘッダに続くＩＤで指定されたスレーブ３（またはマスタ１）のスレーブタスクは、用意されているレスポンス（データ）を、受信したＩＤに続けて送信する。このようにして送信された定期フレームのレスポンスは、必要に応じて、マスタ１やスレーブ３にて受信される。
【００９０】
マスタタスクによって、イベントヘッダが送信された場合、イベント要因を検知したスレーブ３のスレーブタスクは、イベントヘッダに続けて自スレーブ３のＩＤ、更に続けてレスポンスを送信する。このようにして送信されたイベントフレームのレスポンスは、定期フレームのレスポンスと同様に、必要に応じて、マスタ１やスレーブ３にて受信される。
【００９１】
次に、図７は、イベントフレームのスロットで、複数のスレーブがフレームの送信を要求した場合の動作を表すタイミング図である。
図中の２番目のスロットに示すように、スレーブ＿１，スレーブ＿２にてイベント要因が検出されている場合、スレーブ＿２の方が早いタイミングでＩＤの送信を開始すると、これを検知したスレーブ＿１は、ＩＤの送信を中止する。従って、バス上で衝突が生じることなく、スレーブ＿２のＩＤおよびレスポンスのみがバス上に送信されることになる。
【００９２】
つまり、ＵＡＲＴ１１ａを用いて通信を行う場合、ヘッダを受信してからＩＤを送信するまでの時間は装置の特性に依存するため、その時間を、全ての装置について正確に一致させることができず、このような送信タイミングのずれが生じるのである。
【００９３】
また、図中の４番目のスロットに示すように、スレーブ＿１，スレーブ＿３にてイベント発生中である場合、両者が同時にＩＤを送信したのであれば、バス上でＩＤの信号レベルに基づく調停が行われ、より優位な値（ここでは小さな値）に設定されたスレーブ＿１のＩＤが調停勝ちし、調停負けしたスレーブ＿３がレスポンスの送信中止するため、スレーブ＿１のレスポンスのみがバス上に送信されることになる。
【００９４】
＜効果＞
以上説明したように、上述した通信システムにおいては、各スレーブ３は、マスタ１から送信されるヘッダによって、受動通信（定期フレームによる通信）の実行タイミングか能動通信（イベントフレームによる通信）の実行タイミングかを識別しており、受動通信と能動通信との切替のためにマスタ１とスレーブ３との間で特別なフレームをやり取りする必要がないため、スレーブ３にてイベントの発生が検知された場合に、定期フレームによる通信の順番を待つことなく、イベントの発生を速やかにマスタ１や他のスレーブ３に通知することができる。
【００９５】
しかも、上述した通信システムによれば、能動通信時に、複数のスレーブ３がデータの送信を要求する場合でも、最も早くＩＤを送信したスレーブにレスポンスを送信させ、更に、ＩＤの送信タイミングが同時である場合には、ＩＤを用いてバス調停を行い、勝ち残ったスレーブ３だけがレスポンスを送信するようにされているため、イベントフレームを効率良く送信することができる。
【００９６】
＜発明との対応＞
本実施形態において、ヘッダが識別情報、定期フレームのＩＤが指定情報、イベントフレームのＩＤが要求情報に相当する。また、Ｓ１２０，Ｓ１３０がマスタ側受動通信実行手段、Ｓ２００が能動通信許可手段、Ｓ１１０，Ｓ１９０が切替制御手段、Ｓ３１０〜Ｓ３５０がスレーブ側受動通信実行手段、Ｓ４２０が能動通信要求手段、調停回路１７がバス監視手段、Ｓ４３０〜Ｓ４５０が能動通信実行手段に相当する。
【００９７】
＜変形例＞
上記実施形態では、受動通信の際にＩＤを送信するタイミングを、意図的に制御していないが、予めレスポンスに優先度を設定すると共に、スレーブ３からＩＤを送信するタイミングを複数設定し、優先度の高いレスポンスほど、早いタイミングでＩＤを送信するように構成してもよい。
【００９８】
図８は、スレーブ＿２，スレーブ＿３からのレスポンスの優先度が通常優先、スレーブ＿１からのレスポンスの優先度が通常優先より高い高優先に設定されている場合、動作例を示すタイミング図である。
【００９９】
イベントフレームを送信するスロットでは、各スレーブはレスポンスの優先度に応じたタイミングでＩＤを送信する。そして、図中の４番目のスロットに示すように、スレーブ＿１とスレーブ＿３とが同じスロットでＩＤを送信した場合、ＩＤの送信タイミングの早い（即ち、レスポンスの優先度が高い）スレーブ＿１のレスポンスのみがバス上に送信されることになる。
【０１００】
［第２実施形態］
次に、第２実施形態について説明する。
本実施形態では、定期フレームのフォーマットが第１実施形態と異なり、マイコン１１が実行するマスタタスクやスレーブタスクの処理内容が一部異なるだけであるため、その相違する部分を中心に説明する。
【０１０１】
＜フレームフォーマット＞
図９は、本実施形態の通信システムにおいてデータの送受信に使用するフレームの構成および基本的な動作を示す説明図である。
【０１０２】
図９に示すように、イベントフレームは、第１実施形態の場合と同様に、ヘッダ，ＩＤ，レスポンスで構成され、一方、定期フレームは、ＩＤ，レスポンスで構成され、ヘッダが省略されている。
【０１０３】
即ち、本実施形態では、ＩＤの値の一つを、ノードやメッセージを特定するのではなく、イベントフレームの送信タイミングであることを示す識別情報（例えばＩＤ＝０ｘ００）として用いる。そして、フレームの先頭に設定された値がＩＤ＝０ｘ００であれば、イベントヘッダとして扱い、それ以外であればＩＤとして扱う。これによって、定期フレームのヘッダの省略を可能としたのである。
【０１０４】
＜マスタタスク／スレーブタスク＞
マスタタスクは、図３に示すフローチャートにおいて、Ｓ１２０を省略する以外は同様の処理を実行する。
【０１０５】
スレーブタスクは、図４に示すフローチャートにおいて、Ｓ３２０，Ｓ３３０，Ｓ３６０，Ｓ３７０の処理を省略し、Ｓ３１０を、受信したものがＩＤであるかイベントヘッダであるかを識別するように変更する以外は同様の処理を実行する。
【０１０６】
＜効果＞
このように構成された本実施形態の通信システムでは、第１実施形態の場合と同様の作用効果を得ることができるだけでなく、定期フレームの長さがヘッダ分だけ短くなるため、バス上の通信効率をより向上させることができる。
【０１０７】
［他の実施形態］
以上本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において様々な態様にて実施することが可能である。
【０１０８】
例えば、上記実施形態では、本発明を車載用の通信システムに適用したが、車載用に限るものではなく、受動通信と能動通信とをいずれも実現する必要がある通信システムでありさえすれば適用することができる。
【０１０９】
上記実施形態では、符号化回路１３，復号回路１６を用いて、バスＢＳ上ではＰＷＭ符号に符号化されたデータを伝送しているが、これら符号化回路１３，復号回路１６を省略して、ＮＲＺ符号のデータを伝送するように構成してもよい。
【符号の説明】
【０１１０】
１…マスタノード  ３…スレーブノード  １１…マイコン  １２…トランシーバ  １３…符号化回路  １４…送信バッファ  １５…受信バッファ  １６…復号回路  １７…調停回路  ＢＳ…バス
【図１】
2012080360.tif 000003
【図２】
2012080360.tif 000004
【図３】
2012080360.tif 000005
【図４】
2012080360.tif 000006
【図５】
2012080360.tif 000007
【図６】
2012080360.tif 000008
【図７】
2012080360.tif 000009
【図８】
2012080360.tif 000010
【図９】
2012080360.tif 000011
【図１０】
2012080360.tif 000012