60MHzスペクトラム・アナライザー用制御ソフト

記 2009年06月12日〜  ja3npl

  別項のハードウェア・本体;60mhz_db_scope を制御するパソコン・ソフトです。
  環境は、VB.NET2002、XpPro、900MHz 512MBのノートパソコンです。

  (追記)Sep-20-2017  新しく、Windows 10 用に、パソコン側ソフト;60mhz_db_scope_v5 を作りました。
詳しくは、次をご覧ください。

"Visual Basic.Net...で手作りソフト"
      その9.60MHzスペクトラム・アナライザー用制御ソフト(Windows 10用)  (2017/09/20)


  1. 60mhz_db_scopeの画面

    拡大表示

      左は、クリック、別ウィンドウ拡大です。画面の輪郭は、518x448ピクセル、波形表示部は300x300 です。


  2. コード・リスト

    コード・リスト

      VB.NETのコード・リストです。1,800行弱。Microsoft Word に貼り付けてあります。
      クリックで、別ウインドウ、テキスト表示です。


  3. ダウンロード、インストールの説明。

    1.   インストールするパソコンには、.NET Framework がインストールされている必要が有ります。.NET Frameworkについては、Microsoftのホームページを参照下さい。
    2.   ファイル;60mhz_db_scope_v30.lzhをダウンロードし、解凍すると、ファイル;60mhz_db_scope_v30.msi が得られます。 60mhz_db_scope_v30.msiをクリックすると、ウィンドウズ・インストーラが起動して、インストールできます。アン・インストールは、コントロール・パネルのプログラムの追加と削除..です。
    3.   標準では、C:\Program Files\ja3npl\60mhz_db_scope に、インストールされます。このディレクトリーにあるファイル;60mhz_db_scopeConfig.txtを開いて、COMポートの数値を書込めば、ポート番号を、変更できます。通信条件が不一致の場合は、ソフトは開かれず、エラー・ウィンドウが表示されます。
    ダウンロード

      左をクリックすると、ダウンロードのウィンドウとなります。
    ダウンロードのファイル名は、60mhz_db_scope_v30.lzh、101KBです。


  4. ソフトの構成

    1. データの送受信系

        COMポートを使っての、パソコンと、ハード側マイコン間の通信です。19200,n,8,1 です。パソコン側から周波数スイープのデータとアッテネータ等設定のデータを送信します。ハード側マイコンは、アッテネータ等の設定をし、スイープ巾の1/300のステップで、周波数を変更します。変更の度に、db値を採取し、パソコンにデータを返信します。合計301個のデータを送り終えると、ハード側マイコンは、待機状態になります。
        パソコンは、301個のデータに達すると、表示画面に、波形を書込みます。続いて、周波数スイープのデータ等を、送信して、繰り返しします。

        なお、次のやり方も、有りますが、表示が遅く、今回は採用しませんでした。
        パソコンから、周波数値を一つだけ送信する。ハード側マイコンは、その周波数で測定値を得て、返信して待機する。次の周波数値をパソコンから発信する..を繰り返すやり方です。ソフトの構成が大変シンプルになります。これを実験した所、301点のデータを得るのに、最速で3秒ほど掛かりました。時間を要しているのは、@USB、UARTでの通信時間、A測定の時リンギング防止の為の待機時間、B16ビット・マイコンでの32ビット数値計算の時間です。
        私のパソコンは、USB1.0なので、これをUSB2.0にすれば、16ビット・マイコンを32ビット・マイコンにすれば、早くなると思われます。UART部のフォト・カップラーがネックになるかも知れません。

    2. データの構成

        ソース・コードの抜粋では、次の3行で送信を表せます。

      AxMSComm1.Output = Transmit_Fcode + Transmit_Acode + Chr(13)
        Transmit_Fcodeは16文字のキャラクター、Transmit_Acodeは6文字のキャラクターで、送信終了の合図としてChr(13)です。これを、Comm1のバッファーに書込んで、順に送信されるようになっています。

      Transmit_Fcode = FreqStartHex + FreqStopHex
        FreqStartHexは8文字のキャラクター、FreqStopHexも8文字のキャラクター、で、16進の表示です。例えば、”0000000A”ならば、10進で"10"になります。

        Transmit_Acode = SwpTimeHex + RbwStr + AttStr + TgStr
        SwpTimeHexはスィープ時間;秒単位で3文字のキャラクター、”FFF”で ”4,095”まで表せます。RbwStrは1文字でRBWを、AttStrは1文字でATTの設定を、TgStrは1文字で、トラッキング・ジェネレータのオンオフ制御を行っています。

        一方、受信データは、3文字づつ、301回となります。3文字は、最大4,095です。ハード側マイコンは、10ビットのAD変換;最大1,023の能力なので、100dbを、数値1,000で返すようになっています。

    3. 画面表示の要領

        301個のデータを配列;ChartData(301)に収納、300x300ピクセルの横軸の一つ毎に、ChartData(301)の一つを割り当てて、各座標を算出し、座標間に線を引く..事をしています。
        消すときは、バックグランドと同じ色で、線を引いています。

    4. スペアナ用の制御項目

        沢山の制御数値は、ComboBoxを使って、リストの帯を表示選択しています。
      Mode ->Through,Norm,Cal
      Ave/P ->Ave 1,Ave 2,Ave 4,Ave 8,Ave16,Ave32,Ave64,Peak Env
      Ref ->+10dbm, 0dbm,-10dbm,-20dbm
      RBW ->Auto, 100Hz, 1KHz, 10KHz,100KHz,200KHz
      SWP ->Auto,1s,2s,3s,4s,5s,6s,7s,8s,9s,10s,20s,30s,40s,50s,60s,70s,80s,90s,100s,200s,300s
      T.G. ->On,Off
      Freq ->Start/Stop,Center/Span,Zero/Span

        この内、RBW;200KHzは特別です。60MHz巾を301点でスィープするには、RBW;200KHzが必要なのに、ハード側には、RBW;100KHzしか無い..よって、2回程、周波数をシフトさせながらスィープさせて、ソフトで2倍の巾を作っています。

    5. スクリーン・キーボード
      スクリーン・キーボード

        スクリーン・キーボードとは、左の様に、画面に呼び出すキーボードです。 C:\WINDOWS\system32\osk.exeで、Xpに標準に装備されています。
        本当は、60mhz_db_scopeの中に、テン・キーを組み込みたかったのですが、フォーカスの移動制御が難しくて、私には出来ませんでした。

         机の上で、空中配線の試作機を並べての測定中に、パソコン画面は、空中配線の向こうに有ります。手を伸ばして、キーボードから周波数変更の入力をするわけですが、空中配線が邪魔です。このような時は、手元のマウスだけで、画面操作のできるスクリーン・キーボードの出番となります。osk.exeを起動する押しボタンを60mhz_db_scopeに設けました。


以上

*戻る*