業務ソフト開発と組み込み開発の違い
「組み込み」という言葉は、業界用語としてはもちろんですが、一般用語としても通じるくらいに普及してきました。「組み込み」という言葉の後には、もちろん「コンピュータ」が省略されています。正しくは「組み込みコンピュータ」です。
「組み込み」もコンピュータです。このため、プログラムによって動作するという点で、パソコンやサーバー機と同じです。しかし、組み込みコンピュータは、パソコンやサーバーとは特性が異なっており、プログラムの開発には独特の難しさがあります。このため、組み込みコンピュータを対象としたソフトウエア開発者が、著しく不足しています*1。
*1: 2009年に経済産業省とIPAが発表した『2009年版組み込みソフトウエア産業実態調査報告書』によれば、組み込みソフトウエア開発の従事者は日本全体で約25万8000人で、約6万9000人程度不足している。
本連載では、組み込みコンピュータを取り巻くこうした話題に注目しつつ、組み込みコンピュータを使った機器(組み込み機器)とパソコンの違いや、組み込み用ソフトウエア開発のポイント、さらに、組み込み向けに作られたOSや組み込み向け開発ツールの現状について解説します。
組み込み先の機器が主役、コンピュータは脇役
組み込みコンピュータの特徴は、「コンピュータであって、コンピュータではない」ということです。組み込みコンピュータというのは、何かのシステムや機器を制御するために組み込まれたコンピュータです。
代表的な組み込み機器の例
AV機器、家電 |
テレビ、ビデオ、DVDレコーダ、デジタル・カメラ、セット・トップ・ボックス、オーディオ機器、電子レンジ、炊飯器、エアコン、洗濯機 |
個人用情報機器、娯楽/教育機器 |
PDA、電子手帳、カーナビ、ゲーム機、電子楽器 |
パソコン周辺機器、OA機器 |
プリンタ、スキャナ、ディスク・ドライブ、DVDドライブ、コピー、FAX、ワープロ |
通信機器 |
留守番電話機、ISDN電話機、携帯電話、PHS、ATMスイッチ、放送機器/設備、無線設備、人工衛星 |
運輸機器、工業制御/FA機器、その他 |
自動車、プラント制御、工業用ロボット、エレベータ、自動販売機、医療用機器、業務用データ端末 |
組み込みコンピュータにおいては、組み込み先のシステムや機器の方が主役であり、組み込まれたコンピュータの方は脇役です。脇役は、主役を立てるのが使命です。組み込み機器の中の制御用コンピュータは、その存在を意識させず、裏方に徹します。これに対して、パソコンの場合は、あくまでもコンピュータが主役です。
組み込み機器の1つである洗濯機を例に、組み込み制御用コンピュータの役割を考えてみます。
代表的な"白物家電"である洗濯機は、洗濯、すすぎ、脱水、乾燥などの多くの機能を持っており、その動作はかなり複雑です。現在では、これらの処理を自動で行う全自動洗濯機が主流で、コンピュータによる制御が不可欠になっています。
しかし、洗濯機はあくまでも洗濯機です。これをコンピュータだと思う人はいません。洗濯機の目的や機能は、あくまでも衣類を洗濯することであって、計算をすることではないのです。洗濯機の中には制御用のコンピュータが入っていますが、このコンピュータは、洗濯という目的を実現するための部品の1つに過ぎません。
別の組み込み機器の例として、デジタル・カメラを考えてみます。
デジタル・カメラにも制御用コンピュータが組み込まれています。シャッター・スピード(撮影時間)や絞り(光量)、フォーカス(ピント調整)などの機械的な制御を行うために、距離や明るさなどのセンサーからデータを収集して計算を行います。
しかし、計算を行うこと自体がデジタル・カメラという組み込み機器の目的ではありません。計算結果に基付いてレンズのフォーカスやシャッターを制御し、きれいな写真を撮ることが、この機器の最終的な目的です。
つまり、「組み込み」の場合、コンピュータで計算することではなく、計算結果に基付いて機器全体を最適に動かすことが最終目的になります。組み込み先の機器である洗濯機やデジタル・カメラが主役で、コンピュータが脇役というのは、こういう意味です。
パソコンと組み込み機器の違い
次に、パソコンやサーバー系のコンピュータと、組み込みコンピュータとを比較して、これらの目的や役割の差異について考えます。両者の差異をひとことで言えば、パソコンやサーバー機が計算や情報処理を目的としたコンピュータであるのに対して、組み込みは機器の制御を目的としたコンピュータであるということです。
初期のコンピュータは、日本語で電子計算機と呼ばれていたように、あくまでも計算をすることが目的でした。その計算は、ミサイルの軌道の計算であったり、天気予報のための大気のシミュレーションであったり、銀行口座の利子の計算であったりしたわけです。
その後のコンピュータは、計算といった数字の処理だけでなく、文章、画像などを含めたマルチメディアを扱えるようになりました。さらに、ネットワークでつながり、昨今のインターネット時代を迎えます。しかし、インターネットは、あくまでも「情報」を流すものです。情報を見る端末がパソコンであり、情報をためるストレージがサーバー機です。
パソコンやサーバー機は「情報処理」を目的としたコンピュータであり、扱う対象は、あくまでも「情報」です。パソコンの機能は、LCD(液晶ディスプレイ)モニターの画面表示やプリンタからの紙の出力により、人間に対して「情報」を伝えることです。
パソコンは、リアルな世界の何か(例えば、洗濯機のモーターやエアコンの室外機)を直接操作したり制御したりするわけではありません。
これに対して、組み込みコンピュータの場合は、リアルな世界の何かを、直接操作したり制御したりすることを、目的としています。
具体的には、洗濯機に組み込まれた制御用のコンピュータの場合、「洗濯槽を回して洗濯する」「このために注水/排水する」「すすぐ」「脱水する」といった処理を、適切なタイミングで進めます。さらに、「注水時、水があふれないように、適当な水量になったら注水バルブを止める」「洗濯物が少なければ、注水量を減らす」など、洗濯機に付いているいろいろなセンサーからの情報を見ながら、さまざまな判断や制御を行います。