支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


組み込みシステムとは

組み込みシステムとは、スマートフォンなどの携帯電話をはじめ、洗濯機などの家電や自動車、産業用ロボットなどに組み込まれているコンピュータシステムのことです。

組み込まれている機械や機器に対する外部からの操作の受付などを行い、またそれらの制御を行います。

英語ではEmbeddedSystem(エンベデッドシステム)と呼ばれます。

組み込みシステムの開発に使用される言語はC言語が多く、1980年代から様々な機器に搭載されるようになりました。

パソコン等が様々なアプリケーションをインストールし使用するのに対し、たとえば家電製品などはある機能に特化したシステムのみが搭載されさらに、その機能に特化したハードウェア(家電製品等の機器本体)と同時に開発されることも多いです。

かつては独自のOS(オペレーティングシステム)などが使われていることもありましたが、現在ではプラットフォームが共通化されることが多く、Windows(Windows Embedded)やAndroid、Linuxなどパソコン用のOSをプラットフォームとして採用されることが多くなりました。

これによってより複雑なシステムの構築やインターネットへの通信機能の搭載などが可能になりました。機器によってはユーザー自身がファームウェア(制御用のプログラムやソフトウェア)をインストールし、アップデートすることも可能で開発者に品質の管理がしやすくなるというメリットもあります。

一方で、パソコン等のシステムとは違い、必要になる機能や性能が開発時にあらかじめ特定されることがほとんどで、コストやリソースの面で制約がある場合が多いです。

組み込みシステムの開発

組み込みシステムはハードウェアの開発とも密接に関わっています。ハードウェアの構成は機器によって当然異なり、機器によって通信インタフェースを持っており、特殊なデバイスを持っていることも多いです。

そのため、ソフトウェア開発のなかでも、それらのデバイスのドライバ(外部に接続された機器などのハードウェアを制御するソフトウェア)を扱う事が多いです。

組み込みシステム開発の流れ

組み込みシステム開発の具体的な流れについてご紹介します。

大まかな流れはパソコン用のアプリケーションソフトウェアやWebアプリケーションの開発と似ていますが、順を追って説明します。

機能の抽出

開発する機器の製品スペックを決定します。たとえばプリンタであれば、メインの機能はパソコンと通信しデータをプリントアウトすることです。他にもプリンタ単独でのコピーやスキャン、インクの残量確認や用紙のサイズの判別などが必要な機能となるでしょう。

最近の機種では、カメラと接続してカメラのデータを直接プリントアウトしたり、スマートフォンとはBluetooth等を使用し無線で通信してデータをやりとりする機能も必要かもしれません。

このように、機器に搭載するべき機能を選び、決定することが開発のスタートとなります。

システム全体の設計

システムを設計する際には、必要となるソフトウェア、ハードウェアの決定が行われます。ハードウェアにはどのような機能が必要か、ソフトウェア開発にはどのOSを使用するのかを予算によって決定し、必要なCPUやユーザーインタフェースなどを決定していきます。

こうしてソフトウェアの構成とハードウェアの構成が決まれば、今度はそれぞれの設計、実装を行います。

ハードウェア設計

システムの設計で決まった事をもとに、ハードウェアの詳細についても設計していきます。あらかじめ決めたCPUや入出力インタフェースを利用するためにはどういった構成がいいのかなどを決定していきます。
また電子回路図の作成や基板のレイアウトなども決定していきます。

ソフトウェア設計

ハードウェア設計と同じく、システムの設計で決まったことをもとに、ソフトウェアの設計を行います。OS上で動作するドライバなどを開発していきます。組み込みシステムの場合はハードウェアが独自の構造を持っていることが多いため、それに合わせて開発する必要があります。

また当然のことながら、ハードウェアに対する知識がなければソフトウェアを開発することはできません。

実装

ハードウェア設計では実際に基盤や回路を制作し、ソフトウェア設計では実際にプログラムを記述し実装を行っていきます。その後、実際に電源を入れ、シミュレーションモードなどを使用し実際の挙動に近い形の動作を確認していきます。

クロスデバッグ

実際に基盤やハードウェアにソフトウェアを組み込んで評価を行います。実行した結果をパソコンに表示しデバッグを行い、システム全体が正常に動作しているかを確認していきます。

環境試験

実際に製品の使用が想定される環境と同じ環境を用意し、試験を実施します。環境試験は製品や企業の信頼性にも直結する工程のため、非常に重要となります。

おわりに

いかがでしたでしょうか。組み込みシステムは私たちの身近で常に動いている一方で、実際に目にする機会はほとんどないためイメージがしづらいかもしれません。

今回はおおまかな概要や開発の工程についてご紹介しましたが、特にIT業界未経験の方たちの参考になれば幸いです。