www.mikrocontroller.net

Forum: Haus & Smart Home CAN-BUS


Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Nobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Manfred (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: britneypunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.