Forum: Mikrocontroller und Digitale Elektronik Woher genauere CAN Spezifikationen?


von Thomas (kosmos)


Lesenswert?

Kennt jemand eine Quelle für CAN Spezifikationen, die ins eingemachte 
gehen, ich finde im Netz nur sehr allgemeine Angaben die sich eher mit 
dem Aufbau der Nachrichten befassen als mit den Timings die mich eher 
interessieren. z.B. Abtastung bei 3/4 der Bitzeit...

Gerne auch per Mail falls eine Veröffentlich nicht so gern gesehen ist.

von ben (Gast)


Lesenswert?

google: can spezifikation 2.0

erster Link: 
http://www.can-cia.org/fileadmin/cia/specifications/CAN20B.pdf

Seite 34: 10 BIT TIMING REQUIREMENTS

Oder suchst du was anderes?

von Thomas (kosmos)


Lesenswert?

genau dazu wollte ich es etwas genauer haben. Diese 1 Bit Zeit wird ja 
für die zw. 8 und 25 Abschnitte unterteilt(programmiert). Ich frage mich 
wovon ist das abhängig oder wozu wird das benutzt dadurch könnte man ja 
Inkompatibilität erzeugen oder sollen dadurch evtl. Laufzeitanpassungen 
erzeugt werden?

von Achim M. (minifloat)


Lesenswert?

Thomas O. schrieb:
> sollen dadurch evtl. Laufzeitanpassungen
> erzeugt werden?

Exactly.

Der bekannte Microchip-CAN-Controller MCP2515 macht das lt. Datenblatt 
so:

Einteilung einer Bitzeit in "Time Quanta".
Diese Time Quanta werden in mehrere Segmente aufgeteilt, unter anderem

PROPSEG = Propagation segment
Hier ist eine komplette Verzögerungzeit einzurechnen, und zwar von den 
beiden am weitesten voneinander entfernten CAN-Knoten. Es muss ja die 
Arbitrierung funktionieren sowie das zeitlich Korrekte löschen des 
ACK-Bits.

PHSEG1 = Phasensegment 1
Die Zeit vor dem Erfassungspunkt des Pegels des aktuellen Bits

PHSEG2 = Phasensegment 2
Die Zeit nach dem Erfassungspunkt des Pegels des aktuellen Bits

mfg mf

PS: Schau dir das Datenblatt zu dem MCP2515 an. Fast ein 
Musterbeispiel...
Bei Softing gibts auch viel Info:
www.softing.com/home/en/industrial-automation/products/can-bus/more-can- 
bus/data-frame/control-field.php

von Thomas (kosmos)


Lesenswert?

danke für den Link da werde ich mich mal einlesen und das genannte 
Datenblatt auch mal durchmachen.

Aber noch schnell eine Frage vielleicht hat das jemand im Kopf, wenn ein 
CAN Teilnehmer aus der Arbitrierung raus fliegt weil eine andere 
Nachricht höher priorisiert ist, wie lange wartet er dann bis ein neuer 
Sendeversuch erfolgt.

von holger (Gast)


Lesenswert?

>Aber noch schnell eine Frage vielleicht hat das jemand im Kopf, wenn ein
>CAN Teilnehmer aus der Arbitrierung raus fliegt weil eine andere
>Nachricht höher priorisiert ist, wie lange wartet er dann bis ein neuer
>Sendeversuch erfolgt.

Er wartet nicht und versucht es sofort noch einmal.

von Bernhard S. (b_spitzer)


Lesenswert?

Er wartet das Ende der vorigen Message ab und dann noch die Intermission 
Time von 3 Bitzeiten. Dann geht das Gerangel um die niedrigste ID wieder 
los.

von Achim M. (minifloat)


Lesenswert?

Bernhard Spitzer schrieb:
> und dann noch die Intermission
> Time von 3 Bitzeiten

Manche älteren Controller kann man noch mit einem "Arbitrierungstrick" 
in die Irre führen. Das Netz scheint nur die wichtigsten IDs überhaupt 
zu transferieren.

Bei neueren Controllern kann man deswegen die Intermissionszeit 
niedriger als 3 Bitzeiten einstellen.
Entweder bei allen Controllern gleich oder --- lass es einfach.

mfg mf

von Anja (Gast)


Lesenswert?

Thomas O. schrieb:
> Ich frage mich
> wovon ist das abhängig oder wozu wird das benutzt dadurch könnte man ja
> Inkompatibilität erzeugen oder sollen dadurch evtl. Laufzeitanpassungen
> erzeugt werden?

Normalerweise wird das Bit-Timing auf die Kabellänge des Systems 
angepaßt.
Alle Busteilnehmer sollten ein ähnliches Bittiming haben.
Im PKW legt man den Sample-Point eher nach "spät". (75-85%)

Gruß Anja

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.