CAN-Bus Bitrate ermitteln/messen

OP #4232747
Lesenswert?

Hallo zusammen,

für ein neues Projekt muss ich an einem Kfz die Geschwindigkeit des 
Innenraum-CAN-Bus haben. Gibt es eine Möglichkeit das direkt auf den 
CAN_H und CAN_L Leitungen zu messen? Oder weiß zufällig jemand welche 
Bitrate Mercedes für den Low-Speed CAN Bus (CAN B) im Innenraum 
verwendet?

Eine weitere Frage wäre, ob es andere Low-Speed Transceiver für den 
Low-Speed (Fault Tolerant Bus) als den TJA1054 (bzw. 1053) gibt? Habe 
nur den bis jetzt gefunden.

Vielen dank schon mal

Jan
Gast #4232755
Lesenswert?

Jan W. schrieb:
> für ein neues Projekt muss ich an einem Kfz die Geschwindigkeit des
> Innenraum-CAN-Bus haben. Gibt es eine Möglichkeit das direkt auf den
> CAN_H und CAN_L Leitungen zu messen? Oder weiß zufällig jemand welche
> Bitrate Mercedes für den Low-Speed CAN Bus (CAN B) im Innenraum
> verwendet?

Try and Error wäre möglich.

Du könntest den Controller auf Listen only (Error Passive) einstellen, 
und eben die üblichen verdächtigen Bitraten durchgehen. Filter offen 
lassen, wenn du was kriegst, hast du die richtige Rate gefunden.
Gast #4232771
Lesenswert?

Jan W. schrieb:
> für ein neues Projekt muss ich an einem Kfz die Geschwindigkeit des
> Innenraum-CAN-Bus haben. Gibt es eine Möglichkeit das direkt auf den
> CAN_H und CAN_L Leitungen zu messen? Oder weiß zufällig jemand welche
> Bitrate Mercedes für den Low-Speed CAN Bus (CAN B) im Innenraum
> verwendet?

125 kBit/s

Jan W. schrieb:
> Eine weitere Frage wäre, ob es andere Low-Speed Transceiver für den
> Low-Speed (Fault Tolerant Bus) als den TJA1054 (bzw. 1053) gibt? Habe
> nur den bis jetzt gefunden.

TJA1055
AMIS-41683
AMIS-41682
MAX3054
MAX3055
MAX3056
LT1796

(Dir ist schon klar, dass ein Fault Tolerant High-Speed Transceiver 
natürlich auch für Low-Speed geht oder ?)
OP #4232772
Lesenswert?

Ja das wäre möglich, Problem ist nur dass ich bis jetzt nur High-Speed 
Transceiver hier habe zum testen, die Kommunikation läuft auch 
wunderbar, also Hard und Software funktionieren (Einmal ein STM32 mit 
SN650VD.... als Sender und ein ATMEGA mit MCP2551/TJA1050 als Empfänger.

Oder kann ich mit dem Highspeed Transceiver am Lowspeed Bus hängen und 
mitlauschen? Da werden ja unterschiedliche Pegel für Dominant/Rezessiv 
verwendet.
OP #4232798
Lesenswert?

Ja weiß ich, der SN65.... ist ja ein 3V3 Typ, auf dem 
Steckbrett/Basteltisch läuft ja auch alles.


Jan W. schrieb:
> Peter D schrieb:
>> (Dir ist schon klar, dass ein Fault Tolerant High-Speed Transceiver
>> natürlich auch für Low-Speed geht oder ?)
>
> Nein, aber vielen Dank für den hinweiß und die Bitrate.

Und das obwohl HS und LS mit verschiedenen Pegeln arbeiten?
Gast #4232844
Lesenswert?

Peter D schrieb:
> (Dir ist schon klar, dass ein Fault Tolerant High-Speed Transceiver
> natürlich auch für Low-Speed geht oder ?)

Bist Du Dir da sicher?
Wikipedia sagt z.B. "Die beiden gängigsten Realisierungen der 
physikalischen Schichten nach ISO 11898-2 (Highspeed-CAN) und ISO 
11898-3 (Lowspeed-CAN) unterscheiden sich außer in der Datenrate in 
weiteren Eigenschaften und sind deshalb nicht zueinander kompatibel."


Für die ursprügliche Frage nach der Geschwindigkeit: einfach mal mit dem 
Oszi nachmessen. Man sieht die Bits recht deutlich und kann dann die 
Länge vermessen. Nebenbei sieht man dann auch ob es wirklich ein 
Low-Speed CAN ist oder vielleicht doch ein langsamer High-Speed...
Gast #4232855
Lesenswert?

mh schrieb:
> Für die ursprügliche Frage nach der Geschwindigkeit: einfach mal mit dem
> Oszi nachmessen. Man sieht die Bits recht deutlich und kann dann die
> Länge vermessen. Nebenbei sieht man dann auch ob es wirklich ein
> Low-Speed CAN ist oder vielleicht doch ein langsamer High-Speed...

Das wollte ich auch gerade sagen. Oszi ran und die kürzesten Pulse 
messen. Das ergibt dann die Bitrate.
OP #4233660
Lesenswert?

So, habe eben mal mit den üblichen Bitraten (125,100,50,20 und 10 
kbit/s) im Liste-Only Modus am CAN-Bus gelauscht, aber es wurde nichts 
empfangen, rein gar nichts.

Habe mit dem STM32 mal verschiedene Standard und Extended Data Frames 
gesendet, die werden alle Empfangen, auch bei verschiedenen Bitraten, 
also Hard- und Software funktionieren. Auch verschiedenste IDs wurden 
empfangen.

Dann scheint also der Highspeed-Transceiver nicht mit dem Lowspeed-Bus 
zusammen spielen zu wollen. Schade, dann muss ich erst mal kaufen und 
basteln.

Oder kann es noch andere Gründen geben warum das nicht funktioniert? 
Wenn dann ja noch eine falsche Bitrate oder?


Jan
Gast #4233668
Lesenswert?

Jan W. schrieb:
> Oder kann es noch andere Gründen geben warum das nicht funktioniert?
> Wenn dann ja noch eine falsche Bitrate oder?

Versuchs mal mit 83,33 kBit/s (kein Witz!). Die arbeiten mit krummen 
Bitraten, keine Standard-Geschwindigkeiten.
Müßtest du aber auch mit dem Oszi messen können.
OP #4233701
Lesenswert?

Nop, 83,33kbit/s geht auch nicht, aber komme bei dieser Bitrate auf eine 
Fehlerquote von 0,4%, aber müsste ja noch ok sein oder?

Werde am Wochenende mal mit nem Oszi messen.

Dann einfach den kürzesten Impuls nehmen und mit F=1/T die Frequenz 
errechnen und frequenz=bitrate? oder wie rechne ich das

Jan
Gast #4233732
Lesenswert?

Jan W. schrieb:
> Nop, 83,33kbit/s geht auch nicht, aber komme bei dieser Bitrate
> auf eine
> Fehlerquote von 0,4%, aber müsste ja noch ok sein oder?
Ja.
>
> Werde am Wochenende mal mit nem Oszi messen.
>
> Dann einfach den kürzesten Impuls nehmen und mit F=1/T die Frequenz
> errechnen und frequenz=bitrate? oder wie rechne ich das
Genau so.
>
> Jan
Gast #4233750
Lesenswert?

Nein, HS- und FT-CAN sind elektrisch nicht kompatibel. Zum Gucken kannst 
Du CAN_L über einen Spannungsteiler oder Schutzwiderstand direkt an 
CAN_RX Deines Controllers anschliessen. Da liegen bei High (rezessiv) ca 
5 V und bei low (dominant) 1-2 V an. Damit kommen die meisten 
CMOS-Eingänge klar. Für einen 3,3V-Controller muss das Ganze natürlich 
2/3 runtergeteilt werden.

Das Du mit dieser Lösung nicht in Serie gehst versteht sich von selbst 
;-)


TJA1054 könnte ich Dir zuschicken, die wollen aber VDD = 5 V sehen.
Gast #4233765
Lesenswert?

Jan W. schrieb:
> Dann einfach den kürzesten Impuls nehmen und mit F=1/T die Frequenz
> errechnen und frequenz=bitrate? oder wie rechne ich das

Du meinst wahrscheinlich das Richtige. Allerdings ist hier T 
(Periodendauer) und Frequenz irreführend, da diese ja "ganze 
Schwingungen" betreffen...
Ein Bit ist dagegen ja nur ein "Pegel" des Signals und nicht eine 
Schwingung.

Such einfach die kürzeste Zeit zwischen zwei Flanken, der Kehrwert davon 
ist dann die Bitrate.
OP #4233772
Lesenswert?

soul e. schrieb:
> Das Du mit dieser Lösung nicht in Serie gehst versteht sich von selbst
> ;-)
>
> TJA1054 könnte ich Dir zuschicken, die wollen aber VDD = 5 V sehen.

Versteht sich von selbst  :-) aber zum testesn klingt das ja ganz gut, 
den TJA1054 gibt es ja nur in SOP-Package oder? Was willst denn haben? 
Versand? Zahlweise?

Mein System läuft eh mit 5V, reichen die 5V auch für Vbatt des TJA?



mh schrieb:
> Such einfach die kürzeste Zeit zwischen zwei Flanken, der Kehrwert davon
> ist dann die Bitrate.

Zwischen zwei gleichen Flanken? Also zwischen zwei steigenden z.b.?
Gast #4233897
Lesenswert?

Jan W. schrieb:

> Versteht sich von selbst  :-) aber zum testesn klingt das ja ganz gut,
> den TJA1054 gibt es ja nur in SOP-Package oder? Was willst denn haben?
> Versand? Zahlweise?

Richtig, den gibt es nur in SO-14. Geht notfalls auch auf Lochraster, 
wenn man jeden zweiten Pin hochbiegt und über Drähte anschliesst.

Mit aufgerundetem Porto bist Du dabei --> pn


> Mein System läuft eh mit 5V, reichen die 5V auch für Vbatt des TJA?

Sicher. So wie in Fig.7 im Datenblatt 
http://www.nxp.com/documents/data_sheet/TJA1054A.pdf . /STB und EN 
kannst Du fest auf High legen und /ERR erstmal ignorieren.

> Zwischen zwei gleichen Flanken? Also zwischen zwei steigenden z.b.?

Nein, zwischen zwei unterschiedlichen.
OP #4238489
Lesenswert?

soul e. schrieb:
> Zum Gucken kannst
> Du CAN_L über einen Spannungsteiler oder Schutzwiderstand direkt an
> CAN_RX Deines Controllers anschliessen.

genau so habe ich es gemacht und erst mal vielen dank dafür, es 
funktioniert jetzt!

Kann jetzt schön auf dem Innenraum-can-bus lauschen, die Birate beträgt 
übrigens wie erwähnt 83,33kbit/s.
Und so wie es aussieht werden nur Standard-IDs verwendet.

Jetzt warte ich noch auf ein paar Bauteile und dann bastel ich mir 
Controller und LS-Transceiver zusammen.

Vielen dank noch mal an alle

Jan

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