(57)【要約】【課題】通信システムの応答性を上げること。【解決手段】次のヘッダ出力開始のタイミングまで待機する（Ｓ２２０）。そして、直近に出力したヘッダで指定した装置の次の順番としてスケジュールに定められた装置を指定するヘッダを出力する（Ｓ２３０）。出力したヘッダを取得して、そのヘッダで指定されているのがマスタノード自身かを判断する（Ｓ２４０）。マスタノード自身でないと判断すると（Ｓ２４０ＮＯ）そのレスポンスに含まれるＤＬＣ値に基づいて、次のヘッダの出力タイミングを算出する（Ｓ２６０）。出力タイミングの算出後、Ｓ２２０に戻る。一方、取得したヘッダで指定されているのがマスタノード自身だと判断すると（Ｓ２４０ＹＥＳ）前回出力時から更新されたData Fieldの数に１を足した数をＤＬＣ値とし、更新されていないData Fieldを省いてレスポンスを出力する（Ｓ２５０）。そして、Ｓ２６０に進む。【選択図】図５
2010213075.tif 000002
【特許請求の範囲】
【請求項１】
マスタノードと、そのマスタノードと通信可能な一つ以上のスレーブノードとを備える通信システムであって、
前記マスタノードは、前記スレーブノード毎に割り当てられた識別情報の何れか一つを付与したヘッダを出力することで、そのスレーブノードの内の一つを呼び出し、その後、その呼び出されたスレーブノードから出力されるレスポンスを取得するようになっており、
前記スレーブノードは、前記レスポンスの出力に要する時間に関する情報を、そのレスポンスに含ませることによって出力するスレーブ出力手段を備え、
前記マスタノードは、
前記ヘッダに対する前記レスポンスを取得し始めた時刻と、そのレスポンスに含まれる前記時間に関する情報とに基づいて、そのヘッダの次のヘッダを出力し始める時刻を算出する算出手段を備えると共に、
前記算出手段によって算出された時刻に前記ヘッダを出力し始める
ことを特徴とする通信システム。
【請求項２】
前記スレーブ出力手段は、前回出力した前記レスポンスに対して更新が無い部分を省いて、前記レスポンスを出力するようになっている
ことを特徴とする請求項１の通信システム。
【請求項３】
前記マスタノードは、
前記ヘッダに付与する識別情報の候補として、前記マスタノードに割り当てられた識別情報も加えると共に、
前記マスタノードに割り当てられた識別情報を付与したヘッダを取得すると、前記時間に関する情報を含んだレスポンスを出力するマスタ出力手段を備えると共に、
前記マスタ出力手段によって出力されたレスポンスを取得する
ことを特徴とする請求項１又は請求項２の通信システム。
【請求項４】
一つ以上のスレーブノードと通信可能になっており、そのスレーブノード毎に割り当てられた識別情報の何れか一つを付与したヘッダを出力することで、そのスレーブノードの内の一つを呼び出し、その後、その呼び出されたスレーブノードから出力されるレスポンスを取得するようになっている通信装置であって、
前記レスポンスには、そのレスポンスの出力に要する時間に関する情報が含まれており、
前記ヘッダに対する前記レスポンスを取得し始めた時刻と、そのレスポンスに含まれる前記時間に関する情報とに基づいて、そのヘッダの次のヘッダを出力し始める時刻を算出する算出手段を備えると共に、
前記算出手段によって算出された時刻に前記ヘッダを出力し始める
ことを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
ネットワークを介して通信する通信装置および通信システムに関する。
【背景技術】
【０００２】
タイムトリガ方式やマスタ・スレーブ方式による通信が普及している。例えばマスタ・スレーブ方式によるＬＩＮ(Local Interconnect Network)が車両に多く用いられている。複数のＥＣＵ間の通信をＬＩＮによって行うことで、ワイヤーハーネスの数の削減や車体重量の削減等が可能になる（非特許文献１〜４）。
【０００３】
ところで、タイムトリガ方式において各通信ノードは、定期的に取得するデータ（定期データ）とイベント発生時に生じるデータ（イベントデータ）とを出力する。ただし、二個のデータは同時には出力できないので、出力タイミングを調整する必要がある。
【０００４】
その手法の一つとして知られているのが、次のようなものである。まず、イベントデータの出力要求があった時に専用的に使用するスロット（イベント専用スロット）を通信周期に一個用意しておく。そして、定期データとイベントデータとの出力要求が重なった場合、どちらの出力を優先すべきかを判断する。そして、優先度が低い方の出力は後回しにして、次に巡ってくるイベント専用スロットで出力する、という手法である（特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−０６７６５４号公報
【非特許文献】
【０００６】
【非特許文献１】［平成２０年１２月２２日検索］、インターネット<URL:http://itpro.nikkeibp.co.jp/COLUMUN/20071129/288282/?ST=nettech&P=4>
【非特許文献２】［平成２０年１２月２２日検索］、インターネット<URL:http://jp.fujitsu.com/mircoelectronics/ehtnical/lin/index#p6.html>
【非特許文献３】［平成２０年１２月２２日検索］、インターネット<URL:http://www.kumikomi.net/article/explanation/2006/02lin2/09.html>
【非特許文献４】［平成２０年１２月２２日検索］、インターネット<URL:http://www.kumikomi.net/article/explanation/2006/02lin2/10.html>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
先述した技術の課題は、応答性が悪いことである。つまり、イベント専用スロットは、イベントが発生していない時には、通信が行われない無駄な時間帯になってしまう。この現象は、ほぼ毎周期にわたり繰り返されるので、通信システムの応答性が悪くなるのは避けられない。本発明はこの課題に鑑み、通信システムの応答性を上げることを目的とする。
【課題を解決するための手段】
【０００８】
この課題を解決するための請求項１の発明は、マスタノードと、そのマスタノードと通信可能な一つ以上のスレーブノードとを備える通信システムである。そして、マスタノードは、スレーブノード毎に割り当てられた識別情報の何れか一つを付与したヘッダを出力することで、そのスレーブノードの内の一つを呼び出し、その後、その呼び出されたスレーブノードから出力されるレスポンスを取得するようになっている。一方、スレーブノードは、レスポンスの出力に要する時間に関する情報を、そのレスポンスに含ませることによって出力するスレーブ出力手段を備える。
【０００９】
そして、マスタノードは、ヘッダに対するレスポンスを取得し始めた時刻と、そのレスポンスに含まれる時間に関する情報とに基づいて、そのヘッダの次のヘッダを出力し始める時刻を算出する算出手段を備える。さらにマスタノードは、算出手段によって算出された時刻にヘッダを出力し始める。
【００１０】
この通信システムによれば、応答性を上げることができる。なぜなら、レスポンスに含まれる「出力に要する時間に関する情報」によって、無駄な待ち時間を省いて、次のレスポンスを出力し始めることができるからである。なお、通信装置同士は、共通の伝送路を介して相互に接続されていてもよいし、無線通信するようになっていてもよい。
【００１１】
ところで、データの出力時間を短くする方法は、次のようにすると良い。請求項２の通信システムは、スレーブ出力手段は、前回出力したレスポンスに対して更新が無い部分を省いて、レスポンスを出力するようになっていることを特徴とする。
【００１２】
この通信システムによれば、応答性をさらに上げることができる。なぜなら、更新されなかった部分の出力を省くことで、その分、次のレスポンスが出力され始める時刻が早くなるからである。なお、必ず出力すべしと通信プロトコルによって定められている部分については、更新の有無によらず、省くことなく出力する。
【００１３】
ところで、マスタノードがレスポンスを出力しないと、ノードの総数が増えてしまい、通信システムの設計が冗長になってしまう。そこで、次のようにすると良い。
請求項３のマスタノードは、ヘッダに付与する識別情報の候補として、マスタノードに割り当てられた識別情報も加える。さらにマスタノードは、マスタノードに割り当てられた識別情報を付与したヘッダを取得すると、時間に関する情報を含んだレスポンスを出力するマスタ出力手段を備える。さらにマスタノードは、マスタ出力手段によって出力されたレスポンスを取得する。
【００１４】
この通信システムによれば、マスタノードもレスポンスを出力するので、そうでない通信システムに比べて、スレーブノードを一つ減らすことができる。
ところで、次のようにしても所期の目的を達成できる。請求項４の発明は、一つ以上のスレーブノードと通信可能になっており、そのスレーブノード毎に割り当てられた識別情報の何れか一つを付与したヘッダを出力することで、そのスレーブノードの内の一つを呼び出し、その後、その呼び出されたスレーブノードから出力されるレスポンスを取得するようになっている通信装置である。
【００１５】
そして、レスポンスには、そのレスポンスの出力に要する時間に関する情報が含まれている。また、この通信装置は、ヘッダに対するレスポンスを取得し始めた時刻と、そのレスポンスに含まれる時間に関する情報とに基づいて、そのヘッダの次のヘッダを出力し始める時刻を算出する算出手段を備える。そして、この通信装置は、算出手段によって算出された時刻にヘッダを出力し始める。
【００１６】
この通信装置とスレーブノードとを用いて通信システムを形成すれば、通信システムの応答性を上げることができる。この通信装置は、先述したマスタノードに相当するからである。
【図面の簡単な説明】
【００１７】
【図１】通信システムのブロック構成図。
【図２】従来技術および本発明によって出力されるデータ構造を示す図。
【図３】通信サイクルを示した図。
【図４】スレーブ処理を示すフローチャート。
【図５】マスタ処理を示すフローチャート。
【図６】本発明によって出力されるデータの構造の詳細を示す図。
【発明を実施するための形態】
【００１８】
本発明の実施例を説明する。図１は、通信システム１のブロック構成図である。通信システム１は、マスタノード１０・スレーブノード２０／３０／４０・バス１００を備える。マスタノード１０、スレーブノード２０／３０／４０は全て、共通の伝送路としてのバス１００に接続されている。
【００１９】
そして、マスタノード１０は、マイコン１２・通信モジュール１４を備える。マイコン１２は、通信モジュール１４を介して、バス１００にデータを出力したり、バス１００からデータを取得したりできるようになっている。スレーブノード２０／３０／４０も、マイコン２２／３２／４２・通信モジュール２４／３４／４４を備え、バス１００にデータを出力したり、バス１００からデータを取得したりできるようになっている。
【００２０】
図２（ａ）は、従来のＬＩＮプロトコルによってやり取りされるデータ構造、図２（ｂ）は、通信システム１によってやり取りされるデータ構造を示す。まず、従来の通信システムによるデータ構造を説明する。図２（ａ）に示すように、ＬＩＮプロトコルによるデータ構造は、ヘッダとレスポンスとから成る。ヘッダは、Synch BreakとSynch FieldとIndent Fieldとから成る。レスポンスは、ｎ個のData Field（Data Field 1〜Data Field n）とChecksum Fieldとから成る。
【００２１】
ヘッダはマスタノードが出力するものである。そして、ヘッダを取得したマスタノード及びスレーブノードは、そのヘッダが自分宛てだと判断すると、レスポンスをバス１００に出力する。
【００２２】
次に通信システム１によるデータ構造を説明する。ヘッダは従来のものと同じである。レスポンスは、図２（ｂ）に示すように、先頭にＤＬＣ（Data Link Control）値が、Data Field 1として付け加えられる点が従来と異なる。ＤＬＣ値とは、そのレスポンスに含まれるData Fieldの数を示す情報である（詳しくは図４で説明）。
【００２３】
図３は、通信システム１の通信スケジュールを示した図である。マスタノード１０がフレームＡを、スレーブノード２０がフレームＢを、スレーブノード３０がフレームＣを、スレーブノード４０がフレームＤを、この順番にスロット長に収まるように出力する。そして、フレームＤの次はフレームＡの順番に戻り、このスケジュールを繰り返す。
【００２４】
なお、このスロット長は可変となっている。なぜなら、最長時を想定して暫定的に定められたスロット長をできるだけ短くすることで、次のヘッダを出力する時刻を早めることが本発明の狙いだからである。よって、通信周期が短くなり、ひいては応答性が上がることになる。これをＤＬＣ値の活用で達成する。具体的な手順をこれから説明する。
【００２５】
図４は、スレーブ処理を示すフローチャートである。この処理は、スレーブノード２０／３０／４０がそれぞれ実行するものであり、各スレーブノードの電源が入っている限り繰り返されるものである。なお、この実施例は、各フレームに最大三つのData Fieldが格納される場合の例である。
【００２６】
まず、自分を指定したヘッダを取得するまで待機する（Ｓ１１０）。そして、取得したら、全てのData Field(Data Field 1〜3)を含むレスポンスを出力する（Ｓ１２０）。このとき、出力されるData Fieldの数が３なので、Data Field 1としてのＤＬＣ値は３となる。そして、自分を指定したヘッダを再び取得するまで待機する（Ｓ１３０）。取得したら、再びレスポンスを出力する（Ｓ１４０）。そしてＳ１３０に戻る。
【００２７】
Ｓ１４０で出力するレスポンスについて説明する。先述したように、できるだけスロット長を短くしたい。そこで通信システム１では、前回出力時から更新がなかったData Field（Data Field 1のＤＬＣ値除く）を省いたレスポンスを出力するように、通信プロトコルが定められている。そしてマスタノード１０は、取得したレスポンスに含まれていないData Fieldについては「前回に取得したレスポンスに含まれていた値と同じ」と見なすようになっている。
【００２８】
そしてＤＬＣ値は、レスポンスに何個のData Fieldが含まれているかを示すために、前回出力時から更新されたことで出力対象としてレスポンスに含まれるData Fieldの数に、１を足した数として定められる。１を足す理由は、ＤＬＣ値もData Fieldの一つであり、毎回、必ず出力されるからである。
【００２９】
図５は、マスタ処理を示すフローチャートである。この処理は、マスタノード１０が主体となって実行し、電源が入っている限り繰り返されるものである。
まず、フレームＡのヘッダを出力し、続いて、全てのData Field(Data Field 1〜3)を含むレスポンスを出力する（ＤＬＣ値＝３）（Ｓ２１０）。そして、次のヘッダ出力開始のタイミングまで待機する（Ｓ２２０）。そして、直近に出力したヘッダで指定した装置の次の順番としてスケジュールに定められた装置を指定するヘッダを出力する（Ｓ２３０）。
【００３０】
出力したヘッダを取得して、そのヘッダで指定されているのがマスタノード１０自身かを判断する（Ｓ２４０）。マスタノード１０自身でないと判断すると（Ｓ２４０ＮＯ）スレーブノード２０／３０／４０何れかからのレスポンスを取得して、そのレスポンスに含まれるＤＬＣ値に基づいて、次のヘッダの出力タイミングを算出する（Ｓ２６０）。
【００３１】
ここで図６に移り、出力タイミングの算出について説明する。図６（ａ）は全Data Fieldが更新された場合に出力されるデータ構造、図６（ｂ）は一部のData Fieldが更新されなかった場合に出力されるデータ構造を示した図である。なお、Data Filedの数は何れも３の例である。
【００３２】
今はスレーブノードからのレスポンスを取得した段階なので、フレームＢを例にとって説明する。図６（ｂ）の場合において、Data Field 2には前回の出力時からの更新があったのに対して、Data Field 3には前回の出力時からの更新がなかったとする。（図６（ａ）には、この更新がなかったData Fieldに対応するものが、白黒反転で示されている。）
そうすると、スレーブ処理で説明したように、ＤＬＣ値＝２、そしてData Filed 3が省かれたレスポンスが出力されてくることになる（図６（ｂ）参照）。そうするとマスタノード１０は、最長時のスロット長から、Data Filed一つ分の出力に要する時間を省いた時間に基づいて、次のヘッダの出力タイミング（出力時刻）を算出する。つまり、レスポンスを取得し始めた時刻から、二つのData FieldとChecksum Fieldとの出力に要する時間後に、レスポンスの出力が終わると見なして、次のヘッダの出力タイミングを算出する。
【００３３】
図５に戻る。出力タイミングの算出後、Ｓ２２０に戻る。一方、取得したヘッダで指定されているのがマスタノード１０自身だと判断すると（Ｓ２４０ＹＥＳ）レスポンスを出力する（Ｓ２５０）。ここでのレスポンスの内容は、スレーブ処理のＳ１４０で説明したものと同じである。そして、Ｓ２６０に進む。
【００３４】
図６に移る。図６（ａ）（ｂ）に示すように、フレームＡのData Field 2・3、フレームＢのData Field 3に更新がなかった場合、通信スケジュールが短くなることが見て取れる。
【００３５】
以上のように、更新されなかったData Fieldの出力を省いてフレームの出力に要する時間を短くすると共に、ＤＬＣ値を活用することで、次のフレームの出力開始時刻を、その短くなった時間の分だけ前倒ししている。そうすれば、更新されなかったデータの出力のために、更新データの出力が待たされることが無くなる。よって、通信システムの応答性が上がる。
【００３６】
なお、ＤＬＣ値に基づかずに「Checksum Fieldの出力が終わり次第、次のヘッダを出力する」という方法は、ＬＩＮでは採用できないことになっている。なぜなら、エラーによってChecksum Fieldが出力されない場合があるからである。このような制約があるので、本発明は大きな意義を持つことになる。
【００３７】
変形例を述べる。スレーブノードの数は、一つ以上であればいくつでも良い。つまり、少なくともマスタノード一つとスレーブノード一つとがあれば、レスポンスを出力する装置が複数あるので、本発明の効果が得られる。また、Data Fieldの数は、実施例では三つであったが、いくつでも構わない。
【００３８】
また、マスタノードは、レスポンスを出力しなくても良い。なお、特許請求の範囲においては、マスタノードが自分宛てのヘッダを出力するか否か、更にそのヘッダに応答してレスポンスを出力するか否かについては限定されていない。よって、先述した実施例と共に、この変形例も本発明の技術的範囲に属する。
【００３９】
実施例と特許請求の範囲との対応関係を述べる。Ｓ１４０がスレーブ出力手段、Ｓ２５０がマスタ出力手段、Ｓ２６０が算出手段、のソフトウェアにそれぞれ相当する。
【符号の説明】
【００４０】
１…通信システム、１０…マスタノード、２０／３０／４０…スレーブノード、１２／２２／３２／４２…マイコン、１４／２４／３４／４４…通信モジュール、１００…バス
【図１】
2010213075.tif 000003
【図２】
2010213075.tif 000004
【図３】
2010213075.tif 000005
【図４】
2010213075.tif 000006
【図５】
2010213075.tif 000007
【図６】
2010213075.tif 000008