Forum: Haus & Smart Home CAN-BUS


von Manfred (Gast)


Lesenswert?

Hallo
Hat schon jemand Erfahrung mit den Can-Bus?
Ich bin gerade dabei ein CAN-Bus mit dem SJA1000 aufzubauen, komme
aber
mit der Routine nicht klar (Intialisierung, senden, abfragen)
Ich programiere in C++, Controller ist eim Motorolla (C-Control I von
Conrad)

Grüße Manfred

von Nobi (Gast)


Lesenswert?

Willst Du jetzt ein fertiges Programm? Du solltest schon konkretisieren,
was du willst. Wir sind leider keine Hellseher.
Vielleicht Hilf googeln. z.B. nach Ulrich Radings SJA1000
Implementierung.

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Danke für den Tip. Ich werde da mal reinschaun.
Ein fertiges Programmwähre natürlich supa. Aber das ist wohl ein
bischen viel verlangt. ausserdem habe ich ja dan wieder keine Ahnung
wies funktioniert.
Mein Problem: Man muß den SJA1000 Initialisieren, Welce Register haben
welche Aufgabe, und welchen wert muß man reinschreiben.
Sende und Empfangsroutine. Wie sieht das aus. Man sendet ja die ID, ein
RTR-Bit (was immer das auch ist) und dann die Daten.
Empangen geht so Ähnlich.
Ich habe ein Programm gefunden, es funktionirt aber nicht. (siehe
Anhang)
Gruß Manfred

von britneypunter (Gast)


Lesenswert?

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.

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.