MCUは特定のアプリケーションに必要とされるI/O回路を搭載している点が大きな特徴です。I/O回路にはさまざまなものがありますが、大きく分けると以下の2種類に分けられます。
汎用性の高いI/O
MCUとして動作するうえで、アプリケーション分野に限らず、ほとんどの場合必要となるようなI/O回路です。分かりやすい例が汎用タイマー回路とGPIO(General Purpose I/O)回路です。
ビット単位のポートの制御はLED駆動やスイッチの入力などに必ずといっていいほど使われるので、ほとんどのMCUに搭載されています。また、汎用タイマー回路はプログラムが時間に応じた処理をするときの基準クロック源として必要になるため、多くの場合必要になります。RTOSなどを動作させるときにはタイマー回路があることが動作環境の最低条件となります。
次によく使われる回路は、RTC(Real Time Clock)や簡単なシリアルI/Fです。RTCは製品に時計/カレンダー機能を実現するのに便利です。簡単なシリアルI/Fは、MCUとは別に搭載されている周辺チップとの通信手段としてよく用いられますし、汎用のシリアル通信チャネルとして使えるものもあります。
そのほかには、I/Oとメモリの間のデータ転送を専門に行うDMACもよく搭載されます。CPUのソフトウェアでもデータの転送はできますが、高速かつ大量のデータのときにはCPUのリソースをほかの制御に振り向けられるので、DMACでのハードウェア転送が効果的です。
MCUでよく見られる回路としてはウオッチドッグタイマーがあります。これはプロセッサから一定期間アクセスがないと強制的にリセットを掛けるなどの動作を行うタイマーで、プログラムの暴走などからプロセッサ動作が止まってしまったときの復帰に用いられます。
最近では製品に通信機能が要求される場合が多いので、MCUにも標準通信回路を搭載しているものが多くあります。PCとの通信用にはUSBスレーブ回路、USB機器を接続するためのUSBホスト回路、ネットワークとの接続用にEthernet回路などです。
専用性の高いI/O
専門性の高いI/Oはアプリケーション分野によってさまざまあります。以下ではいくつかの代表的な分野向けのMCUが搭載しているI/O回路を列挙します。
PWM(Pulse Width Modulation):矩形波を出力しますが、矩形波のデューティ比をプログラムで制御できるようになっています。モーターの回転制御などに用いられます。
高度なタイマー:機械の動作のタイミング制御を正確に行う場合や、機械の動作の時間を正確に計測する場合はタイマー回路が使われます。タイマー回路は一種のカウンターで、外部の信号でカウンターのトリガを掛けて時間を計測したり、カウンターに設定した時間が経過したら外部にトリガ信号を出力して、タイミングの制御などをします。
ADC(Analog to Digital Converter):外部のセンサーなどからアナログ信号を取り込んでデジタル値に変換します。ADCの精度や変換速度でさまざまなバリエーションがあります。アナログ信号を出力するセンサーの値を取り込むのに使われます。
DAC(Digital to Analog Converter):プログラムで設定した値に応じたアナログ信号を出力する回路です。アナログ信号を使って制御する回路の制御用や音声信号などの出力に用いられます。DACも精度や変換速度でさまざまなバリエーションがあります。
CAN(Control Area Network):制御用のネットワークを構成するための回路です。車載機器などのECU間での情報通信手段として用いられます。
MCUは制御用途に用いられますから、実時間制約のある制御アプリケーションでよく用いられます。従ってアプリケーションプログラムには多くの場合リアルタイム性が求められ、しかも複数のI/Oを並列に制御する場合が多いためマルチタスク動作も要求されます。これらの要求を満たすため、MCUにはRTOS(Real Time Operating System)を搭載するのが一般的です。一方、要求がそれほど高度でない場合にはRTOSを搭載しない場合もあります。
RTOSを搭載した場合、アプリケーションプログラムはタスク単位で記述し、複数のタスク間の調整はRTOSに依頼します。また、I/Oの割り込み処理部分はRTOSのデバイスハンドラとして記述しRTOSに登録することで、I/OをRTOSの管理下に置きます。
最近の制御アプリケーションなどではホストとの通信などの機能も要求される場合が多く、しかも通信プロトコルも複雑な標準プロトコルが求められます。こういった標準プロトコルを実行する通信スタックを自社で開発するのは大変なので、サードパーティ製のミドルウェアを使用する場合も多くあります。こういったミドルウェアとしては、通信スタック以外にファイルシステムや組み込みデータベースなどがよく使われます。
人々がより便利な生活を望む限り、MCU自身の市場が後退することはないでしょう。市場の成長とともにMCUに要求される機能もより高度で多機能になってきます。短期的には、より大規模のメモリを持ち、より多くのI/O回路が搭載され、より高性能なプロセッサが搭載されるという形で、MCUの性能は向上し続け、従来困難だった高度なサービスを実現できるように進化していくと思われます。
同時に、MCUのコストパフォーマンスも向上するため、従来ではMCU搭載の難しかった低価格の民生機器にも搭載されるようになるでしょう。しかし、MCUはASSPが主流ですので、有望なアプリケーション分野の特定とその使われ方が常に重要になります。単にMCUに載せただけでは何も価値を生みません。まずアイデアありきで、MCUがどんな付加価値を生み出せるかをはっきりさせる必要があります。
長期的には、MCUは特定の分野のノウハウまでをソフトウェアの形で搭載した制御システムそのものとして提供されていくと思われます。現在のMCUは、ソフトウェアに関してはユーザーに解放された、ハードウェアシステムと同じです。しかし、ユーザーはICというよりはシステムそのものを必要としていますから、MCUを購入したらある分野の機能を最初から搭載している、“システム”としてのMCUが登場してくると思われます。
MCUは機器にインテリジェンスを付加するシステムです。“電子頭脳”と昔呼ばれていたものは、いま考えればMCUとしてある程度実現されているとも考えられます。かつて鉄腕アトムが“電子頭脳”の真空管交換でよみがえるという場面がありましたが、MCUの交換でロボットがよみがえるという時代も、間近にせまっています。
Copyright © ITmedia, Inc. All Rights Reserved.