www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Signalverarbeitung maximale Geschwindigkeit


Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte mit einem Atmel einen Quantenzufallsgenerator auslesen 
http://www.idquantique.com/products/files/quantis-specs.pdf Dieser hat 
systembedingt jedoch keine feste clockfrequenz.

Mein Gedankenansatz (bitte um Berichtigung, wenn falsch):
Die Breite eines Clockpulses (Quantenzufallszahlgenerator) beträgt 50ns. 
Um das auslesen zu können sollte mindestens ein Clockzyklus meines Atmel 
in diesen Zeitraum fallen, damit ich einen Interrupt auslösen kann. D.h. 
meine Taktfrequenz des Atmel sollte mindestens: 20Mhz sein!? Geht das, 
oder bekomme ich damit ein Problem? Das auszulesende Signal liegt nach 
dem Clockpuls noch weitere 100ns, also zwei Taktzyklen an. schaffe ich 
das mit einem Interrupt auszulesen, oder benötigt ein Interrupt zu lange 
Zeit?

Da der Mikrocontroller in Abhängigkeit eines anderen Signals (~alle 
20ms) den Quantenzufallsgenarator ausliesst gäbe es im Anschluss genug 
zeit für die weitere Verarbeitung.

Gibt es schneller Atmels als 40 Mhz?
Wenn nicht werde ich zur Not ein schieberegister zwischenschalten um 
eine Geschwindigkeitsreduktion zu erreichen.

Viele Grüße
Horst

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Horst wrote:
> Das auszulesende Signal liegt nach
> dem Clockpuls noch weitere 100ns, also zwei Taktzyklen an. schaffe ich
> das mit einem Interrupt auszulesen, oder benötigt ein Interrupt zu lange
> Zeit?
Allein bei einem "nackten" Interrupt Handler (also ohne Sicherung von 
Registern u.ä.) dauert es vom Auftreten des Ereignisses (Flag wird 
gesetzt) bis zur Ausführung des ersten Befehls im Interrupt Handler 
mindestens 5-6 Takte (4 Takte für PC sichern und Sprung in den Vektor, 
2 oder 3 Takte für den Sprung in den Handler [je nachdem, ob rjmp reicht 
oder jmp benötigt wird], wenn der nicht direkt in der Vektortabelle 
steht). Und da kommt noch mal die Zeit hinzu, die benötigt wird, um den 
gerade in Arbeit befindlichen Befehl im Hauptprogramm zu Ende 
auszuführen, also i.d.R. noch mal 1-2 Takte.

Autor: Fred S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Horst,

je nachdem, was Du mit den Daten tun willst, käme vielleicht auch einer 
der Counter (mit externem Eingang) bzw. die "input capture unit" in 
Frage.

Gruß

Fred

Autor: 3348 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir scheint ein CPLD passender.

Autor: Thomas Bremer (Firma: Druckerei Beste) (virtupic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was es alles gibt... Kann es sein, dass das Ding einfach ein Wiederstand 
ist, an dem das thermische Rauschen abgenommen wird? Oder eine Diode 
knapp unter maximaler Sperrspannung, an der die Durchschläge gezählt 
werden? Egal.

Der Generator gibt laut Beschreibung hinterm Link Clock und Daten. Okay, 
ich kenne Atmel Prozessoren nicht von innen. Aber vielleicht gibt es ja 
welche mit USART, das schnell genug ist, um im Synchronmodus mit dem 
Generatortakt getaktet zu werden.

Abgesehen davon, du willst ja nicht alle Daten nutzen. Wenn das Ding 
vernünftigen Zufall produziert, dann ist egal, welche du verpasst. Du 
darfst also nur so schnell lesen, dass du kein Bit verdoppelst, kannst 
aber beliebig viele überspringen, wenn dein uC zu langsam ist.

virtuPIC

Autor: Schwurbl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schätze, man könnte entweder mit dem SPI-Slave des AVR oder einem 
simplen Schieberegister '595 die Daten in handliche Byte-Häppchen 
umwandeln, die dann mit 500kHz eintrudeln.

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schieberegistervariante schlägt der Hersteller vor...
http://www.idquantique.com/products/files/quantis-...
Dahinter noch ein Latch und man kann die Daten in Ruhe auslesen.

> Kann es sein, dass das Ding einfach ein Wiederstand
> ist, an dem das thermische Rauschen abgenommen wird? Oder eine Diode
> knapp unter maximaler Sperrspannung, an der die Durchschläge gezählt
> werden? Egal.

Nein, da ist tatsächlich drin was draufsteht:
Eine Photonenquelle, ein halbtransparenter Spiegel und die Detektoren.

Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die vielen Antworten!
Werde die Schieberegistervariante benutzen. Klar könnte ich auch einfach 
zu einem bestimmten zeitpunkt auslesen (welche Z-Zahl ist ja irrelevant) 
aber ich haette Bedenken gehabt zum Zeitpunkt eines Signalwechsels 
auszulesen.

Nochmal vielen Dank an Alle!

Horst

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Horst wrote:
> Vielen Dank für die vielen Antworten!
> Werde die Schieberegistervariante benutzen.

Nimm aber nicht das 164 sondern das 595. Dann hast du 8 Bitzeiten Zeit, 
um es auszulesen.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.