(57)【要約】【課題】  時間補正用基準波形を用いてボーレート補正を行なうシングルマスタ方式のシリアル通信において、スレーブ／スレーブ間通信時の同期精度も問題なく確保できるシリアル通信ネットワークシステムを提供する。【解決手段】  スレーブノード１０（Ｓ）は、スレーブ／スレーブ間通信を行なう際に、マスタノード１０（Ｍ）だけでなく、通信相手となるスレーブノード１０（Ｓ）からも時間補正用基準波形を取得し、それらマスタ時間補正用基準波形とスレーブ時間補正用基準波形との双方に基づいて自スレーブノード１０（Ｓ）のボーレートを補正する。【選択図】  図１
2010041567.tif 000002
【特許請求の範囲】
【請求項１】
調歩同期型シリアル通信により接続された１つのマスタノードと複数のスレーブノードとからなるシリアル通信ネットワークシステムであって、
前記マスタノードに設けられ、前記スレーブノードとマスタ／スレーブ間通信を行なう際に、前記マスタノードのボーレートを反映したマスタ時間補正用基準波形をシリアル通信バスに送出するマスタ時間補正用基準波形送出手段と、
各前記スレーブノードに設けられ、通信相手となる他のスレーブノードとスレーブ／スレーブ間通信を行なう際に、自スレーブノードのボーレートを反映したスレーブ時間補正用基準波形を前記シリアル通信バスに送出するスレーブ時間補正用基準波形送出手段と、
各前記スレーブノードに設けられ、前記マスタノードから取得したマスタ時間補正用基準波形と、他のスレーブノードから取得した前記スレーブ時間補正用基準波形との双方に基づき自スレーブノードのボーレートを補正するボーレート補正手段と、
を備えたことを特徴とするシリアル通信ネットワークシステム。
【請求項２】
前記マスタノードには、マスタ基準クロック信号を生成するマスタ発振回路と、該マスタ基準クロック信号をダウンコンバートして前記マスタ伝送クロック信号を生成するマスタ伝送クロック信号生成回路とが設けられ、
各前記スレーブノードには、前記マスタ基準クロック信号に対応する周波数のスレーブ基準クロック信号を生成するスレーブ発振回路と、該スレーブ基準クロック信号をダウンコンバートして前記マスタ伝送クロック信号に対応する周波数の前記スレーブ伝送クロック信号を生成するスレーブ伝送クロック信号生成回路とを備え、前記ボーレート補正手段は、前記マスタ時間補正用基準波形が示す前記マスタノードのボーレートを、前記スレーブ基準クロック信号を用いて計測するマスタボーレート計測手段と、前記スレーブ時間補正用基準波形が示す、通信相手となるスレーブノードのボーレートを、前記スレーブ基準クロック信号を用いて計測するスレーブボーレート計測手段とを備え、自スレーブノードのボーレートを前記マスタノードのボーレートの計測結果と、前記通信相手となるスレーブノードのボーレートの計測結果との双方を参照して補正する請求項１記載のシリアル通信ネットワークシステム。
【請求項３】
前記マスタボーレート計測手段と前記スレーブボーレート計測手段は、それぞれ前記マスタ時間補正用基準波形及び前記スレーブ時間補正用基準波形のクロックパルス幅を計測するものであり、前記ボーレート補正手段は、前記マスタ時間補正用基準波形のクロックパルス幅と前記スレーブ時間補正用基準波形のクロックパルス幅との平均値に基づいて前記自スレーブノードのボーレートを補正するものである請求項２記載のシリアル通信ネットワークシステム。
【請求項４】
前記シリアル通信バスはＬＩＮ通信バスである請求項２又は請求項３に記載のシリアル通信ネットワークシステム。
【請求項５】
複数の前記スレーブノードの１つを送信スレーブノードとし、他の１以上を受信スレーブノードとして、前記送信スレーブノードから前記受信スレーブノードへデータ送信する際に、
前記マスタノードは、メッセージの開始を示すブレークフィールドと、前記マスタ時間補正用基準波形を組み込んだマスタ同期フィールドと、前記データ送信スレーブノードを特定するスレーブノード特定フィールドとが配列したヘッダを前記通信バスに送出するヘッダ送出手段を有し、
各前記スレーブノードは、前記ヘッダを受信するヘッダ受信手段と、前記スレーブノード特定フィールドが示す前記送信スレーブノードとして自スレーブノードが指定されている場合に、前記スレーブ時間補正用基準波形を組み込んだスレーブ同期フィールドと、送信対象となるデータを組み込んだデータフィールドと、エラーチェックフィールドとが配列したレスポンスを前記通信バスに送出するレスポンス送出手段とを備える請求項４記載のシリアル通信ネットワークシステム。
【請求項６】
各前記スレーブノードにおいて、前記ボーレート補正手段は、通信相手となる前記マスタノード及び前記スレーブノードのボーレート計測結果に係る実績値を、前記通信相手を特定する情報と対応付けた形で記憶するボーレート計測実績値記憶手段を備え、前記ボーレート計測実績値記憶手段に記憶されているボーレート計測実績値のうち、現在の通信相手に対応するものを選択的に読み出し、該ボーレート計測実績値に基づいて前記自スレーブノードのボーレートを補正するものである請求項２ないし請求項５のいずれか１項に記載のシリアル通信ネットワークシステム。
【請求項７】
各前記スレーブノードにおいて、前記ボーレート補正手段は、自スレーブノードが前記マスタノードにより受信スレーブノードとして指定された場合に、前記ボーレート計測実績値記憶手段に記憶されている、それらマスタノード及び送信側となるスレーブノードに係る各ボーレート計測実績値に基づいて前記自スレーブノードのボーレートを補正する請求項６記載のシリアル通信ネットワークシステム。
【請求項８】
各前記スレーブノードにおいて、前記ボーレート補正手段は、自スレーブノードが送信スレーブノードとして指定された場合に、前記マスタノード及びスレーブノードのうち送信相手となる全てのノードに係る各ボーレート計測実績値を前記ボーレート計測実績値記憶手段から読み出し、該ボーレート計測実績値に基づいて前記自スレーブノードのボーレートを補正する請求項６記載のシリアル通信ネットワークシステム。
【請求項９】
各前記スレーブノードにおいて、前記ボーレート補正手段は、通信相手となる前記マスタノード及び前記スレーブノードのボーレート計測結果に係る実績値を、前記通信相手を区別せずに記憶するボーレート計測実績値記憶手段と、前記ボーレート計測実績値記憶手段に記憶されている自スレーブノード以外の全てのノードのボーレート計測実績値を読み出し、該ボーレート計測実績値に基づいて前記自スレーブノードのボーレートを補正するものである請求項２ないし請求項５のいずれか１項に記載のシリアル通信ネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はシリアル通信ネットワークシステムに関する。
【背景技術】
【０００２】
【特許文献１】特開昭６１−８１２３５号公報
【特許文献２】特開平７−４２６０９号公報
【特許文献３】特開平７−４２６０９号公報
【０００３】
近年、自動車には多くの安全・快適機能が搭載され、こうした個々の機能の制御を司るＥＣＵ（electronic control unit）を車載ネットワークで接続して連携動作させることが行なわれている。こうした車載ネットワークとして代表的なものにＣＡＮ（Controller Area Network）があり、パワートレイン系、シャーシ系、ボデー系及び情報系の標準型シリアル通信ネットワークとして広く採用されている。ＣＡＮは比較的高伝送レートに対応できるマルチマスタ方式のシリアル通信プロトコルであり、非同期式（調歩同期型）であるが、エッジ検出による再同期処理やビットスタッフィングなど、高精度のノード間同期を実現している。また、ノイズマージンを高めるためにツイストペア線を用いた差動伝送方式を採用し、バスアービトレーションや、エラーカウンタを用いたバス状態遷移など、信頼性の高いマルチマスタ方式通信を実現するため、プロトコル上種々の工夫がなされている。
【０００４】
しかし、上記のようなＣＡＮの特徴は、ネットワークコストの高騰化を招きやすい側面も有しており、例えばボデー系に分類される車体装備の中でも、電動ドアミラーやパワーウィンドウなど、高速できめ細かい制御がそれほど求められない機器制御用のネットワークとしては過剰スペックになりやすい欠点がる。そこで、この欠点を補うべく、簡易型のシリアル通信ネットワークとしてＬＩＮ（Local Interconnect Network）が提唱され、実搭載が進んでいる。ＬＩＮはＣＡＮと同様、非同期式（調歩同期型）であるが、シングルマスタ方式であり、これを受けて半二重式ＵＡＲＴ（Universal Asynchronous Receiver
Transmitter）によるノード構成やバスのシングルワイヤ化といった簡略なハードウェア構成に加え、マスタタスクをなすヘッダに同期フレームを組み込み、その時間補正用基準波形を参照してスレーブボーレートを補正する簡易型同期プロトコルを採用することにより、伝送レートは低いもののＣＡＮと比較して大幅なコスト削減が実現できる。
【０００５】
ところで、ＬＩＮにおいては、従来は、マスタ／スレーブ間通信のみで機器制御を行なこと、つまり、スレーブノードからのデータはマスタノードにのみレスポンスとして返す形で全ての制御が構築されるケースも多かった。一例を挙げれば、センサの検出値を参照して対象機器を駆動制御したい場合、センサ制御スレーブノードからセンサ検出値をデータ（レスポンス）としてマスタノードに送り、マスタノードは該検出値を取得して、次のタスク（ヘッダ）で制御先となる対象機器を指定する形となる。例えば、シフトポジションに応じてカーナビの画面をバックモニタに切り替えるような単純な制御であれば、マスタノードは、シフトポジションセンサが「後退」かどうかに応じてモニタ切り替えの判断をすればよく、モニタ切替制御を行なうスレーブノードにシフトポジションセンサの情報を直接送る必要性はなかった。
【０００６】
他方、制御の形態によっては、データをマスタノードではなく、送信元とは別のスレーブノードに伝送したほうが有利な場合がある。例えば、障害物センサが検出する距離に応じてソナーの出力形態（例えば、鳴動間隔）を多段にないし連続的に変化させる制御を行なう場合、マスタ／スレーブ間通信のみで制御を行なおうとすると、センサ検出値に応じて鳴動間隔の異なるソナー動作を、それぞれ個別のタスクとして扱わなければならなくなり、非常に面倒である。しかし、ソナー制御スレーブノードがセンサ制御スレーブノードからセンサ検出値を直接取得し、自発的にソナー鳴動間隔を決定するように構成すれば、制御ははるかに簡略化される。この場合、センサ制御スレーブノードからソナー制御スレーブノードへのデータ（センサ検出値）転送、すなわちスレーブ／スレーブ間通信を行なうこととなる。
【０００７】
スレーブ／スレーブ間通信を行なう場合、ＬＩＮプロトコルに整合する手順として、次のような方式が採用可能である。すなわち、同期フィールドとＩＤフィールドとを有したヘッダが通信バスに送出される。ヘッダは全てのスレーブノードに受信され、そこで各スレーブノードはＲＯＭ等に格納されているスケジューリングテーブルを参照し、ヘッダに書き込まれているＩＤが自身を送信ノード又は受信ノードとして指定しているかどうかを確認する。送信ノード指定がなされている場合は、当該ＩＤにて一義的に指定されるデータをレスポンスとして通信バスに送出する。一方、受信ノードとして指定されていた場合は、該データを含む送信ノードからのレスポンスを受信する。つまり、送信ノードからのレスポンスはマスタノードだけでなく、他の全てのスレーブノードにも同時送信されるから、ヘッダのＩＤにより自身が受信ノードであることを認識することで、マスタノードに向けたレスポンスをいわば傍受する形でデータ受信することが可能になるのである（なお、受信ノードを指定するＩＤを別途ヘッダに組み込み、データ伝送の都度、受信ノードを動的に決定する方式も可能である）。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前述のごとく、ＬＩＮにおいては、データ送信を行なう毎にマスタノードからの時間補正用基準波形に合わせてスレーブノードがボーレートを補正し、同期をとるようにしている。特に、ＵＡＲＴを用いて車載ＥＣＵ（ノード）間の通信を行なう場合、１データ単位（データ幅が８ビットであれば、調歩同期の場合スタートビットとストップビットとを含めた計１０ビット）でしか同期できないので、ボーレートに対しては特に厳しい精度が要求されている（例えばＩＳＯ９１４１では±１．０％）。
【０００９】
ここで、マスタ／スレーブ間通信のみが用いられる場合であれば、伝送クロックパルス幅を決めるマスタノードの発振精度（つまり、それを用いた時間補正用基準波形の安定性）が安定に確保されていれば、これを計測するスレーブノードは、スレーブ側の発振周波数が（例えば温特等により）変動しても、マスタノードの安定した伝送クロックに合わせてダウンコンバート比率をその都度調整することで問題なく同期精度を確保できる。従って、これを見越して、マスタノードについては水晶やセラミックなどの高精度の発振回路を採用しつつ、スレーブノードの発振回路はＣＲ発振器などにより低廉に構成することも行なわれている。
【００１０】
しかし、スレーブ／スレーブ間通信を行なわれるようになると、送信スレーブノードからのレスポンスは、該送信スレーブノードの発振周波数を基準としてマスタノードに合わせたボーレートにより送信される。一方、これを受ける受信スレーブノードは、該受信スレーブノードの発振周波数を基準としてマスタノードに合わせたボーレートによりこれを受ける。このとき、送信スレーブノードの発振精度と受信スレーブノードの発振精度との間に無視できない差が存在していると、送信側と受信側とでボーレートに大きなずれが生じ、要求される同期精度を充足できなくなってしまう問題がある。特に、スレーブノードの発振回路を、前述のごとくＣＲ発振器など安価ではあるが発振精度の低い回路で構成した場合、この問題はより深刻となる。
【００１１】
本発明の課題は、時間補正用基準波形を用いてボーレート補正を行なうシングルマスタ方式のシリアル通信において、スレーブ／スレーブ間通信時の同期精度も問題なく確保できるシリアル通信ネットワークシステムを提供することにある。
【課題を解決するための手段及び発明の効果】
【００１２】
上記の課題を解決するために、本発明のシリアル通信ネットワークシステムは、
調歩同期型シリアル通信により接続された１つのマスタノードと複数のスレーブノードとからなるシリアル通信ネットワークシステムであって、
マスタノードに設けられ、スレーブノードとマスタ／スレーブ間通信を行なう際に、マスタノードのボーレートを反映したマスタ時間補正用基準波形をシリアル通信バスに送出するマスタ時間補正用基準波形送出手段と、
各スレーブノードに設けられ、通信相手となる他のスレーブノードとスレーブ／スレーブ間通信を行なう際に、自スレーブノードのボーレートを反映したスレーブ時間補正用基準波形をシリアル通信バスに送出するスレーブ時間補正用基準波形送出手段と、
各スレーブノードに設けられ、マスタノードから取得したマスタ時間補正用基準波形と、他のスレーブノードから取得したスレーブ時間補正用基準波形との双方に基づき自スレーブノードのボーレートを補正するボーレート補正手段と、を備えたことを特徴とする。
【００１３】
上記の構成によると、スレーブノードは、スレーブ／スレーブ間通信を行なう際に、マスタノードだけでなく、通信相手となるスレーブノードからも時間補正用基準波形を取得し、それらマスタ時間補正用基準波形とスレーブ時間補正用基準波形との双方に基づいて自スレーブノードのボーレートを補正するようにしたから、従来は全く考慮されていなかったスレーブノード間のボーレート補正が可能となり、スレーブ／スレーブ間通信時の同期精度を問題なく確保できるようになる。
【００１４】
本発明は、シングルマスタ方式の調歩同期型シリアル通信ネットワークとして、車載通信ネットワーク等に特に広く普及しているＬＩＮ通信ネットワークに特に好適に採用可能である（この場合、シリアル通信バスはＬＩＮ通信バスとなる）。背景技術にて既に説明したＬＩＮ通信の利点をそのまま踏襲しつつ、従来のＬＩＮ通信では不可能だったスレーブ／スレーブ間通信時のボーレート補正を可能とし、ひいてはスレーブ／スレーブ間通信の利用を拡大し、車載機能等に係るネットワーク制御の多様化にも貢献できる。
【００１５】
マスタノードには、マスタ基準クロック信号を生成するマスタ発振回路と、該マスタ基準クロック信号をダウンコンバートしてマスタ伝送クロック信号を生成するマスタ伝送クロック信号生成回路とを設けることができる。そして、各スレーブノードには、マスタ基準クロック信号に対応する周波数のスレーブ基準クロック信号を生成するスレーブ発振回路と、該スレーブ基準クロック信号をダウンコンバートしてマスタ伝送クロック信号に対応する周波数のスレーブ伝送クロック信号を生成するスレーブ伝送クロック信号生成回路とが設けられる。マスタ基準クロック信号とスレーブ基準クロック信号は、それぞれマスタノード及びスレーブノードの主体をなすＣＰＵの動作クロックを与えるものであり、車載通信では例えば１ＭＨｚ〜１００ＭＨｚ（例えば２４ＭＨｚ）程度の範囲で設定される。他方、マスタ伝送クロック信号及びスレーブ伝送クロック信号は、上記の基準クロック信号を数百分の１から数千分の１の周波数にダウンコンバートすることにより生成され、ボーレートは、例えばＬＩＮ通信の場合は０．５ｋｂｐｓ〜から最大でも２０ｋｂｐｓである。
【００１６】
そして、個々のスレーブノードに設けるボーレート補正手段は、具体的には次のような要件を有するものとして構成できる。
・マスタボーレート計測手段：マスタ時間補正用基準波形が示すマスタノードのボーレートを、（自スレーブノードの）スレーブ基準クロック信号を用いて計測する。具体的には、マスタ時間補正用基準波形のクロックパルス幅（隣接するパルスエッジ（一方が立ち上がりエッジ、他方が立ち下がりエッジ）間の時間間隔）を、スレーブ基準クロック信号によりタイマー計測する。該機構は、従来のＬＩＮ通信においても採用されていたものである。
【００１７】
・スレーブボーレート計測手段：スレーブ時間補正用基準波形が示す、通信相手となるスレーブノードのボーレートを、スレーブ基準クロック信号を用いて計測する。具体的には、通信相手から送られてくるスレーブ時間補正用基準波形のクロックパルス幅（（逆数がボーレートに対応する）を、同様に、スレーブ基準クロック信号によりタイマー計測する。つまり、周知のマスタボーレート計測手段とほとんど同様の構成にてスレーブノードのボーレート計測を実施できる利点がある（当然、タイマー計測のためのハードウェア及びソフトウェアをマスタボーレート計測手段と共用化できる利点も生ずる）。
【００１８】
そして、自スレーブノードのボーレートは、マスタノードのボーレートの計測結果と、通信相手となるスレーブノードのボーレートの計測結果との双方を参照して補正することで、スレーブノード間のボーレート偏差を効果的に縮小できる。具体的には、マスタボーレート計測手段とスレーブボーレート計測手段は、それぞれマスタ時間補正用基準波形及びスレーブ時間補正用基準波形のクロックパルス幅を計測するものとでき、ボーレート補正手段は、マスタ時間補正用基準波形のクロックパルス幅とスレーブ時間補正用基準波形のクロックパルス幅との平均値に基づいて自スレーブノードのボーレートを補正することが可能である。なお、該平均値は、相加平均であっても、相乗平均であってもいずれでもよく、マスタとスレーブの各クロックパルス幅の計測値に適宜重みを付与して平均を演算してもよい。
【００１９】
なお、スレーブ基準クロック信号のダウンコンバート比率が大きいほど、マスタ伝送クロック信号及びスレーブ伝送クロック信号のパルス幅計測の量子化レベルは高くなる。また、スレーブ発振回路はマスタ発振回路よりも発振精度の低い（つまり、安価な）発振回路にて構成できる。例えば、マスタ発振回路を水晶発振回路ないしセラミック発振回路にて構成し、スレーブ発振回路をＣＲ発振回路で構成することが可能である。
【００２０】
ＬＩＮ通信では、データ伝送に際してのメッセージフレーム構造がプロトコルにより規定されており、本発明特有のスレーブ時間補正用基準波形も、該ＬＩＮプロトコルに整合する範囲にてメッセージフレームに組み込む必要がある。背景技術でも述べたごとく、ＬＩＮ通信はシングルマスタ方式であり、複数のスレーブノードの１つを送信スレーブノードとし、他の１以上を受信スレーブノードとして、送信スレーブノードから受信スレーブノードへデータ送信する際（すなわち、スレーブ／スレーブ間通信する際）も、通信自体は、マスタタスクであるヘッダの送信から必ず開始されるプロトコル上の取り決めがある。
【００２１】
具体的には、ＬＩＮ通信においてマスタノードは、メッセージの開始を示すブレークフィールドと、マスタ時間補正用基準波形を組み込んだマスタ同期フィールドと、データ送信スレーブノードを特定するスレーブノード特定フィールド（ＩＤフィールド）とが配列したヘッダを通信バスに送出するヘッダ送出手段を有する。各スレーブノードは、ヘッダを受信するヘッダ受信手段を有し、このヘッダを受けて、スレーブタスクとなるレスポンスをマスタノードへ返す。
【００２２】
既に説明したごとく、ヘッダは全てのスレーブノードにより受信され、各スレーブノードはスレーブノード特定フィールドにて自ノードが（データの）送信ノードとして指定されているかどうかを確認する。送信ノード指定がなされている場合は、データをレスポンスとして通信バスに送出する。このレスポンスは、本来マスタノードに向けられたものであるが、通信バス上に送出されたレスポンスの内容はどのスレーブノードからも見えるので、受信ノードとして事前に指定されたスレーブノードはこのレスポンスを傍受することができる。従って、スレーブ／スレーブ間のボーレート補正に用いるスレーブ時間補正用基準波形は、該レスポンスの先頭に配置することが最も妥当である。すなわち、スレーブノードに設けるレスポンス送出手段は、スレーブノード特定フィールドが示す送信スレーブノードとして自スレーブノードが指定されている場合に、スレーブ時間補正用基準波形を組み込んだスレーブ同期フィールドと、送信対象となるデータを組み込んだデータフィールドと、エラーチェックフィールドとが配列したレスポンスを通信バスに送出するものとして構成するとよい。逆にいえば、本発明の概念を適用したＬＩＮ通信では、レスポンスの先頭にスレーブ同期フィールドが新たに追加される点が大きな特徴の一つとなる。
【００２３】
各スレーブノードに設けられるスレーブ発振回路の発振精度の差異が大きい場合（例えば、スレーブ発振回路の仕様がノード間で異なる場合、あるいは同一仕様であってもロット間ばらつき等の影響を大きく受けている場合など）、スレーブ時間補正用基準波形を用いた各スレーブノードでのボーレート補正は、過去に受信したスレーブ時間補正用基準波形による計測結果も統計的に加味して補正を行なうようにすると、スレーブ／スレーブ間の同期精度も一層高めることができる。通信バス上では、通信イベントが発生するたびに絶えずどれかのスレーブノードからレスポンスが送出され、前述のごとく、該レスポンスひいてはそれに含まれるスレーブ時間補正用基準波形を、当該通信イベントに関与しているかいないかとは無関係に、どのスレーブノードにおいても傍受できる。従って、各スレーブノードは、自身が送信ノードないし受信ノードとして指定されていないイベントのレスポンスに対しても、含まれるスレーブ時間補正用基準波形を取得して伝送クロックパルス幅（逆数がボーレートである）の計測を行なうことが可能であり、その計測結果を自ノードの伝送クロックパルス幅の補正に使用することも可能である。しかし、この方式では、スレーブノード間の発振精度の差異が大きいと、自ノードの通信相手として関与しないスレーブノードまで、その発振精度の影響を不必要に大きく受けることになり、ボーレート補正によるスレーブ／スレーブ間同期精度を十分に向上できない場合もありえる。
【００２４】
そこで、各スレーブノードにおいてボーレート補正手段に、通信相手となるマスタノード及びスレーブノードのボーレート計測結果に係る実績値を、通信相手を特定する情報と対応付けた形で記憶するボーレート計測実績値記憶手段を設け、ボーレート計測実績値記憶手段に記憶されているボーレート計測実績値のうち、現在の通信相手に対応するものを選択的に読み出し、該ボーレート計測実績値に基づいて自スレーブノードのボーレートを補正するように構成することができる。現在の通信相手に対応するスレーブノードのボーレート計測実績値のみを選んで自ノードのボーレート補正に反映させるようにすれば、当然のことながら、自ノードの通信相手として関与しないスレーブノードの発振精度の影響を排除することができ、補正精度を高めることができる。
【００２５】
例えば、各スレーブノードにおいて、ボーレート補正手段は、自スレーブノードがマスタノードにより受信スレーブノードとして指定された場合に、ボーレート計測実績値記憶手段に記憶されている、それらマスタノード及び送信側となるスレーブノードに係る各ボーレート計測実績値に基づいて自スレーブノードのボーレートを補正するように構成できる。また、ボーレート計測実績値は、マスタボーレート及びスレーブボーレートの最新の計測値を用いて更新する。マスタボーレート及びスレーブボーレートの最新の計測値に過去の計測実績値を加味することで、計測誤差やばらつき、あるいは計測温度などの環境誤差の影響を軽減でき、ボーレート補正精度を向上できる。
【００２６】
一方、各スレーブノードにおいて、ボーレート補正手段は、自スレーブノードが送信スレーブノードとして指定された場合に、マスタノード及びスレーブノードのうち送信相手となる全てのノードに係る各ボーレート計測実績値をボーレート計測実績値記憶手段から読み出し、該ボーレート計測実績値に基づいて自スレーブノードのボーレートを補正するように構成することもできる。自ノードが送信スレーブノードとなる場合は、該ノードはスレーブ時間補正用基準波形の出力元となるので、当該通信イベントでの新たなボーレート測定結果を補正に使用する余地はない。しかし、通信相手が送信ノードとなったときの過去のボーレート測定結果が実績値として記憶されていれば、これを用いて自ノードが送信スレーブノードとなる場合にもボーレート補正が可能となり、補正精度の向上に寄与できる。
【００２７】
各スレーブノードにおいてボーレート補正手段は、通信相手となるマスタノード及びスレーブノードのボーレート計測結果に係る実績値を、通信相手を区別せずに記憶するボーレート計測実績値記憶手段を設け、ボーレート計測実績値記憶手段に記憶されている自スレーブノード以外の全てのノードのボーレート計測実績値を読み出し、該ボーレート計測実績値に基づいて自スレーブノードのボーレートを補正するように構成することもできる。この方式は、スレーブ発振回路の発振精度の差異が大きい場合は望ましくないが、スレーブ発振回路の仕様が統一され、かつロットばらつき等の影響も小さく発振精度が比較的そろっている場合は、比較的良好なボーレート補正効果を達成でき、かつ、ボーレート計測結果に係る実績値を、通信相手を区別せずに採用するので補正方式が単純化され、ソフトウェア開発工数の削減を図ることができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を、図面を参照して説明する。
図１は、本発明のシリアル通信ネットワークシステムの全体構成を示すブロック図である。シリアル通信ネットワークシステム１は、１つのマスタノード１０（Ｍ）と複数のスレーブノード１０（Ｓ）とをＬＩＮ通信バス２０により接続したものであり、ボデー系車載ネットワークを構成するものである。各ノード１０は半二重式ＵＲＡＴを組み込んだマイクロコントローラＩＣからなり、それぞれトランシーバＩＣ１１を介して、シングルメタルワイヤからなるＬＩＮ通信バス２０に接続されている。
【００２９】
図２は、各ノードをなすマイクロコントローラＩＣの内部ブロック図である。該マイクロコントローラＩＣは、ＣＰＵ、ＲＡＭ及びＲＯＭからなるマイクロプロセッサ１０１と、該マイクロプロセッサ１０１のペリフェラルの一部をなすＵＲＡＴ集積回路１１０とを主体に構成されている。ＬＩＮ通信のプロトコル部分（後述のボーレート補正のためのプログラムを含む）はマイクロプロセッサ１０１のＲＯＭに格納されている。一方、ＵＲＡＴ集積回路１１０はバス１０２にてマイクロプロセッサ１０１に接続され、受信レジスタ１０３、送信レジスタ１０４、発振回路１０５、分周回路１０６、受信回路１０７、送信回路１０８及びボーレート計測用のタイマカウンタ１０９を有するものである。
【００３０】
マイクロコントローラＩＣの基本ブロック自体はマスタノードとスレーブノードとで差異はないが、発振回路については、マスタノード１０（Ｍ）では水晶発振回路１０５Ｑ（又は、セラミック発振回路１０５Ｃ）で構成されるのに対し、スレーブノード１０（Ｓ）ではＣＲ発振回路１０５ＣＲで構成される違いがある。この発振回路１０５からの基準クロック信号（マスタノードの場合はマスタ基準クロック信号、スレーブノードの場合はスレーブ基準クロック信号；いずれも１ＭＨｚ〜１００ＭＨｚ（例えば２４ＭＨｚ）の範囲に設定される）は、そのままマイクロプロセッサ１０１に動作クロック信号として入力される一方、分周回路１０６により、該マイクロプロセッサ１０１からの指示値に対応する周波数（０．５〜２０ｋＨｚ（例えば、１０ｋＨｚ（９６００ｂｐｓ）））にダウンコンバートされ、シリアル通信の伝送クロック信号として受信回路１０７及び送信回路１０８に分配入力される。
【００３１】
ＬＩＮ通信では、データ伝送に際してのメッセージフレーム構造がプロトコルにより規定されている。図３は、本発明にて採用されるメッセージフレーム構造を、従来例と対比して示す概念図である。メッセージフレームはヘッダＨＤとレスポンスＲＳＰとからなり、ヘッダＨＤはマスタタスクとして、レスポンスＲＳＰはスレーブタスクとしてそれぞれ動作する。
【００３２】
ヘッダＨＤは、メッセージの開始を示すブレークフィールドＢＦと、マスタ時間補正用基準波形を組み込んだマスタ同期フィールドＳＦ（ＭＳ）と、データ送信スレーブノード１０（Ｓ）を特定するスレーブノード特定フィールド（以下、ＩＤフィールドともいう）ＩＤＦとをこの順序で配列したものである。一方、レスポンスＲＳＰは、従来は、送信対象となるデータを組み込んだデータフィールドＤＦと、エラーチェックフィールド（具体的には、チェックサムを送信するチャックサムフィールド）ＣＳＦとからのみ構成されていたが、本発明の実施形態では、データフィールドＤＦの前、つまり、レスポンスＲＳＦの先頭に、スレーブ時間補正用基準波形を送信するスレーブ同期フィールドＳＦ（ＳＳ）が新たに追加される。
【００３３】
マスタノード１０（Ｍ）によるヘッダＨＤの内容ならびにスレーブノード１０（Ｓ）によるレスポンスＲＳＰの内容は、マイコン１０１から送信レジスタ１０４に一旦格納され、送信回路１０８から送出される。これらは、受信ノードにて受信回路１０７により受信され、受信レジスタ１０３を経てマイコン１０１により内容が読み取られる。
【００３４】
データフィールドＤＦにより１回に伝送されるデータ幅は例えば８ビットであり、調歩同期のためのスタートビットとストップビットとが前後に付加されて、例えば計１０ビットが１データ単位となる。ただし、データ幅は可変設定とすることも可能である。ＵＡＲＴを用いてノード間の通信を行なう場合、該１データ単位でしか同期できないので、ボーレートに対しては、例えばＩＳＯ９１４１では±１．０％と、特に厳しい精度が要求されている。
【００３５】
マスタ同期フィールドＳＦ（ＭＳ）では、スレーブノード１０（Ｓ）とマスタ／スレーブ間通信を行なう際の、マスタノード１０（Ｍ）のボーレートを反映したマスタ時間補正用基準波形が送出される（マスタ時間補正用基準波形送出手段）。また、スレーブ同期フィールドＳＦ（ＳＳ）では、２つのスレーブノード１０（Ｓ）同士でスレーブ／スレーブ間通信を行なう際に、自スレーブノード１０（Ｓ）（送信スレーブノード）のボーレートを反映したスレーブ時間補正用基準波形をシリアル通信バスに送出する（スレーブ時間補正用基準波形送出手段）。そして、各スレーブノード１０（Ｓ）では、それらマスタ時間補正用基準波形と、スレーブ時間補正用基準波形との双方に基づき自スレーブノード１０（Ｓ）のボーレートを補正する（ボーレート補正手段）。
【００３６】
マスタ同期フィールドＳＦ（ＭＳ）とスレーブ同期フィールドＳＦ（ＳＳ）とにおいて、各時間補正用基準波形は、それぞれマスタ伝送クロック信号とスレーブ伝送クロック信号とにより、図９に示すごとく、それぞれ一定ビット数のクロックパルス波形として生成される。なお、図９ではクロックパルス幅の計測対象としてＡ〜Ｈの９ビットが定められており、最初のビットであるＡはスタートビットに兼用され、また、最後のビットＩの後には計測に用いないストップビットが続いている。なお、スタートビットＡを除くＢ〜Ｈの８ビットのみを計測対象としてもよい。
【００３７】
クロックパルス幅の計測は、マスタ基準クロック信号ないしスレーブ基準クロック信号にてカウントアップするタイマカウンタ１０９（デュアルカウンタとして構成しておくとよい）により、図１０のようにして行なわれる。波形上に連続するドミナントレベル区間とレセッシブレベル区間とがそれぞれ計測の対象となり、その区間開始位置を示すエッジをトリガとして第一タイマーが計数開始し、区間終了位置を示すエッジを受けて計数を終了する。該エッジは、マイコンに対する第一タイマーの計数値読み取りの指令信号と、第二タイマーの計数開始のトリガとに兼用され、次区間の計数を該第二タイマーにて同様に実施し、区間終了位置を示すエッジ位置にて計数終了する。該エッジは、再び第一タイマーのトリガとなり、同様の動作が繰り返される。第一タイマー及び第二タイマーは、それぞれ計数開始後の適当なタイミングで、他方のタイマーにリセット信号を送出するようにしておく。
【００３８】
ＬＩＮ通信においては、通信イベントは必ずマスタノードから開始される。図７上に示すように、マスタノードＭＮはヘッダＨＤを通信バス２０に送出する（ヘッダ送出手段）。通信バス２０はシングルワイヤであり、該通信バス２０上に送出されたヘッダＨＤは全てのスレーブノードＳＮから見える状態、つまり、受信可能な状態になっている。ヘッダＨＤを受信した各スレーブノード１０Ｓは、（受信／送信ノードの別なく）マスタ同期フィールドＳＦ（ＭＳ）のマスタ時間補正用基準波形を受信しつつ、波形中の各クロックパルス幅を計測し、例えばそれらの加算平均値を、マスタボーレートを反映した値として演算する（以下、「ボーレートを演算する」等ともいう）。
【００３９】
マスタ基準クロック信号とスレーブ基準クロック信号とは同一の目標発振周波数に設定されており、マスタ時間補正用基準波形のクロックパルス幅の計測値には、上記目標発振周波数の計数したときの基準計測値が定められている。しかし、スレーブ基準クロック信号に誤差変動があればクロックパルス幅の計測値が該基準計測値からずれるので、図２において通信に関与するスレーブノード１０（Ｓ）のマイコン１０１は、そのずれが縮小されるように自ノードのクロックパルス幅を補正演算し、分周回路１０６に、その補正結果に対応する周波数指示値を出力する。これを受けて、分周回路１０６は指示された周波数にダウンコンバート比率を変更し、スレーブボーレートを補正する。補正演算の詳細については後述する。
【００４０】
次いで、ＩＤフィールドＩＤＦには識別子（ＩＤ）が記述されており、識別子の内容に応じて通信イベント、ひいては該通信イベントに関与するスレーブノードが一義的に特定される。具体的には、各スレーブノードＳＮのＲＯＭ内には、図４に示すようなスケジューリングテーブルが格納されており、識別子の内容毎に送信スレーブノード（及び送信データ）と、受信スレーブノードとの特定情報が一義的に対応付けられた形で記憶されている。
【００４１】
各スレーブノード１０（Ｓ）は上記スケジューリングテーブルを参照して、識別子（ＩＤ）が自ノードを送信スレーブノードとして指定するものであるかどうかを確認する。送信スレーブノードとして指定されている場合は、該識別子にて要求されるデータをレスポンスとして通信バスに送出する（レスポンス送出手段）。一方、ヘッダは、受信スレーブノード１０（Ｓ）Ｒにも送信されており、ここでもスケジューリングテーブルを参照して自ノードを受信スレーブノードとなっていることを確認できる。送信スレーブノード１０（Ｓ）Ｔからのレスポンスは、本来マスタノード１０（Ｍ）に向けられたものであるが、通信バス上に送出されたレスポンスの内容はどのスレーブノード１０（Ｓ）からも見えるので、受信スレーブノード１０（Ｓ）Ｒはこのレスポンスを傍受する形でデータを受信することができる。このようにしてスレーブ／スレーブ間のデータ通信が成立する。
【００４２】
そして、本発明のシステムでは、送信スレーブノード１０（Ｓ）Ｔが、自身のスレーブ基準クロック信号をダウンコンバートする形でスレーブ時間補正用基準波形を生成し、図７の下に示すように、スレーブ同期フィールドＳＦ（ＳＳ）としてこれを先頭に付加した形でレスポンスＲＳＰを送出する。受信スレーブノード１０（Ｓ）Ｒは、データフィールドＤＦを受信するに先立って、このスレーブ同期フィールドＳＦ（ＳＳ）を受信し、前述のマスタ時間補正用基準波形の場合と全く同様に、波形中の各クロックパルス幅を計測し、例えばそれらの加算平均値を送信スレーブノードのボーレートを反映したクロックパルス幅として演算する。他方、受信スレーブノード１０（Ｓ）Ｒは、レスポンスＲＳＰの受信前にヘッダＨＤも受信し、その時計測したマスタノードのボーレートと、レスポンス受信時に計測した送信スレーブノードのボーレートとの双方を参照して自ノードのボーレートを補正するようにしている。
【００４３】
すなわち、スレーブ／スレーブ間通信を行なう際に、マスタノード１０（Ｍ）だけでなく、送信スレーブノード１０（Ｓ）Ｔからも時間補正用基準波形を取得し、それらマスタ時間補正用基準波形とスレーブ時間補正用基準波形との双方に基づいて自スレーブノード１０（Ｓ）のボーレートを補正するので、従来は全く考慮されていなかったスレーブノード１０（Ｓ）間のボーレート補正が可能となり、スレーブ／スレーブ間通信時の同期精度を問題なく確保できるようになる。また、後述のごとく過去のボーレート計測の実績値を記憶しておき、その実績値を用いてボーレート補正する方式を採用すれば、現在の通信イベントで他ノードからスレーブ時間補正用基準波形を取得できない送信スレーブノード１０（Ｓ）Ｔにおいてもボーレート補正が可能となる。
【００４４】
以下、スレーブノードにおけるボーレート補正方法についてさらに詳細に説明する。各スレーブノード（ＳＮ１，ＳＮ２‥）は、マスタノードからのヘッダを受信するたびにマスタ時間補正用基準波形のクロックパルス幅を計測し、図５に示すように、これをマスタノード（ＭＮ）のボーレート計測結果実績値として、ＲＡＭ内の実績値メモリに記憶する（ボーレート計測実績値記憶手段）。また、受信スレーブノードとなる場合に、受信スレーブノードからのレスポンスに含まれるスレーブ時間補正用基準波形のクロックパルス幅を計測し、これをスレーブボーレートの計測結果実績値として、受信スレーブノードを特定する情報（ＳＮ２，ＳＮ３，‥）と対応付けて同様に実績値メモリに記憶する。
【００４５】
図５に示すように、実績値メモリには、時間補正用基準波形の送信元ノード毎に、クロックパルス幅の計測実績値が過去の一定回数分（図５では５回）だけ蓄積されている。図５の上にスレーブノードＳＮ１の実績値メモリの内容を模式的に示しており、例えば、マスタノードＭＮからのボーレート（クロックパルス幅）計測実績値がそれぞれｆ１ｍ１，ｆ１ｍ２，ｆ１ｍ３，‥、スレーブノードＳＮ２からのボーレート（クロックパルス幅）計測実績値がそれぞれｆ１２１，ｆ１２２，ｆ１２３，‥、等としてシフトメモリ形態に記憶されている。そして、蓄積された計測実績値の送信元ノード別の平均値（ｆ１ｍｎ，ｆ１２ｎ，ｆ１３ｎ‥）が、各送信元ノードの現在のボーレートを反映した情報として計算され、実績値メモリに合わせて記憶されている。各送信元ノードから新たな時間補正用基準波形を受ければ、その送信元ノードの最新のボーレート計測実績値が計測され、記憶されている最も古い実績値を消去するとともに、該最新の計測実績値を反映した平均値が演算しなおされ、実績値メモリの記憶内容が更新される。
【００４６】
図８に、各スレーブノードのマイコン１０１（図２）におけるボーレート補正の処理流れの一例を示す。Ｓ１においては、マスタ同期フィールド（ヘッダ）を受けているかどうかを確認し、受けていればＳ２に進み、前述の方式によりマスタボーレート（クロックパルス幅）を計測して、図５の実績値メモリに記憶し、平均値の更新を行なう。一方、マスタ同期フィールドを受けていなければＳ２をスキップする。次に、Ｓ３ではＩＤフィールドを受けているかどうかを確認する。受けていればＳ４に進み、図４のスケジューリングテーブルを参照して、ＩＤフィールド内の識別子（ＩＤ）が、自ノードを送信スレーブノードとして指定するものであるかどうかを確認する。自ノードが送信スレーブノードに指定されていればＳ５に進み、同様にスケジューリングテーブルを参照して、受信スレーブノードがどれであるかを特定し（複数のこともありえる）、Ｓ６に進む。
【００４７】
Ｓ６では図５の実績値メモリを参照し、特定された受信スレーブノードのボーレート（クロックパルス間隔）計測実績値の平均値を全て読み出す。例えば、自ノードがスレーブノードＳＮ１であり、受信スレーブノードがＳＮ２のみであった場合、自ノードに設定する伝送クロックパルス間隔を次のように算出する。すなわち、図５の実績値メモリには、Ｓ２で演算・更新されたマスタノードＭＮのクロックパルス間隔計測値の平均値がｆ１ｍｎとして、また、上記Ｓ６で読み出した受信スレーブノードＳＮ２のクロックパルス間隔計測値の平均値がｆ１２ｎとして記憶されているので、これらを読み出し、自ノードに設定する伝送クロックパルス間隔ｆｐを、
ｆｐ＝（ｆ１ｍｎ＋ｆ１２ｎ）／２
として演算する。他方、受信スレーブノードがＳＮ２とＳＮ３であった場合は、受信スレーブノードＳＮ２，ＳＮ３のクロックパルス間隔計測値の平均値ｆ１２ｎ及びｆ１２ｎを読み出し、自ノードに設定する伝送クロックパルス間隔ｆｐを、
ｆｐ＝（ｆ１ｍｎ＋ｆ１２ｎ＋ｆ１３ｎ）／３
として演算する。いずれも、ボーレートνｐは、
νｐ＝１／ｆｐ
であり、この値が、分周回路１０６（図２）に設定周波数として出力され、自ノード（送信スレーブノード）のボーレート補正がなされる。
【００４８】
次に、Ｓ４で自ノードが送信スレーブノードとして指定されていなかった場合にはＳ５及びＳ６をスキップしてＳ７に進み、自ノードを受信スレーブノードとして指定するものであるかどうかを確認する。自ノードが受信スレーブノードに指定されていればＳ８に進み、スケジューリングテーブルを参照して、送信スレーブノードがどれであるかを特定し、Ｓ９に進む。
【００４９】
Ｓ９では図５の実績値メモリを参照し、特定された送信スレーブノードのボーレート（クロックパルス間隔）計測実績値の平均値を読み出す。例えば、自ノードがスレーブノードＳＮ１であり、送信スレーブノードがＳＮ５であった場合、自ノードに設定する伝送クロックパルス間隔ｆｐを、
ｆｐ＝（ｆ１ｍｎ＋ｆ１５ｎ）／２
として演算する。ボーレートνｐは、
νｐ＝１／ｆｐ
であり、この値が、分周回路１０６（図２）に設定周波数として出力され、自ノード（受信スレーブノード）のボーレート補正がなされる。
【００５０】
Ｓ４ないしＳ７で、自ノードが送信スレーブノードにも受信スレーブノードにもいずれにも指定されていなかった場合には、Ｓ５、Ｓ６、Ｓ８、Ｓ９はスキップされ、ボーレート補正は実施されない。また、Ｓ１でヘッダが受信されていない場合は、Ｓ３でＩＤフィールドが受信されず、Ｓ１０にジャンプする。このときは、送信スレーブノードからのレスポンスを受ける流れとなる。すなわち、Ｓ１０では、すでに受信しているヘッダ（のＩＤフィールド）で、どのノードが受信スレーブノードであるかが特定できているので（Ｓ８）、その受信スレーブノードの特定情報をメモリ保持する。
【００５１】
続いてＳ１１ではレスポンスの先頭にあるスレーブ同期フィールドを受信しているかどうかを判定する。受信していればＳ１２に進み、メモリ保持されている受信スレーブノードの特定情報を読み出す。そして、スレーブ同期フィールド内のスレーブ時間補正用基準波形から前述の方式によりスレーブボーレート（クロックパルス幅）を計測し、Ｓ１３にて、図５の実績値メモリの対応するスレーブボーレートのエリアに記憶し、平均値の更新を行なう。
【００５２】
以上の処理では、各スレーブノードにおいて、自ノードが受信スレーブノードとして指定された場合に、マスタノードと送信スレーブノードとのボーレート計測実績値のみを用いて自ノードのボーレートを補正するようにしていた。また、自ノードが送信スレーブノードとして指定された場合には、マスタノードと受信スレーブノードとのボーレート計測実績値のみを用いて自ノードのボーレートを補正するようにしていた。すなわち、現在の通信相手に対応するスレーブノードのボーレート計測実績値のみを選んで自ノードのボーレート補正を行なうことで、自ノードの通信相手として関与しないスレーブノードの発振精度の影響を排除することができ、補正精度を高めることができる。
【００５３】
しかし、スレーブノード間の発振精度のばらつきが比較的小さい場合は、図６に示すように、各スレーブノードにおいて、通信相手となるマスタノード及びスレーブノードのボーレート計測結果に係る実績値を、通信相手を区別せずに記憶するようにしておき（ｆ１，ｆ２，ｆ３，‥）、これら自ノード以外の全てのノード（つまり、自ノード以外のスレーブノードとマスタノード）のボーレート計測実績値を読み出して、例えば、その平均値として自ノードの設定ボーレートを算出するようにしてもよい。  
【００５４】
そこで、各スレーブノード１０（Ｓ）においてボーレート補正手段に、通信相手となるマスタノード１０（Ｍ）及びスレーブノード１０（Ｓ）のボーレート計測結果に係る実績値を、通信相手を特定する情報と対応付けた形で記憶するボーレート計測実績値記憶手段を設け、ボーレート計測実績値記憶手段に記憶されているボーレート計測実績値のうち、現在の通信相手に対応するものを選択的に読み出し、該ボーレート計測実績値に基づいて自スレーブノード１０（Ｓ）のボーレートを補正するように構成することができる。現在の通信相手に対応するスレーブノード１０（Ｓ）のボーレート計測実績値のみを選んで自ノードのボーレート補正に反映させるようにすれば、当然のことながら、自ノードの通信相手として関与しないスレーブノード１０（Ｓ）の発振精度の影響を排除することができ、補正精度を高めることができる。
【００５５】
例えば、各スレーブノード１０（Ｓ）において、ボーレート補正手段は、自スレーブノード１０（Ｓ）がマスタノード１０（Ｍ）により受信スレーブノード１０（Ｓ）として指定された場合に、当該受信時におけるマスタボーレートの最新の計測結果と、同じく送信側となるスレーブノード１０（Ｓ）に係るスレーブボーレートの最新の計測結果とに、ボーレート計測実績値記憶手段に記憶されている、それらマスタノード１０（Ｍ）及び送信側となるスレーブノード１０（Ｓ）に係る各ボーレート計測実績値をそれぞれ加味した形で自スレーブノード１０（Ｓ）のボーレートを補正するように構成できる。また、ボーレート計測実績値は、マスタボーレート及びスレーブボーレートの最新の計測値を用いて更新する。マスタボーレート及びスレーブボーレートの最新の計測値に過去の計測実績値を加味することで、計測誤差やばらつき、あるいは計測温度などの環境誤差の影響を軽減でき、ボーレート補正精度を向上できる。なお、自スレーブノード１０（Ｓ）がマスタノード１０（Ｍ）により受信スレーブノード１０（Ｓ）として指定された場合において、ボーレート計測実績値を加味せず、マスタボーレート及びスレーブボーレートの最新の計測値のみに基づいてボーレート補正を行なうことも可能である。この場合は、ボーレート計測実績値記憶手段を省略することができる。
【００５６】
一方、各スレーブノード１０（Ｓ）において、ボーレート補正手段は、自スレーブノード１０（Ｓ）が送信スレーブノード１０（Ｓ）として指定された場合に、マスタノード１０（Ｍ）及びスレーブノード１０（Ｓ）のうち送信相手となる全てのノードに係る各ボーレート計測実績値をボーレート計測実績値記憶手段から読み出し、該ボーレート計測実績値に基づいて自スレーブノード１０（Ｓ）のボーレートを補正するように構成することもできる。自ノードが送信スレーブノード１０（Ｓ）となる場合は、該ノードはスレーブ時間補正用基準波形の出力元となるので、当該通信イベントでの新たなボーレート測定結果を補正に使用する余地はない。しかし、通信相手が送信ノードとなったときの過去のボーレート測定結果が実績値として記憶されていれば、これを用いて自ノードが送信スレーブノード１０（Ｓ）となる場合にもボーレート補正が可能となり、補正精度の向上に寄与できる。
【００５７】
各スレーブノード１０（Ｓ）においてボーレート補正手段は、通信相手となるマスタノード１０（Ｍ）及びスレーブノード１０（Ｓ）のボーレート計測結果に係る実績値を、通信相手を区別せずに記憶するボーレート計測実績値記憶手段を設け、ボーレート計測実績値記憶手段に記憶されている自スレーブノード１０（Ｓ）以外の全ノードのボーレート計測実績値を読み出し、該ボーレート計測実績値に基づいて自スレーブノード１０（Ｓ）のボーレートを補正するように構成することもできる。この方式は、スレーブ発振回路１０５ＲＣの発振精度の差異が大きい場合は望ましくないが、スレーブ発振回路１０５ＲＣの仕様が統一され、かつロットばらつき等の影響も小さく発振精度が比較的そろっている場合は、比較的良好なボーレート補正効果を達成でき、かつ、ボーレート計測結果に係る実績値を、通信相手を区別せずに採用するので補正方式が単純化され、ソフトウェア開発工数の削減を図ることができる。
【００５８】
以下、本発明の効果を示すいくつかの実例について説明する。
図１１においては、スレーブノード１を送信スレーブノードとし、スレーブノード２を受信スレーブノードとしてスレーブ／スレーブ間通信を行なう場合の、各ノード間のボーレート誤差発生状況の一例を示すものである。ボーレート誤差は、送信スレーブノード（すなわち、スレーブノード１）を基準とした相対値により示しており、送信スレーブノードよりもボーレートが大きい場合を「＋」、同じく小さい場合を「−」で表している。マスタノードの相対誤差は−０．４％と比較的小さいが、スレーブノード２の相対誤差は−２．２％と大きい。スレーブノード１がヘッダをマスタノードから受けるとき、及びスレーブノード１がレスポンスをマスタノードに返すときはマスタ／スレーブ間通信となり、相対誤差は−０．４％と小さく、前述のＩＳＯ９１４１の許容範囲（±１．０％：幅にして２．０％）にも収まっている。しかし、スレーブノード１のレスポンスをスレーブノード２でも受信する場合は、許容範囲を外れる＋２．２％である。
【００５９】
そこで、既に説明したスレーブ時間補正用基準波形とマスタ時間補正用基準波形との双方を用いて、スレーブノード１のボーレートを、マスタノードとスレーブノード２との各ボーレートの平均値を目標として補正すると、スレーブノード１のボーレートの相対誤差換算で、マスタノードに対する値−０．４％とスレーブノード２に対する値−２．２％との平均値、すなわち、
｛−０．４＋（−２．２）｝／２＝−１．３％
分だけ（ボーレートが縮小する側に）補正されるので、図１２に示すように、スレーブノード１から見たマスタノードの相対誤差は＋０．９％、同じくスレーブノード２の相対誤差は−０．９％となり、いずれも許容範囲内に収めることができる。
【００６０】
次に、図１３に示すように、マスタノードと５つのスレーブノードとからなるネットワークにて、スレーブノード３を送信スレーブノード、スレーブノード１，４が受信ノードとなる場合を考える（スレーブノード３を基準とした各ノードのボーレートの相対誤差を図中に表示している）。そして、スレーブノード３のボーレート補正を、受信ノードのボーレート計測値だけを選択的に用いて行なう場合（以下、受信ノード選択補正という）と、通信に関与しないノードも含めた全ノードのボーレート計測値を用いて行なう場合（以下、全ノード補正という）とで、その効果の比較を行なう。
【００６１】
受信ノード選択補正の場合は、スレーブノード３のボーレートは、マスタノード、スレーブノード１及びスレーブノード４の各ボーレートの平均値を目標として補正されるので、スレーブノード３のボーレートの相対誤差換算での補正量は、
｛＋０．４（マスタ）＋２．２（スレーブ１）＋０．６（スレーブ４）｝／３＝＋１．０％（小数点第２桁を切り捨て表示）
となり、１．０％だけボーレートが拡大する側に補正される。他方、全ノード補正の場合は、同様に、
｛＋０．４（マスタ）＋２．２（スレーブ１）＋０．６（スレーブ２）＋０．６（スレーブ４）＋０．４（スレーブ５）｝／５＝＋０．８％（小数点第２桁を切り捨て表示）
となり、０．８％だけボーレートが拡大する側に補正される。しかし、この補正量は、受信ノード選択補正の場合より明らかに小さい。
【００６２】
補正後の結果を図１４に示す。スレーブノード３（送信）に対する相対誤差が最も大きいスレーブノード１での補正効果で比較すると、補正前は＋２．２％であった相対誤差が、受信ノード選択補正では１．０％縮小されて＋１．２％となり、全ノード補正では０．８％縮小されて＋１．４％となる。いずれも、誤差は縮小されているが、受信ノード選択補正のほうがその効果が大きいことがわかる。なお、理解を容易にするために、スレーブノード３のみをボーレート補正した結果にて示したので、スレーブノード１については補正後の相対誤差は許容範囲外となっているが、スレーブノード１についてもボーレート補正を行なうことで相対誤差を許容範囲内に収めることができる。
【００６３】
次に、図１５に示す同様のシステム構成で、従来のごとくマスタ時間補正用基準波形のみを用いてマスタ／スレーブ間のみのボーレート補正を行なった場合を比較例とし、スレーブ時間補正用基準波形も併用して、スレーブ／スレーブ間のボーレート補正も行なう場合を実施例として、その効果の差を対比して説明する。ここでもスレーブノード３が送信スレーブノードであり、受信スレーブノードはスレーブノード１のみとする。スレーブノード３はマスタノードに合わせてボーレートを補正し同期をとるが、このときの同期誤差が±０．１％存在していると考える。
【００６４】
まず比較例であるが、スレーブノード３はマスタノードに同期することで、図１６に示すように、マスタノードとの相対誤差が縮小する向き、具体的には＋０．２％ボーレートが補正される。すると、補正前は＋２．２％あったスレーブノード１との相対誤差は＋０．２％縮小し、補正後は＋２．０％となり、許容範囲の辛くも収まる形となる。しかし、これはマスタノードに対する同期誤差を考慮しない場合であって、実際には同期誤差が負側に存在するとき、補正後の相対誤差も許容範囲外となってしまう懸念が生ずる。
【００６５】
そこで、実施例のごとく、スレーブノード３とスレーブノード１との同期も考慮すると、スレーブノード３のボーレートは、
｛＋０．２（マスタ）＋２．２（スレーブ３）｝／２＝＋１．２％
だけスレーブノードに近づく向きに補正されるので、図１７に示すように、スレーブノード３から見たマスタノードの相対誤差は−１．０％、同じくスレーブノード１の相対誤差は＋１．０％となり、仮に同期誤差が±０．１％存在しても、余裕をもって許容範囲内に収めることができることがわかる。
【図面の簡単な説明】
【００６６】
【図１】本発明のシリアル通信ネットワークシステムの全体構成例を示すブロック図。
【図２】図１の通信ネットワークを構成する各ノードのブロック図。
【図３】本発明を採用したＬＩＮ通信のメッセージフレーム構造を、従来の構造と対比してしめす模式図。
【図４】スケジューリングテーブルの模式図。
【図５】スレーブノードにおける実績値メモリの第一例を示す図。
【図６】同じく第二例を示す図。
【図７】図１のネットワークにおける通信手順の概略を示す説明図。
【図８】本発明に従うボーレート補正処理の一例を示すフローチャート。
【図９】時間補正用基準波形の模式図。
【図１０】タイマカウンタによるボーレート計測の説明図。
【図１１】ノード間のボーレート誤差発生状況の一例を示す図。
【図１２】図１１に本発明を適用したときの効果説明図。
【図１３】本発明の効果検証に使用した第一のシステム構成をボーレート誤差とともに示す図。
【図１４】図１３のシステムにおける本発明の効果を、受信ノード選択補正を行なった場合と全ノード補正を行なった場合とで対比して示す説明図。
【図１５】本発明の効果検証に使用した第二のシステム構成をボーレート誤差とともに示す図。
【図１６】図１３のシステムにおいて、マスタ／スレーブ間同期のみを考慮する比較例の作用説明図。
【図１７】同じくスレーブ／スレーブ間同期も考慮した実施例の作用・効果説明図。
【符号の説明】
【００６７】
１  シリアル通信ネットワークシステム
１０（Ｍ）  マスタノード
１０（Ｓ）  スレーブノード
２０  シリアル通信バス
１０１  マイコン（ボーレート補正手段）
１０５Ｑ（１０５Ｃ）  マスタ発振回路
１０５ＲＣ  スレーブ発振回路
１０６  分周回路（マスタ伝送クロック信号生成回路、スレーブ伝送クロック信号生成回路）
１０９  タイマカウンタ（マスタボーレート計測手段、スレーブボーレート計測手段）
ＨＤ  ヘッダ
ＢＦ  ブレークフィールド
ＳＦ（ＭＳ）  マスタ同期フィールド
ＩＤＦ  スレーブノード特定フィールド
ＲＳＰ  レスポンス
ＳＦ（ＳＳ）  スレーブ同期フィールド
ＤＦ  データフィールド
ＣＳＦ  エラーチェックフィールド
【図１】
2010041567.tif 000003
【図２】
2010041567.tif 000004
【図３】
2010041567.tif 000005
【図４】
2010041567.tif 000006
【図５】
2010041567.tif 000007
【図６】
2010041567.tif 000008
【図７】
2010041567.tif 000009
【図８】
2010041567.tif 000010
【図９】
2010041567.tif 000011
【図１０】
2010041567.tif 000012
【図１１】
2010041567.tif 000013
【図１２】
2010041567.tif 000014
【図１３】
2010041567.tif 000015
【図１４】
2010041567.tif 000016
【図１５】
2010041567.tif 000017
【図１６】
2010041567.tif 000018
【図１７】
2010041567.tif 000019