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.
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(?)
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.
>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?
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
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.
>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.
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
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
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?
"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
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.
Hallo steffl, lass uns raten: Baudrate richtig eingestellt ? Abschlusswiderstände angeschlossen ? Was für eine Botschaft sendest Du ? Gruss Otto
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
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.
hallo ich nochmal wie muss denn der bustreiber beschalten werden SN65HVD1050D kann mir das einer sagen
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
und wenn Vref nicht angeschloßen ist bzw ist das notwendig da was anzuschliesen.
Nein - vergiss es: es ist ein Ausgang, der UB/2 für andere Anwendungen bereitstellt. Gruss Otto
> und wenn Vref nicht angeschloßen ist bzw ist das notwendig da was > anzuschliesen. Datenblatt!
also sollte es gehen wenn ich über so ein dongel eine nachricht versende. von lawicel
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
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
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
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.