(57)【特許請求の範囲】
【請求項１】
データ伝送媒体から受信する所定のデータに基づいて同期クロックを生成し、この同期クロックに同期してその後に受信される受信データのビットごとの符号を判定するシリアル通信装置であって、
前記所定のデータを構成するビット列の１ビット区間よりも十分に短いパルス幅のカウントパルスを発生するカウントパルス発生手段と、
前記所定のデータの始端から終端までの間で発生した前記カウントパルスの数をカウントするカウント手段と、
前記カウント手段によりカウントされた前記カウントパルス数を前記ビット列のビット数２ｎ（ｎは正の整数）で除した商Ｑおよびその余りＳに基づいて前記１ビット区間の１ビット長を決定するビット長決定手段と、
前記ビット長決定手段により決定された１ビット長に従った所定タイミングで前記同期クロックを生成する同期クロック生成手段と
を備え、
前記余りＳの最大値を表現可能なビット数がｍであり、また前記受信データのビット数が２ｎ（ｎは正の整数）である場合において、
前記ビット長決定手段は、
前記受信データの上位（２ｎ−ｍ）ビットに対しては、前記商Ｑを前記１ビット区間の１ビット長として決定し、
前記受信データの下位ｍビットに対しては、前記商Ｑから１を減算した値を前記１ビット区間の１ビット長として決定することを特徴とするシリアル通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送媒体を介して受信される所定のデータに基づいて同期クロックを生成し、この同期クロックに同期してその後に送受信される送受信データのビットごとの符号を判定するシリアル通信装置に関し、例えばＵＡＲＴ（Universal Asynchronous Receiver Transmitter ）に関するものである。
【背景技術】
【０００２】
ＵＡＲＴに関する技術として、例えば、下記、特許文献１や非特許文献１に開示されるＬＩＮ（Local Interconnect Network）プロトコルに従うものがある。その一例として、例えば、図９(A) に示すように、ＬＩＮプロトコルでは、シンクフィールド（Synch Field ）と称される同期ビットの符号を、「０」と「１」とが交互に現れる「０１０１…」のパターン（0x55）に設定することで、このシンクフィールドの受信可能期間において１ビット区間の長さ（１ビット長）を計測しこれに基づいて同期クロックを生成している。
【０００３】
即ち、シンクフィールド１０ビットのうち、前後の１ビット（スタートビットとストップビット）を除いた８ビットについて着目した例では、通常、１ビット区間において、この１ビット区間よりも十分に短いパルス幅のカウントパルスがＮカウント（例えば１００カウント）されたとすると、図９(B) に示すように、スタートビットからストップビットまでの間の８ビット分をカウントすれば８Ｎカウント（例えば８００カウント）になる。そのため、この８Ｎをビット数の８で除すると（８Ｎ／８＝Ｎ）、１ビット区間にカウントされたカウントパルス数Ｎが得られるので、カウントパルスのパルス幅にこのＮを乗じると１ビット長が算出される。これにより、例えば、この半分（１ビット長のほぼ中心）のタイミングで受信データの各ビットごとの符号を判定すれば、ほぼ安定したデータの受信が可能になるとされている。
【特許文献１】特開２００５−２５４４０号公報
【非特許文献１】株式会社サニー技研、”ＨＯＭＥ＞製品情報＞ＬＩＮツール＞ＬＩＮとは＞基準クロックの調整”、［online］、［平成１７年１２月１３日検索］、インターネット＜ＵＲＬ：http://www.sunnygiken.co.jp/lintool-aboutex/lintool_clock.htm＞
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記、特許文献１や非特許文献１に開示される技術によると、例えば、データ伝送媒体から受信されるデータに「ジッタ」や「ゆらぎ」といった同期ビットの波形に歪み等を与える現象が発生した場合には、シンクフィールド中の所定のデータも波形歪み等を生じ得る。このような場合には、例えば、図９(C) に示すように、８ビット中の最後の１ビットにおいて１パルス分不足してカウントされるので、本来、８ビット分で８Ｎカウント（例えば８００カウント）されるべきものが、８Ｎ−１（例えば８００−１＝７９９）しかカウントされないことがある。
【０００５】
このため、この（８Ｎ−１）をビット数の８で除すると（（８Ｎ−１）／８）、１パルス分不足したことによる剰余（余り）が切り捨てられて、演算結果は（Ｎ−１）となる。先の例では、７９９／８＝９９の余り７で、剰余７が切り捨てられる結果、全てのビットに対する１ビット長に１パルス分の誤差が生じる。つまり「２ｎ（ｎは正の整数）で除する」という情報処理は、カウントレジスタの値を下位ビット側にｎビットシフトさせることに相当するので、カウントレジスタの最下位側から溢れ出たｎビット分の消失により切り捨て処理が行われて、１ビット長に誤差を与えることになる。
【０００６】
したがって、このような場合には、１ビット区間の長さに誤差が含まれたまま、これに基づいて同期クロックが生成されることから、このような誤差が蓄積されると、受信データの符号判定に誤りが生じ得るという問題がある。例えば、本来の１ビット長が１００パルス分に相当する場合には、そのほぼ半分にあたる５０パルス分のタイミングで、受信データの符号判定が行われるが、このような誤差が５０パルス近く蓄積されると、データ波形の符号変位タイミングの前後で判定することになるので、誤った符号判定を招来する。
【０００７】
このような問題は、カウントパルスの周波数を上げて１ビット区間内でカウントするパルス数を桁違い（例えば１０００パルス）に増加させれば、解決し得るものではあるが、このようなカウントパルスの高周波化は、ラジオノイズとしてラジオ受信機や無線通信機器等に影響を与えるおそれがあるため、新たな技術的問題の発生につながる。
【０００８】
また、ＬＩＮプロトコル等を処理するハードウェアモジュールは、いわゆるＬＩＮトランシーバとしてＬＳＩ化されていることが多く、カウントパルスの発生は主にＣＲ発振回路で行われる。そのため、カウントパルスの高周波化に伴って要求される発振周波数の高精度化に対応するためには、発振周波数を決めるコンデンサや抵抗の値を高精度に管理し、また温度特性係数も管理する必要があることから、このようなコンデンサや抵抗が製品コストの上昇という新たな問題を招き得る。
【０００９】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、カウントパルスの周波数を上げることなく、誤った符号判定を抑制し得るシリアル通信装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、特許請求の範囲に記載の請求項１のシリアル通信装置では、
データ伝送媒体から受信する所定のデータに基づいて同期クロックを生成し、この同期クロックに同期してその後に受信される受信データのビットごとの符号を判定するシリアル通信装置であって、
前記所定のデータを構成するビット列の１ビット区間よりも十分に短いパルス幅のカウントパルスを発生するカウントパルス発生手段と、
前記所定のデータの始端から終端までの間で発生した前記カウントパルスの数をカウントするカウント手段と、
前記カウント手段によりカウントされた前記カウントパルス数を前記ビット列のビット数２ｎ（ｎは正の整数）で除した商Ｑおよびその余りＳに基づいて前記１ビット区間の１ビット長を決定するビット長決定手段と、
前記ビット長決定手段により決定された１ビット長に従った所定タイミングで前記同期クロックを生成する同期クロック生成手段と
を備え、
前記余りＳの最大値を表現可能なビット数がｍであり、また前記受信データのビット数が２ｎ（ｎは正の整数）である場合において、
前記ビット長決定手段は、
前記受信データの上位（２ｎ−ｍ）ビットに対しては、前記商Ｑを前記１ビット区間の１ビット長として決定し、
前記受信データの下位ｍビットに対しては、前記商Ｑから１を減算した値を前記１ビット区間の１ビット長として決定することを技術的特徴とする。
【発明の効果】
【００１３】
請求項１の発明では、カウントパルス発生手段により所定のデータを構成するビット列の１ビット区間よりも十分に短いパルス幅のカウントパルスを発生させ、所定のデータの始端から終端までの間で発生したカウントパルスの数をカウント手段によりカウントする。そして、ビット長決定手段よって、カウント手段によりカウントされたカウントパルス数をビット列のビット数２ｎで除した商Ｑおよびその余りＳに基づいて１ビット区間の１ビット長を決定し、このビット長決定手段により決定された１ビット長に従った所定タイミングで同期クロック生成手段により同期クロックを生成する。これにより、１ビット区間の１ビット長は、カウントパルス数をビット列のビット数２ｎで除した商Ｑに加えてその余りＳも含めたものに基づいて決定されるので、当該余りＳを切り捨てた場合に比べて１ビット長の演算精度を上げることが可能となる。したがって、このような演算精度の高い１ビット長に基づいて同期クロックが生成されるので、カウントパルスの周波数を上げなくても、誤った符号判定を抑制することができる。
【００１５】
そして、請求項１の発明では、このような余りＳも含めたものに基づいて決定される具体例として、余りＳの最大値を表現可能なビット数がｍであり、また受信データのビット数が２ｎ（ｎは正の整数）である場合において、ビット長決定手段は、受信データの上位（２ｎ−ｍ）ビットに対しては、商Ｑを１ビット区間の１ビット長として決定し、受信データの下位ｍビットに対しては、商Ｑから１を減算した値を１ビット区間の１ビット長として決定する。
これにより、受信データの上位（２ｎ−ｍ）ビットに対しては１ビット長を商Ｑ＋１とし、受信データの下位ｍビットに対しては商Ｑとする。したがって、従来のようにこのような余りＳを全て切り捨てて１ビット長を商Ｑとしていた場合に比べて１ビット長の演算精度を上げることが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明のシリアル通信装置を、ＬＩＮプロトコルによる車載ＬＡＮ（Local Area Network）システムのＬＩＮトランシーバに適用した実施形態を図に基づいて説明する。まず、本実施形態に係る車載ＬＡＮシステムの構成を図１を参照して説明する。図１には車載ＬＡＮシステムの構成概要を示すブロック図が示されている。
【００１７】
図１に示すように、車載ＬＡＮシステムは、マスタノードＭｎと、これに従属する１以上のスレーブノードＳｎとを含んで構成されるネットワークシステムで、通信プロトコルとして、ＬＩＮプロトコルを採用している。なお、ＬＩＮプロトコルは、ＯＳＩ（Open Systems Interconnection）の基本参照モデルにおけるレイヤ１〜３に対応しており、マスタノードＭｎやスレーブノードＳｎは、ＬＩＮバスケーブル１００を介して最大１９．２kbpsのボーレートで通信可能に構成されている。
【００１８】
マスタノードＭｎは、例えば、車両のボディー系を制御するＥＣＵ（Electronic Control Unit）で、ＭＰＵ１０、ＬＩＮトランシーバ２０等を備えている。また、スレーブノードＳｎは、例えば、車両の計器パネル等を制御するＥＣＵで、マスタノードＭｎとほぼ同様に、ＭＰＵ１２、ＬＩＮトランシーバ２０等を備えている。ＭＰＵ１０、１２は、通信機能部としてＬＩＮコントローラを内蔵しているマイクロコンピュータで、図略のメモリ、インターフェース等を備えている。
【００１９】
マスタノードＭｎは、マスタノードおよびスレーブノードのいずれとしても機能する必要上、そのＭＰＵ１０は、マスタノードの機能を実現するマスタタスクＭｔとスレーブノードの機能を実現するスレーブタスクＳｔの双方を備えている。これに対し、スレーブノードＳｎのＭＰＵ１２は、専らスレーブノードとして機能するので、そのＭＰＵ１２は、スレーブノードの機能を実現するスレーブタスクＳｔを備えている。
【００２０】
ＬＩＮトランシーバ２０は、ＩＳＯ９１４１に準拠したＬＩＮ用のインターフェースで、ＭＰＵ１０、１２とＬＩＮバスケーブル１００との間に介在することで、両者間における信号電圧の違い等を変換可能なドライバ機能を有し、後述するように、物理層におけるビットタイミングやビット同期の確立を可能にしている。
【００２１】
なお、前述したＭＰＵ１０、１２によるＬＩＮコントローラは、例えば、ＯＳＩのネットワーク層、データリンク層および物理層の一部の機能、例えば、ネットワークコンフィグレーション、タイムトリガースケジューリング、通信方式、同期方式、リカバリ管理、メッセージ確認、誤り検出／報告方法等の各機能を提供するもので、ソフトウェア的には、マスタタスクＭｔやスレーブタスクＳｔとして機能し得る。
【００２２】
次に、マスタノードＭｎとスレーブノードＳｎとの間で伝送されるメッセージフレームの構成を図２を参照して説明する。ＬＩＮプロトコルでは、マスタノードＭｎの指示がない限りスレーブノードＳｎがデータを送信しない「シングルマスタ方式」を採る。例えば、メッセージフレームとして、マスタノードＭｎからスレーブノードＳｎに送信されるヘッダと、スレーブノードＳｎからマスタノードＭｎに送信されるレスポンスとが存在し、スレーブノードＳｎは、自分のアドレスに対応したアドレス情報を含むヘッダを受信した場合に限りレスポンスをマスタノードＭｎに送信する。
【００２３】
ここで、マスタノードＭｎからスレーブノードＳｎに送信されるヘッダについて説明する。ヘッダは、前述したマスタノードＭｎのマスタタスクＭｔによって生成されるメッセージフレームで、図２に示すように、シンクブレークＳＢ（Sync Break）、シンクフィールドＳＦ（Sync Field）、アイデントフィールドＩＦ（Ident Field）という３種類のフィールドで構成されている。
【００２４】
シンクブレークＳＢは、１３ビットで構成されており、ヘッダの始まりを表す情報である。シンクフィールドＳＦは、「０」と「１」とが交互に現れる「０１０１…」のパターン（0x55）の１０ビットで構成されており、ＬＩＮトランシーバ２０では、このシンクフィールドＳＦの受信可能期間において１ビット区間の長さ（１ビット長）を計測しこれに基づいて同期クロックＳynCLK を生成したり、同期クロックＳynCLK に生じ得る周波数の誤差を調整可能にしている。
【００２５】
アイデントフィールドＩＦは、１０ビットで構成されており、ＩＤ、データ長およびパリティビットから構成される。アイデントフィールドＩＦのＩＤは、マスタノードＭｎの指示によってレスポンスを送信することができるスレーブノードＳｎの識別情報、つまりアドレス情報のことで、４ビット分割り当てられている。
【００２６】
一方、スレーブノードＳｎからマスタノードＭｎに送信されるレスポンスは、スレーブノードＳｎのスレーブタスクＳｔやマスタノードＭｎのスレーブタスクＳｔによって生成されるメッセージフレームで、データフィールドＤＦ（Data Field）、チェックサムＣＳ（CheckSum）という２種類のフィールドで構成されている。
【００２７】
データフィールドＤＦは、スタートビットとストップビットとを含めて１０ビットで構成されており、１バイト分のデータを格納している。このデータフィールドＤＦは、前述したアイデントフィールドＩＦのデータ長によりマスタノードＭｎから指示されたバイトに相当するだけ用意されている。チェックサムＣＳは、データフィールドＤＦに対する誤り検出用のビット列で、例えばモジュロ２５６の計算式の演算結果をビット反転したものに相当する。
【００２８】
次に、図２で参照したシンクフィールドＳＦの同期ビットに基づいて同期クロックＳynCLK を生成するＬＩＮトランシーバ２０の同期処理部の構成等を、図３〜図５を参照して説明する。なお、図３には、ＬＩＮトランシーバ２０による同期処理部の構成を示すブロック図が示されており、また図４には、同期処理部のビット長決定部３０の一構成例等が図示されている。さらに、図５には、ビット長決定部３０の処理内容を示す説明図が示されている。
【００２９】
図３に示すように、ＬＩＮトランシーバ２０の同期処理部は、主に、カウントパルス発生部２１、ビット長カウント部２３、ビット長決定部３０、同期クロック生成部２７、シフトレジスタ２９により構成されている。なお、カウントパルス発生部２１は特許請求の範囲に記載の「カウントパルス発生手段」、ビット長カウント部２３は特許請求の範囲に記載の「カウント手段」、ビット長決定部３０は特許請求の範囲に記載の「ビット長決定手段」、同期クロック生成部２７は特許請求の範囲に記載の「同期クロック生成」、にそれぞれ相当し得るものである。
【００３０】
即ち、ＬＩＮバスケーブル１００が接続される通信端子Ｃｔには、受信されたデータＲdtを順次格納するシフトレジスタ２９と、シンクフィールドＳＦを構成する同期ビット８ビット分の長さをカウントするビット長カウント部２３と、がそれぞれ接続されており、またこのビット長カウント部２３には、同期ビットの１ビット区間よりも十分に短いパルス幅（例えば同期ビットの１ビット区間の５０分の１〜１０００分の１）のカウントパルスＣｐを発生させるカウントパルス発生部２１が接続されている。これにより、ビット長カウント部２３では、カウントパルス発生部２１から入力されるカウントパルスＣｐに基づいて、８ビット分の同期ビットのスタートビット（始端）からストップビット（終端）までの間で発生したカウントパルスＣｐの数をカウントする。なお、カウントパルスＣｐは、［背景技術］の欄で説明したカウントパルス（図９(A) ）に相当する。また、同期ビットは、特許請求の範囲に記載の「所定のデータ」に相当し得るものである。
【００３１】
ビット長カウント部２３の出力には、ビット長決定部３０が接続されている。このビット長決定部３０は、ビット長カウント部２３によりカウントされたカウントパルス数を同期ビットのビット数２ｎ（ｎは正の整数）で除した商Ｑおよびその余りＳに基づいて１ビット区間の１ビット長を決定するものである。本実施形態では、スタートビットとストップビットとを除いた同期ビットのビット数は８ビット（２３（ｎ＝３））であるので、ビット長決定部３０では、ビット長カウント部２３によりカウントされたカウントパルス数を８で除する（割る）演算処理を行う。ここで、ビット長決定部３０の一構成例を図４を参照して説明する。
【００３２】
図４に示すように、ビット長決定部３０は、７つの全加算器ＦＡａ、ＦＡｂ、ＦＡｃ、ＦＡｄ、ＦＡｅ、ＦＡｆ、ＦＡｇを直列に接続して構成される７桁（ビット）の全加算部３１で構成されており、ビット長カウント部２３のカウントレジスタ２３ａに対して次のように接続されている。なお、カウントレジスタ２３ａには、ビット長カウント部２３によりカウントされたカウントパルス数がセットされている。
【００３３】
即ち、ビット長決定部３０は、全加算部３１の最下位桁に当たるＦＡｇの一方の入力を、ビット長カウント部２３のカウントレジスタ２３ａのＬＳＢから３ビット目、つまり余りＳの最上位ビットに接続し、またこのＦＡｇの他方の入力を、同ＬＳＢから４ビット目、つまり商Ｑの最下位ビットに接続している。そして、このＦＡｇの桁上がり出力を、その上位桁のＦＡｆの一方の入力に接続し、このＦＡｆの他方の入力を、カウントレジスタ２３ａのＬＳＢから５ビット目に接続している。また、このＦＡｆの桁上がり出力を、次の上位桁のＦＡｅの一方の入力に接続し、このＦＡｅの他方の入力を、カウントレジスタ２３ａのＬＳＢから６ビット目に接続している。
【００３４】
以下同様に、ＦＡｄ、ＦＡｃ、ＦＡｂ、ＦＡａについても、下桁からの桁上がり出力を一方の入力に接続し、他方の入力には、カウントレジスタ２３ａのＬＳＢから７ビット目、８ビット目、９ビット目、１０ビット目を、それぞれ順番に接続している。そして、ＦＡｇ、ＦＡｆ、ＦＡｅ、ＦＡｄ、ＦＡｃ、ＦＡｂ、ＦＡａによる７ビットの出力を、同期クロック生成部２７のビット長レジスタ（７ビット）２７ａのＬＳＢからＭＳＢに向かって順番に接続している。なお、ビット長カウント部２３のカウントレジスタ２３ａの最下位ビットであるＬＳＢとその上位ビットであるＬＳＢから２ビット目には、ビット長決定部３０が接続されていない。
【００３５】
このようにビット長決定部３０をビット長カウント部２３のカウントレジスタ２３ａに接続することで、カウントレジスタ２３ａの下位３ビットについては、ＦＡｇに入力される値が「１」でない限り無視される。このため、結果的にカウントレジスタ２３ａを３（＝ｎ）ビット分ＬＳＢ側にシフトしたこと、つまり同期ビットのビット数８（＝２ｎ）で除したこととなり、その余りＳに相当する下位３ビットのうちの最上位ビット（図４に示す斜線部分）が「１」である場合に限って「１」を加算する演算処理が可能となる。
【００３６】
即ち、図５(A) に示すように、ビット長決定部３０は、カウントレジスタ２３ａにセットされるカウントパルス数の余りＳを表す３ビットのうちの最上位ビットの符号が「０」であるときには、商Ｑを１ビット区間の１ビット長として決定し、余りＳを表す３ビットのうちの最上位ビットの符号が「１」であるときには、商Ｑに１を加算した値を１ビット区間の１ビット長として決定する。つまり、余りＳを表す３ビットのうちの最上位ビットの符号が「０」のときには当該余りＳを切り捨て、最上位ビットの符号が「１」のときには当該余りＳを切り上げて１ビット長を決定する。
【００３７】
これにより、図５(B) に示すように、例えば、余り（剰余）Ｓが３ビットで表現され、０（０００Ｂ）〜７（１１１Ｂ）の範囲で値をとる場合には、そのうち、０以上３以下（０００Ｂ〜０１１Ｂ）の余りＳは切り捨てて１ビット長を商Ｑ−１とし、４以上７以下（１００Ｂ〜１１１Ｂ）の余りＳは切り上げて１ビット長を商Ｑとするので（括弧内の「ｘｘｘＢ」は２進数表現を示す）、本来、ビット長カウント部２３により１ビット区間で１００カウントされるものであれば（Ｎ＝１００）、ジッタ等によりカウントパルスＣｐが１〜４パルス分不足してシンクフィールドＳＦの長さが８Ｎ−１〜８Ｎ−４になっても、その商Ｑ＋１にあたるＮ＝１００（＝９９＋１）が１ビット長として決定される。
【００３８】
このため、このような余りＳを全て切り捨ててしまう従来方式の演算処理に比べると、従来の誤差が最大７／８であったものを本実施形態では最大４／８まで減少させることが可能となる。なお、このようにビット長決定部３０によって決定される同期ビットの１ビット長は、ビット長決定部３０から同期クロック生成部２７のビット長レジスタ２７ａに出力される。
【００３９】
図４に示すように、同期クロック生成部２７は、ビット長決定部３０の出力に接続されており、ビット長レジスタ２７ａにセットされている値に従って所定のタイミングで立ち上がりエッジを形成するクロックパルスを生成する。例えば、本実施形態の場合、ビット長レジスタ２７ａにセットされている値のほぼ半分、例えば１００がセットされている場合には１００／２＝５０のタイミングで、立ち上がりエッジを形成するクロックパルスを生成して同期クロックＳynCLK としてシフトレジスタ２９に出力する。これにより、シフトレジスタ２９では、順次格納した受信データＲdtをこの同期クロックＳynCLK の立ち上がりエッジに従って順次取り出すことで、受信データＲdtのビットごとの符号を判定することが可能となる。
【００４０】
このように本実施形態に係るＬＩＮトランシーバ２０では、第１の具体例として、余りＳの最大値を表現可能なビット数がｍ（ｍは正の整数）である場合において、ビット長決定部３０は、余りＳを表すｍビットのうちの最上位ビットの符号が「０」であるときには、商Ｑを１ビット区間の１ビット長として決定し、余りＳを表すｍビットのうちの最上位ビットの符号が「１」であるときには、商Ｑに１を加算した値を１ビット区間の１ビット長として決定する。これにより、余りＳを表すｍビットのうちの最上位ビットの符号が「０」のときには当該余りＳを切り捨て、最上位ビットの符号が「１」のときには当該余りＳを切り上げて１ビット長を決定する。
【００４１】
つまり、ビット長決定部３０では、０〜２ｍ−１の範囲の間で値をとる余りＳのうち、０以上（２（ｍ−１）−１）以下の余りは切り捨てて１ビット長を商Ｑ−１とし、２（ｍ−１）以上（２ｍ−１）以下の余りは切り上げて１ビット長を商Ｑとする。このため、従来のようにこのような余りＳを全て切り捨てて１ビット長を商Ｑとしていた場合に比べるとビット長決定部３０による１ビット長の演算精度を上げることが可能となり、同期クロック生成部２７では、このような演算精度の高い１ビット長に基づいて同期クロックＳynCLK を生成することが可能になる。したがって、カウントパルスＣｐの周波数を上げなくても、誤った符号判定を抑制することができる。
【００４２】
次に、上述した同期処理部を構成するビット長決定部３０の他の構成例（第２の具体例）について、図６〜図８を参照して説明する。なお、上述した構成例（第１の具体例）と実質的に同一の構成部分については同一符号を付し説明を省略する。図６には、同期処理部のビット長決定部３０の他の構成例等が図示されており、また図７には、図６に示すビット長決定部３０’の動作を補足説明するタイミングチャートが図示されている。さらに図８には、ビット長決定部３０’の処理内容を示す説明図が示されている。
【００４３】
図６に示すように、ビット長決定部３０’は、加算部３３、セレクタ部３５、ビットカウント部３７から構成されており、カウントレジスタ２３ａの商Ｑにあたる各ビットに対して加算部３３およびセレクタ部３５がそれぞれ接続されているほか、余りＳにあたる各ビットに対してビットカウント部３７が接続されている。これにより、前述したビット長決定部３０に比べて余りＳの値に従った柔軟な演算処理を可能にしている。
【００４４】
ビット長決定部３０’の加算部３３は、入力された値に「１」を加算する加算回路を７回路並列に備えて構成されるもので、これら７ビット分の入力には、カウントレジスタ２３ａのＬＳＢから４ビット目、５ビット目、６ビット目、７ビット目、８ビット目、９ビット目、１０ビット目、つまり商Ｑに相当する各ビットがそれぞれ接続されている。
【００４５】
セレクタ部３５は、外部から入力される選択信号の値（Ｈ／Ｌ）に従って、一方の入力と他方の入力とを排他的に選択可能なセレクタ回路を７回路並列（ＳＥＬａ、ＳＥＬｂ、ＳＥＬｃ、ＳＥＬｄ、ＳＥＬｅ、ＳＥＬｆ、ＳＥＬｇ）に備えて構成されるものである。これらセレクタ回路（ＳＥＬａ〜ＳＥＬｇ）の一方の入力には、７ビット分の加算部３３の出力がそれぞれ接続されており、また他方の入力には、商Ｑの各ビット（カウントレジスタ２３ａのＬＳＢから４ビット目〜１０ビット目）がそれぞれ接続されている。さらに、これらセレクタ回路（ＳＥＬａ〜ＳＥＬｇ）の各出力は、同期クロック生成部２７のビット長レジスタ２７ａのＭＳＢからＬＳＢに向かって順番に接続されている。
【００４６】
ビットカウント部３７は、３ビット入力のデータ値を外部入力されるビット信号のタイミングに同期してカウント可能なビットカウンタで、カウントの完了をＨレベルの信号で出力するものである。このビットカウント部３７の３ビット入力には、カウントレジスタ２３ａのＬＳＢから１ビット目〜３ビット目が接続されており、またこのビットカウント部３７の出力は、セレクタ部３５の各セレクタ回路（ＳＥＬａ〜ＳＥＬｇ）の選択信号入力に接続されている。これにより、ビットカウント部３７の出力からＨレベルの信号がセレクタ部３５の選択信号として出力されると、各セレクタ回路（ＳＥＬａ〜ＳＥＬｇ）では、同出力からＬレベルの信号が出力されていたときに選択していた一方の入力から他方の入力に出力を切り替える。
【００４７】
このようにビット長決定部３０’を構成することで、例えば、図７に示すように、通信端子Ｃｔから入力される受信データＲdt（図７(A) ）のエッジ検出のタイミングで生成されるビット信号（図７(B) ）に同期してカウントレジスタ２３ａの余りＳ（カウントレジスタ２３ａのＬＳＢから１ビット目〜３ビット目）をビットカウント部３７がカウントする。すると、セレクタ部３５は、ビットカウント部３７が余りＳの値をカウントしている間は、加算部３３を介して入力される商Ｑの各ビット（カウントレジスタ２３ａのＬＳＢから４ビット目〜１０ビット目）を出力し、カウントが完了した後は、加算部３３を介することなく直接セレクタ部３５に入力される商Ｑの各ビットを出力する。
【００４８】
例えば、余りＳに５（１０１Ｂ）がセットされていた場合、ビットカウント部３７は、ビット信号に同期して１，２，３，４，５をカウントしている間は、Ｌレベルの出力信号をセレクタ部３５の各セレクタ回路（ＳＥＬａ〜ＳＥＬｇ）に出力するので（図７(C) ）、この期間中はセレクタ部３５から加算部３３を介して商Ｑ＋１（＝Ｎ）が同期クロック生成部２７のビット長レジスタ２７ａに出力される（図７(D) ）。そして、このカウントが完了すると、それまでＬレベルの信号を出力していたビットカウント部３７はＨレベルの信号をセレクタ部３５の各セレクタ回路（ＳＥＬａ〜ＳＥＬｇ）に出力するので（図７(C) ）、この後はセレクタ部３５から加算部３３を介することなく商Ｑ（＝Ｎ−１）が同期クロック生成部２７のビット長レジスタ２７ａに出力される（図７(D) ）。
【００４９】
即ち、図８(A) に示すように、シンクフィールドＳＦにおいて、ジッタ等によりカウントパルスＣｐの不足する同期ビットが複数箇所に発生しても、１ビット長＝（８Ｎ−３）／８＝Ｎ−１＋余り５カウントというように、カウントパルスＣｐが不足しない同期ビットＮが５ビット、カウントパルスＣｐが不足する同期ビットＮ−１が３ビット、としてわかるので、余りＳをビットカウント部３７でカウントしこのカウント期間中だけ商Ｑ＋１（＝Ｎ）をビット長レジスタ２７ａに出力し、カウント完了後は商Ｑ（＝Ｎ−１）をビット長レジスタ２７ａに出力するようにビット長決定部３０’を構成する。これにより、データフィールドＤＦの前５ビットにおいては、同期クロック生成部２７のビット長レジスタ２７ａにＮ（例えば１００）がセットされ、データフィールドＤＦの後３ビットにおいては、ビット長レジスタ２７ａにＮ−１（例えば１００−１＝９９）がセットされる。
【００５０】
このため、図８(B) に示すように、同期クロック生成部２７では、データフィールドＤＦの前５ビットにおいてＮ（例えば１００）のほぼ半分のタイミングで立ち上がりエッジを形成するクロックパルスを生成し、データフィールドＤＦの後３ビットにおいてＮ−１（例えば９９）のほぼ半分のタイミングで立ち上がりエッジを形成するクロックパルスを生成して同期クロックＳynCLK としてシフトレジスタ２９に出力することができる。これにより、カウントパルスＣｐの不足する同期ビットが複数箇所に発生していても、この複数箇所分のタイミングのずれを当該箇所数に対応して調整し吸収するので、シフトレジスタ２９では、順次格納した受信データＲdtをこのように調整される同期クロックＳynCLK の立ち上がりエッジに従って順次取り出すことで、受信データＲdtのビットごとの符号を安定して判定することが可能となる。
【００５１】
このように本実施形態に係るＬＩＮトランシーバ２０では、第２の具体例として、余りＳの最大値を表現可能なビット数がｍ（ｍは正の整数）であり、また受信データＲdtのビット数が２ｎ（ｎは正の整数）である場合において、ビット長決定部３０’は、受信データＲdtの上位（２ｎ−ｍ）ビットに対しては、商Ｑを１ビット区間の１ビット長として決定し、受信データＲdtの下位ｍビットに対しては、商Ｑから１を減算した値を１ビット区間の１ビット長として決定する。これにより、受信データＲdtの上位（２ｎ−ｍ）ビットに対しては１ビット長を商Ｑ＋１とし、受信データＲdtの下位ｍビットに対しては商Ｑとする。したがって、従来のようにこのような余りＳを全て切り捨てて１ビット長を商Ｑとしていた場合や前述の第１の具体例に比べて余りＳの値に対応して柔軟に１ビット長の演算精度を上げることが可能になるので、カウントパルスＣｐの周波数を上げなくても、誤った符号判定をより一層抑制することができる。
【図面の簡単な説明】
【００５２】
【図１】本発明の一実施形態に係るＬＩＮトランシーバに接続される車載ＬＡＮの構成概要を示すブロック図である。
【図２】本実施形態に係るＬＩＮトランシーバにより伝送されるメッセージフレーム（ヘッダおよびレスポンス）のデータフォーマットを示すデータ構成図である。
【図３】本実施形態に係るＬＩＮトランシーバによる同期処理部の構成を示すブロック図である。
【図４】図３に示す同期処理部のビット長決定部の一構成例を中心にその周辺構成も含めて表したブロック図である。
【図５】図４に示すビット長決定部の処理内容を示す説明図で、図５(A) はビット長カウント部のレジスタにおける除算結果（商Ｑ、剰余Ｓ）の例、図５(B) は従来方式と図４に示すビット長決定部とによりそれぞれ決定されるビット長の比較例、を示す。
【図６】図３に示す同期処理部のビット長決定部の他の構成例を中心にその周辺構成も含めて表したブロック図である。
【図７】図６に示すビット長決定部の動作を補足説明するタイミングチャートで、図７(A) はＬＩＮバスから通信端子に入力される受信データの波形図、図７(B) はビットカウンタに入力されるビット信号の波形図、図７(C) はビットカウンタから出力されるカウント出力の波形図、図７(D) はビット長決定部から出力されるビット長出力の波形図、それぞれを示す。
【図８】図６に示すビット長決定部の処理内容を示す説明図で、図８(A) はビット長カウント部のレジスタにおける除算結果（商Ｑ、剰余Ｓ）の例、図８(B) は図６に示すビット長決定部からビット長出力に基づいて生成される同期クロックの例、を示す。
【図９】図９(A) はシリアル通信における同期ビットの１ビット長（１ビット区間）とこの１ビット長を測定するカウントパルスの例を示す説明図、図９(B) は８ビットの同期ビットで構成されるシンクフィールドの全体長（８Ｎ）をカウントした例を示す説明図で、図９(C) は同シンクフィールドの全体長（８Ｎ）をカウントしたところ１ビット不足している例（８Ｎ−１）を示す説明図である。
【符号の説明】
【００５３】
１０、１２…ＭＰＵ
２０…ＬＩＮトランシーバ（シリアル通信装置）
２１…カウントパルス発生部（カウントパルス発生手段）
２３…ビット長カウント部（カウント手段）
２３ａ…カウントレジスタ
２７…同期クロック生成部
２７ａ…ビット長レジスタ
２７ｂ…クロック生成部（同期クロック発生手段）
２９…シフトレジスタ
３０…ビット長決定部（ビット長決定手段）
３１…全加算部
３３…加算部
３５…セレクタ部
３７…ビットカウント部
１００…ＬＩＮバスケーブル（データ伝送媒体）
Ｃｐ…カウントパルス
ＤＦ…データフィールド
Ｍｎ…マスタノード
Ｑ…商
Ｒdt…受信データ
Ｓ…余り
ＳＦ…シンクフィールド（所定のデータ）
Ｓｎ…スレーブノード
ＳynCLK …同期クロック
【図１】
0004736775.tif 000002
【図２】
0004736775.tif 000003
【図３】
0004736775.tif 000004
【図４】
0004736775.tif 000005
【図５】
0004736775.tif 000006
【図６】
0004736775.tif 000007
【図７】
0004736775.tif 000008
【図８】
0004736775.tif 000009
【図９】
0004736775.tif 000010