Forum: PC-Programmierung CAN Botschaften über RS232 senden


von Carsten R. (oettinger31)


Lesenswert?

Hi,

ich habe ein kleines Problemchen. Ich habe einen Microcontroller, an den 
sollen via CAN Daten vom PC übermittelt werden und der Microcontroller 
soll damit was machen. Nun habe ich mit CAN bisher nie was zu tun 
gehabt. Der Microcontroller hat nen Infineon XC2288H200F Prozessor, der 
muss es auch zwingend sein. Der unterstützt CAN. Ich dachte nun an ein 
kleines Tool, vielleicht eine Konsolenanwendung, die mir CAN Daten 
generiert, via RS232 an den CAN meines Controllers übergibt und dieser 
damit was auch immer anfängt.

Konkret geht es um folgendes: Der Microcontroller soll 8 Relais 
schalten, ganz einfach über die IOs. Welches Relais geschalten werden 
soll, soll via CAN vom PC übermittelt werden. Mit Link zwischen PC und 
Controller will ich mich möglichst wenig beschäftigen und mich nicht 
groß reinarbeiten, wenn möglich auch keine PC-Programme schreiben 
müssen, da der Microcontroller später noch mehr machen soll und das die 
oberste Prio hat. Die Relais sind erstmal nur der 1. Step.

Programmierkenntnisse hab ich in C# und C. Ist meine Idee so richtig und 
machbar? Wenn es da was fertiges bereits gibt, nehme ich das gern. Ich 
will mich damit möglichst wenig beschäftigen, weil der Microcontroller 
und das dahinter wichtiger sind.

Danke für eure Hilfe.

MfG

von Guido B. (guido-b)


Lesenswert?

Das hier könntest du dir mal anschauen:

http://www.fischl.de/usbtin/

von Rolf Magnus (Gast)


Lesenswert?

Carsten R. schrieb:
> Ich dachte nun an ein kleines Tool, vielleicht eine Konsolenanwendung,
> die mir CAN Daten generiert, via RS232 an den CAN meines Controllers
> übergibt und dieser damit was auch immer anfängt.

Irgendwie vermischst du hier RS232 und CAN.

> Programmierkenntnisse hab ich in C# und C. Ist meine Idee so richtig und
> machbar?

So ganz ist mir deine Idee noch nicht klar. Einmal sprichst du von RS232 
als Link zwischen PC und µC, dann wieder von CAN. Wie soll die 
Kommunikation denn nun aussehen?

von Wilhelm F. (Gast)


Lesenswert?

Wenn man zwei verschiedene Schnittstellen hat, dann geht das eigentlich 
nur über geeignete Protokolle, die beide vereinen, so wie man es haben 
möchte. Das muß der µC dann machen, bzw. eine selbst gemachte Software 
dazu.

von Christian R. (supachris)


Lesenswert?


von Karl H. (kbuchegg)


Lesenswert?

Carsten R. schrieb:
> Mit Link zwischen PC und
> Controller will ich mich möglichst wenig beschäftigen und mich nicht
> groß reinarbeiten, wenn möglich auch keine PC-Programme schreiben
> müssen,

falscher Ansatz.
Du willst jegliche Übung mitnehmen, die du kriegen kannst. So wie das 
aussieht brauchst du das nämlich dringend.

Ich will mit dem Auto auf Urlaub fahren. Nach Sizilien. Ich will aber 
nicht lernen, wie man in den Bergen Auto fährt, sondern wenn ich auf der 
Autobahn gerade aus fahren kann, reicht mir das. Hilfe, wie komme ich 
über den Gotthard drüber (ich will nicht durch den Tunnel, da sieht man 
nix)

: Bearbeitet durch User
von Jürgen (jliegner)


Lesenswert?

Guido B. schrieb:
> Das hier könntest du dir mal anschauen:
>
> http://www.fischl.de/usbtin/

Die scheinen irgendwie nicht mehr zu existieren. Dem Bausatz gibt's 
nicht mehr. Ich habe mal einen gekauft und festgestellt, dass der selbst 
bei 125kbit Nachrichten verschluckt wenn sie schnell hintereinander 
kommen. Daraufhin habe ich die USB-Kommunikation getraced und 
festgestellt, dass der nur Blöcke von max. 7Byte zum PC sendet. Eine 
geänderte Firmware die diese Grenze auf 64 Byte anhob, und damit meine 
Probleme löste, hatte ich auch an Thomas Fischl gesendet. Leider bis 
heute keine Antwort.
Falls jemand Interesse an den Änderungen hat bitte per pm.

von Carsten R. (oettinger31)


Lesenswert?

Hi,

erstmal vielen Dank für eure Antworten. Um es kurz zu machen, ich habe 
nun eine Vector CANcard und stelle die Verbindung darüber her. Das ist 
einfach zeilführender. Die hätte ich ursprünglich gern gespart. Wilhelm 
F. hat mich denke ich richtig verstanden.

Noch mal kurz zusammengefasst:
Aufgabe: µC soll CAN Botschaften empfangen
Problem: Wie bekomme ich aus meinem PC CAN Botschaften?
Lösungsansätze:
a) Vector
+einfach
-teuer
b) Konsolenanwendung (übertragen mittels 9-pol D-Sub am PC)
+keine Anschaffungskosten
-kostet meine Arbeitszeit
Frage:
1. Wie ist der Aufwand für b)?
2. Kosten für Arbeitszeit<Kosten für Vector? (hätte ich mit Antwort auf 
1. selbst beantworten müssen)


Karl Heinz Buchegger schrieb:
> Ich will mit dem Auto auf Urlaub fahren. Nach Sizilien. Ich will aber
> nicht lernen, wie man in den Bergen Auto fährt, sondern wenn ich auf der
> Autobahn gerade aus fahren kann, reicht mir das. Hilfe, wie komme ich
> über den Gotthard drüber (ich will nicht durch den Tunnel, da sieht man
> nix)


Falsches Beispiel. Ich muss CAN soweit verstehen, dass ich den µC dazu 
bringen kann, CAN Botschaften zu empfangen und vor allen Dingen zu 
verstehen. Wie die Dinger aus dem PC kommen ist mir egal. Mit meiner 
jetzigen Lösung muss ich ja auch nur verstehen, WAS meine Vectorprodukte 
machen, nicht WIE sie es tun. Dass ich die Bedienung dazu verstehen muss 
ist ganz klar.
Um über die Alpen zu fahren, muss ich wissen, was ich tue und wie ich 
mein Fahrzeug in dieser Situation richtig bediene. Wie ein Auto 
funktioniert interessiert dazu erstmal nicht (nicht im Detail).
Meine ursprüngliche Überlegung war, dass das WIE vielleicht nicht so 
kompliziert ist, dass ich es selber machen könnte. Das wäre nur ein 
Nebenläufer zum eigentlichen Problem, an dem ich arbeite.
Feststellung: Zu zeitaufwändig, lenkt zu sehr von der eigentlichen 
Aufgabe ab.
Lösung: Vector.

MfG

: Bearbeitet durch User
von Syliosha (Gast)


Lesenswert?

Wenn du deinen Controller dazu gebracht hast CAN-Nachrichten zu 
verstehen, dann hast du auch das Wissen, diese zu versenden. Für beides 
wirst du aber das Wissen brauchen WIE ein CAN-Bus funktioniert.
Das Verstehen des CAN-Busses sollte keinen Tag dauern.
WIE der CAN-Bus in deinem Controller gehandhabt wird, kann dagegen 
länger dauern.

von Carsten R. (oettinger31)


Lesenswert?

Syliosha schrieb:
> Wenn du deinen Controller dazu gebracht hast CAN-Nachrichten zu
> verstehen, dann hast du auch das Wissen, diese zu versenden. Für beides
> wirst du aber das Wissen brauchen WIE ein CAN-Bus funktioniert.
> Das Verstehen des CAN-Busses sollte keinen Tag dauern.
> WIE der CAN-Bus in deinem Controller gehandhabt wird, kann dagegen
> länger dauern.

Ganz genau. Wie CAN funktioniert, weiß ich nun. Wie ich den Controller 
dazu bringe, Botschaften zu senden und zu empfangen, weiß ich auch. Wie 
ich CANalyzer bedienen muss und meine CANcard mit dem Controller 
verbinden muss mit meinem selbstgebauten Kabel, weiß ich auch.
Wie CANalyzer funktioniert, wie die Hardware in der CANcard 
funktioniert, interessiert mich nicht (mehr). Wie ich das selber machen 
kann bzw. wie der Aufwand ist, sowas selber zu machen, war meine Frage. 
Das Problem ist nun gelöst.
Zur Info: Ich sende bereits Botschaften an den µC und der reagiert 
darauf wie geplant. Im Prinzip ist dieses Thema an dieser Stelle 
gelaufen. Entwicklung der Elektronik und Erweiterung des 
Funktionsumfanges sind ein anderes Thema. Wenns da hängt, kommm ich gern 
wieder auf dieses Forum zurück.

von Rolf Magnus (Gast)


Lesenswert?

Der Vollständigkeit halber:

Carsten R. schrieb:
> Aufgabe: µC soll CAN Botschaften empfangen
> Problem: Wie bekomme ich aus meinem PC CAN Botschaften?
> Lösungsansätze:
> [...]
> b) Konsolenanwendung (übertragen mittels 9-pol D-Sub am PC)
> +keine Anschaffungskosten

Ich habe den Eindruck, daß du glaubst, über eine RS232 irgendwie direkt 
CAN-Botschaften senden zu können. Das geht aber nicht. Du brauchst auf 
jeden Fall irgendwas mit einen CAN-Controller+Transceiver.

von Torwin (Gast)


Lesenswert?

Es gibt auch günstigere Lösungen, die ähnliches leisten wie Canalyzer. 
Z.B.: PCAN Explorer oder noch einfacher PCAN-View(kostenlos). Man 
braucht allerdings bei allen diesen Lösungen ein geeignetes 
CAN-USB-Interface: CAN-Case(Vektor) oder PCAN-USB(Peak-System).

MfG

von Carsten R. (oettinger31)


Lesenswert?

Rolf Magnus schrieb:
> Ich habe den Eindruck, daß du glaubst, über eine RS232 irgendwie direkt
> CAN-Botschaften senden zu können. Das geht aber nicht. Du brauchst auf
> jeden Fall irgendwas mit einen CAN-Controller+Transceiver.

Genau das dachte ich. Die Erkenntnis, dass es aber so nicht geht, ist nu 
da.

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.