Forum: Mikrocontroller und Digitale Elektronik Master Slave Prinzip


von Gast (Gast)


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?

von Karl H. (kbuchegg)


Lesenswert?

Gast schrieb:
> Wenn der Master eine Anfrage(Request) startet muss

Müssen tut gar nichts.

> da das Request auf 0
> oder 1 stehen?

Du bist der Programmierer. Dein Wort ist Gesetz. Wenn du das so 
definierst, dann ist das so.

von Gast (Gast)


Lesenswert?

Wie macht man die üblicherweise?

Request = 1 --> eine Antwort vom Slave wird erwartet
Request = 0 --> keine Antwort vom Slave wird erwartet

von Tobias (Gast)


Lesenswert?

Die Schuhe kannst du dir aber alleine binden ?

von Michael U. (amiga)


Lesenswert?

Hallo,

wie würdest Du es im normalen Leben machen?
würdest Du Dir einen Zettel an den Kühlschrank heften: Kartoffeln holen!
oder einen
"Keine Kartoffeln holen!" und den wegnehmen, wenn Du welche brauchst?

Gruß aus Berlin
Michael

von Karl H. (kbuchegg)


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.

von Martin (Gast)


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.

von Gast (Gast)


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?

von Peter (Gast)


Lesenswert?

Ganz bestimmt.

von Gast (Gast)


Lesenswert?

Danke Peter für den Beitrag. Du bist so lieb.

von Karl H. (kbuchegg)


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)

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.