16 Bit Filter im CANNET System
Durch die Verwendung von 16 Bit Hardware ID-Filter für die „CANNET“ Protokolle werden nur die in der Seite "Stack ID Gruppen" vorgestellten Felder PRIO (Priorität), SIG (Signal) und CHAN (Channel) , sowie das höchstwertige Bit ( EXID[15] ) des WERT Feldes, von diesen Filtern erfasst. Die weitere Auswertung erfolgt für die Felder WERT (Wertekennung 0..2), DIM (Dimensionskennung) als auch für die NODE (Nodeadresse) in der Firmware.
Die Filter Register sind in der beCAN Hardware innerhalb von 3 Filter-Pages mit jeweils zwei Filterbänken untergebracht und können über das beCAN Register CAN_PSR (Page Select Register) ausgewählt werden.
In der CANNET Architektur kommt nur die 16-Bit Filtereinstellung mit FMHx = 0 und FMLx = 0 zur Anwendung. Dabei sind pro Filter ein 16 Bit ID-Wert und ein 16 Bit MASK-Wert einzustellen.
16 Bit Filter | Konfiguration | Konfiguration | Konfiguration | Konfiguration | ||||||||||||||||||||||||
Ext. ID [28..21] | Ex.ID[20..18] | R T R |
I D E |
Ex.ID[17..15] | FMHx = 0 FMLx = 0 |
FMHx = 0 FMLx = 1 |
FMHx = 1 FMLx = 0 |
FMHx = 1 FMLx = 1 |
||||||||||||||||||||
Std. ID [10..3] | St.ID[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 | M | ID | n+2 | ID | n+3 |
Das „x“ in den Filterregistern bezieht sich auf die verwendete Filterbank. Verfügbar sind Filterbank 0 bis Filterbank 5, wobei jeweils zwei Filterbänke in einer Filter-Page enthalten sind.
Eine Filterbank (im nachfolgenden Beispiel die Filterbank „0“) ermöglicht so die Konfiguration von zwei unabhängigen 16 Bit ID/MASK Filtern, wobei sich folgendes Bild ergibt:
beCAN_F0Rn Register (Beispiel: Filterbank 0 ) bei 16 Bit ID / MASK Filter (FMHx = FMLx = 0) | ||||||||||
Register Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | ||
CAN_F0R1 | EXID[28] | EXID[27] | EXID[26] | EXID[25] | EXID[24] | EXID[23] | EXID[22] | EXID[21] | ||
CAN_F0R2 | EXID[20] | EXID[19] | EXID[18] | RTR | IDE | EXID[17] | EXID[16] | EXID[15] | ||
CAN_F0R3 | MASK[28] | MASK[27] | MASK[26] | MASK[25] | MASK[24] | MASK[23] | MASK[22] | MASK[21] | ||
CAN_F0R4 | MASK[20] | MASK[19] | MASK[18] | RTR | IDE | MASK[17] | MASK[16] | MASK[15] | ||
CAN_F0R5 | EXID[28] | EXID[27] | EXID[26] | EXID[25] | EXID[24] | EXID[23] | EXID[22] | EXID[21] | ||
CAN_F0R6 | EXID[20] | EXID[19] | EXID[18] | RTR | IDE | EXID[17] | EXID[16] | EXID[15] | ||
CAN_F0R7 | MASK[28] | MASK[27] | MASK[26] | MASK[25] | MASK[24] | MASK[23] | MASK[22] | MASK[21] | ||
CAN_F0R8 | MASK[20] | MASK[19] | MASK[18] | RTR | IDE | MASK[17] | MASK[16] | MASK[15] |
Als Beispiel: Die ID/MASK Konfiguration findet Anwendung für das CANNET „ALARM“ Signal und ist in nachfolgender Tabelle in den Registern CAN_F0R1 bis CAN_F0R4 dargestellt. Die weiteren Register in der zweiten Hälfte der Registerbank, CAN_F0R5 bis CAN_F0R8 sind für ein weiteres Filter reserviert.
beCAN_F0Rn Register (Beispiel: Filterbank 0 ) bei 16 Bit ID / MASK Filter für „ALARM“ und „VIRT.LINE“ | ||||||||||
Register Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | ||
CAN_F0R1 | IDH | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | |
CAN_F0R2 | IDL | 1 | 0 | 0 | RTR = 0 | IDE = 1 | 0 | 1 | 0 | |
CAN_F0R3 | MH | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
CAN_F0R4 | ML | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | |
CAN_F0R5 | IDH | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | |
CAN_F0R6 | IDL | 1 | 0 | 0 | RTR = 0 | IDE = 1 | 0 | 0 | 0 | |
CAN_F0R7 | MH | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
CAN_F0R8 | ML | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |
CAN_F0R1 beinhaltet das statische Bit „1“ in EXID[28], die PRIO Kennung in EXID[27:24] und die höherwertigen 3 SIG-Bits EXID[23:21]. CAN_F0R2 enthält das niedrigwertigste SIG-Bit EXID[20], die CHAN-Bits in den Bits EXID[19:18] und EXID[17:16], sowie das höchstwertige Bit der WERT Kennung in EXID[15].
In der MASKE im Register CAN_F0R4 sind die CHAN-Bits durch den Wert „0“ ausmaskiert (schraffiert) und werden nicht verglichen. Dadurch werden alle „ALARM“ Signale durch dieses Filter erfasst. Die weitere Dekodierung erfolgt per Software.
Copyright 2019 by Dipl.Ing.(FH) Franz Henkel
Dieses Dokument sowie dessen Inhalt, insbesondere Texte, Fotografien und Grafiken, unterliegt dem Copyright (© 2019) 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, gedruckter oder elektronischer Form, zu verwenden.