つながるワイヤレス通信機器の開発手法(14) ファームウェアを設計する(その2) ──エラー制御と高周波制御を実現する方法
●○● Column ●○●
◆組み込みソフトウェアのおさらい◆ ~覚えていますか? マイコンの基本機能~
前回と今回は通信制御系のファームウェアを説明しているが,これらのファームウェアは組み込み型マイコンの上で動作する.以下に組み込み型マイコンについて少しおさらいしておく.組み込み型マイコンに内蔵される機能の概略を以下に示す(表A).
表A 内蔵機能
機 能
|
使用目的
|
外部バス制御 | メモリ管理,メモリとのインターフェース |
タイマ | 実時間管理用基準 |
割り込み制御 | 周辺ハードウェアとの時間的同期に使用 |
そのほかの周辺制御機能 | A-D/D-Aコンバータ,パラレルI/O, シリアルI/O |
1)外部バス制御
組み込み型マイコンでは,ROMとRAMが内蔵される場合が多い.通信機器に使われるマイコンではROMもRAMも数Mバイト~数十Mバイトと大きなプログラム容量やデータ領域を必要とする.その場合,メモリをマイコンの外部に置き,外部バス制御回路がインターフェースになる.
2)タイマ
タイマは,ハードウェアを含むシステム全体の時間管理の基準になる.タイマは,マイコンの動作クロックの整数分の1で動作するカウンタ(分周器)と比較レジスタからなる.カウンタの値と比較レジスタの値が一致したときにイベントが生じる.このイベントをもとに,ハードウェアに対して時間的制御を行う.
例えば,図A-1のようにルーチン1の処理が終了した(1)の時刻Ccから次の起動時刻Ciを想定して,比較レジスタにはTwを書き込む.時間Twが経過して時刻(2)になったら割り込みイベントを発生するようにソフトウェアを設定する.これで,時刻(2)になったらイベントが発生し,イベントに対応した次の受信フレームの処理(ルーチン2)を始める.
3)割り込み
ハードウェアからの信号,またはタイマのイベントに対して高速な応答が要求される処理を行うときに使用する(図A-2).割り込み回路にイベントを登録しておけば,そのイベントが発生した場合にメイン・ルーチンの処理を一時的に停止させ,割り込みルーチンにジャンプする.割り込みルーチンの処理が終われば,一時的に停止させておいたメイン・ルーチンに戻る.
また,割り込みを効率良く,詳細に制御するために「マスク」と「レベル」という考えかたがある.マスクとは,割り込みを無効にすることであり,マスク・レジスタを用いてイベントごとに設定できる.割り込みマスク回路の構成を図A-3に示す.マスク・レジスタに設定された割り込みは,'0'とAND(論理積)がとられるので,割り込みが発生しないしくみになっている.また,割り込みはイベントごとにレベル・レジスタで優先順位を付けることができる.例えば,図A-3においてイベント1がもっとも優先順位が高く,イベント2,3,4と順に低くなっているとする.この場合,イベント2による割り込みルーチン(割り込みルーチン2)を実行中でも,イベント1が発生すれば割り込みルーチン2をいったん停止し,割り込みルーチン1を実行することになる.割り込みルーチン1が終了すれば,割り込みルーチン2の処理に戻る.
図A-1 タイマの設定
タイマのカウンタの値と比較レジスタの値が一致したときにイベントが生じる.このイベントをもとに,ハードウェアに対して時間的制御を行う.
図A-2 割り込みルーチン
割り込みルーチンのプログラムは,図のようにメイン・ルーチンとは独立に設計する.
図A-3 割り込みマスク
マスクされたイベントが生じても割り込みは起こらない.また,マスクできない割り込みとしてNMI(non maskable interrupt)がある.