Forum: Mikrocontroller und Digitale Elektronik Can bus Anfänger


von Kausi (Gast)


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.

von Frank N. (arm-fan)


Lesenswert?

Beruflich oder Hobby-Gebastel?

Wenns für die Arbeit ist, dann besorg dir ein CAN-Interface
für den PC von IXXAT oder PEAK.

Ansonsten gibt es eine recht einfache Parallelport-Lösung mit
dem MCP2515 von Microchip. Ich glaub das ist in der aktuellen
Elektor auch drin(?)

von kausi (Gast)


Lesenswert?

Hallo

danke für die antwort es soll für die arbeit sein.
ist das programmieren für den controller einfach hanzuhaben bzw 
aufwändig.

von ARM-Fan (Gast)


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?

von Martin (Gast)


Lesenswert?


von kausi (Gast)


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

von Andreas K. (a-k)


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.

von Matthias L. (Gast)


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.

von Berti (Gast)


Lesenswert?

Software für den PC? CANape oder CANalyzer

von kausi (Gast)


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

von Matthias Kölling (Gast)


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

von Martin (Gast)


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?

von Matthias Kölling (Gast)


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

von steffl (Gast)


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.

von Otto (Gast)


Lesenswert?

Hallo steffl,

lass uns raten:

Baudrate richtig eingestellt ?
Abschlusswiderstände angeschlossen ?
Was für eine Botschaft sendest Du ?

Gruss Otto

von Gast (Gast)


Lesenswert?

Was sagt dein Oszi zum Bus?

von Martin L. (melvin_the_moose)


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

von steffl (Gast)


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.

von steffl (Gast)


Lesenswert?

hallo ich nochmal wie muss denn der bustreiber beschalten werden 
SN65HVD1050D
kann mir das einer sagen

von Otto (Gast)


Lesenswert?

Hallo steffl,

GND am Masse, Vcc an +5V, TxD an TxD, RxD an RxD, Vref an Vcc/2 
(Spannungsteiler), S je nach gewünschter Betriebsart (normal auf GND), 
CANH an CANH und CANL an CANL.

Gruss Otto

von steffl (Gast)


Lesenswert?

und wenn Vref nicht angeschloßen ist bzw ist das notwendig da was 
anzuschliesen.

von Otto (Gast)


Lesenswert?

Nein - vergiss es: es ist ein Ausgang, der UB/2 für andere Anwendungen 
bereitstellt.

Gruss Otto

von Gast (Gast)


Lesenswert?

> und wenn Vref nicht angeschloßen ist bzw ist das notwendig da was
> anzuschliesen.

Datenblatt!

von steffl (Gast)


Lesenswert?

also sollte es gehen wenn ich über so ein dongel eine nachricht 
versende.
von lawicel

von Otto (Gast)


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

von steffl (Gast)


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

von Otto (Gast)


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

von Otto (Gast)


Lesenswert?

> 2 (CANL) und Pin 7 (CANH) direkt miteinander zu verbinden

Pin 2 des einen auf Pin 2 des anderen CAN-Interface, ebenso Pin 7 des 
einen auf Pin 7 des anderen

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.