High-Speed Signal Transmission
差動伝送、表皮効果、プリエンファシス、アイパターン
信号の周波数が上がると、配線はただの銅線じゃなくなる。表皮効果で抵抗が増えて、誘電損失で高周波が削られて、きれいな矩形波がなまって丸くなる。GHz帯の信号を扱うには、この「なまり」の物理を理解して、それに対処する技術が必要になる。
シリアル伝送とパラレル伝送
データを送る方法は2つある。パラレルは8本の線で8ビットを同時に送る。シリアルは1本の線で8ビットを順番に送る。
直感的にはパラレルのほうが速そうだよね。8本同時なんだから8倍速いはず。実際、初期のコンピュータはパラレルバスが主流だった。パラレルATA、パラレルSCSI、パラレルポート。
だけどクロック周波数が数百MHzを超えたあたりから、パラレルは行き詰まった。理由は2つ。
1つ目はスキュー。8本の配線の物理的な長さが完全に同じということはありえない。基板上の配線経路の違い、コネクタのピン位置の違い。わずかな長さの差が、高周波では無視できないタイミングのズレになる。ビット0は到着したけどビット7はまだ、みたいな状態。クロック周波数が上がるほどタイミングマージンが減って、スキューが致命的になる。
2つ目はクロストーク。並走する配線は相互にコンデンサとインダクタを形成して、隣の線の信号が漏れ込む。8本も密集して走らせたらクロストークだらけ。
シリアルは1本(差動なら2本)だからスキューの問題がない。クロストークも最小限。その代わり伝送周波数は高くなるけど、1本の線の品質を徹底的に追い込むほうが、8本の線のタイミングを揃えるよりずっと楽。現代の高速インターフェースはほぼ全てシリアル。PCIe、USB 3.x、SATA、10GbE。かつてのパラレルATAがシリアルATAに移行したのもこの理由。
シリアルが長距離に向くのもポイント。配線が少ないからノイズに強くて、信号の劣化も予測しやすい。
差動伝送
シリアル伝送の中でも、高速インターフェースの主流は差動伝送(ディファレンシャルシグナリング)。2本の配線を1組として使って、片方の信号を反転させて送る。受信側では差動アンプで2本の差分を取る。
送信側が と を同時に送る。受信側は を復元する。
なぜ差動なのか
差動伝送の長所は3つあって、どれも高速伝送で決定的に重要。
電圧を低くできる。差分で2倍になるから、各線の振幅はシングルエンドの半分で済む。たとえばシングルエンドで0〜3.3Vの振幅が必要なら、差動なら各線は±0.825Vで済む。振幅が小さいと充放電に必要なエネルギーが減って、立ち上がり時間が短くなる。立ち上がりが速いということは、より高い周波数のパルスを伝送できるということ。消費電力も下がる。
コモンモードノイズに強い。これが一番大きい。2本の配線に同じノイズ が乗ったとする(外部からの電磁干渉は2本に同相で乗る)。受信側で差分を取ると、
ノイズが消える。これがコモンモード除去(CMRR: Common-Mode Rejection Ratio)。シングルエンドだとノイズがそのまま信号に乗るけど、差動なら打ち消し合う。工場の電源ノイズ、モータのスイッチングノイズ、隣の配線からのクロストーク、全部コモンモードノイズとして除去できる。
外部に影響を与えにくい。2本の線に流れる電流は常に逆向きだから、発生する磁界が互いに打ち消し合う。EMI(電磁干渉)が小さい。他の回路への影響が少ないから、高密度実装でも使いやすい。
差動伝送の短所
対称性が必要。2本の配線の長さ、インピーダンス、周辺環境が非対称だと、コモンモード除去が劣化する。PCB設計で差動ペアの配線長を±0.1mm以内に合わせたり、等間隔で並走させたりするのはこのため。設計の自由度がシングルエンドより低い。
マイクロストリップラインと終端
高速信号はPCB上のマイクロストリップライン(導体パターン + 誘電体 + グランドプレーン)を伝搬する。シングルエンドは導体1本とグランド、差動は導体2本とグランド。
信号が伝搬する速度は光速より遅い(誘電体中では 、FR-4基板なら光速の約半分)。配線長が波長に対して無視できない長さになると、配線は「伝送線路」として振る舞う。特性インピーダンスが定義されて、インピーダンス不整合があると反射が起きる。
反射を防ぐために終端抵抗を入れる。差動回路の終端にはπ型とT型がある。
π型は差動ペアの各線からグランドへシャント抵抗を入れて、さらに差動ペア間にも抵抗を入れる構成。差動モードの終端インピーダンスは 。コモンモードで見ると 。
T型は各線に直列抵抗を入れて、中点からグランドへシャント抵抗を入れる構成。差動ペアの間に抵抗1本で済むから部品点数が少ない。
USB、HDMI、PCIeの差動ペアには必ず終端が入っている。100Ωの差動終端抵抗がよく使われる。
高周波の損失
信号の周波数が高くなると、2つの物理メカニズムで高周波成分が減衰する。
表皮効果
導体に交流電流を流すと、電流は導体の表面付近に集中する。周波数が高いほど集中度が強くなって、導体の内部にはほとんど電流が流れなくなる。これが表皮効果(skin effect)。
直感的には、導体内部に交番磁界が誘起する渦電流が、元の電流と打ち消し合って内部の電流密度を下げる。表面からの距離が表皮の深さ を超えると、電流密度が に減衰する。
が角周波数、 が導電率、 が透磁率。銅の場合、
- 60Hz(商用電源):(ほぼ全断面を使える)
- 1MHz:
- 1GHz:(表面の薄い層だけ)
導体の抵抗は だから、実効断面積 が減ると が増える。GHz帯では導体抵抗がDC時の数十倍になりうる。高周波成分ほど減衰が大きいから、矩形波のエッジ(高周波成分を多く含む部分)が鈍る。
マクスウェルの記事で出てきた損失性媒質の表皮の深さと同じ式。あっちは電磁波が媒質に浸透する深さとして、こっちは導体の中で電流が流れる深さとして出てくる。物理は同じ。
誘電損失
PCBの誘電体(FR-4等)は理想的なコンデンサじゃない。交番電界に対してエネルギーを消費する。誘電体のアドミタンスを書くと、
理想的なら だけど、実際の誘電体は 。損失の度合いは損失正接(loss tangent) で表される。FR-4の は約0.02で、高周波用の低損失基板(Megtron 6等)だと0.002程度。
誘電損失も周波数が高いほど大きくなるから、表皮効果と合わせて高周波成分がダブルで削られる。
プリエンファシスとディエンファシス
高周波の減衰に対処するには、減衰する前に高周波成分を持ち上げておけばいい。これがプリエンファシス。
送信側でエッジ付近の振幅を意図的にオーバーシュートさせる。時間領域で見ると「角を立てる」操作。周波数領域で見ると高周波成分のブースト。伝送路で高周波が減衰しても、事前にブーストしてあるから受信側ではちょうどいい波形になる。
ディエンファシスはアプローチが逆で、高周波を持ち上げるのではなく低周波成分を減衰させる。相対的に高周波の比率が上がるから効果は同じ。消費電力はディエンファシスのほうが少ない(全体の振幅が小さくなるから)。PCIe Gen3以降はディエンファシスが主流。
プリエンファシスは時間領域の操作だけど、周波数領域では高周波成分の増幅に相当する。フーリエ変換で見れば、矩形波の高調波成分(3次、5次、7次……)を選択的にブーストしていることになる。フーリエの記事で書いた話がここに繋がる。
デジタルオシロスコープ
高速信号の測定にはデジタルオシロスコープを使う。アナログ信号をA/D変換してデジタルデータとして処理する。
1GHzの正弦波を測定するとき、A/D変換のサンプリング周波数はナイキストの定理より2倍以上が必要。 以上。フーリエの記事で「DFTでは信号の周期とサンプリング区間を一致させる必要がある」って書いたけど、ナイキストの定理はもっと根本的な話で、サンプリング周波数が信号周波数の2倍未満だとエイリアシング(偽の周波数成分)が発生して元の信号を正しく復元できなくなる。
ここで重要なのは、1GHzの矩形波を測定するには帯域1GHzのオシロスコープでは不十分だということ。矩形波は基本波(1GHz)に加えて3次高調波(3GHz)、5次高調波(5GHz)……を含んでいる。帯域1GHzだと高調波が全部切り落とされて、矩形波がほぼ正弦波に見えてしまう。矩形波のエッジをちゃんと観測するには、帯域は基本波の3〜5倍(3〜5GHz)欲しい。
アイパターン
高速デジタル信号の品質を一発で評価する方法。連続するランダムビットパターンのアナログ波形を、1ユニットインターバル(1ビット周期)ごとに重ね書きする。すると目(eye)のような模様が現れる。
アイパターンから読み取れるパラメータは9つ。
= 0レベル(ロジックLOWの電圧)、 = 1レベル(ロジックHIGHの電圧)、 = 立ち上がり時間幅、 = 立ち下がり時間幅、 = 目の開口高さ(eye height)、 = アイ幅(eye width)、 = ジッタ(エッジ位置の揺らぎ)、 = 振幅()、 = ユニットインターバル(1ビット周期)。
目が大きく開いているほど信号品質が良い。具体的には、
(eye height)が小さいとノイズマージンが減る。0と1の判別閾値に対して余裕がなくなるから、わずかなノイズでビットエラーが起きる。
(eye width)が狭いとサンプリングタイミングの余裕がなくなる。受信側のクロックリカバリ回路が信号をサンプリングするタイミングに余裕がないと、少しのジッタでビットを読み間違える。
(ジッタ)が大きいとエッジの位置が揺れる。クロックとデータの位相関係が崩れて、正しいタイミングでサンプリングできなくなる。ジッタにはランダムジッタ(熱雑音等)とデターミニスティックジッタ(ISI, クロストーク等)があって、後者はプリエンファシスで改善できることが多い。
プリエンファシスが効いているかどうかもアイパターンで確認できる。適用前は目がつぶれかけていたのが、適用後にパカッと開くのが見えたら成功。アイの開口が広がって0レベル部分が安定する。