コードのダウンロード
バージョン1.1:pmod_ultrasonic_range_finder.vhd(3.6 KB)
いくつかの合成の警告を削除、v1.0との機能的な違いはありません
バージョン1.0:pmod_ultrasonic_range_finder_v1_0.vhd(3.2 KB)
最初のリリース
特長
- Digilentの超音波距離計(MAXSONAR)用Pmodへの簡素化されたインターフェースのVHDLソースコード
- 最新の距離データをパラレルインターフェースで連続的に出力
- MAXSONAR Pmodの全データを処理
- 受信データをインチに変換
- システムクロックレートを設定可能
はじめに
本稿は図1に示すDigilentの超音波距離計(URF)用PmodにFPGAを接続するためのVHDLコンポーネントの詳細を説明するものです。図2は、このURF Pmodインターフェースコンポーネントをシステムに組み込んだ典型的な例を示しています。このように、URF PmodインターフェースはPmodのパルス幅(PW)ポートに接続し、距離情報を収集します。距離をインチ単位で計算し、それをシンプルなパラレルインターフェースで提示します。このインターフェースは、ユーザーロジックやFPGA上の出力ポートに接続されます。
図1. Digilentの超音波距離計用Pmod
図2. 実装例
背景
超音波距離計用Pmodは、Maxbotixの超音波センサMB1010 LV-MAXSONAR-EZ1を使用して距離を測定しています。センサには、アナログ電圧、パルス幅、UARTの3つの出力があり、それぞれが同じ距離情報を伝達します。このFPGAインターフェース設計では、実装に必要なFPGAリソースが最も少ないパルス幅を使用します。パルス幅出力は、単に可変幅のパルスであり、その持続時間は検出された物体までの距離に対応します。
動作理論
URF Pmodは、350msの起動遅延の後、49msごとにパルス幅(PW)出力でパルスを送信します。このパルスの幅(持続時間)の範囲は、0.88ms≦PW≦37.5msです。147usのパルス幅が、検出された物体までの距離の1インチに相当します。
URF Pmodインターフェースロジックは、2つのカウンタを使用して距離を評価します。PW信号がアサートされると、最初のカウンタはシステムクロックパルスをカウントし、147us相当となるまでカウントします。この時点で最初のカウンタがクリアされ、第2のカウンタがインクリメントしてインチを記録します。このプロセスは、PW信号がデアサートされるまで繰り返されます。
PW信号がデアサートされると、第2カウンタの値(すなわち、総インチ数)は標準的な論理ベクトルに割り当てられ、2進数として distanceポートに出力されます。両カウンタをクリアして、次の測定に備えます。
クロックの設定
このURF Pmodインターフェースのクロックは、ENTITYで定義されたGENERIC clk_freqに値を割り当てることで設定されます。このGENERIC clk_freqには、供給されるシステムクロックの周波数(MHz)を設定する必要があります。
ポートの説明
表1にURF Pmodインターフェースのポートを示します。
表1. ポートの説明
接続
このPmodには、6ピンのコネクタがあります。表2に、このコネクタのピン配置を示します。URF Pmod Interfaceコードのポートは、このコネクタに配線されているFPGAピンにリスト通りに割り当てる必要があります。
表2. URF Pmodのピン配置とFPGAのURF Pmodインターフェースコンポーネントへの接続
リセット
URF Pmodインターフェースが動作するためには、reset_n入力ポートがロジックハイである必要があります。このポートをローレベルにすると、コンポーネントが非同期でリセットされます。リセット中、コンポーネントは現在の読み取りを中止し、URF Pmod入力を無視します。また、distance出力とその内部ロジックもクリアされます。リセットが解除されると、URF Pmodインターフェースは動作を再開します。
まとめ
このURF Pmodインターフェースは、Digilentの超音波距離計用Pmodにインターフェースするプログラマブルロジックコンポーネントです。URF Pmodとのすべての通信を処理し、更新された距離データの継続的なストリームをパラレル出力で提供します。
コンタクト先
ご意見、ご感想およびご質問は、eewiki@digikey.comまでお寄せください。