column
技術情報・基礎知識
マイコン・マイコンボード開発の基本 マイコンとは?マイコン開発の全体像と組み込みソフトウェアとの関係
産業機器、計測装置、家電、自動車、医療機器、IoT機器など、世の中の電気で動くモノのほぼすべてに、マイコンと呼ばれる小さな半導体チップが搭載されています。装置を動かしているのは結局のところマイコンの上で動くプログラムであり、マイコンを抜きにして現代の電子機器を語ることはできません。とはいえ、マイコンと組み込みソフトウェアの違い、マイコン開発と組み込みソフトウェア開発の関係を改めて整理しようとすると、案外うまく説明できないという声もよく聞かれます。本記事では、マイコンの定義から、MPUやSoCとの違い、マイコン開発と組み込みソフトウェア開発の関係性、マイコン開発の全体像、使われる領域、必要なスキル領域までを順を追って解説します。これからマイコン開発に取り組む方や、ハードウェア側から組み込み領域に踏み込む方が、全体像を一気に掴むための内容です。
マイコンとは
マイコンはマイクロコントローラ(Microcontroller)の略で、CPU・メモリ・周辺回路(ペリフェラル)を1つのチップに統合した半導体デバイスを指します。日本ではマイコンという呼称が広く定着していますが、英語圏ではMCU(Micro Controller Unit)と表現されることが一般的です。指先に乗るほど小さな1チップの中に、計算を担うCPUコア、プログラムを保存するフラッシュメモリ、計算中のデータを置くRAM、外部とのやり取りを担うUART・SPI・I²Cといった通信ペリフェラル、アナログ信号を扱うADCやDAC、時間を計るタイマ、信号の取り込みや出力を担うGPIOといった機能が詰め込まれています。
マイコンの本質は「機器を制御するために必要な機能を1チップに集約した部品」という点にあります。PC用CPUのように単体で計算能力を提供する部品ではなく、装置に組み込まれてその装置の動作を司る役割を担います。電子レンジが温め時間を計測するのも、エアコンが室温に応じて圧縮機を制御するのも、産業用センサが値を読み取って上位に伝送するのも、内部で動くマイコンが行っている仕事です。
マイコンが他の半導体と一線を画すのは、ハードウェアの完結性と、扱いやすさにあります。1チップで制御に必要な要素が揃っているため、外付け部品を最小限に抑えながら装置を構成でき、量産時のコストも下げやすくなります。多くのマイコンは数百円から数千円のレンジで購入でき、開発環境もメーカーから無償または安価に提供されるため、参入の敷居が比較的低い点も、世界中で広く使われている理由のひとつです。
MPUとの違い
マイコンと似た言葉にMPU(Micro Processor Unit)があります。両者は機能面で重なる部分もあり、混同されやすい用語ですが、設計思想と用途は明確に異なります。
MPUは、CPUコアそのものを中心に据えた部品で、メモリやペリフェラルは原則として外部に持ちます。PCのCPUがその典型で、メインメモリやストレージ、各種I/Oは別チップで構成されます。MPUは高い処理性能と柔軟な拡張性を強みとする一方、システムを動かすには外付け部品が多数必要になり、回路規模も基板面積も大きくなります。
マイコンはこの逆で、制御に必要な機能を1チップに集約した自己完結型のデバイスです。処理性能はMPUに劣るものの、外付け部品が少なく、消費電力も低く、起動も速い。汎用的な計算機としての性能よりも、装置制御という具体的な目的に最適化されているのがマイコンの特徴です。
実務上の使い分けは、必要な処理量・コスト・サイズ・消費電力のバランスで決まります。複雑な画面表示や高度な信号処理、大量データの扱いが必要ならMPUベースのシステムが選ばれ、決まった制御を確実に・低コストで・小型に実装したいならマイコンが選ばれます。多くの装置はマイコンで十分実現でき、現場の選択肢としてマイコンが優勢になる場面のほうがはるかに多いというのが実情です。
SoCとの違い
近年、もうひとつ頻出する用語がSoC(System on Chip)です。SoCはより高い集積度を目指した半導体で、CPUコアに加えてGPU、通信モジュール、画像処理回路、AIアクセラレータといった高度な機能までを1チップに統合したデバイスを指します。スマートフォン、車載インフォテインメント、産業用コンピュータ、エッジAI機器などで使われ、マイコンとMPUの中間というよりは、両者の発展形に位置付けられる存在です。
マイコンとSoCの境界線は年々曖昧になりつつあり、最近のハイエンドマイコンはWi-Fi・Bluetoothを搭載したり、AI推論用のアクセラレータを内蔵したりと、SoC的な性格を持ち始めています。一方、SoCの世界でも組み込み用途を意識した低消費電力モデルが増えており、用途が重なる領域も拡大しています。
実務的な区別としては、装置制御の中核を担う「自己完結したコントローラ」を指すならマイコン、複雑なシステム機能を1チップに統合した「小型コンピュータ」を指すならSoC、と理解しておくと混乱しにくくなります。
マイコン開発と組み込みソフトウェア開発の関係
マイコンを実際に動かして装置に組み込んでいく作業は、しばしば「マイコン開発」と呼ばれます。一方で、機器の中で動くソフトウェアを作る仕事は「組み込みソフトウェア開発」と呼ばれます。両者は重なる部分が大きく、現場では混在して使われていますが、視点としてはやや異なります。
マイコン開発は、ハードウェア寄りの視点を含んだ広い概念です。どのマイコンを選ぶか、どんな回路でマイコンを動かすか、どんな基板に載せるか、どうやってプログラムを書き込むか、評価をどう行うか、量産にどう乗せるか、といった「マイコンというデバイスを中心に据えた装置開発全体」を指す言葉として使われることが多くあります。回路設計、基板設計、ファームウェア開発、評価・デバッグまでが一連の作業として含まれ、ハードとソフトの両面を視野に入れた取り組みです。
これに対して組み込みソフトウェア開発は、機器の中で動くソフトウェアそのものを作ることに視点が置かれます。マイコンを含むハードウェアを前提として、その上で動くファームウェア、ミドルウェア、アプリケーション層のロジックを設計・実装・検証していく仕事です。ハードウェアの仕様は与えられた条件として扱われ、ソフトウェア側の品質と機能性に焦点が当たります。
両者は対立する概念ではなく、視点の違いに過ぎません。ひとつのプロジェクトの中で、ハード寄りに見ればマイコン開発、ソフト寄りに見れば組み込みソフトウェア開発、という関係です。実際の現場では、ハードもソフトも一体で設計しなければうまく動かないため、両者を切り離して考えること自体が現実的ではなく、マイコン開発の中に組み込みソフトウェア開発が含まれている、あるいは組み込みソフトウェア開発がマイコン開発と表裏一体になっている、と捉えるのが自然な見方です。
マイコン開発の全体像
マイコンを使った装置開発は、おおむね次のようなプロセスを辿ります。順を追って見ていくことで、マイコン開発の全体像を掴むことができます。
最初の工程となるのが、要件定義です。装置に求められる機能、性能、サイズ、消費電力、コスト、寿命、動作環境、対応すべき規格といった条件を整理し、開発の出発点を固めます。要件があいまいなまま後工程に進むと、設計のやり直しが頻発するため、関係者を巻き込んで時間をかけて固める価値のあるフェーズです。
次がマイコン選定です。要件を満たすマイコンを、性能・ペリフェラル・消費電力・コスト・供給性・開発環境といった観点から比較検討し、プロジェクトの中核となるデバイスを決めます。マイコンが決まると、開発に使うコンパイラ、デバッガ、評価ボード、ライブラリといったツール群もほぼ決まってくるため、後戻りが効きにくい重要な意思決定になります。
マイコンが決まったら、ハードウェア設計に入ります。マイコンの周辺に必要な電源回路、クロック回路、リセット回路、入出力保護回路、デカップリングコンデンサ、外部メモリやセンサとの接続回路などを設計し、回路図に落とし込んでいきます。続くパターン設計(基板設計)では、回路図をもとに物理的な基板レイアウトを作り、ノイズや配線長、実装性に配慮しながら配線を仕上げます。
ハードウェアの試作と並行して、あるいはやや先行して、ファームウェア開発が進みます。マイコン上で動くプログラムを設計・実装し、シミュレータや評価ボードでの動作確認を経て、実機が出来上がったら実機での検証に移ります。ハードウェアとソフトウェアの整合性は、この段階で初めて本格的に確認されることになり、両者の擦り合わせが頻繁に発生するフェーズです。
実機での動作確認が一通り終わったら、評価フェーズに進みます。機能評価、性能評価、温度試験、振動試験、EMC試験、長時間連続稼働試験など、装置として求められる信頼性を確認する試験を順次実施します。試験で問題が見つかれば、回路修正、基板修正、ソフトウェア修正のいずれかで対応し、必要なら再試作・再評価を行います。
評価をクリアしたら、量産フェーズへ移行します。製造ラインでのマイコンへの書き込み手順、検査手順、不良品の取り扱い、製造データの管理といった量産特有の要素を整え、安定した量産が回るところまで持っていきます。出荷後も、フィールドでの不具合対応や、部品EOLへの対応、機能改善のための改版など、長期保守のフェーズが続きます。
マイコンが使われる代表的な領域
マイコンの活躍領域は非常に広く、産業のあらゆる場面で使われています。代表的な領域をいくつか挙げておくと、マイコン開発がどのような場面で求められているかの感覚が掴みやすくなります。
産業機器・装置制御の領域は、マイコンの最も伝統的な活躍の場です。半導体製造装置、検査装置、搬送装置、加工装置、組立装置といった生産設備の内部には、多くの場合複数のマイコンが組み込まれており、装置全体の動作タイミング、センサ情報の取り込み、アクチュエータへの指令、上位システムとの通信といった役割を分担して担っています。
計測機器・試験装置の領域でもマイコンは不可欠です。電気的特性を測定する計測器、環境条件を測るセンサユニット、自動試験装置の制御部などで、高精度な信号処理と確実なタイミング制御を両立する役割を担います。マイコンの性能とアナログ回路設計の品質が、計測精度に直接影響するため、設計のすみずみまで配慮が求められる領域でもあります。
専用治具・テスト機器の領域では、量産現場で使われる検査治具、エージング装置、評価ボードといった、目立たないけれど重要な機器の中でマイコンが働いています。多品種少量で作られることが多く、1台ごとに仕様が異なるため、設計の柔軟性と短納期対応が求められるのも特徴です。
OEM製品の領域では、ある企業が別の企業向けに装置を設計・製造する形態で、マイコンを核にしたカスタム機器が日々作られています。発注元の仕様に応じて、マイコン選定から回路・基板・ファームウェアまでを一体で開発するスタイルが多く、ハード・ソフト両面の総合力が問われます。
加えて近年伸びているのが、IoT機器・エッジ機器の領域です。センサで取得したデータをクラウドに送信したり、エッジ側で簡易な判断を行ったりする機器の内部では、通信機能を持ったマイコンが活躍しています。Wi-Fi・Bluetooth・LPWA・有線Ethernetといった通信機能の選定も、マイコン選定と密接に絡む領域です。
マイコン開発に必要なスキル領域
マイコン開発は、ひとつの専門領域だけでは完結しません。複数のスキルが組み合わさって初めて、装置として動くマイコン応用システムが出来上がります。プロジェクトに関わる方は、自分の専門領域と、隣接する領域への理解を意識しておくと、開発全体での貢献度が大きく変わります。
回路設計のスキルは、マイコン開発の出発点です。マイコンの周辺に必要な電源回路、クロック回路、保護回路、インターフェース回路を設計する力で、データシートの読解力、部品選定の経験、信号品質への感覚といった要素が問われます。回路図が雑だと、後工程の全てが影響を受けるため、地味ですが極めて重要な領域です。
基板設計(パターン設計)のスキルは、回路図を実物として動かすための翻訳能力です。配線の引き回し、グランド設計、ノイズ対策、層構成、部品配置、実装性への配慮など、目に見えない部分での品質が、最終的な装置の信頼性を大きく左右します。高速信号やアナログ信号を扱う基板では、特に経験が物を言う領域です。
組み込みソフトウェア(ファームウェア開発)のスキルは、マイコンに命を吹き込む仕事です。マイコンのペリフェラル制御、リアルタイム処理、状態管理、通信処理、異常処理といったソフトウェア層を、限られたリソースの中で実装していきます。C言語を中心に、最近はC++やRustも視野に入る領域で、ハードウェアへの理解度がそのままソフトウェアの品質に直結します。
評価・デバッグのスキルも、見落とせない領域です。試作した装置を実際に動かし、想定通りに振る舞うかを多角的に確認する力で、オシロスコープ、ロジックアナライザ、JTAGデバッガ、シリアルログといった計測手段を使いこなしながら、不具合の原因を切り分けていきます。ハード起因かソフト起因かを冷静に判断する目利きが、開発スピードと品質の両方に影響します。
これらのスキルは個人の専門性であると同時に、組織としての体制でもあります。回路屋、基板屋、ソフト屋がそれぞれの専門を持ちながらも、相互の領域に踏み込んで議論できる文化があると、マイコン開発はスムーズに進みます。逆に、領域の境界で会話が途切れる体制では、不具合の切り分けや仕様調整で時間を浪費しがちです。
マイコンは現代の電子機器の中核部品
マイコンは、CPU・メモリ・ペリフェラルを1チップに統合した半導体デバイスであり、現代の電子機器を動かす中核部品として、産業のあらゆる領域で使われています。マイコン開発は、デバイスの選定から回路設計、基板設計、ファームウェア開発、評価、量産まで、ハードとソフトの両面を含む総合的なプロジェクトであり、組み込みソフトウェア開発と表裏一体の関係にあります。要件定義からマイコン選定、ハード設計、ソフト設計、評価、量産までの全工程を見渡し、複数のスキル領域を組み合わせて装置を作り上げていく姿勢が、マイコン開発の現場では問われ続けます。次の一歩として、具体的なマイコン選定の観点や、マイコンボードの設計実務、マイコン応用システムの構築といったテーマを掘り下げていくことで、マイコン開発の理解はより実践的なものになっていきます。