基礎から学ぶ車載 Ethernet 技術(8)「100BASE-T1 」4B3B/3B2T/PAM3 変換 / フレーム構造

4B3B/3B2T/PAM3 変換

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

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

車載 100BASE-T1 も同様にギャップ期間が「1」の連続信号になっているため、フレームの開始と終了を検出する「区切りコード」が必要だ。しかし、100BASAE-TX と 100BASE-T1 は符号変換方式が異なるため、区切りコードは異なる。

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

車載 100BASE-T1 規格では、1対の撚対線に対応することと車載 EMI 対策が最大のテーマになった。そこで符号化方式を見直し、独自の方式として 4B3B/スクランブル/3B2T/PAM3 方式を採用した。構造上はシンプルになり動作基準クロックも低くなっているが、これとて十分ではなかった。車載環境の放射妨害波規制やノイズ環境は規格制定時の想定を超え、 UTPUnshielded Twisted Pair)ではなく STPShielded Twisted Pair)で対処した例も報告されている。

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

4B3B 変換後スクランブル処理が入るが、これを除いた 4B3B/3B2T/PAM3 変換の手順を説明したい。スクランブラは、100BASE-TX と同じだが、後ほど改めて説明する。

図1 100BASE-T1 符号化処理」は、4B3B/3B2T/PAM3 の一連の信号変換の例だ。物理層(PHY)は MII 経由で第2層(MAC)から Tx_CLK/25MHz サイクル毎に4ビット(ニブル)のパラレルデータを受け取る。この時点での伝送速度は 100Mbps(25MHz×4ビット)になっている。物理層(PHY)では、この4ビットデータを3ビットに区切り、物理層クロック pcs_txclk/33.3MHz サイクル毎に3ビット情報を1サイクルで送信する。この時点での伝送速度は 100Mbps(33.3MHz×3ビット)と変わっていない。MII から受信した 4 ビットデータは 4B3B 変換で 3 ビットに区切られるが、LSB(右端)から送り出されるため、 「図1 100BASE-T1 符号化処理」の最初の 3B データはd0[2:0] 、2番目の 3B データは d1[1:0] と d0[3] になる。

図1 100BASE-T1 符号化処理
図1 100BASE-T1 符号化処理

pcs_txclk/33.3MHz 1サイクルで3ビット情報を送るため、3ビット情報を2つの3値情報に変換する。これが 3B2T 変換になる。3ビット情報は全部で8通り(=23)あり、「図2 3B2T 変換図」の様に2つの3値情報は全部で9通り(=33)ある。3ビット情報を2つの3値情報に変換すれば、全てを表現し1つ余ることになる。3値情報は +1 V/0 V/-1 V で表現し、3ビット情報と2つの3値情報の対応は「表1 3B2T 変換表(100BASE-T1)」のようになる。余った [0:0] は、フレームの開始と終了を示す区切りコードに使われる。

図2 3B2T 変換図
図2 3B2T 変換図
表1 3B2T 変換表(100BASE-T1)
表1 3B2T 変換表(100BASE-T1)

図3 3B2T 変換例」は、3ビット情報 [101] と [011] が「表1 3B2T 変換表(100BASE-T1)」に従い2つの3値情報に置き換わり、 PAM3 信号に置き換わる例だ。3B2T 変換方式は、100BASE-T1 と1000BASE-T1 で異なるため、注意が必要だ。

図3 3B2T 変換例
図3 3B2T 変換例

4B3B 変換で、フレームの総ビット数が3で割り切れない場合は、3で割り切れるように1ビットまたは2ビットをスタッフビットとして追加する。受信側は第2層(MAC)に渡す前に、このスタッフビットを削除することで元に戻すように動作する。受信側のスタッフビットの検出と削除は、フレームの総ビット数が 8 の整数倍になっている(つまりバイト単位)ことが前提であるため、最後の 8 ビットに満たないビットを廃棄すればよい。「図4 4B3B 変換:スタッフビット追加なしの例」はスタッフビットを追加しない変換例で、「図5 4B3B 変換でスタッフビットを2ビット追加した例」はスタッフビットを2ビット追加した例だ。

図4 4B3B 変換:スタッフビット追加なしの例
図4 4B3B 変換:スタッフビット追加なしの例
図5 4B3B 変換でスタッフビットを2ビット追加した例
図5 4B3B 変換でスタッフビットを2ビット追加した例

フレーム構造

物理層のフレーム構造は汎用 100BASE-TX と同じ構造になっている。違いはフレームの開始と終了を検出する「区切りコード」だ。

フレームの開始を示す区切りコード(SSD: Start of Stream Delimiter )は、PAM3 信号の [0 0][0 0][0 0] と 3B2T コードの未定義コードを3回繰り返す。この開始区切りコードの後に Ethernet フレームのプリアンブルが続く。ただし、SSD を追加したためプリアンブルは1バイト分短縮される。この辺りも汎用 100BASE-TX と変わらない。

フレームの終了を示す区切りコード(ESD:End of Stream Delimiter)は2種類ある。正常フレームの場合は PAM3 信号の [0 0][0 0][+1 +1] の3つのコードを送信する。エラーフレームの場合は PAM3 信号の [0 0][0 0][-1 -1] の3つのコードを送信する。終了区切りコードの直前に Ethernet フレームの FCS フィールドがあり、終了コードの後にはフレーム間ギャップが連続送信される( 「図6 100BASE-T1 物理層フレーム構造」 )。

図6 100BASE-T1 物理層フレーム構造
図6 100BASE-T1 物理層フレーム構造

基礎から学ぶ車載 Ethernet

この記事を書いた人

岩崎 有平

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