Hallo, ich möchte demnächst mit dem Mikrocontroller XC886/888 von Infineon anfangen, eine CAN Kommunikation aufzubauen. Ich habe mir mal einige Datenblätter sowie Applikationen von Infineon heruntergeladen. Ich komme nicht gaz klar mit dem MultiCAN. Die sprecien immer von sogenannten Message Objekten. Es gibt da insgesamt 32 Objekte. Zuvor habe ich mit einem Stand Alone Controller SJA1000 eine CAN verbind realisiert. Da musste ich den Controller zuvor initialiseren. Baudrate, Datenlänge, Dateninhalte, Identifier. Da gibt es keine Message Objekte. Was kann man damit tun?
Ich kenne den XC886 nicht, vermute aber, das ist ähnlich wie beim AT89C51CC03 (14 Message Objekte). Die Message Objekte sind viel leistungsfähiger als der FIFO des SJA1000, Du kannst jedes zum Senden oder Empfangen nehmen und dabei verschiedene Identifier definieren. D.h. wichtigere Nachrichten können zuerst ausgewertet werden und müssen nicht erst durch die FIFO wie beim SJA1000. Du kannst aber auch Message Objekte zu einer FIFO zusammenfassen, indem sie alle die gleichen Identifierbits kriegen. Allerdings ist das erstmal keine echte FIFO, da immer das erste freie Objekt mit Daten gefüllt wird. Wenn man dann immer von unten prüft, ob ein Objekt voll ist, kann es zu einer Vertauschung kommen. Ist aber kein Problem, da jedes Objekt einen Timestamp kriegt, also einfach den ältesten Timestamp suchen (Wrap-around beachten). Peter
Dank Peter für die schnelle Information! Der MultiCAN besitzt nicht nur einen FIFO sondern noch zusätzlich einen Speicher für die Message Objekte. Diese kann man je nach Bedarf zum Senden bzw. Empfangen verwenden.
Hallo, Der Unterschied ist Basic-CAN (SJA1000) und Full-CAN(XC886/888). Der SJA hat ein Register zum Senden und ein FIFO für Emfang. Wenn Du Messages mit verschieden IDs senden willst, musst Du immer vor dem Senden die Einstellungen ändern. Für den Empfang kannst Du ein Filter einstellen, so dass die Anzahl der empfangen Objekte reduziert wird. Alles was da durchgeht landet im FIFO und es muss dann geprüft werden, welche IDs die Objekte haben. Beim Full-CAN kannst Du jedem CAN-Register ein Message-Objekt zuweisen, sowie einstellen, ob es ein Empfangs- oder Sendeobjekt ist. Bei einer überschaubaren Anzahl von Message-Objekten machst Du nur einmal Deine Initilisierung und kannst dann munter senden und empfangen. Viele Controller haben noch die Möglichkeit für 1 oder 2 Message-Objekte die Basic-CAN-Option einzuschalten. Das macht man dann, wenn mehr Objekte zu handeln sind als der Controller zur Verfügung stellt. Ich hoffe, das bringt ein wenig Licht ins Dunkel. Gruß Matthias
Vielen Dank Matthias! Gibt es im Netz eine detaillierte Beschreibung zu FULL CAN?
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.