STM8S208 - “beCAN” Controller
Das Konzept des CAN-Busses kennt keine Sende- bzw. Zieladressen. Statt dessen wird im CAN-Rahmen ein „Identifier“ (ID) übertragen der den Inhalt der Nachricht hinsichtlich ihres Inhalts identifiziert. Die einzelnen „Nodes“ (Bus Teilnehmer) benötigen nur die Nachrichten die für die jeweilige Funktion (Applikation) von Bedeutung sind und müssen deshalb auf Grund der CAN-ID (CAN Identifier) die für sie wichtigen Nachrichten auf dem Bus herausfiltern.
Da die CAN IDs entweder 11-Bit (Standard) oder 29-Bit (Extended) lang sind, ist eine Dekodierung per Software relativ aufwändig und zeitraubend.
Die „Filter“ Funktion kann im beCAN (wie auch in anderen CAN Controller Implementierungen) von der Hardware übernommen werden, um die Belastung des Prozessors zu minimieren. Gefiltert wird über entsprechende Filter-Bänke die aus jeweils 8 Registern, CAN_FxRn [8..1] zu je 8 Bit bestehen. Diese Filter sind paarweise in drei Filter-Bänken über das „Page Mapping“ in das Speicherfenster einblendbar und können über die „Page-Select “ „PS“ Bits entsprechend ausgewählt werden.
CAN_Acceptance Filter - Filter Bänke Adressierung in CAN_PSR | |||||
Acceptance Filter | Filter Nummer | Page (Seite) | PS2 | PS1 | PS0 |
Acceptance Filter Bank 0 | Filter 0 und Filter 1 | 2 | 0 | 1 | 0 |
Acceptance Filter Bank 1 | Filter 2 und Filter 3 | 3 | 0 | 1 | 1 |
Acceptance Filter Bank 2 | Filter 4 und Filter 5 | 4 | 1 | 0 | 0 |
Der jeweilige Inhalt der Filter-Register ist nicht fest zugeordnet, sondern wird je nach der Konfiguration des Filters definiert. Dabei besteht die Möglichkeit einzelne Identifier (ID-Adressen) oder ganze ID-Bereiche durch „Maskierung“ vorzugeben. Die Filter-Bänke können in:
aufgeteilt werden. Die Beschreibung dazu folgt in den nachfolgenden Punkten.
Die Filter-Bank Paare sind nach folgendem Schema (hier im Beispiel die "Page 2") aufgebaut:
beCAN Filter Bänke (in Page 2, 3 und 4) nur wenn PSR = 2, 3 oder 4 ist | |||
Filter Bank Basis Adresse : (0x00.5428h)(Adresse im STM8S208) | |||
Offset | Register Name | Inhalt | andere Pages (Seiten) |
0x00h | CAN_F0R1 | Filter 0, Register 1 | in Page 3: Filter 2 , in Page 4: Filter 4 |
0x01h | CAN_F0R2 | Filter 0, Register 2 | in Page 3: Filter 2 , in Page 4: Filter 4 |
0x02h | CAN_F0R3 | Filter 0, Register 3 | in Page 3: Filter 2 , in Page 4: Filter 4 |
0x03h | CAN_F0R4 | Filter 0, Register 4 | in Page 3: Filter 2 , in Pagek 4: Filter 4 |
0x04h | CAN_F0R5 | Filter 0, Register 5 | in Page 3: Filter 2 , in Page 4: Filter 4 |
0x05h | CAN_F0R6 | Filter 0, Register 6 | in Page 3: Filter 2 , in Page 4: Filter 4 |
0x06h | CAN_F0R7 | Filter 0, Register 7 | in Page 3: Filter 2 , in Page 4: Filter 4 |
0x07h | CAN_F0R8 | Filter 0, Register 8 | in Page 3: Filter 2 , in Page 4: Filter 4 |
0x08h | CAN_F1R1 | Filter 1, Register 1 | in Page 3: Filter 3 , in Page 4: Filter 5 |
0x09h | CAN_F1R2 | Filter 1, Register 2 | in Page 3: Filter 3 , in Page 4: Filter 5 |
0x0Ah | CAN_F1R3 | Filter 1, Register 3 | in Page 3: Filter 3 , in Page 4: Filter 5 |
0x0Bh | CAN_F1R4 | Filter 1, Register 4 | in Page 3: Filter 3 , in Page 4: Filter 5 |
0x0Ch | CAN_F1R5 | Filter 1, Register 5 | in Page 3: Filter 3 , in Page 4: Filter 5 |
0x0Dh | CAN_F1R6 | Filter 1, Register 6 | in Page 3: Filter 3 , in Page 4: Filter 5 |
0x0Eh | CAN_F1R7 | Filter 1, Register 7 | in Page 3: Filter 3 , in Page 4: Filter 5 |
0x0Fh | CAN_F1R8 | Filter 1, Register 8 | in Page 3: Filter 3 , in Page 4: Filter 5 |
Die Konfiguration der Filter erfolgt über die bereits erwähnte „Diagnose Register Page“ , die elf weitere 8 Bit Register beinhaltet. Diese Seite (Page 6) ist über die Adresse 0x110b in den „PS“ Bits selektierbar.
CAN Konfiguration/Diagnose (Paging Adressen) | |||||
Mailbox/Pages | Page (Seite) | PS2 | PS1 | PS0 | |
Configuration/Diagnostics | „Register“ Auswahl | 6 | 1 | 1 | 0 |
Die Konfigurations und Diagnose Register Bank ist nachfolgend beschrieben und beinhaltet die Register CAN_MFR1 und 2, sowie CAN_FCR1, 2 und 3 (in nachfolgender Tabelle in grün hinterlegt):
beCAN Konfiguration/Diagnose Register ( Page 6) nur wenn PSR = 6 ist | |||
Konfig./Diagnose Register Map : (0x00.5428h) + Offset (Basis-Adresse im STM8S208) | |||
Offset | Register Name | Inhalt | Beschreibung |
0x00h | CAN_ESR | Fehler Diagnose: Status | Fehler (Error) Status Register |
0x01h | CAN_EIER | Fehler Diagnose: Interrupt | Fehler (Error) Interrupt Register |
0x02h | CAN_TECR | Fehler Diagnose: Senden | Sende Fehler Zähler / Transmit Erro Counter |
0x03h | CAN_RECR | Fehler Diagnose: Empfangen | Empfangs Fehler Zähler / Receive Error Counter |
0x04h | CAN_BTR1 | Bit Timing Register 1 | Zeit Quanten Dauer, Sprungweite |
0x05h | CAN_BTR2 | Bit Timing Register 2 | Zeit Quanten Anzahl |
0x06h | reserviert | ||
0x07h | reserviert | ||
0x08h | CAN_FMR1 | Filter Mode Register 1 | "Mask" oder "Identifier List" Modus [3..0] |
0x09h | CAN_FMR2 | Filter Mode Register 2 | "Mask" oder "Identifier List" Modus [5..4] |
0x0Ah | CAN_FCR1 | Filter Configuration Register 1 | Filter Skalierung und Aktivierung [1/0] |
0x0Bh | CAN_FCR2 | Filter Configuration Register 2 | Filter Skalierung und Aktivierung [3/2] |
0x0Ch | CAN_FCR3 | Filter Configuration Register 3 | Filter Skalierung und Aktivierung [5/4] |
Jedes Filter kann einzeln aktiviert bzw. deaktiviert werden. Die „FACTx“ Bits aktivieren die korrespondierenden Filter wenn sie auf "1" gesetzt werden, andernfalls ist das jeweilige Filter deaktiviert.
Um eine Filter-Bank (CAN_FxR Register) zu konfigurieren muß diese über das „FACT“ Bit deaktiviert sein !
CAN_FCR1 Register - Filter Configuration Register 1 (0x00.5432h nur wenn PSR = „0x110b“ ) | ||||||||
Register Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
CAN_FCR1 | reserv. | FSC11 | FSC10 | FACT1 | reserv. | FSC01 | FSC00 | FACT0 |
Im CAN_FCR1 Register werden die beiden Filterbänke 0 und 1 freigeschaltet bzw. deren Scale Configuration definiert.
CAN_FCR2 Register - Filter Configuration Register 2 (0x00.5433h nur wenn PSR = „0x110b“ ) | ||||||||
Register Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
CAN_FCR2 | reserv. | FSC31 | FSC30 | FACT3 | reserv. | FSC21 | FSC20 | FACT2 |
Im CAN_FCR2 Register werden die beiden Filterbänke 2 und 3 freigeschaltet bzw. deren Scale Configuration definiert.
CAN_FCR3 Register - Filter Configuration Register 3 (0x00.54 34h nur wenn PSR = „0x110b“ ) | ||||||||
Register Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
CAN_FCR3 | reserv. | FSC51 | FSC50 | FACT5 | reserv. | FSC41 | FSC40 | FACT4 |
Im CAN_FCR3 Register werden die beiden Filterbänke 4 und 5 freigeschaltet bzw. deren Scale Configuration definiert.
Die „Scale Configuration“, sprich die nachfolgend beschriebene Aufteilung in 8-Bit, 16-Bit oder 32-Bit Filter, wird mit diesen beiden Bits konfiguriert. "x" steht dabei für die Filter-Nummer.
Die FACT Bits schalten die jeweiligen Filterbänke frei („1“ = aktiv). Um die Filtereinstellungen in den Filterregistern zu modifizieren muß die Filterbank über das entsprechende FACT-Bit deaktiviert werden.
Die “FSCxm” Bits, jeweils 2 Bits pro Filter Bank, definieren die Filter Konfiguration.
CAN_Filter Modus / Konfiguration in 32 Bit, 16 Bit oder 8 Bit Identifier bzw. Masks | |||||
Modus | Filterbreite | Anzahl Filter | Identifier Bit Bereich | FSCx1 | FSCx0 |
8-Bit Filter Bank | 8 Bit | 8 | STID[10..3]/EXID[28..21] | 0 | 0 |
16/8 Bit Filter Bank | 16 Bit | 2 | STID[10..0]/EXID[28..15] | 0 | 1 |
8 Bit | 4 | STID[10..3]/EXID[28..21] | |||
16 Bit Filter Bank | 16 Bit | 4 | STID[10..0]/EXID[28..21] | 1 | 0 |
32 Bit Filter Bank | 32 Bit | 2 | STID[10..0]/EXID[28..0] | 1 | 1 |
Die beiden Filter Mode Register CAN_FMR1 und CAN_FMR2 beinhalten die „ CAN_FMLx“ und „CAN_FMHx“ Bits für die sechs Filterbänke.
Die beiden Register definieren ob die Filter-Bänke im „Identifier Modus“ oder im „ Mask Modus“ verwendet werden. Dazu sind für jede Filter-Bank zwei Bits definiert die als „FMHx “ und „FMLx“ bezeichnet werden.
CAN_FMR1 Register - Filter Mode Register 1 (0x00.5430h nur wenn PSR = „0x110b“ ) | ||||||||
Register Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
CAN_FMR1 | FMH3 | FML3 | FMH2 | FML2 | FMH1 | FML1 | FMH0 | FML0 |
CAN_FMR2 Register - Filter Mode Register 2 (0x00.5431h nur wenn PSR = „0x110b“ ) | ||||||||
Register Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
CAN_FMR2 | reserv. | reserv. | reserv. | reserv. | FMH5 | FML5 | FMH4 | FML4 |
„FMHx“ spezifiziert dabei den Modus der „Higher“ -Register (oberes) und „FMLx“ die „ Lower“-Register (unteres), wobei in allen beschriebenen Bits, „x“ die Nummer der Filter-Bank definiert. Die als „obere“ und als „untere“ Register bezeichneten Teile einer Register Bank sind für die verschiedenen Filter Modi unterschiedlich zugeordnet.
In dieser Einstellung können einzelne Nachrichten bezüglich ihres CAN Identifiers eindeutig identifiziert werden, d.h in einem 32 Bit Filter sind die CAN-IDs für 29 Bit Identifier komplett enthalten und können, falls gewünscht, eine einzelne CAN-ID identifizieren. Im 32 Bit Filter Modus müssen die „FMHx“ und „FMLx“ Bits den gleichen Wert haben (entweder 0x00b oder 0x11b).
32 Bit Filter | Konfig. | Konfig. | ||||||||||||||||||||||||||||||||||||||||||
Ext. ID [28..21] | [20..18] | RTR | IDE | [17..15] | [14..7] | [6..0] | 0 | FMHx = 0
FMLx = 0 |
FMHx = 1
FMLx = 1 |
|||||||||||||||||||||||||||||||||||
Std. ID [10..3] | [2..0] | |||||||||||||||||||||||||||||||||||||||||||
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||||||||||||
CAN_FxR1 | CAN_FxR2 | CAN_FxR3 | CAN_FxR4 | ID | n | ID | n | |||||||||||||||||||||||||||||||||||||
CAN_FxR5 | CAN_FxR6 | CAN_FxR7 | CAN_FxR8 | M | ID | n+1 |
Wird über die „FMHx“ und „FMLx“ Bits = „0“ die Bank als „masked“ definiert, so ist die obere Hälfte der 32-Bit Filter Bank (CAN_FxR5... CAN_FxR8) die „Maske“ (M). Die maskierten Werte werden weiter mit den empfangenen IDs verglichen, während die verbleibenden Bits für den Vergleich nicht mehr relevant sind.
32 Bit Filter | Konfig. | |||||||||||||||||||||||||||||||||
Ext. ID [28..21] | [20..18] | RTR | IDE | [17..15] | [14..7] | [6..0] | 0 | FMHx = 0
FMLx = 0 |
||||||||||||||||||||||||||
Std. ID [10..3] | [2..0] | |||||||||||||||||||||||||||||||||
Laufende Filter Nummer |
||||||||||||||||||||||||||||||||||
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
CAN_FxR1 | CAN_FxR2 | CAN_FxR3 | CAN_FxR4 | ID | n | |||||||||||||||||||||||||||||
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | |||
CAN_FxR5 | CAN_FxR6 | CAN_FxR7 | CAN_FxR8 | M | ||||||||||||||||||||||||||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | X | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | |||
Die resultierenden ID-Bits müssen zutreffen | ||||||||||||||||||||||||||||||||||
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | X | X | X | X | X | X | X | X | X | X | X | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 |
Dieses 32-Bit Filter Register beinhaltet einen "Identifier" in CAN_FxR[4:1] plus eine "Maske" in CAN_FxR[8:5].
Sind „FMHx“ und „FMLx“ Bits = „1“ so befindet sich das Filter im „Identifier“ Modus (ID) und die beiden Hälften (jeweils 4 Byte) der Filter-Bank stellen je einen eigenständigen „Identifier“ dar, der nur bei einem eindeutigen Treffer aller Identifier-Bits akzeptiert wird.
In der Filter-Liste werden in diesem Fall zwei Filter-Nummern eingetragen die auf die beiden Filter eien Referenz bilden.
32 Bit Filter | Konfig. | |||||||||||||||||||||||||||||||||
Ext. ID [28..21] | [20..18] | RTR | IDE | [17..15] | [14..7] | [6..0] | 0 | FMHx = 1
FMLx = 1 |
||||||||||||||||||||||||||
Std. ID [10..3] | [2..0] | |||||||||||||||||||||||||||||||||
Laufende Filter Nummer |
||||||||||||||||||||||||||||||||||
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
CAN_FxR1 | CAN_FxR2 | CAN_FxR3 | CAN_FxR4 | ID | n | |||||||||||||||||||||||||||||
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | |||
CAN_FxR5 | CAN_FxR6 | CAN_FxR7 | CAN_FxR8 | ID | n+1 | |||||||||||||||||||||||||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | X | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
In diesem Beispiel eines 32-Bit Filter Registers beinhaltet dieses zwei eindeutige IDs in den "oberen" bzw. "unteren" CAN_FxRm Registern
Im 16 Bit Filter Modus stehen maximal 4 Filter mit jeweils 16 Bit zur Verfügung, für die Identifier Bits EXID[28..15] einer „extended ID“ bzw. alle 11 Bit (STID[10..0]), einer „standard ID“ überwachen.
Diese Filter können ebenfalls in „Identifier“ bzw. in „Masken“ aufgeteilt werden. Für die Aufteilung zeichnen wieder die korrespondierenden „FMHx“ und „FMLx“ Bits der entsprechenden Bank („x“) verantwortlich.
16 Bit Filter | Konfig. | Konfig. | Konfig. | Konfig. | ||||||||||||||||||||
Ext. ID [28..21] | [20..18] | RTR | IDE | [17..15] | FMHx = 0
FMLx = 0 |
FMHx = 0
FMLx = 1 |
FMHx = 1
FMLx = 0 |
FMHx = 1
FMLx = 1 |
||||||||||||||||
Std. ID [10..3] | [2..0] | |||||||||||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||||||||
CAN_FxR1 | CAN_FxR2 | ID | n | ID | n | ID | n | ID | n | |||||||||||||||
CAN_FxR3 | CAN_FxR4 | M | ID | n+1 | M | ID | n+1 | |||||||||||||||||
CAN_FxR5 | CAN_FxR6 | ID | n+1 | ID | n+2 | ID | n+1 | ID | n+2 | |||||||||||||||
CAN_FxR7 | CAN_FxR8 | M | n+2 | M | ID | n+2 | ID | n+3 |
Die Behandlung der "Mask" bzw. "Identifier" Einstellung erfolgt äquivalent zur Beschreibung bei den 32-Bit Filtern unter 8.4
Eine weitere Einstellungsmöglichkeit zur Aufteilung der Filter besteht darin zwei 16 Bit Filter plus vier 8 Bit Filter anzulegen. Während die 16 Bit Filter wie eben beschrieben nur die Identifier Bits EXID[28..15] einer „extended ID“ bzw. alle 11 Bit (STID[10..0]), einer „standard ID“ überwachen, sind die 8 Bit Filter auf die EXID[28..21] einer „extended ID“ bzw. die STID[10..3] Bits beschränkt.
Auch im 16/8 Bit Modus ist wahlweise eine direkte Zuordnung von „Identifier“ oder von Paaren von „Identifier“ und „Masken“ möglich.
16/8 Bit Filter | Konfig. | Konfig. | Konfig. | Konfig. | ||||||||||||||||||||
Ext. ID [28..21] | [20..18] | RTR | IDE | [17..15] | FMHx = 0
FMLx = 0 |
FMHx = 0
FMLx = 1 |
FMHx = 1
FMLx = 0 |
FMHx = 1
FMLx = 1 |
||||||||||||||||
Std. ID [10..3] | [2..0] | |||||||||||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||||||||
CAN_FxR1 | CAN_FxR2 | ID | n | ID | n | ID | n | ID | n | |||||||||||||||
CAN_FxR3 | CAN_FxR4 | M | ID | n+1 | M | ID | n+1 | |||||||||||||||||
CAN_FxR5 | ID | n+1 | ID | n+2 | ID | n+1 | ID | n+2 | ||||||||||||||||
CAN_FxR6 | M | n+2 | M | ID | n+2 | ID | n+3 | |||||||||||||||||
CAN_FxR7 | ID | n+3 | ID | n+3 | ID | n+3 | ID | n+4 | ||||||||||||||||
CAN_FxR7 | M | n+4 | M | ID | n+4 | ID | n+5 |
Der letzte der vier Modi ermöglicht die Konfiguration von acht 8-Bit Filtern innerhalb einer Filter-Bank. 8-Bit Filter können nur die oberen acht Bit eines CAN-Identifiers, EXID[28..21] einer „extended ID“ bzw. die STID[10..3] einer Standard ID, überprüfen bzw. im „Masken“ Modus maximal ausblenden.
8 Bit Filter | Konfig. | Konfig. | Konfig. | Konfig. | ||||||||||||||||||||
Ext. ID [28..21] | [20..18] | RTR | IDE | [17..15] | FMHx = 0
FMLx = 0 |
FMHx = 0
FMLx = 1 |
FMHx = 1
FMLx = 0 |
FMHx = 1
FMLx = 1 |
||||||||||||||||
Std. ID [10..3] | [2..0] | |||||||||||||||||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||||||||||||||||
CAN_FxR1 | ID | n | ID | n | ID | n | ID | n | ||||||||||||||||
CAN_FxR2 | M | ID | n+1 | M | ID | n+1 | ||||||||||||||||||
CAN_FxR3 | ID | n+1 | ID | n+2 | ID | n+1 | ID | n+2 | ||||||||||||||||
CAN_FxR4 | M | ID | n+3 | M | ID | n+3 | ||||||||||||||||||
CAN_FxR5 | ID | n+2 | ID | n+4 | ID | n+2 | ID | n+4 | ||||||||||||||||
CAN_FxR6 | M | M | ID | n+3 | ID | n+5 | ||||||||||||||||||
CAN_FxR7 | M | n+3 | ID | n+5 | ID | n+4 | ID | n+6 | ||||||||||||||||
CAN_FxR8 | M | M | ID | n+5 | ID | n+7 |
In oben aufgeführten Tabellen sind die eingestellten Filter mit „n“ bzw. mit „n+1“ usw. dargestellt. Dies weist darauf hin dass alle, auch deaktivierte Filter innerhalb der 6 möglichen Filter-Bänke von 1 bis zur maximalen Anzahl von konfigurierten Filter-Einstellungen durchnummeriert werden. Diese Nummer stellt den Filter-Index dar der in der jeweiligen Empfangs-Mailbox im Register CAN_MFMIR zur Verfügung gestellt wird.
Sollte mehr als ein Filter die Nachricht gleichzeitig akzeptieren, so wird der Filter-Index entsprechend nachstehender Reihenfolge ermittelt:
Diese Reihenfolge entspricht der internen Sequenz der Filter-Vergleiche. Trifft keines der Filter für die eingehende Nachricht zu, so wird diese verworfen.
Dieses Dokument sowie dessen Inhalt, insbesondere Texte, Fotografien und Grafiken, unterliegt dem Copyright (© 2017) und sind nur mit einer schriftlicher Zustimmung des Autors, Dipl.Ing.(FH) Franz Henkel zur vollständigen oder auszugsweisen Weiterverwendung in Form einer gedruckten oder elektronischen Kopie oder Replikation bzw. einer vollständigen oder auszugsweisen Bereitstellung des Inhalts in schriftlicher oder elektronischer Form, zu verwenden.