Forum: Mikrocontroller und Digitale Elektronik Größenwahnsinniges Atmega Makro- Netzwerk


von Stephan R. (Gast)


Lesenswert?

Moin!

Mein Projekt sieht vor, dass ein Atmega8, nennen wir ihn mal "Master" 
Steuerbefehle an und Rückmeldungen von mehreren weiteren Atmegen (Plural 
von Atmega?) sendet und empfängt.
Was ist da sie schlaueste/ sicherste/ professionellste Art der 
Realisierung?

Meine Vorstellung:
an die UART des Masters kommt nen Mux.

Bin über spannendere Lösung dankbar!

von MitLeser (Gast)


Lesenswert?

am einfachsten irgendein Bus-System, z.Bsp. RS485 -> Fertig!

von gerd (Gast)


Lesenswert?

Schlau wäre es, wenn Senden und Empfangen an und von mehreren Clients 
ein Feature sein soll, nicht auf den UART zusetzen, sondern gleich eine 
busfähige Schnittstelle zu nehmen.

- gerd

von Stephan R. (Gast)


Lesenswert?

Atmegen haben aber ja nur eine UART...

von Max (Gast)


Lesenswert?

TWI, onewire, RS485, CAN, Uart+diode auf ein kabel

von Max (Gast)


Lesenswert?

such dir was aus

von gerd (Gast)


Lesenswert?

SPI/TWI... e.g.?!

- gerd

von Frederik K. (n0ll4k)


Lesenswert?

Bei der Aufgabenbeschreibung würd mir noch LIN einfallen.

von Stephan R. (Gast)


Lesenswert?

Das waren jetzt alle Schnittstellen auf einmal. Welche bietet denn den 
höchsten Bedienkomfort bzw geringsten Programmieraufwand wenn es darum 
geht, Telegramme zu versenden?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Das "beste" wirst du nicht finden.  RS-485 oder LIN gehen sowieso nur
mit externen Bustreibern, CAN im Prinzip auch (wenn du nicht gerade
die CAN-fähigen Controller in Betracht ziehst).  SPI ist Mist, wenn
man einen Controller als Slave hat, da der Slave keine Möglichkeit
hat, dem Master zuzurufen: "Kleinen Moment, bitte!".  TWI hat diese
Möglichkeit, dafür ist es ein passiv gepullter Bus, was die
Störsicherheit ein wenig runterdrückt und vor allem die Datenrate.
Für 1-wire trifft das alles auch noch zu, außerdem gibt's dafür keine
Hardwareunterstützung im Controller.

von Stephan R. (Gast)


Lesenswert?

Prickelnd.
Ich hätte nichts gegen weitere Bustreiber, wie sie für den vielzitierten 
RS485 nötig wären. Doch braucht man für 1 RS485 doch auch 1 UART, oder 
nicht?

von Frederik K. (n0ll4k)


Lesenswert?

Du brauchst für RS485, CAN und LIN einen UART. je nach Geschwindigkeit 
kann man ja auch nen Software UART implementieren.

Ist halt die Frage was die Controller sonst noch so machen sollen.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

yepp

von Albert .. (albert-k)


Lesenswert?

Du kannst antürlich auch UART verwenden und dort ein Softwareprotokoll 
drüberpacken. Ob da aber der Aufwand-Nutzen Faktor gegeben ist bleibt 
offen.

von P. M. (o-o)


Lesenswert?

Benötigte Datenrate?
Anzahl Busteilnehmer?
Zu überbrückende Distanz?
Geforderte Zuverlässigkeit?
Geforderte Latenz?
Wie soll das Übertragungsverhalten aus Sicht der Controller aussehen? 
Senden die z.B. oft und kleine Pakete oder grosse, lange Übertragungen 
oder ...

von Stephan R. (Gast)


Lesenswert?

Es geht nicht um Leben und Tod und auch nicht um explosionsgefährdete 
Bohrplattformen. Und richtig eilig ist das auch nicht.
(Modelluboot)

Datenrate: mittel
Busteilnehmer: ca. 5
Entfernung: max. 1m
Zuverlässigkeit: ahap (auch Egogründe)

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Größenwahnsinniges Atmega Makro- Netzwerk <> Busteilnehmer: ca. 5


;-)

von ich (Gast)


Lesenswert?

Für Modellbau würde ich I2C nehmen. Keine weiteren Komponenten, damit 
klein und billig.

von Vlad T. (vlad_tepesch)


Lesenswert?

ich schrieb:
> <>

du meinst !=   :-P
Ich musste aber auch lachen

von Frederik K. (n0ll4k)


Lesenswert?

Joa das dachte ich mir auch grad ;)

aber da würd ich denke auch zu i2c greifen.

von Martin (Gast)


Lesenswert?

... Datenrate: mittel ...

Da empfehle ich etwas moderates an Silizium einzusetzen.

von Stephan R. (Gast)


Lesenswert?

Hab schon etwas mit IIC- Porterweiterungen gespielt, aber wie läuft denn 
das, einen Atmega als Slave einzusetzen?

von XXX (Gast)


Lesenswert?

Hallo

Vielleicht ist sowas wie Token Ring eine Alternative.
Txd an RXD des nächsten, dann wider TXD davon an RXD des übernächsten
bis der Ring geschlossen ist.

Gruß
JJ

von Stephan R. (Gast)


Lesenswert?

Hört sich gut an. Abei bei Kabelbruch ist Holland in Not!

von Karl H. (kbuchegg)


Lesenswert?

Bei 5 Megas kann man auch die RS232 der einzelnen Teilnehmer noch 
parallel schalten.
Einer hat die Führung. Alle anderen halten die Klappe und reden nur noch 
Aufforderung.
Den einen, der die Führung hat, kann man ja KaLeun nennen.

von XXX (Gast)


Lesenswert?

Hallo

Wenn ein Kabel bricht, ist wahrscheinlich bei jedem Bussystem Holland
mehr oder weniger in Not.

Ich kenne es auch nur, weil ich weiß, das an einem Packet-Radio Knoten
die TNC mit Token Ring verbunden sind. Ist einfach zu realisieren,
jeder kann an jeden senden. Nagut, jeder sieht alles und muß erstmal
schauen, ob es ihn betrifft, oder ob es nur weiterzuleiten ist.

Und ich schätze, das in einem Modell-Uboot nicht wirklich viel zu
tun ist für die ATmegas, die machen das weiterleiten so nebenher.

Gruß
JJ

von Stephan R. (Gast)


Lesenswert?

...auf einem Uboot nicht viel zu tun? Wenn Du wüsstest.
RS232 parallel schalten find ich interessant, ich mag RS232. Aber geht 
das so einfach?

von Stephan R. (Gast)


Lesenswert?

Wie viele Maaten ließen sich denn an einen Kaleun anhängen?

von Karl H. (kbuchegg)


Lesenswert?

Stephan R. schrieb:
> ...auf einem Uboot nicht viel zu tun? Wenn Du wüsstest.

Kann es sein, dass du deine Megas masslos unterschätzt?

> RS232 parallel schalten find ich interessant, ich mag RS232. Aber geht
> das so einfach?

Einfach so parallel geht natürlich nicht.

Das Tx vom KaLeun geht an alle Rx der niederen Ränge.
Die Tx der niederen Ränge gehen über eine UND Schaltung auf das Rx vom 
KaLeun, TTL-RS232 vorausgesetzt. Jeder der anderen muss ja die 
Möglichkeit haben, die Leitung vom Ruhezustand (1) auf 0 runterzuziehen.

Wenn du jedem Teilnehmer einen MAX232 spendierst, dann wird aus dem UND 
ein wired-OR  (Ruhepegel ist ja dann -12V und die Teilnehmer ziehen 
diese beim Senden auf +12V)

Was machen deine Megas eigentlich, dass du gleich 5 Stück dafür 
brauchst?

von Uwe F. (ufe)


Lesenswert?

ich nehme die RS232-Version in der beschriebenen Variante auch für alle 
möglichen Vernetzungen ums Haus. Problem ist aber, dass der Slave nicht 
von sich aus Meldungen an den Master senden kann. Die Pollingrate des 
Masters bestimmt, wie schnell der Slave sein wichtiges Anliegen an den 
Master senden kann. Notlösung wäre eine /INT-Leitung pro Slave zum 
Master.
Da wird es aber schon wieder Fummelei...

Uwe

von Stephan R. (Gast)


Lesenswert?

7 Drucksensore, 12 Temperaturfühler, 6 Magnetventile, 2 Antriebsmotore, 
2 Verbrennungsmotore (mit je 1 Glühkerze, 1 Startermotor, 1 
Kühlwassermotor, 6 Temperaturfühler, 2 Geschwindigkeitsmesser, 1 
Magnetkupplung, 1 DC- Generator), 2 Kompressore, 1 Tiefenpeilsonar, 2 
Distanzsensore, GPS, GSM, LWL, ISM, 4 Akkuüberwachungen, 1 
Raumlufttrockner, 1 Raumluftumwälzung, 1 Kompasssensor, 2 Inklinometer, 
4 Getriebemotore + Lagerückmeldung, 1 Mikrowellensensor, 
Kamerabildübertragung und Speicherung mit einem Atmega?

von Uwe F. (ufe)


Lesenswert?

Im AIRBUS bildet man für sowas verschiedene LAN-Segmente... ;-)

von gerd (Gast)


Lesenswert?

LWL = Lichtwellenleiter? Wenn ja, (nur aus Neugier) was überträgst du 
damit innerhalb des U-Boots?

- gerd

von Stephan R. (Gast)


Lesenswert?

Nix. Wegen der Innerhalbdesbootsübertragung habe ich ja diesen Threat 
gestartet. LWL kommt zum Einsatz, wenn das Böötlein in der salzigen 
Ostsee baden geht, wo Funk nicht tief genug hineinreicht.

von Karl H. (kbuchegg)


Lesenswert?

Bis auf das Kamerabild:

Gähn, und wie verhinderst du dass den Megas langweilig wird?

Ach ich vergass: du vernetzt sie ja. Da können sie ja dann was übers 
Netzwerk spielen :-)

PS: Die schiere Anzahl an Sensoren soll dich nicht beeindrucken. 
Schieberegister als Port-Erweiterungen sind schon erfunden.

Wichtiger als die Anzahl an Sensoren und Aktuatoren ist: wie schauts mit 
dem Timing aus? Ein einzelner Mega kann deine Sensoren mit links ein 
paar tausend mal in der Sekunde abfragen. Und da bleibt dann immer noch 
jede Menge Rechenzeit übrig.


Warum ich das aufs Tapet bringe: Weil die Dinge selten einfacher werden, 
wenn man mehrere Prozessoren auf ein Problem ansetzt. Durch die 
notwenige Kommunikation verkompliziert es sich oft.

von Stephan R. (Gast)


Lesenswert?

Für den Notfall ist die Zolllast immer voller Bier und Kartenspiele 
liegen unterm Bock.
Ich hab mir schon gedacht dass es vielleicht mit weniger Bauteileinsatz 
geht, aber ich finde es aufgeräumter:

In der Mitte die Zentrale, die alles managt; hinten bei den Motoren eine 
eigene Box, in der ein Atmel sich ganz in Ruhe um seine Motore kümmern 
kann...
Das hält - so meine Vorstellung- auch die Programme der jeweiligen 
Atmegas übersichtlicher und ich kann weitgehend auf Porterweiterungen 
verzichten.

von Karl H. (kbuchegg)


Lesenswert?

> 2 Kompressore, 1 Tiefenpeilsonar, 2 Distanzsensore, GPS, GSM, LWL, ISM,

LOL

Da der ex VP so ein VIP ist, sollten wir die PK wegen der PR auf dem WC 
und nicht im TV machen. Dann sagt die MP zum KGB LMAA!

(Good Morning Vietnam)

von Stephan R. (Gast)


Lesenswert?

Ich habe kürzlich von meinem abkackenden Atmega geschrieben, der immer 
dann stehen blieb, wenn am Stecker gewackelt wird. Lieber, nur EIN 
Atmega bleibt stehen.

von Thilo H. (thaala)


Lesenswert?

Hallo,

Habe mich jahrelang mit Feldbus-Systemen beschäftigt.

Bei diesen Anforderungen liegst Du nahe am modernen KFZ.
Ob der AtMega das on Board hat oder nicht - der CAN - Bus ist das 
richtige für deine Wünsche.

Er ist CDMA fähig (daher kann jeder mit jedem...) und hat außerdem Prio 
- Slots, so daß hochpriore Geber eben auch eher Ihre Nachrichten (meist 
kurz) weitergeben können.

jemand anderer Ansicht ?

Gruß,
THaala

von Frank K. (fchk)


Lesenswert?

Stephan R. schrieb:

> Mein Projekt sieht vor, dass ein Atmega8, nennen wir ihn mal "Master"
> Steuerbefehle an und Rückmeldungen von mehreren weiteren Atmegen (Plural
> von Atmega?) sendet und empfängt.
> Was ist da sie schlaueste/ sicherste/ professionellste Art der
> Realisierung?

Schau Dir doch mal an, wie andere das machen: z.B. Automobilindustrie. 
Dort wird für die einfachen und langsamen Geschichten LIN verwendet 
(weil billig), und für die schnellen CAN. Zuverlässig & millionenfach 
erprobt.

Wenn Du was anderes nimmst, musst Du schon verdammt gute Gründe haben.

Ein guter LIN-Slave ist der Tiny167, der ist nämlich für sowas gedacht. 
Für CAN nimmst Du entweder einen 90CANxxx oder einen Mega64C1 oder 
Mega64M1, die letzteren haben auch LIN-Hardware drin. Für CAN und LIN 
brauchst Du immer externe Transceiver-Chips - das hat Fertigungsgründe.

Wenn Du unbedingt DIL-Gehäuse haben willst, schau Dich bei Microchip um 
- die haben in der Richtung mehr Auswahl, und ein dsPIC ist auch nicht 
zu verachten.

fchk

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

yepp

CAN ist wohl der geeignete Bus

zumal das Protokoll die Hierrchishe und die ereignetgesteuerte 
Kkommunikation ermöglicht.


Wird in zwischen auch bei Aufzügen zum Standard.

Und der nur nen paar Dutzend Taster und LED  und eine Handvoll Sensoren 
und Antriebe.

Vorteile: Störstolleranz durch Diffsignalübertragung hohe 
Übertragensrate,
fehlererkennung und effektive Fehlerbearbeitung .....

http://techwww.in.tu-clausthal.de/site/Dokumentation/Standards/CAN-Bus/CAN-Bus.ppt

MfG

von Thomas (Gast)


Lesenswert?

> Für CAN und LIN brauchst Du immer externe Transceiver-Chips

Falsch:
http://www.mikrocontroller.net/attachment/28831/siemens_AP2921.pdf

Ist aber eher was für On-Board-Kommunikation.
Externen Module die Aktoren wie z.B. E-Motoren antreiben würde ich so 
nicht verbinden (-> Masseversatz).

von Stephan R. (Gast)


Lesenswert?

@ Thomas: Masseversatz? Und warum ist CAN etwas für 
On-board-communikation?

Ich habe heute vom CAN-Bus geträumt, und zum Glück gibt es -soweit ich 
weiss- auch einen CANbusfähigen Controller von Atmel.

Kennt sich jemand mit der Materie aus?
Ist das ein reiner CAN-Controller oder ein üblicher, nur mit CAN?

von Ein Gast (Gast)


Lesenswert?

Wenn Geld keine Rolle spielt kannst ein paar AT90CAN einsetzen und eine 
fertige CAN-Bibliothek verwenden. Siehe hier: 
http://www.kreatives-chaos.com/artikel/universelle-can-bibliothek
Da bist halt für Controller + CAN-Bustreiber 10-12€ los aber dafür hast 
ne Kommunikation die sicher funktioniert.

von oversized (Gast)


Lesenswert?

wegen 5 Bausteinen?

"Brain, was machen wir heute?"
"Pinky!, das was wir jeden Abend machen."
"Was denn, Brain?"
"Wir werden versuchen die Weltherrschaft an uns zureißen!"

so viel zu Größenwahnsinn....

von Simon L. (simon_l)


Lesenswert?

Hi,
off topic
@Stephan R. könntest du mir mal bitte eine PM schicken, hätte da ein 
paar Fragen zur restlichen Hardware des Bootes.


on topic
Ich würde dir auch zu CAN raten. Schau mal bei Microchip, die haben 
fertige CAN-Bausteine und Bustreiber. Dann könntest du weiterhin deine 
Mega8 benutzen. So twisted pair kann man auch noch überall durchs Boot 
quetschen.
Bei Microchip findest du sicher auch eine Beschreibung von CAN, über die 
Controller lässt sich ja streiten. Die Dokus von denen finde ich aber 
ziemlich gut. Democode gibts auch ;)

Gruß Simon

von Thomas (Gast)


Lesenswert?

> @ Thomas: Masseversatz?
Ja, Masseversatz.

> Und warum ist CAN etwas für On-board-communikation?
Gemeint ist natürlich nur die verlinkte Lösung ohne Transceiver.

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
Noch kein Account? Hier anmelden.