波形見放題! データのダンプ方法

第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