Forum: Mikrocontroller und Digitale Elektronik Verschiedene Can Protokolle auf einen Bus


von Max (Gast)


Lesenswert?

Hallo allerseits,

ich habe eine Frage zum Can Bus.
Ist es möglich verschiedene CAN Protokolle auf einen Bus laufen zu 
lassen?
Bzw macht es Sinn?

Vielen Dank,
Max

von A. S. (Gast)


Lesenswert?

Ja. Ob es Sinn macht,hängt von deinen Notwendigkeiten ab. Und irgendwie 
muss doch bei jedem Bus Entscheidungen und Kompromisse machen. Da ist 
Deine Frage isoliert wohl sinnlos.

von Clemens S. (zoggl)


Lesenswert?

Ja.

Aber was hast du vor? Ob da CANopen oder sonst was läuft ist 
unbeteiligten Knoten egal. Du kannst auch extended IDs und kurze 
mischen.

Kein Problem.

Sg

von Helmut -. (dc3yc)


Lesenswert?

Max schrieb:
> Ist es möglich verschiedene CAN Protokolle auf einen Bus laufen zu
> lassen?

Mir ist nur ein Protokoll bekannt und das heißt "CAN". Was verstehst du 
unter "verschiedene Protokolle"? Andere Baudraten? Das geht nicht. 
"CANopen" ist ein höherer Layer. Geht also auch, wenn es keinen Konflikt 
mit irgendwelchen Identifiern gibt.
Deine Frage klingt so ähnlich, wie: "kann ich verschiedene serielle 
Protokolle über eine RS232-Schnittstelle laufen lassen?".

von Marc X. (marc_x)


Lesenswert?

Klar, ist im Automotive Bereich gar nicht unüblich, LKW Steuergeräte 
unterstützen beispielsweise häufig neben J1939 auch UDS.

Und auch bei normalen PKWs ist es nicht unüblich, dass das EOBD 
Protokoll und die „normale“ Diagnode unterschiedliche Protokolle 
verwenden.

Nachdem das ganze aber nicht in Fahrzeugelektronik gepostet wurde, 
solltest du vielleicht ein paar Informationen zusätzlich bereitstellen.

von Heinz (Gast)


Lesenswert?

Ja du kannst verschiedene Protokolle auf dem Bus laufen lassen. Es ist 
im Automobilbereich sogar die Regel.
Die unterschiedlichen Protokolle werden anhand der CAN ID unterschieden.
Es gibt Standards (SAE, ISO), du kannst aber auch ein eigenes Protokoll 
laufen lassen.
Die üblichen Protokolle laufen im OSI Layer 3 bzw 4 eigentlich immer 
nach ähnlichem Schema:
A an B: Ich habe 45 Bytes Daten für dich
B an A: Ok, schicke bitte 16 Byte große Blöcke
A an B: hier die ersten 8
A an B: hier die zweiten 8
B an A: Ok , schicke bitte 16 Byte große Blöcke
usw...

Dazu noch Sequenzzähler, Protokolltimeouts

Wenn du nur Daten hast, die in einem einzelnen CAN Frame passen, 
brauchst du kein Protokoll sondern schickst einfach deine Daten. Üblich 
wäre: zyklisch oder bei Änderung oder auf Anfrage.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

FDCAN und CAN 2.0B Telegramme kann man auf dem CAN Bus gemischt 
übertragen.
Dazu ist es allerdings notwendig, dass sämtliche FDCAN Telegramme bei 
allen Busknoten, die nicht FDCAN Tauglich sind diese mit Hilfe der 
Acceptance Filter Mask ausblenden, ansonsten gehen diese in Error-State.

Empfehlen kann ich diesen Mischbetrieb jedoch nicht, es sollten schon 
alle Teilnehmer FDCAN unterstützen können.

Sollte der CAN Transceiver kein FDCAN unterstützen, so kann man den CAN 
Bus als FDCAN ohne Baudrateswitching betreiben.

Ich bin mir allerdings auch nicht sicher ob diese Antwort dem 
Fragesteller weiter hilft, seine Frage müsste er doch noch etwas 
detaillierter ausführen.

von C.K. (Gast)


Lesenswert?

Ich komme aus der Automobilindustrie.

J1939 und CANopen sollte man jeweils nur exklusiv auf einen Bus nutzen, 
da es die CAN-IDs für das Protokoll nutzt.


Transportprotokolle wie ISO-TO, XCP kann man mischen, da sie mit 
dedizierten CAN-IDs arbeiten.

UDS setzt auf ISO-TP auf.

von Marc X. (marc_x)


Lesenswert?

C.K. schrieb:
> UDS setzt auf ISO-TP auf.

Ja und nein, über ISO-TP kannst du alles mögliche zum Beispiel auch 
KWP2000 übertragen (nicht unüblich), du kannst aber auch UDS und KWP2000 
mit anderen Transport-Protokollen übertragen, VW arbeitet gerne mit dem 
hauseigenen TP2.0. Einige Hersteller mit DoIP auch auf TCP/IP statt CAN.

von 888 (Gast)


Lesenswert?

Helmut -. schrieb:

> Mir ist nur ein Protokoll bekannt und das heißt "CAN". Was verstehst du
> unter "verschiedene Protokolle"?

CAN ist die Hardware-Schicht. Darauf laufen SW-Protokolle, wie UDS, 
DeviceNET etc. Die können auch koexistieren. Genau wie auf Deinem 
Ethernet-Kabel neben "Internet" (dem Protokoll https) auch Mail 
(smpt/pop3), Datentransfer (sftp) und UDP-Streaming parallel laufen 
kann.

> Deine Frage klingt so ähnlich, wie: "kann ich verschiedene serielle
> Protokolle über eine RS232-Schnittstelle laufen lassen?".

RS-232 ist ein schlechtes Beispiel, aber für Ethernet oder LTE würde man 
die Frage klar mit "ja" beantworten. Jedes Datenpaket hat eine 
Kennzeichnung, zu welchem Protokoll es gehört, und nicht relevante 
Pakete werden von den Teilnehmern ignoriert.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

C.K. schrieb:
> J1939 und CANopen sollte man jeweils nur exklusiv auf einen Bus nutzen,
> da es die CAN-IDs für das Protokoll nutzt.

Gerade J1939 und CanOpen sollte man doch auf dem gleichen Bus benutzen 
können. J1939 verwendet extended (29 bit) IDs und CanOpen standard (11 
bit) IDs.

Matthias

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.