Takt stabilisieren?

Nov 15, 2006 7 Replies

Ich arbeite im Moment mit Matlab xPC Target als Echteitsystem. Dort werden unter anderem Daten aus einem Zilog UART ausgelesen und ein Taktsignal an externe Hardware ausgegeben, die auf der anderen Seite der seriellen Verbindung angeschlossen ist.



Leider produziert der Target PC einen Jitter von einigen us, der für die Hardware zu groß ist. Der Takt an sich (8kHz) und die serielle Kommunikation sind aber OK, weswegen ich hier nicht nochmal einen uC zwischen hängen will. Statt dessen hatte ich überlegt, das Taktsignal zu stabilisieren, bzw. ein separates Taktsignal zu erzeugen, dass aber synchron zum PC laufen muss. Wie macht man sowas? Wäre das ein Anwendungsfall für eine PLL?



Gruß Thorsten


Thorsten Ostermann schrieb:

Wenn es nur Jitter ist: ja, mit entresprechender Zeitkonstante

Ansonsten könnte man, wenn die Phasenlage egal ist, mit einer Abtastrate nachsamplen, die den Jitter eliminiert. Ist der Jitter z.B. +/- 5 usec, wäre eine 100kHz-Abtastung gut. Wenn der jitter jedoch grösser ist, stimmt die diesbezügliche Periode nicht mehr. Da Du uns aber im Unklaren lässt, was der Takt bewirkt und ob er was mit dem seriellen Signal zu tun hat, kann man nicht viel mehr als irgendwas allgemeines dazu sagen.

Gruss Udo

Hallo Thorsten,

Eine PLL ist schon der richtige Ansatz. Aber man muss dabei bedenken, dass bei PC Software ein kumulativer Fehler auftreten kann. Wenn der nichts ausmacht und nur ein wenig Kurzzeit-Jitter ausgeglichen werden soll, macht das nichts. Allerdings muss auch der Datenstrom zum neuen Takt passen ;-)

Gruesse, Joerg http://www.analogconsultants.com

Hallo Udo!

Das verstehe ich nicht so ganz. Wie eleminiert man damit den Jitter?

Das angeschlossene Gerät ist ein Servoverstärker (Umrichter). Das Synchronisationssignal dient dazu, die Takte vom PC und Umrichter zu synchronisieren, damit die Soll- und Istwerte im jeweils richtigen Takt ankommen. Über das Sync-Signal wird letztlich wohl der Stromreglertakt im Umrichter beeinfluss, weswegen dort nur ein sehr kleiner Jitter zulässig ist. Für die Verarbeitung der Daten auf der PC-Seite machen aber ein paar us nichts aus.

Gruß Thorsten

Thorsten Ostermann schrieb:

Hmm..bei genauerem Überlegen produzierst Du damit einen +/10usec-Jitter, den aber genau :-)

Immer noch unklar, wer den Takt nun eigentlich erzeugt und woher die Soll und Istwerte kommen. Ist das Taktsignal das der seriellen Verbindung, also synchone Übetragung oder was? Und dann noch gleichzeitig Servo-Signal? Klingt sehr, sehr exotisch....

Man muss sich das nun irgenwie zusammenreimen wenn man es verstehen will, was da aufgebaut würde. Aber vielleicht hilft es ja bei der Fehleranalyse wenn Du die Zusammenhänge mal für Eingeborene darstellen musst...

Gruss Udo

Hallo Udo!

Die serielle Verbindung läuft mit 20 MHz, der Takt wird in Hardware erzeugt. Das Sync-Signal wird normalerweise von einem dSpace-Board erzeugt (IO-Sync), in meinem Fall aber von einem PC. Der PC schreibt Sollwerte in den Umrichter und bekommt Istwerte zurück. Über das Sync-Signal soll sichergestellt werden, das der Umrichter syncron zur Sollwerterzeugung im PC läuft.

Gruß Thorsten

Hallo Thorsten,

Falls bei einem Ausraster etwas passieren koennte, wuerde ich das nicht mit einem PC machen. Besonders nicht mit einem, der unter Windows laeuft. Wenn es absolut sein musste, haben wir solche Dinge kommerziell mit QNX erledigt.

Gruesse, Joerg http://www.analogconsultants.com

Hallo Joerg!

Von Windows war nie die Rede. Matlab xPC erzeugt ausführbaren Code, der auf einem separaten PC mit Matlab Microkernel ausgeführt wird.

Gruß Thorsten

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required