(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6023545
(24)【登録日】2016年10月14日
(45)【発行日】2016年11月9日
(54)【発明の名称】シリアル通信装置
(51)【国際特許分類】
H04L 7/04 20060101AFI20161027BHJP
H04L 7/08 20060101ALI20161027BHJP
H04L 25/38 20060101ALI20161027BHJP
【FI】
H04L7/04 400
H04L7/08
H04L25/38 Z
【請求項の数】2
【全頁数】8
(21)【出願番号】特願2012-230580(P2012-230580)
(22)【出願日】2012年10月18日
(65)【公開番号】特開2014-82697(P2014-82697A)
(43)【公開日】2014年5月8日
【審査請求日】2015年9月1日
(73)【特許権者】
【識別番号】000191238
【氏名又は名称】新日本無線株式会社
(74)【代理人】
【識別番号】100083194
【弁理士】
【氏名又は名称】長尾 常明
(72)【発明者】
【氏名】小笠原 健一
【審査官】
阿部 弘
(56)【参考文献】
【文献】
特開2011−172144(JP,A)
【文献】
特開2009−303178(JP,A)
【文献】
特開2006−311237(JP,A)
【文献】
特表2008−518497(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/04
H04L 7/08
H04L 25/38
(57)【特許請求の範囲】
【請求項1】
連続する所定数のLパルスからなるブレークキャラクタと8ビットの同期ビットを含み且つ前記ブレークキャラクタに続くシンクキャラクタとを有する受信データを受信して同期クロックの速度を更新するシリアル通信装置において、
前記受信データの異なる極性の隣接するエッジ間の期間を計測する第1の計測手段と、
前記受信データの同一極性の隣接するエッジ間の期間を計測する第2の計測手段と、
前記第1の計測手段で得られた計測値を前記同期クロックでシフトする第1のシフト手段と、
前記第2の計測手段で得られた計測値を前記同期クロックでシフトする第2のシフト手段と、
該第2のシフト手段の4段分の各段から得られる4個の計測値の合計値を得る合計手段と、
該合計手段で得られた合計値から前記同期ビットの平均1パルス周期を得る平均化手段と、
前記合計手段で得られた前記合計値又は前記平均化手段で得られた前記平均1パルス周期に基づき、前記所定数のLパルスの連続期間を推定した推定Lパルス期間を得る推定手段と、
前記第1のシフト手段の所定の段に前記Lパルスの連続期間の計測値が出力するとき、これと前記推定Lパルス期間とを比較する比較手段と、
該比較手段による比較結果が、前記Lパルスの連続期間の計測値が前記推定Lパルス期間以上であるとき、前記平均1パルス周期に基づき前記同期クロックの速度を更新する更新手段と、
を備えたことを特徴とするシリアル通信装置。
【請求項2】
請求項1に記載のシリアル通信装置において、
前記推定手段は、前記Lパルスの連続期間が前記同期ビットの期間のM倍であるとき、前記合計値をM/8倍して前記推定Lパルス期間を得、又は前記平均1パルス周期をM倍して前記推定Lパルス期間を得ることを特徴とするシリアル通信装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はシリアル通信装置に関し、例えばUART(Universal Asynchrdnous Receiver Transmitter)を使用するLIN(Local Interconnect Network)プロトコルに好適なシリアル通信装置に関する。
【背景技術】
【0002】
UARTは、1バイト(8ビット)単位のデータを1本の通信線で調歩同期式で時系列で伝送するための装置であり、通信速度(ボーレート)を決める同期クロックは所定の受信データに基づいて生成される。また、LINプロトコルは、1個のマスタノードと1以上のスレーブノードとの間で低速通信を行うためのプロトコルであり、スレーブノードはマスタノードからの指示があったときのみマスタノードに向けて通信を行うことができる。ここでは、マスタノードとスレーブノードとで通信速度を一致させるように、同期バイトを利用して同期クロックの誤差を補正することが可能で、その誤差も一定の範囲内であれば通信可能である。
【0003】
マスタノードからスレーブノードに送るフレームのヘッダは、ブレークキャラクタ(別名ブレークフィールド)、シンクキャラクタ(別名シンクフィールド)、および保護IDを順次含む。ブレークキャラクタは、Lパルスが少なくとも13ビット以上の期間継続すること、またスレーブノードは11ビットビット時間を閾値として検出することが規定されている。ここでの13ビットは、マスターノードが±0.5%の精度で保証しなければならない。
【0004】
一方、スレーブノードでの検出閾値は、スレーブノードの同期クロックの周波数偏差を最大14%まで許容することから、11ビットで判別するようになっている。すなわち、LINプロトコルでは、予め決められた通信速度で通信することが前提条件にあり、その誤差を補正する手段が提供されている。LINプロトコルについて、非特許文献1,2に記載がある。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】株式会社サニー技研、基準クロックの調整、[平成24年10月11日検索]、インターネット<URL:http://sunnygiken.jp/product/lin-tool/about-lin/lin-clock/>
【非特許文献2】組み込みシステム設計者のためのLIN.2マイコン実装技術(中編)[平成24年10月11日検索]、インターネット<URL:http://www.kumikomi.net/archives/2006/01/02lin2.php?page=1>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、マスタノードおよびスレーブノードの通信速度の精度には制約がある。さらに、未知の通信速度に対しては通信できない問題がある。例えば、着脱式のユニットにスレーブノードが内蔵され、このユニットを通信速度の異なるマスタノードに繋ぎ変えた場合は、その都度通信速度を設定し直さなければならない問題がある。また、環境変化で通信状態が悪くなり、制約以上に同期クロックの周波数が変動した場合、通信速度を変更するのも困難になる。
【0007】
例えば、
図4に示すように、第1マスタノード21と通信速度19200bpsで通信していたスレーブノード31を取り外し、このスレーブノード31を第2マスタノード22と9600bpsで通信させる場合、スレーブノード31側の通信速度の設定が第2マスタノード22のそれと合わないと、通信は不可能である。
【0008】
ここで、
図5にスレーブノードの同期クロックが既定値を超えて変動した場合の例を示す。
図5において、ブレークキャラクタBCは、Lパルスが13ビット以上であることが必要であり、シンクキャラクタSCは、Lパルスのスタートビットの後にLSBファーストで8ビットのLパルス、Hパルスの繰り返し(0x55)が続き、最後にHパルスのストップビットがあることが必要である。
【0009】
スレーブノードが同期クロックCLK1で問題なく通信できていたとき、その同期クロックがCLK2のように速くなった場合は、スレーブノードでは、ブレークキャラクタBCでLパルスが13ビット以上は成立するが、シンクキャラクタSCの同期ビットは0x55ではなく、0x66、等と誤認識してしまう。また、スレーブノードの同期クロックがCLK3のように遅くなった場合は、ブレークキャラクタSBでLパルスを13ビット以上が検出できない。このように、同期クロックがCLK1からCLK2やCLK3に変化すると、スレーブノードはマスタノードと正常な通信ができない。
【0010】
本発明の目的は、上記のように広範囲に通信速度が変化した場合であっても、相手側の通信装置の通信速度に追従可能になるようにしたシリアル通信装置を提供することである。
【課題を解決するための手段】
【0011】
上記目的を達成するために、請求項1にかかる発明は、連続する所定数のLパルスからなるブレークキャラクタと
8ビットの同期ビットを含み且つ前記ブレークキャラクタに続くシンクキャラクタとを有する受信データを受信して同期クロックの速度を更新するシリアル通信装置において、前記
受信データの異なる極性の隣接するエッジ間の期間を計測する第1の計測手段と、前記受信データの同一極性の隣接するエッジ間の期間を計測する第2の計測手段と、前記第1の計測手段で得られた計測値を前記同期クロックでシフトする第1のシフト手段と、前記第2の計測手段で得られた計測値を前記同期クロックでシフトする第2のシフト手段と、該第2のシフト手段の4段分の各段から得られる4個の計測値の合計値を得る合計手段と、該合計手段で得られた合計値から前記同期ビットの平均1パルス周期を得る平均化手段と、前記合計手段で得られた前記合計値又は前記平均化手段で得られた前記平均1パルス周期に基づき、前記所定数のLパルスの連続期間を推定した推定Lパルス期間を得る推定手段と、前記第1のシフト手段の所定の段に前記Lパルスの連続期間の計測値が出力するとき、これと前記推定Lパルス期間とを比較する比較手段と、該比較手段による比較結果が、前記Lパルスの連続期間の計測値が前記推定Lパルス期間以上であるとき、前記平均1パルス周期に基づき前記同期クロックの速度を更新する更新手段と、を備えたことを特徴とする。
請求項2にかかる発明は、
請求項1に記載のシリアル通信装置において、前記推定手段は、前記Lパルスの連続期間が前記同期ビットの期間のM倍であるとき、前記合計値をM/8倍して前記推定Lパルス期間を得、又は前記平均1パルス周期をM倍して前記推定Lパルス期間を得ることを特徴とする。
【発明の効果】
【0012】
本発明によれば、ブレークキャラクタの期間と、シンクキャラクタの同期ビットから得られた平均1パルス周期からブレークキャラクタの期間を推定した推定値とを比較するので、相手側通信装置の通信速度に応じたブレークキャラクタ判定や同期判定が可能になる。
【図面の簡単な説明】
【0013】
【
図1】本発明の実施例のシリアル通信装置の構成図である。
【
図2】
図1のシリアル通信装置の動作波形図である。
【
図3】本発明を適用した場合に対応できる説明図である。
【発明を実施するための形態】
【0014】
図1に本発明の実施例のシリアル通信装置の構成を示す。1は受信したシリアルデータの立上りと立下りエッジを検出するエッジ検出回路である。2は立下りエッジから次の立上りエッジまでの期間を計測するLパルス期間計測回路(第1の計測手段)、3は立下りエッジから次の立下りエッジまでの期間を計測するパルス周期計測回路(第2の計測手段)である。これら計測回路2,3では、同期クロックに比べて周期が十分に短いマスタクロックをカウンタでカウントすることにより、それらの期間を計測する。
【0015】
4〜8はLパルス期間計測回路2で検出された計測値を取り込んで同期クロックによりシフトするLパルス期間記憶レジスタ(第1のシフト手段)であり、シフトレジスタのFIFOを構成している。9〜12はパルス周期計測回路3で検出された計測値を取り込んでシフトするパルス周期記憶レジスタ(第2のシフト手段)であり、シフトレジスタのFIFOを構成している。
【0016】
13はレジスタ9〜12の記憶データREG6〜REG9を合計する加算器(合計手段)である。14は加算器13の合計値に基づきブレークキャラクタSBの推定Lパルス期間を算出するための係数乗算器である。この係数乗算器14はビットシフトと加算やシリアル乗算等で構成可能である。15はLパルス期間記憶レジスタ8に記憶されたデータ(最も古いLパルス期間)と、係数乗算器14で計算された推定Lパルス期間とを比較するための比較回路(比較手段)であり、レジスタ8に記憶されたLパルス期間の計測値の方が大きい(または等しい)ときに、OKを判定する。
【0017】
16は加算器13で計算した合計値から通信速度(同期クロックの1ビット長)を算出するための係数乗算器(平均化手段)であり、本実施例では0.125(=1/8)を乗じている。17は通信速度(ボーレート)記憶レジスタ(更新手段)であり、比較回路15での判定がOKのとき、係数乗算器16で得られた値となるように、その通信速度が更新される。
【0018】
以上の回路は、全て同期クロックで動作する同期回路で構成され、同期クロックの周波数を高くし、計測およびレジスタのビット数を増やすことにより、広範囲且つ高精度に処理できる。なお、レジスタ9〜12の数を減らし、係数乗算器14や係数乗算器16で乗ずる係数を変更することにより、素子数削減が見込めるが、判定の信頼性が落ちる。
【0019】
次に、
図2に示すようなデータRXDが受信されたときについて説明する。このデータRXDは、ブレークキャラクタBC、スペース時間SP、シンクキャラクタSCが順次続いている。ブレークキャラクタBCは、Lパルスが13ビット区間続く。スペース時間SPは1ビットのHパルスである。シンクキャラクタSCは、先頭にLパルスのスタートビット、最終にHパルスのストップビット、中間にLSBファーストで挿入された2
3ビットで0x55(8ビットのLHLH・・・)の同期ビットをもつフィールドである。
【0020】
このようなデータRXDが受信されると、エッジ検出回路1において、そのデータRXDの立上りエッジと立下りエッジが順次検出される。Lパルス期間計測回路2では、立下りエッジから次の立上りエッジまでの期間が計測され、その計測値A,B,C,D,E,Fがレジスタ4〜8を転送される。計測値Aは13ビットのブレークキャラクタBCと1ビットのスペースSPの合計期間、測定値B〜Fはそれぞれ1ビットの期間である。パルス周期計測回路3では、立下りエッジから次の立下りエッジまでの時間が順次計測され、その計測値a,b,c,d,eがレジスタ9〜12を転送される。計測値a,b,c,d,eはそれぞれ2ビットの時間である。
【0021】
ここで、レジスタ4〜8の各出力をREG1〜REG5とし、レジスタ9〜12の出力をREG6〜REG9とする。REG9=aとなったとき、加算器13では、「b+c+d+e」の値が得られる。この「b+c+d+e」は8ビット分の期間である。そして、この「b+c+d+e」に係数乗算器14で1.625を乗算すると、13ビット分の期間が得られる。
【0022】
このとき、レジスタ8には計測値Aが現れており、これはブレークキャラクタBCのLパルスの13ビット分の期間を示す。よって、比較器15において、
A≧(b+c+d+e)×1.625 (1)
の結果を得ることができれば、比較器15からHパルス(=sync)が出力され、ブレークキャラクタBCが13ビット以上であることが確認できるので、正常であると判定する。
【0023】
一方、係数乗算器16において、
(b+c+d+e)×0.125 (2)
の演算が行われており、これは同期ビットの1ビット当たりの期間、つまり1ビット長であるので、前記比較器15から正常を示すHパルスが出たときに、前記した乗算器16の計算結果(calc)を、通信速度(ボーレート)としてレジスタ17に記憶する。
【0024】
本実施例では、パルス周期の計測値であるレジスタ9〜12の出力値REG6〜REG9の合計値を8で除算して得た平均値から同期ビットのビット長を演算しているので、受信データRXDでの多少のビット長期間のバラツキは許容できる。
【0025】
本実施例の処理は、通信中継続して行われるが、ブレークキャラクタBCとシンクキャラクタSCが連続しなければ比較器15の結果がOKにならないので、通常の動作に影響することはない。また、通信中に通信速度が変わっても、
図3に示すように、ブレークキャラクタBCとシンクキャラクタSCが連続している(BC1とSC1、BC2とSC2、BC3とSC3が連続)限り、その時点で通信速度が更新され、同期確立が行われる。
【0026】
また、ブレークキャラクタを検出する通常のブレーク検出回路を併用すれば、通信速度確定後は、そのブレーク検出回路の判定によってブレーク処理が可能であるので、本発明によるブレーク判定の遅れは1回に限定することが可能である。
【0027】
なお、以上はブレークキャラクタBCのLパルス期間が13ビットの例の場合であったが、13ビット以外の場合は、乗算器14の乗算係数を変更すればよい。例えば11ビットの場合は乗算器14の乗算係数を1.375(=11/8)に設定し、12ビットの場合は1.5(=12/8)に設定すればよい。また、乗算器16で得られる平均1ビット期間の値を13ビット分(あるいは11ビット分、12ビット分)に換算して比較器15に入力させる乗算器(図示せず)を用意すれば、乗算器14は不要となる。
【0028】
本発明は、LINプロトコルを使用する車載製品、特に着脱が想定されるバッテリーユニットのスレーブノードとして有効である。
【符号の説明】
【0029】
1:エッジ検出回路、2:Lパルス期間計測回路、3:パルス周期計測回路、4〜12:レジスタ、13:加算器、14:乗算器、15:比較器、16:乗算器、17:レジスタ