- 公開日:2021年01月06日
- | 更新日:2024年02月13日
10分で解説するペリフェラルとは?
- ライター:umamiti
- マイコン
はじめに
皆さんはペリフェラルという単語を聞いたことがあるでしょうか?マイコンを使用されている方は聞いたことがあると思いますが、そうでない方にはあまり馴染みの無い言葉かと思います。本記事では、マイコンに搭載されている代表的なペリフェラルの意味と用途について、具体例を絡めて解説させていただきます。詳細な原理については割愛させていただくので、実際に何処で使われているのかをイメージしていただければと思います。
マイコンとは?CPUとは?
そもそもマイコンやCPUとは?と思われた方は、過去に簡単な解説記事がありますので、こちらをご参考ください。
ペリフェラルとは?
ペリフェラルとは、直訳では周辺機器となりますが、マイコンにおいては内蔵された様々な装置を意味します。中には、マイコンの内部だけで使用される機能もありますが、基本的にはマイコンの外部と接続するための入出力機能として使用されます。
マイコンの基本構造
マイコンの基本的な機能を実現する部分を、演算・制御装置、記憶装置とすると、ペリフェラルはマイコンの機能を拡張することが出来る部分だと分かります。内蔵しているペリフェラルが多いほど、多機能なマイコンと言えることになります。しかし、一般的にすべての機能を使用するわけではないので、使用したいペリフェラルの数が含まれているマイコンを選定することがポイントとなります。
マイコンに内蔵された代表的なペリフェラル
以下が代表的なペリフェラルとなります。これらは昨今では、性能に関わらず基本的にどのようなマイコンにも内蔵されているかと思います。
- GPIO
- ADC
- タイマー
- シリアル通信
- WDT
- DMA
それぞれの意味と用途について順番に解説していきます。
GPIO
GPIOとは、General Purpose Input Outputの略で、汎用I/Oポートと呼ばれます。その名の通り、汎用的なI/Oポートで、マイコンから外部に接続されているピンより1と0のデジタル信号を自由に入力/出力することが出来ます。例えば、マイコンの電源電圧が3.3Vの場合、0を0Vとし、1を3.3Vとします。この0と1の定義はデバイスによって異なりますのでデータシートを確認する必要があります。
最も多い接続先はLEDやスイッチなどが挙げられます。GPIOを出力として使用することで、LEDのONとOFFをユーザーの任意で切り替えることが出来ます。下図のように、1(3.3V)を出力することでLEDを点灯させる、または0(0V)を出力することでLEDを点灯させるという使い方になります。
入力として使用することでスイッチのONとOFFの信号を認識することが出来ます。下図のようにスイッチが押された時に1(3.3V)が入力される、または0(0V)が入力されるという使い方になります。
GPIOの使用例
ADC
ADCとは、Analog to Digital Converterの略で、アナログ信号をデジタル信号に変換することが出来ます。世の中には熱や光、速度、音などのアナログ信号が多数ありますが、アナログ信号はそのままでは信号の処理が難しい状態となります。ADCを使うことで信号処理のしやすいデジタル信号に変換することが出来ます。
ADCの概要
一般的には、温度や加速度などの様々なセンサー機器に接続されます。センサー機器からは現在の測定結果を電圧値のようなアナログ信号で出力します。この出力をADCへ入力することで、測定結果の平均値の計算や、ノイズの影響による誤差を除去するなど、様々な演算を行うことが出来るようになります。
ADCの使用例
タイマー
その名の通り、時間を計測することが出来ます。タイマーを使用することで、一定の正しい間隔で特定の処理を実行することが出来、マイコンのシステム(ソフトウェア)に時間の概念を持たせることが出来ます。また、タイマーを使用することでPWM(Pulse Width Modulation)という信号を生成することが出来、出力する電圧を0~100%に制御することが出来ます。例えば、出力する電圧が0~3.3Vの場合、0%=0V、50%=1.65V、100%=3.3Vというようにマイコンから出力される電圧を柔軟に制御することが出来ます。PWMの概要を下図に示します。
PWMの概要
一例として、GPIOとタイマーを組み合わせることで、LEDを1秒間点灯させた後、1秒間消灯させるという方法で点滅を実現することが出来るようになります。また、PWMを使用することで、モーターの回転速度を調整することや、LEDの点灯する光の強さを調整することが出来るようになります。
タイマーの使用例(LEDの点滅)
タイマーの使用例(PWM)
シリアル通信
シリアル通信を使用することで、他のマイコンやその他の外部機器と通信することができるようになります。マイコンを外部の機器と接続する時、データをデジタル信号として交換します。代表的なシリアル通信の規格には、UART、SPI、I2Cが挙げられます。
基本的には、マスター機器とスレーブ機器に分けられ、今回はマイコンをマスター、シリアル通信に対応した外部装置や他のマイコンをスレーブとします。送信時はマイコンからデータを送信し、スレーブは受信したデータを機器の内部に保存します。マイコンがデータを受信したい場合は、スレーブ機器に対してマイコンへデータを送信するように命令を出します。
シリアル通信の使用例
各種通信規格の解説については、以下の記事を参考いただければと思いますが、多くのシリアル通信に対応しているということは、多くの機器と通信出来るようになるということになります。
- 参考記事:よく分かる! シリアル通信基礎講座
WDT
WDTとは、Watch Dog Timerの略ですが、Watchdogとは直訳で番犬という意味になり、マイコンで動作しているシステム(ソフトウェア)が正しく動作しているか監視することが出来ます。WDTの基本的な動作原理はタイマーと同じですが、マイコンが起動したタイミングから常に時間を計測しており、設定された時間を過ぎてしまった場合、システムに異常があると判断します。ですので、設定された時間を超えるまでに、システムの中で現在のWDTの測定時間を0に戻す必要があります。
WDTの設定時間を10秒にした場合
例えば、WDTの設定時間を10秒とし、先程のタイマーの使用例の様に、1秒に1回必ずGPIOの出力を切り替えるのに合わせて、WDTの計測時間を0にクリアするシステムがあるとします。なにかの要因でシステムが途中で止まってしまい、いつまでも計測時間を0に戻すことが出来ない状態が発生すると、10秒経過した段階でWDTがマイコンを強制的にリセットすることが出来ます。
WDTの使用例(タイマーとGPIOの組み合わせ)
この様にシステムの異常が発生した際に、自動でマイコンをリセットすることが出来る安全装置のような使い方が可能です。しかし、WDTによるリセットが発生したということは何らかの異常があるということなので、根本的なシステムの見直しを行いましょう。
DMA
DMAとは、Direct Memory Accessの略で、マイコン内部のデータ転送を自動で行うことが出来ます。基本的にマイコン内部のメモリや他のペリフェラル間でのデータの転送は、CPUの命令によって制御されます。しかし、DMAを使うことで、CPUを使用せずにデータの転送を行うことが出来るので、CPUは寝ている状態(スリープ状態)にすることが出来ます。
データの転送
例えば、ADCでは変換結果を一時的に保存することが出来ますが、電源を落とした際にはデータが失われてしまいます。DMAを使用することで、電源を落としてもデータが保持されるメモリ領域へ、変換結果を自動的に転送させることが出来ます。さらにこの間はCPUをスリープ状態にすることで、マイコン自体の消費電流を抑えることが出来ます。
DMAの使用例
おわりに
今回はマイコンに搭載されている代表的なペリフェラルの意味と用途について解説させていただきました。本記事と冒頭に紹介させていただいた記事を合わせることで、マイコンについては大まかにですが理解できるかと思います。Texas Instruments社から提供されているMSP430マイコンが搭載された評価ボードはマイコン初心者の方でも簡単に動作させることが出来ます。実際にマイコンを触ってみたい!と考えた方は、是非評価ボードを触ってみてください。本記事が皆様がマイコンを勉強する上で少しでも役に立ちましたら幸いです。
Texas Instruments社の製品をお探しの方は、メーカーページもぜひご覧ください。