組み込みシステム
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/11/22 22:43 UTC 版)
汎用システムとの比較
- 組み込みシステムは、最終製品が多岐に亘るため、汎用的なコンピュータに比べて非常に数と種類が多い。
- ソフトウェアだけでなくハードウェアも専用のものを開発することが多い。また、そのハードウェアに対応したデバイスドライバを作る必要もある。
- 機械の制御を行う場合には特に、汎用システムとは異なり、リアルタイム制御が重要になる。
- 大量生産される製品の場合にはコストが非常に重要となるので、必要最低限のメモリと、安価なCPUで動作可能にする必要がある。小規模なシステムでは1チップマイコンを利用することが多い。
- 専用のハードウェアに専用のソフトウェアが搭載されて製品となるものが多いので、そのテスト工程は、ハードウェア、ソフトウェアの両方にまたがる検証が重要になる。
ハードウェア
組み込みシステムを搭載した機器のハードウェアの構成パターンとしては以下のようなものがある[5]。
- 独自のハードウェアのみで機器を構成する。
- 汎用のマイコンボードと独自のハードウェアを組み合わせて機器を構成する。
- 汎用のハードウェアのみで構成する。
製品の目的や、製品が販売されるマーケットの性質に応じて、上記からパターンが選択される[6]。
より具体的には以下のような要素を考慮してハードウェアの構成が検討される。
- 形状、サイズ
- 量産品か否か
形状が特殊であったり、サイズが特別に小さい製品などでは、汎用のハードウェアを内蔵することができないことがあり、その場合は専用のハードを新たに開発しなければならなくなる。 「量産品か、少量生産品か」というのは、独自ハードウェアは、開発コスト(回路設計費、基板設計費等)がかかる、という事実があり、量産品の場合は全体の大きなコストの中にそれを含めてしまえば良いのだが、少量生産品の場合はそうできないというハードルがある、ということである。
厳密で適切な選択となると、原価計算も踏まえて行う必要がでてくる[7]。
組み込み向けCPU
以下に主なものを挙げる。
- 8049
- 8051
- 8085
- Z80
- 68000
- V30 , V850
- PIC
- Atmel AVR
- H8/300
- SuperH
- PowerPC
- M16C
- R8C/Tiny
- MIPSアーキテクチャ
- ARMアーキテクチャ
ソフトウェア
「独自に開発したソフトウェアだけで構成する」方法と、「汎用ソフトウェアと独自ソフトウェアを組み合わせて構成する」方法が存在する[8]。
- ソフトウェアはC言語で記述されることが多い。32ビット以上のマイコンなど、比較的ハードウェア資源が豊富な環境ではC++やJavaが使用されることもある一方で、4ビットマイコンなどの資源が貧弱な環境や、逆に他言語では間に合わないような極めて高速な処理を求められる場面では、現在でもアセンブリ言語の使用が必須である。
- (ソフトウェア開発全般の話で)最近では開発にUMLといったオブジェクト指向の手法が取り入れられるようになっている。ただし組み込みシステム開発においては、機能で分類したクラスでプログラムを組み立てるのではなく、信頼性が保証されたモジュールで組み立てるのが普通である。
- デバッグは、ICEと呼ばれる機器を用いてパソコンをCPUに接続してリモートで行う。近年では、ICEを使わずJTAGエミュレータやROMエミュレータなどのエミュレータや、パソコン上でCPUの機能をシミュレートするシミュレータも使用される。
- かつては、ソフトウェアはEPROM(特にUV-EPROMが使われることが多かった)に書き込まれた状態で出荷されたため、出荷後に製品不具合が発見されると、修正や修理のためにメーカによる製品回収・交換作業などが必要になり、多大な費用がかかった。
- 近年はソフトウェア容量が大きくなり、機能ごとに複数のソフトウェアを搭載する組み込み機器も少なくない。特に、携帯電話、デジタルオーディオプレーヤー、HDDレコーダなどのデジタル家電のファームウェア、パソコン周辺機器のファームウェアにも組み込み用途向けOSを搭載する機種が多い。機能は多様化したが、不具合対処のリスクも高まった。このため製品にフラッシュメモリを採用し、出荷後にユーザサイドで書き換え可能とすることで、以前と比べメーカ側の負担は軽微になった。しかしシステム解析の複雑さから不具合の発覚から修正までにかなりの時間を要することがあるようにもなり、市場に大きな影響を及ぼすことには変わりはない。ソフトウェアの書き換えには様々な手段が用いられており、修正ソフトウェアの入ったリムーバブルメディアをユーザ側で取り込ませる方法、放送電波を経由させて配信する方法などがあるが、インターネットに直接アクセスして自動で修正ソフトウェアにアップデートする機能をもった機器が増えてきている。
- パーソナルコンピュータ本体のBIOSは、マザーボードの機種ごとに組み込まれた組み込みシステムソフトウェアであり、主にマザーボード上のチップセットに対してのファームウェアである。BIOS設定画面でユーザが設定した項目は、大容量コンデンサやボタン電池などでバックアップ(これらはCMOSバックアップ電池と呼ばれる)されたROMに保存されている。
OS
- 組み込みに用いられるOSとしては、日本においてはμITRON仕様OSが採用されることが多い。VxWorks、OS-9、QNXなども広く利用され、また最近では強力なネットワーク機能により本来汎用OSであるNetBSD、OpenBSD、FreeBSDなどのUnix-likeOSにも注目が集まっている。詳しくは、組み込みオペレーティングシステムを参照のこと。
- ただし、現在においても、特に低資源の環境ではOSを採用しないことも多い。
- ほとんどの組み込みシステムでは、ユーザがプログラムを入れ替えたり更新したりすることは想定されない。そのため汎用コンピュータよりも自由にオペレーティングシステムやシステム構成を選択できる。
- 近年ではPCベースのハードウェアの低価格化に伴い、PCベースのハードウェアを使用し、OSも組み込み向けにカスタマイズしたWindows CEやLinuxなども採用されている。パソコン用のアプリケーションやデバイスドライバなどを流用出来るだけでなく、Windowsパソコン感覚での開発・使用・メンテナンスも行えるほか、サービス水準合意を締結することで製造物責任法対策も行えるため、Windows Embeddedは航空券のチェックインシステムからコンビニのPOSレジ、更には銀行のATMまで、幅広く採用されている。(実用上十分なセキュリティ性能を持ち、特別な知識を持っていなくても比較的簡単に操作出来ることから、組み込み版ではなかったWindows NT 4.0の頃から組み込みシステムに採用されていた)
関連項目
- 1 組み込みシステムとは
- 2 組み込みシステムの概要
- 3 具体例
- 4 汎用システムとの比較
- 5 組み込みシステムの技術者
- 組み込みシステムのページへのリンク