Atmels, welchen Bus nehmen ?

Gast #1854241
Lesenswert?

Hallo,
ich habe vor ein kleines netzwerk von Microcontroller aufzubauen und 
würde gerne wissen was für ein "Bus" ich nehmen soll.

DIe vorstellung:

mehrere Controller (Atmega, ATTiny) sollen über ?2? leitungen verbunden 
werden.
Zusätzlich möchte ich eine Schnittstelle RS232 für den 
Computeranbringen.

Die Controller sollen sich über ein Protokoll unterhalten was zb so 
aussehen wird

!MC1 Schalter S4 ist gedrück!
!MC4 A5 wird geschaltet!
!MC4 A5 ist geschaltet!

Als erstes kommt der Controller name in diesem Fall MC und die nummer 
welcher gemeint wird. Danach kommt der Befehl was er macht bzw gemacht 
hat.

Das Ganze möchte ich dann über Hyperterm am PC Anzeigen lassen was die 
Controller untereinander so Quatschen.

Die ! zeigen eine Befehlskette an. also das zwischen den ! etwas an 
daten geliefert wird.

Die MCs sollen im Auto verbaut werden, und vielleicht kommen da Strecken 
von bis zu 5 Meter zusammen. (evt auch in anderen Projekten dann noch 
mehr Meter)

Worüber mache ich die Kommunikation dann am besten ? RS232 RS486 RS422 
oder oder oder

Gruss Marc
Gast #1854283
Lesenswert?

>Beitrag "I2C vs. RS232"

Als Master würde ich einen ATmega mit zwei UARTs nehmen; (der/die/das) 
eine für den internen Bus, die andere für die PC-Kommunikation.

Den internen Bus würde ich - wie geschrieben - mit CAN-Bus-Treibern 
aufbauen. Das interne Busprotokoll aber nicht mit so 'geschwätzigen' 
Befehlen wie !MC4 sondern mit einer binären Adresse und einem binär 
codierten Befehl; meinetwegen '1', '2', '3', ... falls man das irgendwie 
mitlesen wollte.

Die internen Slaves könnten ATmega48 oder größer sein.
Moderator (Firma: Titel) Persönliche Seite #1854285
Lesenswert?

> Die Controller sollen sich über ein Protokoll unterhalten was zb so
> aussehen wird
> !MC1 Schalter S4 ist gedrück!
> !MC4 A5 wird geschaltet!
> !MC4 A5 ist geschaltet!
>
> Als erstes kommt der Controller name in diesem Fall MC und die nummer
> welcher gemeint wird. Danach kommt der Befehl was er macht bzw gemacht
> hat.
>
> Das Ganze möchte ich dann über Hyperterm am PC Anzeigen lassen was die
> Controller untereinander so Quatschen.
Das ist ja ein haarsträubendes Vorhaben...
Wieso sollen die Controller sich untereinander in einer "Fremdsprache" 
unterhalten, nur damit du es mitlesen kannst? Controller verstehen 
sich viel besser auf eine binäre Sprache als auf das ASCII-Zeugs, das 
du lesen kannst. Überleg dir das Konzept besser nochmal...

> Die ! zeigen eine Befehlskette an. also das zwischen den ! etwas an
> daten geliefert wird.
Schon das ist ungeschickt. Wenn du mit einem Terminal was mitlesen 
möchtest, wäre ein CR+LF am Ende wesentlich sinnvoller als die 
Ausrufezeichen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren