Hallo, bei CAN-Bus Controllern wie z. B. dem SJA1000T (https://www.nxp.com/part/SJA1000T#/) von NXP Semiconductors kann man über die Bus Timing Register (BTR0, BTR1) den Abtastzeitpunkt für die einzelnen Bits anpassen. Über das Bit Rate Calcutaion Tool der PEAK-System Technik GmbH lassen sie die entsprechenden Registerwerte recht komfortabel ermitteln (siehe "SJA1000 Nominal Sample Point (BTR0-BTR1).png"). Der Auszug "SJA1000 Nominal Sample Point.png" aus dem Datenblatt (Seite 51) des Controllers erläutert die Bedeutung der einzelnen Werte [https://www.nxp.com/docs/en/data-sheet/SJA1000.pdf]. Ich würde den Weg gerne anders gehen und den Abtastzeitpunkt eines CAN-Teilnehmers messen. Hierfür wollte ich mit einem Arbiträr-Funktionsgenerator einzelne CAN-Frames schicken. Hierbei würde ich ein Datenbit immer kürzer machen bis der CAN-Teilnehmer das CAN-Frame nicht mehr "versteht". Beim Einspeisen des Signals darf ich natürlich die ganze Dominant Rezessiv Thematik auf dem CAN-Bus nicht zerstören. Daher bin ich aktuell auf der Suche nach einem "dummen" Transceiver mit CAN-Ausgang. Habt Ihr einen Tipp für mich?
MCP2551 / MCP2561 TJA104x / TJA105x und viele viele mehr Auf Grund der Resyncronisierung nach spätestens 5 Bits spielt es evtl. auch eine Rolle wie die Bits davor aussehen, also ob gerade erst eine Resynchronisation (durch Flankenwechsel) stattgefunden hat oder nicht.
:
Bearbeitet durch User
Guido C. schrieb: > Daher bin ich aktuell auf der Suche nach einem "dummen" > Transceiver mit CAN-Ausgang. Habt Ihr einen Tipp für mich? Alle möglichen? MCP2551 und viele andere.
Guido C. schrieb: > Beim Einspeisen des Signals darf ich natürlich die ganze Dominant > Rezessiv Thematik auf dem CAN-Bus nicht zerstören. Warum nicht? Um für einen Teilnehmer den Abtastzeitpunkt zu ermitteln sollte der besser wohl der einzige Teilnehmer auf dem CAN-Bus sein (abgesehen von deinem Funktionsgenerator). Und dann wird gar keine Multi-Sender-Arbitrierung stattfinden. Oder möchtest du den Abtastzeitpunkt eines bestimmten unter vielen Teilnehmern auf dem CAN-Bus ermitteln? Das stelle ich mir schwierig vor, weil wenn ich mich recht entsinne alle Teilnehmer alle CAN-Frames zunächst dekodieren, per Ack bestätigen, und erst danach filtern ... LG, Sebastian
Hallo Thomas, Hallo Falk, vielen Dank für Eure Tipps. Genau das, nachdem ich ich gesucht habe. Ich mir ein paar MCP2551 bestellt. Mit freundlichen Grüßen Guido
Hallo Sebastian, Sebastian W. schrieb: > Warum nicht? Berechtigte Frage. Bei meinem Test möchte ich den Signalgenerator über den CAN-Transceiver an (nur) einen CAN-Teilnehmer anschließen. Der CAN-Transceiver bietet mir den Vorteil, dass der CAN-Teilnehmer über den Acknowledge-Slot direkt zurückmelden kann, ob der die Botschaft richtig abtasten konnte. Den Acknowledge-Slot wollte ich über das Oszilloskop auswerten. Mit freundlichen Grüßen Guido
Guido C. schrieb: > Den Acknowledge-Slot wollte ich über das Oszilloskop auswerten. Es wäre u.U. komfortabler, den CAN-Verlauf mit einem Logikanalysator am RXD-Pin deines Transceivers zu überwachen. Viel Erfolg! LG, Sebastian
Hallo Sebastian, Sebastian W. schrieb: > Es wäre u.U. komfortabler, den CAN-Verlauf mit einem Logikanalysator am > RXD-Pin deines Transceivers zu überwachen. Viel Erfolg! Danke, guter Tipp. Mit freundlichen Grüßen Guido
ich habe das Oszi immer auf EOF Triggern lassen um eine stabile Anzeige zu haben. Das ACK kannst du dir dann ja ansehen. Ein richtiger CAN Teilnehmer würde seine Nachricht ja erneut senden wenn etwas nicht gepasst hat. Aber bei deiner Aufgabe musst du ja nur deine Abtastzeitpunkte verändern und die beiden Nachrichten vergleichen ab wann es nicht mehr zusammenpasst.
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.