

今さら聞けない あんな質問、こんな疑問を、RSが代わりに伺ってきました。
今回は【8bitマイコン編】です。
<取材協力:フリースケール・セミコンダクタ・ジャパン株式会社>
何故、8ビットなのか
■ 適合アプリケーション
- - 32ビットなどの高性能マイコンが多数あるのに、8ビットマイコンは何故必要なのですか
-
マイコン(Microcontroller)を使った組込み機器では、動画や通信などの高速・大容量処理は強力な32bitマイコンやプロセッサに委ねることになりますが、システムが処理しなければならないことはそれだけではありません。例えば、家電品では幾つかのスイッチやセンサ情報を元に、幾つかのアクチュエータや表示を制御すればよい、といったアイテムがたくさんあります。こうした用途には高い動作周波数も、広大なアドレス空間も必要ありません。むしろ扱いが簡単で価格も安い8bitのマイコンを使った方がコストパフォーマンスに優れたものになります。 また、それまでハードで処理していた回路をマイコンに置き換えるといった場合なども8bitで事足ります。結果的にひとつのシステム中で複数のマイコンが同居する例も多くなっています。
コストもスペースも小さく
■ ハードをソフトに置き換える
- - ハードで処理していた回路をマイコンに置き換えるというのは、具体的にどんな事ですか
スイッチやキー入力をマイコンで処理する例が増えています。接点部品からの信号を情報入力として利用する場合は、チャタリングの影響を回避するためにCRやシュミットトリガなどハードウエア回路を必要とします。これには部品と実装スペースが要るわけですが、同じ機能をマイコンのソフトウエアで処理してしまおうというわけです。
キーボード入力なども、キーひとつひとつを入力信号に接続するのではなく、マトリクス状に配置し、ソフトウエアでスキャン処理します。この方式なら、例えば80キー入力でも8×10の18ピンあれば処理可能です。
入出力の数からスタート
■ 品種選択のコツ
- - 膨大な品種があります。賢い選択法を教えてください
8ビットのマイコンを使うことが決まったら、具体的な機種選定になります。その場合は、セットに要求されるA/Dのチャネル数、タイマの数、キーウェイクアップ本数など、入出力に必要なピン数を起点にして選んでゆくと良いでしょう。メーカのカタログやWebサイトでは一覧があります。もちろん、多少の余裕を見込んでください。そのうえで、電源電圧やメモリ容量が適合するものに決めます。
ちなみに、設計の途中で要求仕様が追加になるといったこともありがちです。それを見込んで選定条件に多少の余裕を見ておき、設計の後半で下位ランク品種に切り換えるというのも賢い方法です。その場合は、同じピン配置でメモリ容量などにバリエーションを持った製品グループから選んでおきます。
なお、ピン数は重要な目安ですが、多くのマイコンでは1個のピンに多数の機能が割り振られ、設定を切り換えることで別の機能を実現します。そこで、ある程度候補を絞り込んだら、ピン数と同時に各ピンの機能を確認してください。
図1:A/Dやタイマの必要数を基に選択
スケジュールに盛り込むべし
■ パフォーマンスの見積りと評価
- - セットの性能を予測できません。どうすればよいでしょうか
-
マイコンの持つパフォーマンスは動作周波数などに依存し、比較も容易です。いっぽう、マイコンを搭載したシステムとしてのパフォーマンスは予測が難しい部分があります。パフォーマンスはプログラムの組み方などによって大きく変化するからです。例えば、組込みでは、割り込み処理が重要なポイントですが、割り込みの種類や頻度は外部要因であるため見積もりが難しいのです。
ハード・ソフトをシステムアップしてみたら、予定していたパフォーマンスが得られない、反対に余裕が有りすぎて設計のやり直しといったこともあり得ます。こうした設計の無駄を無くすためには、評価ボードや開発プラットフォームを使って基本的なパフォーマンスを確認しながら開発を進める慎重さが求められます。開発のスケジュールに、事前評価を盛り込んでおくことも大切です。
ラクラク・ソフトウエア開発
■ 開発環境の進化
- - フラッシュマイコンになってソフトウエア開発が楽になったと言われていますね
マイコンでは、マスクROMからフラッシュメモリ搭載へと完全に時代が移行した感があります。フラッシュマイコンはユーザサイドで自由に書き込み・書き換えできるメリットがあります。あたかもEEP-ROMのようにセットの自己校正データをフラッシュに書き込むといった使い方も出来ます。ただし、書き換え回数には制限があります。制限は各セル毎のものなので、書き換え頻度が高い場合は、書き込むセルの位置を換えるなどの工夫を要します。
図2:統合開発環境やデバッグツール
など充実した開発環境が提供されて
いる(写真はフリースケール・セミ
コンダクタ提供)開発環境では、8ビットマイコンでも従来は本格的なICE(In-Circuit Emulator)が使われてきましたが、現在ではBDM(Background Debug Mode)など、オンチップでのデバッグやプログラムの書き換えが簡単にできるようになっています。ICEと同様にブレークポイントを設定できたりもします。変換ツールも低価格で入手できますし、パソコンでの統合開発環境も提供されています。こうしたことは、マイコン側にデバッグの機能が内蔵されて初めて実現できるわけで、新たなツールが全てのマイコンで使えるというわけではありません。その意味で、開発環境が充実しているか否かも機種選定のひとつの要素と言えるでしょう。
言語に関してですが、今では8ビットマイコンでもソフトウエアの構築にC言語が使えます。 ただ、8ビットのマイコンはビギナーが内部のアーキテクチャを理解するには最適な教材でもあるわけで、一度はアセンブラで書いてみることを勧めます。そのうえで、実用的にはCを使えば良いのです。
あなどれない設計の落とし穴
■ ハード設計のキーポイント
- - ピン数も少ないしスピードもさほどではないのでハード設計は楽ですよね
どんなにシンプルなものでも、その性能を十二分に引き出すためには繊細な設計が必要です。 例えば、多くのマイコンではユーザサイドでI/Oのピン配列を割り付けできます。この場合、ボードパターンをクロスさせたり迂回したりしなければならないといった不具合が生じることのないよう接続対象の実装位置およびピン配列に合った割り付けを考えてください。
また、オンチップオシレータ機能を持った品種では外部の発振器が不要になるわけですが、オシレータの周波数精度は水晶発振器には及びません。長時間のカウントやI/Oが外部との同期を必要とするといった場合には考慮が必要です。なお、空きピンの処理は必ず行ってください。忘れると、消費電力が大きくなるノイズで誤動作するなど思わぬトラブルの原因になります。ちなみに内部のレジスタでプルアップ処理できるマイコンもあります。