2000-12-3
シリアルケーブルとIRタワーの間にワンチップマイコンを挟むことで、NEC PC-9800シリーズでLEGO MindStorms/RISの標準ソフトウェアを動作させることに成功しました。
いままではRISに付属するソフトはAT互換機専用であり、PC-9800シリーズで使用することができませんでした。その原因は以下の通りです。
- AT互換機と9800シリーズではシリアルインターフェースICに微妙に非互換な部分がある。
- 9800シリーズのシリアルインターフェースICである8251(または相当品)は、ハードウェアフロー制御に使用するCS信号がOFFの状態ではデータを送信できないようになっている。
- AT互換機のシリアルインターフェースICである16550(または相当品)は、CS信号の状態に関わらずデータを送信をすることができる。
- IRタワーはCS信号とRS信号を直結しており、これを利用して、RISのソフトはIRタワーの接続確認のためにループバックテストを行っている。
- RISのソフト(というかspirit.ocx)は接続確認後にRS信号をOFFにしてしまう。
- RS信号の出力はCS信号に入力され、それがOFFになっているので、8251は送信動作を停止していまう。
以下の条件を満たせば、PC-9800シリーズでもRISソフトを動作させることが可能です。
- IRタワーの接続確認のために、RS信号の出力とCS信号の入力が一致していなければならない。
- IRタワーの接続確認が終了した後は、CS信号の入力がONになっていなければならない。
そこで、ワンチップマイコンでRS信号を監視して、RS信号がOFFに変化した直後はCS信号をOFFにしますが、その後数十msの経過後にCS信号をONにすれば、上記の条件を満たすことができます。
回路図
PIC用プログラム
PIC16F84でなくても、もっと小さなPICでも作れますね。
これくらいの回路ならIRタワー内部に埋め込んでしまうこともできそうに思います。