こんにちは、組み込みエンジニア歴20年以上のtomozoです。
今回は「組み込みエンジニアが知っておくべきマイコンの機能」
について解説します。
以下の記事でも少し紹介していますが、
今回はよりマイコンの機能を掘り下げて解説します。

この記事は
組み込みエンジニアになったばかりでこれからマイコンを使われる方
向けの記事です。
組み込みエンジニアになって初めてマイコンを扱う場合
まず機能数とマニュアルのページ数に圧倒されます。
マイコンは年々高性能・多機能になっていて
マニュアルのページ数は軽く1000ページを超える状態です。
tomozo
初心者エンジニアのあなたは
何から手を付ければいいのか分からずしんどいと感じるでしょう。
そこでよく使う機能5つに絞って紹介します。
まずこれらが分かるようになれば
簡単な組み込み機器の制御ができるようになります。
マイコンの機能を使って何か一つでも自分で動かせるようになれば
自信になり、そこから経験を増やして成長していけます。
この記事を読めば
組み込み現場でよく使うマイコンの基本機能
が分かるようになります。
それでは早速解説を始めます。
目次
知っておくべきマイコンの基本機能5選
組み込みエンジニアになったばかりのあなたに
最初に知っておいて欲しい基本機能は以下の5つです。
- タイマー
- 割り込み
- 入出力ポート
- PWM制御
- 通信
新人エンジニアあん
例えば、ルネサス社製のRX64Mというマイコンのマニュアルの目次を見ると
64もの見出し番号があります。
ルネサスRX64Mハードウェアマニュアル(公式サイトリンク)
この見出し64個すべてが機能というわけではないですが、
大部分は機能です。
新人エンジニアあん
すべてを理解しようとすると膨大な時間が必要ですし
すべてを完全に理解しているエンジニアはごく少数です。
組み込みメーカーごとにソフトウェアの作り方、設計思想がありますので
使わない機能もありそれらは理解していません。
使う必要が出たときに読んで理解し使えるようになれば問題ありません。
長年エンジニアをやっていると断片的な知識は増えていくので
なんとなく聞いたり読んだ事あるようになってきます。
tomozo
1.タイマー
タイマーは文字通り時間に関する制御を行います。
使い方の例としては以下のようなものがあります。
- 定期的に決まった時間で処理
- ある条件からある条件までの時間を計測
- 時間を設定してパルスを出力
- 条件(イベント)をカウント
機能としては細かく分ければもっとたくさんありますが、
よく使われるのは上に挙げた使い方です。
組み込みの時間単位はms(ミリ秒)~us(マイクロ秒)
という非常に短い時間間隔で処理することが多いです。
タイマーについてはこちらの記事で詳しく解説しています。

2.割り込み
割り込みというのは処理の途中であらかじめ設定した条件になった時に
行われる処理です。
たとえば上で紹介したタイマーを1ms毎の割り込みに設定しておくと
メインプログラム処理している途中でも1ms毎に割り込みが発生し優先的に
処理することができます。
簡単に絵を描くと以下のようになります。
メインプログラムを処理している途中で1ms経過するたびに
一旦メインプログラムの処理を中断し、
割り込みプログラムを先に処理した後
中断したところから再開して処理します。
私の経験では割り込みを使っていない組み込みシステムを
作ったことはありませんし、割り込み無しで組み込み機器を作る
ことは難しいです。
割り込みについてはこちらの記事で詳しく解説しています。

3.入出力ポート
入出力ポートは一番よく使う基本機能の一つで
- センサなどの入力を検出する入力ポート
- モーターなどを回したりする出力ポート
のことです。
使い方としては
- 使用するポートの方向を入力または出力にマイコンのレジスタで設定
- 入力=>ポートをリード
- 出力=>ポートに0/1の状態をレジスタにライト
することで制御することができます。
入出力ポートについてはこちらの記事で詳しく解説しています。

4.PWM制御
PWM制御はPulse Width Modulationの略でONとOFFを繰り返して
電力を制御します。
使い方の例としてはDCモーターを回す時に
100%で回したければずっとONするのに対し、
50%で回したければ電圧を50%にするのは難しいので
ONとOFFの時間を50%にします。
モーターやドライバなどにもよりますが、
1msごとにON/OFFを繰り返すようなイメージです。
絵で説明するとモーターとマイコンが以下のようにつながっているとします。
100%でモーターを回す場合
50%でモーターを回す場合
のようになります。
ONの時間幅をDUTY(デューティー)というのですが、
PWM制御のことをDUTY制御といったりパルス制御
っていう人もいます。
上で紹介したタイマー割り込みと入出力ポートを組み合わせれば
PWM制御できますし、マイコンによってはPWM出力できる便利な専用ポートを
備えたものもあります。
PWM制御についてはこちらの記事で詳しく解説しています。

5.通信
他のIC(デバイス)やマイコンなどと一緒に
使用する時に通信は必要となります。
代表的な通信は以下の6つがあります。
- I2C
- SPI
- UART
- USB
- CAN
- イーサネット
各通信の特徴を簡単に表にすると
通信 | 特徴 |
I2C | 同期式シリアル通信(親から子への送信) マスター(親)とスレーブ(子)の関係 多対多でも使用可能 信号線は2本(クロックとデータ) |
SPI | 同期式シリアル通信(SCLK(クロック)に同期してデータを送受信) マスター(親)とスレーブ(子)の関係 1対多でも使用可能 信号線は4本(データ2本、クロック、チップセレクト) |
UART | 非同期でシリアル通信 通信速度(ボーレート)はあらかじめ決めておく 1対1で使用 信号線は2本(送信用と受信用のデータ) |
USB | 4つの転送方式(コントロール転送・バルク転送・インタラプト転送・アイソクロナス転送) 127台まで接続可能 信号線は4本(信号線2本と電源とグランド) |
CAN | マスターが存在しない(一つ一つをノードといい、どれもがマスターになれる) 信号線は2本(差動式) |
イーサネット | インターネットにつなげる 通信線は仕様により異なる |
I2C・SPI・UARTは比較的単純で分かりやすいのでこの3つから理解しましょう。
USB、CAN、イーサネットは通信以外にも関連技術や用語
などが多岐に渡りますので後回しで大丈夫です。
このように通信は種類が多く理解するのも大変ですが、
一つずつ実際に動かしてみて経験を積みながらしっかりと自分のものにしていきましょう。
通信についてはこちらの記事で詳しく解説しています。

まとめ
マイコンの基本機能5選
- タイマー
- 割り込み
- 入出力ポート
- PWM制御
- 通信
よく使うものから一つずつ順番に確実に理解していこう
マイコンにはたくさんの機能があるがすべて使うわけではない
すべて理解していなくても問題なし
参考になったとか、もっとここが知りたいなど一言でも
コメント、意見などいただけると励みになります。
これからの世の中を生き抜くには資産運用も重要です。
もし資産運用について興味があればこちらの記事も見てみてください。
