„CANNET“ TX- bzw. RX-Mailboxes
Auf dem CAN-Bus werden die höherwertigen „ID-Bits“ zuerst übertragen und haben damit eine höhere Priorität bezüglich der Sendereihenfolge als nachfolgende ID-Bits.
Die „Gruppen-Priorität“ wird in den „EXtended ID“ Bits [27..24] übertragen wobei das EXID-Bit [28] immer eine „1“ beinhaltet. Damit sind 16 Prioritätsgruppen definiert, die Priorität „0“ ist im System aktuell jedoch nicht erlaubt.
beCAN TX Mailbox Aufbau (Page 0,1 und 5) nur wenn PSR = „0x000b“,“0x001b“ ,“0x101b“ | |||
Mailbox Fenster Adressen : 0x00.5428h + Offset 0x00.5437h (Adresse im STM8S208) | |||
Offset | Register Name | Inhalt | Beschreibung |
0x00h | CAN_MCSR | Master Status Register | TERR-ALST-TXOK-RQCP-ABRQ-TXRQ Flags |
0x01h | CAN_MDLCR | TGT - Data Length Code | Anzahl der Daten-Bytes |
0x02h | CAN_MIDR1 | IDE – RTR – EXID[28..24] IDE = 1 (29 Bit ID) RTR = 0 (Data Frame) |
EXID[28] = immer „1“ EXID[27..24] = Gruppen-PRIORITÄT (1 = höchste, 15 = niedrigste) |
0x03h | CAN_MIDR2 | EXID[23..16] | EXID[23..16] = SIG/CHAN Kennung |
0x04h | CAN_MIDR3 | EXID[15..8] | EXID[15..8] = WERT/DIM Kennung in Reply Frames = remote ZNODE-ID |
0x05h | CAN_MIDR4 | EXID[7..0] | EXID[7..0] = local SNODE_ID |
0x06h | CAN_MDAR1 | Daten Byte 1 | Nutzdaten Byte 1 |
0x07h | CAN_MDAR2 | Daten Byte 2 | Nutzdaten Byte 2 |
0x08h | CAN_MDAR3 | Daten Byte 3 | Nutzdaten Byte 3 |
0x09h | CAN_MDAR4 | Daten Byte 4 | Nutzdaten Byte 4 |
0x0Ah | CAN_MDAR5 | Daten Byte 5 | Nutzdaten Byte 5 |
0x0Bh | CAN_MDAR6 | Daten Byte 6 | Nutzdaten Byte 6 |
0x0Ch | CAN_MDAR7 | Daten Byte 7 | Nutzdaten Byte 7 |
0x0Dh | CAN_MDAR8 | Daten Byte 8 | Nutzdaten Byte 8 |
0x0Eh | CAN_MTSRL | Time Stamp Register L | Time[7..0] |
0x0Fh | CAN_MTSRH | Time Stamp Register H | Time[15..8] |
und in der Receive Mailbox ....
beCAN RX FIFO Mailboxen Aufbau (Page 7) nur wenn PSR = „0x111b“ | |||
Receive Mailbox Basis Adresse : 0x00.5428h(Adresse im STM8S208) | |||
Offset | Register Name | Inhalt | Beschreibung |
0x00h | CAN_MFMIR | Filter Match Index | Filter Index verantwortlich für das Akzeptieren |
0x01h | CAN_MDLCR | TGT - Data Length Code | Anzahl der Daten-Bytes |
0x02h | CAN_MIDR1 | IDE – RTR – EXID[28..24] IDE = 1 (29 Bit ID) RTR = 0 (Data Frame) |
EXID[28] = immer „1“ EXID[27..24] = Gruppen-PRIORITÄT (1 = höchste, 15 = niedrigste) |
0x03h | CAN_MIDR2 | EXID[23..16] | EXID[23..16] = SIG/CHAN Kennung |
0x04h | CAN_MIDR3 | EXID[15..8] | EXID[15..8] = WERT/DIM = Kennung in Reply Frames = remote ZNODE-ID |
0x05h | CAN_MIDR4 | EXID[7..0] | EXID[7..0] = local SNODE_ID |
0x06h | CAN_MDAR1 | Daten Byte 1 | Nutzdaten Byte 1 |
0x07h | CAN_MDAR2 | Daten Byte 2 | Nutzdaten Byte 2 |
0x08h | CAN_MDAR3 | Daten Byte 3 | Nutzdaten Byte 3 |
0x09h | CAN_MDAR4 | Daten Byte 4 | Nutzdaten Byte 4 |
0x0Ah | CAN_MDAR5 | Daten Byte 5 | Nutzdaten Byte 5 |
0x0Bh | CAN_MDAR6 | Daten Byte 6 | Nutzdaten Byte 6 |
0x0Ch | CAN_MDAR7 | Daten Byte 7 | Nutzdaten Byte 7 |
0x0Dh | CAN_MDAR8 | Daten Byte 8 | Nutzdaten Byte 8 |
0x0Eh | CAN_MTSRL | Time Stamp Register L | Time[7..0] |
0x0Fh | CAN_MTSRH | Time Stamp Register H | Time[15..8] |
Diese Aufteilung wurde aus folgenden Gründen gewählt:
Das CAN_MIDR1 Register beinhaltet die fünf EXID[28..24] Bits (in RX und TX Mailboxes)
Zur einfachen Behandlung der Gruppen-Priorität wurde ein Nibble gewählt EXID[27..24]
Eine feste „1“ als erstes Bit der Gruppen-Priorität (EXID[28], ist ein rezessiver Wert
Gesamtübersicht EXID[28:0] Bits in einer Mailbox
Die CAN-EXID Bits werden in einer RX oder TX Mailbox in den CAN_MIDRn Bits gespeichert. Die nachfolgende Tabelle zeigt die Zuordnung der Gruppen in den CAN_MIDR-Registern.
EXID[28:0] für Messages ohne Rückantwort (Kanalspezifisch)
Für die CANNET Messages: ALARM, VIRT LINE, BASEDATA, SWITCH OUT.
CAN_MIDR Register für 29 Bit IDs (ohne Rückantwort) | ||||||||||
Register Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | ||
CAN_MIDR1 | „0“ | IDE („1“) | RTR („0“) | „1“ | PRIO[3] | PRIO[2] | PRIO[1] | PRIO[0] | ||
CAN_MIDR2 | SIG[3] | SIG[2] | SIG[1] | SIG[0] | CHAN[3] | CHAN[2] | CHAN[1] | CHAN[0] | ||
CAN_MIDR3 | WERT[3] | WERT[2] | WERT[1] | WERT[0] | DIM[3] | DIM[2] | DIM[1] | DIM[0] | ||
CAN_MIDR4 | SNODE[7] | SNODE[6] | SNODE[5] | SNODE[4] | SNODE[3] | SNODE[2] | SNODE[1] | SNODE[0] |
Die CAN_MIDR-Register sind in den Receive-FIFO Mailboxen, als auch in den Transmit Mailboxen mit den identischen Offsets zum Page-Anfang verfügbar. Die Auswahl der Mailboxen erfolgt über das PSR-Register (Page Select Register), mit der Einschränkung dass die FIFO-Mailboxen über eine Page-Adresse nur sequenziell angesprochen werden können.
EXID[28:0] für Messages mit Rückantwort (mit Framenummerm "FRNR")
Für die CANNET Messages: REQUEST, REPLY, VCOM die sowohl die Sendeadresse SNODE als auch die Zieladresse ZNODE übertragen gilt folgende Struktur.
CAN_MIDR Register für 29 Bit IDs (mit Rückantwort) | ||||||||||
Register Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | ||
CAN_MIDR1 | „0“ | IDE („1“) | RTR („0“) | „1“ | PRIO[3] | PRIO[2] | PRIO[1] | PRIO[0] | ||
CAN_MIDR2 | SIG[3] | SIG[2] | SIG[1] | SIG[0] | FRNR[3] | FRNR[2] | FRNR[1] | FRNR[0] | ||
CAN_MIDR3 | ZNODE[7] | ZNODE[6] | ZNODE[5] | ZNODE[4] | ZNODE[3] | ZNODE[2] | ZNODE[1] | ZNODE[0] | ||
CAN_MIDR4 | SNODE[7] | SNODE[6] | SNODE[5] | SNODE[4] | SNODE[3] | SNODE[2] | SNODE[1] | SNODE[0] |
Die CAN_MIDR-Register sind in den Receive-FIFO Mailboxen, als auch in den Transmit Mailboxen mit den identischen Offsets zum Page-Anfang verfügbar. Die Auswahl der Mailboxen erfolgt über das PSR-Register (Page Select Register), mit der Einschränkung dass die FIFO-Mailboxen über eine einzelne Page-Adresse nur sequenziell angesprochen werden können.
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.