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


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


1-受信側FPGA-低速DACのインターフェースモジュール
引き続き受信側FPGAのファームを作っていきます。

低速DACのインターフェースモジュールをつくります。
低速DACには、テキサスインスツルメントのPCM1754を採用します。PCM1754のデータシートはメーカサイトからダウンロードしてください。
PCM1754は24ビット・ステレオのDACですが、24ビットの下位8ビットにはダミーデータを入れて、ステレオのうち片CHのみ使います。

前のページで16ビット48kSpsの音声データが得られるところまで作りました。16ビットのデータはFPGA内部ではパラレルになっていますが、PCM1754はI2Sシリアル入力ですので、
変換モジュールを作る必要があります。変換モジュールの名前は、pcm1754にします。
pcm1754モジュールはVerilogで作成しました。Verilogのソースコードはこちらからダウンロードしてください。
pcm1754ソースコードをダウンロードしましたら、シンボル化して回路図に配置してください。


2-受信側FPGA-10MHzバンドパスフィルタ
IQ復調回路の直前に挿入するバンドパスフィルタをつくります。バンドパスフィルタの中心周波数は10MHzです。
バンドパスフィルタを挿入して高速ADCで取り込んだ波形データから10MHz近傍だけを抽出して、外来ノイズでの通信エラーを起こしにくくします。
今回の実験では送信・受信をケーブルでつなぎますので、外来ノイズはほとんど入り込みません。ケーブルではなく空間を伝送させるとときは、バンドパスフィルタが威力を発揮します。

バンドパスフィルタを作るには、NCOと同じようにMegaWizardを使います。
メインメニュー → Tools → MegaWizard Plug-In Manager で新規モジュール作成画面が開きます。



モジュール一覧からDSP→Filters→FIR Compiler v11.1を選びます。名前はBPF_10MHZにします。




FIR Compiler のウィザードが開いたら、
 @Step 1 Parameterizeをクリックして、Parameterizeダイアログを出します。
 AParameterizeダイアログが開いたら、Edit Cofficient Setをクリックして、Cofficientダイアログを開きます。
 BCofficientダイアログで、バンドパスフィルタの中心周波数や、バンド幅などのパラメータを設定します。
 CCofficientでパラメータを設定して、Applyをクリックすると周波数特性をグラフで確認できます。
Cofficients(タップ数)などをいろいろ変えながら、周波数特性がどのように変わるか遊んでみてください。
今回作るBPFのパラメータは、FilterType:BnadPass WindowType:Rectangular Cofficients:20 SampleRate:7.32728E7  Cutoff Freq1:9.0E6  Cutoff Freq2:1.1E7に設定しました。
 Dパラメータ設定が終わったら、OKをクリックして、Cofficientダイアログを閉じてください。






Parameterizeダイアログで、ビット数などのパラメータ設定をします。
 @Coefficientsのビット数を16に設定します。
 Ainputのビット数を16に設定します。
 Bフィルタ内部では35ビット精度で計算されますが、下位19ビットを捨てて16ビットで出力するようにします。
  CustomResolutionを選択して、MSB:0 Truncate LSB:0 Truncateを設定します。
 Cパラメータ設定が終わったら最後に、Finishをクリックします。





FIR Compiler のウィザードのStep3 Generateをクリックして、バンドパスフィルタの作成が完了です。


このページで作成したpcm1754モジュールとBPF_10MHZモジュールを回路図に配置して、結線をします。下の図は結線の終わった状態です。






2015年2月20日 記
15ページ目に続く

戻る