基礎から学ぶ車載 Ethernet 技術(11)「1000BASE-T1」符号変換の概要 80B81B / RS FEC

初期の 10BASE5/2/-T は、伝送路上のフレーム間ギャップは無信号状態になっている。これは1本の伝送路を複数ノードで共有するバス方式のため、信号の衝突を避けるにはデータを送信していない期間を無信号にする必要があるからだ。10BASE5/2/-T では、プリアンブル受信でフレームの開始を知り、プリアンブルの最後に付加される SFDStart Frame Delimiter)でフレーム有効データの先頭を知ることができる。フレーム終了は無信号に変わることで検知できる仕組みだ。

次に登場した汎用 100BASE-TX では撚対線を使用し全2重通信ができるようになり、ノード間は 1対1 で接続される。複数のノードで1つの媒体を共有することは無く、フレーム間ギャップを無信号にする必要もなくなった。「埋込クロック方式」で確実にクロックを再現するためにも、100BASE-TX ではフレーム間ギャップを「1」の連続信号に変えた。このため、フレーム間ギャップの無信号期間がなくなり、フレームの開始・終了を検出する何らかの「区切りコード」が必要になった。

車載 1000BASE-T1 も同様にギャップ期間が「1」の連続信号になっているため、フレームの開始と終了を検出する「区切りコード」が必要だ。1000BASE-T1 は 100BASE-T1 と同じ 3B2T/PAM3 変換を行うため、区切りコードは 100BASE-T1 と同じだ。もちろん、コード変換が異なる 100BASAE-TX/1000BASE-T とは区切りコードが異なる。

汎用 100BASE-TX 物理層では、同期クロックを抽出するために、かなり複雑な符号変換を行っている。送信時に 4B5B 変換→パラレル・シリアル(NRZ)変換→スクランブル→NRZ to NRZI変換→NRZI to MLT3変換とデータを順次変換し、受信時はこの逆変換を行う。 EMI 対策を考慮した仕様にもなっているが、当時は EMI に対する意識が低く回路技術やフィルターなどの周辺部品技術も十分ではなく、VCCI や FCC 取得には相当な苦労があった。

車載 1000BASE-T1 規格では、1対の撚対線への対応、 IEEE が規定する撚対線のエラー規定(10-10)を満足することと車載 EMI 対策が最大のテーマになった。そこで、100BASE-T1 にはない「リードソロモン訂正符号」を採用した。「リードソロモン訂正符号」は後ほど解説する。

9 ビット単位で動作するリードソロモン訂正符号の採用に伴い 100BASE-T1 とは異なる 80B81B 変換を採用する必要があった。符号変換は、独自の方式として 80B81B/RS FEC 符号/スクランブル/3B2T/PAM3 方式となった。

リードソロモン訂正符号追加により、データ量は約 11% 増加する。何もしなければ、伝送周波数は約 1.1GHz となり EMI 規制に対応できない。3B2T/PAM3 変換で伝送周波数を 750MHz に、シンボルレートを 375MHz に下げているが、これとて十分ではなかったようだ。車載環境の放射妨害波規制やノイズ環境は規格制定時の想定を超え、 UTPUnshielded Twisted Pair)ではなく STP (Shielded Twisted Pair)で対処した例も報告されている。

車載 1000BASE-T1 では 3B2T/PAM3 変換とスクランブラによるランダム化で信号反転があるため、クロック抽出に支障をきたすことはない。また、送信データをランダム化しホワイトノイズ化する「スクランブル」機能に変更はないが、LFSR が 100BASE-T1/1000BASE-T と異なる。

1000BASE-T1 PHYでは、GMII 経由で MAC(第2層)から受信した 8 ビットデータを次の順序で処理する。「図1 送信手順」をご覧いただきたい。受信手順はこの逆順となる。

  • 80B81B 変換
  • 81B ブロックを 45 個集め OAM 追加
  • 誤り訂正 RS FEC 符号追加
  • スクランブル
  • 3B2T 変換
  • PAM3 変換

80B81B 変換

80B81B 変換では、GMII 経由で 8 ビットデータを 10 回受け取り、 80 ビットデータブロックを作る。

次に先頭にデータブロックか制御ブロックかを識別する 1 ビット追加し、 81 ビットのブロックを作る。追加する 1 ビットは「図1 送信手順」の Data/Ctrl header だ。Data/Ctrl header=0 の場合はデータブロック、 Data/Ctrl header=1 の場合は制御ブロックになる。

81 ビットブロックを 45 個集め OAM フィールド( 9 ビット)を追加する。

次に、誤り訂正のため RS FEC 符号化を行う。1000BASE-T1 では、IEEE が規定する 未満のビットエラーレートを実現するために、このような処理が必要になった。

スクランブル処理を行った後、 3B2T 変換を行い最終的には 100BASE-T1 と同じ PAM3 信号に変換しデータを送信する。

OAM 、RS FEC 符号化 とスクランブル処理は改めて説明する。

図1 送信手順
図1 送信手順

リードソロモン訂正符号

45 個の 81 ビットブロックを集め、9 ビットの OAM コードを付加すると 3654 ビット(45×81+9=3654)になる。リードソロモン符号は 9 ビットシンボルで動作するため、 3654 ビットブロックをリードソロモン符号シンボルで表現すると 406 シンボルになる(3654÷9=406)。

このリードソロモン符号は、 406 個のシンボルから 44 個のパリティシンボル(44×9 ビット=396 ビット)を作る。元データの 3654 ビットは、リードソロモン符号化により 4050 ビットのブロックになる。

このリードソロモン符号は、 22 シンボル(9 ビット単位)の訂正能力がある。約 11% のデータ増で 22 シンボルの訂正能力を得たことになる。

リードソロモン符号生成と伝送クロック

PHY は GMII インタフェース経由で、125MHz 1 サイクルで 8 ビットのデータを受け取る。この段階で伝送速度は 1Gbps(125MHz × 8 ビット= 1Gbps)になっている。

GMII 10 サイクル分のデータ 80 ビットを 1 ブロックとする。このブロックに 1 ビットの Data/Ctrl header を付加し 81 ビットのブロックを作る。 Data/Ctrl header は「0」でデータブロック、「1」で制御ブロックになる。 81 ビットでブロックを構成する理由は、リードソロモン符号が 9 ビットを取り扱い単位とするためだ(81 は 9 で割り切れる)。

81 ビットブロックを 45 個集め、3645 ビットのデータブロックを作る。 このブロック 3645 ビットブロックに管理情報 OAM(9 ビット)を付加し 3654 ビットのブロックを構成する。3654 ビットは、リードソロモン符号の基本単位 9 ビットで換算すると 406 個になる。この RS FEC は 406 個単位で訂正符号を生成することができる。

この 406 個のデータブロックに「訂正符号」 44 個(44 × 9 ビット=396 ビット)を追加し、元データと訂正符号で構成する「リードソロモン符号」が完成する。

完成した「リードソロモン符号」は、元データ 3600 ビットに対し 4050 ビットとかなり増えている。この増えたデータを本来の伝送期間 3600 ナノ秒で送信しなければならない。

3B2T 変換では、2 サイクルで 3 ビット送信できる。4050 ビットを送信するためには 2700 サイクル必要になる(4050 ÷ 3 × 2 =2700)。この場合の伝送速度は GMII の 1000Mbs に対し、1000 × 2700 ÷ 3600 = 750MHz になる。この結果、伝送路の周波数は 750MHz でシンボルレートは 半分の 375Mbd(メガボー)になる。

図2 リードソロモン符号と伝送クロック
図2 リードソロモン符号と伝送クロック

基礎から学ぶ車載 Ethernet

この記事を書いた人

岩崎 有平

早稲田大学 理工学部 電子通信学科にて通信工学を専攻。
安立電気(現 アンリツ)に入社後、コンピュータ周辺機器の開発を経てネットワーク機器の開発やプロモーションに従事する。
おもにEthernetを利用したリアルタイム監視映像配信サービスの実現や、重要データの優先配信、映像ストリームの安定配信に向けた機器の開発行い、Video On Demandや金融機関のネットワークシステム安定化に注力した。
現在は、Ethernetにおけるリアルタイム機能の強化・開発と普及に向けて、Ethernet TSNの普及活動を行っている。