Forum: Mikrocontroller und Digitale Elektronik Canopen Protokoll


von Patrick (Gast)


Lesenswert?

Hallo, ich verwende einen 8-Bit Mikrocontroller, der einen MultiCan 
besitzt.
Pro Knoten habe ich 32 Message Objekte zur Verfügung. Das Senden und 
EMpfangen von CAN Nachrichten funktioniert soweit. Da ich mehrere Boards 
mit dem Mikrocontroller verwenden möchte, brauche ich ein Protokoll. 
Wahrscheinlich bräuchte ich das CANOPEN Protokoll.
Hat jemand schon einmal so ein CANOPEN Protokoll in C programmiert?
WIe funktioniert eigentlich die Zusammensetzung der CAN-ID?
Wo ist die Nr. vom Message Objekt bzw. Busteilnehmer in der CAN 
Nachricht enthalten?

von Patrick (Gast)


Lesenswert?

Auf der folgenden Seite habe ich was gefunden:

http://www.hehlhans.de/bilder/autos/cdi270/can.htm

Ganz unten auf der Seite ist ein Link zu einen Beispiel Code in C.
Leider funktioniert der Download nicht.

http://home.t-online.de/home/janvi/can/can.zip

Woher könnte ich diese Zip Datei noch beziehen?

von Gast (Gast)


Lesenswert?

T-Online-seiten sind schon lange abgeschaltet.

Und das Codebeispiel ist nicht in C:

> Der Code wurde Assembler geschrieben und auf einem Motorola 68HC908 AT60 
Prozessor getestet.

von Patrick (Gast)


Lesenswert?

Danke für die Info. Bin leider immer noch planlos. Mir konnte hier bis 
jetzt zum Thema CanOPEN niemand helfen.

von fnah (Gast)


Lesenswert?

1. man tippe "canopen" in die betreffsuche ein (2-3 sekunden)
2. man klicke auf den thread mit den vielen antworten zum thema (2-3 
sekunden)
3. man klicke im 2ten beitrag auf den link (5-10 sekunden)

...und erhaelt nach nicht mal 20 sekunden die gewuenschte information

von fnah (Gast)


Lesenswert?

...oder bist du der Patrick, der in dem Thread schon etliche Beitraege 
geschrieben hat? Wenn ja, warum dann ein neuer Thread zum gleichen 
Thema?

von Patrick (Gast)


Lesenswert?

Bin ein anderer Patrick. Ich hab in diesem Forum mal nach canopen 
gesucht, so informativ sind diese Threads nicht. Bringt mir nicht 
sonderlich viel.

von fnah (Gast)


Lesenswert?

ok, dann sorry fuers anflamen.


aber...

http://www.canfestival.org
CanFestival focuses on providing an ANSI-C platform independent CANOpen 
stack that can be implemented as master or slave nodes on PCs, Real-time 
IPCs, and Microcontrollers.

...das klingt doch eigentlich genau nach dem, was du suchst. was ist 
daran verkehrt?

ums lesen und verstehen der dokumente hier wirst du wohl nicht 
rumkommen:
http://www.can-cia.org/canopen

hier noch ein paar links, die du wahrscheinlich auch schon kennen wirst:
http://www.port.de/engl/canprod/software.html
http://www.esacademy.com
http://www.canopen.us
http://www.microcanopen.com

von Patrick (Gast)


Lesenswert?

Danke fnah!

Ich hab mal den Code unter http://www.canfestival.org angeschaut.
Ganz schön komplex die Sache. Für meine Bedürfnisse ist dies wohl zu 
viel.
was ich brauchen könnte ist mal zuerst so ein ganz kleines Beispiel, wie 
das mit dem PDO und SDO funktioniert. Wie ich was genau einstellen muss.

von Patrick (Gast)


Lesenswert?

Also so ganz hilfreich waren die Anrworten hier für mich nicht.

von Willivonbienemaya .. (willivonbienemaya)


Lesenswert?

Patrick wrote:
> Also so ganz hilfreich waren die Anrworten hier für mich nicht.

Genau. CANopen wollen und dann beschweren wenn es komplex wird.

Ich würde dir raten dir ein einfacheres oder eigenes Protokoll zu 
suchen, denn CANopen IST komplex.

von Patrick (Gast)


Lesenswert?

Mir mir kommt es so vor, als ob es sehr sehr wenig kostenlose Quellcodes 
in C  gibt. Mir würde eigentlich schon reichen, wenn ich mal ein sehen 
könnte, wie so eine Nachricht mit CanOpen versendet bzw. empfangen wird.

von Patrick (Gast)


Lesenswert?

Hat hier jemand ein einfacheres Protokoll auf einem Mikrocontroller zum 
laufen gebracht? Und wenn ja, wie sieht das Konzept aus?

von Gast (Gast)


Lesenswert?

Wenn du nichts kaufen willst, dann denk dir doch einfach eines aus. So 
viele Möglichkeiten hast du nicht:

1. Verwendung des Identifiers festlegen (da kann man sich z. B. an 
CANopen orientieren)

2. Verwendung der 0 bis 8 Datenbytes festlegen.

Mehr ist das nicht.

btw. Freie Quellen (ob nun in C oder was anderem) sind eine freiwillige 
Sache der Entwickler. Und da der CANopen-STack bei halbwegs 
vollständiger Implementierung recht aufwendig wird, gibt es nur wenige, 
die ihre Arbeit für lau ins Netz stellen (davon leben eben auch einige 
Firmen).

Vielleicht finden wir ja deine Sourcen gut dokumentiert und mit wenigen 
Fehlern bald im Netz - so als Vorbild...

Gruß,
der Gast

von Patrick (Gast)


Lesenswert?

Ok dann werd ich mir ein eigenes Protokoll erstellen.
Die Identifier lege ich doch als erstes fest, oder? Wo plaziere ich die 
Nummer der Teilnehmer und die Nummer des Message Objektes? Wie könnte 
ich die Nutzdaten abfragen?

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.