PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Layoutfrage: Wie würdet Ihr die Daten übertragen? 2xUART?



batti112
04.05.2005, 16:38
Hi!

Als erstes möchte ich mich für den miesen Titel entschuldigen,
mit fiel keine kurze Lösung ein.

Nun zu meinen Problem:

Ich habe eine GB-Cam die per I2C von einem µC ausgelesen wird (I2C AD-Wandler + Porterweiterung).
Ein Auslesevorgang dauert auf Grund dieser Konstruktion sehr lange ( > 5sek.).
Momentan übernimmt der "zentrale µC" der mit dem PC per UART kommuniziert diese Aufgabe.
Zwecks Übertragungssicherheit habe ich den mit 7,37 Mhz getaktet (was natürlich nocheinmal zu einer langsameren Ausleserate führt).
Da dieser µC auch noch meine 2 Schrittmotoren ansteuert, ist ein gleichzeitiges Fahren + Kamerabilder empfangen nicht möglich.
Dies kann ich noch akzeptieren, allerdings kann ich nach einer Bildanforderung >5sek keine Steuerbefehle an den Roboter senden.

Wie würdet ihr das ganze lösen?

Eine höhere Taktung dieses µC würde das Auslesen beschleunigen, aber das Problem bestünde noch immer.

Ein 2. µC der die Kamera ansteuert müsste über genügend Speicher verfügen, damit er das komplette Bild cachen könnte, um es dann in einem Schritt (schnell) zu übertragen.
Denn eine teilweise Übertragung würde ja auch wieder das Steuerverhalten beeinträchtigen.
Ich nutze µC von Atmel, und da gibt es leider keinen µC der über genügend Speicher verfügt.
Die Ansteuerung eines externen RAM's traue ich mir nicht zu (schien mir immer recht kompliziert).

Wenn ich der Kamera ein 2. UART spendieren würde, könnte ich über eine 2. Schnittstelle parallel die Bilddaten empfangen, allerdings bräuchte ich auf die Dauer ein 2. Funkmodem, oder gleich nen eigenen Rechner auf dem Robby.

Mir ist keine elegante Lösung dieses Problems eingefallen, hoffe ihr habt eine...

mfG
Batti

PicNick
04.05.2005, 16:51
Wenn ich dich verstehe, ist der uC während der Bildübertragung taub ?
Und auch für die Stepper hat er wenig Zeit ?

batti112
04.05.2005, 16:58
Wärend der µC das Bild ausliest, und es sendet, kann er keine weiteren Befehle ausführen.
Es geht lediglich um eine Konstruktionsfrage.

PicNick
04.05.2005, 17:08
Na ja, I2C (Hardware) und UART (Hardware) haben doch in sich einige Pausen, die man ausnutzen kann.
Ich würde die ganzen Funktionen so verschränken, daß für alle was bleibt.
Aber was zu tun ist, ist zu tun, klaro.
Den Datenstream mit dem PC würd ich in Chunks aufteilen, damit man andere Messages dazwischen reinquetschen kann.

Mit einem zweiten uC kannst du natürlich auslagern, auch klar.

pebisoft
04.05.2005, 19:31
hallo batti112 wie hast du deinen i2c-auslesevorgang realisiert.
speicherst du die 16kbyte irgenwo zwischen und wo.
oder gehen die gleich zur auswertung. hast du es schon geschafft, die bilder auf dem pc sichtbar zu machen. ich komme zur zeit mit der gb nicht.
mfg pebisoft

batti112
04.05.2005, 21:05
Hi pebisoft.
Momentan sende ich die Bilder direkt an den Pc, dort werden sie zwischengespeichert, und dann an einen Clienten gesendet (per tcp) der sie anzeigt.

mfG
Batti