Zum Hauptinhalt springen

CAN-Bus smartCORE Socket Modul

Beschreibung​

Das canbus Modul stellt die CAN-Bus Hardware Schnittstelle via Fast Message Dispatcher zur Verfügung.

Hierbei werden

  • einerseits gelesene CAN-Bus Botschaften dispatched
  • andererseits ein Schreibmechanismus zur Verfügung gestellt

Grundsätzlich kann das Modul mit beliebigen Fast Message Receivern betrieben werden. Im Kontext von CAN-Bus sind dies zweckmäßig

  • der (generische) Fast Message Producer ("fmproducer")
  • das DBC Receiver Modul ("dbc")

Verwendete Schnittstellen & Protokolle​

  • CAN-Bus
  • Fast Message Dispatching

JSON-Konfiguration​

Im folgenden Abschnitt soll die gesamte JSON-Konfiguration des Moduls beschrieben und die einzelnen Parameter erläutert werden.

Beispielkonfiguration (minimal)​

{
"module":"CANBus1",
"factory":"canbus",
"config":{
"interface":1
}
}

Beispielkonfiguration (maximal)​

{
"module":"CANBus1",
"factory":"canbus",
"config":{
"fmd":"CANBus1",
"priority":80,
"writeBufferSize":1024,
"interface":1,
"bitrate":500000,
"listenOnly":false,
"maxBurstDurationUs":0,
"dispatchCanIdAsDataPrefix":false,
"smioUtcClock":"0x010"
}
}

Parameter-Liste​

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
fmdNeinSTRINGName der ModulinstanzFast Message Dispatcher Name
priorityNeinINT1 - 9980Scheduling Priorität der CAN-Bus Schnittstelle
writeBufferSizeNeinINT1 -8192Max. Anzahl der Frames im Schreibpuffer
interfaceJAINT oder STRING1 -N/AIndex oder Name der CAN-Bus Schnittstelle (siehe smartDEVICE Dokumentation)
bitrateNeinINT1 -500000Bitrate der CAN-Bus Schnittstelle
listenOnlyNeinBOOLfalse, truefalseListen-only Flag der CAN-Bus Schnittstelle
maxBurstDurationUsNeinINT0 -0Max Burst Duration [us] der CAN-Bus Schnittstelle
dispatchCanIdAsDataPrefixNeinBOOLfalse, truefalseSchreibe vor den weitergeleiteten CAN-Bus Datenframe die 32-bit CAN ID in Little Endian Darstellung. Dies ist sinnvoll für CAN-ID-unabhängige Fast Message Receiver, wie z.B. CAN RAW und Debugging
keepEFFFlag 1NeinBOOLfalse, truefalseTypischerweise wird das EFF - Flag in der CAN-Adressierung automatisch gesetzt, je nachdem, in welchem Wertebereich die CAN-ID liegt (11 / 29 bit). Für die Interpretation kann das Bit an den fmproducer weitergegeben werden. Dann sind 29bit Adressen mit dem Offset  2147483648 (0x80000000) anzugeben.
smioUtcClock 2NeinINT oder STRING0, 1 - 0x7FF0CAN-ID, auf der die Systemzeit alle 10 Sekunden an alle smartIO mit ESP32-Firmware gesendet wird (siehe smartIO-Uhrzeit). 0 schaltet die Funktion ab. Als STRING sind auch Hex-Angaben wie "0x010" möglich.

smartIO-Uhrzeit (smioUtcClock)​

Die smartIO mit ESP32-Firmware (z.B. smartIO 8x24) haben keine batteriegepufferte Echtzeituhr. Sie übernehmen ihre Uhrzeit aus einer CAN-Botschaft, deren CAN-ID am smartIO mit SYStem:UTC eingestellt wird (Default 0x010).

Ist smioUtcClock gesetzt, sendet das canbus Modul diese Botschaft alle 10 Sekunden als Broadcast an alle smartIO am Bus. Eine Quittung gibt es nicht. Die CAN-ID im canbus Modul und am smartIO müssen übereinstimmen.

ByteInhalt
0 - 5Systemzeit in Millisekunden seit 1970-01-01 UTC, 48 bit, Motorola (big endian)
60
7Prüfsumme: Summe der Bytes 0 - 6 (modulo 256)

Gesendet wird die Systemzeit des smartCORE-Geräts so, wie sie ist. Geht die Systemuhr falsch, erhalten auch die smartIO die falsche Zeit.

Bei "listenOnly": true wird smioUtcClock ignoriert.

Modul-Informationen​

InformationWert
AutoroptiMEAS GmbH
seit smartCORE0.120
ModultypDispatcher (Producer)
Abhängigkeitenbeliebiges Fast Message Receiver Modul (z.B. "dbc", "fmproducer")

Footnotes​

  1. Erst ab smartCore Version 2.10.1 verfügbar. ↩

  2. Erst ab smartCORE Version 2.12 verfügbar. ↩