オリジナルの無線LANをFPGAで作ろう 12ページ目


過去の記事はこちら 1ページ目 2ページ目 3ページ目 4ページ目 5ページ目  6ページ目 7ページ目 8ページ目 9ページ目 10ページ目 11ページ目


1-受信側FPGA-IQコード変換モジュール
引き続き受信側FPGAのファームを作っていきます。

前回まででIQ復調器を作りました。IQ復調器はI、Qそれぞれを16ビットで出力します。16ビットのI,Q信号を8ビット(256値)のコードに変換します。
この変換モジュールのモジュール名は、iq_2_codeにします。iq_2_codeモジュールには2つの機能が必要です。

 1. 通常コードを特殊コードと相対的に評価して、256値のどれに該当するか判定
 2. 256値のいずれにも該当しない場合は警告を出す

もう少し詳しく説明します。
1の特殊コードとの相対評価が必要な理由は、通信環境によって常に受信入力の強度が変動するためです。もし受信入力が弱くなると、
特殊コードも通常コードも同じ比率で一緒に弱くなると考えられます。受信入力が強くなった場合も同様に考えられます。



通常強度を特殊コードと相対評価することで、256値のどれに該当するか正確に判断できるはずです。なお、通信環境は変化していて、受信入力強度も常に変化しているはずですから、
相対評価するときの特殊コード強度は通信の初期化の時に固定してしまわず、特殊コードの強度は常に更新していきます。
特殊コード1回のあとに通常コードが99回(※)つづきますが、特殊コード強度を元にその後99回の通常コードを評価します。
※256値のシンボルが2つセットで1回とカウントします。



2.について、256値の判定には理想値より幅を持たせていますが、理想値よりも大きくずれた場合をエラーとします。通常は、エラーの場合は、送信側に再送を要求したり、
エラー訂正を行ったります。今回は、再送要求やエラー訂正のような複雑な仕組みは入れずに、エラーになった場合はコード0x0に強制的に置き換えてしまいます。



iq_2_codeモジュールはVerilogで作成しました。ソースコードはこちらからダウンロードしてください。前ページまでと同じようにシンボル化して回路図に配置してください。
既に配置済みのモジュールとiq_2_codeの結線は次回説明いたします。


次回は引き続き受信側のFPGAファームを作っていきます。


2015年2月6日 記
13ページ目に続く<

戻る