Hallo, ich frag mich grad ob es eine einfache Möglichkeit gibt ein digitales Videosignal, seriell mit ca. 35 MB/s zu digitalisieren. Das Signal versorgt eigentlich einen TFT und ich würde es gern abzweigen, digitalisieren und über einen kleine Webserver zugänglich machen. Die 35MB/s sind ganz schön viel, allerdings brauch ich nicht 60 Bilder pro Sekunde man könnte das Signal also stak unterabtasten, 1 Bild pro Sekunde wär schon super, sogar 0.1 Bild/s wär OK. Damit käme man so langsam in Bereich in dem auch ein kleiner 8bit µC die Daten verarbeiten könnte nur wie könnte man die Abtastung realisieren? Das genau Format des Signal weiß ich noch nicht, aber das kann man rausbekommen. Was die physikalische Übertragung des Signals angeht its auch nicht ganz einfach, das Signal wird mittels ethernet transformer eine eine twisted pair Leitung übertragen, die müsste ich belauschen. Was fällt euch dazu so ein? Grüße flo
>Was fällt euch dazu so ein?
Kauf dir ne Webcam. Kostet doch nix mehr.
Da es bereits ein digitales Signal ist, muss es natürlich nicht mehr digitalisiert werden. Das vereinfacht die Angelegenheit. Üblicherweise gibt es ein Bündel Datenleitungen, und drei Taktsignale, einen Pixel-, einen Zeilen- und einen Bildtakt. Mit einem Zähler, einem Binärkomparator und einem Latch kannst Du Dir eine Vorrichtung bauen, mit der Du den Wert jedes beliebigen Pixels bestimmen kannst. Der Zähler zählt den Pixeltakt und wird mit dem Bildtakt zurückgesetzt, der zu erwartende Zählbereich wird irgendwo jenseits der 640x480 liegen, 19 Bit sollten genügen. Der Komparator vergleicht den Zählerstand mit einem von Deinem µC angelegten Wert, der die gewünschte Pixelposition angibt. Sind beide Werte gleich, wird mit dem Vergleichssignal ein Latch angesteuert, das den Wert der zum Display führenden Datenleitungen abgreift und Deinem µC zur Verfügung stellt. Bei einem Pixeltakt von 35 MHz ist das mit etwas Geschick noch "diskret" mit einer Handvoll 74xx-Bausteine konstruierbar, besser ist natürlich ein FPGA oder CPLD. Statt eines Zählers, der alle Pixel des Bildes durchzählt, kannst Du natürlich auch zwei Zähler (und Komparatorstufen) verwenden, die zeilenweise arbeiten. Das reduziert die Größe des Zählumfanges, der "suche ein Pixel in einer Zeile"-Zähler braucht nur 10 Bit (640 < 1024) und der "suche eine Zeile"-Zähler braucht sogar nur 9 Bit (480 < 512).
Hallo Rufus > Üblicherweise gibt es ein Bündel Datenleitungen, und drei Taktsignale, > einen Pixel-, einen Zeilen- und einen Bildtakt. Ja, in meinem Fall leider nicht. Ich hab einen einzigen seriellen Bitstrom, keine Takt- oder sonstigen Steuersignale. Und ich weiß zwar was übertragen wird (steht im Datenblatt des Grafikprozessors) ich weiß aber gar nicht wie (fällt mir gerade auf). Das erledigt nämlich ein GAL und was da drin ist weiß ich nicht. > Mit einem Zähler, einem Binärkomparator und einem Latch kannst Du Dir > eine Vorrichtung bauen, mit der Du den Wert jedes beliebigen Pixels > bestimmen kannst. > > Der Zähler zählt den Pixeltakt und wird mit dem Bildtakt zurückgesetzt, > der zu erwartende Zählbereich wird irgendwo jenseits der 640x480 liegen, > 19 Bit sollten genügen. Das Prinzip klingt einfach. Ich müsste eben noch den Takt aus dem Signal gewinnen. > Bei einem Pixeltakt von 35 MHz ist das mit etwas Geschick noch "diskret" > mit einer Handvoll 74xx-Bausteine konstruierbar, besser ist natürlich > ein FPGA oder CPLD. Tja, das hätt ich mir gern gespart, allerdings wärs eh Zeit sich mal mit FPGA zu beschäftigen. @holger > Kauf dir ne Webcam. Hmm, ja das stimmt schon, nur ist das nicht gerade praktisch, es behindert die direkte Sicht auf den Monitor und ist störanfällig. Grüße Florian
Florian Rist schrieb: >> Üblicherweise gibt es ein Bündel Datenleitungen, und drei Taktsignale, >> einen Pixel-, einen Zeilen- und einen Bildtakt. > > Ja, in meinem Fall leider nicht. Ich hab einen einzigen seriellen > Bitstrom, keine Takt- oder sonstigen Steuersignale. Was soll denn das für ein Display sein?
Hallo Rufus
> Was soll denn das für ein Display sein?
Ist ein Display an einem Industrieroboter von Kuka - nur zwei Drähte,
über diese Ethernet Transformatoren galvanisch getrennt.
Flo
Tja, da wirst Du wohl erst mal herausfinden müssen, was da für ein Zweidrahtprotokoll verwendet wird. Ist denn überhaupt sichergestellt, daß das die gesamte Videoinformation ist, oder könnte es sein, daß das Display über "Eigenintelligenz" verfügt und ihm über die Zweidrahtschnittstelle nur mitgeteilt wird, was es darstellen soll?
Hallo also, ich hab die Signalquelle nochmal unter die Lupe genommen: Es wird ein Fast Ethernet Transceiver ML6671CQ und ein Ethernet Transformator verwendet. Zum Protokoll weiß ich immer noch nix, nur, dass die seriellen Daten für den Ethernet Tranciever von einem AM7968 (Transparent Asynchronous Xmitter-Receiver Interface) erzeugt werden. Und diese wiederum bekommt seine Daten aus einem programmierten GAL mit unbekanntem Programm, das sich die Pixel-Daten (3x 6bit oder so) und den Pixel-Takt parallel vom Grafikprozessor holt. Zwischen GAL und GCPU hängen noch ein paar FlipFlops (F574 von Texas Instruments). Scheint so, als würden die Pixel-Daten puffern und wohl dem GAL I/O Pins sparen. Tja. Und nun? Ich müsste wohl im Prinzip die Kette aus Ethernet Transformer, Ethernet Transceiver und Receiver Interface nachbauen. Dann könnte man versuchen die Zähler/Latch Idee umzusetzen und schön langsam immer mal einen Pixel zu lesen. Eine ganz andere Möglichkeit wäre ein ganz normales analoges VGA Signal zu digitalisieren, das gäb's auch noch und es zeigt das gleiche Bild. Das scheint mir jetzt fast einfacher, oder? Grüße Flo
frist schrieb: > Eine ganz andere Möglichkeit wäre ein ganz normales analoges VGA Signal > zu digitalisieren, das gäb's auch noch und es zeigt das gleiche Bild. > Das scheint mir jetzt fast einfacher, oder? Eindeutig, ein AVR ist da aber überfordert. Wenn dein "Webserver" ein PC ist einfach eine billige Videokarte von 321 oder so nehmen.
Hallo > Eindeutig, ein AVR ist da aber überfordert. Könnte sein.... > Wenn dein "Webserver" ein PC ist einfach eine billige > Videokarte von 321 oder so nehmen. Hmm, ich hätte gern eine kleine Lösung, zum dazwischen stecken, die wenig Strom braucht, so dass man sie aus dem vorhandenen 24V speisen kann. Was schon eher was ist sind diese VGA to Ethernet Boxen: http://www.epiphan.com/products/frame-grabbers/vga2ethernet/ (>1000 EUR) Oder die billig Version von ebay: 320720903625 (100 EUR) Grüße Florian
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.