www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Rs 232 Adressierug, beispiel?


Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich habe vor bis zu 5 Atmegas über einen bus-wandler (RS485) miteinander 
zu verbinden. die 5 atmegas sind reine empfänger und werden vom PC aus 
angesteuert.
Nun stehe ich da und frag mich wie man die verschiedenen Atmegas 
ansprechen kann. Das Protokoll würde so aussehen

Adresse, Länge, Daten, Checksumme

Nun frag ih mich wie man es mit der Adressierung am besten macht? 
Erstmal die ganzen Frame in einen puffer laden und dann die Adresse 
abfragen oder schon vorher beim empfang der bytes die adresse abfragen 
in der art

isr(UART_Rxc_vec){

if(received_Byte1 == Adresse_Atmega1)
{
  PortB = Byte2
  ....
} else ;
}

Über hilfreiche tipps wär ich sehr dankbar

grüsse

macht man das so oder gibt es bessere vorschläge

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tobias schrieb:
> Adresse, Länge, Daten, Checksumme

Das ist nicht so der Brüller.
Ein Protokoll sollte sich nach Störungen wieder synchronisieren können.
Besser daher:

Startbyte, Länge, Adresse, Daten

Zur Synchronisation werden dann Dummybytes gesendet, die nicht das 
Startbyte enthalten, für die maximale Länge (max 8 Datenbytes reicht 
oftmals).

Man sollte einen Puffer anlegen, der mindestens 1,5 .. 2 Pakete fassen 
kann.
Ist ein Paket komplett, wird es ausgewertet oder verworfen, wenn falsche 
Adresse.


Peter

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... oder einfach

Startbyte, Adresse, Daten

Wert des Startbytes solle weder in Adresse oder Daten vorkommen!
zb. ASCII Übertragung, ohne eine Null in den Daten (kommt so wie
so nicht vor) und ohne Adresse = 0.

Z8

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.