産業機器は、5年以上の長いライフサイクルを要求される製品が多い。こうした中でも、機能や性能面で技術的進化を続けており、定期的に機能の変更や強化が必要となる。機器に搭載される半導体チップもこうした技術革新に対して、柔軟に適応することが求められている。産業機器はもともと、民生電子機器などに比べて1製品当たりの出荷量が少なく、顧客ごとにカスタマイズの要求が多い用途である。このために、設計の柔軟性や機能の拡張性に優れたFPGAの採用事例は増加している。

 ここにきて、産業機器におけるFPGAの応用にも大きな変化が見られるようになった。これまで多くの産業機器では、グルーロジックの置き換えから始まり、マイクロコントローラ(MCU)を核としたシステム開発の中で、FPGAはI/O拡張などに用いられることが多かった。これに対して、最近ではMCUが行っていた演算処理の一部をFPGAで実行するコプロセッサ的な使われ方や、MCUやDSP、I/O機能などをFPGAに集積する、いわゆるSoC FPGAという設計手法がシステム設計者の間で注目されるようになった。本稿では、産業機器の中でもFAカメラや監視カメラに注目して、FPGAを用いた設計事例を解説する。

 検査装置などに使われるFAカメラや、セキュリティなどに向けた監視カメラは、一般的に撮像素子(画像センサー)からの出力信号を処理する前処理ブロックと、前処理済みのデータを受け取り、エンコーディングやネットワーク制御、モータ制御などを行う後処理ブロックに大別することができる。

 前処理を行うブロックでは、画像センサーから出力されたデータを基に、ノイズの除去や色解像度を決めるビット数の合わせ込み、タイミング調整などを行い、YUV形式やRGB形式といった画像フォーマットに変換するための処理をおこなっている。この処理にはASSPやFPGAが用いられることが多い。特に、この「絵作り」を行う前処理部分は、カメラ自体の付加価値を高めたり、差異化を図ったりするための重要な部分であり、カメラメーカーが独自の回路を設計して実装するために、FPGAを用いるケースが多い。

 FAカメラ/監視カメラ用途における回路設計においては、MCUとFPGAを組み合わせる構成が一般的には多いが、画像の解像度が高まるにつれ、必要とされる機能をFPGAにどこまで取り込むかがシステム設計者の課題となっている。一般的に、FAカメラの場合は、画質が重視されることが多く、ビット数やフレームレートなどに対するニーズはシステムによってさまざまである。

 前処理後は、画像データをDSPチップに伝送し、DSP側で画像データの圧縮などが行われる。出力インタフェースとしてはアナログインタフェースのほか、「カメラリンク(CameraLink)」や「USB」、「IEEE1394」、「GigEVision」などが使われている。これに対して監視カメラは、遠隔で監視したり画像を記録したりするため、カメラ側でデータを圧縮した後、アナログインタフェースや一般的なイーサネットなどを介して伝送するケースが多い。

コプロセッサからSoCへ

 顧客や採用する機器によっても異なるが、産業機器でFPGAを採用するメリットとして、代表的な項目を挙げるとすれば「デザインの統合」、「再プログラム可能」、「性能の向上」、「陳腐化からの保護」などがあり、これらを目的とするケースが増えている。

 デザイン統合の一例として、FAカメラ/監視カメラでのケースを紹介する。これらのカメラでは、撮影条件の悪い環境であっても高画質の画像を得るために、ダイナミックレンジの広い画像センサーを用いるケースが増えている。しかし、このままではビット数が大きくなりDSPやASSPではこの画像センサーからデータを受け取ることができない可能性がある。この場合、十分な帯域幅を持つFPGAをコプロセッサとして用いることにより、H.264などのビデオ・エンコードを行うDSPチップに、ビデオ・ストリームを供給することができる(図1)。

図1:コプロセッサの役割を果たすFPGA
図1:コプロセッサの役割を果たすFPGA
[画像のクリックで拡大表示]

 最近では、FPGAの後段にあるDSP機能もFPGA内に取り込む動きが強まっている。つまり、最新のFPGAをSoCのプラットフォームとして使うことにより、ISP(画像センサ・パイプライン)、ビデオ解析、エンコード、およびネットワーク接続などすべての機能をワンチップに統合することができる(図2)。このFPGAにアルテラの「Cyclone® IV」を用いて実装した場合の回路ブロックを図3に示す。

図2:SoCとして使用したFPGA
図2:SoCとして使用したFPGA
[画像のクリックで拡大表示]
図3:SoC FPGAのブロック図
図3:SoC FPGAのブロック図
[画像のクリックで拡大表示]

各種産業用イーサネット規格にも柔軟に対応

 製品の仕様がほぼ固まり、ハードウエアやソフトウエアの開発に着手した後でも、設計の途中で仕様が変更になることもある。例えば、産業用イーサネット(参考資料)には、「PROFINET」、「EtherCAT」、「EtherNet/IP」などさまざまなプロトコル規格がある。従来だと、利用する産業用イーサネットのプロトコルに対応したASICやASSPを事前に用意しておく必要があった。FPGAを利用すると、プリント基板上にRJ45コネクタ、イーサネット用PHYチップおよびFPGAが実装されていれば、FPGAの回路データを再プログラムすることで、さまざまなイーサネット規格に対応することができる(関連記事「FPGAで実現する産業用ワイヤレスセンサーネットワーク(前編)(後編)を参照)。

マルチコア構成などで性能向上

 画像処理の用途では、開発途中で仕様の変更や機能の追加などが行われることも少なくない。汎用のマイクロコントローラ(MCU)でソフトウエア処理していた場合、仕様変更したためにMCUの演算性能が不足することもある。こうなると、高速なMCUに置き換えるか、プログラムの修正などが必要となる。また、開発済みのASIC/ASSPで処理性能が不足すると再設計が必要になることもある。このような場合でも、FPGAであれば演算処理の性能を向上させることが比較的容易である。

 一例だが、アルテラのFPGAでは、要件に応じて「マルチプロセッサ」、「カスタム命令」、「ハードウエア・アクセラレータ」などの手法で、演算性能を向上させることが可能である。例えば、同社がサポートしている独自アーキテクチャのソフトコア・プロセッサ「Nios® II」をマルチコア構成とすれば、分散処理により演算性能を向上することができる。また、浮動小数点命令などアプリケーション固有のカスタム命令を追加すると、例えば通常の命令では200~300クロックサイクルを要する演算でも、1クロックサイクルで実行することが可能となるケースもある。さらに、ハードウエア・アクセラレータによる並列処理を行えば、画像圧縮などの演算をNios IIでソフトウエア処理するのに比べて最大27倍も高速に実行することができる。

陳腐化から製品を保護

 製品のライフサイクルが長い産業機器にとって、採用する半導体チップを選択する際に、キーとなるデバイスが長期間安定して供給されることはとても重要な要件である。この点で、FPGAの供給期間はほとんどのMCUやDSP、ASSPなどに比べてはるかに長い。その上、プロセス技術の進化などにより、FPGAは技術革新も著しいが、HDLで記述された設計データがあれば、要件に合った別のFPGAへ再利用することも容易である。

 FPGAの設計事例として、2回に分けて民生電子機器と産業機器にフォーカスして紹介してきた。FPGAのさまざまな特徴が、幅広い用途に受け入れられてきた。さらに最近では、電子回路設計者を取り巻く環境が大きな転換期を迎えている中で、『FPGAをシステム設計の中核デバイスとして位置づけ、その中に周辺機能をどれだけ統合・集積していくか』に設計者の意識が変わりつつあるようだ。

この記事は、アイティメディア社『FPGA Insights』に掲載されていたコンテンツを、アイティメディア/EDN Japanの許可を得て転載しています。

目次