2007年11月2日金曜日

組み込みシステム

組み込みシステム(くみこみシステム)、エンベデッドシステム (Embedded system) は、特定の機能を実現する目的でコンピュータを組み込んでいる、特定目的のシステム。パーソナルコンピュータ等の汎用的なシステムと対比される。

急激に成長している分野であることもあって、組み込み、組込み、組み込、組込の各表記が混在しているが、読みはいずれも「くみこみ」である。

発展

組み込みシステムが発達する以前は、電子制御を行う仕組みをアナログ回路やデジタル回路といったハードウェアによる回路により構成していたが、各種機器に新たな機能を追加する場合、回路を変更する必要があるため、コストがかかるという問題があった。

1980年代以降コンピュータの発達により、コンピュータを用いた制御機構にすることで、回路は変更せずソフトウェアのみを変更すれば機能の追加が可能になり、機能追加に必要なコストが削減された。 このため、ほとんどの電化製品は組み込みシステムを用いて付加価値として新機能を追加するようになっている。 工場などでの作業を自動化する産業用ロボットや工作機械なども、コンピュータを内蔵した組み込みシステムである。


具体例

電子制御を必要とする製品において非常に多岐に渡って用いられる。例として以下に挙げる。

携帯電話、自動車、カーナビゲーションシステム、炊飯器、信号機、エレベーター、自動販売機、デジタルカメラ、テレビ、ゲーム機、複写機等。


汎用システムに対する組み込みシステムの特徴
最終製品が多岐に亘るため、汎用コンピュータに比べて組み込みシステムは非常に数と種類が多い。
ソフトウェアだけでなくハードウェアも専用のものを開発することが多い。また、そのハードウェアに対応したデバイスドライバを作る必要もある。
機械の制御を行う場合にはリアルタイム制御が重要になる。
大量生産される製品の場合にはコストが非常に重要となるので、必要最低限のメモリと、安価なCPUで動作する必要がある。小規模なシステムでは1チップマイコンを利用することが多い。
ほとんどの組み込みシステムでは、ユーザがプログラムを入れ替えたり更新したりすることは想定されない。そのため汎用コンピュータよりも自由にオペレーティングシステムやシステム構成を選択できる。
組み込みに用いられるOSとしては、日本においてはμITRON仕様OSが採用されることが多い。VxWorks、OS-9、QNXなども広く利用され、また最近では強力なネットワーク機能により本来汎用OSであるNetBSD、OpenBSD、FreeBSDなどのUnix-likeOSにも注目が集まっている。詳しくは、組み込みオペレーティングシステムを参照のこと。
ただし、現在においても、特に低資源の環境ではOSを採用しないことも多い。
かつては、ソフトウェアはEPROM(特にUV-EPROMが使われることが多かった)に書き込まれた状態で出荷されたため、出荷後にバグが発見されると、製品回収・交換作業などが必要になり、多大な費用がかかった。近年は主にフラッシュメモリが採用されるようになったので、出荷後の書き換えも可能となったが、大きな影響を及ぼすことには変わりはない。デジタル家電やパソコンの周辺機器などの場合、修正ソフトウェアはネットワークを介して公開されることが多い。
ソフトウェアはC言語で記述されることが多い。32ビット以上のマイコンなど、比較的ハードウェア資源が豊富な環境ではC++やJavaが使用されることもある一方で、4ビットマイコンなどの資源が貧弱な環境や、逆に他言語では間に合わないような極めて高速な処理を求められる場面では、現在でもアセンブリ言語の使用が必須である。
(ソフトウェア開発全般の話で)最近では開発にUMLといったオブジェクト指向の手法が取り入れられるようになっている。ただし組み込みシステム開発においては、機能で分類したクラスでプログラムを組み立てるのではなく、信頼性が保証されたモジュールで組み立てるのが普通である。
デバッグは、ICEと呼ばれる機器を用いてパソコンをCPUに接続してリモートで行う。近年では、ICEを使わずJTAGエミュレータやROMエミュレータなどのエミュレータや、パソコン上でCPUの機能をシミュレートするシミュレータも使用される。
近年ではPCベースのハードウェアの低価格化に伴い、PCベースのハードウェアを使用し、OSも組み込み向けにカスタマイズしたWindows CEやLinuxなどが採用されている。Windows Embeddedは航空券のチェックインシステムからコンビニのPOSレジまで幅広く採用されている(組み込み版ではなかったWindowsNT 4.0の頃から組み込みシステムに採用されていた)。
携帯電話やデジタル家電、自動車など、必要とする機能が多岐にわたるシステムは、複数のマイコン・複数のOSを組み合わせたものとなり、数百人単位の開発人数・数年規模の開発期間を必要とする。このため、大規模組み込みシステムと呼ばれることがある。
専用のハードウェアに専用のソフトウェアが搭載されて製品となるものが多いので、そのテスト工程は、ハードウェア、ソフトウェアの両方にまたがる検証が重要になる。


主な組み込み向けCPU
8049, 8051, 8085, Z80, 68000, V30, V850, PIC, Atmel AVR, H8/300, SuperH, PowerPC, M16C, R8C/Tiny, MIPSアーキテクチャ, ARMアーキテクチャ

0 件のコメント: