PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Anregungen für ein AVR-Projekt



NemesisoD
14.12.2008, 18:39
Hallo zusammen,

ich baue für meinen Roboter ein Kommunikation-Board welches die Kommunikation über mehrere Medien aufnehmen kann.

An dem Board soll eine GPS-Antenne, ein Handy, ein ZigBee-Module und ein RC-Empfänger mit 2 Kanälen.
Zusätzlich soll eine SD-Karte über SPI angeschlossen werden, und ein FTDI für die Kommunikation mit dem PC. Auch CAN-Interface wird über SPI angesprochen.

Ich habe nun zwei Proble
me wo ich über ein paar Anregungen sehr dankbar wäre:
1. Mein Problem ist, dass sowohl die GPS-Antenne als uch das ZigBee-Module und das Handy über RS232 angesteuert werden. Das wären drei UART, hab das ganze bisher aber mit dem ATMEGA 128 geplant, dann müsste ich aber ein Software-UART implementieren, weiß aber nicht wirklich wie die Performance dieser ist.
Oder ist es besser auf einen AVR mit mehr UART umzusteigen?

2. Das Board soll später permanent die GPS-Daten via USB an den PC schicken, und bestimmte Ausschnitte (Geschwindigkeit, Kommpass) über CAN an einen anderen Controller schicken. Ausserdem sollen die Daten auf der SD-Karte zwischengespeichert werden. Gleichzeitig soll es möglich sein über die RC-Fernsteuerung den Roboter zusteuern, oder über ZigBee die Steuerung und/oder Sensorabfragen zuvollziehen.
Meine Befürchtung ist, das diese Datenflut von einem einzigen AVR nicht zubewältigen ist, daher meine überlegung das ganze auf zwei AVRs welche über z.B. I2C wiederum miteinander Sprechen.

Da ich nochnie (es muss ja immer mal das erstemal sein) an die grenzen der AVRs gestoßen bin, wollte ich mir einmal einpaar Meinungen von Leuten einholen, welche vielleicht schonmal vor ähnlichen Problemen standen.

Ich freue mich auf Eure Anregungen.

Gruß
NemesisoD

Besserwessi
14.12.2008, 21:50
Das klingt nicht nach wirklich vielen Aufgaben für den Controller. Die GPS daten sollten eher langsam ankommen (1200 oder 9600 Baud), da ist Software UART eigentlich kein Problem. Die anderen Teile, außer eventuell der USB sind auch eher langsam.
Man wird aber beim Programm schon einiges planen müssen. Das dürfte eine relativ komplizierte strucktur mit recht vielen Interruptroutinen werden.

Da sollte man wohl erst mal mit der Software anfangen und dann sehen ob ein Mega32 reicht, oder man doch den Mega128 braucht. Welcher Programmiersprache ist geplant ?

SprinterSB
14.12.2008, 22:15
Hallo zusammen,

An dem Board soll eine GPS-Antenne, ein Handy, ein ZigBee-Module und ein RC-Empfänger mit 2 Kanälen.
Zusätzlich soll eine SD-Karte über SPI angeschlossen werden, und ein FTDI für die Kommunikation mit dem PC. Auch CAN-Interface wird über SPI angesprochen.

FTDI ist ein Hersteller, der mehr zu bieten hat alsFTDI232 ;-)
Da hat's zB auch USB-ICs, die per 8-Bit parallel angesprochen werden anstatt RS232.



1. Mein Problem ist, dass sowohl die GPS-Antenne als uch das ZigBee-Module und das Handy über RS232 angesteuert werden. Das wären drei UART, hab das ganze bisher aber mit dem ATMEGA 128 geplant, dann müsste ich aber ein Software-UART implementieren, weiß aber nicht wirklich wie die Performance dieser ist.
Oder ist es besser auf einen AVR mit mehr UART umzusteigen?


Vielleicht das einfachste. Für Soft-UART musst du die IRQ-Latenzen klein halten. Also schon mal mit kaskadierenden IRQs anfreunden.



2. Das Board soll später permanent die GPS-Daten via USB an den PC schicken, und bestimmte Ausschnitte (Geschwindigkeit, Kommpass) über CAN an einen anderen Controller schicken. Ausserdem sollen die Daten auf der SD-Karte zwischengespeichert werden. Gleichzeitig soll es möglich sein über die RC-Fernsteuerung den Roboter zusteuern, oder über ZigBee die Steuerung und/oder Sensorabfragen zuvollziehen.
Meine Befürchtung ist, das diese Datenflut von einem einzigen AVR nicht zubewältigen ist, daher meine überlegung das ganze auf zwei AVRs welche über z.B. I2C wiederum miteinander Sprechen.

hmmm... I²C ist ziemlcher Overhead, und die meisten der Sachen (SPI, USRTs) oben kann man gut parallelisieren in Hardware.

Aber ohne genau deine Echtzeitanforderungen zu kennen, kann man nix sagen und bestenfalls in die Kristallkugel starren.

Zudem steht nicht mal da ob des mit avr-gcc (würd ich sagen machbar, wenn man keinen Bock schiesst und GCC etwas kennt) oder BASCOM (würd ich sagen *räusper* schön, daß wir drüber gesprochen haben)...

NemesisoD
15.12.2008, 07:53
Danke für Eure Antworten,

als Programmiersprache ist avr-gcc vorgesehen, die Programmierung ist nicht das Problem, ich habe alle sachen einzeln schon am RN-Control am laufen.
Ich habe in meinen bisherigen Projekten aber noch nicht soviel aufeinmal gemacht.


Da sollte man wohl erst mal mit der Software anfangen und dann sehen ob ein Mega32 reicht, oder man doch den Mega128 braucht.

Also den ATMega128 hatte ich mir deshalb ausgeguckt weil dieser schonmal 2 UART besitzt, dann würde ich nur 1x Software UART benötigen.




FTDI ist ein Hersteller, der mehr zu bieten hat alsFTDI232 Zwinkern
Da hat's zB auch USB-ICs, die per 8-Bit parallel angesprochen werden anstatt RS232.

Ich hatte mir auch schon vorher den FT245RL ausgeguckt gehabt, hab mit Ihm schon sehr gute erfahrung gemacht. Hätte ich vielleicht dazu schreiben sollen, sorry.



Aber ohne genau deine Echtzeitanforderungen zu kennen, kann man nix sagen und bestenfalls in die Kristallkugel starren.

Das Programm sollte natürlich soablaufen, dass man den Roboter ohne große Verzögerungszeit Steuern und Überwachen kann.

Gruß
NemesisoD