Introducción a CAN

Contenido

Historia de CAN

Originalmente, CAN (Controller Area Network, por sus siglas en inglés) fue desarrollado por Bosch  en 1985 para redes en vehículos. Previo a eso, los fabricantes automotrices conectaban dispositivos electrónicos en los vehículos utilizando sistemas de cableado de punto a punto. Sin embargo, conforme los fabricantes comenzaron a utilizar más y más dispositivos electrónicos en los vehículos, los arneses de estos subían en su peso y costo general. Al reemplazar el cableado por redes de comunicación en los vehículos, se logró reducir el costo del cable, su complejidad y su peso. CAN, un sistema de bus serial de alta integridad destinado para comunicar dispositivos inteligentes, emergió como la red estándar para vehículos. La industria automotriz adoptó rápidamente CAN y, en 1993, se convirtió en el estándar internacional conocido como ISO 11898. Desde 1994, se han estandarizado varios protocolos de alto nivel a partir de CAN, como CANopen y DeviceNet , y su uso se ha extendido a otras industrias.

Beneficios de CAN

CAN es una red duradera y económica que permite a varios dispositivos comunicarse entre sí. Un beneficio es que permite a las unidades de control electrónico (ECUs) tener una sola interfaz CAN (ver Figura 1), en lugar de diferentes entradas analógicas y digitales para cada dispositivo en el sistema. Esto reduce el costo y peso en los automóviles.

 


Aplicaciones de CAN

CAN fue creado en un principio para uso automotriz, por lo que su aplicación más común es para comunicación en vehículo de dispositivos electrónicos. Sin embargo, conforme otras industrias han observado las ventajas de CAN, han adoptado al bus para una amplia variedad de aplicaciones. Por ejemplo, en aplicaciones ferroviarias se utiliza CAN en vagones, tranvías, subterráneos, trenes ligeros, y trenes de distancias largas para comunicar las unidades de las puertas o controladores de freno, unidades de conteo de pasajeros, y más. CAN también tiene aplicaciones en aviación con los sensores del estado del vuelo, sistemas de navegación, y computadoras de investigación en la cabina de control. También puede encontrar buses CAN en muchas aplicaciones aeroespaciales, que van desde el análisis de datos en vuelos a los sistemas de control del motor de la nave como los sistemas de combustible, bombas y actuadores lineales.

Los fabricantes de equipo médico utilizan CAN como una red embebida en los dispositivos médicos. De hecho, algunos hospitales utilizan CAN para manejar cuartos de operación completos. Los hospitales controlan componentes operativos del cuarto como luces, máquinas de rayos X y camas de pacientes con sistemas basados en CAN. CANopen también es utilizado en aplicaciones no industriales como en equipo de laboratorio, cámaras deportivas, telescopios, puertas automáticas e incluso, máquinas de café. 

 

Capas Físicas de CAN

CAN tiene diferentes capas físicas que puede utilizar. Estas capas físicas clasifican ciertos aspectos de la red, como lo son los niveles eléctricos, esquemas de señales, impedancia en los cables, tasa máxima de transmisión, y más. Las capas físicas más ampliamente utilizadas y más comunes se describen a continuación:

 

CAN de Alta Velocidad
CAN de alta velocidad es la capa física más común. Las redes de CAN de alta velocidad están implementada con dos cables y permiten la comunicación con tasas de transferencia de hasta 1 Mb/s. Otros nombres para CAN de alta velocidad incluye CAN C e ISO 11898-2. Los dispositivos típicos CAN de alta velocidad incluyen los sistemas de frenos anti-bloqueo, módulos de control del motor y sistemas de emisiones.

Hardware CAN de Baja Velocidad/Tolerante a Fallas
Las redes de CAN de baja velocidad/tolerante a fallas también están implementadas con dos cables, pueden comunicarse con dispositivos a una tasa de hasta 125 kb/s, y cuenta con transceptores con capacidades de tolerancia a fallas. Otros nombres para esta versión de CAN son CAN B e ISO 11898-3. Algunos ejemplos de dispositivos típicos en automóviles que incluyen esta versión del protocolo son dispositivos de confort o la luz de frenos.

Hardware CAN de Un Solo Cable
Las interfaces CAN de un solo cable pueden comunicarse con dispositivos a una tasa de hasta 33.3 kb/s (88.3 kb/s en modo de alta velocidad). Otros nombres para CAN de un solo cable incluyen SAE-J2411, CAN A, y GMLAN. Los dispositivos de un solo cable típicos dentro de un automóvil no requieren de un alto desempeño, como por ejemplo los ajustadores de asientos y espejos.

Hardware CAN Seleccionable por Software
Con los productos de hardware CAN de National Instruments, usted puede configurar las interfaces CAN mediante software para utilizar cualquiera de los transceptores incluidos (de alta velocidad, de baja velocidad/tolerante a fallas o de un solo cable). Contar con múltiples transceptores es una solución perfecta para aplicaciones que requieren de una combinación de diferentes estándares. Adicionalmente, estos dispositivos de hardware CAN permiten elegir su propio transceptor de CAN externo.  

Terminología de CAN

 

Los dispositivos CAN envían datos a través de una red CAN en paquetes llamados marcos. Un marco de CAN consiste en las siguientes secciones.

  • Marco CAN una transmisión completa de CAN: arreglo de identificación, bytes de datos, bit de acknowledge, etc. Los marcos también son referidos como mensajes.

 


  • Bit SOF (start-of-frame) – indica el inicio de un mensaje con un bit dominante (lógica 0)
  • Arreglo de Identificación – identifica el mensaje e indica la prioridad del mismo. Los marcos se presentan en dos formas – estándar, que utiliza un arreglo de identificación de 11 bits, y extendido, que utiliza un arreglo de identificación de 29 bits.
  • Bit IDE (identifier extension) – permite la diferenciación entre marcos estándar y extendidos.
  • Bit RTR (remote transmission request) – sirve para diferenciar un marco remoto de un marco de datos. Un bit RTR dominante (lógica 0) indica un marco de datos. Un bit RTR recesivo (lógica 1) indica un marco remoto.
  • DLC (data length code) – indica el número de bytes que contiene el campo de datos.
  • Campo de Datos – contiene de 0 a 8 bytes de datos.
  • CRC (cyclic redundancy check) – contiene un código de revisión cíclica redundante de 15 bits y un bit recesivo para delimitar. El campo CRC se utiliza para detectar errores.
  • Ranura ACK (ACKnowledgement) -- cualquier controlador CAN que recibe mensajes correctamente envía un bit de ACK al final del mensaje. El nodo transmisor revisa la presencia del bit ACK en el bus e intenta nuevamente la transmisión en caso de no detectarlo. Las interfaces CAN de la Serie 2 de National Instruments tienen la capacidad para estar en modo de sólo-escucha (listen-only). Por tanto, la transmisión del bit ACK por el hardware de monitoreo se suprime para prevenir que el comportamiento del bus se vea afectado.
  • Canal CAN – un pedazo individual de datos contenidos dentro del campo de datos del marco CAN. También puede referirse a los canales CAN como señales. Debido a que el campo de datos puede contener hasta 8 bytes de datos, un solo marco CAN puede contener de 0 a 64 canales individuales (para 64 canales, todos tendrían que ser binarios).

En la siguiente imagen, hay seis canales contenidos en el campo de datos de un solo marco CAN. Cada canal contiene 8 bits de datos.



Archivos de Base de Datos de CAN

Los archivos de base de datos de CAN son archivos de texto que contienen información de escalas para canales de CAN. El software CAN de National Instruments reconoce tanto los archivos de base de datos CAN de Vector y de National Instruments. Los archivos Vector se denominan archivos CANdb y tienen una extensión *.dbc. Los archivos de base de datos de CAN que crea NI tienen la extensión *.ncd.

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

  • Nombre del canal
  • Ubicación (bit inicial) y tamaño (número de bits) del canal dentro del mensaje dado
  • Orden del byte (Intel/Motorola)
  • Tipo de datos (con signo, sin signo, y punto flotante formato IEEE)
  • Información del tipo de unidad y escala
  • Rango
  • Valor predeterminado
  • Comentario

Los archivos de base de datos de CAN pueden contener definiciones de canales para un vehículo completo. Cada red tiene su propio archivo de base de datos. Adicionalmente, estos archivos de base de datos son específicos para cada usuario y generalmente confidenciales.  

Cómo Trabaja la Comunicación CAN


Como se declaró anteriormente, CAN es una red uno a uno. Esto significa que no hay un maestro que controle el acceso de lectura o escritura de datos en el bus por parte de los nodos individuales. Cuando un nodo CAN está listo para transmitir datos, verifica si el bus se encuentra ocupado, y después simplemente escribe un marco de CAN en la red. Los marcos de CAN transmitidos no contienen direcciones del nodo transmisor o de ninguno de los probables nodos receptores. Sólo se cuenta con un número de identificación único. Todos los nodos en la red reciben el marco, y dependiendo del número de ID cada nodo decide si aceptar o no el marco.


Si varios nodos intentan transmitir un mensaje al bus al mismo tiempo, el nodo con la mayor prioridad (número de ID menor) automáticamente tendrá acceso al bus. Los nodos con menor prioridad deben esperar hasta que el bus vuelva a estar disponible antes de iniciar nuevamente su transmisión. De esta manera, es posible implementar redes CAN con comunicación determinística entre nodos. 

Herramientas CAN de National Instruments


National Instruments proporciona una variedad de herramientas de hardware y software para el desarrollo de aplicaciones CAN. NI ofrece interfaces CAN para diferentes plataformas incluyendo USB, PCI, PXI, PCMCIA, y NI CompactRIO. Para PCI, PXI, y PCMCIA, se encuentran disponibles las capas físicas de alta velocidad, de baja velocidad/tolerante a fallas y de un solo cable. Para PCI y PXI, National Instruments proporciona la primera interfaz industrial CAN seleccionable por software que contiene un transceptor de alta velocidad, de baja velocidad/tolerante a fallas y de un solo cable en la tarjeta, por cada puerto y en el mismo dispositivo. Esto quiere decir que usted simplemente selecciona por software el modo que desea utilizar.


NI incluye el software controlador NI-CAN con cada uno de estos dispositivos así como Measurement & Automation Explorer (MAX), que ofrece herramientas adicionales, como paneles de pruebas para canales de CAN, monitor para el bus y un editor de base de datos CAN.

El toolkit de ECU Measurement and Calibration de National Instruments extiende las capacidades de los ambientes de desarrollo NI LabVIEW, NI LabWindows/CVI y Microsoft C/C++ para aplicaciones de medición y calibración en el diseño y validación de unidades de control electrónico (ECUs). Este toolkit proporciona funciones de alto nivel y fáciles de usar basadas en el Protocolo de Calibración CAN (CCP) que los ingenieros de diseño y pruebas de ECU pueden utilizar para construir sus propias aplicaciones a la medida de medición y calibración. Para mayores informes, por favor visite la página de recursos que se presenta a continuación.

 

Vea también:
Interfaces para CAN (PCI)
Interfaces para CAN (PXI)
Interfaces para CAN (PCMCIA)
Toolkit de ECU Measurement and Calibration

 

Software Controlador NI-CAN


National Instruments incluye el software controlador NI-CAN con todas las interfaces CAN de National Instruments y lo ofrece como un software de descarga GRATUITA en ni.com. Con otras interfaces CAN, usted puede aprovechar tan solo un pequeño porcentaje de la funcionalidad de la tarjeta si no compra el paquete completo de software. Sin embargo, toda la funcionalidad de las tarjetas CAN de National Instruments está disponibloe, para que usted pueda desarrollar sus aplicaciones a la medida y en el lenguaje de programación de su elección. El software controlador NI-CAN proporciona funciones de alto nivel y fáciles de usar para ayudarle a desarrollar aplicaciones CAN rápidamente, ahorrándole dinero y tiempo.

Existen dos APIs (interfaces de programación de aplicación) expuestas con el controlador NI-CAN. El Frame API (o API de marcos) es el API original para la programación en CAN. En este API, usted puede transmitir y recibir marcos CAN que contienen datos en bytes sin procesar. Su programa debe analizar y evaluar estos bytes para obtener unidades de ingeniería escaladas. Para más información sobre cómo programar con el Frame API, por favor consulte la sección Using the Frame API del manual de hardware y software de NI-CAN (vea más adelante).

NI introdujo la primera versión del Channel API (o API de canal) en la versión 2.0 de NI-CAN. Con este puede leer y escribir a los canales de CAN utilizando nombres de canales definidos en los archivos de la base de datos (.dbc o .ncd). Este API proporciona los siguientes beneficios:

 

  • Programación de alto nivel
  • Unidades físicas fáciles de usar
  • Usado principalmente para una fácil sincronización de adquisición de datos con CAN
  • Habilidad para incorporar archivos de bases de datos Vector


Para más información sobre cómo programar con el Channel API, por favor consulte el recurso que se presenta a continuación.

Vea También:

Ligas Relacionadas:

Página Principal de CAN
Sincronizando Señales Analógicas con CAN para Validación de Dispositivos