JP6205152B2 - シリアル通信システム、受信装置およびシリアル通信方法 - Google Patents

シリアル通信システム、受信装置およびシリアル通信方法 Download PDF

Info

Publication number
JP6205152B2
JP6205152B2 JP2013062432A JP2013062432A JP6205152B2 JP 6205152 B2 JP6205152 B2 JP 6205152B2 JP 2013062432 A JP2013062432 A JP 2013062432A JP 2013062432 A JP2013062432 A JP 2013062432A JP 6205152 B2 JP6205152 B2 JP 6205152B2
Authority
JP
Japan
Prior art keywords
field
period
data field
data
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013062432A
Other languages
English (en)
Other versions
JP2014187633A (ja
Inventor
弘文 山脇
弘文 山脇
康志 酒井
康志 酒井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cypress Semiconductor Corp
Original Assignee
Cypress Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cypress Semiconductor Corp filed Critical Cypress Semiconductor Corp
Priority to JP2013062432A priority Critical patent/JP6205152B2/ja
Publication of JP2014187633A publication Critical patent/JP2014187633A/ja
Application granted granted Critical
Publication of JP6205152B2 publication Critical patent/JP6205152B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

開示の技術は、非同期シリアル通信に関する。
非同期シリアル通信が幅広い分野で使用されており、例えば、低コスト車載ネットワークを実現する為のLIN(Local Interconnect Network)規格が提案されている。
LIN規格を含む非同期シリアル通信において、正しくデータの転送を行うためには、送信ノードのシリアルデータ送出タイミングと受信ノードのシリアルデータサンプリングタイミングの位相関係をある範囲内に納める必要がある。シリアルデータ送出タイミングとシリアルデータサンプリングタイミングが決められた位相関係から逸脱している状態では、正しいデータ転送を行うことができない。
LIN規格の非同期シリアル通信においては、マスタノードのシリアルデータ送出タイミング(ボーレート)にスレーブノードにおけるシリアルデータサンプリングタイミング(ボーレート)を合わせている。
同期のためのフィールドによりマスタノードのボーレートにスレーブノードのボーレートを合わせた後は、各スレーブノードが持っているクロック生成器の安定度に依存してノード間の内部クロックがずれていく。そのため、受信データを正しくサンプリングできなくなってしまう事態が生じる。そのため、一つのフレームを転送中に正しく受信データをサンプリングできなくなることが無いように、標準のLIN規格では、各スレーブノードが持っているクロック生成器の安定度を規定している。したがって、各ノードのクロック生成器に要求される性能を下げることに限界があり、そのためにクロック生成器にかかるコスト低減に限界がある。
また、各スレーブノードの内部クロックの安定度を規定しても、一つのフレームが長い場合は、各ノードの内部クロックのズレが蓄積していき、正しいデータ転送ができなくなる。この様な事態を回避するため、LIN規格では一つのフレーム当たりの転送データ量を最大8バイトに制約している。
一つのフレームで転送できる最大データ量が制約される(規格上最大8バイト)ため、大量データ転送する場合は転送データを複数フレームに分割して転送する必要がある。このため、実効転送レートが低くなる。
上記のように、LIN規格を含む一般的な非同期シリアル通信においては、受信装置でのクロック生成器に安定度が要求されるため、高コストのものを使用していた。また、一つのフレームで転送するデータ量が制約されており、実効転送レートが低くなっていた。
特開平5−225128号公報 特開2007−324679号公報 特開2007−166179号公報
実施形態によれば、低コストの比較的安定度の低いクロック生成器を使用しても、一つのフレームで転送するデータ量の制約がなく、高い実行転送レートでのデータ伝送を行う通信システムが実現される。
第1の態様のシリアル通信システムは、送信ノードと、少なくとも1つの受信ノードと、送信ノードおよび少なくとも1つの受信ノードを接続する伝送路と、を有する。一つのフレームは、開始フィールドと、同期フィールドと、複数のデータフィールドと、を有する。開始フィールドおよび同期フィールドは、送信ノードから送信され、複数のデータフィールドは、送信ノードまたは少なくとも1つの受信ノードから送信される。少なくとも1つの受信ノードは、同期フィールドの信号に応じてボーレートを設定し、設定したボーレートで、複数のデータフィールドの送信または受信を行い、データフィールドの時間長を検出して、ボーレートを更新する。
第1の態様のシリアル通信システムでは、受信ノードが、低コストの比較的安定度の低いクロック生成器を使用でき、一つのフレームで転送するデータ量の制約がなく、高い実行転送レートでのデータ伝送を行うことができる。
図1は、LIN規格に基づく通信システムの一般的な構成例を示す図である。 図2は、フレーム構造を示す図である。 図3は、LINプロトコルに基づくノード間通信の形態を示す図である。 図4は、フレーム(Frame)の各部の詳細を示す図である。 図5は、一般的なスレーブノード(スレーブ装置)の同期処理に関係する部分の構成を示すブロック図である。 図6は、第1実施形態のLIN規格の通信システムにおける受信装置(スレーブノード)の構成を示す図である。 図7は、第1実施形態において検出する1フレーム(Frame)のタイミングを説明する図である。 図8は、Data field長の検出をより詳細に説明する図である。 図9は、1フレームにおけるData field(Byte field)の個数を8に制約せずに、8以上に増加させた場合のフレーム構造を示す図である。 図10は、第2実施形態のLIN規格の通信システムにおける受信装置(スレーブノード)の構成を示す図である。 図11は、十進数値”9317”とそれを10で除した”931”を、二進数および十進数で表した場合を示す図である。 図12は、第3実施形態のLIN規格の通信システムにおける受信装置(スレーブノード)の構成を示す図である。
非同期シリアル通信が幅広い分野で使用されている。ここでは、低コスト車載ネットワークを実現する為の規格として広く知られているLIN(Local Interconnect Network)規格の非同期シリアル通信を例として説明を行う。しかし、本発明はこれに限定されるものではない。
図1は、LIN規格に基づく通信システムの一般的な構成例を示す図である。
このような通信システムは、伝送路であるLINバス10と、マスタノード(master node)11と、2個のスレーブノード(slave node)12A、12Bと、を有する。マスタノード11とスレーブノード12A、12Bは、LINバス10を介して通信可能に接続される。LINバス10に接続するスレーブノードの個数は1以上であればよく、2に限定されるものではない。マスタノード11は、マスタノードが行う処理であるマスタタスク(master task)と共に、スレーブノードに対するスレーブ・タスク(slave task)を実行する。スレーブノード12A、12Bは、それぞれスレーブ・タスクを実行する。
一般に、マスタノード11は、水晶発振器等の所定の周波数(周期)のクロックを出力するクロック生成部と、CPU、メモリ等の演算処理部を有し、高精度のクロックで動作し、複雑な処理を行う。これに対して、スレーブノード12A、12Bは、水晶発振器等を有さない比較的低精度のクロックを発生するクロック生成部と、アクチュエータやセンサおよびそれに付属するゲート回路等の簡単な回路を有し、単純な処理を行う。マスタノード11は、伝送路を介して、対象となるスレーブノードの指定および処理内容を指示する。例えば、対象スレーブノードがアクチュエータであれば、マスタノード11は、動作を実行するためのデータを送信し、対象スレーブノードが受信したデータに応じた動作を実行する。対象スレーブノードがセンサであれば、スレーブノードが検出データを出力し、マスタノード11または他のスレーブノードが検出データを受信する。
LINプロトコルについて説明する。
ノード間の通信は、フレーム(Frame)(通信パケット)を使用して行われる。
図2は、フレーム構造を示す図である。
1フレームは、ヘッダ部分(Header)と、レスポンス部分(Response)と、を有する。ヘッダ部分は、開始フィールド(Break field)と、同期フィールド(Sync field)と、動作指示フィールド(Protected identifier field)と、を有する。同期フィールドと動作指示フィールドの間には、分離スペース(Inter-byte space)が設けられる。以下、開始フィールドをブレークフィールド、同期フィールドを同期バイト、動作指示フィールドをIDフィールド、と称する場合がある。
レスポンス部分は、複数(N個)のデータフィールド(Data field)(Data 1-N)と、終了フィールド(Checksum)と、を有する。以下、データフィールドを単にデータまたはバイトフィールド(Byte field)と、終了フィールドをチェックサムと称する場合がある。レスポンス部分の開始部分のIDフィールドと先頭のデータの間には、応答空間(Response space)が設けられ、データおよびチェックサム間には、分離スペース(Inter-byte spaces)が設けられる。
Header部分は、マスタノードが送出する。
Response部分は、マスタノード(マスタノードからスレーブノードへの通信の場合)、スレーブノード(スレーブノードからマスタノードへの通信の場合、スレーブノードからスレーブノードへの通信の場合)が送出する。
図3は、LINプロトコルに基づくノード間通信の形態を示す図である。
図3では、この場合、マスタノード11は、マスタタスクと共に、スレーブ・タスク受信処理およびスレーブ・タスク送信処理をスレーブ・タスクとして実行する。スレーブノード12、12A、12Bは、それぞれスレーブ・タスク受信処理およびスレーブ・タスク送信処理をスレーブ・タスクとして実行する。
図3の(A)は、マスタノード11からの要求に応じてスレーブノード12からマスタノード11へデータを送信する場合を示す。この場合、マスタノード11が、Header部分を伝送路に送出し、スレーブノード12が、IDフィールドにより対象であることを認識して、IDフィールドで指示されたタスクに応じてResponse部分を伝送路に送出する。
図3の(B)は、マスタノード11から複数のスレーブノード12A、12Bへデータを送信する場合を示す。この場合、スレーブノードは1個でもよい。マスタノード11が、Header部分およびResponse部分を伝送路に送出し、スレーブノード12Aおよび12Bが、IDフィールドにより対象であることを認識して、Response部分を受信する。
図3の(C)は、マスタノード11が、スレーブノード12Aからスレーブノード12Bへデータを送信するように指示する場合を示す。マスタノード11が、Header部分を伝送路に送出し、IDフィールドにより、スレーブノード12Aが送信元であることを認識して、Response部分を伝送路に送出する。さらに、スレーブノード12Bが受信先であることを認識して、Response部分を受信する。
図4は、フレーム(Frame)の各部の詳細を示す図である。
Break fieldは、フレーム(Frame)の開始を示す。図4の(A)に示すように、マスタノードは、13ビット時間以上の間”L”を出力する。スレーブノードは11ビット時間以上の間”L”レベルを検出し続けると、Break fieldと認識する。
図4の(B)に示すように、Sync fieldは、16進で”55”の値を持つフィールドである。スレーブノードは、Break field後にSync fieldを検出すると、以下の処理を行うことによりマスタノードのボーレート(1秒当たりの転送ビット数)を計測することができる。Sync field中の最初の立下りエッジから5番目の立下りエッジの時間を計測することにより、スレーブノードはマスタノードが8ビットのデータを送信する時間Tを得てその値を8で除算することにより1ビット転送時間を算出する。
図4の(C)に示すように、Protected identifier fieldは、Frame identifierおよびParityの2つSub-fieldを有する。Frame identifierは、このフレームの種別を示す。ParityはFrame identifierのチェック用データである。
Data field(Byte field)は、1〜8バイトのデータバイト(Data 1, Data 2,…, Data N)を転送する。図4の(D)に示すように、Byte fieldの開始部分に”L”の開始ビット(Start bit)を、Byte fieldの終了部分に”H”の終了ビット(Stop bit)を有する。開始ビットと終了ビットの間に、8ビット(1 byte)のデータのLSB(bit 0)からMSB(bit 7)がこの順に配置される。したがって、Data field(Byte field)は、10ビット分の長さを有する。
Checksumは、1フレームの最後に配置され、このフレームのエラーチェックのために使用される。
LIN規格を含む非同期シリアル通信において、正しくデータの転送を行うためには、送信ノードのシリアルデータ送出タイミングと受信ノードのシリアルデータサンプリングタイミングの位相関係をある範囲内に納める必要がある。シリアルデータ送出タイミングとシリアルデータサンプリングタイミングが決められた位相関係から逸脱している状態では、正しいデータ転送を行うことができない。
LIN規格の非同期シリアル通信においては、マスタノードのシリアルデータ送出タイミングにスレーブノードにおけるシリアルデータサンプリングタイミングを合わせている。
図1の通信システムにおいて、各ノードの間で通信を行う場合、マスタノードの指示によりフレームの転送を開始する。このフレーム転送を正しく行うため、スレーブノードは、マスタノードからのフレームのヘッダ部分に含まれるSync fieldから算出されるボーレート(1秒当たりの送受信ビット数)に各スレーブノードのボーレートを一致させる機能を有している。このような同期処理を行うため、スレーブノードは、以下のような構成を有する。
図5は、一般的なスレーブノード(スレーブ装置)の同期処理に関係する部分の構成を示すブロック図である。
スレーブノード12は、クロック生成器21と、ボーレートジェネレータ22と、シリアルパラレル変換器23と、同期フィールド(Sync field)検出器24と、エッジ検出器25と、カウンタ26と、シフタ27と、を有する。
クロック生成器21は、マスタノードが有する水晶発振器を利用したクロック生成器が生成するクロックの周波数に対して所定の周波数のクロックを、LIN規格で定められた精度で生成する。クロック生成器21が生成するクロックは、受信クロック(ボーレートクロック)の周波数より高周波数のクロックである。クロック生成器21は、簡易な発振器を有するため、低精度のクロックを生成し、安定性も不十分である。
ボーレートジェネレータ22は、分周比が可変の分周器を有し、クロック生成器21の出力するクロックを、ボーレートジェネレータ設定値により規定された分周比で分周して受信クロック(ボーレートクロック)を生成する。
シリアルパラレル変換器23は、LIN伝送路から入力する信号のResponse部分におけるデータおよびチェックサムのシリアルデータを8ビットパラレルデータに変換する。
同期フィールド(Sync field)検出器24は、LIN伝送路から入力する信号のHeader部分のSync fieldにおける立下りエッジを検出するタイミングを示すSync field検出信号を出力する。同期フィールド検出器24は、クロックをカウントするカウンタを有し、11ビット時間以上”L”レベルが連続することを検出してBreak fieldを検出した後、最初の立ち上がりエッジ(Break fieldの後端)からその後の最初の立下りまでの間アサートする。さらに、同期フィールド検出器24は、Sync field内の4個目の立ち上がりエッジから5個目の立下りエッジまでの間アサートする。
エッジ検出器25は、Break fieldで初期化(出力ネゲート)される。エッジ検出器25は、Sync field検出信号がアサートされているタイミングで立下りエッジを検出すると出力(Sync fieldエッジ検出信号)をトグル(LからHおよびHからLに変化)させる。
カウンタ26は、Break fieldで初期化され、Sync fieldエッジ検出信号がアサートされている期間の長さを計測し、Sync field長カウント値を出力する。
シフタ27は、Sync field長カウント値を除算して1/8の値を求め、ボーレートジェネレータ設定値として出力する。この処理は、16進のSync field長カウント値を3ビット分シフトすることにより生成される。Sync field長カウント値は、8ビット分の伝送が行われた時間を測定したものであるため、カウンタ値を8で除算(右3ビットシフト)し、1ビット分の伝送時間を算出する。この1ビット分の伝送時間がボーレートジェネレータ設定値となる。
ボーレートジェネレータ22は、以上のようにして決定されたボーレートジェネレータ設定値に基づいて、送信クロックの周波数(周期)にもっとも近い周波数(周期)の受信クロック(ボーレートクロック)が得られるように、分周比を設定する。
以上の処理をまとめると、以下のようになる。
マスタノードは、送信フレームの先頭でフレーム開始を示すBreak fieldに続き、Sync fieldと呼ばれる特殊な固定パターンを送信する。
スレーブノードは、Break field及びSync fieldを認識し、Sync field内の二つのパルスエッジ(測定対象フィールド部)の間隔を測定する。この測定値はマスタノードの8ビット転送時間をスレーブノードの内部クロックでカウントしたものとなる。
スレーブノードは、上記測定値を元にマスタノードのボーレートを算出し、自身のボーレートジェネレータに算出したボーレートを設定する。
上記の一連の処理を実行することにより、Data fieldにおいてスレーブノードはマスタノードのタイミングに合わせたサンプリングタイミングでシリアルデータを受信することができる。
上記のように、Sync fieldによりマスタノードのボーレートにスレーブノードのボーレートを合わせた後は、各スレーブノードが持っているクロック生成器の安定度に依存してノード間の内部クロックがずれていく。そのため、受信データを正しくサンプリングできなくなってしまう事態が生じる。そのため、一つのフレームを転送中に正しく受信データをサンプリングできなくなることが無いように、標準のLIN規格では、各スレーブノードが持っているクロック生成器の安定度を規定している。したがって、各ノードのクロック生成器に要求される性能を下げることに限界があり、そのためにクロック生成器にかかるコスト低減に限界がある。
また、各スレーブノードの内部クロックの安定度を規定しても、一つのフレームが長い場合は、各ノードの内部クロックのズレが蓄積していき、正しいデータ転送ができなくなる。この様な事態を回避するため、LIN規格では一つのフレーム当たりの転送データ量を最大8バイトに制約している。言い換えれば、図2のフレーム構造で、データは最大でも1から8までに規定されている。
一つのフレームで転送できる最大データ量が制約される(規格上最大8バイト)ため、大量データ転送する場合は転送データを複数フレームに分割して転送する必要がある。このため、実効転送レートが低くなる。
上記のように、LIN規格を含む一般的な非同期シリアル通信においては、受信装置でのクロック生成器に安定度が要求されるため、高コストのものを使用していた。また、一つのフレームで転送するデータ量が制約されており、実効転送レートが低くなっていた。
以下に説明する実施形態の通信システムは、このような問題を解消し、低コストの比較的安定度の低いクロック生成器をしても、一つのフレームで転送するデータ量の制約がなく、高い実行転送レートでのデータ伝送を行う。
図6は、第1実施形態のLIN規格の通信システムにおける受信装置(スレーブノード)の構成を示す図である。
スレーブノード30は、クロック生成器21と、ボーレートジェネレータ22と、シリアルパラレル変換器23と、Sync field検出器24と、エッジ検出器25と、カウンタ26と、シフタ27と、を有する。さらに、スレーブノード30は、Data field検出器31と、Data fieldエッジ検出器32と、Data fieldカウンタ33と、除算器34と、2個のラッチ28および35と、エッジ切替器36と、セレクタ37と、を有する。
クロック生成器、ボーレートジェネレータ22、シリアルパラレル変換器23、Sync field検出器24、エッジ検出器25、カウンタ26およびシフタ27は、図5のものと同じである。すなわち、第1実施形態のスレーブノード30は、図5のスレーブノード12に、Data field検出器31、Data fieldエッジ検出器32、Data fieldカウンタ33、除算器34、ラッチ28および35、エッジ切替器36およびセレクタ37を加えたものである。これらの加えた要素により、以下の4つの機構が実現される。第1の機構は、各Data fieldにあるスタートビット及びストップビットの位置を検出する機構である。第2の機構は、第1の機構で検出したスタートビットからストップビットの間の経過時間を受信側内部クロックでカウントする機構である。第3の機構は、第2の機構のカウント値を10で除算して、ボーレートジェネレータへの設定値を算出する機構である。第4の機構は、Sync fieldに対して算出したボーレートジェネレータ設定値と、第3の機構で算出したボーレートジェネレータ設定値の一方を選択して、ボーレートジェネレータ22へ設定する機構である。
以下、新たに加えた要素について説明する。
Data field検出器31は、Data fieldエッジ検出器32が各Data field(Data)の開始ビットの立下りエッジを検出するタイミングを示すData field検出信号を生成して出力する。Data field検出器31は、Header部分の受信終了後からその後の最初の立下りエッジ(Start bit)までの間および各Data fieldの終了ビット(Stop bit)からその後の最初の立下りエッジ(Start bit)までの間、Data field検出信号である出力をアサートする。Header部分の受信終了後からその後の最初の立下りエッジ(Start bit)までの間は、図2のResponse spaceに相当する。回路構成は、Sync field検出器24と類似している。
Data fieldエッジ検出器32は、Data fieldカウンタ33を動作させる期間を示すData fieldエッジ検出信号を生成する。回路構成は、Sync fieldエッジ検出器25と類似している。Data fieldエッジ検出器32は、Break field検出時に初期化(出力ネゲート)され、Data field検出信号がアサートされているタイミングで立下りエッジを検出すると出力(Data fieldエッジ検出信号)をトグルする。
Data fieldカウンタ33は、Data fieldエッジ検出信号の長さをカウントする。回路構成は、Sync fieldエッジ検出器25と類似している。Data fieldカウンタ33は、Break field検出時に初期化され、Data fieldエッジ検出信号がアサートされている間カウント動作を行う。
除算器34は、Data fieldカウンタ33のData field長カウンタ値からボーレートジェネレータ設定値を算出する。図2で説明したように、Data fieldカウンタ33のカウント値は、10ビット分の伝送が行われる時間を測定したものとなるため、カウンタ値を10で除算し1ビット分の伝送時間を算出する。この1ビット分の伝送時間がボーレートジェネレータ設定値となる。
ラッチ28は、シフタ27の出力するSync fieldで検出されたボーレートジェネレータ設定値を保持し、Sync fieldカウンタ26がカウント動作をしている間保持状態を維持する。ラッチ35は、除算器34の出力するData field長カウンタ値から検出されたボーレートジェネレータ設定値を保持し、Data fieldカウンタ33がカウント動作をしている間、保持状態を維持する。
エッジ検出切替器36およびセレクタ37は、ラッチ28に保持されたSync fieldで検出されたボーレートジェネレータ設定値と、ラッチ35に保持されたData field長カウンタ値から検出されたボーレートジェネレータ設定値の適切な方を選択する。
図7は、第1実施形態において検出する1フレーム(Frame)のタイミングを説明する図である。
スレーブノード(受信ノード)では、Frameの受信待ち状態の時、ボーレートジェネレータ設定値としてあらかじめ設定された初期値を使用するか、直前のボーレートジェネレータ設定値を使用する。
スレーブノードは、Sync fieldを認識すると図7における測定対象フィールドの長さを計測する。Sync fieldの計測が終了すると、エッジ検出切替器36が、エッジ検出対象切替信号をSync field長カウント値から算出したボーレートジェネレータ設定値を選択するように設定する。この設定は、セレクタ37の選択信号=”0”とすることにより行う。
さらに、後続のData fieldを認識すると、各Data fieldの長さを計測する。この詳細については後述する。Data fieldの長さを計測すると、エッジ検出切替器36は、エッジ検出対象切替信号をData field長カウント値から算出したボーレートジェネレータ設定値を選択するように設定する。この設定は、セレクタ37の選択信号=”1”とすることにより行う。その後Data fieldが続き、新しいData fieldを受信すると、その長さを計測し、最新のData fieldの長さに基づいてボーレートジェネレータ設定値を更新する。このData field の長さの計測によるボーレートジェネレータ設定値の更新はData fieldが続く限り継続する。
図8は、Data field長の検出をより詳細に説明する図である。
図4の(D)に示すように、Data field(Byte field)は、最初の1ビットは”L”のスタートビット(Start bit)であり、最後の1ビットは”H”のストップビット(Stop bit)である。このようなData fieldが連続すると、その境界部分では、”H”のストップビットの後に”L”のスタートビットが配置されることになる。言い換えれば、論理値が逆のビットが隣接して配置されることになり、必ず論理値の変化(立下りエッジ)が存在する。図8では、Data fieldの境界部分のストップビットとスタートビットが連続する部分を[a]で示している。
このスタートビットとストップビットの間の立下りエッジから次のスタートビットとストップビットの間の立下りエッジの間隔は、Data field (Byte field)の長さである。図8では、この長さを、[b1]、[b2]、[b3]で示している。この長さは、8ビットデータ転送時間+スタートビット転送時間(1ビット転送時間)+ストップビット転送時間(1ビット転送時間)=10ビット転送時間であり、送信ノード側の転送レート(=ボーレート:Baud rate)の1/10を示している。
受信中、受信ノードは、現在どのfieldのどのビットを転送中であるかを認識しており、立下りエッジの受信が予測される上記の期間[a]をアサートして、期間[a]内での立下りエッジの検出を行う。図7には、Data field検出器31がアサートする期間を示しており、そこでエッジ検出を行う。
このエッジ受信を期待しているタイミングで、上記信号エッジを受信した瞬間を捉えて、各Byte fieldの長さ([b1]、[b2]、[b3])をスレーブノードの内部クロックでカウントする。
上記Byte fieldの長さのカウント値を10で除算することにより、測定対象Byte fieldの1ビット転送時間(=ボーレートの逆数)を求めることができる。
この求めた1ビット転送時間を、ボーレートクロック生成器22に設定することにより、受信側のボーレートを送信側のボーレートに合わせたデータ伝送を行う。なお、図8で、[b1]から算出されたボーレートは、[c1]で示す期間に使用され、[b2]から算出されたボーレートは、[c2]で示す期間に使用されるという具合に、順に更新される。これにより、常時安定してデータをサンプリングできるタイミングを設定できる。
以上説明したように、第1実施形態では、データ転送中でも受信側のボーレートを直前のByte fieldにおける送信側ボーレートに合わせることができ、安定してデータをサンプリングできる様に受信側サンプリングタイミングを設定できる。更に、この動作を継続して行うことにより、ボーレートの補正(送信ボーレートへの受信ボーレートの合わせこみ)を、今まさに受信中のData fieldの長さを元に行うことになる。言い換えれば、常時フィードバック補正が行われる。したがって、送信ボーレートと受信ボーレートの差が安定にデータ転送を行える範囲を逸脱しないため、安定度が劣るクロック生成器を使用しても誤りのないデータ転送を実現できる。更に、このボーレートの補正により一つのフレームで大量のデータを転送した場合でも転送エラーが発生することがなくなる。
図9は、1フレームにおけるData field(Byte field)の個数を8に制約せずに、8以上に増加させた場合のフレーム構造を示す図である。
図9に示すように、一つのフレームにおけるData field(Byte field)の個数が増加するので、一つのフレームで送信できるデータ量が増加する。
図10は、第2実施形態のLIN規格の通信システムにおける受信装置(スレーブノード)の構成を示す図である。
第2実施形態のスレーブノード40は、Data fieldカウンタ33および除算器34の代わりに、BCD(Binary Coded Decimal)カウンタ41およびシフタ42を設けたことが第1実施形態と異なり、他は同じである。
第2実施形態では、スタートビットとストップビットの間隔を計測する機構をバイナリカウンタのData fieldカウンタ33からBCD(Binary Coded Decimal)カウンタに変更する。
前述のように、Data fieldのスタートビットとストップビットの間隔は、10ビット転送時間であるため、Data fieldのスタートビットとストップビットの間隔から1ビット転送時間を算出するためには、10による除算を行う必要がある。ここで、Data fieldのスタートビットとストップビットの間隔の計測をBCDカウンタ41で行うと、カウンタ出力の各4ビットは10進数で1桁を表すことになり、上記の10による除算を4ビット右シフト操作に簡略化できる。
そこで、第2実施形態では、BCDカウンタ41で、スタートビットとストップビットの間隔を計測し、10による除算を、シフタ42の右4ビットシフトで行う。これにより、ボーレートジェネレータ設定値を求める際に行う10による除算を簡略化でき、実装コストが高い除算器を使用しない。
図11は、十進数値”9317”とそれを10で除した”931”を、二進数および十進数で表した場合を示す図である。
図11は、十進数値”9317”の10による除算の変化を示している。図11に示すように、十進数(BCDカウンタ値)で表した場合の10による除算は、4ビットシフト(4ビット削除)で行えるが、二進数表示の場合には、10による除算は、単純なビットシフトで実現することができない。
第2実施形態によれば、コストが高い(論理規模が大きい)除算器を使用せずに、コストが低い(論理規模が小さい)シフト操作に置き換えることができる。
図12は、第3実施形態のLIN規格の通信システムにおける受信装置(スレーブノード)の構成を示す図である。
第3実施形態のスレーブノード50は、クロック生成器21と、ボーレートジェネレータ22と、シリアルパラレル変換器23と、を有する。スレーブノード50は、さらに、field検出器51と、エッジ検出器52と、カウンタ53と、シフタ27と、ラッチ28と、除算器34と、ラッチ35と、セレクタ37と、を有する。
クロック生成器21、ボーレートジェネレータ22、シリアルパラレル変換器23、シフタ27、ラッチ28、除算器34、ラッチ35およびセレクタ37は、第1実施形態のものと同じものである。
第3実施形態のfield検出器51は、第1実施形態のSync field検出器24とData field検出器31とエッジ切替器36を一体化したものである。第3実施形態のエッジ検出器52は、第1実施形態のエッジ検出器25とData fieldエッジ検出器32を共通化したものである。第3実施形態のカウンタ53は、カウンタ26とData fieldカウンタ33を共通化したものである。
第1実施形態のスレーブノード30に設けた、Sync field検出器24とData field検出器31は、共にカウンタを有し、アサートする期間が異なるのみで、類似の構成を有する。また、エッジ検出器25とData fieldエッジ検出器32は、変化エッジを検出する回路を有し、類似の構成を有する。さらに、カウンタ26とData fieldカウンタ33は、共にカウンタを有し、類似の構成を有する。したがって、それらは、第3実施形態のように共通化することができる。
field検出器51は、カウンタを有し、Sync field検出時には、Sync field検出器24と同様のカウント動作を行いfield検出信号をアサートし、Data field検出時には、Data field検出器31と同様のカウント動作を行いfield検出信号をアサートする。Sync field検出時とData field検出時の動作の違いは、カウント開始のタイミングと、アサートするカウント値の設定である。
エッジ検出器52は、エッジ検出器25およびData fieldエッジ検出器32と同じ構成を有する。
カウンタ53は、カウンタ26およびData fieldカウンタ33と同じ構成を有する。
以上説明したように、実施形態によれば、最新の送信ボーレートを受信側クロックでカウントし、その結果で受信ボーレートを設定することにより、マスタノードとスレーブノードの間のボーレートをFrameデータ転送中でも合わせることができる。
以上説明したように、実施形態によれば、以下の効果が得られる。
(1)安定した通信をコストの安い、すなわちクロック安定性が悪いクロック生成器を使用して実現できる。
(2)一つのフレームで多量(実質上無限)のデータを転送することができる。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
11 送信ノード(マスタノード)
12、12A、12B 受信ノード(スレーブノード)
21 クロック生成器
22 ボーレートジェネレータ
23 シリアルパラレル変換器
24 Sync field検出器
25 エッジ検出器
26 カウンタ
27 シフタ
28 ラッチ
31 Data field検出器
32 Dataエッジ検出器
33 Dataカウンタ
34 除算器
35 ラッチ
36 エッジ検出切替器
37 セレクタ

Claims (11)

  1. 送信ノードと、少なくとも1つの受信ノードと、前記送信ノードおよび前記少なくとも1つの受信ノードを接続する伝送路と、を備え、
    1フレームが、開始フィールドと、同期フィールドと、複数のデータフィールドと、を有し、
    前記開始フィールドおよび前記同期フィールドは、前記送信ノードから送信され、
    前記複数のデータフィールドは、前記送信ノードまたは前記少なくとも1つの受信ノードから送信され、
    前記少なくとも1つの受信ノードは、
    前記同期フィールドの信号に応じてボーレートを設定し、設定した前記ボーレートで、前記複数のデータフィールドの送信または受信を行い、
    前記データフィールドの時間長を検出して、前記ボーレートを更新し、
    前記受信ノードは、
    受信信号の前記同期フィールドにおける同期信号の周期を検出し、受信クロックの周期が、検出した前記同期信号の周期に対応するように、受信クロックの生成のためのクロックの分周比を設定する同期フィールド検出回路と、
    前記受信信号の各データフィールドの周期を検出し、前記受信クロックの周期が、検出した前記データフィールドの周期に対応するように前記分周比を変更するデータフィールド周期検出回路と、
    前記分周比の設定値を、1番目の前記データフィールドの間は、前記同期フィールド検出回路の設定した分周比に、2番目の前記データフィールド以降には、前記データフィールド周期検出回路が変更した分周比に切り替えるセレクタと、
    を有することを特徴とするシリアル通信システム。
  2. 各受信ノードは、
    前記クロックを出力するクロック生成器と、
    前記クロックを前記分周比で分周して前記受信クロックを生成するボーレートジェネレータと、
    を備えることを特徴とする請求項1記載のシリアル通信システム。
  3. 前記同期フィールド検出回路は、
    送信クロックの周期の2倍の周期の前記同期信号の4パルス分の時間をカウントする同期信号カウント回路と、
    前記同期信号カウント回路のカウント値の1/8の値を演算するシフト回路と、を備え、
    前記データフィールド周期検出回路は、
    前記送信クロックの周期の10倍の前記データフィールドの時間をカウントするデータフィールドカウント回路と、
    前記データフィールドカウント回路のカウント値から前記送信クロックの周期の1/10の時間を演算する除算回路と、を備えることを特徴とする請求項2記載のシリアル通信システム。
  4. 前記データフィールドカウント回路は、前記データフィールドの時間を10進法でカウントするBCDカウント回路であり、
    前記除算回路は、BCDカウント回路のカウント値を4ビットシフト演算するシフト回路であることを特徴とする請求項3記載のシリアル通信システム。
  5. 前記同期信号カウント回路と前記データフィールドカウント回路は共通であることを特徴とする請求項3記載のシリアル通信システム。
  6. 伝送路を介して送信ノードに接続され、前記送信ノードとの間でシリアル通信を行う受信装置であって、
    1フレームが、開始フィールドと、同期フィールドと、複数のデータフィールドと、を有し、
    前記開始フィールドおよび前記同期フィールドは、前記送信ノードから送信され、
    受信した前記同期フィールドの情報に基づいて、前記複数のデータフィールドの送信または受信を行い、
    前記同期フィールドの信号に応じてボーレートを設定し、設定した前記ボーレートで、前記複数のデータフィールドの送信または受信を行い、
    前記データフィールドの時間長を検出して、前記ボーレートを更新し、
    前記受信装置は、
    受信信号の前記同期フィールドにおける同期信号の周期を検出し、受信クロックの周期が、検出した前記同期信号の周期に対応するように、受信クロックの生成のためのクロックの分周比を設定する同期フィールド検出回路と、
    前記受信信号の各データフィールドの周期を検出し、前記受信クロックの周期が、検出した前記データフィールドの周期に対応するように前記分周比を変更するデータフィールド周期検出回路と、
    前記分周比の設定値を、1番目の前記データフィールドの間は、前記同期フィールド検出回路の設定した分周比に、2番目の前記データフィールド以降には、前記データフィールド周期検出回路が変更した分周比に切り替えるセレクタと、
    を備えることを特徴とする受信装置。
  7. 前記クロックを出力するクロック生成器と、
    前記クロックを前記分周比で分周して前記受信クロックを生成するボーレートジェネレータと、
    を備えることを特徴とする請求項6記載の受信装置。
  8. 前記同期フィールド検出回路は、
    送信クロックの周期の2倍の周期の前記同期信号の4パルス分の時間をカウントする同期信号カウント回路と、
    前記同期信号カウント回路のカウント値の1/8の値を演算するシフト回路と、を備え、
    前記データフィールド周期検出回路は、
    前記送信クロックの周期の10倍の前記データフィールドの時間をカウントするデータフィールドカウント回路と、
    前記データフィールドカウント回路のカウント値から前記送信クロックの周期の1/10の時間を演算する除算回路と、を備えることを特徴とする請求項7記載の受信装置。
  9. 前記データフィールドカウント回路は、前記データフィールドの時間を10進法でカウントするBCDカウント回路であり、
    前記除算回路は、BCDカウント回路のカウント値を4ビットシフト演算するシフト回路であることを特徴とする請求項8記載の受信装置。
  10. 前記同期信号カウント回路と前記データフィールドカウント回路は共通であることを特徴とする請求項8記載の受信装置。
  11. 送信ノードおよび少なくとも1つの受信ノードを伝送路で接続したシリアル通信システムにおけるシリアル通信方法であって、
    1フレームが、開始フィールドと、同期フィールドと、複数のデータフィールドと、を有し、
    前記開始フィールドおよび前記同期フィールドは、前記送信ノードから送信され、
    前記複数のデータフィールドは、前記送信ノードまたは前記少なくとも1つの受信ノードから送信され、
    前記少なくとも1つの受信ノードは、
    前記同期フィールドの信号に応じてボーレートを設定し、設定した前記ボーレートで前記複数のデータフィールドの送信または受信を行い、
    前記データフィールドの時間長を検出して、前記ボーレートを更新し、
    前記受信ノードは、
    受信信号の前記同期フィールドにおける同期信号の周期を検出し、受信クロックの周期が、検出した前記同期信号の周期に対応するように、受信クロックの生成のためのクロックの分周比を第1の値に設定し、
    前記受信信号の各データフィールドの周期を検出し、前記受信クロックの周期が、検出した前記データフィールドの周期に対応するように前記分周比を第2の値に変更し、
    前記分周比の設定値を、1番目の前記データフィールドの間は、前記第1の値に、2番目の前記データフィールド以降には、前記第2の値に切り替えることを特徴とするシリアル通信方法。

JP2013062432A 2013-03-25 2013-03-25 シリアル通信システム、受信装置およびシリアル通信方法 Active JP6205152B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013062432A JP6205152B2 (ja) 2013-03-25 2013-03-25 シリアル通信システム、受信装置およびシリアル通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013062432A JP6205152B2 (ja) 2013-03-25 2013-03-25 シリアル通信システム、受信装置およびシリアル通信方法

Publications (2)

Publication Number Publication Date
JP2014187633A JP2014187633A (ja) 2014-10-02
JP6205152B2 true JP6205152B2 (ja) 2017-09-27

Family

ID=51834715

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013062432A Active JP6205152B2 (ja) 2013-03-25 2013-03-25 シリアル通信システム、受信装置およびシリアル通信方法

Country Status (1)

Country Link
JP (1) JP6205152B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111181815A (zh) * 2020-03-11 2020-05-19 苏州纳芯微电子股份有限公司 自动波特率检测电路及其检测方法
US20230210822A1 (en) 2020-05-21 2023-07-06 Shionogi & Co., Ltd. Pharmaceutical composition for treating fatty liver disease
CN114615104B (zh) * 2022-03-14 2023-11-28 鹍骐科技(北京)股份有限公司 一种基于国产化fpga实现的智能串口通讯方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0435537A (ja) * 1990-05-31 1992-02-06 Fujitsu Ltd 受信ボーレート自動設定方式
JPH06224891A (ja) * 1993-01-28 1994-08-12 Tamura Seisakusho Co Ltd クロック再生回路
US6263033B1 (en) * 1998-03-09 2001-07-17 Advanced Micro Devices, Inc. Baud rate granularity in single clock microcontrollers for serial port transmissions
JP2007324679A (ja) * 2006-05-30 2007-12-13 Nec Electronics Corp シリアル通信用ボーレートジェネレータ
JP2011234128A (ja) * 2010-04-27 2011-11-17 Yazaki Corp シリアル通信用ボーレート検出装置およびシリアル通信用ボーレート補正装置ならびにシリアル通信用ボーレート検出方法

Also Published As

Publication number Publication date
JP2014187633A (ja) 2014-10-02

Similar Documents

Publication Publication Date Title
US7620075B2 (en) Serial communication system with baud rate generator
JP5369814B2 (ja) 受信装置および受信装置の時刻修正方法
US11177896B2 (en) Time synchronization device and time synchronization method
US9300421B2 (en) Methods to achieve accurate time stamp in IEEE 1588 for system with FEC encoder
JP2011234128A (ja) シリアル通信用ボーレート検出装置およびシリアル通信用ボーレート補正装置ならびにシリアル通信用ボーレート検出方法
CN110520815A (zh) 加精确时间戳的方法和系统
EP3576354B1 (en) Slave node for a can bus network
CN113612564A (zh) 一种报文处理的方法和网络设备
US11349587B2 (en) Generating a timestamp
CN113810145A (zh) 接收端时间戳准确性
JP2007274122A (ja) パラレル変換回路
JP6205152B2 (ja) シリアル通信システム、受信装置およびシリアル通信方法
US20160065358A1 (en) Synchronization method, intermediate node, and slave node of communication network system
JP2011035473A (ja) ボーレートエラー検出回路、ボーレートエラー検出方法
JP2011172144A (ja) 同期信号検出装置
US9569296B2 (en) Receiver bit alignment for multi-lane asynchronous high-speed data interface
JP4582932B2 (ja) 同期補正回路
US9111042B1 (en) 1588 deterministic latency with gearbox
JP4736775B2 (ja) シリアル通信装置
JP2008005123A (ja) 映像データ送信装置、映像データ受信装置および映像データ伝送システム
CN111357243B (zh) 总线系统的用户设备、运行方法及总线系统
CN116545582A (zh) 基于串行收发器的数据传输方法、收发器、介质及设备
JP2015198399A (ja) 通信装置
CN112640355B (zh) 一种mac装置及时间点估算方法
CN102208973B (zh) 一种数据流传输的方法和装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20160118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160229

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170821

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170904

R150 Certificate of patent or registration of utility model

Ref document number: 6205152

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250