「FlexRayプロトコルの概要」第2弾。今回は、「エンコーディング/デコーディング」や「同期方法」など、FlexRayプロトコルのその他の項目を紹介する。
連載第2回「FlexRayプロトコルの概要(その1)」では、「通信構造/バスアクセス」「タイミング」「フレームフォーマット」「通信コントローラの状態遷移」の概要を紹介しました。
第3回はFlexRayプロトコルの他の項目、「エンコーディング/デコーディング」「同期方法」「スタートアップ」について説明します。
フレームやシンボルといった通信データをノードが送信する際に、どのようにビット列にエンコーディング(符号化)され、また受信ノードにてどのようにデコーディング(復号)されて、信頼性の高い、確実な通信が実現されているのかを紹介します。
以下の図1は、ダイナミックフレームをエンコーディングした際のビット列になります。「DTS」という部分以外はスタティックフレームも同じ構造を持っています。
大きく2つのプロセスに分けられます。
(1)受信信号サンプリング/ノイズフィルター実施
(2)ビットクロック調整/ビット値の決定
(1)受信信号サンプリング/ノイズフィルター実施
まず通信コントローラが受け取った受信(RxD)信号に対して、各ノードのサンプルクロックを基に1ビット当たり8個のサンプルを取ります。FlexRayでのバス信号はノイズを低減するための差動信号になっていますので、このままでは大きなノイズまで取得してしまいます。そのため、“多数決(Majority Voting)”フィルターという処理を実施し、ノイズを取り除きます。
(2)ビットクロック調整/ビット値の決定
多数決フィルターにて値を調整した後、今度はビットレベルのタイミングについて調整を行い、最終的なビット値を決めます。
ビットクロック調整はビット列のBSS部分など、決まったタイミングで必ず発生する立ち下がりエッジ(1→0)を基準として行います。各ノードでは、サンプルクロックを基に1ビット当たり8つのサンプルをサンプルカウンターでカウントしており、立ち下がりエッジを検出してから次のクロックでサンプルカウンターを“2”にリセットします。これにより、立ち下がりエッジを検出したクロックでカウンターが“1”にリセットされる場合と同等の動作となり、タイミングが修正されます。この後、サンプルカウンターが“5”のときの“多数決フィルター後の値”をビット値として採用します。
Copyright © ITmedia, Inc. All Rights Reserved.