マイコン組込み設計を目指す人へ!必要なスキルと習得方法!
ここでは、マイコン組込み設計エンジニアを目指している人へ、仕事のイメージ、必要な基本的スキルや情報を出来るだけシンプルに解説します。
マイコン組込み設計のスキル
この仕事は、組込み設計とかファームウェア設計とも言われています。電気回路に使用されるマイクロコンピュータのプログラムを設計する仕事になります。
このため、マイコンで制御するプログラムは、電気部品のセンサーやモータなど、ハードウェア(回路)と密接に関連します。
マイコンのプログラミングは、主にマイコンが制御するデバイス(センサーやモータ制御用LSI)を制御したり、処理したデータなどを外部(他デバイスなど)と通信することです。
例えばエアコンが室温を一定に保つ機能について、マイコンの制御を解説します。
エアコンは一定の温度を保つために、搭載されているマイコンは温度センサーが検出する温度情報を常に監視しています。温度情報はセンサーから電気信号で出力され、マイコンはセンサーにアクセスすることで室温をデータとして理解することができます。
もし、設定した温度より低い温度が検出された場合、マイコンは室温を上げるために高い温度の風力を強くするなどの制御を行い、設定温度になるまで制御を継続します。
このように、組込み設計者は、マイコンで制御するデバイス(センサーやモータなど)へのアクセスや、必要な情報(データ)を収集し、機能に合わせて制御プログラムを作成します。
制御(組込み)設計者に知ってほしい基本的知識2つについて紹介します。
1.プログラム設計の流れ
2.電子部品(センサー・モータ)などの制御知識
1.プログラム設計の流れ
ここでは、マイコンのプログラム設計について、必要な手順や環境について解説します。
マイコンのプログラム設計は、以下の①~⑤の流れで行います。
①プログラム設計仕様書を作成
ここでは、回路設計者が作成したハードソフト仕様書を基に、機能を実現するためのプログラム構成や、プログラム設計のためのフローチャートなどを作成します。
②設計仕様書を基にプログラムを作成(コーディング)
ここでは、プログラム設計仕様書を基に、プログラム(主にC言語)を作成していきます。開発用エミュレータを使用して、機能毎にマイコンが仕様通りに動作するか確認をしプログラムを作成していきます。
③プログラムをコンパイルする
ここでは、作成したプログラムをマイコンが理解できる言語(マシン語)に変換(コンパイル)します。マイコン開発用のエミュレータのコンパイル機能を使用します。
④プログラムをマイコンにダウンロードする(実装)
ここでは、コンパイルされたマシン語データをマイコンのプログラム格納領域(ROM)にダウンロードします(実装)。マイコン開発用のエミュレータのダウンロード機能を使用します。
⑤5デバックと結合テスト
ここでは、作成したプログラムがハードウェア(実機)で正常に動作するかをテストをします。正常に動作しない場合は、原因を追究してプログラムを修正し、②~⑤を繰り返し行います。この作業をデバッグといいます。
2.電子部品(センサー・モータなど)の制御知識
ここでは、マイコンが電子部品を制御するための基本知識について解説します
マイコンは製品の頭脳として、様々な機能を制御していきます。
マイコンは、センサーやモータ、通信用LSIなどのデバイス(電子部品)へアクセス(データ通信)し、必要な情報(データ)を収集(受信)したり支持(送信)することでデバイスの機能を制御します。
このため設計者は、制御対象であるデバイス(電子部品)の機能の理解が必要となります。回路設計者のように各部品の電気的特性などの詳細知識は必要ありませんが、デバイスの制御方法の理解が必要となります。
通常は、回路設計者が作成したハードソフト仕様書にデバイスの制御方法などが記載されています。
ここでは、以下にデバイス(電子部品)の機能とデバイスの制御方法について解説します
・デバイス(電子部品)の機能(役割)
センサーは温度や対象物との距離、最近では匂いなども検出できるセンサーもあります。モーターはエンコーダという部品から回転数を検出できます。このようにマイコンが制御するデバイス(電子部品)は多種多様に存在します。
制御するデバイス(電信部品)の機能(役割)を理解をし、デバイスを制御する情報(データ・信号)の収集(受信)、支持(送信)の方法について理解することが必要です。
温度センサーであれば、センサーは温度に準じた電圧がセンサーから出力されます。例えば検出した温度が36℃であれば、例えば0.5V(参考値)という電圧が出力されます。
そしてマイコンはこの電気信号を受信することで温度を理解することができます。
実際は、各デバイス(電子部品)を制御する情報は、先に示したハードソフト仕様書に記載されています。それを基にプログラムの設計を行っていきます。仕様書を理解するには、上記の様なデバイス(電子部品)の知識が必要です。
・デバイス(電子部品)の制御方法
マイコンは、制御するデバイスと電気信号の送受信(アクセス)により制御を行います。
デバイスにはアクセスするためのルールがあります。マイコンは、そのルールに準じてデバイスへアクセス(電気信号を送受信)します。それにより、デバイス(電子部品)の機能を制御します。
マイコンがデバイスへアクセスするために代表的な5つの制御信号があります。これらの信号を使用して、制御対象のデバイスとデータの送受信を行います。
☞チップセレクト信号(CS)
この信号はデバイスを選定する信号です。この信号によりマイコンがアクセスするデバイスを選択します。
☞ライト信号(WR)
この信号はデータを書込みする信号。この信号により、マイコンからデバイスへデータを書込むこと(送信)を知らせます。
☞リード信号(RD)
この信号はデータを読込みする信号。この信号により、マイコンからデバイスへデータを読込むこと(受信)を知らせます。
☞アドレス信号(AD)
この信号はデバイスのデータ格納場所(住所)を示す信号。アクセスするデバイスやデータが格納されている場所を指定します。
☞データ信号(DA)
この信号はデバイスへ送受信するデータ信号。デバイスが検出したデータや、デバイスへ支持するデータなどです。
実際は、各電信部品を制御する情報は、先に示したハードソフト仕様書に記載されいています。それを基にプログラムの設計を行っていきます。
そして、各デバイスのデータブックには、これらの情報が記載されています。制御ができない時など、仕様書やデバイスのデータブックを確認しながらプログラムを修正をしていきます。
また、うまく制御ができない場合は、ハードウェア(回路)が原因の場合もあります。組込み設計者はハード設計者と連携しながらプログラムの改修(デバック)を行います。
必要なスキルと習得方法
ここでは、組込み設計エンジニアを目指す方へ、必要なスキルの習得方法について紹介します。
1.プログラミングスキル
2.マイコンの基本構成の理解
3.実機(キッド)を活用した実践トレーニング
1.プログラミングスキル
マイコンへの組込みを行うたまめのプログラムの多くはC言語です。まずC言語のプログラミングスキルを身に付けることが必要です。
C言語の習得方法は様々です。自分に合う勉強方法を選択し進めるのが良いと思います。
☞書籍などを活用する
自分で書籍を購入し勉強をする方法ですが、自分のレベルにあった参考書を選びましょう。
<参考:お勧め書籍>
基板付きキット 絵解き マイコンCプログラミング教科書 加速度/温度/照度を測ったりLEDを光らせたり…ハードウェアを動かしながら学ぶ (トラ技ジュニア教科書) [ 鹿取 祐二 白阪 一郎 永原 柊 藤澤 幸穂 宮崎 仁 ]
☞WEBネットなどを活用する(勉強できるサイトを検索)
最近はプログラム言語を勉強できるサイトが多くあります。効率的に勉強をするためにサイトを活用するのも良いです。ただし、項目や範囲が絞られているので、自分のスキル合わせて活用しましょう。入門的な内容はおすすめです。
☞動画(YouTube)などを活用する
最近はC言語を勉強できる動画や動画研修サイトがたくさんあります。作者によって内容は講座の品質は様々です。内容がしっかりした講座を選択し活用しましょう。
2.マイコン基本構成の理解
マイコン制御プログラムを習得するためには、マイコンの基本構成を理解することが必要です。基本構成は、I/O,CPU,ROM,RAM,周辺回路の部品で構成されています。
マイコンに電気信号がI/Oで受信され、マイコン内部のCPU(演算装置)が処理に要なデータをメモリ(ROM、RAM)から送受信し、必要な処理(演算)を行い、結果をI/Oへ出力します。
プログラムの習得は、マイコンの基本構成をしっかり理解することが大事です。
3.実機(キッド)を活用
プログラム習得にはキッド(実機)などを購入し勉強する方法もあります。実際に自分で設計したプログラムをキッドで動作確認をしながら勉強ができるので非常におすすめです。
最近は勉強用のキッド(実機)が、かなり安価な価格で購入できます。また、自己投資をし勉強意欲をたかめて習得していくことも大事です。是非トライをしてみてください。
<参考:お勧めキッド>
アルディーノ Arduino Uno R4 WiFi マイコンボード マイクロコントローラボード プログラミング 知育玩具 夏休み 自由研究 工作
まとめ
マイコン組込み設計は、プログラムミングスキルを習得、マイコンの基本構成を理解、キッド(実機)で実際に動作確認やデバック(プログラム修正)を行いながら勉強することがおすすめです。
現在トレンドのIOT技術にもマイコン制御は多く使用せれています。組込み設計は、これからもエンジニアにとって価値のあるスキルです。
技術進歩も早い分野なので、常に最新の技術動向にアンテナをはり、最新のマイコン機能などを収集しながら、知識習得に向けてスキルアップを行ってください。
参考)エンジニアの情報収集サイトはこちら