mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Data Link Protokoll für SPI


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Stephan R. (rabbe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich möchte gerne Befehle und Daten (z.B. per SPI) an meinen 
Mikrocontroller senden.

Die Nachricht sollte folgende Bestandteile beinhalten:
- Befehl mit ca. 16Bit Länge
- Checksumme
- Datenlänge von Payload (0 bis N bit)
- Payload (kann auch leer sein, meistens 32bit, selten länger)

Gibt es schon Protokolle für diesen Anwendungszweck?
Ich würde gerne vermeiden, das tausendste Protokoll für Kommunikation 
mit einem uC zu entwickeln :)

EDIT:
Ich hab gerade ROSserial entdeckt:
http://wiki.ros.org/rosserial
Was haltet ihr davon?


Danke schon mal :)

: Bearbeitet durch User
Autor: Flaschen Zähler (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Nun, das Protokol wird duch sein Anforderungen bestimmt.

Variable Laenge, heisst ein Laengenfeld
Also etwas wie :

Header, Laenge, Command, Payload, Checksum

Mach's einfach.

Autor: Torsten C. (torsten_c) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stephan R. schrieb:
> Ich würde gerne vermeiden, das tausendste Protokoll für Kommunikation
> mit einem uC zu entwickeln

Ich bin total bei Dir, aber ich befürchte inzwischen, das hat keinen 
Zweck, weil die die ISO/OSI-Layer bei vielen Protokollen nach dem Motto 
"Mach's einfach" nicht sauber getrennt sind.

Stephan R. schrieb:
> Ich hab gerade ROSserial entdeckt: … Was haltet ihr davon?

Ich sehe da gerade "1st Byte - Sync Flag (Value: 0xff)".

"Sync" ist Schicht 1, oder?

Stephan R. schrieb:
> Checksumme

Die Checksumme ist Schicht 2, oder?

Siehe:
https://de.wikipedia.org/wiki/OSI-Modell#Schicht_2_%E2%80%93_Sicherungsschicht_(Data_Link_Layer)

Autor: Stephan R. (rabbe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten :-)

Flaschen Zähler schrieb:
> Nun, das Protokol wird duch sein Anforderungen bestimmt.

Ja schon, jedoch hatte ich mir gedacht, dass diese Anforderungen so 
trivial sind, sodass sich hierfür schon jemand Gedanken gemacht hat.

Torsten C. schrieb:
> Ich sehe da gerade "1st Byte - Sync Flag (Value: 0xff)".
>
> "Sync" ist Schicht 1, oder?
>
> Stephan R. schrieb:
>> Checksumme
>
> Die Checksumme ist Schicht 2, oder?

Die Checksumme sollte in Schicht 2 sein. Die Sync Flag haben die 
vermutliche in das Protokoll reingeschrieben, da es eventuell nicht 
jeder Physical Layer gewährleistet?
Kann das in meinen Fall zu einem Problem führen oder ist das nur wegen 
der Kosmetik?

Autor: Flaschen Zähler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ein triviales Protokoll laeuft nicht unter das Rad neu erfinden, 
sondern unter eine loesung anwenden.
Das Layer Zeugs kann man auch gleich vergessen, solange man nichts 
Komplizierteres macht. zB ein Protkoll in ein Anderes einpackt, routet 
oder so.

Autor: Torsten C. (torsten_c) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stephan R. schrieb:
> Die Sync Flag haben die vermutliche in das Protokoll reingeschrieben,
> da es eventuell nicht jeder Physical Layer gewährleistet?

Beim SPI ist der Sync über die CSN-Leitung gegeben.
Welcher andere Physical Layer denn?

Für ein Protokoll per UART z.B. bräuchte man ein Sync.

Ich denke gerade mal laut, denn ich brauche ein Gateway/Router von 
USB-UART (FTDI/CH340/…) auf verschiedene Busse (SPI, SMBus, ...).

Jetzt könnte man bis "ganz nach oben" gehen und das Internet-Protokoll 
per SLIP verwenden.

Aber das Mapping von IP-Adressen auf SMBus-Adressen oder CSN-Leitungen 
für SPI wäre auch wieder proprietär.

Oder ein Layer darunter: MAC-Adressen auf SMBus-Adressen oder 
CSN-Leitungen mappen. Auch das wäre proprietär.

Das^^ macht alles wenig Sinn und ist nur Brainstorming.

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.

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