Saltar al contenido principal

Módulo de socket CAN-Bus de smartCORE

Descripción​

El módulo canbus pone a disposición la interfaz de hardware del bus CAN a través del Fast Message Dispatcher.

Para ello

  • por un lado, se distribuyen (dispatch) los mensajes leídos del bus CAN
  • por otro lado, se proporciona un mecanismo de escritura

En principio, el módulo puede operar con cualquier Fast Message Receiver. En el contexto del bus CAN resultan adecuados

  • el Fast Message Producer (genérico) ("fmproducer")
  • el módulo receptor DBC ("dbc")

Interfaces y protocolos utilizados​

  • CAN-Bus
  • Fast Message Dispatching

Configuración JSON​

En la siguiente sección se describe la configuración JSON completa del módulo y se explican los distintos parámetros.

Configuración de ejemplo (mínima)​

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

Configuración de ejemplo (máxima)​

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

Lista de parámetros​

Nombre del parámetroObligatorioTipo de datosRango de valores recomendadoValor predeterminadoDescripción
fmdNoSTRINGNombre de la instancia del móduloNombre del Fast Message Dispatcher
priorityNoINT1 - 9980Prioridad de planificación (scheduling) de la interfaz CAN-Bus
writeBufferSizeNoINT1 -8192Número máx. de tramas en el búfer de escritura
interfaceSÍINT o STRING1 -N/AÍndice o nombre de la interfaz CAN-Bus (véase la documentación de smartDEVICE)
bitrateNoINT1 -500000Velocidad de transmisión de la interfaz CAN-Bus
listenOnlyNoBOOLfalse, truefalseIndicador listen-only de la interfaz CAN-Bus
maxBurstDurationUsNoINT0 -0Max Burst Duration [us] de la interfaz CAN-Bus
dispatchCanIdAsDataPrefixNoBOOLfalse, truefalseEscribe delante de la trama de datos CAN-Bus reenviada el CAN ID de 32 bits en representación Little Endian. Resulta útil para Fast Message Receivers independientes del CAN ID, como p. ej. CAN RAW y depuración
keepEFFFlag 1NoBOOLfalse, truefalseNormalmente, el indicador EFF del direccionamiento CAN se establece automáticamente según el rango de valores en el que se encuentre el CAN ID (11 / 29 bits). Para la interpretación, el bit puede transmitirse al fmproducer. En ese caso, las direcciones de 29 bits deben indicarse con el desplazamiento 2147483648 (0x80000000).
smioUtcClock 2NoINT o STRING0, 1 - 0x7FF0CAN ID en el que la hora del sistema se envía cada 10 segundos a todos los smartIO con firmware ESP32 (véase Hora de los smartIO). 0 desactiva la función. Como STRING también son posibles indicaciones hexadecimales como "0x010".

Hora de los smartIO (smioUtcClock)​

Los smartIO con firmware ESP32 (p. ej. smartIO 8x24) no disponen de un reloj en tiempo real con batería de respaldo. Toman su hora de un mensaje CAN cuyo CAN ID se configura en el smartIO con SYStem:UTC (predeterminado 0x010).

Si smioUtcClock está definido, el módulo canbus envía este mensaje cada 10 segundos como difusión (broadcast) a todos los smartIO del bus. No hay acuse de recibo. El CAN ID del módulo canbus y el del smartIO deben coincidir.

ByteContenido
0 - 5Hora del sistema en milisegundos desde 1970-01-01 UTC, 48 bits, Motorola (big endian)
60
7Suma de comprobación: suma de los bytes 0 - 6 (módulo 256)

Se envía la hora del sistema del dispositivo smartCORE tal cual. Si el reloj del sistema no es correcto, los smartIO también reciben la hora incorrecta.

Con "listenOnly": true se ignora smioUtcClock.

Información del módulo​

InformaciónValor
AutoroptiMEAS GmbH
desde smartCORE0.120
Tipo de móduloDispatcher (Producer)
Dependenciascualquier módulo Fast Message Receiver (p. ej. "dbc", "fmproducer")

Footnotes​

  1. Disponible solo a partir de la versión 2.10.1 de smartCore. ↩

  2. Disponible solo a partir de la versión 2.12 de smartCORE. ↩