沼津高専 電子制御工学科
ソフトウェア調査報告書
MIRS9802-TECH-0004
改訂記録
版数 作成日 作成者 承認 改訂内容 提出先
A01 1998.12.16 溝口 村木 初版 川端

ソフトウェア調査報告書mirs9802


1 ソフトウエア開発環境と開発工程

 MIRS開発で使用するソフトウエア開発設備の概略を 図1に示す。制御用68Kボードに実装されるソフトウエア開発のために、ソフトウエア開発用WS(ワークステーション) (富士通 S-4/CL4台)のOpenWindows(SunMicro Systems、Solaris2.3)上で動作する
(1)プログラム作成ツ−ル
(2)コ−ド生成ツ−ル
(3)デバッグ・ツ−ル
(4)解析ツ−ル
からなるソフトウエア開発ツール群がある。これらのツ−ル群をホストPCより使用し、開発を効率的に進めることができる。
 開発工程の概略を図2に示す。ユーザが作成するソース・プログラムからソフトウエア開発用WS上で コンパイル・アセンブル・リンクにより実行形式ファイル(アブソリュート・オブジェクト・ファイルともいう)を生成し、 (1)ホストPCを用いたデバッグ作業
(2)ICE(インサーキット・エミュレータ)を用いたデバッグ作業
(3)実行形式ファイルをROMライタに転送してROMに焼き付ける
(4)MPUボードのROMソケットに実装。
をする。

    

 図1 ソフトウエア開発設備の概略図                 図2 開発工程の概略図

2 MIRS用リアルタイム・モニタMIRX68K

 通常リアルタイム・システムでは、システムの外部環境をセンシングすることにより、それぞれの状況に対応する処理 (これをタスクと呼ぶ)を迅速に実行することが求められる。そのためには、センサ信号によるハードウエア割込みや内部タイマによる 周期的な割込みのためのプログラミング技術が多用されるので、プログラム作成者の個性に依存する部分が多くなり、プログラムの構造が複雑 になりがちである。そのため、システムの仕様変更や類似のシステム開発へのプログラムの利用などが困難となる。
 タスクを切り替えて 実行するためのタスク管理や、割込みハンドラ(割り込みを受け付ける部分のプログラムをいう)や、システムの資源管理を受け持つカーネル部と、 ユーザのタスク・プログラム内でカーネルの機能を利用するために設けられたユーザ・インターフェース部(システム・コール関数と呼ぶ)からなる リアルタイムOSあるいはシステムの資源管理をコンパクトにしたリアルタイム・モニターを用意しておけば、 プログラム作成上のこのような問題を解消できる。MIRS開発では、専用の簡易リアルタイム・モニターMIRX68Kを利用して、 ソフトウエア開発を行う(MIRX68Kの構造および利用方法の詳細については mirx68k.htmを、 また、各ハードウェア関数については hflman.htmを参照)。

3 実例

実際の基本設計書には次のようなことを記せばよいと思われる。


ソフトウェア構成


本ソフトウェアは、昨年までのソフトを基にして、独自のソフトウェアを作成する。以下に各モジュールについて説明する。

  1. 初期設定モジュール

    電源投入時またはリセットボタン押下時に一回だけ起動され,処理終了後行動計画タスクを起動する。初期診断プログラムの実行,ハードウェアの初期設定,自己位置を競技開始位置に設定,タスクの初期化,掲示板(BB)の初期化を行う。また,DIPスイッチを読み込み,動作モードをBBに書き込む.DIPの状態によっては,リモートタスクを行動計画タスクとともに起動する。

  2. 自己位置認識モジュール

     タイマ割り込みにより起動される.ロータリエンコーダのカウント値を読み込み,自己位置(X,Y,Θ:姿勢角)を計算しBBに格納する。処理終了後,次のタイマ割り込みを設定する。また,LED表示モードがX,Y,Θのいずれかであれば7SegLED表示タスクを起動する。(7SegLED表示タスク用のBBを参照することにより何を表示しているか知ることができる)。タイマ割り込み間隔については,総合試験で決定するが,総合試験版では50msに設定する。

  3. 超音波センサ制御モジュール

     タイマ割り込みにより起動される。3つの超音波センサにより順次距離を測定し結果をBBに格納する。処理終了後,次のタイマ割り込みを設定する。LED表示モードが超音波センサ状態を示していれば,7SegLED表示タスクを起動する。また,左右の超音波センサの計測距離の和が(2m− 左右センサ間隔)であれば,自己位置補正タスクを起動する。タイマ割り込み間隔については,総合試験で決定するが,総合試験版では,100msに設定する。

  4. 赤外線センサ制御モジュール

     ハードウェア割り込みにより起動され,赤外線センサの状態をBBに書き込む.LED表示モードが赤外線センサ状態を示していれば7SegLED表示タスクを起動する.

  5. タッチセンサ制御モジュール

     ハードウェア割り込みにより起動される。左右のタッチセンサの反応により回避行動に移る。

  6. MMI制御モジュール

     7SegLEDの表示内容を更新する.4桁のうち最上位桁は下位3桁の表示内容を示すIDでIDは0から9までの数値でMMIの押しボタン割り込みによりカウントアップされる.

  7. 行動計画モジュール

     BBに掲示された情報に基づき,MIRSの行動を決定する.このタスクより走行制御タスクが起動される.

  8. 走行制御モジュール

     行動計画タスクから起動される。起動時に軌跡と目標位置が与えられる。起動後,BBに実行中コードを書き込み,目標位置に到達するまでタイマ割り込みにより0.05秒毎に最起動され与えられた軌道に対する差を補正しながら移動する.目標位置に到達したときは実行完了コードをBBに書き込む.実行中に実行を強制停止する機能を有する.

  9. 自己位置補正モジュール

     タイマ割り込みにより起動される.左右の超音波センサの測定したデータに基づき,左右方向(XかYかはMIRSの姿勢及び現在位置により決定する)を補正する.タイマ割り込み間隔については,総合試験で決定する.

  10. リモートコントロールモジュール

     BBに掲示された情報に基づき,RS−232Cポートを使用してデータの送受信を行う.送受信のタイミングは,総合試験計画で決定する.