Forum: Mikrocontroller und Digitale Elektronik Von Arbiträr-Funktionsgenerator erzeugtes CAN-Frame in CAN-Bus einspeisen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Guido C. (guidoanalog)



Lesenswert?

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?

von Thomas (kosmos)


Lesenswert?

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
von Falk B. (falk)


Lesenswert?

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.

von Sebastian W. (wangnick)


Lesenswert?

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

von Guido C. (guidoanalog)


Lesenswert?

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

von Guido C. (guidoanalog)


Lesenswert?

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

von Sebastian W. (wangnick)


Lesenswert?

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

von Guido C. (guidoanalog)


Lesenswert?

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

von Thomas (kosmos)


Lesenswert?

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