Can bus Anfänger

Gast #819648
Lesenswert?

Hallo

ich habe hier schon einige Seiten durchgelesen.
Meín Fall ich habe einen Infinieon Controller XC161 mit Can Schnittelle 
daran Bustreiber für die Pegelwandelung.
DAs ganze will ich mit einem PC verbinden.

Was benötige ich um das ganze von einem PC anzusteuern reicht da ein 
RS232 auf CAN-Bus Wandler. Und gibt es Software für den PC wo ich nur 
die Daten eingebe und mir das Identifier Protokoll selbst erstellt wird.

Wer weiss da was.
Gast #822517
Lesenswert?

>ist das programmieren für den controller einfach hanzuhaben

Wie meinst du das? Der programmiert sich oder andere nicht von selbst 
;-)

Scherz beiseite!
Mit den Infineon Teilen hab ich selbst noch nichts gemacht.
Von daher kann ich da im Detail nichts zu beitragen.

Was hast du denn eigenlich vor? Bzw. was verlangt dein Chef von dir?
Gast #822606
Lesenswert?

ja aber was ich noch nicht verstanden habe ist das mit dem adressieren 
von mehreren Teilnehmer die da im bus sind.
wie wird da die entsprechende Adresse festgelegt das der nur die Daten 
bekommt zu dem sie auch kommen sollen. Werden die Hardware mäßig per Dip 
Schalter eingelesen oder über software mit dem standard protokoll

mfg
#822612
Lesenswert?

Die ID im CAN-Frame kennzeichnet den Inhalt des Frames, nicht dessen 
Ziel und ist damit eher als Absender- denn als Zieladresse zu verstehen. 
Jede Node entscheidet für sich, welche Frames sie zur Kenntnis nehmen 
will.

Das ergibt schon aus der Eigenschaft des Busses: Es darf nicht 
vorkommen, dass Frames verschiedener Nodes zum gleichen Zeitpunkt die 
gleiche ID enthalten.
Gast #822614
Lesenswert?

>adressieren von mehreren Teilnehmer

redest du von CAN oder von CANopen?

CAN:
Die Teilnehmer haben keine eigene Adresse, sondern die Nachrichten.
Jeder Teilnehmer kann mehrere Nachrichten(arten = Adresse) empfangen.

CANopen:
Jeder Teilnehmer hat eine eineindeutige (Knoten)nummer. Die Adressen 
(COB-IDs) haben eine bestimmte Bedeutung.
Gast #823783
Lesenswert?

Hallo

um das ganze mal etwas verständlicher zu machen
Ich habe mehrere leiterplatten bzw geräte mit can- schnittstelle.
Auf der Leiterplatte ist der Infieon xc161 controller daran sind zwei 
bustreiber angeschlossen die mein ttl signal auf can level bringen.
Was brauche ich um diese anzusteuern von der Hardware bis zu Software.
Ich will sie mit einen PC ansteuern.
Ich brauche doch als erstes einen usb /can wandler wo ich meine geräte 
als sogenannte slave dranhänge.
dann eine Ansteuersoftware wo ich die einzelnen geräte festlege welche 
ID (Adressen) sie haben.
Kann mir wer sagen was ich alles dafür brauche
Gast #823940
Lesenswert?

Entschuldige bitte, aber Du redest wirr.
Was soll eigentlich getan werden? Normalerweise ist der CAN dazu da, 
damit sich Steuergeräte untereinander unterhalten. Sagt auch schon der 
Name: Controller Area Network. Nur Programmierung im Feld, beim Auto 
z.B. in der Werkstatt beim Softwareupdate unterhält sich der PC über den 
CAN mit dem Steuergerät. Dazu wird meistens das KWP2000-Protokoll 
genutzt.
Was willst Du nun machen?
Willst Du den XC161 erstmal programmieren, damit er sich auf dem CAN mit 
einem anderen Controller unterhalten kann oder möchtest ein 
Softwareupdate über CAN machen?
Ich kann mir leicht vorstellen, dass der CAN-Bus für Anfänger nicht 
einfach ist. Aber ehe man sich allzusehr in Details verstrickt sollte 
doch die Aufgabe erst mal klar sein.

Gruß Matthias
Gast #824513
Lesenswert?

Es gibt viele gute Tutorials und Folienen und soetwas in der Art im 
Netz. Einfach mal suchen.

> ich meine geräte als sogenannte slave dranhänge

Bei CAN gibt es keine Slaves.

Willst du selbst ein CAN-Netzwerk aufbauen oder nur vorhandene 
CAN-Knoten mit dem PC ansprechen?
Gast #825115
Lesenswert?

"Ich brauche doch als erstes einen usb /can wandler wo ich meine geräte
als sogenannte slave dranhänge.
dann eine Ansteuersoftware wo ich die einzelnen geräte festlege welche
ID (Adressen) sie haben."

Es gibt von PEAK sowohl Karten als auch USB/CAN dongles. Als Software 
ist auch schon ein einfacher Monitor dabei, mit dem Du CAN-Botschaften 
definieren kannst. Du kannst auch einstellen, ob die Botschaften 
einmalig oder zyklisch gesendet werden. Gleichzeitig kannst Du auch 
sehen, was auf dem CAN los ist und Du kannst Botschaften filtern.
Vielleicht hilft das schon mal weiter.

Gruß Matthias
Gast #856728
Lesenswert?

hallo

Ich habe jetzt eine usb/can adapter mit dem ich nachrichten versenden 
will.
Ich habe es mit meinen µController infineon xc161 der intern einen 
can-Controller besitzt. Habe auch ein Can programm in keil erstellen 
lassen. aber sobald ich eine can nachricht auf dem bus gebe zeigt mein 
usb/can adapter error bzw bus error. und ich erhalte am controller keine 
daten.
An was kann das liegen.
#856893
Lesenswert?

steffl wrote:
> aber sobald ich eine can nachricht auf dem bus gebe zeigt mein
> usb/can adapter error bzw bus error. und ich erhalte am controller keine
> daten.
> An was kann das liegen.

Falls nur ein "echter" Knoten und ein Monitor verbunden sind: Es muß 
mindestens ein Empfänger vorhanden sein, der das ACK-Bit setzt. Die 
Tools von Vector z.B. kann man so einstellen, daß sie das ACK-Bit setzen 
oder auch nicht. Ich kenne Deinen CAN-Monitor/PC-Tool nicht. Falls kein 
Knoten das ACK-Bit setzt, erhält man nur Errorframes beim Sendeversuch.
D.h.: Für die Senderichtung uC->PC muß das PC-Tool das ACK-Bit setzen, 
für die Senderichtung PC->uC muß das ACK-Bit vom uC bedient werden. Dazu 
muß der CAN-Controller initialisiert und der Transceiver eingeschaltet 
sein.

Kontrolle der Baudrate und Abschlußwiderstände wurden schon genannt. Das 
Bittiming sollte auch übereinstimmen (ist aber bei kurzer Leitung auf 
dem Labortisch nicht so kritisch).

Gruß Martin
Gast #856942
Lesenswert?

hallo

Ich sende vom pc aus mit dern can haker software. Muss mann die auf was 
bestimmtest einstellen.
Ich habe den 11bit identifier eingestellt.sobald ich auf senden gehe 
kommt error.
Ja ich habe die gleiche baudraute eingestellt 10kbit/s auf beiden 
seiten.
mein Oszi zeigt beim erstenmalsenden so was wie daten an aber dann nur 
sowas wie wäre ein glock signal drauf das gleichbleibend ist.
Der bustreiber vom controller ist aktiv auf highSpeed eingestellt.
Was meinst du Can-Controller initialisiert.
Gast #858315
Lesenswert?

Hallo steffl,

wie steuerst Du den Lawicel USBCAN an ? Soweit mir bekannt, wird dieser 
wie auch der CAN232 über ASCII-Kommandos (z. B. von Hyperterminal) 
gesteuert.

Nach dem Einschalten muss zunächst die Baudrate mit "S0" bis "S6" 
gesetzt werden - "S6" ist z. B. 500 kBAUD.

Anschliessend wird der "CAN-Kanal" mit dem Befehl "O" (O wie Open) 
geöffnet.

Nun können die Flags (SJA1000-Statusregister) abgefragt werden.

Der Adapter geht auf Störung, wenn er kein "ACK" bekommt.

Gruss Otto
Gast #858389
Lesenswert?

Hallo

danke für die infos
Wenn ich ein telegramm sende wird bei mir nichteinmal ein interrupt 
ausgelöst um in die empfangsroutine zu kommen.

Noch was anderes wenn ich zwei von den lawicel wandler verbinde kann ich 
doch von einen com schnittstelle senden und von der anderen com 
schnittstelle empfangen oder.

mfg
Gast #858392
Lesenswert?

Hallo steffl,

theoretisch ja - praktisch ausprobiert habe ich das noch nicht (ich habe 
nur einen CAN232).

Z. Zt. verwende ich diesen, um aufgezeichnete LOG-Dateien über den CAN 
an eine "Eigenentwicklung" auszugeben, was problemlos funktioniert.

"Früher" habe ich den CAN232 "andersherum" verwendet, um den CAN in die 
"Eigenentwicklung", die "damals" noch kein eigenes CAN-Interface hatte, 
einzuspeisen.

"Elektrisch" ist es nur erforderlich, Pin 2 (CANL) und Pin 7 (CANH) 
direkt miteinander zu verbinden - in ca. 80% aller Fälle wird dies 
funktionieren.

Auf Grund möglicher Potentialdifferenzen sollte auch GND angeschlossen 
sein.

In einigen Fällen funktioniert es nicht - dann müssen auf beiden Seiten 
(direkt am CAN-Anschluss des jeweiligen Knoten) 120 Ohm Widerstände 
zwischen CANH und CANL geschaltet werden.

Gruss Otto

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