Herunterladen Inhalt Inhalt Diese Seite drucken

Eingehende Nachrichten Filtern - JÄGER ADwin-X-A20 Handbuch

Inhaltsverzeichnis

Werbung

Option COM
Nachricht senden
Nachricht empfangen
Eingehende Nachrichten
filtern
26
In ADbasic erhalten Sie eine CAN-Nachricht nach dem Empfang über das Feld
aus dem Eingangs-FIFO. Das Feld enthält 8 Datenbytes, die Anzahl der
can_msg[]
Datenbytes, den Identifier und (nur beim Empfangen) einen Empfangs-Zeitstempel
(11 Elemente). Ebenso wird eine Nachricht beim Senden über das Feld
übertragen.
Das Versenden einer Nachricht läuft in folgenden Schritten ab:
– Sie speichern die Nachricht mit Identifier im Feld can_msg[].
– Sie übergeben das Feld
CAN-Schnittstelle. Sobald der Bus frei ist, wird die Nachricht gesendet.
Bei normaler Priorität speichert die Schnittstelle die Nachricht im Ausgangs-
FIFO. Die Nachrichten werden in der Reihenfolge gesendet, wie sie
gespeichert wurden.
Bei hoher Priorität wird die Nachricht gesendet, sobald die CAN-Schnittstelle
Zugriffsrecht auf den CAN-Bus hat. Im Ausgangs-FIFO bereits zum Senden
gespeicherte CAN-Nachrichten müssen warten.
Das Empfangen einer Nachricht läuft in folgenden Schritten ab:
– Sie stellen den Empfangsfilter für ausgewählte Identifier ein
(CAN_RX_Set_Filter). Wenn Sie den Empfangsfilter nicht setzen, werden
alle CAN-Nachrichten akzeptiert.
– Der Controller überwacht den CAN-Bus auf eingehende Nachrichten, filtert sie
gemäß Empfangsfilter und speichert sie im Eingangs-FIFO.
– Sie übertragen die Nachricht aus dem FIFO in das Feld
(CAN_Receive) und lesen den zugehörigen Identifier aus.
Im Eingangs-FIFO können bis zu 64 CAN-Nachrichten gespeichert werden. Sind alle
FIFO-Plätze belegt, überschreibt eine eingehende Nachricht alte Daten, die dadurch
unwiderruflich verloren sind. Achten Sie daher beim Programmieren darauf, dass die
Daten schneller ausgelesen als empfangen werden. Ein Datenverlust wird durch ein
Flag angezeigt.
Sie können mit
CAN_RX_Set_Filter
richten festlegen. Filter können einzeln aktiviert und deaktiviert werden. Der Identifier
der eingehenden Nachricht wird mit den aktiven Empfangsfiltern verglichen und akzep-
tiert oder verworfen:
– Wenn der Identifier der Nachricht gleich dem Empfangsfilter ist, wird die Nach-
richt in den Eingangs-FIFO übernommen.
– Sobald eine Nachricht einen der aktiven Empfangsfilter erfolgreich durchlaufen
hat, wird sie im Empfangs-FIFO gespeichert.
Busfrequenz einstellen
Die CAN-Bus-Frequenz hängt von der Konfiguration des Controllers ab.
Bei der Initialisierung mit
CAN_Init
fällen kann es vorteilhaft sein, die Einstellungen anders zu wählen, als es mit
möglich ist. Wenden Sie sich in diesem Fall an unseren Support.
CAN_Init
Programmierung
Die CAN-Schnittstellen werden mit Befehlen aus ADwin-X.inc für ADbasic komforta-
bel programmiert; Beschreibung ab Seite 140 oder in der Online-Hilfe:
Bereich
Initialisierung
Empfangen und Senden von Daten
mit
can_msg[]
CAN_Transmit
bis zu vier Empfangsfilter für eingehende Nach-
wird die CAN-Bus-Frequenz festgelegt. In Sonder-
Befehle
CAN_Init
can_msg[]
CAN_Receive
CAN_RX_Set_Filter
CAN_Transmit
ADwin-X-A20, Handbuch Sep. 2019
ADwin
can_msg[]
als Nachricht an die
can_msg[]

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis