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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.