Piはオシロスコーププロジェクトに十分強力ですか?


18

私の目標は、オシロスコープから始めて、Piベースの機器を作ることです。だから私はへの答えを読みます

非常に低いサンプリングレートでアナログ入力を読み取ることは可能と思われますが、1秒あたりのメガサンプルレートに到達できるかどうかは疑問です。継続的なデータ取得は、可能であればおそらく難しいでしょう。そのため、私はそれなしで行うことができます。Piはそのために十分に装備されていませんか?最初にPiに接続されたディスプレイで波形を観察し、後でモバイルデバイスで波形を観察したい(Piはワイヤレスデータを送信します)。

システムオンチップに関する私の経験から、これらのシステムは連続I / Oで簡単に飽和する可能性があることがわかります。これはPiにも当てはまりますか?

回答:


22

オシロスコープの概要を見てみましょう。

まず、アナログフロントエンドがあります。ここには、プローブ用のインピーダンスマッチングネットワークがあります(ただし、プローブにもキャパシタンスマッチング部分が必要です)、減衰セクション(非常に重要なので、ADCに過負荷をかけたり、高電圧を入れたりしない)、トリガーおよび接続アナログからデジタルへのコンバータ。私はこれについてあまり語りません。なぜなら、私はアナログのものがあまり得意ではないからです。しかし、結論は次のとおりです。このセクションではPiでできることは何もありません。

次に、アナログからデジタルへのコンバーター部分があります。各チャネルに少なくとも1つのADCが必要です。より高いサンプルレートには、より多くを使用できます。従来のスコープでは、ADCはASICまたはFPGAデバイスに接続されます。従来のコンピューターでは、ADCが提供するデータを処理するのに十分なリアルタイムではないため(リアルタイムと高速を混同しないでください!)、これらが使用されます。そのデータは、ある種のRAMに保存されます。静的RAMを使用するデバイスもあれば、動的RAMを使用するデバイスもあります。一般に、SRAMアプローチはより伝統的で有名メーカーで見られますが、DRAMの使用は安価な中国設計のユニットで見られる新しいアプローチのようです。

RAMの量とその速度により、保存できるサンプル数が決まります。ほとんどの場合、ADCは8ビットADCであるため、たとえば1メガサンプルでは8 b×100000 = 8 Mbまたは1 M​​BのRAMが必要になります。1 MSa / sの場合、その速度で動作できるRAMが必要です。今日、それは比較的簡単に入手できるはずです。FPGAは通常RAMを直接駆動し、RAMにデータを保存します。空きスペースがまだある間にサンプルメモリを満たし、満杯になると上書きします。チャネルごとに複数のADCがある場合、FPGAは、最初にサンプリングを開始し、次に次のクロックで2番目などのようにそれらを設定します。サンプリングが終了すると、最初のADCのサンプルが最初にメモリに書き込まれ、次に2番目のADCのサンプルがメモリに書き込まれます。これにより、ADCが実際よりも速くサンプリングしているように見えます。

このセクションの次のポイントは、サンプルが時間的に等距離であることです。これは、オシロスコープでPCを使用する場合の主な問題であり、FPGAとASICが主流である理由です。一部のサンプルが遅いまたは早い場合、画面に表示される画像は正しくありません。

この部分では、Piの最初の可能な使用方法を確認します。サンプルレートが十分に低い場合、ADCをPiから直接駆動し、その結果をPiのRAMに保存できる場合があります。どれだけ早く処理できるかは、ADCがPiに接続されている方法と、PiがそのI / Oを実行する方法によって異なります。私が読んだことから、PiのI ^ 2Cポートの最高速度は150 MHzです(GNU / Linuxで簡単に達成できるかどうかは別の質問です)が、最高の標準速度は5 MHzで、SPIの最高速度はPiは250 MHzです。SPIの最高標準速度が何であるかはわかりませんが、最大で100 MHzの範囲内になると予想しています。

したがって、理論上、低MSa / s範囲でADCを実行するのに十分な速度でPiを使用できます。ここでは、RAMの速度は問題にならないと感じていますが、それをバックアップするデータはありません。その場合、通常のスコープに比べて大きな利点があります。非常に大量のキャプチャメモリが利用可能になります。たとえば、32 MiBのRAMをサンプルメモリ専用のプログラムに割り当て、2つのチャネルがある場合、各チャネルに16 MiB、またはチャネルごとに134 Mbまたは134メガサンプルより少し多くなります。これは、今日でも多くのオシロスコープにはないものです。

欠点は、ここで正確なサンプリングを取得できるように、オペレーティングシステムに大幅な変更が必要になることです。リアルタイムLinuxの経験がないので、これがどれほど簡単かはわかりません。

とにかく、次のステップに進みましょう。したがって、RAMをいっぱいにするサンプリングシステムがあります。次の部分はトリガーです。トリガーは、画面のリフレッシュレートと密接に関連しています。基本的には、興味深いサンプルを見つけてメモリに保持します。スコープがトリガーされると、スコープをトリガーし、メモリがいっぱいになるまでサンプリングを続け、送信して処理し、画面に表示します。データの処理中に、サンプリングシステムが頻繁にフリーズし、データが表示されるのを待っている場合。そのため、ローエンドスコープのリフレッシュレートは低くなりますが、ハイエンドスコープのリフレッシュレートは特別に高くなり、データが表示されるまでの待機時間が大幅に短くなります。

このセクションには、サンプルで信号処理を行う別のASICまたはFPGAがあります。スコープがサポートしている場合はプロトコルをデコードし、ディスプレイ自体を実際に駆動します。

これは、私が見ることができるものから、Piが本当に輝くことができる部分です。それは素敵な1920x1080ディスプレイを駆動でき(スコープは多くの場合800x600未満の土地にあります)、プロトコルデコードを非常にうまく行うことができます。私が見ることができる唯一の問題は、速度と処理がホールドオフ時間に与える影響です。リフレッシュレートを低くすると、非常に優れたロジックアナライザーを使用できます。

最後に、USBオシロスコープと、このタイプのプロジェクトでUSBが一般に悪い理由について説明します。従来のUSBオシロスコープは、入力とサンプリングを行い、ホストアプリケーションが存在する処理のためにサンプリングデータをPCに送信します。基本的に、Piでも非常によく似たことが行われます。通常、PCアプリケーションは適切に設計されておらず、バグでいっぱいです。次の悪い部分はUSB自体です。「高速」モードで480 Mb / sを実行できる高速バスとして宣伝されています。真実は、そのような高速をサポートできるUSBコントローラを見つけることは非常にまれであり(平均は私が見たものから約250 Mb / sであると思われる)、プロトコルとしては実際のどんなものにもあまり適していないということですタイムアプリケーション。まず、ハブ上のすべてのデバイスで共有されます(Piには、Ethernet + USBハブが接続されるUSBポートが1つしかありません)。比較的高いオーバーヘッドがあり(SPIと比較した場合)、待ち時間が長い(1 MSa / sで各サンプルが1 µsだけ続くことを思い出してください。サンプルをリアルタイムで送信できないため、ボードにメモリが必要です) USB経由)。最後に、USBを使用すると、データ収集部分がスコープの単なる別のUSBオシロスコープになります。ここで、Piを使用するメリットを失います。

編集 Gert van Looによる 比較的最近の投稿を読んだことがあり、彼によると、PiのI ^ 2Cの現実的なレートは400 kHzで、SPIの場合は20 MHzです。


それでは、あなたの答えの最高点は何ですか?これはWikiに似ています。
ピョートルクラ

@ppumkinはい、このような質問にはそのような答えが必要です。まあ、頂点はありません。必要なデバイスの期待されるパフォーマンスに関する十分な情報が提供されていないため、Piが集録を行うと仮定すると、十分に低い周波数の場合、最終的にはイエスになります。Piが買収を行わない場合、USBのパフォーマンスが悪いため、Piを使用しても意味がありません。
AndrejaKo

8

Raspberry Piは、このようなプロジェクトに必要なソフトウェアを実行するための優れたプラットフォームであることがわかりました。問題は、最初に信号をRPiに取り込み、O / Sおよびアプリケーションソフトウェアを実行している同じCPUで高速ジッターのないリアルタイム信号キャプチャを実行することです。私たちのソリューションは、BitScope(高速混合信号波形キャプチャ用)と必要なすべてのソフトウェアを実行するRaspberry Piを組み合わせBitScope Raspberry Piオシロスコープです。

ここに画像の説明を入力してください


恥知らずなプラグ=)
レニック

2
すごいね。しかし、答えとは何の関係もありません!それとも、Piがオシロスコープになるには弱すぎることを証明しているのでしょうか?
ピョートルクラ

Piは「弱すぎる」わけではありませんが、(高速)波形集録に必要なI / O機能はありません。元の質問の言葉では、それは「そのために装備
不足

2

NB:これは本当の答えではなく、「大声で考える」テキストです。

このアイデアは少し前に私の頭をもたげましたが、私はまだ一般的なアイデアが好きです!

私が知っている限りでは、ハイエンドのスコープは15年(またはそれ以上)の専用の高速I / Oの束を持つ単なるコンピューター(PC)です。同様のI / OがRPiに設計/接続されている場合、結果は驚くほど良いものになると思います。

これを行うための良い方法は、RPiが収集されたデータ(たとえばUSBポート経由で受信)を保存して表示し、特殊なハードウェアに高速測定を行わせることです。この高速測定ユニットは、ユーザー入力などに基づいてRPiによって制御することもできます。

RPiの最初のバージョンでは、USBポートにいくつかの問題がありましたが、現時点でそれらが解決されているかどうかを最近検索していません。また、RPiの新しいバージョン2.0にはこれらの問題がないはずだといううわさを聞きましたが、このうわさも確認していません。

I / Oポートの数とOS全体が実行されている(リアルタイムオプションが制限されている)ため、外部(専用)ハードウェアなしの結果は制限されると思います。独自のOSを作成する予定がない限り、

また、たとえばこの目的でI2Cチップを使用すると、本当に素晴らしいことをするのに十分な速度が得られません。SPIはすでにより多くの帯域幅を提供します(頭上から100Mhzまで)が、USBを使用し、必要に応じて圧縮するか、データを送信する前に適切なエンコード方式を使用して帯域幅を増やします。

可能性はあると思いますが、RPiに追加する必要があるハードウェアは、RPi自体よりもはるかに高価になります。

最後になりましたが、(このテーマについて空想にふける前に)インターネットでの検索が、これを行うのに忙しいグループをもたらす場合、私は驚かないでしょう。


1

答えは「はい」です。

それは十分に強力です!しかし、特定の周波数についてのみ-制限のために既に指摘したように。

そう!->何を測定したいのか、自分で尋ねる必要がありますか?

  • 何を測定するのかを具体的に尋ねているわけではないので、答えは推測の余地があります。
  • そこで、代替案や提案を紹介します。Oscillatorの一般的なトピックではなく、Raspberryに固有の新しい質問をすることができます。

発振器は、5USDの単純な低周波から、50Ghz +の範囲まで対応できます。これは小さな家と同じくらいのコストです!75,000USD-100,000USD!

Raspberryは、433MHzの無線信号、低速CPUバス通信、TTS / UART、I2Cデバッグなど、サブギガの周波数を測定するのに十分であると思います。また、設計上、RaspberryはリアルタイムOSを実行しないため、高い周波数は実際には正確ではありません。だから、あなたはOSから始める必要があります(または前述の外部リアルタイムデバイス-しかし、そのポイントは何ですか?)

しかし、実際に信号を測定したい場合は、Raspberry仕様と同等の非常に優れた価格のデバイスを購入できます。しかし、すでに十分に設計されており、機能が豊富で、本当に成熟した設計であり、趣味の環境で便利であることを証明しました。

ここで車輪を再発明する必要はありません。たとえば、100 USD未満の単一チャネル用のDSO Nano。

ここに画像の説明を入力してください

200米ドル未満のDSOナノクワッドチャンネル

ここに画像の説明を入力してください

そして、ラズベリーまたは同様のデバイスは何ができません!

そして、少額の費用がかかります...

ここに画像の説明を入力してください

  • データを保存するためのハードドライブ、非常に正確なシミュレーションとトリガーを備えた最大110Ghz。
  • Buuetooth、WCDMA / EDGE / 3G / 4G、ワイヤレスA / B / G / N 2.4Ghz / 5Ghz、SATA、AGP / PCI / PCI-Express、生の衛星信号、ハードドライブヘッドチャネル、イーサネットなどを測定します。 。

2
Rohde&Schwarzのように私のRPi LOOKを作ることができました。気の利いた、多分少し丘の上に、ケースmod :-)
ikku

笑!それは痛い目のための光景になります:)
ピョートルクラ

1

TiePieエンジニアリング ハンディスコープHS5オシロスコープ/任意波形発生器の1つをUSBポートに接続できます。1つまたは複数のオシロスコープを同時に使用するためにRaspberry Pi用にコンパイルされたライブラリをダウンロードできます。機器は独自のタイミングとメモリを使用するため、パフォーマンスの低下はありません。そのため、Piはオシロスコーププロジェクトに十分強力です。

ハンディスコープHS5

オシロスコープの主な仕様:2チャネル、14ビット、500 MS / s、250 MHz帯域幅、20 MS / s 14ビット連続ギャップフリーストリーミング、チャネルあたり32 MSメモリ、1 ppmタイムベース精度。

任意波形発生器の主な仕様:1 µHz〜30 MHzの波形、240 MS / s、14ビット、64 MSメモリ、-12〜12 V出力(24 Vpp)、1 ppmタイムベース精度。


こんにちは。将来的には、宣伝している製品との関係を開示してください。ありがとうございました。

ブリーミー!価格を見てください!しかし、素敵な製品のように見えます。私の予算の範囲内ではありません。
ピョートルクラ

所属情報開示の必要性を認識していませんでした。TiePieエンジニアリングに所属していることを示すためにテキストを変更しました。
マーティン

0

sigrokとそのフロントエンドlibsigrokをPiでコンパイルできるかどうかを試してみてから、互換性のあるオシロスコープハードウェアを購入してください。これにより、毎秒最大24メガサンプルの信号を取得できます。十分な知識があれば、モバイルデバイスへのワイヤレス送信など、必要に応じてソフトウェアをカスタマイズできます。


0

Sigrokについて話している人がいます。最も近い方法は、ドライバEZ-USB FX2LPで十分に文書化されたCY7C68013Aを使用することだと思います。デスクトップPCではWeezyで動作しませんでしたが、Jessyでは動作します。24 Mspsに関する既知の制限は次のとおりです。カメラインターフェイスを使用して、別の方法を考えています。このインターフェイスは、2.1メガピクセルと1秒あたり30フレームを管理できます。つまり、1秒あたり60メガ「サンプル」を超える速度でデータをGPUに転送できます。20MHz SPIまたはUSBよりも便利です。


これらはデジタルインターフェイスであるため、高速ADCの出力で駆動しない限り、オシロスコープは生成されません。ほとんどの実用的なソリューションは、桁違いにすばやくサンプリングしますが、連続的にサンプリングすることはしません。これは、通常の問題により適しています。
クリスストラットン

-1

オーディオ周波数に制限されることを気にしない場合は、安価なMCP3202 12ビットデュアルチャネルA / Dコンバーターを使用してpidevでpiを取得し、pydatascopeを使用してTCPソケット経由でイーサネット経由で渡されたデータを表示します。Pydatascopeはスペクトルアナライザーとしても機能します!

pydatascopeオープンソースコードに比較的簡単な変更を加えてデュアルチャネルを作成しました。これは主に簡単であり、本当に必要なわけではないためです。

質問がある場合は、フォローアップを投稿するか、直接メールしてください。喜んでお手伝いいたします。


あなたは許可なく私の著作権で保護された画像を使用しています。ウェブサイトから著作権で保護された画像を削除してください。
ジェームズフィリップス14年

@James Philipsにご回答いただきありがとうございます。回答から画像を削除しました。審査待ちです。私はそれを追加した人ではないことに注意してください。見たい人のために画像を含むサイトのアドレスを提供できますか?
niw3 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.