説明

通信システム、マスタノード、スレーブノード

【課題】 マスタスレーブ方式の通信プロトコルが適用される通信システムにおいて、通信効率を低下させることなく、少ない待ち時間でスレーブからの能動的なフレームの送信を可能とする。
【解決手段】マスタ1は、一定間隔毎に、送信を許可するデータのIDを設定したヘッダ(定期ヘッダ)を、IFSの検出を待って送信する。イベント対応ノード(マスタ1および自律送信可能スレーブ3b)は、イベント通信の要求が発生した場合に、その都度、イベントヘッダを、IFSの検出を待って送信する。また、定期ヘッダかイベントヘッダかに拘わらず、ヘッダが衝突した場合には、バス調停で勝ち残ったヘッダに従って、レスポンスの送信を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マスタスレーブ方式の通信プロトコルを用いる通信システムに関する。
【背景技術】
【0002】
マスタスレーブ方式の通信プロトコルを用いる通信システムでは、マスタノード(以下「マスタ」という)がヘッダを送信し、そのヘッダに対応付けられたデータの送信元となるスレーブノード(以下「スレーブ」という)が、ネットワーク上にデータを送信する、いわゆるポーリングが行われている。
【0003】
近年では、このような通信システムにおいて、あるスレーブにてイベントが発生した場合に、これを速やかに他のノードに伝えたい等の要求があり、ポーリングのタイミングを待つことなく、スレーブが自律的にデータを送受信するための仕組みを組み込むことが考えられている。
【0004】
例えば、車載ネットワークに適用されるLIN(Local Interconnect Network)プロトコルでは、指定したスレーブだけにレスポンスを送信させるためのヘッダ(いわゆる無条件フレーム用のヘッダ)の他に、イベントの発生を検出したスレーブにレスポンスを送信させるためのヘッダ(いわゆるイベントトリガフレーム用のヘッダ)が用意されている。
【0005】
そして、スレーブは、イベントの発生を検出すると、イベントトリガフレームを用いてレスポンスを送信するようにされている(例えば、非特許文献1参照)。
また、次のような通信方法も提案されている。即ち、マスタからスレーブへの出力データは、一つのOUTフレームで一括して転送し、スレーブからマスタへの入力データは、各スレーブに互いに重複しないように割り当てられた時間帯にINフレームをそれぞれ返送することで、定期的な通信を実現する。これと共に、OUTフレームにてマスタがメッセージ通信要求の有無を確認したい単数または複数のスレーブを指定し、その指定されたスレーブがメッセージ送信要求を示す応答フレームを返送すると、マスタは、応答フレームを返送してきたスレーブに対してメッセージ送信許可フレームを送信することでバス権を渡し、バス権を持ったスレーブがマスタに対してメッセージを送信することにより、スレーブから能動的にデータを送信することを可能としている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−66111号公報
【非特許文献】
【0007】
【非特許文献1】佐藤道夫著「車載ネットワークシステム徹底解説」CQ出版株式会社、2005年12月1日発行
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、LINでは、イベントトリガフレーム用のヘッダ(以下「イベントヘッダ」という)は、無条件フレーム用のヘッダとは異なり、同一のヘッダが複数のスレーブに対応付けられているため、図8に示すように、その同一のイベントヘッダに対応付けられた複数のスレーブが同時にレスポンスを送信した場合には衝突が発生する。
【0009】
なお、図中では、スレーブ_1,スレーブ_2に共通のイベントヘッダとしてID=0X10を用い、スレーブ_1,スレーブ_2を個別に指定するヘッダとしてID=0x20、ID=0x30を用いるものとする。
【0010】
このようなレスポンスの衝突を検出した場合(衝突発生時の最初のスロット)、衝突したレスポンスが破棄されると共に、マスタは、再度の衝突を避けるために、衝突を引き起こしたイベントヘッダに対応付けられている個々のスレーブに対して、レスポンスするスレーブを指定したヘッダ(無条件フレーム用のヘッダ)を順次送信することになり(衝突発生時の2番目および3番目のスロット)、通信効率を低下させてしまうという問題があった。
【0011】
また、特許文献1に記載の通信方法では、スレーブが能動的にマスタに対してデータを送信するためには、マスタからスレーブにOUTフレーム(スレーブ指定)を送信し、スレーブからマスタに応答フレーム(メッセージ送信要求)を送信し、マスタからスレーブにメッセージ送信許可フレームを送信するという3個のフレームのやり取りが必要であり、その後、やっとスレーブからの能動的なメッセージを送信することが可能となる。
【0012】
このように特許文献1に記載の方法では、メッセージをやり取りする手順が複雑であり、そのやり取りによってバス上の通信効率を悪化させるだけでなく、イベントの発生を速やかにマスタに通知することができないという問題があった。
【0013】
本発明は、上記問題点を解決するために、マスタスレーブ方式の通信プロトコルが適用される通信システムにおいて、通信効率を低下させることなく、少ない待ち時間でスレーブからの能動的なフレームの送信を可能とすることを目的とする。
【課題を解決するための手段】
【0014】
上記目的を達成するためになされた発明である請求項1に記載の通信システムは、バスを介して接続されたマスタノードと複数のスレーブノードとからなり、マスタノードが、送信を許可するデータの識別子からなるヘッダを、該識別子を順次変化させて送信し、ヘッダにより送信が許可されたデータの送信元となるスレーブノードがヘッダに続けてデータを送信する。
【0015】
そして、スレーブノードの少なくとも一つは、ヘッダを自律的に送信する機能を有する自律送信可能スレーブノードとして構成され、マスタノードおよび自律送信可能スレーブノードは、バス上で劣位な信号レベルが予め設定された期間以上継続した場合をアイドル状態として、ヘッダの送信を、バスがアイドル状態であることを確認した後に実行すると共に、ヘッダを用いたバス調停を行う。
【0016】
なお、バス調停は、送信レベルとバス上の信号レベル(バスを介して取り込んだ受信レベル)とを比較して、両信号レベルが一致している(調停勝ちした)ノードは、そのままヘッダを送信し続け、両信号レベルが異なっている(調停負けした)ノードは、ヘッダの送信を直ちに中止する周知のものであり、例えば、CANプロトコルにおいて実現されている。
【0017】
このように構成された本発明の通信システムにおいて、自律送信可能スレーブノードは、マスタノードからの指示によらずに自律的にデータの送受信を行う必要がある場合に、そのデータの送信を許可するヘッダをバスに送信する。
【0018】
なお、自律的にデータの送受信を行う必要がある場合とは、例えば、自律送信可能スレーブノードで検出されたイベントの発生を他のノードに通知する場合や、他ノードで管理されるデータが自律送信可能スレーブノードで緊急に必要となった場合等が考えられる。
【0019】
そして、自律送信可能スレーブノードによるヘッダの送信は、バスがアイドル状態であることを確認した上で実行するが、マスタノードや他の自律送信可能スレーブノードが同時にヘッダを送信する可能性があり、この場合、バス調停で調停勝ちしたヘッダに従って、データの送受信が実行される。
【0020】
このように本発明の通信システムによれば、マスタノードからの指示によらずに自律送信可能スレーブノードが自律的にデータの送受信を行う場合に、マスタノードとスレーブノードとの間で特別なフレームをやり取りする必要がないだけでなく、自律送信可能スレーブノードが送信するヘッダによりヘッダの衝突が発生した時には、調停勝ちしたヘッダに従ってデータの送受信が実行されるため、自律送信可能スレーブノードからの自律的なデータの送信を、バス上の通信効率を劣化させることなく実現することができる。
【0021】
なお、本発明の通信システムは、例えば請求項2に記載のように、バスを介して送受信されるデータに、予め優先度を設定しておき、ヘッダは、該ヘッダによって送信が許可されるデータの優先度が高いほど早いタイミングで送信されるように構成されていてもよい。
【0022】
即ち、例えば、複数のヘッダが調停負けした場合、その調停負けしたヘッダの送信元は、調停勝ちしたヘッダに基づくデータの送信終了後、アイドル状態が検出されるとヘッダを再送信する。この時、通常であれば、再度ヘッダの衝突が生じてバス調停が行われることになるが、ノードの性能のばらつきによりヘッダの送信タイミングにずれがある場合には、優先度の低いデータが先に送信されてしまう可能性がある。これに対して、本発明の通信システムによれば、優先度に応じてヘッダの送信タイミングをずらしているため、優先度順のデータ送信をより確実に実現することができる。
【0023】
次に、請求項3に記載のマスタノードでは、アイドル状態検出手段が、バス上で劣位な信号レベルが予め設定された期間以上継続した状態をアイドル状態として検出し、定期ヘッダ送信手段が、ヘッダの送信を、アイドル状態検出手段にてアイドル状態が検出されるのを待って実行する。
【0024】
そして、送信中止手段が、ヘッダの送信時にバスの信号レベルを監視し、送信したヘッダの信号レベルとバスの信号レベルとが異なる場合に、ヘッダの送信を中止する。
このように構成された本発明のマスタノードは、請求項1に記載の通信システムを構築する際に、好適に用いることができる。
【0025】
また、請求項4に記載のスレーブノードでは、送信手段が、自ノードが送信元となるデータの送信を許可するヘッダを、バスを介して受信した場合に、その受信したヘッダに続けてデータを送信する。
【0026】
また、アイドル状態検出手段が、バス上で劣位な信号レベルが予め設定された期間以上継続した状態をアイドル状態として検出し、マスタノードからの指示によらず自律的にデータを送受信する必要がある場合に、イベントヘッダ送信手段が、その自律的に送受信するデータの識別子からなるヘッダの送信を、アイドル状態検出手段にてアイドル状態が検出されるのを待って実行する。
【0027】
そして、送信中止手段が、イベントヘッダ送信手段によるヘッダの送信時にバスの信号レベルを監視し、送信したヘッダの信号レベルとバスの信号レベルとが異なる場合に、ヘッダの送信を中止する。
【0028】
このように構成された本発明のスレーブノードは、請求項1に記載の通信システムを構築する際に、好適に用いることができる。
【図面の簡単な説明】
【0029】
【図1】通信システムおよびその一部であるノードの構成を示すブロック図。
【図2】通信システムで使用するフレームの構成、マイコンとトランシーバとの間で送受信するデータの構成、符号化されたデータの構成を示す説明図。
【図3】マスタタスクの処理内容を示すフローチャート。
【図4】スレーブタスクの処理内容を示すフローチャート。
【図5】レスポンス送受信処理の詳細を示すフローチャート。
【図6】レスポンス受信処理の詳細を示すフローチャート。
【図7】通信システムの動作例を示すタイミング図。
【図8】従来技術の問題点を示すタイミング図。
【発明を実施するための形態】
【0030】
以下に本発明の実施形態を図面と共に説明する。
<全体構成>
図1は、マスタスレーブ方式の通信プロトコルが適用された車載用の通信システムの構成を示すブロック図である。
【0031】
図1に示すように、通信システムは、車両の状態を検出したり車両の状態を制御したりするため設けられた各種機器(以下「制御対象機器」という)に搭載される複数のスレーブノード3と、バスBSを介して接続されたスレーブノード3との通信により、制御対象機器が検出した車両の状態を取得したり、制御対象機器に対する各種指令を生成して車両制御を行うマスタノード1とを備えている。以下では、マスタノード1を、単にマスタ1と称し、また、スレーブノード3を、単にスレーブ3と称する。
【0032】
そして、通信システムを構成するマスタ1,スレーブ3間では、マスタ1が送信を許可するデータ(ひいてはデータの送信元となるスレーブ)を順次指定して、指定されたデータの送信元となるスレーブ3がレスポンス(データ)を送信するポーリング(以下、定期通信ともいう)と、マスタ1からの指示によらずスレーブ3が自律的に通信を制御するイベント通信とが行われる。
【0033】
なお、スレーブ3は、マスタ1からの指示に従ってレスポンス(データ)を送信する機能だけを有する既存スレーブ3aと、イベント通信を開始させる機能を有した自律送信可能スレーブ3bとからなる。
【0034】
マスタ1は、CANプロトコルが適用された車載ネットワーク(図示せず)に接続され、ボディ系のアプリケーションを実現する電子制御装置(ECU)からなる。例えば、マスタ1が、ドアに関するアプリケーションを制御するECUである場合、スレーブ3を搭載する制御対象機器としては、ミラー、ドアロック、ウィンドウ等を制御する機器が考えられる。
【0035】
なお、マスタ1は、車両に複数存在していてもよく、また、スレーブ3を搭載する制御対象機器としては、例えば、サンルーフ、ワイパ、パワーシート、エアコン、ステアリング、ライト等を制御する機器であってもよい。但し、自律送信可能スレーブ3bは、マスタ1からの指示に従って動作するだけでなく、ドライバによる操作等を検出してイベントの発生を自律的に通知する機能を有している。
【0036】
バスBSでは、レセッシブ、ドミナントと呼ばれる二つの信号レベルが用いられる。そして、複数のノードが同時送信した場合、いずれか一つでもドミナントが含まれていると、バスBSの信号レベルはドミナントとなる。つまり、バスBS上で信号が衝突した場合、バス調停によって、ドミナントを送信した側が調停勝ちするようにされている。
【0037】
以下では、バスBSにおいて、レセッシブが予め設定された許容ビット(本実施形態では11ビット)以上継続する期間をIFS(Inter Frame Space )と呼び、IFSが検出されている状態をアイドル状態という。
【0038】
<フレームフォーマット>
ここで、図2は、バスBSを介して接続されたマスタ1,スレーブ3で構成される通信システムにおいて、データの送受信に使用するフレームの構成を示す説明図である。
【0039】
図2(a)に示すように、フレームは、送信を許可するデータを指定するためのヘッダと、ヘッダによって指定されたデータを送信するための可変長のレスポンスからなる。
このうち、ヘッダは、送信を許可するデータの識別子(ID)からなり、IDの値が小さいほど、バス調停で勝ち残るように設定されている。一方、レスポンスは、データ以外に、データ(レスポンス)のサイズを示すサイズ情報、エラーの有無をチェックするためのCRC符号が少なくとも含まれている。
【0040】
<マスタ構成>
図1に戻り、マスタ1は、通信システム(バスBS)を介したスレーブ3との通信や、図示しない車載ネットワークを介した他のECUと通信を行うための処理を実行するマイクロコンピュータ(以下「マイコン」という)11と、バスBSがアイドル状態にあるか否かを示すアイドル検出信号IDLをマイコン11に供給すると共に、マイコン11から与えられるデータTxを符号化した送信データTxDをバスBSに出力し、バスBS上のデータ(受信データ)RxDを受信して復号したデータRxをマイコン11に入力するトランシーバ12とを備えている。
【0041】
<マイコン>
マイコン11は、CPU,ROM,RAM,IOポート等からなるマイコンにおける周知の構成に加えて、調歩同期(非同期)方式のシリアル通信を実現するUART(汎用非同期受信・送信機:Universal Asynchronous Receiver Transmitter )11aを備えている。
【0042】
UART11aが送受信するデータTx,Rxは、図2(b)に示すように、データの開始を示す1ビット長のスタートビット(ロウレベル)と、データの終了を示すストップビット(ハイレベル)と、これらスタートビット,ストップビットに挟まれた8ビットのデータとで構成された合計10ビットのブロックデータからなり、主要部となる8ビートのデータは、LSBが先頭、MSBが末尾となるように設定されている。
【0043】
なお、ヘッダは、UART11aが1度に送受信可能な10ビットのブロックデータで構成され、スタートビット,ストップビットを除く8ビットのデータのうち、7ビットはIDの設定に用い、1ビットはパリティビットとして用いられる。
【0044】
また、レスポンスは、予め設定された個数(1ないし複数個)のブロックデータで構成され、最初のブロックに、サイズ情報が設定される。
<トランシーバ>
図1に戻り、トランシーバ12は、マイコン11からの供給されるデータTx(NRZ符号)を、バスBS上で用いる伝送符号に符号化する符号化回路13と、符号化回路13にて符号化された送信データTxDをバスBSに出力する送信バッファ14と、バスBS上のデータを取り込む受信バッファ15と、受信バッファ15が取り込んだ受信データRxDを復号し、復号したデータRxをマイコン11に供給する復号回路16と、送信データTxDと受信データRxDとで信号レベルが不一致である場合にアクティブレベルとなる衝突検出信号CDを出力する調停回路17とを備えている。
【0045】
送信バッファ14は、複数のノードからバスBSに信号が同時に出力された場合、いずれか一つでもロウレベルであれば、バスBSの信号レベルがロウレベルとなるように構成されている。つまり、バスBS上では、ハイレベルの場合がレセッシブ、ロウレベルの場合がドミナントとなる。このような構成は、例えば、周知のオープンコレクタ回路を用いて構成することができる。
【0046】
受信バッファ15は、バスBSの信号レベルが、予め設定された閾値より大きければハイレベル、閾値より低ければロウレベルを出力する周知のコンパレータによって構成することができる。
【0047】
符号化回路13は、図2(c)に示すように、データTxの1ビットの長さを4等分し、データTxがロウレベル(0)の時には、1ビット中の前3/4期間がロウレベル、後1/4期間がハイレベルとなる第1符号に変換し、データTxがハイレベル(1)の時には、1ビット中の前1/4期間がロウレベル、後3/4期間がハイレベルとなる第2符号に変換する。つまり、符号化回路13は、NRZ符号をPWM符号に変換し、復号回路16は、PWM符号をNRZ符号に変換するように構成されている。
【0048】
つまり、バスBS上で、第1符号(Tx=0)と第2符号(Tx=1)とが衝突した場合、第1符号はそのまま送信され(調停に勝ち残り)、第2符号は第1符号に書き換えられる(バス調停に負ける)。従って、この場合、第2符号を送信したノードでは、送信した信号の信号レベルとバスBSから取り込んだ信号の信号レベルが不一致となり、調停回路17から出力される衝突検出信号CDがアクティブレベルとなる。
【0049】
また、符号化回路13は、衝突検出信号CDが非アクティブレベルの時には、データTxに従って符号化された送信データTxDを送信バッファ14に供給し、UART11aからデータTxが供給されている時に、衝突検出信号CDがアクティブレベルに変化すると、処理中のデータTxが属するブロックデータについての処理が終了するまでの間、送信データTxDの出力を禁止することによって、ハイレベル(レセッシブ)に固定された送信データTxDを送信バッファ14に供給するように構成されている。
【0050】
調停回路17は、例えば、排他的論理和回路(XORゲート)によって、送信データと受信データを比較することで実現される。
<スレーブ構成>
スレーブ3のうち、自律送信可能スレーブ3bは、マスタ1と同様の構成を有しており、既存スレーブ3aは、トランシーバ12の代わりに、調停回路17とアイドル検出回路18とが省略されたトランシーバが用いられている以外は、マスタ1と同様の構成を有しているため、その詳細についての説明は省略する。
【0051】
<マイコンでの処理>
マスタ1のマイコン11は、予め設定されたスケジュールに従って、ヘッダの送信を制御するマスタタスクを実行すると共に、マスタ1によるレスポンスの送信を可能とするスレーブタスクを実行する。
【0052】
一方、スレーブ3のマイコン11は、スレーブ3によるレスポンスの送信を可能とするスレーブタスクを実行する。
但し、既存スレーブ3aが実行するスレーブタスクは、レスポンスの送信だけを行うマスタ1で実行されるものと同じ内容であり、自律送信可能スレーブ3bが実行するスレーブタスクは、ヘッダの送信を行う機能が付加されたものとなっている。
【0053】
更に、マスタ1,各スレーブ3のマイコン11は、上述のマスタタスクやスレーブタスク以外に、それぞれに割り当てられた固有の機能を実現するための処理を実行し、その処理の中でレスポンスとして送信するデータを生成したり、イベント通信の要求を発生させたりするように構成されている。
【0054】
<マスタタスク>
次に、マスタ1のマイコン11が実行するマスタタスクの内容を、図3に示すフローチャートに沿って説明する。
【0055】
マスタタスクは、マスタ1に電源が投入され、初期化処理等が実行されることによって、バスBSの使用が可能となると起動する。
本処理が起動すると、イベント通信の要求が発生しているか否かを判断し(S110)、イベント要求が発生していなければ(S110:NO)、定期通信のタイミングであるか否かを判断し(S140)、定期通信のタイミングでもなければ(S140:NO)、S110に戻り、S110,S140を繰り返すことで、イベント通信の要求が発生するか、定期通信のタイミングとなるまで待機する。
【0056】
そして、イベント通信の要求が発生した場合(S110:YES)、アイドル検出回路18によってIFSが検出されている(アイドル検出信号IDLがアクティブレベル)か否か、即ち、バスBSがアイドル状態にあるか否かを判断する(S120)。この時、IFSが検出されていなければ(S120:NO)、同ステップを繰り返すことで待機し、IFSが検出されると(S120:YES)、上記イベント通信の要求によって指定されたデータのIDからなるイベントヘッダを送信する(S130)。
【0057】
一方、定期通信のタイミングとなった場合(S140:YES)、アイドル検出回路18によってIFSが検出されているか否かを判断する(S150)。この時、IFSが検出されていなければ(S150:NO)、S110に戻り、IFSが検出されていれば(S150:YES)、今回のタイミングで送信を許可するデータのIDからなる定期ヘッダを送信する(S160)。
【0058】
なお、定期通信のタイミングは、予め設定された一定間隔(例えば、100ms)に設定され、また、定期ヘッダに設定されるIDは、バスBSに接続された各ノードで共有すべき全てのデータが順番に指定されるように、予め設定されたスケジュールに従って変更される。
【0059】
イベントヘッダの送信(S130)または定期ヘッダの送信(S160)が行われると、バスBSを介してヘッダを受信し、その受信したヘッダに設定されているID(受信ID)が、送信したヘッダに設定したID(送信ID)と一致しているか否かを判断する(S170)。
【0060】
そして、受信IDが送信IDと一致していれば、ヘッダの再送信を要求する再送設定をクリアして(S180)、S110に戻り、両IDが一致していなければ、即ち、送信したヘッダが調停負けしたのであれば、再送設定をセットしたままS110に戻る。
【0061】
なお、再送設定は、S130またはS160にてヘッダが送信されると、自動的にセットされるものとする。また、再送設定がセットされている場合、先に送信したヘッダがイベントヘッダであればS110で肯定判断され、一方、先に送信したヘッダが定期ヘッダであればS140で肯定判断されるように構成されており、これにより、調停負けしたヘッダの再送を実行するようにされている。
【0062】
つまり、マスタタスクでは、イベント通信の要求と定期通信のタイミングとが重なった場合には、イベント通信(イベントヘッダの送信)を優先的に実行し、また、送信したヘッダが調停負けした場合は、送信が成功するまでヘッダの再送を繰り返すようにされている。
【0063】
<スレーブタスク>
次に、自律送信可能スレーブ3bのマイコン11が実行するスレーブタスクの内容を、図4に示すフローチャートに沿って説明する。
【0064】
スレーブタスクは、自律送信可能スレーブ3bに電源が投入され、初期化処理等が実行されることによって、バスBSの使用が可能となると起動する。
本処理が起動すると、まず、ヘッダを受信したか否かを判断し(S210)、受信していなければ(S210:NO)、イベント通信の要求が発生しているか否かを判断し(S240)、イベント通信の要求も発生していなければ(S240:NO)、S210に戻り、S210,S240を繰り返すことで、ヘッダを受信するかイベント通信の要求が発生するまで待機する。
【0065】
そして、ヘッダを受信した場合(S210:YES)、ヘッダの内容をチェックしてパリティエラーの有無を判断し(S230)、パリティエラーがあれば(S230:YES)、S210に戻る。
【0066】
一方、パリティエラーがなければ(S230:NO)、受信したヘッダに設定されているID(受信ID)は、自ノードが送信元となるデータのID(自ID)であるか否かを判断する(S310)。
【0067】
受信IDが自IDであれば(S310:YES)、レスポンスの送受信を行うレスポンス送受信処理を実行して(S320)、S210に戻り、一方、受信IDが自IDでなければ(S310:NO)、レスポンスの受信を行うレスポンス受信処理を実行して(S330)、S210に戻る。
【0068】
また、イベント通信の要求が発生した場合(S240:YES)、アイドル検出回路18によってIFSが検出されているか否かを判断する(S250)。この時、IFSが検出されていなければ(S250:NO)、S210に戻り、IFSが検出されていれば(S250:YES)、上記イベント通信の要求によって指定されたデータのIDからなるイベントヘッダを送信(S260)すると共に、ヘッダの受信を終了したか否かを判断する(S270)。
【0069】
ヘッダの受信が終了していなければ(S270:NO)、同ステップを繰り返すことで待機し、ヘッダの受信が終了すると(S270:YES)、ヘッダの内容をチェックしてパリティエラーの有無を判断する(S280)。
【0070】
パリティエラーがあれば(S280:YES)、S210に戻り、パリティエラーがなければ(S280:NO)、受信したヘッダに設定されているID(受信ID)が、S260にて送信したヘッダに設定したID(送信ID)と一致しているか否かを判断する(S290)。
【0071】
受信IDが送信IDと一致していれば(S290:YES)、今回送信したヘッダの再送信を要求する再送設定をクリアした(S300)後、S310に進み、受信IDが送信IDと一致していなければ、再送設定をクリアすることなくS310に進む。
【0072】
なお、再送設定は、S260にてイベントヘッダが送信されると、自動的にセットされるものとする。また、再送設定がセットされている場合、S240で肯定判断されるように構成されており、これにより、調停負けしたイベントヘッダの再送を実行するようにされている。
【0073】
つまり、自律送信可能スレーブ3bのマイコン11が実行するスレーブタスクでは、イベント通信の要求に従ってイベントヘッダを送信し、送信したヘッダが調停負けした場合は、送信が成功するまでヘッダの再送を繰り返すようにされている。また、受信したヘッダ(送信したイベントヘッダも含む)に設定されたIDが自IDである場合はレスポンスの送信を行い、自ID以外である場合は、レスポンスの受信を行うようにされている。
【0074】
ところで、マスタ1,既存スレーブ3aのマイコン11が実行するスレーブタスクは、イベントヘッダの送信を行わないため、図4に示すフローチャートから、S240〜S300を省略したものとなる。
【0075】
<レスポンス送受信処理>
次に、先のS320で実行するレスポンス送受信処理の詳細を、図5に示すフローチャートに沿って説明する。
【0076】
本処理が起動すると、まず、本処理で使用する調停負けフラグをリセット(S400)する。
そして、調停負けフラグがセットされているか否かを判断し(S410)、調停負けフラグがセットされていなければ(S410:NO)、UART11aを介して1ブロック分のデータ(レスポンスの一部)を送信し(S420)、調停負けフラグがセットされていれば、データの送信は行わない。
【0077】
そして、UART11aが1ブロック分のデータを受信したか否かを判断し(S430)、データを受信していなければ(S430:NO)、受信タイムアウトしているか否かを判断し(S440)、受信タイムアウトしていなければ(S440:NO)S430に戻ってS430,S440を繰り返すことにより、1ブロック分のデータを受信するか、受信タイムアウトするまで待機する。
【0078】
なお、受信タイムアウトとは、他ノードからのデータを受信している時に、前回の1ブロック分のデータの受信からの経過時間が、予め設定された許容時間に達したか否かにより判断する。なお、データの受信間隔が許容時間以内である場合、それらのデータは同一レスポンスを構成するものとして扱う。
【0079】
そして、受信タイムアウトしている場合(S440:YES)、それまでに受信したデータがあれば、これを破棄して(S490)本処理を終了する。
また、受信タイムアウトする前に、1ブロック分のデータを受信した場合(S430:YES)、その受信したデータ(受信データ)が、先のS420で送信したデータ(送信データ)と一致しているか否かを判断する(S450)。
【0080】
受信データが送信データと一致していなければ(S450:NO)、調停負けフラグをセットする(S460)。但し、自ノードがデータを送信していない(S420を実行していない)場合、受信データは送信データと一致していないと判断する。
【0081】
そして、一つのレスポンスを構成する一連のデータの受信を完了したか否かを判断する(S470)。この判断は、受信データに含まれるサイズ情報に基づいて判断する。
受信を完了していなければ(S470:NO)S410に戻り、受信完了していれば(S470:YES)、受信したレスポンスに含まれているCRC符号をチェックして、CRCエラーの有無を判断し(S480)、CRCエラーがなければ(S480:YES)、そのまま本処理を終了し、CRCエラーがあれば(S480:NO)、受信したデータ(レスポンス)を破棄して(S490)本処理を終了する。
【0082】
つまり、レスポンス送受信処理では、単にレスポンスの送信を行うだけでなく、レスポンスの送信中に調停負けした場合は、レスポンスの送信を中止して、調停に勝ち残ったレスポンスの受信を継続するように構成されている。
【0083】
<レスポンス受信処理>
次に、先のS330で実行するレスポンス受信処理の詳細を、図6に示すフローチャートに沿って説明する。
【0084】
本処理が起動すると、まず、UART11aが1ブロック分のデータ(レスポンスの一部)を受信したか否かを判断し(S510)、データを受信していなければ(S510:NO)、受信タイムアウトしているか否かを判断し(S520)、受信タイムアウトしていなければ(S520:NO)S510に戻ってS510,S520を繰り返すことにより、1ブロック分のデータを受信するか、受信タイムアウトするまで待機する。
【0085】
そして、受信タイムアウトしている場合(S520:YES)、それまでに受信したデータがあれば、これを破棄して(S550)本処理を終了する。
また、受信タイムアウトする前に、1ブロック分のデータを受信した場合(S510:YES)、一つのレスポンスを構成する一連のデータの受信を完了したか否かを判断する(S530)。
【0086】
受信を完了していなければ(S530:NO)S510に戻り、受信完了していれば(S530:YES)、受信したレスポンスに含まれているCRC符号をチェックして、CRCエラーの有無を判断する(S540)。
【0087】
CRCエラーがなければ(S540:YES)、そのまま本処理を終了し、エラーがあれば(S540:NO)、受信したデータ(レスポンス)を破棄して(S550)本処理を終了する。
【0088】
つまり、本処理は、図5に示したレスポンス送受信処理から、レスポンスの送信に関する処理(S400〜S420,S450〜S460)を除去したものとなっている。
<動作>
図7は、マスタ1やスレーブ3を用いて構成された通信システムの基本動作を表すタイミング図である。
【0089】
図7に示すように、マスタ1のマスタタスクは、一定間隔毎に、送信を許可するデータのIDを設定したヘッダ(定期ヘッダ)を送信する。なお、定期ヘッダのIDは、予め設定されたスケジュールに従って、ノード間で共有する必要がある全てのデータが順次選択されるように設定される。
【0090】
また、マスタ1のマスタタスクおよび自律送信可能スレーブ3b(以下「イベント対応ノード」という)は、イベント通信の要求が発生すると、その都度、必要とするデータのIDを設定したヘッダ(イベントヘッダ)を送信する。なお、イベントヘッダのIDは、通常、イベントの発生を他ノードに通知するために、自ノードが送信元となるデータのIDを設定するが、例えば、急を要する自ノードでの処理に必要な情報を収集する等のために、他ノードが送信元となるデータのIDを設定してもよい。
【0091】
但し、ヘッダの送信は、定期ヘッダかイベントヘッダかに関わらず、IFSの検出を待って実行される。
マスタ1のスレーブタスクおよびスレーブ3(以下単に「ノード」という)は、定期ヘッダかイベントヘッダかに関わらず、ヘッダに設定されたIDが自ノードを送信元とするデータのIDである場合に、用意されているレスポンス(データ)を、受信したヘッダに続けて送信する。
【0092】
このようにして送信されたレスポンスは、そのデータを必要とするノードによって受信される。
複数のイベント対応ノードが同時にヘッダを送信した場合、イベントヘッダ同士の衝突が発生し、バス調停によってIDの値の小さい(優先度が高い)方が勝ち残り、その勝ち残ったイベントヘッダに従ってレスポンスの送信が実行される(図中「イベント衝突」のスロット参照)。なお、調停負けしたヘッダの送信元となったイベント対応ノードは、IFSの検出を待って、同じイベントヘッダの送信をリトライし、送信に成功するまで繰り返すことになる。
【0093】
また、定期ヘッダとイベントヘッダとが同時に送信され、両ヘッダの衝突が発生した場合も、上述したイベントヘッダ同士の衝突と同様に、バス調停に勝ち残ったヘッダに従ってレスポンスの送信が実行される(図中「定期,イベント衝突」のスロット参照)。なお、定期ヘッダが調停負けした場合、マスタ1は、IFSの検出を待って、同じ定期ヘッダの送信をリトライし、送信に成功するまで繰り返すことになる。
【0094】
<効果>
以上説明したように上述した通信システムにおいては、イベント対応ノード(マスタ1および自律送信可能スレーブ3b)は、イベント通信の要求が発生した場合に、その都度、IFSの検出を待ってイベントヘッダを送信するようにされている。
【0095】
従って、イベント通信の要求が発生した時に、定期フレームによる通信の順番を待つことなく速やかにイベント通信を実行することができ、緊急を要する情報を速やかに他ノードに提供したり、他ノードから取得したりすることができる。
【0096】
しかも、上述した通信システムによれば、定期ヘッダかイベントヘッダかに拘わらず、ヘッダが衝突した場合には、バス調停で勝ち残ったヘッダに従って、レスポンスの送信を実行するようにされているため、効率のよい通信を実現することができる。
【0097】
また、上述した通信システムにおいては、イベントヘッダの送信を行わない既存のスレーブノードを、何の変更を加えることもなく既存スレーブ3aとして使用することができるため、既存のマスタスレーブ方式の通信システムを利用して、安価にシステムを構成することができる。
【0098】
また、上述の通信システムによれば、マスタ1を複数設置することも可能であり、マスタスレーブ方式を採用する複数の通信システムを、単一のバスを用いて統合することもできる。
【0099】
<発明との対応>
本実施形態において、アイドル検出回路18がアイドル状態検出手段、S140〜S160が定期ヘッダ送信手段、S240〜S260がイベントヘッダ送信手段、調停回路17および符号化回路13が送信中止手段に相当する。
【0100】
<他の実施形態>
以上本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において様々な態様にて実施することが可能である。
【0101】
例えば、上記実施形態では、本発明を車載用の通信システムに適用したが、車載用に限るものではなく、受動通信と能動通信とをいずれも実現する必要がある通信システムでありさえすれば適用することができる。
【0102】
上記実施形態では、符号化回路13,復号回路16を用いて、バスBS上ではPWM符号に符号化されたデータを伝送しているが、これら符号化回路13,復号回路16を省略して、NRZ符号のデータを伝送するように構成してもよい。
【0103】
上記実施形態では、調停回路17,アイドル検出回路18を、符号化回路13から出力されるデータTxDと復号回路16に入力されるデータRxDを用いて処理するように構成されているが、これらを、符号化回路13に入力されるデータTxと復号回路16から出力されるデータRxを用いて処理するように構成してもよい。
【0104】
上記実施形態では、IFSの検出が確認されてから、ヘッダをどのようなタイミングで送信するか意図的に制御していないが、予めデータに優先度を設定しておくと共に、マスタ1や自律送信可能スレーブ3bがヘッダを送信するタイミングを複数設け、優先度の高いデータほど、早いタイミングでヘッダを送信するように構成してもよい。
【0105】
つまり、UART11aを用いて通信を行う場合、IFSを検出してからヘッダを送信するまでの時間は装置の特性に依存するため、ヘッダの送信タイミングにずれが生じる場合がある。この場合、バス調停が行われずに、最も早いタイミングで送信されたヘッダに従ってレスポンスの送信が実行されるため、優先度が低いデータ(ID)が、常に先に処理されてしまう可能性がある。これに対して、優先度に応じて送信タイミングをずらすことによって、データの優先度に従った通信をより確実に実現することができる。
【符号の説明】
【0106】
1…マスタノード 3…スレーブノード 3a…既存スレーブ 3b…自律送信可能スレーブ 11…マイクロコンピュータ(マイコン) 12…トランシーバ 13…符号化回路 14…送信バッファ 15…受信バッファ 16…復号回路 17…調停回路 18…アイドル検出回路

【特許請求の範囲】
【請求項1】
バスを介して接続されたマスタノードと複数のスレーブノードとからなり、前記マスタノードが、送信を許可するデータの識別子からなるヘッダを、該識別子を順次変化させて送信し、該ヘッダにより送信が許可されたデータの送信元となるスレーブノードが該ヘッダに続けてデータを送信する通信システムにおいて、
前記スレーブノードの少なくとも一つは、前記ヘッダを自律的に送信する機能を有する自律送信可能スレーブノードとして構成され、
前記マスタノードおよび前記自律送信可能スレーブノードは、前記バス上で劣位な信号レベルが予め設定された期間以上継続した場合をアイドル状態として、前記ヘッダの送信を、前記バスがアイドル状態であることを確認した後に実行すると共に、前記ヘッダを用いたバス調停を行うことを特徴とする通信システム。
【請求項2】
前記データには、予め優先度が設定されており、
前記ヘッダは、該データの優先度が高いほど早いタイミングで送信されることを特徴とする請求項1に記載の通信システム。
【請求項3】
複数のスレーブノードと共にバスに接続され、送信を許可するデータの識別子からなるヘッダを、該識別子を順次変化させて送信し、該ヘッダにより送信が許可されたデータの送信元となるスレーブノードが該ヘッダに続けてデータを送信する通信システムを、前記複数のスレーブノードと共に構成するマスタノードであって、
前記バス上で劣位な信号レベルが予め設定された期間以上継続した状態をアイドル状態として検出するアイドル状態検出手段と、
前記ヘッダの送信を、前記アイドル状態検出手段にてアイドル状態が検出されるのを待って実行する定期ヘッダ送信手段と、
前記ヘッダの送信時にバスの信号レベルを監視し、送信したヘッダの信号レベルとバスの信号レベルとが異なる場合に、前記ヘッダの送信を中止する送信中止手段と、
を備えることを特徴とするマスタノード。
【請求項4】
送信を許可するデータの識別子からなるヘッダを、該識別子を順次変化させて送信するマスタノードと共にバスに接続され、前記ヘッダにより送信が許可されたデータの送信元となるスレーブノードが該ヘッダに続けてデータを送信する通信システムを、前記マスタノードと共に構成するスレーブノードであって、
自ノードが送信元となるデータの送信を許可するヘッダを、前記バスを介して受信した場合に、該ヘッダに続けてデータを送信する送信手段と、
前記バス上で劣位な信号レベルが予め設定された期間以上継続した状態をアイドル状態として検出するアイドル状態検出手段と、
前記マスタノードからの指示によらず自律的にデータを送受信する必要がある場合に、該データの識別子からなるヘッダの送信を、前記アイドル状態検出手段にてアイドル状態が検出されるのを待って実行するイベントヘッダ送信手段と、
前記ヘッダの送信時にバスの信号レベルを監視し、送信したヘッダの信号レベルとバスの信号レベルとが異なる場合に、前記ヘッダの送信を中止する送信中止手段と、
を備えることを特徴とするスレーブノード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−104919(P2012−104919A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−249786(P2010−249786)
【出願日】平成22年11月8日(2010.11.8)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】