BDレコーダー開発を例にした「組み込みシステム開発」概要組み込み機器開発入門(2)(3/4 ページ)

» 2015年08月07日 07時00分 公開
[EIPC事務局MONOist]

3 ハードウェア設計

 ハードウェア設計では、USBホスト、HDMI(デジタル映像・音声入出力インタフェース規格)、SATA(シリアルATA)を利用するためにどのような構成が最適か、という観点でハードウェアを選定します。

 昔のCPUは単に演算・計算をするだけのものでしたが、最近のCPUは演算装置以外に、USBなどのよく使われる機能をCPUの内部に搭載しているものも多くあります。今回は複数の機能を搭載したCPUを利用しましょう。これを利用することで、部品数が最小限に抑えられます。部品数を少なくすることは非常に大きなメリットになります。基板の面積が小さくなり、接続する数も減り、消費電力の削減、コスト削減につながります。

 CPUといえば、PC向けで高いシェアを誇るIntelやAMDなどが思い浮かびますが、組み込み機器向けのCPUメーカーは多種多様です。ハードウェア技術者は、CPUメーカーに利用実績のあるSATAやHDMIを検討する、部品メーカーに詳細を問い合わせるなど、各社を比較、検討して、開発する組み込み機器に最適な部品を選定します。

 部品の選定が終わったら、部品同士を接続するための電子回路図の作成、基板へのレイアウトなどを行っていきましょう。

4 ソフトウェア設計

 ハードウェア構成と基本OS(Linux)が決定していますので、ソフトウェア技術者は使用するLinuxの種類を選択します。ベンダーが提供するLinux、もしくはkernel.orgにあるLinuxがありますが、メーカーサポートを重視してベンダーが提供するLinuxを選択するケースが多いようです。

 Linuxが決まったら、次はHDMIやSATAなどのハードウェアを管理制御する、ソフトウェアの最下層で動作するドライバの開発です。PC上のシステム構築やソフトウェア開発では、多くの場合、ベンダーからドライバが提供されるためドライバを開発する必要はありません。

 しかし組み込みシステム開発の場合、ハードウェア、ソフトウェアが独自の構成となっていることが多く、構築するシステムに合ったドライバを開発する必要があります。その際、HDMI、SATAなどのチップメーカーから提供されたドライバを自分たちの環境に合わせてフィッティングするケースや、データシートに記載されたチップの仕様に沿って新規にドライバを開発するケースがあります。

 ともあれ、多くの場合にはドライバの開発が必要です。組み込みシステムのソフトウェア技術者は、ハードウェアについても知識や理解がなければソフトウェアを開発することはできません。

 ここまでで、ドライバの構成とAPIが決定しました。次はこれらを用いたミドルウェアとアプリケーションソフトの開発です。

 組み込みシステム開発におけるミドルウェア開発、アプリケーションソフト開発は、基本的にはWindows環境でのWindows APIを利用した開発と似ています。Windows APIの代わりに自分たちで設計/開発したドライバとシステムコール(今回のOSはLinuxなのでLinuxシステムコール)を利用しながらプログラムを開発します。

 このプログラムを開発する際には注意が必要です。一般的にPCはプログラムが動くためのメモリ領域を豊富に持っていますが、組み込み機器は必要最低限のメモリしか搭載していないため、プログラム開発時に使用するメモリを節約する必要があります。メモリ容量に配慮しながら、用途を明確にして計画的にプログラムを開発する必要があるわけです。

 ソフトウェア設計、ハードウェア設計まで完了しました。次は、設計した通りに実装を進めていきます。

Copyright © ITmedia, Inc. All Rights Reserved.