- 発行日 2023年6月21日
- 最終変更日 2025年1月17日
- 2 分
8bitマイコン 基礎知識
この記事では、8bitマイコンとは何なのか、そのメリットやデメリット、用途などについて解説しています。
取材協力:フリースケール・セミコンダクタ・ジャパン株式会社(現 NXPジャパン株式会社)
8bitマイコンとは?何故、8bitなのか ~適合アプリケーション ~
—— 32bitなどの高性能マイコンが多数あるのに、8bitマイコンは何故必要なのですか?
<u>マイコン(Microcontroller)</u>を使った組込み機器では、動画や通信などの高速・大容量処理は強力な32ビットマイコンやプロセッサに委ねることになりますが、システムが処理しなければならないことはそれだけではありません。例えば、家電品ではいくつかのスイッチやセンサ情報を元に、いくつかのアクチュエータや表示を制御すればよい、といったアイテムがたくさんあります。こうした用途には高い動作周波数も、広大なアドレス空間も必要ありません。むしろ、扱いが簡単で価格も安い<u>8ビットのマイコン</u>を使った方が、コストパフォーマンスに優れたものになります。また、それまでハードで処理していた回路をマイコンに置き換えるといった場合なども、8ビットで事足ります。結果的にひとつのシステム中で、複数のマイコンが同居する例も多くなっています。
マイコンのbit数の定義
—— それでは、マイコンのbit数にはどのような定義があるのでしょうか。
マイコンのbit数の定義は各メーカーの判断による
マイコンのbit数の定義は、各メーカーの独自判断であり特にありません。一般的にはALUによる演算処理1回につき処理できるbit数を表現していますが、マイコンに関してはbit数の定義は各メーカーにより決められます。 もしbit数と演算能力はbit数の二乗で求められるため、8bitマイコンであれば1回の処理につき256までの演算が可能であるということです。つまりマイコンのbit数が大きいほど1回の処理で行える演算の能力が高いということになりますが、マイコンではCPUとバス幅のbit数が異なることも多く、メモリではビット数が限定されることもあるため、たとえメモリや周辺機器の処理能力が高くても実際の能力を引き出せないケースもあります。 そのため、マイコンのbit数については一般的に言われるような定義はなく、マイコンメーカーにより決められるものです。
マイコンのbit数による違いとは
マイコンのbit数による違いとは、処理スピードの違いです。8bitマイコンで16bitの演算を行うこともできますが、16bitマイコンであれば1回の演算で処理できるものの、8bitマイコンであれば8bitの演算を2回行わなければなりません。 もちろん32bitの演算を行う場合であれば、演算回数は32bitマイコンで1回、16bitマイコンで2回、8bitマイコンで4回必要となるため、bit数が大きいほどマイコンの処理スピードは早くなります。 マイコンのbit数には定義がありませんが、やはり「演算処理1階につき処理できるbit数」という一般的なbit数の定義はマイコンにも影響を及ぼします。マイコンのbit数による違いとは処理スピードの違いであり、bit数が大きいほど処理スピードは早くなる傾向です。
コストもスペースも小さく ~ハードをソフトに置き換える ~
—— ハードで処理していた回路をマイコンに置き換えるというのは、具体的にどんな事ですか?
スイッチやキー入力をマイコンで処理する例が増えています。接点部品からの信号を情報入力として利用する場合は、チャタリングの影響を回避するために、CRやシュミットトリガなど、ハードウエア回路を必要とします。これには、部品と実装スペースが要るわけですが、同じ機能をマイコンのソフトウエアで処理してしまおうというわけです。
キーボード入力なども、キーひとつひとつを入力信号に接続するのではなく、マトリクス状に配置し、ソフトウエアでスキャン処理します。この方式なら、例えば80キー入力でも8×10の18ピンあれば処理可能です。
入出力の数からスタート ~8bitマイコン品種選択のコツ ~
—— 膨大な品種があります。賢い選択法を教えてください。
8ビットのマイコンを使うことが決まったら、具体的な機種選定になります。その場合は、セットに要求されるA/Dのチャネル数、タイマの数、キーウェイクアップ本数など、入出力に必要なピン数を起点にして選んでゆくと良いでしょう。メーカーの仕様書やWebサイトでは一覧があります。もちろん、多少の余裕を見込んでください。そのうえで、電源電圧やメモリ容量が適合するものに決めます。
ちなみに、設計の途中で要求仕様が追加になるといったこともありがちです。それを見込んで選定条件に多少の余裕を見ておき、設計の後半で下位ランク品種に切り換えるというのも賢い方法です。その場合は、同じピン配置で、メモリ容量などにバリエーションを持った製品グループから選んでおきます。
なお、ピン数は重要な目安ですが、多くのマイコンでは1個のピンに多数の機能が割り振られ、設定を切り換えることで別の機能を実現します。そこで、ある程度候補を絞り込んだら、ピン数と同時に各ピンの機能を確認してください。
図1:A/Dやタイマの必要数を基に選択
<br>RS08KA<br> | <br>S08QD4<br> | <br>S08QG<br> | |
---|---|---|---|
<br>動作電圧<br> | <br>1.8-5.5V<br> | <br>2.7-5.5V<br> | <br>1.8-3.6V<br> |
<br>バス周波数<br> | <br>10 MHz<br> | <br>8 MHz<br> | <br>10 MHz<br> |
<br>外部オシレータ<br> | <br>無し<br> | <br>無し<br> | <br>有り<br> |
<br>フラッシュ・メモリ<br> | <br>2/1KB<br> | <br>4KB<br> | <br>8/4KB<br> |
<br>RAM<br> | <br>63B<br> | <br>256B<br> | <br>512/256B<br> |
<br>ADC<br> | <br>無し<br> | <br>4チャネル(10ビット)<br> | <br>8/4チャネル(10ビット)<br> |
<br>アナログコンバレータ<br> | <br>有り<br> | <br>無し<br> | <br>無し<br> |
<br>キーボード割り込み<br> | <br>無し<br> | <br>有り<br> | <br>有り<br> |
<br>タイマ<br> | <br>8ビットタイマ x1<br> | <br>16ビットタイマ(2チャネル)x1 16ビットタイマ(1チャネル)x1<br> | <br>16ビットタイマ(2チャネル)x1 8ビットタイマ x1<br> |
<br>SCI/uART<br> | <br>無し<br> | <br>無し<br> | <br>有り<br> |
<br>SPI<br> | <br>無し<br> | <br>無し<br> | <br>有り<br> |
<br>IIC<br> | <br>無し<br> | <br>無し<br> | <br>有り<br> |
<br>コア<br> | <br>RS08<br> | <br>HCS08<br> | <br>HCS08<br> |
<br>ソフトウェア互換性<br> | <br>無し<br> | <br>有り<br> | <br>有り<br> |
<br>ピン互換性<br> | <br>無し<br> | <br>有り<br> | <br>有り<br> |
<br>パッケージ<br> | <br>6ピン(QFN) 8ピン(DIP/SOIC)<br> | <br>8ピン(DIP/SOIC)<br> | <br>8ピン(DIP/SOIC/QFN) 16ピン(DIP/TSSOP/QFN)<br> |
スケジュールに盛り込むべし ~ パフォーマンスの見積りと評価 ~
—— セットの性能を予測できません。どうすればよいでしょうか?
マイコンの持つパフォーマンスは、動作周波数などに依存し、比較も容易です。いっぽう、マイコンを搭載したシステムとしてのパフォーマンスは、予測が難しい部分があります。パフォーマンスは、プログラムの組み方などによって大きく変化するからです。例えば、組込みでは、割り込み処理が重要なポイントですが、割り込みの種類や頻度は外部要因であるため、見積もりが難しいのです。
ハード・ソフトをシステムアップしてみたら、予定していたパフォーマンスが得られない、反対に余裕が有りすぎて設計のやり直しといったこともあり得ます。こうした設計の無駄を無くすためには、評価ボードや開発プラットフォームを使って、基本的なパフォーマンスを確認しながら開発を進める慎重さが求められます。開発のスケジュールに、事前評価を盛り込んでおくことも大切です。
ラクラク・ソフトウエア開発 ~開発環境の進化 ~

—— フラッシュマイコンになってソフトウエア開発が楽になったと言われていますね。
マイコンでは、マスクROMからフラッシュメモリ搭載へと完全に時代が移行した感があります。フラッシュマイコンはユーザサイドで自由に書き込み・書き換えできるメリットがあります。あたかもEEP-ROMのように、セットの自己校正データをフラッシュに書き込むといった使い方も出来ます。ただし、書き換え回数には制限があります。制限は各セル毎のものなので、書き換え頻度が高い場合は、書き込むセルの位置を換えるなどの工夫を要します。開発環境では、8ビットマイコンでも、従来は本格的なICE(In-Circuit Emulator)が使われてきましたが、現在では、BDM(Background Debug Mode)など、オンチップでのデバッグやプログラムの書き換えが簡単にできるようになっています。ICEと同様にブレークポイントを設定できたりもします。変換ツールも低価格で入手できますし、パソコンでの統合開発環境も提供されています。こうしたことは、マイコン側にデバッグの機能が内蔵されて初めて実現できるわけで、新たなツールが全てのマイコンで使えるというわけではありません。その意味で、開発環境が充実しているか否かも、機種選定のひとつの要素と言えるでしょう。言語に関してですが、今では8ビットマイコンでもソフトウエアの構築にC言語が使えます。ただ、8ビットのマイコンは、ビギナーが内部のアーキテクチャを理解するには最適な教材でもあるわけで、一度はアセンブラで書いてみることを勧めます。そのうえで、実用的にはCを使えば良いのです。
図2:統合開発環境やデバッグツールなど充実した開発環境が提供されている
8bitマイコンの用途
—— 8bitマイコンはどのようなシーンで活用されるのか、用途を見ていきましょう。
生活家電での8bitマイコンの用途
8bitマイコンは生活家電にて、次のような用途で用いられています。
- LED照明機器
- 電話
- FAX
- 冷蔵庫の表示・温度調整
- 洗濯機の表示・タイマー
- エアコンの表示・タイマー・温度調整・風向きや風量の調整
- ロボット掃除機の使用時
- 各リモコンのボタン入力・赤外線制御
生活家電において8bitマイコンが使用されるのは、表示や温度調整、タイマーなど高度な処理を必要としない機能部分です。LED照明機器や電話、FAXにおいては製品全体で8bitマイコンが多く使用されていますが、洗濯機や冷蔵庫、エアコンのモーター制御やコンプレッサ制御では16bitマイコンもしくは32bitマイコンが使用される傾向にあります。 ただし、エアコンの風向きや風量の調整などには周辺環境の検知とフィードバックが必要となるため、8bitマイコンより16bitマイコンのほうが適するでしょう。高度な処理が必要な部分では使用されないものの、8bitマイコンは生活家電においてさまざまなシーンで活用されています。
産業機器での8bitマイコンの用途
8bitマイコンは産業機器においても、次のような用途で広く用いられています。
- ガスメーターの表示・計測
- 電力メーターの表示
- 電動ドリルのバッテリーチェック
高度な演算処理を求められ、フィードバック制御が必要となることの多い産業機器では、32bitマイコンの使用が一般的です。自動販売機や自動改札機、産業用ロボットなどでは32bitマイコンが使用されていますが、メーターの表示や電動ドリルのバッテリーチェックには8bitマイコンが使用されることもあります。 産業機器においては8bitマイコンの用途が限られるものの、表示部分などの処理が簡単な部分に8bitマイコンが使用されます。
** IoT分野での8bitマイコンの用途**
最近ではIoT分野でも8bitマイコンが使用されています。
- MP3プレイヤーの表示・タッチ部分
- スマートフォン・タブレット・スマートウォッチのタッチ部分
- 自転車のギアチェンジ・スピードメーター
- カード決済用端末オプション機器の表示・ボタン入力部
IoT分野においては、タッチ部分で8bitマイコンが広く使用されています。MP3プレイヤーやスマホ、タブレット、スマートウォッチなどタッチ操作が可能な機器は多いですが、タッチ部分には8bitマイコンか16fbitマイコンが使用されるのが一般的です。
また、レジでのクレジットカード決済で暗証番号を入力するオプション端末でも8bitマイコンが使われており、IoT分野においては8bitマイコンの活躍の場が広いと言えるでしょう。
あなどれない設計の落とし穴 ~ハード設計のキーポイント ~
—— ピン数も少ないしスピードもさほどではないのでハード設計は楽ですよね。
どんなにシンプルなものでも、その性能を十二分に引き出すためには繊細な設計が必要です。例えば、多くのマイコンではユーザサイドでI/Oのピン配列を割り付けできます。この場合、ボードパターンをクロスさせたり迂回したりしなければならないといった不具合が生じることのないよう接続対象の実装位置およびピン配列に合った割り付けを考えてください。
また、オンチップオシレータ機能を持った品種では外部の発振器が不要になるわけですが、オシレータの周波数精度は水晶発振器には及びません。長時間のカウントやI/Oが外部との同期を必要とするといった場合には考慮が必要です。
なお、空きピンの処理は必ず行ってください。忘れると、消費電力が大きくなるノイズで誤動作するなど、思わぬトラブルの原因になります。ちなみに内部のレジスタでプルアップ処理できるマイコンもあります。