VCOM Output Protokoll


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.

VCOM Rahmen Nr.1:

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.

 VCOM Rahmen Nr.2:

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>

VCOM Rahmen Nr.3:

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>

VCOM Rahmen Nr.4:

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:

  • CAN_MIDR1                0x5Fh                mit PRIO = F                                       System Kommunikation
  • CAN_MIDR2                0xBXh               mit SIG = E, FRNR = X                       ASCII Data, Frame Nummer
  • CAN_MIDR3                0xMMh            mit „MM“ = Request Node            Requester ZNODE Number
  • CAN_MIDR4                0xNNh              mit„NN“ = Node Number               SNODE Number (local)
  • 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.

    Das Format des ersten übertragenen Rahmens für ein VCOM Protokoll

    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)

    Das Format des zweiten übertragenen Rahmens für ein VCOM Protokoll

    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)

    Das Format des dritten übertragenen Rahmens für ein VCOM Protokoll

    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)

    Das Format des vierten übertragenen Rahmens für ein VCOM Protokoll

    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 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.