これからは,“コンピュータの時代だ”と言われて久しい。特に企業では,OA化,FA化が行われ,高効率化,信頼性の向上,コストダウンなどあらゆるところでコンピュータが貢献している。このような背景のなかで,鳥取県立倉吉高等技術専門校コンピュータ制御科では,特に制御(FA)に関する技術者の育成を目的として訓練を行っている。しかし,コンピュータ制御技術を習得するには,コンピュータのハードウェア,ソフトウェアをはじめ,電気,電子,機械など幅広いさまざまな分野の知識が必要なこと,制御で必要とされるマイクロコンピュータ(以下マイコン)システム開発には,複雑な開発過程が数多くあるにもかかわらず,十分といえる教材がないことなど,さまざまな問題点が現状として存在する。
そこで本科では特に訓練で使用する教材の開発に力を入れており,その1つとしてメカトロニクス教材(マイコン実験装置)の開発についてその概要を5/1994号で紹介した。今回はその教材のハードウェア仕様および実習例について報告する。
本教材は,実用面に即したコンピュータ制御(特にマイコン制御)の知識がより簡単に,しかも短期間で習得できるよう工夫してある。以下にその特徴を示す。
本校では,初心者向けのマイコン授業に鳥取県工業試験場が開発したBASIC-52ボードを使用している。このマイコンは,鳥取県工業試験場が,中小企業の新しい製品の開発,それに伴う設備の整備・改善等関係するソフトウェアやハードウェアに対する設計・研究・開発の費用と時間の軽減を図るために開発したものであり,特に初心者教育を念頭に置いた設計がなされている。また,実際に企業の製造現場で使用することを前提として作られていることから実践的な教育が可能であり,本校のマイコンの授業には最適である。
このボードの特徴はなんといっても,BASIC言語によるソフトウェア開発が可能なことにある。通常マイコンのソフトウェア開発では,アセンブリ言語が用いられており,これを習得するだけでもかなりの時間を要する。これに対し,BASIC-52ボードは,CPUにインテル社の8052AH-BASICを採用しており,BASIC言語によるプログラム作成が可能である。
具体的には,このボードはCPUである8052の内部8kバイトROM部分に,実数型のMSCBASIC-52というBASIC言語およびそのインタプリタ機能が焼き込まれている。このCPUは基本的なBASIC機能はもちろんのこと,浮動小数点演算や割り込み処理,機械語サブルーチンコールなどさまざまな特徴を持っている。またパソコンと接続して,パソコンのターミナルモードで直接プログラム開発を行い,コマンド1つでEEP-ROMへ焼き付けることができるため,ROMライタ,イレーサによる煩雑なデバッグ作業は不要である。さらに,A/D変換ボード,D/A変換ボード,GP-IBボード,パラレルI/Oボードなどを直接BASICで動かすことができるため,すばやくマイコン制御の概要を習得できる。
しかも,インタプリタの欠点を補うため,BASICコンパイラを使用してのプログラム開発ができるよう環境が整備されている。これは,BASIC言語で作成したプログラムをコンパイルし,そのオブジェクトファイルをリモートモニタを利用してマイコン側にダウン・ロードする方法である。このリモートモニタは,コンパイルされたオブジェクトファイルをマイコンのRAMエリアに転送して実行することができる(この方法はC言語の場合にもそのまま利用できる)。これらにより,マイコンのソフトウェア開発が,インタプリタ,コンパイラ両方式でパソコンなみに簡単に実現できる。
表1にBASIC-52ボードの仕様を示す。
図1に示すように,BASIC-52ボードは,CPUである8052AH-BASIC,ROM,RAMのほかに,リセット回路,クリスタル回路,シリアル入出力回路,アドレスラッチ,そしてアドレスデコーダから構成されている。以下にその機能を示す。
8052CPUのアドレス空間は,プログラムメモリとデータメモリに分離している。プログラムメモリには固定プログラムや固定データが格納され,読み出し専用である。一方,データメモリには開発時のプログラムあるいはデータが格納される。こちらは読み込み,書き込み両方が可能である。
BASIC-52ボードでは,通常のBASICインタプリタによる開発のメモリ構造は図2のようなマップになっている。プログラムメモリの0000H~1FFFHにはBASIC機能が割り当てられており,データメモリの0000H~1FFFHには作業用の8kバイトRAMが設置されている。さらに,8000H~9FFFHはユーザが利用可能なROM空間が用意されている。
また,このボードは拡張メモリボードでメモリを増設することによりリモートモニタによる開発が可能で,アセンブリ言語開発のほか,コンパイラ操作によるBASIC言語,C言語プログラム開発が図れる。このときのメモリマップは図3のようになる。この場合には,コマンド/ステートメントの拡張のためのPROMが2000H~3FFFH,開発/デバッグ対象のオブジェクトルーチンが置かれるRAMが4000H~7FFFH,そして変数格納用のRAMがA000H~BFFFHに配置される。
(つづく)