組み込みシステム
出典: フリー百科事典『ウィキペディア(Wikipedia)』
組み込みシステム(くみこみシステム)、エンベデッドシステム (Embedded system) は、特定の機能を実現する目的でコンピュータを組み込んでいる、特定目的のシステム。具体例としては、携帯電話、自動車、カーナビゲーションシステム、炊飯器、信号機、エレベーター、自動販売機、デジタルカメラ、テレビなど。
各種機器に新たな機能を追加する場合、従来は電気的・電子的な回路(ロジック)を使うため、コストが高くなる問題があったが、1980年代以降コンピュータの発達で、ソフトウェア的に機能の追加が可能になり、機能追加のコストが削減された。このため、ほとんどの電化製品は組み込みシステムを用いて付加価値として新機能を追加するようになっている。
また工場などでの作業を自動化するロボットや工作機械なども、コンピュータを内蔵した組み込みシステムである。
最終製品が多岐に亘るため、汎用コンピュータに比べて組み込みシステムは非常に数と種類が多い。
急激に成長している分野であることもあって、組み込み、組込みの両方の表記が混在している。
[編集] 汎用システムに対する組み込みシステムの特徴
- ソフトウェアだけでなくハードウェアも専用のものを開発することが多い。
- 機械の制御を行う場合にはリアルタイム制御が重要になる。
- 大量生産される製品の場合にはコストが非常に重要となるので、少ない容量のメモリと、安価なCPUで動作する必要がある。
- ほとんどの組み込みシステムでは、ユーザがプログラムを入れ替えたり更新したりすることは想定されない。そのため汎用コンピュータよりも自由にオペレーティングシステムやシステム構成を選択できる。
- 多くの場合、ソフトウェアはROMに書き込まれた状態で出荷されるため、出荷後にバグが発見されると、製品回収・ROM交換作業などが必要になり、多大な費用がかかる。近年、ソフトウェアはROMではなくフラッシュメモリに格納され書き換え可能になったが、出荷後の改修が困難なことは変わっていない。
- ソフトウェアはC言語で記述されることが多い。32ビットマイコンなどの比較的ハードウェア資源が豊富な環境ではC++やJavaが使用されることもある一方で、ハードウェアを直接操作する場面や、4ビットマイコンなどの資源が貧弱な環境では、現代でもアセンブリ言語の使用が必須である。
- デバッグは、ICEと呼ばれる機器を用いてパソコンをCPUに接続してリモートで行う。近年では、ICEを使わずJTAGエミュレータやROMエミュレータなどのエミュレータや、パソコン上でCPUの機能をシミュレートするシミュレータも使用される。
- 近年ではPCベースのハードウェアの低価格化に伴い、PCベースのハードウェアを使用し、OSも組み込み向けにカスタマイズしたWindowsやLinuxを採用することも多い。
- 携帯電話やデジタル家電、自動車など、必要とする機能が多岐にわたるシステムは、複数のマイコン・複数のOSを組み合わせたものとなり、数百人単位の開発人数・数年規模の開発期間を必要とする。このため、大規模組み込みシステムと呼ばれることがある。
[編集] 主な組み込み向けCPU
- 8049
- 8051
- 8085
- Z80
- 68000
- V30
- PIC
- Atmel AVR
- H8/300
- SuperH
- PowerPC
- M16C
- R8C/Tiny
- MIPSアーキテクチャ
- ARMアーキテクチャ