„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 Notiz

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.