Datenerfassung bei 500MHz

Ich habe eine ADC-Abtastung bei 500 MHz (es sammelt Daten von einem Ultraschallsensor). Ich muss in der Lage sein, diese Daten auf meinen PC zu streamen (vorerst - dies wird über eine drahtlose Einheit erfolgen). Ich suche nach einer Computerlösung, die zwischen der drahtlosen Einheit und dem ADC sitzt. Ich setze das alles auf einen Roboter und versuche, ihn so klein wie möglich (in Bezug auf die Abmessungen) und hoffentlich den Stromverbrauch niedrig zu halten.

Gibt es eine bessere Lösung als die Verwendung eines FPGA? Ich habe gelesen, dass es sehr schwierig ist, ein FPGA mit 500 MHz zum Laufen zu bringen, und dass möglicherweise eine Art paralleles Rechnen erforderlich ist. Bedeutet das, dass ich GPUs verwenden soll?

Meinst du das ernst, Ultraschall auf 500 MHz?
Ok, nehmen wir an, Sie verwenden einen 10-Bit-ADC und möchten diese Daten mit 500 MHz senden. Wir kommen auf folgende Rate: 5Gbps. Wenn Sie versuchen, 5 Gbit / s über eine drahtlose Verbindung zu übertragen, halte ich dies für ein wenig utopisch.
Es ist ein 250 MHz Ultraschallsensor. Die Abtastung erfolgt mit einer höheren Rate. Entschuldigung, an die drahtlose Verbindung habe ich nicht gedacht. Ich war hauptsächlich besorgt über die ADC-Verbindung. Ich kann die Daten mitteln (um Rauschen zu vermeiden) und/oder komprimieren, bevor ich sie über die drahtlose Verbindung sende. Also hätte ich wahrscheinlich eine Zwischenpufferung.
Was versuchst du mit solch extremen Frequenzen zu erreichen? Die Wellenlänge von 250 MHz in Luft beträgt etwa 1,3 Mikrometer, und Luft ist bei diesen Frequenzen extrem verlustbehaftet. Ein 250-kHz-Sensor, der mit 500 kHz oder vielleicht 1 MHz abgetastet wird, wäre viel sinnvoller.
250 MHz ist anscheinend kein Tippfehler, es gibt Leute, die es für die Hautbildgebung verwenden. Es ist nicht schwer, FPGAs dazu zu bringen, mit 500 MHz zu laufen, tatsächlich denke ich, dass dies Ihre einzige realistische Option ist. Der ADC wird wahrscheinlich LVDS ausgeben - welche Teilenummer verwenden Sie? Ich war an einem ähnlichen Projekt beteiligt und warne Sie, dass es weder billig noch einfach ist.
@pjc50: Aber im Kontext eines Roboterprojekts macht es nicht viel Sinn.
@DaveTweed wer weiß, vielleicht ist es ein hautkrabbelnder Roboter.
@DaveTweed Ja, das dachte ich auch, aber dann sah ich das hier: ieeexplore.ieee.org/xpl/…
@GleisonStorto: Ich würde wetten, dass es um Sonar im Wasser geht , wo es Sinn macht. Ich gehe davon aus, dass der Roboter des OP in der Luft ist, da er über die Verwendung einer drahtlosen Verbindung (vermutlich RF) spricht.
Ich bin mir nicht sicher, was das OP tut, aber wenn es sich in einer Flüssigkeit oder einem Feststoff befindet, sind Ultraschallimpulsbreiten von weniger als 1 uS üblich, und wenn Sie die Form der Reflexion sehen möchten, kann ich mir vorstellen, so schnell abzutasten.
Womit ist der 500-MHz-ADC jetzt verbunden? Ein benutzerdefiniertes Board oder etwas, für das Sie Spezifikationen oder einen Link bereitstellen können? Offensichtlich ist die Datenrate für WLAN zu hoch. Aber wenn Sie nicht kontinuierlich sampeln oder wenn Sie vor der Übertragung eine Datenreduktion durchführen können, wird das helfen. Vor 10 Jahren arbeitete ich mit Xilinx VirtexII FPGAs, die mit 400 MHz laufen konnten. Ich würde FPGAs ohne unabhängige Untersuchung nicht ausschließen.
Der Sensor kann mit 250 MHz senden, aber seine Bandbreite ist mit ziemlicher Sicherheit nur ein Bruchteil davon, wahrscheinlich weniger als 10 %. Sie müssen nur ein Vielfaches dieser Bandbreite abtasten, was die Datenrate erheblich reduzieren würde.
Ohne zu einem benutzerdefinierten IC zu gehen, könnte FPGA tatsächlich Ihre einzige Option für die anfängliche Schnittstelle zum ADC sein. Jetzt erhalten Sie diese Datenbytes im FPGA, die mit 500 MHz eingehen, was mit ihnen zu tun ist. Zwei Möglichkeiten, die Sie impliziert haben, führen eine Verarbeitung innerhalb des FPGA durch oder leiten sie irgendwie an ein Prozessorarray weiter. Und was dann ... Nichts davon wird einfach sein.

Antworten (1)

Eine Lösung besteht darin, einen Demux zu verwenden, um die ADC-Abtastrate zu reduzieren und die große Anzahl von Pins auf dem FPGA zu nutzen.

Beispielsweise könnte der ADC mit 500 MHz und das FPGA mit vernünftigeren 125 MHz getaktet werden. Dann kann ein 4:1-Demux verwendet werden, der 4 ADC-Samples für jeden Tick des FPGA sammelt. Der Bus wird viermal breiter, sodass das FPGA bei jedem Tick 40 Bit aufnehmen muss, nicht 10, aber das ist nicht schwer zu handhaben.

In meiner Anwendung werden der 2Gsps-ADC und der 8:1-Demux als Paar verkauft, sodass seine Ausgabe 88 Bit bei 250 MBit/s beträgt. Es gibt keine andere Möglichkeit, den ADC zu verwenden.

Ich nehme an, Sie werden bei dieser Geschwindigkeit nicht sehr lange proben. Die Verarbeitungsanforderungen werden dadurch bestimmt, wie viele Proben verwendet werden müssen und wie schnell Sie Antworten benötigen. Beispielsweise könnten Sie 10-GbE-Glasfaser verwenden, um die Daten von Ihrem Roboter zu einem normalen PC zu übertragen, für die Offline-Verarbeitung, ohne dass exotische Hardware oder Software erforderlich ist.

Herkömmliche drahtlose Verbindungen funktionieren nur bis zu vielleicht 100 Mbit / s und nur unter idealen Bedingungen, die bei einem sich bewegenden Roboter nicht zu finden sind. Etwas muss das gesamte Signal puffern, bevor Sie es herunterladen. DRAM auf dem FPGA? Eingebetteter PC? Viel Glück!

125 MHz sind WIRKLICH langsam für ein FPGA. Mit einer Stratix IV konnte ich locker 250MHz erreichen. Es hängt von der Art der Operationen ab, die er mit diesen Daten durchführen wird, und von der Auflösung des ADC. Eine 32-Bit Addition ist bei 250MHz durchaus möglich, eine 64-Bit müsste er in zwei Zyklen aufteilen.
Ja, Sie können viel schneller als 125 MHz fahren. Ich habe ein Design auf einem Spartan 6, das mit 250 MHz arbeitet. Und der PCIe-gen3-x8-Kern kommt mit 256 Bit bei 250 MHz heraus. Die DSP-Slices auf den Virtex 6 FPGAs können bis zu 600 MHz und bis zu 700 MHz auf dem Virtex 7 gehen.