Forum: Mikrocontroller und Digitale Elektronik Gerüstprotokoll für RS485-bus


von Karl (Gast)


Lesenswert?

Hallo an alle,

ich möchte für ein kleines Projekt eine Kommunikation aufbauen auf dem 
RS485-Bus. Es soll ein Master-Multislaves-Prinzip sein.Die Übertragung 
ist für maxi 10 Teilnehmer ausgedacht und übertragung von 9600 Baud.

hat jemand was ähnliches schon programmiert ? ich würde mich freuen auf 
ein kleines Code  auf dem ich meine Programmierung aufbauen werde.

Danke im voraus.
Karl

von gast (Gast)


Lesenswert?

dazu gibt es fertige sachen im netz
ansonst

[startbyte] [länge] [slaveadresse/geräteadresse] [datenbyte(s)] 
[checksumme]

sowas kann man schnell zusammenfrickeln und läuft ausreichend sicher für 
kleine anwendungen

von Rumpelstilzchen R. (rumpelstilz)


Lesenswert?

Karl schrieb:
> Hallo an alle,
>
> ich möchte für ein kleines Projekt eine Kommunikation aufbauen auf dem
> RS485-Bus. Es soll ein Master-Multislaves-Prinzip sein.Die Übertragung
> ist für maxi 10 Teilnehmer ausgedacht und übertragung von 9600 Baud.
>
> hat jemand was ähnliches schon programmiert ? ich würde mich freuen auf
> ein kleines Code  auf dem ich meine Programmierung aufbauen werde.
>
> Danke im voraus.
> Karl

Such mal nach DMX

bzw -> http://www.digital-enlightenment.de/usbdmx.htm

von Karl (Gast)


Lesenswert?

hi
danke für die ersten hilfestellungen.
aber von wegen fertige sache im Netz , habe ich schon gegooglet und noch 
nichts gesehen.

>Such mal nach DMX

>bzw -> http://www.digital-enlightenment.de/usbdmx.htm

In der Seite, geht es nicht um mein Thema.

ich suche ein kleiner Wind, der mich vorwärts schieben kann. Und ich 
hoffe  ihr könnt mir  das anbieten

thks
Karl

von Rumpelstilzchen R. (rumpelstilz)


Lesenswert?

Ich verstehe zwar nicht warum dich das nicht weiter bringt - aber gut 
ist dann nicht mehr mein Problem.

Nochmals als Tipp: DMX ist RS485

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

>  Gerüstprotokoll für RS485-bus
Es gibt nicht den RS485-Bus  :-/

RS485 ist eine Definition für die physikalische Übertragung von 
einzelnen Bits/Bytes. Wie und welche Daten wann und wozu übertragen 
werden, ist in diesem Standard nicht festgelegt...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Nochmals als Tipp: DMX ist RS485
Es ist eher ein RS422 mit mehreren Empängern.
Denn RS485 zeichnet sich durch die Multimasterfähigkeit aus. Genau das 
gibt es bei DMX aber nicht.

von Zefix (Gast)


Lesenswert?

void sys_protocol_handler(void) {
          unsigned int  tmpgetc;
          unsigned int  tmpstatus;
          unsigned char tmpdata;
   static unsigned char frame_count;

   tmpgetc     = uart_getc();
   tmpdata     = (unsigned char) tmpgetc;
   tmpstatus   = (tmpgetc & 0xFF00);
   if(tmpstatus == UART_NO_DATA) {
      if(ftimer_fidt_elapsed == TRUE) {
         frame_count = 0;
         ftimer_fidt_elapsed = FALSE;
      }
   }
   else {
      ftimer_fidt_reset = TRUE;
      if(frame_count < 5) {
         Frame_RxBuf[frame_count] = tmpdata;
         frame_count++;
      }
      else {
         if(tmpdata == '\n') {
            Frame_RxBuf[frame_count] = tmpdata;
            Frame_RxBuf[frame_count+1] = STRINGEND;
            frame_count = 0;
            fframe_valid = TRUE;
         }
         else {
            frame_count = 0;
         }
      }
   }
}

von Zefix (Gast)


Lesenswert?

ISR(TIMER2_OVF_vect) {
   // Communication Protocol Timer/Counter
   if(ftimer_fidt_reset == TRUE) {
      handler_count = INNER_DEAD_TIME;
      ftimer_fidt_reset = FALSE;
   }
   if(handler_count != 0) {
      handler_count--;
   }
   else {
      ftimer_fidt_elapsed = TRUE;
      handler_count = INNER_DEAD_TIME;
}
   }

von Michael P. (praderbz)


Lesenswert?

Karl schrieb:

> hat jemand was ähnliches schon programmiert ? ich würde mich freuen auf
> ein kleines Code  auf dem ich meine Programmierung aufbauen werde.

Suche mal in der Codesammlung unter "RS485", da habe ich vor längerer 
Zeit etwas eingestellt (Thema "RS485 Funktionen").

Grüße
Michael

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.