Un bus de red de controladores de área (CAN) es un sistema de bus serial de alta integridad para dispositivos inteligentes en red. Los dispositivos y buses CAN son componentes comunes en los sistemas automotrices e industriales. Por ejemplo, el protocolo CAN permite una comunicación eficiente entre sensores y unidades de control electrónico (ECUs) para soporte de sistemas de asistencia avanzada al conductor. Al usar un dispositivo de interfaz CAN, usted puede escribir aplicaciones de LabVIEW para comunicarse con una red CAN.
El protocolo CAN fue desarrollado en 1985 por Bosch para simplificar las redes a bordo de los 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.
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.
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.
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.
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.
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. Aplicaciones ferroviarias como tranvías, subterráneos, trenes ligeros y trenes de larga distancia incorporan CAN. Puede encontrar ejemplos de dispositivos CAN que conectan las unidades de puertas, los controladores de freno, las unidades de conteo de pasajeros y más en diferentes niveles de las múltiples redes dentro de 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é.
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 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.
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.
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.
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.
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.
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.
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.
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:
Para más información sobre la programación con la API del canal, consulte la documentación de NI-CAN Channel API.
Los dispositivos CAN envían datos a través de la red CAN en paquetes denominados marcos. Un marco CAN consta de estas secciones.
Figura 2: El formato estándar del marco CAN.
Figura 3: Las señales se pueden definir como un cierto número de bits dentro de un marco 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:
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.
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.
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.
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.