マイコンとは何か?仕組みと構成、選び方を初心者向けに解説!
本記事では、IC(集積回路)のうち、マイコンICの基礎知識について解説します。
目次
1.マイコンとは?
「マイコン」は、「マイクロコントローラ(MCU: Microcontroller Unit)」の略であり「マイクロコンピュータ」と呼ばれることもあります。ただし、厳密には「マイクロコンピュータ」は汎用的なCPUを搭載するシステム全体を指す場合もあり、用途や文脈により意味が異なることがあります。
マイコンは、最近のほとんどの電気機器に組み込まれていて、その電気機器を制御するためのICです。
例えば、冷蔵庫や洗濯機、炊飯器、電子レンジ、掃除機などの家電を制御するために使われています。他にも、ロボットなどの産業機器、体温計や時計、そして、自動車にも使われていて、自動運転には無くてはならないものになっています。
マイコンは、今や日常生活に必要不可欠といっても過言ではありません。
2.マイコンの特徴
(1)小型化が可能
マイコンは、多数の抵抗やコンデンサ、トランジスタなどの電子部品を超小型にして集積化した集積回路です。
以前は多数の電子部品を用いて機器が作られていたため、電子回路部分が巨大化していましたが、マイコンを用いることで電子回路部分を集積化できるため、機器の小型化につながりました。
(2)多機能化・高性能化が可能
部品の集積化により、さらに多くの部品を詰め込むことができます。
機能の追加は機器を巨大化させてしまうのが通常ですが、マイコンを用いることで機器に多くの機能を詰め込むことができるようになり、多機能化や高性能化にもつながりました。
(3)様々な用途に柔軟に対応可能
またマイコンはソフトウェアによって動作を変更できる特長があります。
かつては動作変更のためには集積回路を作り直す必要があり、多くの時間が必要でした。しかし、マイコンを用いることで柔軟に処理を変更できるため、制御回路やICの設計・開発にかかる時間を短期化することができ、様々な用途に対応できるようになりました。
3.マイコンの構成
図1にマイコンの大まかな構成を示します。
【図1 マイコンの基本的な構成】
マイコンはボタン入力やセンサ入力など外部からの信号を受け取る入力部、情報を処理する処理部(演算部)、温度制御出力やモータ制御出力など外部に信号を出力する出力部から構成されています。
マイコンの動作は、たとえば図のように、押しボタンやセンサ入力を受けて、内部で処理をし、温度制御信号やモータの制御信号を出力します。
そして、処理自体をソフトウェアによって柔軟に変更できるという特徴も持っています。
【図2 マイコンの構成をさらに詳細なブロックに表した図】
図2は、マイコンの構成をさらに詳細なブロックに表したものです。
ブロックは、大まかに言うと、メモリ(コード用)、メモリ(データ用)、CPU、周辺回路に分かれています。それぞれについて説明します。
- メモリ(コード用): プログラムコードを格納するメモリです。現在ではフラッシュメモリを使用する場合がほとんどです。フラッシュメモリは、書き換えが可能なメモリで、電源を切ってもそのデータは消えません。
[※関連記事:フラッシュメモリの構造と原理(仕組み)をわかりやすく解説 ] - メモリ(データ用): データを一時的に格納するためのメモリです。一般的にはSRAMが用いられます。SRAMは自由に書き換え可能なメモリで、低消費電流で動作します。但し、いったん電源を切ると、そのデータは消えてしまいますので、一時的にデータを記憶する場合にのみに使用します。
[※関連記事:3分でわかる SRAMの構造と動作原理、DRAMとの違い ] - CPU: 演算装置、制御装置をあわせた回路ブロックです。メモリに記憶されていたプログラムコードを取り出し、どのような制御を行うのかの判断や算術論理演算を行います。演算装置は、ALU(Arithmetic and Logic Unit)とも呼ばれています。
- プログラムカウンタ: マイコンはソフトウェア(プログラムコード)に従って動作を行います。通常、プログラムコードはメモリ上に記憶されていますが、メモリのうち実行すべきプログラムコードが記憶されているアドレスを指定する回路です。
- 周辺回路: マイコン機種毎にさまざまな回路が搭載されます。図2の例では、電源、発振回路、タイマー、ADコンバータ、入出力回路が搭載されています。
4.マイコンの動作の仕組み(処理の流れ)
次に、マイコンの動作の流れを(1)~(4)で説明します。
(1)初期化
ほぼすべてのマイコンにはリセット端子が備わっており、この端子をHighまたはLowレベルに設定することで、マイコンシステムの初期化が行われます。プログラムカウンタ、CPUほか、周辺回路の初期化が行われます。ほとんどの場合、メモリは初期化されません。また、メモリ(コード用)には、書き込み装置などを用いて、あらかじめプログラムコードを書き込んでおきます。
(2)プログラムコードの出力
プログラムカウンタは、メモリ(コード用)のアドレスを指定します。初期状態では、プログラムの開始番地が指定され、メモリ(コード用)は、最初に実行するプログラムコードをCPUに対して出力します。
(3)解釈・実行
CPUは、最初に実行するプログラムコードを読み出し、そのコードの解釈を行います。また、解釈した結果に基づいて各種制御を行います。プログラムコードの制御内容は、以下の3種類程度に分けられます。
- データの転送: CPU内には、レジスタという一時的な記憶エリアがあります。このレジスタの数やビット長はCPUにより異なります。レジスタとメモリ間でデータを転送、あるいは周辺回路とレジスタ間でデータの転送を行います。
- 算術論理演算: 算術演算は、加減乗除などの計算を指し、論値演算は、論理和・論理積・排他的論理和などの演算を指します。レジスタに記憶された値などを演算して、一時的にレジスタやメモリ(データ用)に結果を格納します。
- 判断(分岐): 算術論理演算した結果や、値を比較した結果に基づいて、次に読み出すべきプログラムカウンタのアドレスを指定します。データ転送、算術論理演算だけを実行する場合でも、プログラムカウンタの値は、必ず一つ増え、次のメモリ(コード用)のアドレスを指し示します。
(4)周辺回路動作
CPUの指示に基づき動作し、周辺回路の制御を行います。周辺回路には、いろいろな回路が搭載されていて、様々な機能を実現します。
5.マイコンの選び方
マイコンを選ぶ際は、用途や性能に応じて適切なものを見極めることが重要です。
目的によって必要なマイコンの仕様が異なります。
以下のポイントを考慮して最適なものを選定しましょう。
(1)処理能力
タスクの複雑さに応じたクロック周波数やコア数が必要です。具体的にはCPUの性能によって決まります。
CPUの性能は、以下の項目に着目してください。
- 動作周波数: 高いほどCPUの性能は高くなり、動作するプログラムの実行速度に影響します。マイコンの仕様としては、設定できる動作周波数の上限として「最大動作周波数」が規定されています。
- ビット数: 多いほどCPUの性能は高くなり、一度にフェッチ(CPUがメモリから命令コードを取り出す動作)、演算できるデータ量に影響します。マイコンの場合は、8~32bitのものが多いです。
- コアの数: コアの数が多いほど、CPUの性能は高くなります。多くのマイコンはシングルコアになっておりますが、コアの数が増えると複数の処理を並列して行うことができます。
- コアの種類: コアの種類によって保有している命令の種類や数が異なり、一つの処理に必要とするサイクル数も変化するため、当然CPUの性能も変わってきます。近年は、Armコアを採用したマイコンの普及が広がってきています。
(2)メモリ容量
プログラムとデータの格納に必要なフラッシュメモリやRAMサイズを検討しましょう。
多くのマイコンはフラッシュメモリとRAMの2種類を内蔵しており、どちらも必要なメモリの容量は開発するプログラムに依存します。そのため、一概にどのくらいの容量が必要なのか定義することが難しいので、まずは大きいメモリの評価ボードを使ってプログラムを開発されることをおすすめします。
フラッシュメモリとRAMについては下記の通りです。
- フラッシュメモリ: プログラムのようにマイコンの電源を落としても保持しておきたいデータの格納に必要なメモリのことです。
- RAM: プログラム実行中に生成されるデータなど、マイコンの電源を落とすと消えてしまうようなデータの格納に必要なメモリのことです。
(3)周辺機能
接続するセンサやアクチュエーターに対応した入出力を確認しましょう。
マイコンでは多様な機能を保有している製品があります。基本的にはマイコンに接続するデバイスや信号によって異なるため、接続デバイスとどのように通信するのか都度確認を行った上で決めていく必要があります。
ここでは、マイコンでよく使う代表的な機能を説明します。
- シリアル通信: 他デバイスとデジタル信号で通信するために使用します。代表的なものでSPI、I2C、UARTなどがあり、接続するデバイスによって、対応する通信が異なります。他にも有線LAN接続に必要なEthernet、PC等との接続を容易にするUSB、車載用途によく使われるCAN、LINという規格もあります。
- ADコンバータ: センサの出力などになる、アナログ信号をデジタル信号に変換するための機能で、アナログ出力のセンサ等に使用します。マイコンによって内蔵しているADコンバータのチャネル数やビット数、スピードが異なるので、取り込むアナログ信号の数や、必要とする変換精度を確認する必要があります。
- タイマ: マイコンの処理の中で、時間的な間隔を生成したり、計測したりする機能です。マイコンのプログラムのさまざまな場面で使用するため、時間に関わる処理を行うか?等を確認する必要があります。
- GPIO: “General Purpose I/O”の略になります。例えば電源電圧が3.3Vのマイコンでは、High(3.3V)とLow(0V)の信号を制御することができます。
- LCDコントローラ :液晶ディスプレイを制御するための機能です。ディスプレイを使用するアプリケーションにおいては検討する必要があります。
(4)消費電力
バッテリー駆動の場合は低消費電力モデルが有利です。
必要な時だけ動作し、不要な時はスリープモードに入るなど、効率的な電力管理機能を備えている低消費電力型のマイコンもあります。
6.まとめ
マイコンは、私たちの身の回りにある電子機器の多くに用いられています。携帯電話やテレビはもちろん、冷蔵庫や洗濯機、自動車や産業機械などの機械類、あるいは子供向けのおもちゃにもマイコンが用いられています。特に近年は、AI機能の搭載や低消費電力化など、新しい技術トレンドへの対応も進んでいます。
今後も技術の進化とともに、マイコンの活用範囲はさらに広がると思われます。
(日本アイアール株式会社 特許調査部 E・N)