PICのファーム
GPIBとのやりとりは、PICがおこない、パソコンとのやりとりは、RS232Cとなり、すべてcomポートを通してのやりとりになります。
そこでPICへのコマンドを以下のように決めました。
コマンド | ASCII | 引数 | 応答 | 内容 | 備考 |
S | 53 | 無し | 無し | リセット(全IOポートが入力) | |
T | 54 | 秒 | ER | タイムアウトを秒単位で指定 | 1〜12秒まで設定可能 初期値は1秒、設定範囲外を指定すれば、エラーとなり最大値12秒となる |
C | 43 | コマンド | ER | ATNをLowにしてバスコマンドを出力 | コマンドは、1byteのみ |
W | 57 | バイト数 データ |
ER | ATNをHighに上げてデータを出力 | MAX32byte |
D | 44 | 無し | ER LF |
LF(デリミタ)が検出されるまでデータを受信 | ・・・ LF(0xa)を受信したとき受信終了 |
E | 45 | 無し | ER EOI |
EOIが検出されるまでデータを受信 | data+EOIを検出したとき受信終了 dataに続きEOI(0x04)をPCに送出 |
R | 52 | 無し | ER EOI |
1byteデータを受信 | data+EOIを検出したとき EOI(0x04)をPCに送出 *EOI発生時のデータバイトは、無視される |
大文字 | 引数は、順次送信 | 正常時ER:0 異常時ER:01 EOI:04 LF:A |
PICのファーム用のコンパイラとしては、mikroBasic PRO for PIC(ver6.6.1)を使用しました。mikroBasic
PROは、フリーソフトではありませんが2kワードまでは、制限なく使用できます。このプログラムは1770ワードですのでフリーの範囲におさまっています。