Descripción general de la red de controladores de área (CAN)

Contenido

What is CAN?

A controller area network (CAN) bus is a high-integrity serial bus system for networking intelligent devices. CAN busses and devices are common components in automotive and industrial systems. Using a CAN interface device, you can write LabVIEW applications to communicate with a CAN network.

Historia de CAN

Bosch originalmente desarrolló CAN en 1985 para redes en vehículos. En el pasado, los fabricantes de automóviles conectaban los dispositivos electrónicos en vehículos utilizando sistemas de cableado punto a punto. Los fabricantes comenzaron a usar cada vez más productos electrónicos en los vehículos, lo que resultó en juegos voluminosos de cables que eran pesados y costosos. Luego reemplazaron el cableado dedicado con redes en vehículo, lo que redujo el costo, la complejidad y el peso del cableado. CAN, un sistema de bus serial de alta integridad para dispositivos inteligentes en red, surgió como la red en vehículo estándar. La industria automotriz adoptó CAN rápidamente y, en 1993, se convirtió en el estándar internacional conocido como ISO 11898. Desde 1994, varios protocolos de alto nivel se han estandarizado en CAN, como CANopen y DeviceNet. Otros mercados han adoptado ampliamente estos protocolos adicionales, que ahora son estándares para las comunicaciones industriales. Esta nota técnica se centra en CAN como una red en vehículo.

Beneficios de CAN

Red liviana y de bajo costo

CAN proporciona una red económica y duradera que ayuda a varios dispositivos CAN a comunicarse entre sí. Una ventaja de esto es que las unidades de control electrónico (ECU) pueden tener una sola interfaz CAN en lugar de entradas analógicas y digitales para cada dispositivo en el sistema. Esto disminuye el costo total y el peso en los automóviles.  

Comunicación de radiodifusión

Cada uno de los dispositivos en la red tiene un chip controlador CAN y, por lo tanto, es inteligente. Todos los dispositivos en la red visualizan todos los mensajes transmitidos. Cada dispositivo puede decidir si un mensaje es relevante o si debe filtrarse.  Esta estructura permite realizar modificaciones a las redes CAN con un impacto mínimo.  Se pueden agregar nodos adicionales no transmisores sin modificar la red.

Prioridad

Cada mensaje tiene una prioridad, si dos nodos intentan enviar mensajes simultáneamente, el de mayor prioridad se transmite y el de menor prioridad se pospone.  Este arbitraje no es destructivo y da como resultado una transmisión ininterrumpida del mensaje de mayor prioridad.  Esto también permite que las redes cumplan con las restricciones de tiempo determinísticas.

Capacidades de error

La especificación CAN incluye un código de redundancia cíclica (CRC) para realizar la verificación de errores en el contenido de cada marco.  Todos los nodos descartan los marcos con errores y se puede transmitir un marco de error para señalar el error a la red.  El controlador diferencia errores globales y locales, y si se detectan demasiados errores, los nodos individuales pueden dejar de transmitir errores o desconectarse completamente de la red.

Figura 1: Las redes CAN reducen significativamente el cableado.

 

Aplicaciones de CAN y ejemplos

CAN se creó por primera vez para uso automotriz, por lo que su aplicación más común es en redes electrónicas en vehículos. Sin embargo, conforme otras industrias observaron la fiabilidad y las ventajas de CAN durante los últimos 20 años, adoptaron el bus para una amplia variedad de aplicaciones. Las aplicaciones ferroviarias como tranvías, transporte subterráneo, trenes ligeros y trenes de largas distancias incorporan CAN. Puede encontrar ejemplos de dispositivos CAN que comunican las unidades de puerta, los controladores de freno, las unidades de conteo de pasajeros y más en diferentes niveles de las diferentes redes dentro estos vehículos. CAN también tiene aplicaciones en aeronaves con sensores del estado del vuelo, sistemas de navegación y PCs de investigación en la cabina. Además, puede encontrar buses CAN en muchas aplicaciones aeroespaciales, desde análisis de datos de vuelo hasta sistemas de control de motores de aviones, como sistemas de combustible, bombas y actuadores lineales. 

Los fabricantes de equipos médicos utilizan CAN como una red embebida en dispositivos médicos. De hecho, algunos hospitales utilizan CAN para administrar quirófanos completos. Los hospitales controlan los componentes en la sala de operaciones, como luces, mesas, cámaras, máquinas de rayos X y camas de pacientes con sistemas basados en CAN. Los elevadores y las escaleras mecánicas utilizan redes CAN embebidas, y los hospitales utilizan el protocolo CANopen para comunicar entre sí y controlar dispositivos de elevadores, como paneles, controladores, puertas y barreras de luz. CANopen también se utiliza en aplicaciones no industriales como equipos de laboratorio, cámaras deportivas, telescopios, puertas automáticas e incluso máquinas de café.

Capas físicas CAN

CAN tiene diferentes capas físicas que usted puede usar. Estas capas físicas clasifican ciertos aspectos de la red CAN, como niveles eléctricos, esquemas de señalización, impedancia del cable, velocidades máximas en baudios y más. Las capas físicas más comunes y ampliamente utilizadas se describen a continuación:

CAN de alta velocidad/FD

CAN de alta velocidad es, por mucho, la capa física más común. Las redes CAN de alta velocidad se implementan con dos hilos y permiten la comunicación a velocidades de transferencia de hasta 1 Mbit/s. Otros nombres para CAN de alta velocidad son CAN C e ISO 11898-2. Los dispositivos CAN típicos de alta velocidad incluyen sistemas de frenos antibloqueo, módulos de control del motor y sistemas de emisiones.  CAN con velocidad de datos flexible (CAN FD) es la próxima generación de la comunicación CAN de alta velocidad con estándares en evolución para velocidades de datos más altas.  NI ha habilitado velocidades hasta 8 Mbit/s utilizando los transceptores TJA1041 y TJA1043 a través del controlador NI-XNET.  A medida que los proveedores de transceptores completen los criterios de velocidades de CAN FD, NI actualizará la documentación como sea necesario.

Hardware CAN de baja velocidad/tolerancia a fallas

Las redes CAN de baja velocidad/tolerantes a fallas también se implementan con dos cables, pueden comunicarse con dispositivos a velocidades de hasta 125 kbit/s y ofrecen transceptores con capacidades tolerantes a fallas. Otros nombres para CAN de baja velocidad/tolerante a fallas son CAN B e ISO 11898-3. Los dispositivos típicos de baja velocidad/tolerantes a fallas en un automóvil incluyen dispositivos de confort. Los cables que tienen que pasar a través de la puerta de un vehículo son de baja velocidad/tolerantes a fallas a la luz inherente al abrir y cerrar una puerta. Además, en situaciones en las que se desea un nivel avanzado de seguridad, como con luces de freno, CAN de baja velocidad/tolerante a fallas ofrece una solución.

Hardware CAN de un solo cable

Las interfaces CAN de un solo cable pueden comunicarse con dispositivos a velocidades de hasta 33.3 kbit/s (88.3 kbit/s en modo de alta velocidad). Otros nombres para CAN de un solo cable son SAE-J2411, CAN A y GMLAN. Los dispositivos típicos de un solo cable dentro de un automóvil no requieren alto rendimiento. Las aplicaciones comunes incluyen dispositivos de confort como ajustadores para asientos y espejos.

Hardware CAN seleccionable por software

Con los productos de hardware CAN de National Instruments, usted puede configurar las interfaces CAN seleccionables por software para usar cualquiera de los transceptores internos (alta velocidad, baja velocidad/tolerante a fallas o CAN de un solo cable). El hardware de múltiples transceptores ofrece la solución perfecta para las aplicaciones que requieren una combinación de estándares de comunicación. Con hardware CAN seleccionable por software, usted también puede elegir su propio transceptor CAN externo.

Programación CAN en LabVIEW y otros lenguajes

Controlador de software NI-XNET

El software NI-XNET se incluye con los dispositivos PCI/PXI-851x y NI 986x y está disponible como descarga gratis en ni.com. Este nuevo controlador se utiliza para desarrollar aplicaciones CAN, red local de interconexión (LIN) y FlexRay en NI LabVIEW, NI LabWindows/CVI y C/C++ en sistemas operativos Windows y LabVIEW Real-Time. Como parte de la plataforma NI-XNET, los dispositivos NI 851x y NI 986x funcionan bien para aplicaciones que requieren manipulación de alta velocidad y en tiempo real de cientos de marcos y señales, como simulación de hardware-in-the-loop, rápida generación de prototipos de control, monitoreo de bus, control de automatización y más.

NI-XNET: Un API, varias redes embebidas

La plataforma NI-XNET combina una serie de interfaces CAN, LIN y FlexRay de alto rendimiento con la API NI-XNET, un juego de funciones fáciles usar para leer y escribir marcos y señales CAN, LIN y FlexRay.

Máximo rendimiento con menos programación

Las interfaces NI-XNET reúnen el rendimiento asociado con la programación de microcontroladores de bajo nivel y la velocidad y la potencia del desarrollo de los SOs Windows y LabVIEW Real-Time. El motor DMA de patente pendiente, guiado por dispositivo NI-XNET reduce la latencia del sistema, un problema recurrente para interfaces CAN basadas en PC, desde miles de segundos y microsegundos. El motor habilita el procesador interno para mover señales y marcos CAN entre la interfaz y el programa de usuario sin interrupciones en el CPU, liberando el tiempo del procesador principal para procesar modelos y aplicaciones complejos.

Para obtener más información sobre los beneficios y las aplicaciones de NI-XNET, consulte la descripción general de la plataforma NI-XNET CAN, LIN y FlexRay.

Controlador de software NI-CAN

National Instruments incluye el software controlador NI-CAN con todas las interfaces CAN heredadas de National Instruments y lo proporciona como una descarga de software gratis en ni.com. Con otras interfaces CAN, usted puede aprovechar solo un pequeño porcentaje de la funcionalidad de la tarjeta si no compra la herramienta de software lista para usar. Sin embargo, toda la funcionalidad de la tarjeta CAN de National Instruments está totalmente expuesta, por lo que usted puede desarrollar sus propias aplicaciones personalizadas en el lenguaje de programación que usted elija. El controlador NI-CAN proporciona funciones de alto nivel y fáciles de usar para ayudarlo a desarrollar rápidamente aplicaciones CAN completas, ahorrándole tiempo y dinero.

Hay dos APIs expuestas con el software controlador NI-CAN. Frame API es la API original para programación CAN. En la Frame API, usted puede transmitir y recibir marcos CAN que contienen bytes de datos sin procesar. Su programa debe analizar y escalar estos bytes para generar unidades de ingeniería escaladas. Para obtener más información sobre la programación con Frame API, consulte la sección "Using the Frame API" del  NI CAN Hardware and Software Manual.


NI presentó por primera vez API del canal en el software controlador NI-CAN 2.0. Usted puede leer y escribir en canales CAN utilizando nombres de canales definidos en archivos de base de datos (.dbc o .ncd). La API del canal proporciona los siguientes beneficios:

  • Programación de alto nivel
  • Unidades físicas fáciles de usar
  • Uso principal para una fácil sincronización de la adquisición de datos/CAN
  • Capacidad de incorporar archivos de base de datos Vector

Para más información sobre la programación con la API del canal, consulte la documentación de NI-CAN Channel API.

Terminología del protocolo CAN

Los dispositivos CAN envían datos a través de la red CAN en paquetes denominados marcos. Un marco CAN consta de estas secciones.

  • Marco CAN -- una transmisión CAN completa: ID de arbitraje, bytes de datos, bit de reconocimiento, etc. Los marcos también se conocen como mensajes.

Figura 2:  El formato estándar del marco CAN.

  • Bit SOF (comienzo del marco) – indica el comienzo de un mensaje con un bit dominante (0 lógico).
  • ID de arbitraje – identifica el mensaje e indica la prioridad del mensaje. Los marcos vienen en dos formatos -- estándar, que usa una ID de arbitraje de 11 bits, y extendido, que usa una ID de arbitraje de 29 bits.
  • Bit IDE (extensión de identificador) – permite diferenciar entre marcos estándares y extendidos.
  • Bit RTR (solicitud de transmisión remota) – sirve para diferenciar un marco remoto de un marco de datos. Un bit RTR dominante (0 lógico) indica un marco de datos. Un bit RTR recesivo (1 lógico) indica un marco remoto.
  • DLC (código de longitud de datos) – indica el número de bytes que contiene el campo de datos.
  • Campo de datos – contiene de 0 a 8 bytes de datos.
  • CRC (verificación de redundancia cíclica) – contiene un código de verificación de redundancia cíclica de 15 bits y un bit delimitador recesivo. El campo CRC se usa para detección de errores.
  • Ranura ACK (ACKnowledgement)cualquier controlador CAN que reciba correctamente el mensaje envía un bit ACK al final del mensaje. El nodo transmisor verifica la presencia del bit ACK en el bus y vuelve a intentar la transmisión si no se detecta ningún reconocimiento. Las interfaces CAN de la serie 2 de National Instruments tienen la capacidad de modo de solo escucha. Aquí, el hardware de monitoreo suprime la transmisión de un bit ACK para evitar que afecte el comportamiento del bus.
  • Señal CAN – un dato individual contenido dentro del campo de datos del marco CAN. También puede referirse a las señales CAN como canales. Debido a que el campo de datos puede contener hasta 8 bytes de datos, un solo marco CAN puede contener de 0 a 64 señales individuales (para 64 canales, todas serían binarias).  
En la siguiente imagen, se ven seis canales contenidos en el campo de datos de un solo marco CAN. Cada señal contiene 8 bits de datos.


Figura 3:  Las señales se pueden definir como un cierto número de bits dentro de un marco CAN.

 

Archivos de base de datos CAN

Los archivos de base de datos CAN son archivos de texto que contienen información de escala para marcos CAN y definiciones de señales. El NI-XNET Database Editor de National Instruments reconoce archivos de base de datos FIBEX (.xml), archivos de base de datos Vector (*.dbc) y archivos de base de datos CAN (*.ncd) de National Instruments.

Para cada señal, las bases de datos CAN definen las reglas para conversión a unidades de ingeniería. Los siguientes datos son almacenados en bases de datos:

  • Nombre del canal
  • Ubicación (bit de inicio) y tamaño (número de bits) del canal dentro de un mensaje determinado
  • Orden de bytes (Intel/Motorola)
  • Tipo de datos (firmado, sin firmar y flotante IEEE)
  • Cadena de unidades y escala
  • Rango
  • Valor predeterminado
  • Comentario

Puede utilizar esta información para convertir fácilmente la información del marco "sin procesar" (normalmente bytes) en un valor del "mundo real".  La siguiente imagen ilustra un ejemplo de esta conversión.

Figura 4:  Todos los datos de escala necesarios están contenidos en una base de datos para convertir marcos en señales.

Los archivos de base de datos CAN pueden contener definiciones de marcos y señales para un vehículo completo. Cada red tiene su propio archivo único de base de datos. Además, estos archivos de base de datos son específicos del proveedor que por lo general son confidenciales.

Al usar un archivo de base de datos para varios marcos en la red CAN, muchas APIs de CAN (como NI-XNET) pueden convertir automáticamente la información del marco directamente a un valor del mundo real. Esto simplifica el desarrollo de aplicaciones porque usted nunca tendrá que preocuparse por los valores de marcos sin procesar.

Cómo funciona la comunicación CAN

Como se indicó anteriormente, CAN es una red peer-to-peer. Esto significa que no hay un maestro que controle cuándo los nodos individuales tienen acceso para leer y escribir datos en el bus CAN. Cuando un nodo CAN está listo para transmitir datos, verifica si el bus está ocupado y luego simplemente escribe un marco en la red. Los marcos CAN que se transmiten no contienen direcciones ni del nodo transmisor ni de ninguno de los nodos receptores previstos. En su lugar, una ID de arbitraje que es única en toda la red etiqueta el marco. Todos los nodos en la red CAN reciben el marco CAN y dependiendo de la ID de arbitraje de ese marco transmitido, cada nodo CAN en la red decide si acepta el marco.

Si varios nodos intentan transmitir un mensaje al bus CAN al mismo tiempo, el nodo con la prioridad más alta (ID de arbitraje más bajo) automáticamente obtiene acceso al bus. Los nodos de menor prioridad deben esperar hasta que el bus esté disponible antes de intentar transmitir de nuevo. De esta forma, usted puede implementar redes CAN para garantizar una comunicación determinística entre los nodos CAN.

Figura 5:  CAN contiene una prioridad integrada para los mensajes para evitar conflictos.

Herramientas CAN de National Instruments

NI proporciona una variedad de herramientas de hardware y software para desarrollo de aplicaciones CAN. NI ofrece interfaces CAN para diferentes plataformas, que incluyen PCI,PXI,USB,CompactRIO y CompactDAQ (serie C). Para PCI, PXI y serie C usted puede elegir entre capas físicas de un solo cable, baja velocidad/tolerante a fallas y alta velocidad/FD. Para PCI y PXI, National Instruments ofrece la primera interfaz CAN seleccionable por software de la industria que contiene un transceptor de alta velocidad/FD, baja velocidad/tolerante a fallas y de un solo cable en cada tarjeta, para cada puerto, en un solo dispositivo. Esto significa que usted simplemente puede seleccionar en su software qué modo desea usar.

Figura 6:  Dispositivo CAN NI PCI-8513 seleccionable por software (XS)


Además, NI envía cada uno de estos dispositivos con el software controlador adecuado. A continuación se describe el software controlador de la interfaz CAN de NI. 

El ECU Measurement and Calibration Toolkit de National Instruments extiende los entornos de desarrollo NI LabVIEW, NI LabWindows™/CVI y C/C++ para soportar aplicaciones de medidas y calibración para diseño y validación de unidades de control electrónico (ECUs). El ECU Measurement and Calibration Toolkit proporciona funciones de alto nivel y fáciles de usar basadas en el protocolo de calibración CAN (CCP) que los diseñadores, probadores e ingenieros de ECU pueden usar para crear sus propias aplicaciones personalizadas de medidas y calibración.

 

La marca LabWindows se usa bajo una licencia de Microsoft Corporation. Windows es una marca comercial registrada de Microsoft Corporation en los Estados Unidos y otros países.