Tja Manfred,
ganz ohne ist der CAN-Bus aber auch nicht!
Bevor du irgend ein gefundenes Programm auf deiner Platform zum laufen
bekommst musst du zumindest grob wissen wie dieser Bus denn
funktioniert. Ich gib dir mal ein paar anhaltspunkte über die du
bescheid wissen solltest, damit auch fremde Programme bei dir laufen:
- Bittiming(4 Segmente pro Bit, deren Dauer eingestellt werden muss)
- Arbitrierung(enthält u.a. den ID) => dank CSMA/CA die Message-Prio.
- Es gibt Standart- und Extendet-CAN Nachrichten
- Bei Transmit-Nachrichten musst du den DataLengthCode angegeben
- Damit dein Controller nicht bei jeder Nachricht die auf dem Bus ist
durch evtl. einen Interrupt aus seiner eigentlichen
Programmabarbeitung "geschmissen" wird gibt empfangsseitig es s.g.
Akzeptanzfilter, in die du nur die Identifier deiner Nachrichten
schreibst, die du mit diesem Busteilnehmer auch verarbeiten
möchtest. (diese funktion ist optional, jedoch empfehlenswert)
- Diese Akzeptanzfilter können auch noch maskiert werden, wo duch sich
noch mehr möglichkeiten ergeben. Lass da aber die Finger noch von;
wird auch in den wenigsten (einfachen) Programmen gemacht.
Das RTR bedeutet "Request To Send". Damit kannst du dir
Nachrichten(Daten) von einem anderen Teilnehmer Anfordern. Die RTR
Nachricht, die du sendest enthält natürlich keine Nutzdaten. Diese
Funktion brauchst du aber am Anfang auch noch nicht.
Falls du das nicht eh schon weist: Du benötigst neben einem
CAN-Controller auch noch einen CAN-Bustreiber pro Teilnehmer.
Falls du in Englisch fit bist kann ich dir das datenblatt des
CAN-Controllers MCP2515 von Microchip empfehlen, damit sollten sich
einige deiner Fragen beantworten lassen.