mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Can bus Anfänger


Autor: Kausi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Frank N. (arm-fan)
Datum:

Bewertung
0 lesenswert
nicht 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(?)

Autor: kausi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: kausi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Berti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Software für den PC? CANape oder CANalyzer

Autor: kausi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias Kölling (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias Kölling (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: steffl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo steffl,

lass uns raten:

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

Gruss Otto

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was sagt dein Oszi zum Bus?

Autor: Martin L. (melvin_the_moose)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: steffl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: steffl (Gast)
Datum:

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

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: steffl (Gast)
Datum:

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

Autor: Otto (Gast)
Datum:

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

Gruss Otto

Autor: Gast (Gast)
Datum:

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

Datenblatt!

Autor: steffl (Gast)
Datum:

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

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: steffl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.