ToF(Time-of-Flight)測距の迅速な展開を可能にする組み込み済みソリューション

著者 Stephen Evanczuk

DigiKeyの北米担当編集者の提供

Time-of-Flight(ToF)技術は、測距や近接センシングにますます利用されるようになり、その用途は一般消費者向けの製品から産業用装置まで幅広い分野に及んでいます。シングルチップToF処理ICの登場により、これらのソリューションを容易に実装できるようになりましたが、目的に適したエミッタやフォトダイオードを探して最適化し、それらのデバイスをToFプロセッサと統合するなどの重要なタスクは依然として開発者に委ねられています。より統合的なアプローチを採用することで、プロセスの大幅な簡素化や時間の節約が可能になります。

これらに対応するため、Digilentは組み込み済みのToFアドオンボードを開発しました。このボードを高性能のシステムボードおよび連携するソフトウェアライブラリと組み合わせることで、完全なハードウェアToFソリューションを実現できます。これにより、開発者はToFアプリケーションのプロトタイピングをすぐに開始できます。また、このハードウェア/ソフトウェアを基盤に、カスタムのToFハードウェア/ソフトウェアを設計することも可能です。

この記事では、ToFセンサの動作の仕組みについて説明します。次に、DigilentのPmod ToFボードを紹介し、DigilentのZybo Z7-20開発ボードと組み合わせて使用することで、ToF技術を評価し独自の設計で光学距離計測を迅速に展開する方法を説明します。

ToFセンサの動作の仕組み

ToFセンサが重要な役割を果たす用途は、ますます広がっています。車両関連や産業用装置の場合、これらのセンサは車両を駐車するときや密閉空間で機械を操作するとき、障害物があることを警告するのに役立ちます。一般消費者向け用途では、これらのデバイスはモバイル製品やホームオートメーションシステムでの近接センシングとして機能します。これらのほか、さまざまな用途で光学式ToFシステムは外部の物体または障害物までの距離を各種のメソッドを使用して計算します。どのメソッドも光源から照射された光と外部の物体に反射して戻る光の差異を利用しています。

RenesasのToFベース信号処理IC、ISL29501のような高機能ToFデバイスでは、距離を計算する方法として、外部のLEDまたはレーザーの照射光とフォトダイオードが受光する光との間の位相シフトを測定します。ISL29501が所定の周波数fmで矩形波により変調された光(Tx)を送出すると、物体からの反射光信号(Rx)が減衰振幅Rで位相シフトjをともなってISL29501に戻ります(図1)。

RenesasのISL29501などの高機能ToFデバイスの図図1:Renesas ISL29501などの高機能ToFデバイスは、内部デジタル信号処理機能を使用し、照射光と反射光との間の位相シフトjに基づいて物体までの距離を計算します。(画像提供:Renesas)

この位相シフトを測定することにより、デバイスは距離Dを計算できます。

式1 式1

ここで、式の要素は次のとおりです。

D = 目標までの距離

c = 光速

fm = 変調周波数

φ = 位相角(ラジアン)

変調された周波数信号fmと光速cは既知であるため、残りの要素である位相角φが分かれば距離を計算できます。この要素は、従来の直交信号処理技術により計算できます。ここで、同相(I)および直交(Q)信号成分は個別のI信号パスおよびQ信号パスによって生成され、これらのパスは復調器、ローパスフィルタ(LPF)、A/Dコンバータ(ADC)から構成されます(図2)。

同相信号の復調、フィルタ処理、変換を行うRenesas ISL29501の図図2:距離の計算に必要な位相角φを計算するため、RenesasのISL29501は、入力信号(VIN)の同相(I)および直交(Q)信号成分を復調、フィルタリング、変換します。(画像提供:Renesas)

内部的には、ISL29501は復調パイプラインの前に置かれる包括的な信号経路をアナログフロントエンド(AFE)信号調整段と統合します。この信号調整段はトランスインピーダンスアンプ(TIA)と低ノイズアンプ(LNA)から構成されています。ISL29501の入力信号経路では、AFEの後に可変ゲイン(Av)、自動ゲイン制御(AGC)ループ(組み込みアルゴリズムを使用してSNRを最適化)が続きます。

出力側では、ISL29501はオンチップエミッタドライバチェーンを統合しており、変調周波数4.5MHzでの矩形波パルスおよび最大255mAの駆動電流を適切なエミッタに供給する能力を備えています。この機能アーキテクチャを完了すると、内部のデジタル信号プロセッサ(DSP)が、位相、振幅、および周波数データによって距離を生成するために必要な計算を処理します(図3)。

エミッタ駆動とフォトダイオード入力処理の信号経路を組み合わせたRenesasのISL29501の回路図図3:RenesasのISL29501は、エミッタ駆動とフォトダイオード入力処理の信号経路と、位相/振幅/周波数データから距離を計算するために使用するアルゴリズムを実行する内部デジタル信号プロセッサを組み合わせています。(画像提供:Renesas)

エミッタおよびフォトダイオードの選択

ISL29501は、フォトダイオード入力、エミッタ出力、および処理機能を統合することにより、ToF距離計測ソリューションを構築するための柔軟なハードウェア基盤を実現します。入力側のAFEおよびAGCループ、出力側のプログラム可能エミッタドライバなどの機能は、幅広いエミッタおよびフォトダイオードをサポートするように特化して設計されています。同時に、ToFソリューション全体の効果は、エミッタとフォトダイオードをいかに賢く選び構成するかに大きく依存します。

たとえばエミッタについては、ISL29501は柔軟に対応するように設計されているので、開発者は赤外線(IR)LED、垂直共振器面発光レーザー(VCSEL)、または互換性のある電圧/電流/周波数仕様のレーザーデバイスから幅広く選択できます。実際に、標準的なToFソリューションではエミッタタイプはそれほど限定的ではありません。それでも、周囲光源からの干渉を減らすために、近赤外線(NIR)または中波長赤外線(MWIR)デバイスを使用することが推奨されます。デバイスを選択したら、開発者は、最適なエミッタパルス駆動電流と、場合により必要となるDC電流コンポーネントを決める必要があります。次に、エミッタドライバ出力チェーンに統合された個別の内部D/Aコンバータ(DAC)を使用して、パルスおよびオプションのDC電流を供給するようにデバイスをプログラムする必要があります。

同様に、ISL29501は多様なフォトダイオードをサポートできますが、アプリケーションとエミッタの選択は、最適なフォトダイオードを選ぶ上で重要な判断基準になります。エミッタと同様に、NIRまたはMWIRの波長で動作するフォトダイオードは、周囲光による干渉を削減できます。理想的には、フォトダイオードのスペクトル応答曲線を可能な限り狭めて、エミッタのピーク波長の中心をピークに位置づけることにより、SNR(信号対ノイズ比)を最適化するとよいでしょう。フォトダイオードでは収集可能な光量を最大化する必要がありますが、フォトダイオードの面積を増やすと静電容量(接合静電容量と浮遊容量の両方)が高まり、フォトダイオードの応答時間と、エミッタの立ち上がり/立ち下がり時間の追跡能力が低下する原因になります。このため開発者は、性能を犠牲にせず信号振幅を最大化するために必要なフォトダイオード面積と内部静電容量の最適なバランスを見つける必要があります。

統合ToFソリューション

ToFアプリケーション開発をスピードアップするように設計されたDigilentのPmod ToFボードは、RenesasのISL29501 ToF IC、Microchip TechnologyAT24C04D EEPROM、IR LED、およびフォトダイオードをPmod拡張ボード追加用の6ピンPmodホストおよびパススルーコネクタを備えた小型フォーマットボードに搭載した、すぐに使えるToFソリューションとなります(図4)。

DigilentのPmod ToFボードの画像図4:DigilentのPmod ToFボードは完全なToFセンサソリューションとなるように、Pmodコネクタでシステムボードに接続できるように設計されています。(画像提供:Digilent)

光源と検出器については、このボードは、OSRAM Opto Semiconductorsの高出力SFH 4550 860ナノメートル(nm)LEDとOSRAMのSFH 213 FAフォトダイオードを組み合わせており、高速スイッチング時間、スペクトル感度750~1100nm、900nmでのピーク感度を備えています。

Renesas ISL29501では、連携するLEDおよびフォトダイオードデバイス用に追加コンポーネントは必要ありませんが、アナログ電圧源(AVCC)、デジタル電圧源(DVCC)、エミッタドライバ電圧(EVCC)の3つの電源ドメインのそれぞれに個別のピンで供給される適切な2.7V~3.3Vの電源が必要になります。これらへの給電は同じ電源から可能ですが、Renesasはこれらを3つの電源に分離することを推奨しています。DigilentのPmod ToF回路図に示されるように、DigilentはToFボードでこの分離を実現するために、各電源にMurata ElectronicsBLM15BD471SN1Dフェライトビーズおよびコンデンサを使用しています(図5)。

DigilentのPmod ToFボードの図図5:DigilentのPmod ToFボードは、ラピッドプロトタイピングに直接使用できるハードウェアソリューション、およびカスタムToFシステム用のリファレンス設計の両方を提供します。(画像提供:Digilent)

開発環境

Digilentは、Digilent Zybo Z7-20ボードをベースにする開発環境によって、ToFアプリケーションの実装をスピードアップすることもできます。このボードでは、XilinxのZynq XC7Z020のすべてプログラム可能なSoC(APSoC)を中心に構築された、高性能の動作環境が可能になります。このAPSoCは、デュアルコアArm®CortexR-A9プロセッサ、および53,200のルックアップテーブル(LUT)、106,400のフリップフロップ、630KBのブロックランダムアクセスメモリ(RAM)のサポートを含む広範なプログラム可能ファブリックを統合しています。Zybo Z7-20ボードには、XilinxのZynq XC7Z020 APSoCに加えて、1GBのRAM、16MBのクワッドSPIフラッシュ、各種インターフェース、コネクタ、および6つのPmod拡張ポートが含まれています。

Zybo Z7-20ボードで実行するように設計されたDigilentのZyboZ7-20 PmodToF-Demoソフトウェアディストリビューションには、Pmod ToF階層ブロックソフトウェアライブラリ用のソフトウェア開発キット(SDK)が含まれています。このライブラリが提供する直感的なアプリケーションプログラミングインターフェース(API)により、開発者は、Xilinx SDKに含まれるか、DigilentによりPmod ToFボード向けに提供されるドライバやサポートモジュールをベースにアプリケーションを構築できます(図6)。

DigilentのPmod ToF階層ブロックソフトウェアライブラリの図図6:DigilentのPmod ToF階層ブロックソフトウェアライブラリは、Xilinx SDKに含まれる低レベルインターフェースドライバを、Renesas ISL29501センサ、EEPROM、Pmod ToFサービス用のモジュールで拡張します。(画像提供:Digilent)

Digilentのライブラリは、Xilinx SDKによるI2C、GPIO、UARTの各通信用低レベルドライバと、Digilent Pmod ToFボードのEEPROMおよびRenesas ISL29501デバイスのレジスタレベル動作を実装するモジュールを組み合わせています。たとえば、ISL29501モジュールには、ISL29501を使用して測距を実行する機能が含まれています。ISL29501はその測定実行に必要なきめ細かい動作シーケンスを内部に実装しているので、測距実行に必要になるのは初期設定と一連のレジスタ読み書きのみです。DigilentライブラリのISL29501モジュールには、測距実行など特定のISL29501動作を実装するための機能が含まれています(リスト1)。

コピー
double PmodToF_perform_distance_measurement()
{
    /* WRITE REG */
    u8 reg0x13_data = 0x7D;
    u8 reg0x60_data = 0x01;
    /* READ REG */
    u8 unused;
    u8 DistanceMSB;
    u8 DistanceLSB;
 
    double distance = 1;
    ISL29501_WriteIIC(&myToFDevice, 0x13, &reg0x13_data, 1);
    ISL29501_WriteIIC(&myToFDevice, 0x60, &reg0x60_data, 1);
    ISL29501_ReadIIC(&myToFDevice, 0x69, &unused, 1);
    CALIB_initiate_calibration_measurement();
       //waits for IRQ
    while((XGpio_DiscreteRead(&gpio, GPIO_CHANNEL) & GPIO_DATA_RDY_MSK) != 0 );
    ISL29501_ReadIIC(&myToFDevice, 0xD1, &DistanceMSB, 1);
    ISL29501_ReadIIC(&myToFDevice, 0xD2, &DistanceLSB, 1);
    distance =(((double)DistanceMSB * 256 + (double)DistanceLSB)/65536) * 33.31;
    return  distance;
}

リスト1:DigilentライブラリのISL29501モジュールに含まれるソフトウェア機能は、上記リストのように、測距実行などレジスタレベルの動作を実装します。(ソースコード:Digilent)

DigilentライブラリのPmodToFモジュールには、これらの低レベルモジュールに基づいて構築された高レベルサービスが含まれています。たとえば、測定を実行し表示するには、PmodToFモジュールのPmodToFCMD_MeasureCmd()関数がISL29501モジュールのレジスタレベルPmodToF_perform_distance_measurement()関数を繰り返し呼び出し、結果の平均を表示します(リスト2)。

コピー
/***   PmodToFCMD_MeasureCmd
**
**     Parameters:
**     none
**
**     Return Value:
**          ERRVAL_SUCCESS              0       // success
**
**     Description:
**            This function displays over UART the distance measured by the device.**            Before calling this function, it is important that a manual calibration was made or the calibration
**            was imported(calibration stored by the user in EEPROM user area )/restored from EEPROM(factory calibration).*/
void PmodToFCMD_MeasureCmd()
{
       int N = 100, sum = 0;
       int distance_val, distance_val_avg;
       // 100 distance values that are measure will be averaged into a final distance value
       for(int j=0;j<N;j++)
       {
              distance_val = 1000 * PmodToF_perform_distance_measurement(); // the distance value is in millimeters
              sum = sum + distance_val;
       }
       distance_val_avg = sum/N;
    sprintf(szMsg, "Distance measured D = %d mm.", distance_val_avg);
    ERRORS_GetPrefixedMessageString(ERRVAL_SUCCESS, "", szMsg);
    UART_PutString(szMsg);
}

リスト2:DigilentライブラリのPmodToFモジュールのソフトウェア機能には、上記リストのように、距離を複数回測定した平均値の表示など、アプリケーションレベルのサービスが含まれています。(ソースコード:Digilent)

開発者は、DigilentのPmod ToF階層ブロックソフトウェアライブラリに含まれる完全なモジュールセットを使用するか、各自のアプリケーションに必要な最小限のモジュールセットのみを使用できます。ただし、どのアプリケーションでも精度を確保するために大きさ、クロストーク、距離の較正を実施する必要があります。大きさの較正は内部的に実施されますが、クロストークおよび距離の較正には多少の準備が必要です。クロストーク較正の場合は、ボードに含まれる発泡材で光学デバイスを遮蔽してから較正を実施します。距離較正の場合は、高IR反射率の目標から一定の距離を取るように光学系を備えたToFボードを配置して較正を実施します。ISL29501は不揮発性メモリを搭載していませんが、新しい較正値はPmod ToFボードのEEPROMに保存し、ソフトウェアの初期化中にその値を読み込むことができます。

このような既製品のハードウェアとソフトウェアのに組み合わせにより、光学式ToFアプリケーション作成にすぐ使用できる基盤を用意できます。ラピッドプロトタイピングを行う場合は、Digilent Pmod ToFおよびZybo Z7-20ボードを使用して、ライブラリディストリビューションのサンプルソフトウェアをすぐに実行できます。カスタム開発の場合は、Pmod ToFボードに対応するハードウェアリファレンス設計、およびDigilentライブラリディストリビューションに含まれるソフトウェアコードを基に構築できます。

結論

シングルチップToF処理ICを利用すると、多くのアプリケーションでToFソリューションの実装を簡素化できますが、開発者は統合に適したエミッタとフォトダイオードを選ぶ必要があります。上述のように、組み込み済みのToFアドオンボードと高性能システムボードを組み合わせることで、採用しやすいソリューションが提供されており、完全なハードウェアToFソリューションが実現できます。このハードウェアソリューションに連携するソフトウェアライブラリを組み合わせると、開発者はToFアプリケーションのプロトタイピングをすぐに開始できます。また、このハードウェア/ソフトウェアを基盤に、カスタムのToFハードウェア/ソフトウェアを設計することも可能です。

DigiKey logo

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。

著者について

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk氏は、IoTを含むハードウェア、ソフトウェア、システム、アプリケーションなど幅広いトピックについて、20年以上にわたってエレクトロニクス業界および電子業界に関する記事を書いたり経験を積んできました。彼はニューロンネットワークで神経科学のPh.Dを受け、大規模に分散された安全システムとアルゴリズム加速法に関して航空宇宙産業に従事しました。現在、彼は技術や工学に関する記事を書いていないときに、認知と推薦システムへの深い学びの応用に取り組んでいます。

出版者について

DigiKeyの北米担当編集者