Das „VCOM CANNET Protokoll“, ausgelöst über ein „VCOM“ Kommando an die lokale UART, liefert über den CANNET Bus max. 32 Byte an UART-Daten in bis zu 4 CAN Rahmen . Die Länge der UART-Daten wird durch die „CrLf“ Sequenz bestimmt die als Abschlußsequenz vom UART Protokoll vorgegeben und innerhalb der möglichen vier CAN Rahmen auch an den Empfänger weitergeleitet wird.
Wird innerhalb der maximal möglichen 32 UART-Daten eines VCOM Befehls keine „CrLf“ Sequenz detektiert, werden die ersten 32 Datenbytes in vier „VCOM“ CAN-Rahmen übertragen und die weiteren Datenbytes werden danach verworfen. Die „CrLf“ Sequenz wird in diesem Fall von der Empfänger-Node automatisch an die Ausgabe der 32 Datenbytes über die lokale UART angehängt. Wird als 32stes Byte ein „Cr“ detektiert wird nur das „Lf“ ergänzt.
Ein VCOM Befehl der lokalen UART löst mindestens einen VCOM CAN Rahmen aus, der acht Datenbytes enthalten kann. Wird innerhalb dieser acht Datenbytes die „Cr“-„Lf“ Sequenz detektiert wird kein weiterer VCOM CAN Rahmen gesendet. Die Länge (DLC) der im CAN Rahmen enthaltenen <UART Daten> richtet sich nach der Anzahl der Datenbytes vor der „CrLf“ Sequenz plus die beiden „Cr“ und „Lf“ Zeichen. Die Rahmennummer des ersten VCOM CAN Rahmens ist 0.
1FB0znsn - <UART Daten>
Das Bild zeigt einen „VCOM“-Rahmen 0x1FB mit der Rahmennummer 0 der von Node 55 an Node 7F gesendet wird.
Werden mehr als 8 UART-Daten mit dem VCOM Befehl gesendet, so wird ein zweiter VCOM CAN Rahmen ausgelöst um die weiteren Datenbytes zu übertragen.
Dieser zweite Rahmen kann ebenfalls durch eine „Cr“-„Lf“ Sequenz gekürzt werden und enthält in den MDARn Bytes nur die vor der „Cr“-„Lf“ Sequenz übertragenen UART-Bytes 9 bis max. 14, plus die „Cr“-„Lf“ Zeichen. Die Rahmennummer des zweiten VCOM CAN Rahmens ist 1.
1FB1znsn - <UART Daten>
Werden mehr als 16 UART-Daten mit dem VCOM Befehl gesendet, so wird ein dritter VCOM CAN Rahmen ausgelöst um die weiteren Datenbytes zu übertragen.
Dieser dritte Rahmen kann ebenfalls durch eine „Cr“-„Lf“ Sequenz gekürzt werden und enthält in den MDARn Bytes nur die vor der „Cr“-„Lf“ Sequenz übertragenen UART-Bytes 17 bis max. 22, plus die „Cr“-„Lf“ Zeichen. Die Rahmennummer des dritten VCOM CAN Rahmens ist 2.
1FB2znsn - <UART Daten>
Werden mehr als 24 UART-Daten mit dem VCOM Befehl gesendet, so wird ein vierter VCOM CAN Rahmen ausgelöst um die weiteren Datenbytes zu übertragen.
Dieser vierte Rahmen kann ebenfalls durch eine „Cr“-„Lf“ Sequenz gekürzt werden und enthält in den MDARn Bytes nur die vor der „Cr“-„Lf“ Sequenz übertragenen UART-Bytes 25 bis max. 30, plus die „Cr“-„Lf“ Zeichen.
Wird innerhalb der 32 <UART Daten> keine „Cr“-„Lf“ Sequenz erkannt so werden alle 32 Bytes ohne eine „Cr“-„Lf“ Sequenz übertragen . Eventuelle weitere Bytes werden dagegen verworfen.
Die Rahmennummer des vierten VCOM CAN Rahmens ist 3.
1FB2znsn - <UART Daten>
29 Bit ID für VCOM Protokoll | ||||||||||
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] = 1 | PRIO[2] = 1 | PRIO[1] = 1 | PRIO[0] = 1 | ||
CAN_MIDR2 | SIG[3] = 1 | SIG[2] = 0 | SIG[1] = 1 | SIG[0] = 1 | CHAN[3] = 0 | CHAN[2] = 0 | CHAN[1] = 0 | CHAN[0] = 0 | ||
CAN_MIDR3 | ZNODE[7]=M | ZNODE[6]=M | ZNODE[5]=M | ZNODE[4]=M | ZNODE[3]=M | ZNODE[2]=M | ZNODE[1]=M | ZNODE[0]=M | ||
CAN_MIDR4 | SNODE[7]= N | SNODE[6]= N | SNODE[5]= N | SNODE[4]= N | SNODE[3]= N | SNODE[2]= N | SNODE[1]=N> | SNODE[0]=N |
Daraus ergeben sich folgende Einstellungen für ein „GETxxx“ Protokoll:
Als Parameter in den Reply Protokollen wird die <Kommando-Kennung> übertragen.
Die <RequesterNode-ID> (in SNODE mit „sn“) definiert von welcher Node der jeweilige Request angestossen wurde.
Die <Replier Node-ID> (in ZNODE mit „zn“ bezeichnet) beinhaltet wie allgemein definiert, die Adresse der sendenden, lokalen Node.
Extended ID in MIDR Bytes
Bit 7 | = 0 | per Definition in beCAN | MIDR1.7 | |
IDE Bit | = 1 | Extended ID | MIDR1.6 | |
RTR Bit | = 0 | Data Rahmen | MIDR1.5 | |
CANNET Bit | = 1 | per Definition | MIDR1.4 | EXID[28] |
PRIO Wert | PRIORITÄT | 0xFh für VCOM | MIDR1.[3:0] | EXID[27:24] |
SIG Wert | SIGNAL | 0xBh für VCOM DATA | MIDR2.[7:4] | EXID[23:20] |
FRNR Wert | FRAME NR. | 0x0h für 1.Rahmen | MIDR2.[3:0] | EXID[19:16] |
ZNODE Adresse | Ziel NODE | 0x01h bis 0xFFh (1..255) | MIDR3.[7:4] | EXID[15:8] |
SNODE Adresse | Sende NODE | 0x01h bis 0xFFh (1...255) | MIDR4.[7:0] | EXID[7:0] |
Controlbytes
= Data Length Code (DLC) = 3...8 Byte MDLCR
Datenbyte in MDAR Bytes
· 1.Byte = UART Daten 1 (VCOM_RX_BUF 0) MDAR1
· 2.Byte = UART Daten 2 (VCOM_RX_BUF 1) MDAR2
· 3.Byte = UART Daten 3 (VCOM_RX_BUF 2) MDAR3 (option)
· 4.Byte = UART Daten 4 (VCOM_RX_BUF 3) MDAR4 (option)
· 5.Byte = UART Daten 5 (VCOM_RX_BUF 4) MDAR5 (option)
· 6.Byte = UART Daten 6 (VCOM_RX_BUF 5) MDAR6 (option)
· 7.Byte = UART Daten 7 (VCOM_RX_BUF 6) MDAR7 (option)
· 8.Byte = UART Daten 8 (VCOM_RX_BUF 7) MDAR8 (option)
Extended ID in MIDR Bytes
Bit 7 | = 0 | per Definition in beCAN | MIDR1.7 | |
IDE Bit | = 1 | Extended ID | MIDR1.6 | |
RTR Bit | = 0 | Data Rahmen | MIDR1.5 | |
CANNET Bit | = 1 | per Definition | MIDR1.4 | EXID[28] |
PRIO Wert | PRIORITÄT | 0xFh für VCOM | MIDR1.[3:0] | EXID[27:24] |
SIG Wert | SIGNAL | 0xBh für VCOM | MIDR2.[7:4] | EXID[23:20] |
FRNR Wert | FRAME NR. | 0x1h für 2.Rahmen | MIDR2.[3:0] | EXID[19:16] |
ZNODE Adresse | Ziel NODE | 0x01h bis 0xFFh (1..255) | MIDR3.[7:4] | EXID[15:8] |
SNODE Adresse | Sende NODE | 0x01h bis 0xFFh (1...255) | MIDR4.[7:0] | EXID[7:0] |
Controlbytes
= Data Length Code (DLC) = 3 bis 8 Byte MDLCR
Datenbyte in MDAR Bytes
· 1.Byte = UART Daten 9 (VCOM_RX_BUF 8) MDAR1
· 2.Byte = UART Daten 10 (VCOM_RX_BUF 9) MDAR2
· 3.Byte = UART Daten 11 (VCOM_RX_BUF 10) MDAR3 (option)
· 4.Byte = UART Daten 12 (VCOM_RX_BUF 11) MDAR4 (option)
· 5.Byte = UART Daten 13 (VCOM_RX_BUF 12) MDAR5 (option)
· 6.Byte = UART Daten 14 (VCOM_RX_BUF 13) MDAR6 (option)
· 7.Byte = UART Daten 15 (VCOM_RX_BUF 14) MDAR7 (option)
· 8.Byte = UART Daten 16 (VCOM_RX_BUF 15) MDAR8 (option)
Extended ID in MIDR Bytes
Bit 7 | = 0 | per Definition in beCAN | MIDR1.7 | |
IDE Bit | = 1 | Extended ID | MIDR1.6 | |
RTR Bit | = 0 | Data Rahmen | MIDR1.5 | |
CANNET Bit | = 1 | per Definition | MIDR1.4 | EXID[28] |
PRIO Wert | PRIORITÄT | 0xFh für VCOM | MIDR1.[3:0] | EXID[27:24] |
SIG Wert | SIGNAL | 0xBh für VCOM | MIDR2.[7:4] | EXID[23:20] |
FRNR Wert | FRAME NR. | 0x2h für 3.Rahmen | MIDR2.[3:0] | EXID[19:16] |
ZNODE Adresse | Ziel NODE | 0x01h bis 0xFFh (1..255) | MIDR3.[7:4] | EXID[15:8] |
SNODE Adresse | Sende NODE | 0x01h bis 0xFFh (1...255) | MIDR4.[7:0] | EXID[7:0] |
Controlbytes
= Data Length Code (DLC) = 3 bis 8 Byte MDLCR
Datenbyte in MDAR Bytes
· 1.Byte = UART Daten 17 (VCOM_RX_BUF 16) MDAR1
· 2.Byte = UART Daten 18 (VCOM_RX_BUF 17) MDAR2
· 3.Byte = UART Daten 19 (VCOM_RX_BUF 18) MDAR3 (option)
· 4.Byte = UART Daten 20 (VCOM_RX_BUF 19) MDAR4 (option)
· 5.Byte = UART Daten 21 (VCOM_RX_BUF 20) MDAR5 (option)
· 6.Byte = UART Daten 22 (VCOM_RX_BUF 21) MDAR6 (option)
· 7.Byte = UART Daten 23 (VCOM_RX_BUF 22) MDAR7 (option)
· 8.Byte = UART Daten 24 (VCOM_RX_BUF 23) MDAR8 (option)
Extended ID in MIDR Bytes
Bit 7 | = 0 | per Definition in beCAN | MIDR1.7 | |
IDE Bit | = 1 | Extended ID | MIDR1.6 | |
RTR Bit | = 0 | Data Rahmen | MIDR1.5 | |
CANNET Bit | = 1 | per Definition | MIDR1.4 | EXID[28] |
PRIO Wert | PRIORITÄT | 0xFh für VCOM | MIDR1.[3:0] | EXID[27:24] |
SIG Wert | SIGNAL | 0xBh für VCOM | MIDR2.[7:4] | EXID[23:20] |
FRNR Wert | FRAME NR. | 0x3h für 4.Rahmen | MIDR2.[3:0] | EXID[19:16] |
ZNODE Adresse | Ziel NODE | 0x01h bis 0xFFh (1..255) | MIDR3.[7:4] | EXID[15:8] |
SNODE Adresse | Sende NODE | 0x01h bis 0xFFh (1...255) | MIDR4.[7:0] | EXID[7:0] |
Controlbytes
= Data Length Code (DLC) = 3...8 Byte MDLCR
Datenbyte in MDAR Bytes
· 1.Byte = UART Daten 25 (VCOM_RX_BUF 24) MDAR1
· 2.Byte = UART Daten 26 (VCOM_RX_BUF 25) MDAR2
· 3.Byte = UART Daten 27 (VCOM_RX_BUF 26) MDAR3 (option)
· 4.Byte = UART Daten 28 (VCOM_RX_BUF 27) MDAR4 (option)
· 5.Byte = UART Daten 29 (VCOM_RX_BUF 28) MDAR5 (option)
· 6.Byte = UART Daten 30 (VCOM_RX_BUF 29) MDAR6 (option)
· 7.Byte = UART Daten 31 (VCOM_RX_BUF 30) MDAR7 (option)
· 8.Byte = UART Daten 32 (VCOM_RX_BUF 31) MDAR8 (option)
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.