Home
ABSの開発(第一、第二世代)
ポートON/OFFによるCI-V出力の評価Ver 2.1 '15/02/16
FL-7000の遠隔操作のためABSを機能強化(PIC16F1936)Ver 2.0 '14/12/12
自動バンド切換器 Ver.1.0 '14/07/14
All rights reserved JA3OOK 中村 利和
アマチュア無線局の遠隔操作について書き、そしてアンテナを自動的に切り替える機器(ABS)
を開発したことを書きましたが、ここではそのABSの製作について書きます。
★KENWOOD PC COMMAND やICOM CI-V、YAESU BAND DATA を知っている方、およびABS開発の経
緯に興味が無い方はここを飛ばして最新のABSを参照してください。
1.ABS(自動バンド切替機)のハードウエアとプログラミング
・ABSはKENWOOD TS−590のRS−232C端子から出ている信号を受信して
周波数情報を読み取り、周波数に対応したアンテナ切替リレーを駆動する機器。
・TS−590が出す信号の意味はKENWOOD発行の参考資料5「TS-590_pc_command_j.pdf」
に書かれている。
・RS−232Cの送受のプログラミングについては特に、あたるはさんの記事(参考資料3)
割込については木村繁裕さんの記事(参考資料2)が役立った。
・JG7EHMさん製作のATC(参考資料6 IC-PW1用周波数同期装置)の実物を入手でき、
実際にTS−590に接続し動作させ、さらには590の代わりにPCに接続しシミュレー
ションして信号を観測できたことは、本機のプログラミングとデバッグに大いに役立った。
大いに感謝しています。
・ABSのハードウエア回路図は次のとおり。
(FL-7000を制御対象に加えた時点で4項のH/Wに変わっている))
回路図記載省略(PIC16F88を使用)
・ABSプログラムの要点。
KENWOODとの通信の順序は
ABSから問いかけ → KENWOODが応答。
ABSからの問いかけはMCUの割込機能を利用し、1〜2秒程度の一定間隔で行う。
KENWOODからの応答を一文字ごと解析し周波数を読み解く。
読み解いたバンドに該当するポートをON、他をOFFにする。
これの繰り返し。
・プログラミング技巧の要点は処理速度優先、メモリー使用量は多くてもよし。
メモリー使用量は次のとおり。(v3.0) 余裕がまだまだある。
・ここで処理速度の検証。
RS-232Cの速度は9600bps。1文字当たり10ビット。だから1.04ms/文字。
1文字ごとに行う処理はバンドが確定した文字を処理する場合が一番多くなりC命令で
8命令くらいなので、計算する上で9C命令と推測しておく。
Cの1命令が平均で機械語4命令で実行されると推測すると、9×4=36。受信1文字当たり
36機械語命令で実行されている。。
本機は発振周波数が20MHzであるので1周期(1クロック)が0.05μs。1機械語命令は
4クロックで実行される(参考資料6 page149)ので、0.05μs×4=0.2μs/機械語命令。
36機械語命令×0.2μs=7.2μs。つまり受信1文字当たり最大7.2μsで処理している。
この7.2μsと最初の行の1.04msと比べると1/144であり、余裕率144倍で処理していると
推測できる。
これは推測に推測を重ねた計算!
・ABSからの問いかけ間隔1〜2秒の妥当性
ついでに推測に推測を重ねた計算をさらにやってみる。
問いかけるコマンドは IF; 3文字、返ってくるIF情報の文字数は38文字。(参考資料5)
往復に要する時間は (3文字+38文字)*10ビット/9600bps=42.7ms これに590とABSの処理
時間を各1msとすると合計45ms。従って、問い合わせ間隔は1s以上もあれば十分な余裕と思
える。
運用面から見ても、バンドを切り替えてから最大1〜2s程度の遅れでアンテナが切り替
わっても不便に思わないであろう。
2.ストップビット数 one or two stop bits
・TS−590との通信条件でストップビットは、4800bpsでは2、9600bps以上では1と規定
されている。(参考資料4の67ページ)
・JG7EHMさんのATC(Automatic Tracking Controoler V2.0)にならって、4800bpsで
通信したいが、PIC16F88のAUSART(UART)では 1しかない。(参考資料7 page102)
かまわず実行してみたところABSからの送信し対してTS−590からはエラーメッセー
ジ E;(通信エラー)しか帰ってこない。(なお、ABS側の受信には異常を感じない)
・やむを得ず9600bpsで通信しているが問題は起こっていない。
・two stop bitsはPIC16F系ではできない。AUSARTを使わず全てプログラミングして送信すれば
実現できるかもしれないがやっていない。
3.開発機と本番機
・前述の回路図は本番用のハード。
・LCD(液晶ディスプレイ)を付けた開発用ハードが別にある。
RS−232Cから受信した文字をLCDに表示してデバッグを助けている。
・開発機と本番機を分けたことで、ソフトのバージョンアップを時間を気にせずにでき、とて
も気楽。
LCD駆動用にポートが必要なので、開発機で切り替えられるアンテナは最大5系統。
下側の小さい基盤が秋月のPIC16F88 CPUボードモジュールキット。
・開発機の回路図。
4.FL-7000の遠隔操作のためABSを機能強化(PIC16F88→PIC16F1936)
88での開発と運用が一段落したのでABSをバージョンアップした。その目的は
・FL-7000の遠隔操作のために
「OPERATE SW」をON/OFFする機能の追加
「バンドデータ」を出力する機能の追加
・LCDを差し込めば液晶に運用データやデバッグ情報を表示できるようにしておきたい
・出力が大きくなるので高周波の回り込み対策をしっかりとったH/Wにしておきたい
からである。
そのためにはポートが多い機種が必須であり28ピンのPIC16F1936を選択した。(ピン間のサイ
ズが1/10インチであることも目が悪くなりつつある私には必須であるとも思えた)
ABSのハードウエア回路図は次のとおり。
回路図記載省略(PIC16F19368を使用)
回路図についてのいくつかの補足説明。
・出力が大きくなるので高周波対策に力を入れた。
高周波が進入して来そうな個所にはLとCを入れた。ICOM CT-17 に施されている対策を
参考にしている。
回路図の太く黒い線は文字通り太い線での配線を意味している。同軸の外皮を使った。
☆この二つの対策で効果が出たようで、従来は本来点灯するはずのないLED(ドライ
バーユニットの各リレーの駆動コイルにつながっているLED)が点等する場合があ
ったが、全く点灯しなくなった。
・本番機でもMCLR(1ピン)によるリセットを可能にした。そのために33kΩでHighに吊って
いる。
・OPERATEとBAND DATTAをポートRC4、RC0〜RC3に出している。
・RA0〜RA5にLCDへの表示データを出している。開発機は使用しているが本番運用機ではLCD
を挿していない。理由はLCDサブボードの頻繁な抜き差しでLCDを接触不良にしてしまった
苦い経験があり、必要性が低いのに差したくない。
・CI-V出力をポートRB0に出している。AUSARTは使わずに、シリアル通信の約束事(ビット
の数、ビット間の時間間隔など)に合わせてプログラムでポートをON/OFFする方法である。
実験中であり、報告できるところまで来ていない。
→ポートON/OFFによるCI-V出力の評価
その後、この方法(プログラムでポートをON/OFFする方法)でもCI-VでPW1のバンド
を自動切換えできることは確認できた。
しかし開発時にオシロスコープを見ながら、シリアル信号の出力タイミングのプログ
ラム変数値を試行錯誤する必要がありとても手間がかかる。通信速度の設計変更にも
対応しずらいし、PIC変更時の再現性も低くなりそうである。
それで、AUSARTを2個装備するPIC18F25K22を探し出し、安価でもあり、これを利用
し開発し直した。第三世代のABSを参照。
プログラムのPIC16F88からPIC16F1936への移行はスムーズに進み、「OPERATE SW」をON/OFFする
ことや「バンドデータ」を出力することも難しいところはなかった。
・OPERATE SWのON/OFF
TS-590からRS-232Cで送られてくる信号の中にRIT情報があり、これに従ってポートRC4を
ON/OFFしている。
・バンドデータ
上記と同様に周波数情報に従ってA,B,C,Dに対応するポートRC0〜RC03をON/OFFしている。
周波数とA,B,C,Dの対応はFL-7000の遠隔操作に記述してある。
参考資料
1 KENWOOD TS-590 取扱説明書
2 KENWOOD TS-590 PCコマンド集
3 JG7EHM JG7EHMのHP→IC-PW1用周波数同期装置
4 ICOM CT-17 取扱説明書
直前の画面へは ブラウザの戻る をクリックしてください。Topに戻るにはHome