つながるワイヤレス通信機器の開発手法(14) ファームウェアを設計する(その2) ──エラー制御と高周波制御を実現する方法
● 双方向のエラー制御を行うARQ
一方,ARQは受信側でエラーを検出した場合,送信側に対して同じデータの再送を要求し,複数回のやり取りで正確なデータを受信する方法である(図2).FECと異なり,ARQは双方向で通信できなければ実現できない.
身近な例として,テレビ放送のエラー制御を考えてみよう.一般に,テレビ局からは送信するだけ,各家庭では受信するだけの片方向通信であるため,FECを使用することは可能だが,ARQを使うことはできない(ただし,最近はデータ放送などによる双方向サービスも行われている).
ARQを実現するためには,通信路で生じたエラーを受信側で検出する機能と,エラーの有無を送信側に伝えられる双方向の通信路を備えることが必要である.これら二つの条件がそろっているものとして,図2の動作を説明する.
送信側は最初のデータであるデータ(1)を送信する.受信側ではCRC(cycle redundancy code)などのエラー検出処理によってエラーの有無を確認する.図2のAにおいてエラーが検出されると,受信側から再送要求を出す(図2のB).再送要求を受けた送信側ではもう一度最初と同じデータ(1)を送信する(図2のC).Cで送信されたデータ(1)が,今度はDにおいて正常に受信されたとする.すると,受信側では正常に受信されたことを正常受信通知として送信側に知らせる(図2のE).この通知を受けた送信側は次のデータであるデータ(2)を送信する.Gにおいて正常受信されると,データ(2)に対する正常受信通知を送信側に送る(図2のH).以降,上記の動作を繰り返し行う.
この動作の中で使われている再送要求はNAK(non-acknowledge),正常受信通知はACK(acknowledge)と呼ばれる.
図2 ARQ
ARQでは,受信側でエラーを検出したとき,送信側に対して同じデータを再送することを要求する.複数回のやり取りで正確なデータを受信できる.