つながるワイヤレス通信機器の開発手法(14) ファームウェアを設計する(その2) ──エラー制御と高周波制御を実現する方法

太田博之

tag: 組み込み

技術解説 2004年10月18日

●○● 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の処理に戻る.

f14_01.gif

図A-1 タイマの設定
タイマのカウンタの値と比較レジスタの値が一致したときにイベントが生じる.このイベントをもとに,ハードウェアに対して時間的制御を行う.

f14_02.gif
図A-2 割り込みルーチン
割り込みルーチンのプログラムは,図のようにメイン・ルーチンとは独立に設計する.

f14_03.gif
図A-3 割り込みマスク
マスクされたイベントが生じても割り込みは起こらない.また,マスクできない割り込みとしてNMI(non maskable interrupt)がある.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日