組み込み技術とは

組み込み開発

組み込みシステム開発の概要

組み込みシステムとは、携帯電話やスマートフォンをはじめ、テレビや洗濯機といった家電・自動車・製造ロボットなどに組み込まれているコンピューターシステムのことです。プログラミング言語として、C言語などが使用されています。また、英語ではエンベデッドシステム(embedded system)と表記されます。

コンピューターシステムといっても、パソコンのようにハードウェアに様々なソフトウェアやアプリケーションソフトをインストールして、使用できるというモノではありません。多くの場合、組み込みシステムとはある機能に特化したシステムのことです。 例えば、洗濯機の場合、洗濯と乾燥以外の機能は必要ないため、他のハードウェアを必要としません。そのため、組み込みシステム開発技術者は、一般的にこれらの機能に特化したハードウェアとソフトウェアを同時に開発します。

組み込みシステムが様々な用途で電化製品などに搭載されるようになったのは1980年代です。マイクロプロセッサの進化により、電子制御を行う場合、電子回路を変えなくてもソフトウェア(SW)のみを変えれば様々な機能を追加できるようになりました。その結果、組み込み機器は電化製品・産業用機械・自動車などにも搭載されるようになりました。電化製品などがどんどん多機能・高機能になってきているのは、組み込み開発のおかげなのです。

また、組み込み開発が現在のように進展したのは、電子回路用部品・ディスプレイ・ドライバー・通信インターフェイス部品・データベース交換用部品などの開発実績のおかげです。このような部品製造で有名な半導体の企業には、例えばアメリカのナショナルセミコンダクターなどがあります。似たような企業名で、オン・セミコンダクターという企業がありますが、こちらは車載システム、信号などを扱っていて分野が異なります

組み込みシステムの多機能化

組み込みシステムが様々な機械に搭載されるようになると、もっと便利にもっと多機能にという要求が次第に高まっていきました。組み込み開発が多機能に対応するとなると、実際に問題になってくるのがコストの問題です。生産コストが高くなると、当然、商品の価格も高くなってしまいます。こうなると商品の売れ行きは、あまり期待できません。

そこで、考え出されたのがプラットフォームの共通化です。近年では、組み込みシステムにLinuxやAndroid、Windows Embeddedといった、パソコン用のオペレーションシステムがプラットフォームとして採用されるようになりました。これらのOSは汎用のパソコンOSと同じで、リアルタイム性と多機能性を持つハイブリッドOSです。

組み込み開発におけるソフトウェア開発も複雑化してきています。特にスマートフォンの登場で、ネットワーク環境に対応するソフトウェアが要求されるようになりました。さらに、タッチパネルや認証システムなどのプロセスへの要求も高まり、グラフィックス性能を最大限に発揮させることも必要になってきました。現在のシステムエンジニア・システム技術者は、より高度なシステム構築が求められるようになってきています。

近年の組み込み開発

パソコンのオペレーションシステム(OS)が、組み込み機器に採用されることで、より複雑なシステム構築が可能になりました。その恩恵を受けているのは、スマートフォンの開発です。
プラットフォームの共通化により、新しいスマートフォン開発する時は、新しく搭載する機能と旧機種から変更する機能に限った、ハードウェアとソフトウェアを開発するだけで済みます。よって、より高度な機能が搭載できるうえに、大幅なコストダウンが可能です。

パソコンのオペレーションシステムが搭載されているのは、スマートフォンだけではありません。Windows Embedded Compact 7などは、空港のチェックインの機器・コンビニエンスストアーのPOSレジ・車載カーナビゲーション・ビデオゲーム・ソニーのウォークマンに搭載されています。

パソコンのオペレーションシステム(OS)の採用により、インターネットへの通信機能も簡単に搭載できるようになりました。また、組み込み機器のメモリーの容量も大きくなったことで、最近ではデジタルカメラやプリンタ、携帯電話やスマーフォンなどは、パソコンのようにインターネットからアップデートして、最新のファームウェアを入手できるようになっています。これはシステムエンジニアやソフトウェア開発者にとって、アフターフォローがしやすく、品質管理に役立てられるというメリットがあります。

組み込みLinux開発

携帯電話やスマートフォンなど、モバイルにおける組み込み開発のシステム設計では、オペレーションシステムがプラットフォームとして使われるようになりました。その中でも、多く採用されているオペレーションシステムがLinuxです。

Linuxは、パソコンのオペレーションシステムとして開発された、フリーでオープンソースのコンピューターソフトウェアで、世界中のソフトウェア開発に活用されてきました。Linuxが組み込み開発で利用されるようになったのは、MMU(メモリー管理ユニット)無しで動作するマイクロシーリナックスの開発に成功したからです。それまで、パソコン用のOSだったLinuxは、MMUが必要で組み込みシステムに採用するのは不可能でした。しかし、マイクロシーリナックスが登場するようになってから、Linuxにはネットワーク機能・ファイルシステム・デバイスドライバなどが付属するようになりました。
Linux自体も、組み込みシステム構築を目的にアジャイルな改善を加えています。Linux armが開発されたり、スペックの低いCPUでも動作できるよう変化していきました。
しかしLinuxには、消費電力が大きいこと、リアルタイム性が低いこと、起動するのに時間がかかるなどのデメリットがあります。これらのデメリットをどこまで改善し、品質向上をしていくかが、Linux組み込み開発の課題になっています。

またLinuxは無償オペレーションシステムなので、制御不具合が起こりやすいのもデメリットです。不具合やバグが起こった場合は、全て自己責任となります。不具合が起こった場合には、原因を究明する必要がありますが、解決するのはほぼ不可能です。そのため、Linuxの使用を躊躇する人も多いようですが、その対策として様々な不具合を保証する有償のライセンスが登場しています。不具合が心配な人は、有償のライセンスを利用してみてはいかがですか。

組み込みLinux開発環境は、パソコン上のLinuxシステムに、ウェブで公開されているLinuxをダウンロードし、構築していきます。ダウンロードする時は、インストーラーをウェブで探してください。評価用のLinuxボードを購入し、そこに開発環境の構築からテスト駆動まで行うと便利で早道です。最近では、安価でマイコン搭載のLinuxボードが販売されているので、ソフト作成初心者はそのようなものを利用して、試作してみるのも良いかもしれません。
補足として、ソフトウェア環境にeclipseという無償の開発ツールを利用するケースが増えているようです。eclipseは、後から機能を自由に追加でき、uml関連やテストなどのツール・様々なプログラミング言語が用意されているので、組みa込みソフトウェアや業務ソフトウェア開発に普及してきています。

開発する技術者側から見ても、規格のLinuxは扱いやすいソフトウェアです。ソフト作成初心者でも、Linuxの情報やレポートは、ウェブサイト・ソフト入門・日経Linuxなどのシステム本・ソフトウェア本を参考にして、比較的簡単にソフトウェアが開発できるようになっています。書籍は出版社を探せば、バックナンバーも手に入りますし、日本語版もたくさんあります。開発入門から丁寧に解説されている本もあります。イチから組み込みシステム、組込ソフトのことを学びたい人は、とにかく複数の本を読んでみることをお勧めします。

組み込みAndroid開発

スマートフォンのOSとして知られているAndroidですが、最近ではオープンソースで利用できることもあり、組み込み開発にも技術採用されています。近年では、家電製品をはじめ医療機器や測定機器、自動車用電子機器などに組み込み機器が導入される時代になっていますが、Windows EmbeddedやLinuxと共に、Androidも組み込みシステムのOSとして採用されるようになってきました。
その理由は、Androidがオープンソースであるが故に、ライセンス費がかからず開発費や原価コストを抑えることが可能なためです。現在は、タッチパネル操作が代表的な特徴のスマートフォンやタブレットなど、様々な組み込み機器に利用されています。JAVAが利用可能であること、Googleの開発サービスが使用できること、アプリの公開の自由度が高いこと、マルチタスクであること、などをAndroidのメリットとして挙げることができます。

また、Googleのサービスが利用できるので、Googleのマップやメール、検索機能が使用できます。 Androidを利用した組み込みシステムは、JAVAを使用して行われるので、ソフト初心者でも構築が可能です。ハードウェア制御のAPIもAndroidから提供されているので、ハードウェアを気にすることなく開発することもできます。

Androidの組み込み開発は、Androidの書籍やコラム、Androidの本でも公開されていますので、参考にしてみてください。

組み込み開発におけるソフトウェア技術者

組み込み開発においてソフトウェアを作成する技術者には、ソフトウェア技術者資格として国家資格(システムエンジニアの資格の1つ)があります。経済産業省が実施するエンベデッドシステムスペシャリスト試験を受けて合格すると取得することができます。前進は、日本情報処理開発協会が実施していたマイクロコンピューター応用システム開発技術者の検定試験でした。
試験は、1次が項目応答理論、2次はハードウェア設計とソフトウェア設計、3次は組込製品の設計開発に関する問題が出題されます。

エンベデッドシステム技術者資格には、上級資格であるマイコン応用システムエンジニアもあります。技能者認定試験に合格し資格が取得できると、システム業界やソフトウェア業界などで、IT関連のシステム・業務ソフトウェア・業務システム構築などを作成するエンベデッドシステムスペシャリストとして、就職することができます。彼らはシステム業界やソフトウェア業界だけではなく、製造業など様々な業界でも必要とされています。
ソフトウェア技術者は求人も多く、転職にも有利です。株式会社アルテック、電子機器設計のローデ・シュワルツ、情報技術のブラック・ダック・ソフトウェアなど外資系の企業に勤めることも可能かもしれません。会社概要については、各社のホームページをご覧ください。

最近では開発コストの削減を目的にオフショア開発も進み、海外生産する企業も多いので、東南アジア等で働く人も増えています。資格を取得するには、勉強が必要なのは当たり前ですが、misra-cといったソフトウェア設計標準規格・ブックレット・情報サイトを利用して、最新の情報を入手するのも大切なことです。モノイストのモノづくりスペシャリストのための情報ポータルサイト『組み込みギョーカイの常識・非常識のシリーズ』は、「組み込みシステムの~はどうやって?」「ソフトウェアとは、ハードウェアとは」「ソフトとハードの違い」「システム構築とは」など、テーマを変えて組み込み開発を基礎からおさらいするのに役立ちます。とても分かりやすく説明されているので、ソフト初心者でも理解できる内容です。
将来、資格取得に挑戦したいと言う人は、目を通しておきましょう。連載のコラムは会員登録しておくと、新着をメールで通知してくれます。是非、組み込み開発の見聞を広めるのにご利用ください。

補足ですが、この情報ポータルサイトには、モノづくりの旬ネタを公開しているサイトもあって、3Dプリントなどに興味がある人にはおすすめです。他にも、組み込みモデリング・中小製造業のデータ活用術・産業用ロボット入門・デジタルモノヅクリングなどテーマ別のサイトが利用できる他、キャリアを活かした転職情報も紹介しています。
産業用ロボット入門のコーナーでは、学生や一般の方のアイディアが活かされたロボットコンテスト(ロボコン)の情報もご覧になれます。ロボコンは、組み込みシステムなどを駆使してロボットを作成し対戦する競技です。全国の大学生や工業専門学校の学生たちがエントリーできます。白熱した対戦や勝負の展開は、見る人たちを楽しませてくれます。何より、そのレベルの高さには驚かされます。自律型ロボットが独自に迷路の道順を検索して進むというマイクロマウスのレースも、ロボットレースの競技として世界規模で良く知られています。
このようなロボット作りで体験した知識は、やがて組み込み開発に活かされていくことでしょう。

組み込み開発の展示会

近年では、システム技術の展示会・イベント・フォーラムが東京をはじめ、大阪や沖縄など様々なところで開催されています。
例えば、ITpro expo 2013ではクラウドなどの情報システム・ネットワーク・セキュリティー・ソフト開発など、様々なIT業界の展示会が同時に行われ、大きな反響を呼びました。 組み込み機器に特化した展示会である、組み込みシステム開発技術展や組み込み総合技術展も開催されています。新型のハードウェアやソフトウェアだけでなく、管理制御システムやコンポーネントや開発環境なども発表されます。またソフト業界やシステム業界など中小企業で働くシステム設計者などが参加し、ソフトウェア設計事業の情報交換や商談も行われています。
イベントカレンダーなど詳しい情報は、展示会サイトでご覧になれます。これらの展示会・技術展から今後の組み込み開発の発展を読み取ると、あらゆる組み込み機器のネット回線接続、スマートエネルギー管理、ワイヤレス操作、などの実現に向かっていくのではないかと思われます。



富士ソフトは最先端の技術力で
組み込み業界におけるあらゆるお客様のニーズにお応えしてきました。

富士ソフトの組み込み開発力について