(57)【要約】【課題】広範囲に通信速度が変化した場合であっても、相手側通信装置の通信速度に追従可能にする。【解決手段】連続する所定数のＬパルスからなるブレークキャラクタと２nビットの同期ビットを含み且つブレークキャラクタに続くシンクキャラクタとを有する受信データを受信して同期クロックの速度を更新するシリアル通信装置において、ブレークキャラクタの期間と、シンクキャラクタの同期ビットから得られた平均１パルス周期からブレークキャラクタの期間を推定した推定値とを比較し、ブレークキャラクタの期間が前記推定値以上のとき、前記平均１パルス周期に基づき前記同期クロックの速度を更新する。【選択図】図１
2014082697.tif 000002
【特許請求の範囲】
【請求項１】
連続する所定数のＬパルスからなるブレークキャラクタと２nビット（ｎは２以上の正の整数）の同期ビットを含み且つ前記ブレークキャラクタに続くシンクキャラクタとを有する受信データを受信して同期クロックの速度を更新するシリアル通信装置において、
前記ブレークキャラクタの期間と、前記同期ビットから得られた平均１パルス周期から前記ブレークキャラクタの期間を推定した推定値とを比較し、前記ブレークキャラクタの期間が前記推定値以上のとき、前記平均１パルス周期に基づき前記同期クロックの速度を更新することを特徴とするシリアル通信装置。
【請求項２】
連続する所定数のＬパルスからなるブレークキャラクタと８ビットの同期ビットを含み且つ前記ブレークキャラクタに続くシンクキャラクタとを有する受信データを受信して同期クロックの速度を更新するシリアル通信装置において、
前記受信データの異なる極性の隣接するエッジ間の期間を計測する第１の計測手段と、
前記受信データの同一極性の隣接するエッジ間の期間を計測する第２の計測手段と、
前記第１の計測手段で得られた計測値を前記同期クロックでシフトする第１のシフト手段と、
前記第２の計測手段で得られた計測値を前記同期クロックでシフトする第２のシフト手段と、
該第２のシフト手段の４段分の各段から得られる４個の計測値の合計値を得る合計手段と、
該合計手段で得られた合計値から前記同期ビットの平均１パルス周期を得る平均化手段と、
前記合計手段で得られた前記合計値又は前記平均化手段で得られた前記平均１パルス周期に基づき、前記所定数のＬパルスの連続期間を推定した推定Ｌパルス期間を得る推定手段と、
前記第１のシフト手段の所定の段に前記Ｌパルスの連続期間の計測値が出力するとき、これと前記推定Ｌパルス期間とを比較する比較手段と、
該比較手段による比較結果が、前記Ｌパルスの連続期間の計測値が前記推定Ｌパルス期間以上であるとき、前記平均１パルス周期に基づき前記同期クロックの速度を更新する更新手段と、
を備えたことを特徴とするシリアル通信装置。
【請求項３】
請求項２に記載のシリアル通信装置において、
前記推定手段は、前記Ｌパルスの連続期間が前記同期ビットの期間のＭ倍であるとき、前記合計値をＭ／８倍して前記推定Ｌパルス期間を得、又は前記平均１パルス周期をＭ倍して前記推定Ｌパルス期間を得ることを特徴とするシリアル通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシリアル通信装置に関し、例えばＵＡＲＴ（Universal Asynchrdnous Receiver Transmitter）を使用するＬＩＮ（Local Interconnect Network）プロトコルに好適なシリアル通信装置に関する。
【背景技術】
【０００２】
ＵＡＲＴは、１バイト（８ビット）単位のデータを１本の通信線で調歩同期式で時系列で伝送するための装置であり、通信速度（ボーレート）を決める同期クロックは所定の受信データに基づいて生成される。また、ＬＩＮプロトコルは、１個のマスタノードと１以上のスレーブノードとの間で低速通信を行うためのプロトコルであり、スレーブノードはマスタノードからの指示があったときのみマスタノードに向けて通信を行うことができる。ここでは、マスタノードとスレーブノードとで通信速度を一致させるように、同期バイトを利用して同期クロックの誤差を補正することが可能で、その誤差も一定の範囲内であれば通信可能である。      
【０００３】
マスタノードからスレーブノードに送るフレームのヘッダは、ブレークキャラクタ（別名ブレークフィールド）、シンクキャラクタ（別名シンクフィールド）、および保護ＩＤを順次含む。ブレークキャラクタは、Ｌパルスが少なくとも１３ビット以上の期間継続すること、またスレーブノードは１１ビットビット時間を閾値として検出することが規定されている。ここでの１３ビットは、マスターノードが±０．５％の精度で保証しなければならない。      
【０００４】
一方、スレーブノードでの検出閾値は、スレーブノードの同期クロックの周波数偏差を最大１４％まで許容することから、１１ビットで判別するようになっている。すなわち、ＬＩＮプロトコルでは、予め決められた通信速度で通信することが前提条件にあり、その誤差を補正する手段が提供されている。ＬＩＮプロトコルについて、非特許文献１，２に記載がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】株式会社サニー技研、基準クロックの調整、［平成２４年１０月１１日検索］、インターネット＜ＵＲＬ：http://sunnygiken.jp/product/lin-tool/about-lin/lin-clock/＞
【非特許文献２】組み込みシステム設計者のためのＬＩＮ．２マイコン実装技術（中編）［平成２４年１０月１１日検索］、インターネット＜ＵＲＬ：http://www.kumikomi.net/archives/2006/01/02lin2.php?page=1＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、マスタノードおよびスレーブノードの通信速度の精度には制約がある。さらに、未知の通信速度に対しては通信できない問題がある。例えば、着脱式のユニットにスレーブノードが内蔵され、このユニットを通信速度の異なるマスタノードに繋ぎ変えた場合は、その都度通信速度を設定し直さなければならない問題がある。また、環境変化で通信状態が悪くなり、制約以上に同期クロックの周波数が変動した場合、通信速度を変更するのも困難になる。
【０００７】
例えば、図４に示すように、第１マスタノード２１と通信速度１９２００ｂｐｓで通信していたスレーブノード３１を取り外し、このスレーブノード３１を第２マスタノード２２と９６００ｂｐｓで通信させる場合、スレーブノード３１側の通信速度の設定が第２マスタノード２２のそれと合わないと、通信は不可能である。
【０００８】
ここで、図５にスレーブノードの同期クロックが既定値を超えて変動した場合の例を示す。図５において、ブレークキャラクタＢＣは、Ｌパルスが１３ビット以上であることが必要であり、シンクキャラクタＳＣは、Ｌパルスのスタートビットの後にＬＳＢファーストで８ビットのＬパルス、Ｈパルスの繰り返し（０ｘ５５）が続き、最後にＨパルスのストップビットがあることが必要である。
【０００９】
スレーブノードが同期クロックＣＬＫ１で問題なく通信できていたとき、その同期クロックがＣＬＫ２のように速くなった場合は、スレーブノードでは、ブレークキャラクタＢＣでＬパルスが１３ビット以上は成立するが、シンクキャラクタＳＣの同期ビットは０ｘ５５ではなく、０ｘ６６、等と誤認識してしまう。また、スレーブノードの同期クロックがＣＬＫ３のように遅くなった場合は、ブレークキャラクタＳＢでＬパルスを１３ビット以上が検出できない。このように、同期クロックがＣＬＫ１からＣＬＫ２やＣＬＫ３に変化すると、スレーブノードはマスタノードと正常な通信ができない。
【００１０】
本発明の目的は、上記のように広範囲に通信速度が変化した場合であっても、相手側の通信装置の通信速度に追従可能になるようにしたシリアル通信装置を提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１にかかる発明は、連続する所定数のＬパルスからなるブレークキャラクタと２nビット（ｎは２以上の正の整数）の同期ビットを含み且つ前記ブレークキャラクタに続くシンクキャラクタとを有する受信データを受信して同期クロックの速度を更新するシリアル通信装置において、前記ブレークキャラクタの期間と、前記同期ビットから得られた平均１パルス周期から前記ブレークキャラクタの期間を推定した推定値とを比較し、前記ブレークキャラクタの期間が前記推定値以上のとき、前記平均１パルス周期に基づき前記同期クロックの速度を更新することを特徴とする。
請求項２にかかる発明は、連続する所定数のＬパルスからなるブレークキャラクタと８ビットの同期ビットを含み且つ前記ブレークキャラクタに続くシンクキャラクタとを有する受信データを受信して同期クロックの速度を更新するシリアル通信装置において、前記受信データの異なる極性の隣接するエッジ間の期間を計測する第１の計測手段と、前記受信データの同一極性の隣接するエッジ間の期間を計測する第２の計測手段と、前記第１の計測手段で得られた計測値を前記同期クロックでシフトする第１のシフト手段と、前記第２の計測手段で得られた計測値を前記同期クロックでシフトする第２のシフト手段と、該第２のシフト手段の４段分の各段から得られる４個の計測値の合計値を得る合計手段と、該合計手段で得られた合計値から前記同期ビットの平均１パルス周期を得る平均化手段と、前記合計手段で得られた前記合計値又は前記平均化手段で得られた前記平均１パルス周期に基づき、前記所定数のＬパルスの連続期間を推定した推定Ｌパルス期間を得る推定手段と、前記第１のシフト手段の所定の段に前記Ｌパルスの連続期間の計測値が出力するとき、これと前記推定Ｌパルス期間とを比較する比較手段と、該比較手段による比較結果が、前記Ｌパルスの連続期間の計測値が前記推定Ｌパルス期間以上であるとき、前記平均１パルス周期に基づき前記同期クロックの速度を更新する更新手段と、を備えたことを特徴とする。
請求項３にかかる発明は、請求項２に記載のシリアル通信装置において、前記推定手段は、前記Ｌパルスの連続期間が前記同期ビットの期間のＭ倍であるとき、前記合計値をＭ／８倍して前記推定Ｌパルス期間を得、又は前記平均１パルス周期をＭ倍して前記推定Ｌパルス期間を得ることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ブレークキャラクタの期間と、シンクキャラクタの同期ビットから得られた平均１パルス周期からブレークキャラクタの期間を推定した推定値とを比較するので、相手側通信装置の通信速度に応じたブレークキャラクタ判定や同期判定が可能になる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施例のシリアル通信装置の構成図である。
【図２】図１のシリアル通信装置の動作波形図である。
【図３】本発明を適用した場合に対応できる説明図である。
【図４】従来技術の問題点を説明する説明図である。
【図５】従来技術の問題点を説明する波形図である。
【発明を実施するための形態】
【００１４】
図１に本発明の実施例のシリアル通信装置の構成を示す。１は受信したシリアルデータの立上りと立下りエッジを検出するエッジ検出回路である。２は立下りエッジから次の立上りエッジまでの期間を計測するＬパルス期間計測回路（第１の計測手段）、３は立下りエッジから次の立下りエッジまでの期間を計測するパルス周期計測回路（第２の計測手段）である。これら計測回路２，３では、同期クロックに比べて周期が十分に短いマスタクロックをカウンタでカウントすることにより、それらの期間を計測する。
【００１５】
４〜８はＬパルス期間計測回路２で検出された計測値を取り込んで同期クロックによりシフトするＬパルス期間記憶レジスタ（第１のシフト手段）であり、シフトレジスタのＦＩＦＯを構成している。９〜１２はパルス周期計測回路３で検出された計測値を取り込んでシフトするパルス周期記憶レジスタ（第２のシフト手段）であり、シフトレジスタのＦＩＦＯを構成している。
【００１６】
１３はレジスタ９〜１２の記憶データＲＥＧ６〜ＲＥＧ９を合計する加算器（合計手段）である。１４は加算器１３の合計値に基づきブレークキャラクタＳＢの推定Ｌパルス期間を算出するための係数乗算器である。この係数乗算器１４はビットシフトと加算やシリアル乗算等で構成可能である。１５はＬパルス期間記憶レジスタ８に記憶されたデータ（最も古いＬパルス期間）と、係数乗算器１４で計算された推定Ｌパルス期間とを比較するための比較回路（比較手段）であり、レジスタ８に記憶されたＬパルス期間の計測値の方が大きい（または等しい）ときに、ＯＫを判定する。
【００１７】
１６は加算器１３で計算した合計値から通信速度（同期クロックの１ビット長）を算出するための係数乗算器（平均化手段）であり、本実施例では０．１２５（＝１／８）を乗じている。１７は通信速度（ボーレート）記憶レジスタ（更新手段）であり、比較回路１５での判定がＯＫのとき、係数乗算器１６で得られた値となるように、その通信速度が更新される。
【００１８】
以上の回路は、全て同期クロックで動作する同期回路で構成され、同期クロックの周波数を高くし、計測およびレジスタのビット数を増やすことにより、広範囲且つ高精度に処理できる。なお、レジスタ９〜１２の数を減らし、係数乗算器１４や係数乗算器１６で乗ずる係数を変更することにより、素子数削減が見込めるが、判定の信頼性が落ちる。
【００１９】
次に、図２に示すようなデータＲＸＤが受信されたときについて説明する。このデータＲＸＤは、ブレークキャラクタＢＣ、スペース時間ＳＰ、シンクキャラクタＳＣが順次続いている。ブレークキャラクタＢＣは、Ｌパルスが１３ビット区間続く。スペース時間ＳＰは１ビットのＨパルスである。シンクキャラクタＳＣは、先頭にＬパルスのスタートビット、最終にＨパルスのストップビット、中間にＬＳＢファーストで挿入された２3ビットで０ｘ５５（８ビットのＬＨＬＨ・・・）の同期ビットをもつフィールドである。
【００２０】
このようなデータＲＸＤが受信されると、エッジ検出回路１において、そのデータＲＸＤの立上りエッジと立下りエッジが順次検出される。Ｌパルス期間計測回路２では、立下りエッジから次の立上りエッジまでの期間が計測され、その計測値Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆがレジスタ４〜８を転送される。計測値Ａは１３ビットのブレークキャラクタＢＣと１ビットのスペースＳＰの合計期間、測定値Ｂ〜Ｆはそれぞれ１ビットの期間である。パルス周期計測回路３では、立下りエッジから次の立下りエッジまでの時間が順次計測され、その計測値ａ，ｂ，ｃ，ｄ，ｅがレジスタ９〜１２を転送される。計測値ａ，ｂ，ｃ，ｄ，ｅはそれぞれ２ビットの時間である。
【００２１】
ここで、レジスタ４〜８の各出力をＲＥＧ１〜ＲＥＧ５とし、レジスタ９〜１２の出力をＲＥＧ６〜ＲＥＧ９とする。ＲＥＧ９＝ａとなったとき、加算器１３では、「ｂ＋ｃ＋ｄ＋ｅ」の値が得られる。この「ｂ＋ｃ＋ｄ＋ｅ」は８ビット分の期間である。そして、この「ｂ＋ｃ＋ｄ＋ｅ」に係数乗算器１４で１．６２５を乗算すると、１３ビット分の期間が得られる。
【００２２】
このとき、レジスタ８には計測値Ａが現れており、これはブレークキャラクタＢＣのＬパルスの１３ビット分の期間を示す。よって、比較器１５において、
Ａ≧（ｂ＋ｃ＋ｄ＋ｅ）×１．６２５                      （１）
の結果を得ることができれば、比較器１５からＨパルス（＝sync)が出力され、ブレークキャラクタＢＣが１３ビット以上であることが確認できるので、正常であると判定する。
【００２３】
一方、係数乗算器１６において、
（ｂ＋ｃ＋ｄ＋ｅ）×０．１２５                          （２）
の演算が行われており、これは同期ビットの１ビット当たりの期間、つまり１ビット長であるので、前記比較器１５から正常を示すＨパルスが出たときに、前記した乗算器１６の計算結果（calc）を、通信速度（ボーレート）としてレジスタ１７に記憶する。
【００２４】
本実施例では、パルス周期の計測値であるレジスタ９〜１２の出力値ＲＥＧ６〜ＲＥＧ９の合計値を８で除算して得た平均値から同期ビットのビット長を演算しているので、受信データＲＸＤでの多少のビット長期間のバラツキは許容できる。
【００２５】
本実施例の処理は、通信中継続して行われるが、ブレークキャラクタＢＣとシンクキャラクタＳＣが連続しなければ比較器１５の結果がＯＫにならないので、通常の動作に影響することはない。また、通信中に通信速度が変わっても、図３に示すように、ブレークキャラクタＢＣとシンクキャラクタＳＣが連続している（ＢＣ１とＳＣ１、ＢＣ２とＳＣ２、ＢＣ３とＳＣ３が連続）限り、その時点で通信速度が更新され、同期確立が行われる。
【００２６】
また、ブレークキャラクタを検出する通常のブレーク検出回路を併用すれば、通信速度確定後は、そのブレーク検出回路の判定によってブレーク処理が可能であるので、本発明によるブレーク判定の遅れは１回に限定することが可能である。
【００２７】
なお、以上はブレークキャラクタＢＣのＬパルス期間が１３ビットの例の場合であったが、１３ビット以外の場合は、乗算器１４の乗算係数を変更すればよい。例えば１１ビットの場合は乗算器１４の乗算係数を１．３７５（＝１１／８）に設定し、１２ビットの場合は１．５（＝１２／８）に設定すればよい。また、乗算器１６で得られる平均１ビット期間の値を１３ビット分（あるいは１１ビット分、１２ビット分）に換算して比較器１５に入力させる乗算器（図示せず）を用意すれば、乗算器１４は不要となる。
【００２８】
本発明は、ＬＩＮプロトコルを使用する車載製品、特に着脱が想定されるバッテリーユニットのスレーブノードとして有効である。
【符号の説明】
【００２９】
１：エッジ検出回路、２：Ｌパルス期間計測回路、３：パルス周期計測回路、４〜１２：レジスタ、１３：加算器、１４：乗算器、１５：比較器、１６：乗算器、１７：レジスタ
【図１】
2014082697.tif 000003
【図２】
2014082697.tif 000004
【図３】
2014082697.tif 000005
【図４】
2014082697.tif 000006
【図５】
2014082697.tif 000007