Guten Abend, Ich möchte hier meinen ersten Post erstlellen, da ich über das Forum bereits bei vielen kleinen Projekten gute Ideedn und Tipps gefunden habe. Nun möchte ich mich auch "Neuland" begeben. Fachkenntnisse besitzte ich leider aktuell Hauptsächlich in sogenannten "I/O-Devices" also z.b. Digitale I/O's über Schnittstellen oder einfache Ansteuerungen uns Auswerten von Sensoren. Dazu kommt Programmierkenntniss auf AVR sowie STM32 (C++, C#) Privat Interessiere ich mich ebenfalls für Radioaktivitä, speziell für Gammaspektrometrie. Dies ist als "Hobbyuser" leider etwas schwierig zu machen, da man entweder vollkommen überteuerete Ausrüstung (+5k€) benötigt oder sich auf die aktuellen Hobbylösungen verlassen muss. Die bekannteste Hobbylösung ist das Signal des Detektors (PMT) mit einer Soundkarte zu erfassen. Hier sind aktuell nur Sampleraten bis 384kHz 16bit möglich. Ebenfalls haben fast alle Programme ihre Problemchen. Ich kann mir vorstellen das es auf dem Markt sicher halbwegs bezahlbahre Hardware gibt, welche mit dem Eingangsignal klarkommt und genügend performante Controller (ob MCU oder ähnlich) gibt. Grundsätzlich ist die Anforderung an an solches System folgende: 1.) Signal erkennen 2.) Signal aufzeichnen 3.) Pulshöhe ermitteln 4.) Fehler unterdrücken 5.) Ausgabe auf Schnittstelle bzw. weitere Verabreitung der Daten Nun habe ich einige Fragen: 1.) Der erste Ansatz wäre das Signal mittels zwei Coomparators zu erkennen, also steigende und fallende Flanke über/unter einer Referenz. Steigt das Signal über die Schwelle wird solange gesampelt bis es wieder unter die Schwelle fällt. Danach können die Daten ausgewertet werden. Nun frage ich mich, ob sowas heute "noch" Stand der Technik ist, oder ob es möglich ist die Pulse per Software zu erkennen, so kann man sich den Schwellwert schenken, welcher ja verstellbar sein müsste (poti,DAC).In einem Oszilloskop sind die "Trigger" vermutlich ja auch nichtmehr in Hardware ausgeführt. 2.) Mit welcher Samplerate sollte man rechnen, wenn man die Pulse per ADC samplen möchte? Ein Puls ist ca. 10-50us lang: http://physicsopenlab.org/wp-content/uploads/2017/09/csp2.bmp Die Samplerate muss ja genug gross sein um die Spitze zu samplen. In der Annahme das ein Signal 10us lang ist, und kontinuierlich pulst, wären das umgerechnet rund 100kHz. würde man man nun einen 25MSPS ADC verwenden, würde man ja 250 Samples pro Puls erhalten. Wäre das Signal dann 50us lang, wären es 1250 Samples pro Puls. Wäre das möglich, oder muss die Samplerate noch viel höher sein? ADC's über 25MSPS werden bereits sehr teuer oder schwer erhältlich 3.) Welche Controllerleistung wäre für so einen ADC überhaupt tauglich. Geht man davon aus, das man die Daten erst nach dem samplen auswertet, kann es sein eine nicht unbeachtliche Datenmenge anfällt. Beispiel: 1250 Samples * 24bit = 3.75kbyte an Daten, die innert 50us auflaufen. Das nächste Problem ist sicherlich auch die Clock-Rate den bei 24bit @ 24MSPS müsste man ja mit 600M die Daten abführen. Sowas kann kein aktueller MCU. Habe ich das korrekt eingeschätzt oder gibt es einen Denkfehler. Falls korrekt, was für Controller werden hierzu eingesetzt. Z.b. bei einem Oszilloskop werden ja noch viel höhere Sampleraten schon bei den "Startermodellen" gefahren (z.b. 70Mhz, 100Mhz). 4.)Hat man die Daten erst mal vorliegen, muss man ja irgendwie die Signalhöhe ermitteln. Ich gehe hier davon aus das hier nicht nur eine Suche nach dem Maximum ausgeführt wird, sondern weit komplizierte Mathematik. Eine einfache suche nach dem Maximum wäre ja wie folgt simpel zu programmieren if (sample[n] > max){ max = sample[n]; } das erscheint mir viel zu einfach. Ich meinte ich hatte schon sachen gelesen wo das Signal mittels Mathematik analysiert wird. Kann mir jemand vieliecht eine Hilfestellung geben, wo ich informationen zu dieser Art von Mathematik finden kann? Soviel mal fürs erste :) Ich hoffe nun, das mir hier jemand mit den genannten Punkten weiterhelfen oder Aussagen dazu machen kann! Vielen Dank Grüsse Pius
Schaue dir doch mal diesen Beitrag hier an, klassisch analog :-) Beitrag "Re: Vierkanal Beta, Gamma Detektor mit BPW 34 Photodioden"
Joe G. schrieb: > Schaue dir doch mal diesen Beitrag hier an, klassisch analog :-) > Beitrag "Re: Vierkanal Beta, Gamma Detektor mit BPW 34 Photodioden" Leider finde ich dort nichts über die Auswertung. Und klassisch "analgo" wird nur bis zum Digitalisierer sein. Denn irgendwie müssen die Daten ja digital an den PC übertragen werden.
Pius W. schrieb: > bei einem Oszilloskop werden ja noch viel höhere Sampleraten schon bei > den "Startermodellen" gefahren (z.b. 70Mhz, 100Mhz) aber meist nur mit 8 Bit
Die Oszilloskope arbeiten typischerwiese nur mit 8 Bit; das ist ein bißchen wenig für ein Gammaspektrum. Wenn sie digital triggern, dann wird das wohl in einem FPGA passieren, damit es schnell genug reagiert. Der nächste Schritt nach dem Triggern wäre dann wohl, in den gespeicherten Samples den Puls zu erkennen und eine Gaußkurve zu fitten, wenn einem das einfache Maximum nicht gut genug ist. Solange die Software am Rechnen ist, darf kein zweiter Puls kommen, weil der ignoriert würde; das ist dann eben die Totzeit. Wenn das zu viel digitaler Aufwand ist, muß man der Analogseite mehr vertrauen: die begrenzte Bandbreite der Verstärker wird den Impuls schon passend formen, und es gibt seit Jahrzehnten bewährte Schaltungen für Sample&Hold und Trigger, so daß der Maximalwert dem A/D-Wandler zugeführt wird. Da dann für jeden Impuls nur noch ein Wandlungsvorgang nötig ist, darf der auch etwas länger dauern und wird dementsprechend eine höhere Auflösung haben.
Pius W. schrieb: > Fachkenntnisse besitzte ich leider aktuell Hauptsächlich in sogenannten > "I/O-Devices" also z.b. Digitale I/O's über Schnittstellen oder einfache > Ansteuerungen uns Auswerten von Sensoren. Dazu kommt > Programmierkenntniss auf AVR sowie STM32 (C++, C#) Dann ist das Projekt aus Hardwaresicht für dich mindestens 2 Nummern zu groß. > 1.) Signal erkennen > 2.) Signal aufzeichnen > 3.) Pulshöhe ermitteln > 4.) Fehler unterdrücken > 5.) Ausgabe auf Schnittstelle bzw. weitere Verabreitung der Daten Um von einem 10-50us Puls ein Maximum zu ermittlen, braucht man nicht zwingend eine volldigitale Lösung, auch wenn die Profis das heute so machen würden. Als vereinfachen Amateuransatz kann man auch einen schnellen Spitzenwertdetektor nutzen. > Der erste Ansatz wäre das Signal mittels zwei Coomparators zu erkennen, > also steigende und fallende Flanke über/unter einer Referenz. Steigt das > Signal über die Schwelle wird solange gesampelt bis es wieder unter die > Schwelle fällt. Danach können die Daten ausgewertet werden. So in etwa. > Nun frage ich mich, ob sowas heute "noch" Stand der Technik ist, oder ob > es möglich ist die Pulse per Software zu erkennen, so kann man sich den > Schwellwert schenken, welcher ja verstellbar sein müsste (poti,DAC).In > einem Oszilloskop sind die "Trigger" vermutlich ja auch nichtmehr in > Hardware ausgeführt. Irrtum. Gerade wenn es schnell und genau sein soll, kommt man um Hardware nicht herum. Wozu auch? > Mit welcher Samplerate sollte man rechnen, wenn man die Pulse per ADC > samplen möchte? > Ein Puls ist ca. 10-50us lang: > http://physicsopenlab.org/wp-content/uploads/2017/09/csp2.bmp Die Pulsbreite ist hier fast egal, dann das Maximum wird DEUTLICH schneller erreicht. Hier ist die minimale Anstiegszeit entscheidend. Die kann man auf dem Bild nur schätzen, vielleicht 100-1000ns? > Die Samplerate muss ja genug gross sein um die Spitze zu samplen. > In der Annahme das ein Signal 10us lang ist, und kontinuierlich pulst, > wären das umgerechnet rund 100kHz. würde man man nun einen 25MSPS ADC > verwenden, würde man ja 250 Samples pro Puls erhalten. Wäre das Signal > dann 50us lang, wären es 1250 Samples pro Puls. Wäre das möglich, oder > muss die Samplerate noch viel höher sein? Siehe oben. Die Anstiegszeit ist das Kriterium. > ADC's über 25MSPS werden > bereits sehr teuer oder schwer erhältlich Nicht wirklich. Aber vor allem fehlt dir das Wissen und die Erfahrung, diese gescheit zu nutzen. Wenn man dich in ein Formel 1 Auto setzt, wirst du auch nur mit Müh und Not das Rennen beenden, von einer Platzierung ganz zu schweigen ;-) > Welche Controllerleistung wäre für so einen ADC überhaupt tauglich. Gar keine, denn sowas steuert man per FPGA an. > Geht > man davon aus, das man die Daten erst nach dem samplen auswertet, kann > es sein eine nicht unbeachtliche Datenmenge anfällt. Kommt auf die Pulswiderholrate an. > Beispiel: 1250 Samples * 24bit = 3.75kbyte an Daten, die innert 50us > auflaufen. Das nächste Problem ist sicherlich auch die Clock-Rate den > bei 24bit @ 24MSPS müsste man ja mit 600M die Daten abführen. Sowas kann > kein aktueller MCU. Und du glaubst ernsthaft, daß ein 24 Bit ADC mit 25 Msps arbeitet ? Dream on. > Habe ich das korrekt eingeschätzt Nö. > oder gibt es einen Denkfehler. Mehrere. > Signalhöhe ermitteln. Ich gehe hier davon aus das hier nicht nur eine > Suche nach dem Maximum ausgeführt wird, sondern weit komplizierte > Mathematik. Tja, DAS ist eine entscheidende Frage. Wenn man nur das Maximum braucht, reicht ein analoger Spitzenwertdetektor. Wenn man den Kurvenverlauf braucht, muss es fast eine (voll)digitale Lösung sein. > Ich hoffe nun, das mir hier jemand mit den genannten Punkten > weiterhelfen oder Aussagen dazu machen kann! Mein Tipp. Besorg die eines der preiswerten Picoscopes, die haben 12, teilweise 16 Bit Auflösung für kleines Geld. Damit kannst du relativ leicht die Pulse erfassen und dann beliebig langsam am PC analysieren. Alles andere, vor allem in bezug auf die Hardwareenetwicklung, übersteigt deine aktuellen Fähigkeiten um Größenordnungen.
Falk B. schrieb: > Um von einem 10-50us Puls ein Maximum zu ermittlen, braucht man nicht > zwingend eine volldigitale Lösung, auch wenn die Profis das heute so > machen würden. Als vereinfachen Amateuransatz kann man auch einen > schnellen Spitzenwertdetektor nutzen. Sind den Spitzenwertdetektoren sehr genau? > Irrtum. Gerade wenn es schnell und genau sein soll, kommt man um > Hardware nicht herum. Wozu auch? Ich war nur verwundert, warum alle professionellen Lösungen Digitalbausteine, ja sogar ASICS verwenden um soetwas zu erreichen. Irgendwo muss ja bei der "Hardware" ein Problem enstehen, das man sich entscheided einen ASICS zu bauen, oder CPLD's zu verwenden. Ein Grund sehe ich darin, das es mit Hardware immer an diverse Limitationen gebunden ist, bei einer Softwarelösung ist lediglich die Maximaleingangspauung des ADC's entscheidend. >> Mit welcher Samplerate sollte man rechnen, wenn man die Pulse per ADC >> samplen möchte? >> Ein Puls ist ca. 10-50us lang: >> http://physicsopenlab.org/wp-content/uploads/2017/09/csp2.bmp > > Die Pulsbreite ist hier fast egal, dann das Maximum wird DEUTLICH > schneller erreicht. Hier ist die minimale Anstiegszeit entscheidend. Die > kann man auf dem Bild nur schätzen, vielleicht 100-1000ns? > >> Die Samplerate muss ja genug gross sein um die Spitze zu samplen. >> In der Annahme das ein Signal 10us lang ist, und kontinuierlich pulst, >> wären das umgerechnet rund 100kHz. würde man man nun einen 25MSPS ADC >> verwenden, würde man ja 250 Samples pro Puls erhalten. Wäre das Signal >> dann 50us lang, wären es 1250 Samples pro Puls. Wäre das möglich, oder >> muss die Samplerate noch viel höher sein? > > Siehe oben. Die Anstiegszeit ist das Kriterium. > >> ADC's über 25MSPS werden >> bereits sehr teuer oder schwer erhältlich > > Nicht wirklich. Aber vor allem fehlt dir das Wissen und die Erfahrung, > diese gescheit zu nutzen. Wenn man dich in ein Formel 1 Auto setzt, > wirst du auch nur mit Müh und Not das Rennen beenden, von einer > Platzierung ganz zu schweigen ;-) >> Welche Controllerleistung wäre für so einen ADC überhaupt tauglich. > > Gar keine, denn sowas steuert man per FPGA an. Ich habe hier extra "Controller" geschrieben, da ich ja nicht wusste welche Technologien eingesetzt werden könnten. Ein FPGA ist natürlich eine Aussage. Was ist denn genau die Aufgabe eines FPGA in dieser Applikation? Mir wurde mal vermittelt, das FPGA vorallem dann zum Einsatz kommen, wenn extrem schnelle, aber sehr einfache Prozesse notwendig sind. Für komplexe Aufgaben wie Mathematische Funktionen sind sie eher nicht geignet. Würde der FPGA in diesem Fall einfach den ADC bedienen, und dann die rohen Pulsdaten ein einen weiteren Controller zur Auswertung senden? Ich meinte sowas habe ich bei einer Professionellen lösung schonmal gesehen, dort hängt ein grosser Altera Baustein (Typ leider abgefräst) an einem 8051 MCU. >> Beispiel: 1250 Samples * 24bit = 3.75kbyte an Daten, die innert 50us >>auflaufen. Das nächste Problem ist sicherlich auch die Clock-Rate den >> bei 24bit @ 24MSPS müsste man ja mit 600M die Daten abführen. Sowas kann >> kein aktueller MCU. > > Und du glaubst ernsthaft, daß ein 24 Bit ADC mit 25 Msps arbeitet ? > Dream on. Das war eine Beispielhafte annahme. Da ich weiss das es 1G/s 16bit ADC gibt, dachte ich mir 24bit /25MSPS sein ein klax, aber du hast recht! Es geht wohl auch da nur bis 16 bit. >> Signalhöhe ermitteln. Ich gehe hier davon aus das hier nicht nur eine >> Suche nach dem Maximum ausgeführt wird, sondern weit komplizierte >> Mathematik. > > Tja, DAS ist eine entscheidende Frage. Wenn man nur das Maximum braucht, > reicht ein analoger Spitzenwertdetektor. Wenn man den Kurvenverlauf > braucht, muss es fast eine (voll)digitale Lösung sein. > Ich könnte mir sogar vorstellen, das die volle Signalhöhe garnicht vorhanden sein kann, sondern das auf Grund des auf und abteigenden Signals die Höhe theoretisch errechnet wird. Nehmen wir an du hast 50Hz Sinus, und schneidest den oberen teil des Sinus ab (weil dein ADC den oberen bereich nicht messen kann). So wäre es doch mathematisch noch möglich, den Sinus "nachzubilden" wenn du eine art Fenster vom aufstieg und abstieg hättest, sowie die Pulsdauer, nicht? Ich sehe vorallem das Problem, das die meisten ADC einen extrem kleinen Eingangspannungsbereich bestitzen. Ofmals 3V oder weniger. Rechnet man das wie folgt um: Zu messender Gamma-Bereich 0keV bis 4000keV, sind das bereits 4000 mögliche Werte. Das sind ja schonmal 12bit. Rechnet man das jett z.b. auf eine Referenzspannung von 2500mV herunter, wäre die Auflösung eines Pulses lediglich 0.6mV. Ich könnte mir vorstellen das man da arge Probleme mit der Genauigkeit bekommt. Ich habe ein Handbuch eines Professionellen Gerätes gefunden, auch mit ein paar Schemadeteils, der komplette Schaltplan fehlt natürlich :) http://atomfizika.elte.hu/muszerek/Amptek/Documentation/User%20Manuals/DP5%20User%20Manual.pdf Vorallem die Info zu dem Grossen Schwarzen IC, was mit unter nur für Amptek produziert wird.
Pius W. schrieb: >> machen würden. Als vereinfachen Amateuransatz kann man auch einen >> schnellen Spitzenwertdetektor nutzen. > > Sind den Spitzenwertdetektoren sehr genau? Was ist denn "sehr genau"? Und glaubst DU, daß du als Hobbybastler mit magerem Elektronikwissen eine ""state of the art" Lösung brauchst und vor allem hinkriegst? Keine Ahnung wie genau so ein schneller Spitzenwertdetektor ist, ich tippe mal 10 Bit und etwas mehr Auflösung und Genauigkeit wird man schon schaffen, wenn man weiß was man tut. >> Irrtum. Gerade wenn es schnell und genau sein soll, kommt man um >> Hardware nicht herum. Wozu auch? > > Ich war nur verwundert, warum alle professionellen Lösungen > Digitalbausteine, ja sogar ASICS verwenden um soetwas zu erreichen. Ja eben WEIL man es in Hardware machen will/muss! > Irgendwo muss ja bei der "Hardware" ein Problem enstehen, das man sich > entscheided einen ASICS zu bauen, oder CPLD's zu verwenden. Bist du so schwer von Begriff? > Ein Grund sehe ich darin, das es mit Hardware immer an diverse > Limitationen gebunden ist, bei einer Softwarelösung ist lediglich die > Maximaleingangspauung des ADC's entscheidend. Träumer! >> Gar keine, denn sowas steuert man per FPGA an. > > Ich habe hier extra "Controller" geschrieben, da ich ja nicht wusste > welche Technologien eingesetzt werden könnten. Ein FPGA ist natürlich > eine Aussage. Was ist denn genau die Aufgabe eines FPGA in dieser > Applikation? Ja was wohl? Den ADC anzusteuern und die Daten zu verarbeiten! > Mir wurde mal vermittelt, das FPGA vorallem dann zum > Einsatz kommen, wenn extrem schnelle, Ja. > aber sehr einfache Prozesse > notwendig sind. Nein. Auch FPGAs machen schon komplexe Steuerungen und Signalverarbeitungen. > Für komplexe Aufgaben wie Mathematische Funktionen sind > sie eher nicht geignet. Das stimmt so allgemein nicht, wenn gleich im Extremfall eine Softwarelösung in bezug auf komplexe Algorithmen irgendwann mehr kann, wenn gleich deutlich langsamer. > Würde der FPGA in diesem Fall einfach den ADC bedienen, und dann die > rohen Pulsdaten ein einen weiteren Controller zur Auswertung senden? Kann man machen. Man kann aber auch einen guten Teil der Vorverarbeitung ins FPGA packen, das vermindert vor allem die Datenrate zu den nachfolgenden Verarbeitungsstufen, hier CPU etc. > Ich > meinte sowas habe ich bei einer Professionellen lösung schonmal gesehen, > dort hängt ein grosser Altera Baustein (Typ leider abgefräst) an einem > 8051 MCU. Ja, der 8051 ist nur der "Hausmeister", welcher den eigentlichen "Star", das FPGA betreut. 95% der Verarbeitung macht der FPGA. >> Und du glaubst ernsthaft, daß ein 24 Bit ADC mit 25 Msps arbeitet ? >> Dream on. > > Das war eine Beispielhafte annahme. Da ich weiss das es 1G/s 16bit ADC > gibt, Wirklich? Wo? Ich glaube kaum, daß die bei 1Gsps ECHTE 16 Bit Genauigkeit erreichen. Da ist viel Marketingblabla dabei. > dachte ich mir 24bit /25MSPS sein ein klax, aber du hast recht! Es > geht wohl auch da nur bis 16 bit. Und selbst das ist bei 25 Msps SEHR sportlich! > Ich sehe vorallem das Problem, das die meisten ADC einen extrem kleinen > Eingangspannungsbereich bestitzen. Ofmals 3V oder weniger. Quark. 3V ist ein RIESIGES Signal! > Zu messender Gamma-Bereich 0keV bis 4000keV, sind das bereits 4000 > mögliche Werte. Das sind ja schonmal 12bit. Mag sein, aber in den meisten Fällen gibt es umschaltbare Meßbereiche, wie sie jedes Multimeter kennt. > Rechnet man das jett z.b. auf eine Referenzspannung von 2500mV herunter, > wäre die Auflösung eines Pulses lediglich 0.6mV. Ich könnte mir > vorstellen das man da arge Probleme mit der Genauigkeit bekommt. Naja, deine Vorstellungswelt ist auch etwas naiv. http://atomfizika.elte.hu/muszerek/Amptek/Documentation/User%20Manuals/DP5%20User%20Manual.pdf Naja, ganz nett, aber eher untypisch. In solchen Dokumenten für den Anwender gibt es sinnvollerweise Blockschaltbilder. Ein echter Schaltplan ist wenig sinnvoll, erstens weil es die Masse der Anwender weder daran interessiert ist noch sie damit was anfangen können. Und außerdem will man ja dem Wettbewerber nicht gleich alles auf dem Silbertablett präsentieren, wenn gleich die Grundstrukturen kein Geheimnis sind. > Vorallem die Info zu dem Grossen Schwarzen IC, was mit unter nur für > Amptek produziert wird. Möglich, aber eher unwahrscheinlich. Für sowas nimmt man heute ein FPGA, das ist vor allem bei kleinen und mittleren Stückzahlen DEUTLICH billiger und schneller entwickelt als ein ASIC. Den nimmt man nur bei SEHR großen Stückzahlen oder wenn man WIRKLICH eine extrem schnelle Schaltung braucht.
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.