(57)【要約】【課題】外乱ノイズがバスラインに入力されたとしても、復号化を誤る虞を低減できるようにして通信を通常通り成立できるようにした通信装置を提供する。【解決手段】ロウ幅書込制御部２７は、レベルタイマ３２により計測される前回の計測値ＲＥＧ＿Ｌと今回の計測値ＴＬとの比較に基づいて、第１メモリ２５に記憶される論理１Ｌ幅ＲＥＧ＿Ｌを更新する（Ｓ１７〜Ｓ１９）。これによりサンプリングポイントＳＰは、レベルタイマ３２による前回の計測値ＲＥＧ＿Ｌ及び今回の計測値ＴＬの大小に応じて適切に更新設定されるようになる。このため、外乱ノイズがバスライン５に入力されたとしても、復号化を誤る虞を低減できる。【選択図】図７
2020028010.tif 000002
【特許請求の範囲】
【請求項１】
バスライン（５）に流れる２値レベルの一方から他方のレベルに変化したタイミングから当該他方のレベルの継続時間を計測する第１計測部（３２）と、
前記第１計測部の計測値を記憶する第１記憶部（２５）と、
前記第１記憶部の記憶値（ＲＥＧ＿Ｌ）にマージン時間（ＴＢ×ＭＪ）を加算した復号閾値（Ｔth）に対応したサンプリングポイント（ＳＰ）を設定する設定部（３０）と、
前記サンプリングポイントの前記復号閾値が前記第１計測部の計測値（ＴＬ）以下の場合には第１符号であると判定し、前記サンプリングポイントの前記復号閾値が前記第１計測部の計測値より大きい場合には第２符号であると判定する復号化部（１５、１１５）と、を備え、
前記設定部は、前記第１記憶部の記憶値（ＲＥＧ＿Ｌ）と前記第１計測部により計測される今回の計測値（ＴＬ）との比較に基づいて前記サンプリングポイントの前記復号閾値を繰り返し更新設定する通信装置。
【請求項２】
前記バスラインに流れる２値レベルの周期エッジ（ＰＥ）の周期（ＴＢ）を計測する第２計測部（３１）と、
前記第２計測部により計測された前記周期エッジの前記周期（ＴＢ）に基づいて、前記設定部が前記サンプリングポイントを設定するための前記マージン時間（ＴＢ×ＭＪ）を算出するマージン時間算出部（２９）と、
前記マージン時間を記憶するマージン時間記憶部（２６）と、
前記マージン時間記憶部に記憶された前回のマージン時間（ＲＥＧ＿ＴＢ）と、前記マージン時間算出部により算出された今回のマージン時間（ＴＢ×ＭＪ）とを比較することに基づいて、前記マージン時間を繰り返し更新するマージン時間更新部（２９）と、
をさらに備える請求項１記載の通信装置。
【請求項３】
前記バスラインに流れる２値レベルの周期エッジ（ＰＥ）の周期（ＴＢ）を計測する第２計測部（３１）と、
前記第２計測部により計測された前記周期を更新する周期更新部（２９）と、をさらに備える請求項１または２記載の通信装置。
【請求項４】
前記第１記憶部の記憶値（ＲＥＧ＿Ｌ）を更新する他方レベル継続時間更新部（２７）をさらに備える請求項１から３の何れか一項に記載の通信装置。
【請求項５】
前記第１記憶部の記憶値のビット化けを検出するビット化け検出部（３６）をさらに備える請求項１から４の何れか一項に記載の通信装置。
【請求項６】
前記ビット化け検出部により前記ビット化けが検出されたときには、前記バスラインの前記他方のレベルの継続時間の計測値を前記第１記憶部に初期化して記憶させる初期化部（３５、２７、Ｓ１４、Ｓ１３）をさらに備える請求項５記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関する。
【背景技術】
【０００２】
例えば車載通信システムは、ＣＡＮ、ＬＩＮ等のネットワークを通じてマスタスレーブ方式により通信する方式を採用している（例えば、特許文献１参照）。この特許文献１は、所謂ＣＸＰＩ（Clock Extension Peripheral Interface）通信における復号化手法を提案している。この種のＣＸＰＩ通信技術においては、マスタノード及びスレーブノードが共にバスラインに流れる信号についてＰＷＭ波形からロウレベル（Ｌ）となる時間幅を計測することに基づいてデータを復号化している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−３０１２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この特許文献１記載の技術を採用した場合、バスラインに流れる信号のエッジを検出することでデータを復号化できる。このとき、外乱ノイズがバスラインに入力されてしまうと、当該バスラインにチャタリングが発生してしまい、ロウ信号の時間幅を計測しても正しく計測できない。この計測時間幅は次周期のサンプリングに用いられる。このため、通信装置が時間幅を誤って学習してしまうと、次周期以降、誤サンプリングを生じる虞がある。すなわち、本来、論理値「１」と復号化すべきところを論理値「０」と復号化してしまう虞がある。
【０００５】
本発明の目的は、外乱ノイズがバスラインに入力されたとしても、復号化を誤る虞を低減できるようにしつつ通信を成立できるようにした通信装置を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１記載の発明は、第１計測部、第１記憶部、設定部、及び復号化部を備える。第１計測部は、バスラインに流れる２値レベルの一方から他方のレベルに変化したタイミングから当該他方のレベルの継続時間を計測する。第１記憶部は、第１計測部の計測値を記憶する。設定部は、第１記憶部の記憶値にマージン時間を加算した復号閾値に対応したサンプリングポイントを設定する。復号化部は、サンプリングポイントの復号閾値が第１計測部の計測値以下の場合には第１符号であると判定し、サンプリングポイントの復号閾値が第１計測部の計測値より大きい場合には第２符号であると判定する。そして設定部は、第１記憶部の記憶値と第１計測部により計測される今回の計測値との比較に基づいてサンプリングポイントの復号閾値を繰り返し更新設定する。設定部は、第１記憶部の記憶値（前回の記憶値）と第１計測部により計測される今回の計測値との比較に基づいてサンプリングポイントの復号閾値を繰り返し更新設定することになるため、これらの計測値の大小に応じてサンプリングポイントを適切に更新設定できるようになる。このため、外乱ノイズがバスラインに入力されたとしても、復号化を誤る虞を低減できる。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態に係る通信システムの概略構成を示すブロック図
【図２】バスラインに伝達される信号の説明図
【図３】マスタノードとスレーブノードの概略構成を示すブロック図
【図４】信号処理部とトランシーバとの間で送受信するフレームの構成図
【図５】スレーブノードにおける符号化回路の動作説明図
【図６】復号化回路のブロック構成図
【図７】ロウ幅書込制御部及びビット化け検出演算回路による処理内容を説明するフローチャート
【図８】ビット化け検出演算回路の動作説明図
【図９】処理内容を時間的な流れで説明するタイミングチャート
【図１０】比較例の説明図
【図１１】第２実施形態に係る復号化回路のブロック構成図
【図１２】マージン書込制御部による処理内容を説明するフローチャート
【発明を実施するための形態】
【０００８】
以下、通信装置の幾つかの実施形態について図面を参照しながら説明する。各実施形態において実質的に同一又は類似部分には同一符号を付して必要に応じて説明を省略し、各実施形態では特徴部分を中心に説明する。
【０００９】
（第１実施形態）
図１は、通信システムＳｙの電気的構成図を概略的に示している。車両内には、複数の通信ノード１〜４が搭載されており、これらの通信ノード１〜４がバスライン５に接続されることにより、通信システムＳｙが構築されている。これらの通信ノード１〜４のうち、何れか一つがマスタノード１として動作し、他の通信ノード２〜４がスレーブノード２〜４として動作する。このため、図１には、通信ノード１をマスタノード１とし、通信ノード２〜４をスレーブノードと示している。
【００１０】
これらの通信ノード１〜４は、車両のボディ系のアプリケーションを実行するための電子制御装置（ＥＣＵ（Electronic Control Unit））、または、車両の状態を検出するための各種センサ又は各種スイッチにより構成される。例えば、ボディ系のＥＣＵとしては、ボディワイパＥＣＵ、スライドドアＥＣＵ、ミラーＥＣＵ、等の各種ＥＣＵを挙げることができる。また各種センサ又は各種スイッチとしては、レインセンサ、ワイパスイッチ、ライトスイッチなどを挙げることができる。
【００１１】
バスライン５は、車載ネットワークを構築するための通信線であり、これらの通信ノード１〜４は、バスライン５を通じて互いにデータ通信可能になっている。図２は、各通信ノード１〜４の間でバスライン５を通じて送受信する２値レベルの伝送信号波形を示している。このバスライン５に流れる２値レベルは、ビットを規定する境界に位置して一方から他方のレベルに変化するエッジ（例えば立下りエッジ）を備えると共に、ビットの途中で信号レベルが他方から一方のレベル（例えばロウレベル「Ｌ」からハイレベル「Ｈ」）に変化するＰＷＭ信号を用いており、デューティ比の異なるＰＷＭ信号を用いて論理「１」／論理「０」を表現する。以下では、論理「０」をドミナントとし、論理「１」をレセッシブとして説明する。以下では、「一方のレベル」をハイレベル「Ｈ」とし、「他方のレベル」をロウレベル「Ｌ」として説明を行うが、これは逆でも良い。
【００１２】
ドミナントは、ロウレベル「Ｌ」の期間が長くハイレベル「Ｈ」の期間が短くなるように規定されており、レセッシブは、ロウレベル「Ｌ」の期間が短くハイレベル「Ｈ」の期間が長い。詳細には、ドミナントのＰＷＭ信号のロウレベル「Ｌ」の期間は、レセッシブのＰＷＭ信号のロウレベル「Ｌ」の期間に比較して６％以上長くなるように規定されている。バスライン５においては、レセッシブとドミナントが衝突するとドミナントが優先するようになっている。このとき受信側の通信ノード（例えば２〜４）は、サンプリングポイントＳＰを適切に設定することでドミナント／レセッシブを正確に受信できる。
【００１３】
このバスライン５では、レセッシブが許容ビット以上（本実施形態では１１ビット以上）連続している期間をＩＦＳ（Inter Frame Space）と称し、ＩＦＳが検出されている状態がアイドル状態とされている。そして、この通信システムＳｙにおいては、バスライン５がアイドル状態となっているときに、各通信ノード１〜４がデータを送信可能に規定されており、送信開始後に調停負けを検出した通信ノード（例えば３）は送信処理を停止し、調停勝ちした通信ノード（例えば２）だけが送信処理を継続する。すなわち、この通信システムＳｙは所謂ＣＳＭＡ／ＣＡ方式のアクセス制御を採用している。
【００１４】
また、複数の通信ノード１〜４の間で送受信に用いるフレームは、送信許可するデータを指定するためのヘッダと、ヘッダにより指定されたデータを送信するための可変長のレスポンスとを備える。ヘッダはデータの識別子を備えており、この識別子の値に応じてバス調停の勝敗を決定する。他方、レスポンスは本来のデータを含むと共に、このデータ以外に、データのサイズを示すサイズ情報、エラーの有無をチェックするためのパリティ符号などを含んでいる。
【００１５】
マスタノード１は、他の通信ノード２〜４に前述のＰＷＭ信号に基づく論理１Ｌ幅を有するレセッシブをバスライン５にクロックとして供給する。スレーブノード２〜４はバスライン５を介して供給される前記クロックに同期した通信を実行する。
【００１６】
図３は、マスタノード１とスレーブノード２のブロック構成を概略的に示している。マスタノード１及びスレーブノード２〜４は、ほとんど同一の構成を備えているため、同一部分には同一符号を付して説明を行う。またスレーブノード２〜４は同一構成であるため、以下においては、スレーブノード２の構成だけ説明し、他のスレーブノード３〜４の構成説明を省略する。
【００１７】
図３に示すように、マスタノード１及びスレーブノード２は、信号処理部１１及びトランシーバ１２を備える。トランシーバ１２は、調停回路１３、符号化回路１４、復号化回路１５からなるデジタル処理部１６と、送信バッファ１７と、受信バッファ１８と、発振回路２３と、タイミング制御回路２４と、を備える。復号化回路１５は、復号化部として機能するブロックである。
【００１８】
信号処理部１１は、ＣＰＵ１９、非遷移的実体的記録媒体としてのメモリ２０、及びＩ／Ｏ２１を備えたマイクロコンピュータを主として構成され、シリアル通信を実現するＵＡＲＴ（Universal Asynchronous Receiver Transmitter）による通信部２２を備えている。メモリ２０は、ＲＡＭなどの揮発性メモリ、及び、ＲＯＭ、ＥＥＰＲＯＭなどの不揮発性メモリにより構成される。
【００１９】
発振回路２３は、例えばＣＲ発振回路などを用いてクロック信号を生成し、タイミング制御回路２４にクロック信号を供給する。
【００２０】
タイミング制御回路２４は、デジタル処理部１６の動作に必要なタイミングを制御する。このタイミング制御回路２４は、発振回路２３が発生させたクロックを分周することで当該発振回路２３の内部クロックに同期したタイミング信号を生成する回路であり、例えば複数のインバータをリング状に接続することで構成されたリングオシレータ（図示せず）を用いて構成される。このタイミング信号としては、通信データを表す各ビットの周波数（ボーレート）に比較して大幅に高い周波数の信号を生成する。マスタノード１のタイミング制御回路２４は、通信部２２によるビットレートと概ね同速度（±１％程度）に設定された内部クロックを供給する。
【００２１】
図４は、信号処理部１１とトランシーバ１２との間で送受信するフレームの構成を示している。この図４に示すように、信号処理部１１は、データの開始を示すスタートビットＳｔａと、データの終了を示すストップビットＳｔｏと、これらの間の８ビットのデータとで構成された合計１０ビットのブロックデータを１単位として送受信する。この８ビットのデータのうち、先頭がＬＳＢ、末尾がＭＳＢとなるように設定されている。前述のフレームを構成するヘッダは、一つのブロックデータにより構成され、８ビットのデータのうち７ビットが識別子として用いられると共に、残りの１ビットがパリティビットとして用いられる。またレスポンスは、１又は複数のブロックデータにより構成され、サイズ情報が送信最初のブロックデータに記録される。
【００２２】
信号処理部１１は、ＮＲＺ符号による送信データＴＸＤをトランシーバ１２の符号化回路１４に出力する。符号化回路１４は、信号処理部１１から供給される送信データＴＸＤをＰＷＭ信号の送信データＴＸに符号化し、送信バッファ１７を通じてバスライン５に出力する。
【００２３】
詳細に記述すると、符号化回路１４は、マスタノード１とスレーブノード２とで異なる処理を行う。マスタノード１の符号化回路１４は、信号処理部１１から供給される送信データＴＸＤが論理「１」となるときにはレセッシブとなるように、ロウレベル「Ｌ」の時間の短い（すなわちデューティ比の小さな）ＰＷＭ信号を生成する。マスタノード１の符号化回路１４は、送信データＴＸＤが論理「０」であるときには、ドミナントとなるように、ロウレベル「Ｌ」の時間の長い（すなわちデューティ比の大きな）ＰＷＭ信号を生成する。そして、符号化回路１４は、送信データＴＸとして送信バッファ１７を通じてバスライン５に出力する。
【００２４】
マスタノード１の符号化回路１４は、信号処理部１１から供給される送信データＴＸＤがないときには、論理「１」に対応したレセッシブとなるように、ロウレベル「Ｌ」の時間の短い（すなわちデューティ比の小さな）ＰＷＭ信号を送信データＴＸとしてバスライン５に出力する。すなわちマスタノード１は、送信すべきデータがないときにはレセッシブをバスライン５に出力する。
【００２５】
他方、スレーブノード２において、信号処理部１１の通信部２２は、その送信データＴＸＤを論理「０」とする場合には、図５に示すように、１ビットの全期間中にロウレベル「Ｌ」を符号化回路１４に出力する。また信号処理部１１の通信部２２は、その送信データＴＸＤを論理「１」とする場合には、１ビットの全期間中にハイレベル「Ｈ」を符号化回路１４に出力する。
【００２６】
スレーブノード２の符号化回路１４は、信号処理部１１から供給される送信データＴＸＤが論理「１」であり、送信データＴＸＤが１ビット期間中にハイレベル「Ｈ」となっているときにはバスライン５への出力をハイレベル「Ｈ」に維持する。これにより、バスライン５の信号レベルは、マスタノード１の出力に依存することになる。
【００２７】
逆に、スレーブノード２の符号化回路１４は、信号処理部１１から供給される送信データＴＸＤが論理「０」であり、送信データＴＸＤが１ビット期間中にロウレベル「Ｌ」となっていると、バスライン５の立下りエッジを検出したタイミングから送信データＴＸをロウレベル「Ｌ」とし、その後、ドミナントのロウレベル「Ｌ」の継続時間を計測し、この計測時間を経過したタイミングでハイレベル「Ｈ」に変化する信号を送信データＴＸとして出力する。
【００２８】
すると、マスタノード１がレセッシブを出力しているバスライン５に、スレーブノード２が送信データＴＸを重畳させると、当該送信データＴＸが論理「１」のときに、バスライン５にはレセッシブが出力されることになり、論理「０」のときには、バスライン５にドミナントが出力されることになる。
【００２９】
例えば図５に示すように、マスタノード１は、通常アイドル状態とされている間、クロックとしてレセッシブをバスライン５に出力し続ける。マスタノード１が、レセッシブを連続出力することでアイドル状態としている最中に、スレーブノード２がドミナントを出力することで、スレーブノード２がバスライン５にドミナントを出力できる。
【００３０】
また図３に示すように、マスタノード１及びスレーブノード２において、トランシーバ１２の復号化回路１５は、バスライン５から受信バッファ１８を通じて取得したＰＷＭ信号の受信データＲＸを、ＮＲＺ符号による受信データＲＸＤに復号化して信号処理部１１の通信部２２に入力させる。
【００３１】
このとき復号化回路１５は、受信データＲＸの立下りタイミングを起点としてロウレベル「Ｌ」（他方の電圧レベル相当）の継続時間を計測し、このロウレベル「Ｌ」の継続時間をサンプリングポイントＳＰに対応した復号閾値Ｔthと比較し、サンプリングポイントＳＰの復号閾値Ｔthがロウレベル「Ｌ」の継続時間以下の場合には論理「１」（第１符号相当）と判定し、サンプリングポイントＳＰの復号閾値Ｔthがロウレベル「Ｌ」の継続時間より大きい場合には論理「０」（第２符号相当）と判定して復号化する。このサンプリングポイントＳＰは、復号閾値Ｔthに対応したサンプリングタイミングを示す。
【００３２】
そして復号化回路１５は、この復号化結果を信号処理部１１に出力する。なお調停回路１３は、送信データＴＸＤと受信データＲＸＤとをビット単位で比較し、信号レベルが不一致となるときには符号化回路１４への送信データＴＸＤの供給を停止し、自通信ノード（例えば２）を受信モードとするように構成されている。信号処理部１１は、他の通信ノード（例えば３）から得られた情報等に基づいて自通信ノード（例えば２）に割り当てられた各種処理を実行する。
【００３３】
図６は、復号化回路１５の構成例を示している。復号化回路１５は、第１記憶部としての第１メモリ２５、マージン時間記憶部としての第２メモリ２６、他方レベル継続時間更新部及び初期化部としてのロウ幅書込制御部２７、加算器２８、マージン時間算出部及びマージン時間更新部としてのマージン書込制御部２９、設定部としての比較器３０、第２計測部としてのビットタイマ３１、第１計測部としてのレベルタイマ３２、エッジ検出部３３、比較器３４、３５と共に、ビット化け検出部としてのビット化け検出演算回路３６、及び演算結果レジスタ３７を備える。比較器３５は初期化部として機能するブロックである。
【００３４】
第１メモリ２５は、レセッシブのロウレベル「Ｌ」の継続時間（以下、論理１Ｌ幅と称す）を記憶するメモリであり、ロウ幅書込制御部２７により書換制御される。論理「１」が復号化される度に、第１メモリ２５には論理１Ｌ幅が逐次更新される。
【００３５】
第２メモリ２６は、ドミナントにおけるロウレベル「Ｌ」の継続時間（以下、論理０Ｌ幅と称す）と、前記の論理１Ｌ幅との差に基づいて規定されるマージン時間ＴＢ×ＭＪ（％）を記憶するメモリであり、マージン書込制御部２９により書換制御される。マージンＭＪ（％）は、論理０Ｌ幅と論理１Ｌ幅との差に基づいて予め規定されている６％以下の所定値であり、誤サンプリングを防止するために設けられるマージン比率である。第２メモリ２６には、マージン時間ＴＢ×ＭＪ（％）が１ビット毎に逐次更新される。
【００３６】
加算器２８は、第１メモリ２５の記憶値ＲＥＧ＿Ｌと第２メモリ２６の記憶値ＲＥＧ＿ＴＢとを加算して復号閾値Ｔthを算出し、比較器３０に出力する。エッジ検出部３３は、受信データＲＸの立下りエッジ及び立上りエッジを検出し、レベルタイマ３２に出力する。また、エッジ検出部３３は受信データＲＸの検出された立下りエッジをビットタイマ３１に出力する。本形態において、「立下りエッジ」は、受信データＲＸの１ビット周期毎に発生するため周期エッジＰＥと称する。「立上りエッジ」は、受信データＲＸのレセッシブ／ドミナントに応じてタイミング変化するためデータエッジＤＥと称する。
【００３７】
ビットタイマ３１は、受信データＲＸのうち２つの連続する周期エッジＰＥの間の時間ＴＢを計測し、この時間ＴＢをマージン書込制御部２９に出力し、マージン書込制御部２９は、この時間ＴＢにマージンＭＪ（％）を乗じて算出したマージン時間ＴＢ×ＭＪ（％）を第２メモリ２６に記憶させる。
【００３８】
他方、レベルタイマ３２は、受信データＲＸの周期エッジＰＥから次のデータエッジＤＥまでの時間ＴＬを計測し、この計測された時間ＴＬを比較器３０及び３４並びにロウ幅書込制御部２７に出力する。比較器３０は、レベルタイマ３２により計測された時間ＴＬと加算器２８の復号閾値Ｔthを入力した後、その次の周期エッジＰＥが到来するまでの所定のタイミングにて比較することで受信データＲＸＤを出力する。
【００３９】
サンプリングポイントＳＰの復号閾値Ｔthは、前記のマージン時間ＴＢ×ＭＪ（％）を周期エッジＰＥから次のデータエッジＤＥまでの時間ＴＬに加算した時間ＴＬ＋ＴＢ×ＭＪ（％）に設定される。このとき、比較器３０は、レベルタイマ３２の計測値ＴＬがサンプリングポイントＳＰの復号閾値Ｔth以下のときには論理「１」と判定して復号化し、サンプリングポイントＳＰの復号閾値Ｔthを超えるときには論理「０」と判定して復号化して受信データＲＸＤを出力する。
【００４０】
ビット化け検出演算回路３６は、第１メモリ２５の記憶値ＲＥＧ＿Ｌがビット化けを生じているか否かを検出するための演算処理を常時行い、この演算結果を演算結果レジスタ３７に記憶させる。したがって、例えば第１メモリ２５の記憶値ＲＥＧ＿Ｌが更新される度に、ビット化け検出演算回路３６の演算結果が演算結果レジスタ３７に更新される。
【００４１】
ロウ幅書込制御部２７は、論理１Ｌ幅を第１メモリ２５に記憶、削除、また更新するよう構成されている。ロウ幅書込制御部２７は、レベルタイマ３２から計測値ＴＬを入力する度に、図７に示す処理を実行する。この図７において、ロウ幅書込制御部２７は、論理１Ｌ幅が第１メモリ２５に記憶済みであるか否かを判定し（Ｓ１１）、記憶されていなければ、カウンタＣＮＴを０にしてクリアする（Ｓ１２）。このカウンタＣＮＴは、ロウ幅書込制御部２７に内蔵されており、ドミナント（論理「０」）が連続した回数をカウントする。また論理１Ｌ幅が第１メモリ２５に記憶されていなければ、レベルタイマ３２から出力された計測値ＴＬを論理１Ｌ幅として第１メモリ２５に記憶させることで初期化し（Ｓ１３）、書込制御を終了する。
【００４２】
またロウ幅書込制御部２７は、Ｓ１１において論理１Ｌ幅が第１メモリ２５に記憶されていると判定した場合（Ｓ１１：ＹＥＳ）、論理１Ｌ幅の値がビット化けを生じているか否かについて比較器３５の判定結果を参照し（Ｓ１４）、ビット化けを生じていれば、再度、Ｓ１２、Ｓ１３において、レベルタイマ３２から供給された計測値ＴＬを論理１Ｌ幅として第１メモリ２５に記憶させる。これにより、第１メモリ２５に記憶された前回の論理１Ｌ幅ＲＥＧ＿Ｌを初期化できる。
【００４３】
ロウ幅書込制御部２７は、論理１Ｌ幅が正しく記憶されていると判定すると、Ｓ１４にてＮＯと判定する。この後、ロウ幅書込制御部２７は、比較器３０により出力される受信データＲＸＤが論理「１」であるか否かを判定し（Ｓ１５）、論理「１」であるときにはＳ１６〜Ｓ２２の処理を実行する。
【００４４】
ロウ幅書込制御部２７は、カウンタＣＮＴをクリアし（Ｓ１６）、比較器３４が、第１メモリ２５の記憶値ＲＥＧ＿Ｌ（以下、必要に応じて前回の論理１Ｌ幅ＲＥＧ＿Ｌと称す）と、今回の論理１Ｌ幅の計測値ＴＬとを比較する（Ｓ１７）。前回の論理１Ｌ幅ＲＥＧ＿Ｌが今回の論理１Ｌ幅の計測値ＴＬよりも大きいときには（Ｓ１７でＹＥＳ）、ロウ幅書込制御部２７は、前回の論理１Ｌ幅ＲＥＧ＿Ｌ−１ＬＳＢを計算し（Ｓ１８）、この計算した論理１Ｌ幅を第１メモリ２５の記憶値ＲＥＧ＿Ｌとして更新して（Ｓ１９）終了する。
【００４５】
またロウ幅書込制御部２７は、Ｓ１７にて比較した結果、ＮＯと判定したときには、前回の論理１Ｌ幅ＲＥＧ＿Ｌが、今回の論理１Ｌ幅の計測値ＴＬと同じであるか否かを判定する（Ｓ２０）。ロウ幅書込制御部２７は、前回の論理１Ｌ幅ＲＥＧ＿Ｌと計測値ＴＬと同じと判定したときには（Ｓ２０：ＹＥＳ）、レベルタイマ３２の計測値ＴＬ（＝前回の論理１Ｌ幅ＲＥＧ＿Ｌ）を第１メモリ２５の記憶値ＲＥＧ＿Ｌに更新して（Ｓ２１、Ｓ１９）終了する。
【００４６】
さらに、ロウ幅書込制御部２７は、Ｓ１７、Ｓ２０にて比較した結果、前回の論理１Ｌ幅ＲＥＧ＿Ｌが、今回の論理１Ｌ幅の計測値ＴＬよりも小さいときには（Ｓ２０でＮＯ）、ロウ幅書込制御部２７は、前回の論理１Ｌ幅ＲＥＧ＿Ｌ＋１ＬＳＢを計算し（Ｓ２２）、第１メモリ２５の記憶値ＲＥＧ＿Ｌとして更新して（Ｓ１９）終了する。このＳ２２においては、第１メモリ２５の記憶値ＲＥＧ＿Ｌを、レベルタイマ３２の計測値ＴＬ（＝前回の論理１Ｌ幅ＲＥＧ＿Ｌ）と同じ値として更新しても良い。
【００４７】
またロウ幅書込制御部２７は、Ｓ１５において、比較器３０により出力される受信データＲＸＤが論理「０」であると判定したときには（Ｓ１５：ＮＯ）、カウンタＣＮＴをインクリメントし（Ｓ２３）、カウンタＣＮＴの値が予め設定された上限値（例えば１０）未満であるか否かを判定する（Ｓ２４）。この上限値は、論理「０」が１０ビット以上連続することがないことから定められた値であり、カウンタＣＮＴが上限値以上になっていれば第１メモリ２５の記憶値ＲＥＧ＿Ｌを削除して（Ｓ２５）、終了する。
【００４８】
この後、ロウ幅書込制御部２７が、この図７に記載の処理を多数回繰り返すことで、第１メモリ２５に記憶される論理１Ｌ幅ＲＥＧ＿Ｌが繰り返し更新されることになるが、このとき、論理１Ｌ幅ＲＥＧ＿Ｌがたとえ変化したとしても±１ＬＳＢずつしか変化しないことになる。このため、チャタリングノイズの影響を受けたとしても、微小に変化したサンプリングポイントＳＰを用いて論理「０」／論理「１」を判定することになり、誤サンプリングする虞をなくすことができる。しかも、論理１Ｌ幅ＴＬは、その前回の論理１Ｌ幅ＲＥＧ＿Ｌと比較して±１ＬＳＢ程度に相対的に学習できるようになり、誤サンプリングしない程度で学習できる。
【００４９】
＜ビット化け検出演算回路３６の処理内容＞
以下では、ビット化け検出演算回路３６が実行するビット化け検出処理の内容を図８を参照しながら説明する。ロウ幅書込制御部２７は、エッジ検出部３３が受信データＲＸの周期エッジＰＥを検出したことを条件として論理１Ｌ幅を第１メモリ２５に更新する（図８のタイミングｔ０、ｔ１０、ｔ２０）。
【００５０】
ビット化け検出演算回路３６は、第１メモリ２５の２ビットデータを参照して１の個数を常時算出する（図８のタイミングｔ１、ｔ１１、ｔ２１）。演算結果レジスタ３７は、ビット化け検出演算回路３６による演算結果を周期エッジＰＥの発生タイミングの直後のタイミングで記憶する（図８のタイミングｔ１、ｔ１１）。
【００５１】
比較器３５は、ビット化け検出演算回路３６により演算された演算結果と、演算結果レジスタ３７に記憶された演算結果とを比較、照合する。これらの演算結果が一致していれば、比較器３５は、ビット化けを生じていない旨を示すデータをロウ幅書込制御部２７に出力し、一致していなければ、比較器３５はビット化けを生じた旨を示すデータをロウ幅書込制御部２７に出力する。
【００５２】
このとき、第１メモリ２５の記憶データが、図８のタイミングｔ１２にて何らかの影響で変化した場合を考える。第１メモリ２５の記憶データが変化すると、ビット化け検出演算回路３６は、その変化した直後にパリティ演算処理する。しかし、この演算結果は、次の周期エッジＰＥの発生タイミングｔ２０の直後に演算結果レジスタ３７に格納されるため、タイミングｔ１２、ｔ１３の時点では演算結果レジスタ３７に格納されることはない。このため比較器３５が、これらの演算結果を比較、照合しても当該演算結果は一致していないため、論理１Ｌ幅のビット化けを生じたことをロウ幅書込制御部２７に出力する（図８のタイミングｔ１３〜参照）。これにより、ビット化け検出処理を確実に実行できる。
【００５３】
＜技術的意義＞
さらに、図９及び図１０を参照して技術的意義を説明する。図９は、本実施形態の構成の効果を説明するための比較例の説明図である。サンプリングポイントＳＰは、前記のマージン時間ＴＢ×ＭＪ（％）（＝所定時間Ｔａ）を周期エッジＰＥからデータエッジＤＥまでの時間ＴＬに加算したタイミングに設定される。
【００５４】
このとき、期間Ｔ１に示すように、計測値ＴＬが標準的に定められていれば、バスライン５の周期エッジＰＥから復号閾値Ｔth（＝（レベルタイマ３２の計測値ＴＬ）＋（ビットタイマ３１の計測値ＴＢ）×ＭＪ（％））を経過したタイミングをサンプリングポイントＳＰとして、バスライン５の信号をサンプリングすることになる。この図９の期間Ｔ１中に、バスライン５の信号がサンプリングポイントＳＰにてサンプリングされるとハイレベル「Ｈ」となる。このため受信データＲＸＤは、レセッシブとなる。
【００５５】
しかしながら、図９の期間Ｔ２中に示すように、バスライン５にチャタリングなどの外来ノイズを生じると、エッジ検出部３３は、誤差Δに基づく立下り／立上りエッジを検出してしまうことになる。この期間Ｔ２中においては、前回の期間Ｔ１中に計測されたビットタイマ３１の計測値ＴＢにマージン比率ＭＪ（％）を乗じたマージン時間ＴＢ×ＭＪ（％）を算出するため、マージン時間ＴＢ×ＭＪ（％）（＝所定時間Ｔａ）は通常通りの大きさとなる。期間Ｔ２中には、ビットタイマ３１が誤差Δに基づく２つの周期エッジＰＥの間の時間ＴＢを算出すると共に、レベルタイマ３２が誤差Δに基づく周期エッジＰＥとデータエッジＤＥとの間隔ＴＬを算出するため、この誤差Δの影響に応じて時間ＴＢも間隔ＴＬも短く算出されることになる。
【００５６】
このため、この誤差Δの影響に基づく短縮時間誤差を「Ｇ」とした場合、その後の期間Ｔ３におけるサンプリングポイントＳＰは、バスライン５の立下りタイミングから復号閾値Ｔth（＝｛（レベルタイマ３２の計測値ＴＬ）−Ｇ｝＋（ビットタイマ３１の計測値ＴＢ）×ＭＪ（％））に対応したサンプリングポイントＳＰとなる。このため、この短縮時間誤差Ｇが大きいと、サンプリングポイントＳＰが適切なタイミングとならず、本来は論理「１」（レセッシブ）であるにも関わらず、論理「０」（ドミナント）と判断されてしまうことになる。
【００５７】
これに対し、本実施形態によれば、図１０の期間Ｔ１１に示すように、バスライン５にチャタリングなどの外来ノイズを生じ、エッジ検出部３３が、誤差Δに基づき立下り／立上りエッジを検出したとしても、図７に示すＳ１６〜Ｓ１８の処理を行うことで、第１メモリ２５における論理１Ｌ幅の記憶値ＲＥＧ＿Ｌが１ＬＳＢ減少するだけである。この論理１Ｌ幅の記憶値ＲＥＧ＿Ｌが更新されれば、その後の期間Ｔ１２において、加算器２８が復号閾値Ｔthを更新することになる（図１０の期間Ｔ１２参照）。
【００５８】
図１０の期間Ｔ１２に示すように、サンプリングポイントＳＰは、バスライン５の信号の立下りタイミングから復号閾値Ｔth（＝（レベルタイマ３２の計測値ＴＬ）−１ＬＳＢ＋（ビットタイマ３１の計測値ＴＢ）×ＭＪ（％））を経過したサンプリングポイントＳＰとなる。このため、サンプリングポイントＳＰは、レベルタイマ３２による前回の論理１Ｌ幅ＲＥＧ＿Ｌ及び今回の計測値ＴＬの大小に応じて適切に更新設定できる。これにより、外乱ノイズがバスライン５に入力されたとしても、復号化を誤る虞を低減できる。
【００５９】
本形態の構成においては、復号閾値Ｔthは±１ＬＳＢだけ変更されることになるが、このサンプリングポイントＳＰは、前回の期間Ｔ１１におけるサンプリングポイントＳＰの時間と大きく異なることはない（図１０の期間Ｔ１２参照）。このため、サンプリングポイントＳＰが、マージン時間ＴＢ×ＭＪ（％）を全て喪失する方向に直ぐに変化してしまう虞をなくすことができる。
【００６０】
＜本実施形態のまとめ、効果＞
以上説明したように、本実施形態によれば、ロウ幅書込制御部２７は、レベルタイマ３２により計測される前回の論理１Ｌ幅ＲＥＧ＿Ｌと今回の計測値ＴＬとの比較に基づいて、第１メモリ２５に記憶される論理１Ｌ幅ＲＥＧ＿Ｌを更新することにより、サンプリングポイントＳＰの復号閾値Ｔthを更新設定する。サンプリングポイントＳＰは、レベルタイマ３２による前回の論理１Ｌ幅ＲＥＧ＿Ｌ及び今回の計測値ＴＬの大小に応じて適切に更新設定されるようになる。このため、外乱ノイズがバスライン５に入力されたとしても、復号化を誤る虞を低減できる。
【００６１】
またロウ幅書込制御部２７は、論理１Ｌ幅ＲＥＧ＿Ｌの更新処理を多数回繰り返すことで、第１メモリ２５に記憶される論理１Ｌ幅ＲＥＧ＿Ｌが徐々に更新されることになるが、このとき、論理１Ｌ幅ＲＥＧ＿Ｌがたとえ変化したとしても±１ＬＳＢずつしか変化しない。このため、バスライン５に流れる信号がチャタリングノイズの影響を受けたとしても、わずかに更新されたサンプリングポイントＳＰにて論理「０」／論理「１」を判定することになり、誤ってサンプリングされる虞をなくすことができる。しかも、論理１Ｌ幅ＴＬは、その前回の論理１Ｌ幅ＲＥＧ＿Ｌと比較して±１ＬＳＢを限度として相対的に学習できるようになり、誤サンプリングしない程度に学習できる。
【００６２】
第１メモリ２５の記憶値のビット化けを検出するビット化け検出演算回路３６を備えているため、第１メモリ２５に記憶された前回の論理１Ｌ幅ＲＥＧ＿Ｌに誤りがあったとしても、誤りを検出できる。
【００６３】
またビット化けがビット化け検出演算回路３６により検出されたときには、ロウ幅書込制御部２７がバスライン５のロウレベル「Ｌ」の継続時間の計測値ＴＬを第１メモリ２５に初期化して記憶させるため、たとえ第１メモリ２５に記憶された論理１Ｌ幅に誤りが生じたとしても、記憶される論理１Ｌ幅を初期化できる。
【００６４】
（第２実施形態）
図１１から図１２は、第２実施形態の追加説明図を示している。図１１は、復号化回路１５の別の構成例を復号化回路１１５として示している。この復号化回路１１５は、第１実施形態で説明した復号化回路１５の構成要素の他に、比較器４０を備える。
【００６５】
この比較器４０は、ビットタイマ３１の計測値ＴＢと第２メモリ２６に記憶されたマージン時間ＴＢ×ＭＪ（％）との比較結果をマージン書込制御部２９に出力するブロックである。マージン書込制御部２９は、ビットタイマ３１の計測値ＴＢ及び比較器４０の比較結果に基づいて第２メモリ２６にマージン時間ＴＢ×ＭＪ（％）を書込制御する。その他の構成は、第１実施形態と同様であるため説明を省略する。以下、第２メモリ２６に書込まれたマージン時間ＴＢ×ＭＪ（％）を必要に応じて「前回のマージン時間ＲＥＧ＿ＴＢ」と称する。
【００６６】
マージン書込制御部２９は、ビットタイマ３１から計測値ＴＢを入力する度に図１２に示される処理を実行する。この図１２において、マージン書込制御部２９は、第２メモリ２６に前回のマージン時間ＲＥＧ＿ＴＢが記憶されているか否かを判定し（Ｓ２１）、記憶されていなければ（Ｓ２１：ＮＯ）、ビットタイマ３１から入力された計測値ＴＢにマージンＭＪ（％）を乗じ、このマージン時間ＴＢ×ＭＪ（％）を第２メモリ２６に記憶させることで初期化する（Ｓ２２）。
【００６７】
マージン書込制御部２９は、前回のマージン時間ＲＥＧ＿ＴＢが記憶されていると判定した場合、Ｓ２１にてＹＥＳと判定する。この後、マージン書込制御部２９は、今回の計測値ＴＢにマージンＭＪ（％）を乗じることで、今回のマージン時間ＴＢ×ＭＪ％を算出し、比較器４０に出力する。比較器４０は、第２メモリ２６に記憶されている前回のマージン時間ＲＥＧ＿ＴＢと、今回のマージン時間ＴＢ×ＭＪ（％）とを比較し（Ｓ２３）、この比較結果をマージン書込制御部２９に出力する。
【００６８】
前回のマージン時間ＲＥＧ＿ＴＢが、今回のマージン時間ＴＢ×ＭＪ（％）よりも大きいときには（Ｓ２３でＹＥＳ）、マージン書込制御部２９は、前回のマージン時間ＲＥＧ＿ＴＢ−１ＬＳＢを算出し、第２メモリ２６にマージン時間ＲＥＧ＿ＴＢを更新して（Ｓ２４、Ｓ２５）終了する。すなわち、マージン書込制御部２９は、マージン時間ＲＥＧ＿ＴＢに１ＬＳＢに対応したクロック信号の時間だけ減算して第２メモリ２６に書込制御する。
【００６９】
またマージン書込制御部２９は、比較器４０の比較結果を入力してＳ２３でＮＯと判定したときには、前回のマージン時間ＲＥＧ＿ＴＢが今回のマージン時間ＴＢ×ＭＪ（％）と同じであるか否かを判定する（Ｓ２６）。これらの値が同じであるときには（Ｓ２６でＹＥＳ）、マージン書込制御部２９は、今回のマージン時間ＴＢ×ＭＪ（％）（＝前回のマージン時間ＲＥＧ＿ＴＢ）をマージン時間ＲＥＧ＿ＴＢとして第２メモリ２６に更新して（Ｓ２７、Ｓ２５）終了する。
【００７０】
さらに、Ｓ２３、Ｓ２６にて比較した結果、前回のマージン時間ＲＥＧ＿ＴＢが、今回のマージン時間ＴＢ×ＭＪ（％）よりも小さいときには（Ｓ２３、Ｓ２６で共にＮＯ）、マージン書込制御部２９は、前回のマージン時間ＲＥＧ＿ＴＢ＋１ＬＳＢを算出し、第２メモリ２６にマージン時間ＲＥＧ＿ＴＢを更新して（Ｓ２８、Ｓ２５）終了する。すなわち、マージン書込制御部２９は、マージン時間ＲＥＧ＿ＴＢに１ＬＳＢに対応したクロック信号の時間だけ加入して第２メモリ２６に書込制御する。マージン書込制御部２９は、このＳ２８において、ビットタイマ３１の計測値ＴＢから導出されたマージン時間ＴＢ×ＭＪ（％）（＝前回のマージン時間ＲＥＧ＿ＴＢ）と同じ値をマージン時間ＲＥＧ＿ＴＢとして第２メモリ２６に更新しても良い。
【００７１】
なお、第１実施形態と同様に、第２メモリ２６の記憶内容の第２のビット化け検出回路（図示せず）を新たに設け、この第２のビット化け検出回路が第２メモリ２６に記憶されたマージン時間ＲＥＧ＿ＴＢのビット化けを検出するようにしても良い。この場合、第２のビット化け検出回路が第２メモリ２６を参照し、ビット化けを生じていると判定したときには、マージン書込制御部２９が新たに算出したマージン時間ＴＢ×ＭＪ（％）を新たに第２メモリ２６に記憶させると良い。このような図１２に示す処理は繰り返される。
【００７２】
以上説明したように、本実施形態によれば、マージン書込制御部２９は、第２メモリ２６に記憶された前回のマージン時間ＲＥＧ＿ＴＢと、マージン書込制御部２９により算出された今回のマージン時間ＴＢ×ＭＪとを比較することに基づいて、マージン時間ＴＢ×ＭＪ（％）を繰り返し更新するようにしている。このため、マージン時間ＴＢ×ＭＪ（％）についても繰り返し更新できるようになり、マージン時間ＴＢ×ＭＪ（％）を繰り返し学習できる。
【００７３】
（他の実施形態）
前述実施形態に限定されるものではなく、例えば以下に示す変形又は拡張が可能である。
前述実施形態では、パリティチェックによる誤り検出技術を用いて説明したが、その他ＣＲＣ（Cyclic Redundancy Check）符号を用いて誤り検出することもできるし、ＥＣＣ（Error Correction Code）符号などを用いて誤り訂正する技術を用いて誤り訂正することもできる。前述実施形態では、第１符号を論理「１」とし、第２符号を論理「０」とした形態を示したが、これらは逆であっても良い。
【００７４】
また前述実施形態においては、論理１Ｌ幅を用いて判定しているが、これに代えて論理「１」のハイ「Ｈ」の時間幅を用いて判定しても良い。すなわち、前述実施形態では、一方のハイレベル「Ｈ」から他方のロウレベル「Ｌ」に変化したタイミングから他方のロウレベル「Ｌ」の継続時間を計測し、この計測値とサンプリングポイントＳＰの復号閾値Ｔthとを比較して論理「１」／論理「０」を判定する形態を説明したが、これに代えて、一方のロウレベル「Ｌ」から他方のハイレベル「Ｈ」に変化したタイミングから他方のハイレベル「Ｈ」の継続時間を計測し、この計測値とサンプリングポイントＳＰの復号閾値Ｔthとを比較して論理「１」／論理「０」を判定する通信装置にも適用できる。
【００７５】
前述の第２実施形態においては、マージン時間ＴＢ×ＭＪ（％）を学習する形態を示しているが、バスライン５のクロックの周期ＴＢについても同様に学習対象として第２メモリ２６などに繰り返し更新するようにしても良い。すなわち、マージン書込制御部２９が、ビットタイマ３１から計測値ＴＢを入力してクロックの周期ＴＢを計測し、第２メモリ２６にバスライン５のクロックの周期ＴＢを繰り返し更新処理する周期更新部として機能するように構成しても良い。この場合、周期ＴＢを繰り返し更新できるようになる。
前述実施形態においては、ロウレベル「Ｌ」の継続時間を計測するため、クロックをアップカウンタを用いてもダウンカウンタを用いても良い。ダウンカウンタを用いるときには周期エッジＰＥを検出したときに前回の初期値を改めてセットし、ロウレベル「Ｌ」をダウンカウントするとよい。
【００７６】
前述した複数の実施形態の構成、機能を組み合わせても良い。前述実施形態の一部を、課題を解決できる限りにおいて省略した態様も実施形態と見做すことが可能である。また、特許請求の範囲に記載した文言によって特定される発明の本質を逸脱しない限度において考え得るあらゆる態様も実施形態と見做すことが可能である。
【００７７】
本開示は、前述した実施形態に準拠して記述したが、本開示は当該実施形態や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範畴や思想範囲に入るものである。
【符号の説明】
【００７８】
図面中、５はバスライン、１５，１１５は復号化回路（復号化部）、２５は第１メモリ（第１記憶部）、２６は第２メモリ（マージン時間記憶部）、２７はロウ幅書込制御部（初期化部、第２更新部）、２９はマージン書込制御部（マージン時間算出部、マージン時間更新部、周期更新部）、３０は比較器（設定部）、３１はビットタイマ（第２計測部）、３２はレベルタイマ（第１計測部）、３５は比較器（初期化部）、３６はビット化け検出演算回路（ビット化け検出部）を示す。
【図１】
2020028010.tif 000003
【図２】
2020028010.tif 000004
【図３】
2020028010.tif 000005
【図４】
2020028010.tif 000006
【図５】
2020028010.tif 000007
【図６】
2020028010.tif 000008
【図７】
2020028010.tif 000009
【図８】
2020028010.tif 000010
【図９】
2020028010.tif 000011
【図１０】
2020028010.tif 000012
【図１１】
2020028010.tif 000013
【図１２】
2020028010.tif 000014