JP6333166B2 - 受信データ復元装置 - Google Patents

受信データ復元装置 Download PDF

Info

Publication number
JP6333166B2
JP6333166B2 JP2014260691A JP2014260691A JP6333166B2 JP 6333166 B2 JP6333166 B2 JP 6333166B2 JP 2014260691 A JP2014260691 A JP 2014260691A JP 2014260691 A JP2014260691 A JP 2014260691A JP 6333166 B2 JP6333166 B2 JP 6333166B2
Authority
JP
Japan
Prior art keywords
input
window time
preamble
received data
bit
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
JP2014260691A
Other languages
English (en)
Other versions
JP2016122901A (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.)
Tohoku University NUC
Toyota Motor Corp
Toyota Central R&D Labs Inc
Original Assignee
Tohoku University NUC
Toyota Motor Corp
Toyota Central R&D Labs Inc
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 Tohoku University NUC, Toyota Motor Corp, Toyota Central R&D Labs Inc filed Critical Tohoku University NUC
Priority to JP2014260691A priority Critical patent/JP6333166B2/ja
Publication of JP2016122901A publication Critical patent/JP2016122901A/ja
Application granted granted Critical
Publication of JP6333166B2 publication Critical patent/JP6333166B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、デジタル信号を受信し、受信したデジタル信号を復元する受信データ復元装置に関する。
デジタル信号の送受信において、受信側では、受信したビットを正しいタイミングで、1か0かを判定する必要がある。そのための最も簡潔な方法は、タイミング情報であるクロックを受信側に送信するための伝送路を設けることである。
しかしながら、このような方法は、配線が増えることによって、コストが増加する点で不利である。
上記以外の方法としては、送信データにクロックを重畳する方法が広く知られている(例えば、特許文献1参照)。この方法を用いる場合、受信側でクロックの抽出、つまり、クロック・データ・リカバリ(Clock and Data Recovery:CDR)を行う必要がある。
CDRに用いられる回路は、主に、位相同期回路(Phase−Locked Loop:PLL)と、位相補間回路(インターポレータ)とが広く知られている。
PLLは、位相比較器、ローパスフィルタ、電圧制御型発振器(Voltage−Controlled Oscillator:VCO)および分周器を具備する。PLLは、受信データのエッジを検出し、内部の基準クロックの位相と比較して調整することでクロックを抽出する。これにより、受信したデータとクロックとの間のスキュー(歪み)を抑制することができる。
しかしながら、PLLにおいては、VCOからのノイズ、VCOに起因するジッタ(振幅変動、ジッタ・トラック波形の変動)、およびVCOへの供給電圧波形の変動などが生じるおそれがある。
位相補間回路は、基準クロックから多相のクロックを生成し、受信データのエッジと比較することにより、最適なクロック相を選択する。位相補間回路は、VCOを用いずに、高精度な基準クロックを利用するため、抽出したクロックのジッタを低減することができる。
しかしながら、位相補間回路は、位相補間の精度を向上させるために、回路規模および消費電力が増加する点で不利である。
以上のように、CDRに用いられる従来の回路は、ノイズの影響を受けたり、高精度のクロックを必要とするなどの問題がある。
特開2004−253945号公報
本発明は、ノイズの影響を受けず、高精度のクロックが不要な受信データ復元装置を提供することを課題とする。
本発明に係る受信データ復元装置は、先頭にプリアンブルが付与されたデジタル信号を受信して、当該デジタル信号を復元する受信データ復元装置であって、下記の数1に基づいて、前記プリアンブルの受信期間中の前記受信データ復元装置のクロックカウント数、および前記プリアンブルの長さから、前記受信データ復元装置のオーバーサンプリング率を算出するβ演算器と、前記オーバーサンプリング率に基づいて、復元対象となる1ビットのデータを抽出するための時間幅であるサンプリング窓時間を算出する窓時間演算器と、を具備する。
Figure 0006333166
本発明に係る受信データ復元装置において、前記窓時間演算器は、前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数5に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数6に基づいて算出することが好ましい。なお、数5および数6における「floor」は、引数の小数点以下を切り捨てる関数である。
Figure 0006333166
Figure 0006333166
本発明に係る受信データ復元装置において、前記窓時間演算器は、前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数5に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数7に基づいて算出することが好ましい。
Figure 0006333166
Figure 0006333166
本発明に係る受信データ復元装置において、前記窓時間演算器は、4B5B符号化が行われた前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数2に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数3および数4に基づいて算出する。
Figure 0006333166
Figure 0006333166
Figure 0006333166
本発明に係る受信データ復元装置において、前記プリアンブルの遷移数は、2+1である。
本発明によれば、ノイズの影響を受けず、高精度のクロックを用いることなく、受信したデジタル信号を復元できる。
本発明に係る受信データ復元装置の一実施形態である受信機、および送信機を示す図。 本発明に係る受信データ復元装置が処理するデジタル信号を示す図。 受信機の構造を示すブロック図。 遷移検出器の回路図。 遷移カウンタおよびβ演算器の回路図。 ステートマシン、シフトレジスタおよび復号器の回路図。 プリアンブル受信期間中の、遷移カウンタおよびβ演算器の動作を示すタイミングチャート。 プリアンブル受信期間中の、遷移カウンタおよびβ演算器の動作を示すフローチャート。 経過時間と、1ビット分の受信データの検出確率との関係を示すグラフ。 窓時間演算器の回路図。 窓時間カウンタの回路図。 4B5Bの変換テーブルを示す図。 プリアンブル受信期間後の、窓時間カウンタ、シフトレジスタおよび復号器の動作を示すタイミングチャート。 プリアンブル受信期間後の、窓時間カウンタ、シフトレジスタおよび復号器の動作を示すフローチャート。
以下では、図面を参照して、本発明に係る受信データ復元装置の一実施形態である受信機1について説明する。
図1に示すように、受信機1は、伝送路3を介して送信機2に接続されており、伝送路3を介して送信機2から受信機1にデジタル信号が伝送される。
送信機2は、デジタル信号をシリアルデータとして、受信機1に送信する装置である。
図2に示すように、本実施形態におけるデジタル信号は、プリアンブル、データ、および終端記号から構成されている。
プリアンブルは、「1」、「0」の繰り返しからなり、「1」から開始されるビット列であり、デジタル信号の先頭に付与される。プリアンブルの長さは、2ビットであることが好ましい。なお、本実施形態において、プリアンブルは、8ビットのビット列である。つまり、本実施形態において、プリアンブルは、「10101010」である。プリアンブルの最終ビットは、0であるが、プリアンブルの終了判定のために、プリアンブルの最後には、立ち上がりエッジが付与される。前述のように、プリアンブルは、「1」、「0」の繰り返しであるため、プリアンブルの長さが2ビットの場合、プリアンブルの遷移数(ビットの反転数)は、2+1となる。したがって、プリアンブルの遷移数は、2+1であることが好ましい。なお、本実施形態において、プリアンブルの遷移数は、9である。
データは、所定の意味を有するビット列である。
終端記号は、デジタル信号の終了を示す、予め定められたビット列である。
なお、プリアンブルの後に、所定のスタートビット列を付与することも可能である。
また、スタートビット列を付与した場合に、プリアンブルの長さを、受信機1および送信機2の安定性に応じて可変とし、受信機1によってスタートビット列を検出することにより、プリアンブルの長さを算出することも可能である。これにより、受信機1によるプリアンブルの検出精度を向上させることができる。
また、プリアンブルとスタートビット列とを1つのプリアンブルとみなすことも可能である。これにより、プリアンブルの有効ビット数が増加し、受信機1によるプリアンブルの検出精度を向上させることができる。
送信機2は、受信機1に送信するデジタル信号に対して、4B5B符号化、およびNRZI(Non Return to Zero Inversion)を行う。
4B5B符号化は、所定の規則に基づいて、4ビットのデータを5ビットのシンボルで表現する手法である。本実施形態においては、デジタル信号中に、「0」が3個以上連続しないように4B5B符号化を行っている。
NRZIは、デジタル信号に遷移が有る場合を「1」とし、遷移が無い場合を「0」とする、デジタル信号の変換法である。NRZIを行うことにより、高調波成分を少なくすることができ、伝送帯域幅を小さくすることができる。
なお、必ずしも、受信機1に送信するデジタル信号に対して、4B5B符号化およびNRZIを行う必要はなく、いずれか一方のみを行ってもよいし、双方共に行わなくともよい。
また、4B5B符号化に代えて、8B6T符号化、5B6B符号化、または8B10B符号化などを行うことも可能である。
受信機1は、送信機2から送信されたデジタル信号を受信し、それを復元する装置である。
受信機1のクロック周波数Frは、送信機2のクロック周波数Ft以上に設定される。好ましくは、受信機1のクロック周波数Frは、送信機2のクロック周波数Ftの2倍以上に設定される(Fr≧2*Ft)。
図3に示すように、受信機1は、遷移検出器11と、遷移カウンタ12と、ステートマシン13と、β演算器14と、窓時間演算器15と、窓時間カウンタ16と、シフトレジスタ17と、復号器18とを具備する。
図4に示すように、遷移検出器11は、3つのD型フリップフロップであるD−FF110・111・112と、XORゲート113とから構成されている。
図4において、D型フリップフロップの中心に記載された文字列は、D型フリップフロップの変数名を示している。これは、以下、図5などにおいても同様である。
受信機1によって受信されたデジタル信号(以下、「受信データ」と記す)は、D−FF110に入力される。なお、図4における「serial」は、受信機1によって受信された1ビット分の受信データを示す変数である。
D−FF110の出力は、D−FF111の入力に接続され、D−FF111の出力は、D−FF112の入力に接続されている。さらに、D−FF112の出力は、XORゲート113の一方の入力に接続されると共に、D−FF111の出力は、XORゲート113の他方の入力に接続されている。
XORゲート113においては、現在の1ビット分の受信データと、1つ前の1ビット分の受信データとのXOR演算が行われ、その結果が「serial_edge」として出力される。つまり、「serial_edge」は、受信データ中で遷移が検出された場合に「1」となり、遷移が検出されない場合に「0」となる変数である。
なお、D−FF110およびD−FF111は、メタステーブルを抑制するためのシンクロナイザとして構成されている。しかしながら、D−FF110およびD−FF111の双方を設けずに、それらの少なくとも一方を設ける構成とすることも可能である。
このように、遷移検出器11においては、「serial」に基づいて、「serial_edge」が出力される。
前述のように、送信機2から送信されて受信機1によって受信されるデジタル信号には、NRZIが掛けられているため、「serial_edge」の上記の特性から、「serial_edge」は、NRZIが解除された「serial」とみなすことができる。
また、「serial_edge」は、所定のタイミングで間欠的に、シフトレジスタ17に入力され、5ビットのシンボルがパラレルデータとしてシフトレジスタ17から出力される。シフトレジスタ17から出力された5ビットのシンボルは、復号器18によって4B5B復号化が行われ、4ビットのデータとして復号されることとなる(図3参照)。
図5に示すように、遷移カウンタ12は、4つのマルチプレクサであるMUX120・121・122・123と、D型フリップフロップであるD−FF124と、加算器125と、3つの比較器126・127・128と、ANDゲート129とから構成されている。なお、遷移カウンタ12の構成要素の間で入出力されるデータの長さは、5ビットである。
MUX120の選択制御入力には、「serial_edge」が入力され、MUX120の出力は、MUX123の「0」側の入力に接続されている。
MUX121の選択制御入力には、「bit_ready」が入力され、MUX121の出力は、MUX122の「0」側の入力に接続されている。「bit_ready」は、シフトレジスタ17(図6参照)に「serial_edge」が入力される際に「1」となり、それ以外は「0」となる変数である。
MUX122の「1」側の入力には、0が入力されている。MUX122の選択制御入力には、「symbol_ready」が入力され、MUX122の出力は、MUX123の「1」側の入力に接続されている。「symbol_ready」は、5ビットのシンボルが4ビットのデータとして復号された際に「1」となり、それ以外は「0」となる変数である。
MUX123の選択制御入力には、「state」が入力され、MUX123の出力は、D−FF124の入力に接続されている。「state」は、後述のステートマシン13のD−FF132の変数である。「state」は、プリアンブルの受信期間中には「0」となり、プリアンブルの受信が終了した場合には「1」となる。
D−FF124の出力は、加算器125の「A」側の入力、比較器126・127・128の「A」側の入力、MUX120の「0」側の入力、およびMUX121の「1」側の入力に接続されている。
加算器125の「B」側の入力には、1が入力され、加算器125の出力は、MUX120の「1」側の入力、およびMUX121の「0」側の入力に接続されている。加算器125は、「A」側の入力値と、「B」側の入力値との合計(A+B)を出力する。
比較器126の「B」側の入力には、0が入力され、比較器126の出力は、後述のβ演算器14のANDゲート140の一方の入力に接続されている。比較器126は、「A」側の入力値が「B」側の入力値(0)よりも大きい場合(A>B)に1を出力し、それ以外の場合に0を出力する。
比較器127の「B」側の入力には、8が入力され、比較器127の出力は、後述のステートマシン13のMUX141の「0」側の入力に接続されている(図6参照)。比較器127は、「A」側の入力値と、「B」側の入力値(8)とが等しい場合(A=B)に1を出力し、それ以外の場合に0を出力する。比較器127は、プリアンブルの終了を判定するために設けられている。したがって、比較器127の「B」側の入力値は、プリアンブルの長さである。
比較器128の「B」側の入力には、4が入力され、比較器128の出力は、ANDゲート129の一方の入力に接続されている。比較器128は、「A」側の入力値と、「B」側の入力値(4)とが等しい場合(A=B)に1を出力し、それ以外の場合に0を出力する。
ANDゲート129の他方の入力には、「state」が入力され、ANDゲート129の出力は、後述の復号器18のデータ変換部181の「Enable」入力に接続されている(図6参照)。
以上のように構成された遷移カウンタ12は、プリアンブル受信期間中において、受信データの遷移数を算出する。遷移カウンタ12においては、D−FF124の変数である「edge_count」が、受信データの遷移数を示す変数として扱われる。
なお、本実施形態においては、受信データの遷移数を算出する際には、立ち上がりエッジおよび立ち下りエッジの両方がカウントされる。しかしながら、立ち上がりエッジおよび立ち下りエッジのいずれか一方のみをカウントする構成としてもよい。
図6に示すように、ステートマシン13は、マルチプレクサであるMUX131と、D型フリップフロップであるD−FF132とから構成されている。
MUX131の「0」側の入力には、遷移カウンタ12の比較器127の出力が接続され(図5参照)、MUX131の「1」側の入力には、後述の復号器18のNORゲート186の出力が接続されている。MUX131の出力は、D−FF132の入力に接続されている。
D−FF132の出力は、MUX131の選択制御入力に接続されている。
以上のように構成されたステートマシン13においては、遷移カウンタ12の比較器127の出力が0の場合(edge_count≠8)、つまり、プリアンブルを受信中である場合は、D−FF132の変数である「state」が0を維持し、遷移カウンタ12の比較器127の出力が1となった場合(edge_count=8)、つまり、プリアンブルの受信が完了した場合に、D−FF132の変数である「state」が1となる。
図5に示すように、β演算器14は、ANDゲート140と、2つのマルチプレクサであるMUX141・142と、D型フリップフロップであるD−FF143と、加算器144と、比較器145とから構成されている。なお、β演算器14の構成要素の間で入出力されるデータの長さは、6ビットである。
ANDゲート140の出力は、MUX141の選択制御入力に接続されている。
MUX141の出力は、MUX142の「0」側の入力に接続されている。
MUX142の選択制御入力には、「state」が入力され、MUX142の出力は、D−FF143の入力に接続されている。さらに、MUX142の出力は、後述の窓時間演算器15のシフト演算器1501・1502・1503の入力、および加算器1504・1505の「A」側の入力に接続されている(図10参照)。
D−FF143の出力は、加算器144の「B」側の入力、比較器145の「A」側の入力、MUX142の「1」側の入力、およびMUX141の「0」側の入力に接続されている。
加算器144の「A」側の入力には、1が入力され、加算器144の出力は、MUX141の「1」側の入力に接続されている。加算器144は、「A」側の入力値と、「B」側の入力値との合計(A+B)を出力する。
比較器145の「B」側の入力には、63が入力され、比較器145の出力は、ANDゲート140の他方の入力に接続されている。比較器145は、「A」側の入力値が「B」側の入力値(63)よりも小さい場合(A<B)に1を出力し、それ以外の場合に0を出力する。
以上のように構成されたβ演算器14は、プリアンブル受信期間中の受信機1のクロックカウント数を算出する。β演算器14においては、D−FF143の変数である「beta_count」が、プリアンブル受信期間中の受信機1のクロックカウント数を示す変数として扱われる。
ここで、受信機1(受信データ復元装置)のオーバーサンプリング率βを、「beta_count」を用いて数式で表すと、下記の数1のように表すことができる。
Figure 0006333166
数1における「pre_length」は、プリアンブルの長さである。
本実施形態において、「pre_length」は、予め設定された定数であり、8が入力されている。
数1に示すように、オーバーサンプリング率βは、プリアンブル受信期間中の受信機1のクロックカウント数を、プリアンブルの長さで除することによって算出される。
なお、プリアンブルの長さが2ビット(本実施形態においては、8)である場合には、プリアンブル受信期間中の受信機1のクロックカウント数(2進数)を、nビット右シフトすることによってオーバーサンプリング率βが算出可能である。そのため、プリアンブルの長さを2ビットとすることにより、受信機1の構造を簡略化できる。
上記の数1を変換すると、「beta_count」は、オーバーサンプリング率βに、「pre_length」を乗じたものとなる。本実施形態において、「pre_length」は、8であるため、「beta_count」は、8βとなる。
プリアンブルの受信が完了したら、「state」が0から1に切り替わるので(図6参照)、β演算器14が停止する。そして、8βが窓時間演算器15(図10参照)に入力される。換言すれば、β演算器14がオーバーサンプリング率βを算出することとなる。
なお、本実施形態において、プリアンブル受信期間中の受信機1のクロックカウント数は、24となっている(beta_count=24、β=3)。
図7に、本実施形態における、プリアンブル受信期間中の、遷移カウンタ12およびβ演算器14の動作を示すタイミングチャートを示す。
なお、図7における「CLK」は、受信機1のクロックを示している。
以下では、図8を参照して、プリアンブル受信期間中の、遷移カウンタ12およびβ演算器14の動作態様を説明する。
図8は、プリアンブル受信期間中の、遷移カウンタ12およびβ演算器14の動作を示すフローチャートである。
図8に示すように、まず、ステップS1において、「beta_count」および「edge_count」の初期化、つまり、「beta_count」および「edge_count」への0の代入が行われる(beta_count=0、edge_count=0)。
ステップS1の後は、ステップS2が行われる。
ステップS2においては、受信機1のクロックが立ち上がったか否かが判定される。
受信機1のクロックの立ち上がりが検出されるまで、ステップS2を繰り返し、受信機1のクロックの立ち上がりが検出された場合には、ステップS3が行われる。
ステップS3においては、「edge_count」が0より大きいか否かが判定される。「edge_count」が0より大きいことは、受信データ中で最初に遷移が生じたこと、つまり、プリアンブルの先頭ビットの1が受信されたことを意味する。
「edge_count」が0より大きい場合(edge_count>0)は、ステップS4が行われ、それ以外の場合には、ステップS5が行われる。
ステップS4においては、「beta_count」のインクリメントが行われる(beta_count=beta_count+1)。つまり、受信機1のクロックカウント数がカウントアップされる。
ステップS4の後は、ステップS5が行われる。
ステップS5においては、受信データ中でエッジが検出されたか否かが判定される。
受信データ中でエッジが検出された場合は、ステップS6が行われ、検出されなかった場合には、ステップS2に戻る。
ステップS6においては、「edge_count」のインクリメントが行われる(edge_count=edge_count+1)。つまり、受信データの遷移数がカウントアップされる。
ステップS6の後は、ステップS7が行われる。
ステップS7においては、受信データの遷移数を示す「edge_count」が、プリアンブルの遷移数を示す「pre_count」と等しいか否かが判定される。
ここで、「pre_count」は、「pre_length」と同様に、予め設定される定数である。前述のように、本実施形態において、プリアンブルの遷移数は、9である(pre_count=9)。
上記のように、ステップS7においては、受信データの遷移数を示す「edge_count」が、プリアンブルの遷移数を示す「pre_count」と等しいか否かが判定されるが、これは、プリアンブルの受信が完了したか否かを判定しているのである。
「edge_count」が「pre_count」と等しい場合(edge_count=pre_count)は、ステップS8が行われ、それ以外の場合には、ステップS2に戻る。
ステップS8においては、前記の数1に基づいて、オーバーサンプリング率βが算出される。
以上のように、プリアンブル受信期間において、遷移カウンタ12およびβ演算器14が動作する。
前述のように、β演算器14から出力された8βは、窓時間演算器15に入力される(図5および図10参照)。
以下では、窓時間演算器15について説明する。
窓時間演算器15は、β演算器14の出力(8β)に基づいて、サンプリング窓時間T0・T1・T2を算出する装置である。
ここで、「サンプリング窓時間」とは、復元対象となる1ビットのデータを抽出するための時間幅である。換言すれば、シフトレジスタ17(図6参照)に入力される「serial_edge」の値が確定される時間幅である。
サンプリング窓時間T0・T1・T2は、受信データの遷移の有無に応じて選択される。
受信データに遷移が検出された場合は、そのビットを抽出するためのサンプリング窓時間T0が選択される。そして、次のビットで遷移が検出されなかった場合は、当該ビットを抽出するためのサンプリング窓時間T1が選択され、さらに次のビットで遷移が検出されなかった場合は、当該ビットを抽出するためのサンプリング窓時間T2が選択される。
このように、受信データに遷移が検出された場合に選択されるサンプリング窓時間T0を基準として、遷移が検出されない場合は、サンプリング窓時間T1、サンプリング窓時間T2と、順に選択されることとなる。
なお、本実施形態においては、受信データ中に「0」が3個以上連続しないように4B5B符号化が行われているため、3つのサンプリング窓時間T0・T1・T2が存在することとなる。
ここでは、サンプリング窓時間の算出方法について説明する。
受信機1において、受信された1ビットのデータは、オーバーサンプリング率βのクロック間隔で現れるといえる。
図9は、経過時間と、受信された1ビットのデータの検出確率との関係を示すグラフである。
図9に示すように、正規分布を仮定すると、受信データに遷移が検出された場合(「serial_edge」が1の場合)、次のビットは、遷移から1.5βクロック後(βと2βとの中間点)には、確実に現れるとみなせる。なお、説明の便宜上、遷移が検出されたビットを「1番目のビット」、次のビットを「2番目のビット」、さらに次のビットを「3番目のビット」と記す。
したがって、1番目のビットを抽出するためのサンプリング窓時間T0は、下記の数2のように表すことができる。
なお、プリアンブルは「1」から始まるため、受信データは立ち上がりで開始、つまり、遷移から開始される。
Figure 0006333166
数2における「floor」は、引数の小数点以下を切り捨てる関数である。
クロック数は整数であるため、floor関数を使用している。
2番目のビットで遷移が検出されない場合(「serial_edge」が1、0と続いた場合)、2番目のビットを抽出するためのサンプリング窓時間の終点は、2βと3βとの中間点である2.5βであればよい。
したがって、2番目のビットを抽出するためのサンプリング窓時間T1は、下記の数3のように表すことができる。
Figure 0006333166
なお、2番目のビットで遷移が検出された場合(「serial_edge」が1、1と続いた場合)は、2番目のビットを1番目のビットとみなして以下同様の処理を行う。つまり、サンプリング窓時間が、T0、T0の順で選択される。この場合、1番目のビットを抽出するためのサンプリング窓時間の終点は、2番目のビットを抽出するためのサンプリング窓時間の始点に設定される。
2番目のビットで遷移が検出されず、3番目のビットでも遷移が検出されない場合(「serial_edge」が1、0、0と続いた場合)、3番目のビットを抽出するためのサンプリング窓時間の終点は、3βと4βとの中間点である3.5βであればよい。
したがって、3番目のビットを抽出するためのサンプリング窓時間T2は、下記の数4のように表すことができる。
Figure 0006333166
なお、2番目のビットで遷移が検出されず、3番目のビットで遷移が検出された場合(「serial_edge」が1、0、1と続いた場合)は、3番目のビットを1番目のビットとみなして以下同様の処理を行う。つまり、サンプリング窓時間が、T0、T1、T0の順で選択される。この場合、2番目のビットを抽出するためのサンプリング窓時間の終点は、3番目のビットを抽出するためのサンプリング窓時間の始点に設定される。
前述のように、本実施形態においては、受信データ中に「0」が3個以上連続しないように4B5B符号化が行われているため、3つのサンプリング窓時間T0・T1・T2が設定される。しかしながら、このような4B5B符号化が行われない場合、または他の符号化が行われる場合には、受信データ中に「0」が3個以上連続する可能性があるため、サンプリング窓時間を3つ以上設定する必要がある。
このような事情を考慮すると、サンプリング窓時間は、下記の数5および数6のように表すことができる。
Figure 0006333166
Figure 0006333166
数5および数6における「a」は、上記のように正規分布を仮定した場合、0である。「a」は、受信機1のクロック、および送信機2のクロックのばらつき分布により、−0.2〜+0.2の範囲内で適宜調整すればよい。
また、サンプリング窓時間Tpの算出には、上記の数6に代えて、下記の数7を用いることも可能である。
なお、数6を用いたサンプリング窓時間Tpの算出結果、および数7を用いたサンプリング窓時間Tpの算出結果は同一である。
Figure 0006333166
なお、本実施形態においては、サンプリング窓時間を算出する式に、引数の小数点以下を切り捨てるfloor関数を用いているが、引数の小数点以下を切り上げるceil関数を、floor関数に代えて用いることも可能である。
例えば、受信データ中に「0」が3個以上連続しないように4B5B符号化を行った場合に、下記の数8のようにサンプリング窓時間T0・T1・T2を算出することも可能である。
Figure 0006333166
図10に示すように、窓時間演算器15は、3つのシフト演算器1501・1502・1503と、3つの加算器1504・1505・1506と、2つのシフト演算器1507・1508と、3つの減算器1509・1510・1511と、2つのシフト演算器1512・1513とから構成されている。なお、窓時間演算器15の構成要素の間で入出力されるデータの長さは、8ビットである。
β演算器14の出力(8β)は、シフト演算器1501・1502・1503、および加算器1504・1505の「A」側の入力に入力される。
シフト演算器1501の出力は、加算器1504の「B」側の入力に接続されている。シフト演算器1501は、入力値を1ビット右シフトした値を出力する。
シフト演算器1502の出力は、加算器1505の「B」側の入力に接続されている。シフト演算器1502は、入力値を2ビット右シフトした値を出力する。
シフト演算器1503の出力は、加算器1506の「A」側の入力に接続されている。シフト演算器1503は、入力値を1ビット右シフトした値を出力する。
加算器1504の出力は、シフト演算器1507の入力に接続されている。加算器1504は、「A」側の入力値と、「B」側の入力値との合計(A+B)を出力する。
加算器1505の出力は、減算器1509の「A」側の入力、および加算器1506の「B」側の入力に接続されている。加算器1505は、「A」側の入力値と、「B」側の入力値との合計(A+B)を出力する。
加算器1506の出力は、減算器1510の「A」側の入力に接続されている。加算器1506は、「A」側の入力値と、「B」側の入力値との合計(A+B)を出力する。
シフト演算器1507の出力は、シフト演算器1508の入力に接続されている。シフト演算器1507は、入力値を3ビット右シフトした値を出力する。シフト演算器1507の出力値は、サンプリング窓時間T0である。
シフト演算器1508の出力は、減算器1509・1510の「B」側の入力に接続されている。シフト演算器1508は、入力値を2ビット左シフトした値を出力する。
減算器1509の出力は、シフト演算器1512の入力、および減算器1511の「B」側の入力に接続されている。減算器1509は、「A」側の入力値から「B」側の入力値を引いた値(A−B)を出力する。
減算器1510の出力は、減算器1511の「A」側の入力に接続されている。減算器1510は、「A」側の入力値から「B」側の入力値を引いた値(A−B)を出力する。
減算器1511の出力は、シフト演算器1513の入力に接続されている。減算器1511は、「A」側の入力値から「B」側の入力値を引いた値(A−B)を出力する。
シフト演算器1512は、入力値を2ビット右シフトした値を出力する。シフト演算器1512の出力値は、サンプリング窓時間T1である。
シフト演算器1513は、入力値を2ビット右シフトした値を出力する。シフト演算器1513の出力値は、サンプリング窓時間T2である。
以上のように構成された窓時間演算器15は、サンプリング窓時間T0・T1・T2を算出可能となっている。
サンプリング窓時間T0・T1・T2を算出するための式が示された上記の数2〜数4は、下記の数9〜数11の如く、窓時間演算器15の入力値である8βを用いた式に変換することができる。
窓時間演算器15は、下記の数9〜数11における下段の式を実現するように構成されているのである。
Figure 0006333166
Figure 0006333166
Figure 0006333166
なお、窓時間演算器15は、受信データの処理が行われる度に、サンプリング窓時間T0・T1・T2を算出するように構成してもよいし、予めサンプリング窓時間T0・T1・T2を算出しておき、以後その算出値を参照できるように構成してもよい。
図11に示すように、窓時間カウンタ16は、4つのマルチプレクサであるMUX161・162・163・164と、減算器165と、D型フリップフロップであるD−FF166と、比較器167と、NORゲート168とから構成されている。なお、窓時間カウンタ16の構成要素の間で入出力されるデータの長さは、8ビットである。
MUX161の「1」側の入力には、サンプリング窓時間T1が入力され、MUX161の「0」側の入力には、サンプリング窓時間T2が入力される。MUX161の選択制御入力には、「coded_symbol[0]」が入力され、MUX161の出力は、MUX162の「1」側の入力に接続されている。「coded_symbol」は、シフトレジスタ17の変数である(図6参照)。シフトレジスタ17は、5つのD型フリップフロップを有し、直列入力並列出力形(Serial−In Parallel−Out:SIPO)のシフトレジスタとして構成されている。シフトレジスタ17の5つのD型フリップフロップの変数は、上流側から「coded_symbol[0]」、「coded_symbol[1]」、「coded_symbol[2]」、「coded_symbol[3]」、および「coded_symbol[4]」と定義されている。
シフトレジスタ17に入力される「serial_edge」は、「coded_symbol[0]」、「coded_symbol[1]」、「coded_symbol[2]」、「coded_symbol[3]」、および「coded_symbol[4]」を、順にシフトしていくこととなる。
そのため、「coded_symbol[0]」の値は、1つ前の「serial_edge」の値である。
さらに、「coded_symbol[1]」の値は、2つ前の「serial_edge」の値であり、「coded_symbol[2]」の値は、3つ前の「serial_edge」の値であり、「coded_symbol[3]」の値は、4つ前の「serial_edge」の値であり、「coded_symbol[4]」の値は、5つ前の「serial_edge」の値である。
MUX162の選択制御入力には、「bit_expired」が入力され、MUX162の出力は、MUX163の「0」側の入力に接続されている。
MUX163の「1」側の入力には、サンプリング窓時間T0が入力されている。MUX163の選択制御入力には、「serial_edge」が入力され、MUX163の出力は、MUX164の「1」側の入力に接続されている。
MUX164の「0」側の入力には、サンプリング窓時間T0が入力されている。MUX164の選択制御入力には、「state」が入力され、MUX164の出力は、減算器165の「A」側の入力に接続されている。
減算器165の「B」側の入力には、1が入力され、減算器165の出力は、D−FF166の入力に接続されている。減算器165は、「A」側の入力値から「B」側の入力値を引いた値(A−B)を出力する。
D−FF166の出力は、MUX162の「0」側の入力、および比較器167の「A」側の入力に接続されている。
比較器167の「B」側の入力には、0が入力され、比較器167の出力は、NORゲート168の一方の入力に接続されている。比較器167は、「A」側の入力値と、「B」側の入力値(0)とが等しい場合(A=B)に1を出力し、それ以外の場合に0を出力する。比較器167の出力値は、「bit_expired」とされる。
NORゲート168の他方の入力には、「bit_expired」が入力され、NORゲート168の出力は、「bit_ready」とされる。
「bit_ready」は、シフトレジスタ17の「Enable」入力に入力されており(図6参照)、「bit_ready」が「1」となった場合に、シフトレジスタ17に「serial_edge」が入力されることとなる。
以上のように構成された窓時間カウンタ16においては、D−FF166の変数である「timer」が、サンプリング窓時間を示す変数として扱われる。
前述のように、シフトレジスタ17には、「serial_edge」が、サンプリング窓時間T0・T1・T2に応じたタイミングで間欠的に入力され、「coded_symbol[0]」、「coded_symbol[1]」、「coded_symbol[2]」、「coded_symbol[3]」、および「coded_symbol[4]」を、順にシフトしていく。
したがって、シフトレジスタ17の「coded_symbol[4]」、「coded_symbol[3]」、「coded_symbol[2]」、「coded_symbol[1]」、「coded_symbol[0]」の値を順に並べたものが、復号器18によって復号される5ビットのシンボルである。
図6に示すように、復号器18は、データ変換部181と、4つのD型フリップフロップであるD−FF182・183・184・185と、NORゲート186とから構成されている。
データ変換部181は、シフトレジスタ17と電気的に接続されており、「coded_symbol[4]」〜「coded_symbol[0]」が入力される。
本実施形態において、データ変換部181は、図12に示す変換テーブルに基づいて、シフトレジスタ17内の5ビットのシンボル、つまり、「coded_symbol[4]」〜「coded_symbol[0]」を4ビットのデータとして復号する。
図6に示すように、データ変換部181は、復号した4ビットのデータをD−FF182に出力する。D−FF182の変数である「decoded_symbol」は、復号された4ビットのデータを示す変数である。
また、データ変換部181は、復号終了後に、1をD−FF183に出力する。D−FF183の変数は、復号終了後に「1」となり、それ以外は「0」となる「symbol_ready」である。
また、データ変換部181は、復号したデータが終端記号であった場合、NORゲート168の一方の入力、およびD−FF184に、1を出力し、それ以外は、0を出力する。
また、データ変換部181は、復号したデータが無効であった場合、NORゲート168の他方の入力、およびD−FF185に、1を出力し、それ以外は、0を出力する。
なお、復号したデータが無効であるか否かの判定は、CRC(Cyclic Redundancy Check)などの誤り検出、NZRI逆変換、または4B5B逆変換などによって実現可能である。また、復号したデータが4B5Bの変換テーブルに存在しない場合、復号したデータの終端記号が異なる場合、所定の時間信号が途絶えた場合、または所定の時間経過しても終端記号が検出できない場合などに、復号したデータが無効であると判定してもよい。
図13に、本実施形態における、プリアンブル受信期間後の、窓時間カウンタ16、シフトレジスタ17、および復号器18の動作を示すタイミングチャートを示す。
図13には、5ビットのシンボルである「01001」および「01111」が、図12に示す変換テーブルに基づいて、4ビットのデータである「1111」(16進数表記では、「F」)および「1000」(16進数表記では、「8」)に復号される様子が示されている。
なお、図13における「CLK」は、受信機1のクロックを示している。
以下では、図14を参照して、プリアンブル受信期間後の、窓時間カウンタ16、シフトレジスタ17、および復号器18の動作態様を説明する。
図14は、プリアンブル受信期間後の、窓時間カウンタ16、シフトレジスタ17、および復号器18の動作を示すフローチャートである。
図14に示すように、まず、ステップS11において、「p」および「edge_count」の初期化、つまり、「p」および「edge_count」への0の代入が行われる(p=0、edge_count=0)。
ステップS11の後は、ステップS12が行われる。
ステップS12においては、「timer」に、サンプリング窓時間である「Tp」が代入される。
ステップS12の後は、ステップS13が行われる。
ステップS13においては、「timer」のデクリメントが行われる(timer=timer−1)。
ステップS13の後は、ステップS14が行われる。
ステップS14においては、受信機1のクロックが立ち上がるまで待機する。
ステップS14の後は、ステップS15が行われる。
ステップS15においては、受信データ中でエッジが検出されたか否かが判定される。
受信データ中でエッジが検出された場合は、ステップS16が行われ、検出されなかった場合には、ステップS17が行われる。
ステップS16においては、「p」に0が代入される(p=0)。
ステップS16の後は、ステップS19が行われる。
ステップS17においては、「timer」が0であるか否かが判定される。
「timer」が0である場合は、ステップS18が行われ、0でない場合には、ステップS13に戻る。
ステップS18においては、「p」のインクリメントが行われる(p=p+1)。なお、本実施形態においては、3つのサンプリング窓時間T0・T1・T2のみが存在するため、pが2を上回る場合の処理は行われない。
ステップS18の後は、ステップS19が行われる。
ステップS19においては、「serial_edge」がシフトレジスタ17に入力される。
ステップS19の後は、ステップS20が行われる。
ステップS20においては、シフトレジスタ17に入力された5ビットのシンボルが有効であるか否かが判定される。換言すれば、シフトレジスタ17の「coded_symbol[4]」〜「coded_symbol[0]」に値が正常に格納されているか否かが判定される。
5ビットのシンボルが有効である場合には、ステップS21が行われ、無効である場合には、ステップS22が行われる。
ステップS21においては、「edge_count」に0が代入される(edge_count=0)。
ステップS21の後は、ステップS23が行われる。
ステップS22においては、「edge_count」のインクリメントが行われる(edge_count=edge_count+1)。
ステップS22の後は、ステップS12に戻る。
ステップS23においては、5ビットのシンボルが復号器18によって4ビットのデータに復号される。
ステップS23の後は、ステップS24が行われる。
ステップS24においては、復号されたデータが終端記号であるか否かが判定される。
復号されたデータが終端記号である場合には、復号処理が終了し、終端記号ではない場合には、ステップS12に戻る。
以上のように構成された受信機1は、位相同期回路を有しないため、VCOからのノイズを受けることがない。さらに、受信機1は、位相補間回路を有しないため、高精度のクロックが不要である。
1 受信機(受信データ復元装置)
2 送信機
11 遷移検出器
12 遷移カウンタ
13 ステートマシン
14 β演算器
15 窓時間演算器
16 窓時間カウンタ
17 シフトレジスタ
18 復号器

Claims (4)

  1. 先頭にプリアンブルが付与されたデジタル信号を受信して、当該デジタル信号を復元する受信データ復元装置であって、
    下記の数1に基づいて、前記プリアンブルの受信期間中の前記受信データ復元装置のクロックカウント数、および前記プリアンブルの長さから、前記受信データ復元装置のオーバーサンプリング率を算出するβ演算器と、
    前記オーバーサンプリング率に基づいて、復元対象となる1ビットのデータを抽出するための時間幅であるサンプリング窓時間を算出する窓時間演算器と、を具備
    前記窓時間演算器は、前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数5に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数6に基づいて算出する、
    受信データ復元装置。
    Figure 0006333166
    Figure 0006333166
    Figure 0006333166
  2. 先頭にプリアンブルが付与されたデジタル信号を受信して、当該デジタル信号を復元する受信データ復元装置であって、
    下記の数1に基づいて、前記プリアンブルの受信期間中の前記受信データ復元装置のクロックカウント数、および前記プリアンブルの長さから、前記受信データ復元装置のオーバーサンプリング率を算出するβ演算器と、
    前記オーバーサンプリング率に基づいて、復元対象となる1ビットのデータを抽出するための時間幅であるサンプリング窓時間を算出する窓時間演算器と、を具備
    前記窓時間演算器は、前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数5に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数7に基づいて算出する、
    受信データ復元装置。
    Figure 0006333166
    Figure 0006333166
    Figure 0006333166
  3. 前記窓時間演算器は、4B5B符号化が行われた前記デジタル信号に遷移が検出された場合の前記サンプリング窓時間を、下記の数2に基づいて算出し、前記デジタル信号に遷移が検出されない場合の前記サンプリング窓時間を、下記の数3および数4に基づいて算出する、
    ことを特徴とする請求項または請求項に記載の受信データ復元装置。
    Figure 0006333166
    Figure 0006333166
    Figure 0006333166
  4. 前記プリアンブルの遷移数は、2+1である、
    ことを特徴とする請求項1乃至請求項のいずれか一項に記載の受信データ復元装置。
JP2014260691A 2014-12-24 2014-12-24 受信データ復元装置 Active JP6333166B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014260691A JP6333166B2 (ja) 2014-12-24 2014-12-24 受信データ復元装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014260691A JP6333166B2 (ja) 2014-12-24 2014-12-24 受信データ復元装置

Publications (2)

Publication Number Publication Date
JP2016122901A JP2016122901A (ja) 2016-07-07
JP6333166B2 true JP6333166B2 (ja) 2018-05-30

Family

ID=56327576

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014260691A Active JP6333166B2 (ja) 2014-12-24 2014-12-24 受信データ復元装置

Country Status (1)

Country Link
JP (1) JP6333166B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6457452B2 (ja) * 2016-09-14 2019-01-23 株式会社フジクラ クロック再生回路

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5025787B1 (ja) * 1969-04-25 1975-08-26
JP2005303631A (ja) * 2004-04-09 2005-10-27 Yazaki Corp データ通信システム
JP4462371B2 (ja) * 2007-10-12 2010-05-12 株式会社デンソー データ受信装置およびマイクロコンピュータ
JP5459421B2 (ja) * 2012-07-12 2014-04-02 株式会社デンソー データ受信装置及びデータ通信システム

Also Published As

Publication number Publication date
JP2016122901A (ja) 2016-07-07

Similar Documents

Publication Publication Date Title
KR20210139388A (ko) 다상 클록 듀티 사이클 및 스큐 측정 및 보정
EP1313257A1 (en) Skew adjustment circuit, skew adjustment method, data synchronisation circuit, and data synchronization method
KR100967809B1 (ko) 클록 데이터 복원 장치
JP5459421B2 (ja) データ受信装置及びデータ通信システム
JPH0851415A (ja) 入力デジタルデータ信号受信方法及び装置
US9608640B1 (en) Receiving circuit and method for controlling frequency
JP6333166B2 (ja) 受信データ復元装置
US6985546B2 (en) Transmitting circuit and method thereof, receiving circuit and method thereof, and data communication apparatus
JP5549700B2 (ja) 信号生成装置及び周波数シンセサイザ
US8472561B2 (en) Receiver circuit
EP1518346A1 (en) Digital signal processing of multi-sampled phase
JP5369524B2 (ja) クロック・データ・リカバリ回路
US9252785B2 (en) Clock recovery for a data receiving unit
US6970527B2 (en) Transmitting circuit and method thereof, receiving circuit and method thereof, and data communication apparatus
JP2015019260A (ja) データ受信装置及び受信ビット列の同一値ビット長判定方法
TW201838347A (zh) 解碼裝置及其用於解碼序列傳輸信號的方法
JP2018042032A (ja) 受信装置
US20040190667A1 (en) Clock extracting circuit and clock extracting method
CN110710113A (zh) 序列检测
JP2001333055A (ja) クロック同期補正方法及び同期クロック生成装置
JP2710525B2 (ja) ジッタ抑制回路
JP7390983B2 (ja) 半導体装置および復号化方法
JP4956989B2 (ja) クロック同期方法およびクロック同期回路
JP5560646B2 (ja) オーバーサンプリング回路、及びそれを用いたシリアル通信システム
JP2016171387A (ja) クロックデータリカバリ回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180326

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: 20180403

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180424

R150 Certificate of patent or registration of utility model

Ref document number: 6333166

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