Rs 232 Adressierug, beispiel?

Gast #1296508
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
1
isr(UART_Rxc_vec){
2

3
if(received_Byte1 == Adresse_Atmega1)
4
{
5
  PortB = Byte2
6
  ....
7
} else ;
8
}

Über hilfreiche tipps wär ich sehr dankbar

grüsse

macht man das so oder gibt es bessere vorschläge
#1296552
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
Gast #1296578
... 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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.