Hallo zusammen, ich habe mich in den letzten Tagen mit der Auswahl von DSPs, FPGAs etc. für ein universitäres Forschungsprojekt beschäftigt. Ich brauche nun mal euren unabhängigen und fachkundigen Rat: In dem Projekt werden zwei rauschähnliche Signale mit der maximalen Frequenz von 1 MHz untersucht. Das Board braucht daher also 2 parallele ADCs mit einer Auflösung von 16 Bit und Abtastrate von mehr als 2 MHz (am besten auch einstellbar). Danach soll von beiden Signalen eine FFT (4096 Punkte, Radix 2) erstellt werden, und ein bisschen Filterung betrieben werden. Das ganze hat dann also eine Zykluszeit von 2 ms - daher also eine Echtzeitanwendung. Ausgehend von der Laufzeitkomplexität der FFT N*log2(N) und 500 Berechnungen pro Sekunde plus kleinere Filter plus Overhead und das ganze 2 mal "parallel" würde ich die Rechenleistung auf 80-90 Mio Berechnungen/sekunde abschätzen. Zum Schluss sollen die Daten per Ethernet an eine Kontrolleinheit gesendet werden. Ich würde das ganze gerne mit einem Eval Board machen. Hat jemand Erfahrung und könnte mir einen Rat geben, welches sich für solche Anwendungen eignet und wo die Toolchain günstig oder quelloffen ist? Grüße Max
Moin, auf die Schnelle kommen mir da nur BF707 (Analog Devices) oder STM32-Varianten in den Sinn, aber mit 2MSPS wird's eng, und 16 bit sowieso, besagte Käfer schaffen nur 12. Und die MIPS-Kraft des STM32 wird ev. nicht reichen. Bei den mir bekannten Blackfin-Boards muss man seine gewünschten ADC-Karten für Spässe im SDR-Bereich ranbacken. Könntest ev. noch in der SHARC-Ecke fündig werden, aber da wird's dann teurer. Was TI grad so am Lager hat, weiss ich auch nicht. Quäl doch einfach mal einen FAE deiner Wahl :-)
Wenn deine Signale rauschähnlich sind, wozu braucht dein ADC dann 16 Bit? Das widerspricht sich m.E. ein bisschen. Haben die Signale denn 16 Bit Dynamik? Die einfache Methode FFTs in dieser Menge schnell zu berechnen ist halt $Gammel-ATX-Mainboard mit i5-CPU für 300 Euro. Ist das Problem mit einem ganz normalen Rechner definitiv nicht lösbar?
Sven B. schrieb: > Wenn deine Signale rauschähnlich sind, wozu braucht dein ADC dann 16 > Bit? Das widerspricht sich m.E. ein bisschen. Sehr richtig. 16 Bit in diesem Zusammenhang (und in vielen anderen) ist völlig daneben und weltfremd.
Hallo, danke erstmal für die Antworten! zu den zu messenden Signalen: Zu erwarten ist eine hohe Peak-to-Average Power Ratio (PAPR) und die genaue Auflösung des Messsignals ist fundamental für die Funktion des Gerätes. Daher war meine Idee, mit 16 Bit zu quantisieren. Sven B. schrieb: > Die einfache Methode FFTs in dieser Menge schnell zu berechnen ist halt > $Gammel-ATX-Mainboard mit i5-CPU für 300 Euro. Ist das Problem mit einem > ganz normalen Rechner definitiv nicht lösbar? Schön wäre es, wenn die ADCs auf dem Board schon integriert wären, und nicht durch Kommunikations-Buffer laufen würden. Dann bräuchte ich dafür ja nochmal eine extra Platine.
Max schrieb: > genaue Auflösung des Messsignals ist > fundamental für die Funktion des Gerätes. So so, die "genaue Auflösung". Dann löse doch mal auf wie hoch die genaue Auflösung sein soll. 96 dB? Märchenonkel.
Max schrieb: > Daher war meine Idee, mit 16 Bit zu quantisieren. Warum kamst du nicht auf die glorreiche Idee gleich mit 24 Bit zu sampeln? Mehr Bits ist doch immer gut.
Du hast zwar nichts zu Spannungsbereichen, ob Simultan oder nicht usw. gesagt, aber wie wäre es mit einem fertigen ADC-EVAL-Board für die ADCs wie sowas in der Art: http://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/dc2395a-c.html Sind anscheinend 4 getrennte ADCs mit bis zu 5 MSPS. Da kannst Du Dir aussuchen ob sie synchron abtasten sollen oder zu unterschiedlichen Zeitpunkten. Selber würde ich kein ADC Board machen. Bekommst Du sowieso nicht gehandelt mit den 16 Bit. Dann noch ein FPGA-SoC dran wie das DE0-Nano-SoC-Kit: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=205&No=941 Dann hast Du die Parallelität im FPGA wo Du Datenakquise(ADC) und Datenvorverarbeitung (FFT/Filter,...) machen kannst. Und den HPS + Linux nimmst Du für die Übertragung über Ethernet. Costa Quanta um die 300 USD. Vllt. taugt das ADC-SoC-Board von Terassic was: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=205&No=1061&PartNo=1 Bei 150MSPS kannst du noch etwas Mittelwertfiltern auf Deine 2MSPS. Kostet halt etwas mehr.
Frank schrieb: > Vllt. taugt das ADC-SoC-Board von Terassic was: Ok, geht anscheinend nicht. Der High-Speed-ADC scheint Transformator gekoppelt. Du willst ja aber scheinbar bis DC...
Krapunzel schrieb: > So so, die "genaue Auflösung". > > Dann löse doch mal auf wie hoch die genaue Auflösung > sein soll. 96 dB? Märchenonkel. Willst du mir konstruktiv beim Problem lösen helfen oder nur dumme Kommentare abgeben? Du hast ganz klasse in die 6dB Regel eingesetzt und hast mich kein bisschen weitergebracht. __________________________________ Hallo Frank, danke für die Links sehen interessant aus! Frank schrieb: > Ok, geht anscheinend nicht. Der High-Speed-ADC scheint Transformator > gekoppelt. Du willst ja aber scheinbar bis DC... Nein das Signal besitzt keinen Gleichanteil. Daher könnte das passen. Der Spannungsbereich ist relativ klein, aber insgesamt doch variable weil ein VGA vorgeschaltet werden wird. Würde eurer Meinung nach auch sowas in Frage kommen? Also von der Rechenleistung her... https://de.rs-online.com/web/p/products/7989711/?grossPrice=Y&cm_mmc=DE-PLA-DS3A-_-google-_-PLA_DE_DE_Halbleiter-_-Entwicklungskits%7CEntwicklungskits_Prozessor_And_Mikrocontroller-_-PRODUCT+GROUP&matchtype=&gclid=CjwKCAjw4PHZBRA-EiwAAas4ZgAOf49t
Der DSP vom OMAP3 würde passen (Beagleboard). Ich hab mal alte Benchmarks von mir rausgesucht. Gemessen wurde bei einem DSP Tackt von nur 360Mhz. Gemessen wurde die 16 bit FFT von der TI DSPlib: 8 0.58 µs 16 0.30 µs 32 0.58 µs 64 0.96 µs 128 2.14 µs 256 4.03 µs 512 9.11 µs 1024 17.7 µs 2048 40.3 µs 4096 80.1 µs 8192 0.86 ms 16384 10 ms 32767 21 ms 65536 44 ms Die 4096 FFT passt noch gerade in den first level Cache, daher bricht die Performance für 8192 Samples um Faktor 10 ein. Du würdest auf dem DSP also bequem die beiden FFTs und die Ansteuerung der ADCs unterbringen können. Auf dem ARM-Teil kannst Du dann Linux laufen lassen und damit die Ergebnisse über Ethernet versenden. SPI geht bis 48Mhz, ist also auch schnell genug. Einen Selbstgänger den DSP zum Laufen zu bringen ist es allerdings nicht. Auf die Performance kommst Du nur, wenn Du den SPI von DSP Seite betreibst. Du wirst Dich auch mit dem DMA vom DSP auseinandersetzen müssen, damit Du gleichzeitig Rechnen, Daten Empfangen und Daten an das Linux System senden kannst.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.