DDSで正弦波を出力し、ログアンプでレベルを測定します。
そのデータをPICで液晶表示器に表示すると同時にパソコンに転送して、
パソコンのプログラムで周波数特性として表示、保存します。
市販キットのDDSユニットにPICを組み合わせた正弦波発信器と、ログアンプとPIC16F876を
使ったデシベル測定器を組み合わせて、10Hzから10MHzまでの範囲で周波数特性を測定
するための測定器を作ってみました。
これにパソコンをシリアルインターフェースで接続して、周波数特性をグラフ表示できる測定器
が完成します。ここでは、このパソコン側のプログラムについて説明します。
この周波数特性測定器のプログラムはすべてVisual Basic 6.0で作りました。シリアル通信には
MSCommコンポーネント、ファイルの保存、読み出しにはCommon Dialogコンポーネントを使って
います。
このプログラムは下記からダウンロードできますので自由にお使い下さい。
★Visual Basic Project関連ファイル一式
(開発環境はWindows2000ベースです。exeファイルを含んでいます。)
★sweeper.exe (実行には別途VB6のRunTimeモジュールが必要です)
【機能概要】
今回の周波数特性測定器のパソコン側の機能は下記のようになっています。
(1) シリアル通信の設定
シリアルインターフェースの各種条件を設定変更する
(2) 周波数特性の測定と表示
測定する周波数の上限、下限と刻みを設定して直接計測してグラフにリアルタイム
で表示する。
(3) レベル変動の測定と表示
指定した周波数を出力したまま、一定時間間隔でレベルを計測しグラフに表示する。
時間間隔は0.1秒、1秒、1分の3種類
(4) 測定した結果のファイル保存
測定結果をcsvファイルとして保存する。周波数測定とレベル特性それぞれ別に
保存する。
(5) 保存データの読み出しとグラフ表示
保存されたcsvファイルを読み込んでグラフに表示する。複数グラフを同じグラフ内
に重ねて表示することが出来る。
【全体構成】
まずプログラム名称は、「Sweeper」とし、プログラムの全体構成は4つのフォームを
ベースに構成しました。
フォームとしては、下表の4種類で構成されています。
オブジェクト名 機能内容 含む内容 基本フォーム
frmSweeper基本フォームで、本測定器の機能を
実行するための各種メニュー、ボタン
を全て含む。メニューコマンド
通信設定
周波数特性測定用設定制御
レベル特性測定用設定制御通信設定フォーム
frmComSetting通信パラメータ設定用フォームで
通信速度、パリティなどの設定用。通信パラメータ入力 周波数特性グラフ
frmFreqChart周波数特性表示用グラフで
片対数グラフとなっている。
グラフには表題が付けられる。2チャンネルの周波数特性
グラフ表示レベル特性グラフ
frmTimeChartレベル特性表示用グラフで
横軸は時間となる。
グラフには表題が付けられる。2チャンネルのレベル特性
グラフ表示
このフォームからのイベントをベースにして全体が構成されており、下図のような
プログラムモジュールから成り立っています。
機能的には基本モジュールの中に全て含まれており、その他のフォームはグラフ表示
などの特定の表示をするためだけに用意されています。
タイマーを2個使い、周波数特性測定用(Timer1)とレベル特性測定用(Timer2)となって
います。このタイマは必ずいずれか片方のみ動作するものとし、両方同時に動作する
ことは無いようにしています。それぞれのタイマが測定のインターバル時間として使わ
れます。
通信のMSCommコンポーネントのイベントは沢山ありますが、データ受信イベントを
中心にして使います。受信イベントでデータを1バイトづつ受信して区切りコード(0x0D)
であれば、それまでの受信データを1組(2チャンネル分)のレベル計測データとして
処理します。
【プログラム概要】
基本フォームは下図のようになっています。
まず、メニューの中に、ファイルの保存、読み込み、通信設定があります。
画面の中は、大別して左側が周波数特性測定で、右側がレベル特性測定用です。
同時には動作できずいずれか片方しか動作しません。
隠しコンポーネントとして、MSCommコンポーネントとCommon Dialogコンポーネント
そしてTimerが2つ設定されています。
このTimerは周波数特性測定用とレベル特性測定用に使います。
機能毎の操作の流れは下記のようになります。
(1) 通信接続
通信接続ボタンを押す。
通信パラメータがデフォルトで良い場合にはこれだけで完了です。
通信パラメータを変更するときには、メニューの設定の中から、「通信関連設定」を
クリックして、必要な設定変更をしたあとOKボタンを押します。
この設定画面は下記としています。
(2) 周波数特性計測
操作の流れは下記とするものとします。
・周波数の上限値と下限値を入力 (上限、下限の値のチェックをする)
↓
・測定きざみを入力(何分の1かを指定)
↓
・グラフの見出しを入力(省略可)
↓
・計測開始ボタンを押す
↓ (途中中止の時は 計測停止ボタンを押す)
・グラフ画面が表示され、順次計測値が表示される。
↓
・上限周波数になったら終了
(3) レベル特性計測
操作の流れは下記とするものとします。
・測定する周波数値を入力
↓
・計測周期を入力(3種類のどれかを指定)
↓
・グラフの見出しを入力(省略可)
↓
・計測開始ボタンを押す
↓ (途中中止の時は、計測停止ボタンを押す)
・グラフ画面が表示され、順次計測値が表示される。
↓
・一定回数計測完了したら終了する
(4) ファイル保存
メニューからファイル保存を行うことが出来るが、このときの操作は
下記とするものとする。
・メニューのファイル→保存を指定
↓
・表示されているグラフのデータの保存確認をする。
↓
・ファイル名の指定入力
(5)ファイル読み出し表示
メニューからファイル読み出し表示を指定することで保存されている
データをグラフ表示する。
・メニューからファイル→読み出し表示を指定
↓
・グラフ画面を表示しそこにデータを描画する。
既に表示されていれば、そこに上書きする。
【周波数特性図】
周波数特性を表示するためのフォームがfrmFreqChartになります。
そのフォームは下図のようになっていて、グラフ描画部分はプログラムで描画しています。
このグラフは本来は両対数グラフになるのですが、ログアンプのお陰で、レベルがリニア
データとして測定できますので、周波数のみ対数として表現すれば良いので、片対数グラフ
となります。この片対数グラフの座標表示は下記のリストのようにscaleで対数を指定して
しまい、10Hzから10MHzの固定範囲周波数をLog10という自然対数への変換をして表示
しています。
グラフ名称や、チャンネル名称は、基本フォームで入力されたデータをそのまま表示する
ようにしています。
周波数特性グラフフォームのプログラムリスト
実際に描画した結果のグラフは下図のようになります。
【レベル特性図】
レベル特性を表示するグラフフォームは下図のようになていて、これは単純な時間
を横軸にした正方方眼のグラフになります。時間軸は横が600の固定にしています。
これで、0.1秒、1秒、1分の間隔での測定になりますから、60秒、600秒、600分の
間のレベル変動をグラフにすることが出来ます。
これの実際に表示したグラフは下図のようになります。