Master Slave Prinzip

Gast #1316513
Lesenswert?

Hi, ich hab für mein Master Slave Verfahren Kommandos difiniert. Zum 
einen gibt es das Feld "Request". Dies kann bei mir 0 oder 1 annehmen.
Wenn der Master eine Anfrage(Request) startet muss da das Request auf 0 
oder 1 stehen? Bzw. Wenn der Slave dann daruafhin antwortet (response) 
wie sieht es da dann aus?
#1316586
Lesenswert?

Gast schrieb:
> Wie macht man die üblicherweise?
>
> Request = 1 --> eine Antwort vom Slave wird erwartet
> Request = 0 --> keine Antwort vom Slave wird erwartet

Kommt darauf an, wie DU die Bedeutung des Bits definierst.
Persönlich würde ich definieren: Egal wer die Anfrage absetzt, er hat 
bei einer Anfrage dieses Bit zu setzen. Ob der Master oder der Slave 
eine Anfrage absetzt spielt keine Rolle.
Gast #1316601
Lesenswert?

> Wie macht man die üblicherweise?
> Request = 1 --> eine Antwort vom Slave wird erwartet
> Request = 0 --> keine Antwort vom Slave wird erwartet

Ich würde das nicht "Request" nennen, sondern "Response required". Dann 
sollte alles klar sein.
Gast #1317046
Lesenswert?

Danke für die zahlreiche Unterstützung.

Nun soll der Master ein Anfrage an den Slave senden.
Dieser soll daraufhin Antworten. Die Antwort enthält Nutzdaten.
Wie müsste dazu das Kommando aussehen?

Beispiel Kommando response:
Datalength IDSend IDRecv Request ....

Hat jemand sowas schonmal für ein Master Slave Prinzip mit Komandos 
umgesetzt?
#1317109
Lesenswert?

Gast schrieb:
> Danke für die zahlreiche Unterstützung.
>
> Nun soll der Master ein Anfrage an den Slave senden.
> Dieser soll daraufhin Antworten. Die Antwort enthält Nutzdaten.
> Wie müsste dazu das Kommando aussehen?
>
> Beispiel Kommando response:
> Datalength IDSend IDRecv Request ....
>
> Hat jemand sowas schonmal für ein Master Slave Prinzip mit Komandos
> umgesetzt?

Denk dir was aus!
Das ist ja gerade das Tolle an der Programnmierung! Du bestimmts was 
Sache ist. Niemand sonst.

Hör auf, sofort alles im Editor reinzuhacken.
Nimm dir Papier und Bleistift und definiere in welcher Reihenfolge 
welche Bytes mit welchem Inhalt von wem zu wem geschickt werden. Achte 
darauf, dass der jeweilige Empfänger immer nur das weiß, was er von der 
Gegenstelle an Bytes bekommt, sprich: ein empfangenes Byte muss das 
weitere auslösen können, falls notwendig.

Spiel das ganze in Gedanken (oder mit Papier und Bleistift) durch

  Der Sender sendet ein Byte: Welche Bits sind gesetzt? Was ist die
  Bedeutung des Bytes?

  Wie reagiert der Empfänger darauf? Was schickt er zurück? Müssen
  mehrere Bytes zurück übertragen werden, wie ist das dann? Sind das
  immer gleich viele oder unterschiedlich viele. Woran kann der neue
  Empfänger (der ursprüngliche Sender) erkennen, welcher Fall vorliegt?
  Muss er das überhaupt wissen oder erwartet er bei einer Antwort immer
  als erstes ein Byte welches ihm angibt wieviele Bytes noch kommen
  werden?

Das ist das Salz in der Suppe der Programmierung. Du bestimmst wie die 
"Welt" funktioniert, nach welchen Regeln gespielt wird. Du bist
für deinen µC Gott! So wie du die "Welt" für richtig befindest, so ist
sie per Definition richtig (Ob deine Definitionen Sinn ergeben steht auf 
einem anderen Blatt. Aber das wirst du merken, wenn deine "Welt" nicht 
funktioniert)

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