マイコンって何?マイコンの使い方が分からない…
小型化・簡易化していく電子工作において非常に重要になるマイクロコンピュータという素子。今日はそんなマイクロコンピュータ、略して一般にはマイコンと呼ばれるICについてお話していこうかと思います。
みなさんこんにちは、Jinです。秋の気配深まりだいぶ肌寒さの感じる時期となりましたが、いかがお過ごしでしょうか。
このブログをチェックしてくださっている方には身近に感じられるかもしれないマイコンについて、今回は掘り下げて解説していこうと思います!
この記事はJLCPCBにてご提供いただいております。ぜひチェックしてみてください!
目次
全ては電卓から始まった
まずはマイコンについて知るために、マイコンが誕生したその経緯からお話していくこととしましょう。
すでに見出しにある通り、マイコンの誕生は数十年前のいわゆる「電卓競争期」にまで遡ります。
電卓の歴史についてはこちらの記事で詳しく述べていますが、機械式から電気式が主流になったことにより計算機と電気工学は相乗効果で発展していきました。
リレーやモーターを使用した古典的な電卓は、やがて半導体素子であるトランジスタへと切り替わり、やがてトランジスタを集積化したICによってさらに高機能化していくことになります。
そしてICが進化するとそれはやがてコンピュータを作り上げます。日本のビジコン社は電卓競争下でリードするべく、アメリカのインテルとプログラム可能なチップの製造に着手します。
当時のインテルは半導体メモリをメインとする小規模な企業でした。ビジコン社の構想からインテル社のテッド・ホフはマイクロプロセッサの原点を思いつき、それをビジコン社の嶋正利とインテル社のファジンがそれぞれ設計し、世界初のマイクロコンピュータ「4004」が誕生します。
これによりマイコンが発展していき、またそれに伴ってCPUが誕生します。
マイコンとは
コンピュータというのは非常に複雑な機能を持つブロックが複数構成されて出来上がるもので、これについては別の記事にて詳述しようと思います。
特にマイコン(マイクロコントローラやマイクロコンピュータ)はメモリに書き込まれたプログラムを実行する電気部品であり、ハードウェアとソフトウェアの中間ともいえる部品であります。
マイコン自体は普通のトランジスタの集積回路ですが、内部を多種多様にプログラミングし、様々なハードに組み込むことで色々なハードウェアの制御を実現することが可能な非常に秀逸な素子です。
マイコンに生えている足をピンと言いますが、そこから出力される電気的な信号でハードを動かします。そしてその信号には様々な技術が使用されていますので、少しご紹介します。
GPIO
マイコンは基本的には内部にあるスイッチによって演算をしているので、ディジタルな回路と同じように電圧のLowとHighを0と1として表現するディジタル出力しかできません。入力も同じくです。
その0or1の入力をしたり、出力をしたりするピンを汎用ディジタル入出力ピン「GPIO」と言います。一般的なマイコンの入出力ポートであり、これをOn/Offすることによりシリアルな信号を出力することが可能です。
PWM
マイコンは複雑は制御を要するとき、シリアル信号によってそれを実現することが多いです。シリアルな信号とはつまり一つのピンから出力される矩形波(パルス)のことです。
アナログな信号が欲しいとき、このパルスを少しいじってあげることでそれを疑似的に可能にする技術が存在し、それをパルス幅変調(PWM)と呼びます。
GPIOピンからパルスを出力したとき、実はHighの電圧ではなくその平均値がアナログ値として取り出せます。そしてパルス幅(デューティ比)を大きくすると平均値が上がり、小さくすると平均値が下がります。
この大きくしたり小さくしたりを制御することで、疑似的なアナログ値をGPIOピンから取り出す技術がPWMです。
UART
マイコンは先述の通り、シリアル信号で通信するのが主流です。シリアル通信のほかにパラレルという通信があります。シリアル通信は一本の線でクロック信号に合わせてデータをディジタルで送信する方式です。
パラレル通信はこれと逆で、信号の大きさだけの線を用意して直接1or0のディジタル信号を送信しますが、多くの信号線を使用するためマイコンではその分のピンを使用することになります。
多くのピンを使用すると、使えるピンが少なくなってしまったり、信号伝達速度がばらついたりするため、シリアル通信でPCやセンサと通信するのが主流です。
しかし様々なハードの内部ではパラレル信号を使用してデータを処理するため、シリアルで通信した信号を変換する必要があります。そのため、UART通信という技術が存在します。
UARTはPCやほかのマイコンとシリアル通信する際、パラレルな信号をシリアルな信号に変換して通信し、通信後にまたパラレルに変換するという方式です。これによって通信をしやすくしています。
マイコンの種類
マイコンにはどのようなアーキテクチャ(内部構造)をしているかによって機能や価格帯に差があります。そんなマイコンの種類分けとどのような場合にどのマイコンを使えば最適か、をご説明していこうと思います。
PIC
PICマイコンは最初期に登場し歴史が長いマイコンです。Microchip社が製造を手掛けており、その歴史の長さからドキュメントが多く、また価格も安価であるためマイコンを始めるのには最適です。
しかし後述するavrアーキテクチャを使用しているavrマイコンと比較して、アセンブラ(機械語に近い低級言語)が使いづらかったり、開発環境構築のハードルが高かったりと、デメリットもそれなりにあります。
AVR
AVRマイコンはATmel社が製造を手掛けるマイコンであり、PICマイコンと同じくらいの性能・価格帯ではあるものの開発環境構築のハードルが低かったり、アセンブラも使いやすいです。
ドキュメントは少ないですが、今ではそこまでの差もなく、PICマイコンとAVRマイコンの差はあまりありません。PICとAVRではアーキテクチャが違うので、同じように扱うことはできませんが、それぞれ自分に合った方を使うと良いでしょう。
AVRマイコンにはArduinoという有名なマイコンボード(マイコンを搭載した高機能なボード)があり、こちらはマイコンの入門として最適ですので、PICマイコンやAVRマイコンなどより、このような「マイコンボード」を使用することがおすすめです。
ARM
ARMマイコンは少し特殊です。ARM社がアーキテクチャの設計を手掛けてはいますが、その製造を行っておらず、アーキテクチャの設計を他社に提供したうえで、様々な企業がそのチップを開発しております。
そのため企業によっていろいろなシリーズのマイコンが登場しており、その性能や価格帯も様々です。有名なのはラズベリーパイやSTM32シリーズでしょうか。
これらのマイコンは単体ではなくマイコンを乗せたマイコンボードという形でシリーズ化されていますが、ラズベリーパイは特に中にOSを入れてパソコンのように動かすことが可能です。
STM32はArduinoのようなマイコンボードと同じ形式ではありますが、動作周波数や機能的な面で、圧倒的に性能が上回っています。
そのため、Arduinoでの性能が不足したときにArmマイコンを使うようにすると良いでしょう。
「~ウェア」の話
さて、マイコンの話を一通りしたところで、モノづくりにおける様々な分野を分けている、「~ウェア」の話をしようと思います。この~ウェアには、ハードウェア、ソフトウェア、そしてその中間であるファームウェアの3種類があります。
ソフトウェア
ソフトウェア、という単語を皆さん何気なく日常で使うことはないでしょうか。PCなどのアプリを「~のソフト」などということはよくあることでしょう。そんなソフトウェアについて、少し理解を深めていきましょう。
ソフトウェアの「ソフト」は「柔らかい」「柔軟な」という意味を含む形容詞です。これをモノの世界でいえばプログラムのことです。
プログラムはその記述内容によってさまざまな機能いろいろな制御を行うことができるので、使用用途、実現目的に合わせて柔軟に記述することでモノを作るためにこのソフトウェアという名前が付けられています。
ハードウェア
ハードウェアも単に「ハード」と呼ぶことが多いです。ハードは「柔らかい」という意味のソフトに対して、「硬い」という意味を含む形容詞です。
ハードウェアをモノの世界でいうと、電気回路やリレーシーケンスのような回路全般のことを言います。記述する内容によって多様な動作をするプログラムとは違い、回路は一度組んでしまうと、設計を変えない限り特定の動作しかできません。
そのため、一度作れば変えられない「硬い」モノとして回路やシーケンスの配線にはハードウェアという名前が付けられています。
ファームウェア
先述したマイコンの歴史を思い返すと、最初に登場したのはハードウェアですが、ビジコン社がプログラムできるものを作ってしまいました。マイコンです。これがソフトウェアの始まりとなりました。
マイコンはソフトウェアとハードウェアを区切る境界として捉えます。内部メモリに保存されたソフトウェアによって、外部に接続されたハードウェアを柔軟に動かすことができます。
このようなソフトウェア(マイコンのプログラム)を、ファームウェアと呼ぶことになっています。「ファーム」とは農場のことではなく、柔らかいけどしっかりしているような状態を表す形容詞です。
自在にプログラムをしてハードを動かすことが出来るのですが、ハードにはハード特有の定格電圧や電流など様々な制約が課されており、完全に自由に動くという訳ではない、という解釈が良いかと思います。
最後に
計算を早くしたい、自動でしたいとする人類の大きな夢は、大きな電卓を生み出し、その競争によって小さなコンピュータに発展していきました。
マイコンは様々な種類、様々な技術が複雑に絡み合って成立しています。ハードを動かすためのソフト、ソフトによって動かされるハード、それを実現可能にしたマイコン…
ナノレベルまで集積されたこの微小な世界は、見かけによらず非常に奥が深く、良いものを作ろうとする人々を魅了し続けてきました。そして私もその一人です。
この記事はjlcpcbにご提供いただいて発信しております。こちらも併せてご覧ください!
いかがでしょう、皆さん。この小さな世界に触れて、大きな夢を叶えてみませんか?ワクワクするような未来があなたを待っています!それではまた!GoodBye