Bus CAN

connections-canConexiones – CAN

CampoDescripción
ConfiguraciónConfiguración del Bus CAN
Mail Boxes32 bandejas de correo la recepción/emisión de mensajes
FiltroConfiguración de los consumidores del sistema
TelemetríaInteracción entre las variables del sistema y las del bus CAN

 

Configuración

can_high

  • Baudrate: velocidad de transmisión de datos en el bus CAN
  • TSEG1: segmento de tiempo 1.
  • TSEG2: segmento de tiempo 2.
Precaución: estos valores deben cambiarse solo por usuarios experimentados. Los valores por defecto se muestran en la imagen anterior.

Bandejas de Correo

Se pueden configurar hasta 32 bandejas de corres para la transmisión y recepción de mensajes.

can-mailboxesCAN – Bandejas de Correo

  • Config: tipo de bandeja
    • TX: Bandeja de transmisión.
    • RX: Bandeja de recepción.
    • RXO: Sobrescribir la bandeja de recepción.
  • ID: mensaje de 11 bits con el identificador del mensaje TX o RX (expresado en valor decimal).
  • Length: longitud del mensaje en bytes (de 1 a 8).
  • Transmisión: las bandejas TX se deben configurar de forma que se permita la transmisión de mensajes a través del puerto CAN. Los mensajes se transmitirán con el ID y el tamaño preestablecido.
  • Recepción: los mensajes recibidos se almacenarán en la bandeja RX hasta que los datos se escriben en un consumidor. Cualquier mensaje entrante que se reciba después de que se hayan llenado las bandejas será descartado. En el caso de configurar un mensaje RXO, los nuevos mensajes con esta ID serán sobrescritos en la bandeja definida.
  • Máscara:  este filtro se configura para la recepción de mensajes. Los datos recibidos se almacenan en las bandejas donde la ID del mensaje coincide con la de la bandeja. La máscara añade cierta flexibilidad en la recepción, ya que al comparar los datos de la bandeja y del mensaje, solo los dígitos binarios configurados como 0 en la máscara se tendrán en cuenta (Ej. para una configuración con Máscara: 00111 e ID: 10110 todos los mensajes entrantes con dirección 10XXX serán recibidos en dicha bandeja).
  • Sobrescribir: el proceso de almacenamiento de datos en las bandejas se realiza en sentido inverso, del 32 al 1.  Cuando se emplean múltiples bandejas con la misma ID y una de ellas es RXO, se recomienda colocar esta bandeja en la posición mas baja, ya que en caso contrario todos los mensajes recibidos para esta ID serán sobrescritos en la misma bandeja, sin llenar el buffer.

Filtro

El filtro se usa para configurar los consumidores del sistema. Estos parámetros solo deben ser editados por usuarios experimentados.

can-filterCAN – Filtro

Telemetría

La interacción entre las variables del sistema y las variables contenidas en los mensajes CAN se realiza en la pestaña Telemetry.

can_telemetryCAN – Telemetría

Esta pestaña contiene los parámetros para configurar la relación entre las variables que se leen en el bus CAN y las variables del sistema. Una vez que Pipe ha “capturado” el mensaje (pestaña Configuration) y lo ha almacenado en una bandeja, la información que este contiene puede ser leída y guardada en el software. Para ello, pulse el botón “+” para crear un nuevo mensaje e introduzca el ID (la misma escrita en Configuration), posteriormente presione el botón marcado cómo 1 para que los valores de ID STD y Mask STD se coloquen automáticamente.

El botón 2 establece la endianness del mensaje, este indica como se leen los bytes : de izquierda a derecha (big) o de derecha a izquierda (little).

El menú 3 establece el filtro para diferenciar mensajes dependiendo de su contenido (y no solo de su ID). Para cada uno de los bytes, el usuario indica que bits se consideran en la diferenciación (o en binario) y cuales no (1 en binario). Por defecto, este valor es 255, 8 unos en binario, por lo que no importa cual sea el contenido del mensaje y se leerá contenga lo que contenga. Por otro lado, si hay algún 0 en la máscara (por ejemplo 254 es 1111 1110, un 0 en la última posición), el bit contenido en esa posición (0 o 1) deberá coincidir con el bit establecido en el campo Value, para que el mensaje quede almacenado, sino se descartará.

El botón 4 muestra el menú para configurar como se dividen y almacenan los mensajes en las variables del sistema.

variables_can

Existen 4 elementos diferentes que se pueden añadir al análisis del un mensaje CAN:

  • Variable: usado para almacenar ciertos bits en una variable del sistema (RX) o para enviar una cierta variable a través el bus CAN (TX).variable_config_canCuando se están leyendo datos de un bus CAN, es común tener información sobre la disposición de los mensajes (proporcionado por el fabricante del dispositivo). En caso de poseer dicha información, consideremos a modo de ejemplo que los 3 primeros bits corresponden a una cierta variable. Si esa variable siempre es positiva, la opción unsigned debe ser seleccionada;  si por otra parte puede ser positiva o negativa se selecciona signed. Los campos Input/Output se usan para realizar la transformación de binario a decimal, correspondiendo Input al valor decimal y Output al valor binario. Consideremos el ejemplo mostrado en la imagen anterior, el número binario se divide entre 10 para hacer la transformación a decimal, por lo que la variable representada irá de 0 a 0.7 (ya que 3 bits sin signo pueden representar número del 0 al 7).
  • Skip: esta opción se emplea para descartar un cierto número de bits del mensaje (el número máximo de bits que se pueden descartar con un solo “Skip” es 32).
  • Matcher: esta opción se usa para enviar un valor constante a través del bus CAN, por lo que solo se emplea en transmisión (TX).matcher
  • Introduzca el número de bits y el valor de la constante que se va a enviar a través del bus. Como ejemplo, un “matcher” de 8 bits con un valor de 9 sería: 0000 1001.

En la sección TX de la pestaña de telemetría existen 3 parámetros que configurar:

  • Period: tiempo (en segundos) entre las entregas de mensajes TX.
  • Decimation: diezmado sobre la frecuencia global de transmisión. Ej.: para un periodo de 0.1 y un diezmado de 3, los mensajes se transmitirán en periodos de 0.3s
  • Offset: Tiempo hasta que comienza el envío (en múltiplos del periodo). Ej.: para un periodo de 0.1, un diezmado de 3 y un offset de 2, los mensajes se enviarán cada 0.3 segundos empezado a los 0.2 segundos.

Finalmente, la opción TX Ini se usa para configurar la transmisión de mensajes que se envían solo una vez, al comienzo de la operación, y que normalmente están relacionados con el arranque del dispositivo externo que se comunica vía CAN. Su configuración es la misma que en los casos previos, teniendo ahora un parámetro adicional llamado Delay (en vez de periodo, decimation y offset) para establecer el tiempo que transcurre entre el arranque del autopiloto y el envío del mensaje.