第1部 第 いつでもチェックできるのが オール・ソフトウェアの醍醐味! 3章 波形見放題! データのダンプ方法 高橋 知宏 キャプチャ・ バッファ FIR用バッファ 復調バッファ リサンプリング・ バッファ FIR用状態保存 末尾からタップ数分 を先頭にコピー バッファ0 0x2000 0000 DMA タップ数分の FIR状態保存 I バッファ ∼ 0x1008 0000 0x1008 003F 0x1008 0040 Q バッファ 0x1008 1000 0x1008 103F 0x1008 1040 0x2000 FFFF 0x1008 183F 0x1008 8000 0x1008 9000 0x1008 90FF 0x1008 9100 0x1008 9500 0x1008 95FF 0x1008 9600 0x1008 A000 0x1008 87FF 0x1008 94FF 0x1008 99FF 0x1008 BFFF ∼ バッファ1 0x2000 8000 タップ数分の FIR状態保存 ∼ 0x1008 083F オーディオ・ バッファ ∼ 0x2000 7FFF リサンプリング・ バッファ2 A-D コン バータ RF 信号 CIC フィルタ MPUとDMAが 独立しているた めダブル・バッ ファの構成 FIR フィルタ I とQ は別の バッファに格納 FM 復調 I とQ を交互に 並べて格納 ステレオ PLL FM復調信号 L −R の成分 を取り出す FIRフィルタ + マトリックス L とR を 並べて配置 I2S出力 I2S信号 図 1 オール・ソフトウェア信号処理 FM ステレオ・ラジオの各段階のバッファ FIR フィルタ用のバッファは効率良い処理ができるようタップ数分余分に前部にコピーを保持している.他にもダブルバッファや,IQ が別のバッファに配 置されているなど,処理によりバッファの使い方に違いがあるので,ダンプするときは内容の見方に注意が必要 ソ フ ト ウ ェ ア 信 号 処 理 無 線(SDR;Software Defined Radio)のメリットの一つに,信号データを格 納したメモリをダンプさえすれば,受信途中の波形も 比較的簡単にチェックできることがあります.動作状 態を確認する方法としても有用です. 処理の各段階にはバッファがあり,信号処理の中間 状態のデータが保存されています.図 1 に処理の各段 階に存在するバッファを示します. A-D コンバータの変換結果を DMA で転送し,キャ プチャ・バッファが満たされるごとに割り込み信号処 理を実行し,すべてのバッファを更新しています. ここでは,統合開発環境 LPCXpresso とデバッガを 利用して,バッファの内容を取り出す方法を説明しま す. 2015 年 7 月号 ● ステップ 1:DMA を止める 高 速 A-D コ ン バ ー タ の 取 り 込 み デ ー タ( キ ャ プ チ ャ・ デ ー タ )は,CPU を 使 わ ず に,DMA で バ ッ ファに転送されています.バッファの内容を取り出す ために,プログラムの実行をデバッガで停止したとし ても,DMA は動作し続けてしまいます.そのため, キャプチャ・バッファの内容を取り出す場合には, DMA を一時的に停止する必要があります.もし停止 しないと,バッファをダンプしている最中にもバッ ファが更新されてしまうため,波形が切れ切れとなっ てしまい正常に取り出すことができません. ▶ロータリ・エンコーダの操作 今 回 の LPC4370 用 FM ラ ジ オ・ プ ロ グ ラ ム で は, DMA を停止するための機能を用意しています. DMA を停止するには,ロータリ・エンコーダを 4 41
© Copyright 2024 ExpyDoc