670 likes | 1.01k Views
Comunicaciones. CanOpen. Agenda. Generalidades Protocolo CanOpen Servicios de Comunicación.
E N D
Comunicaciones CanOpen
Agenda GeneralidadesProtocolo CanOpenServicios de Comunicación
Historia Características generales de CanOpen Capa física Topología del bus • Generalidades
Historia 1980:La industria del automóvil muestra la necesidad de un bus barato, de tiempo real y altamente robusto para comunicar diferentes componentes electrónicos. CAN define únicamente las capas 1 y 2 del modelo ISO. 1983:Junto con diferentes Universidades Alemanas, el fabricante BOSCH desarrolla el protocolo CAN = “Controller Area Network“ 1985:Los primeros chips de CAN los comercializa INTEL 1986:Prototipos iniciales se presentan en Detroit (EEUU) 1987:Los mayores fabricantes de circuitos integrados (Intel, Motorola, ...) ofrecen una gama completa de microcontroladores que integran CAN 1989:Primeras aplicaciones industriales
Historia de1987 a 1991:Aparecen diferentes organizaciones que promocinan CAN en el mundo del automóbil (SAE, OSEK), y en aplicaciones industriales (CIA = “CAN in Automation”) http://www.can-cia.de/ 1993:CAN de Alta Velocidad (1 Mbps/Identificadores de 11 bits) estándar ISO 11898 = CAN 2.0 A. Publicación por la CiA de las especificaciones CAL=Can Application Layer describiendo los mecanismos de transmisión sin definir cuando y como utilizarlos. 1995:identificadores de 29 bits (CAN2.0 B) Publicación por la CiA del perfil de comunicaciones DS-301 = CANopen 1996:CAN se usa en la mayoría de coches de gama alta europeos. 1997:300 compañías miembros de CiA (CAN en Automatización) 2001:La CiA publica el perfil DS-304 el cual se puede usar para integrar compomentes de nivel de seguridad 4 en un bus CANopen estándar (CANsafe).
Características Generales de CanOpen CANopen = CAN + Servicios de comunicaciones CAN • Capa Física y de enlace • 1 Mbit a 40m // 50 kbit a 1 Km • Par trenzado • Muy Robusto y económico (se usa en los coches) CANopen • Productor / Consumidor (Con maestro gestor de red) • Hasta 127 nodos • Comunicaciones Implícitas (PDOs) • Comunicaciones Explícitas (SDOs)
Perfiles dispositivo CiA DSP-401 I/O modules Perfiles dispositivo CiA DSP-402 Drives Perfiles dispositivo CiA DSP-404 Dispositivos medida Perfiles dispositivo CiA DSP-4xx 7 APLICACIÓN CANopen Communicación Perfil CiA DS-301 6 PRESENTACIÓN VACIO VACIO 5 SESIÓN 4 TRANSPORTE VACIO 3 RED VACIO CAN 2.0 A and B + ISO 11898 2 ENLACE = LLC + MAC CAN especificaciones 1 FÍSICA CAN 2.0 A and B = ISO 11898 ISO 11898 + DS-102 Características Generales de CanOpen
Características Generales de CanOpen CAN Protocol Specification 2.0 A: CAN Controller trabaja únicamente con identificadores de mensaje de 11-bit. ( CAN estándar ) CAN Protocol Specification 2.0 B pasivo: CAN Controller transmite sólo tramas con identificadores de 11-bit, pero chequea la recepción de tramas estándar como de tramas extendidas con identificadores de 29-bit (se envía incluso la confirmación). ( CAN extendido ) CAN Protocol Specification 2.0 B activo: CAN Controller puede recibir tramas estándar y extendidas.
Características Generales de CanOpen • Protocolo Multimaestro • Cualquier estructura de comunicación es posible.Transmisión de mensajes orientado a eventos: • Reduce la carga de bus • Tiempo de latencia corto para datos en tiempo real • Transmisión de mensajes basado en prioridades • Tiempo de latencia reducido para mensajes de alta prioridad, incluso a elevada carga de bus causada por mensajes de baja prioridad. • Longitud de datos limitada • Suficiente para comunicación de datos en coches, máquinas, automatización a nivel de máquina. Transmisión segmentada para datos de más de 8 bytes.
Características Generales de CanOpen • Gestión de errores • CAN implementa cinco mecanismos de detección de errores, entre ellos un CRC. • La probabilidad de no detectar un error local queda reducida a 3 x 10-5 • Desconexión automático de nodos defectuosos para garantizar el buen funcionamiento del bus • Arbitraje de bus aleatorio libre de colisiones • Si se produce una colisión, NO se destruyen los mensajes. No se desperdicia ancho de banda en colisiones. • A diferencia de Ethernet, en CAN las colisiones se resuelven. El mensaje con la prioridad más alta gana el acceso al bus. • Cada nodo debe usar un ID diferente para evitar colisiones con mensajes de la misma prioridad Este proceso se llama “CSMA/CD con AMP”: AMP – “Arbitraje por Prioridad de Mensaje”
Máx Vel.: 1Mbit (40m) Multi-Master Las colisiones se resuelven, arbitraje por prioridad Hasta 8 bytes por mensaje Los mensajes tiene un único identificador (ID) Robusto, detecciones de errores y algoritmos de recuperación CAN2.0A: alrededor de 2k IDs La mayoría de transceivers aceptan par trenzado Implementa parcialmente la capa uno y dos del modelo OSI Finales de linea, 120 ohmios a cada extremo Máxima distancia: 1000m (50kBit) Los mensajes son de difusión Escribir 0 es dominante sobre escribir 1 que es recesivo Hasta 10,000 msj. por segundo Cada nodo debe usar un ID diferente El ancho de banda se reduce a un 50% debido al control de errores CAN2.0B: 500 millones IDs Características Generales de CanOpen Resumen : CAN de un vistazo
Capa Física Características Físicas 5 CAN_H 3.5 Voltaje (V) 2.5 CAN_L 1.5 Recesivo Dominante Recesivo Time Estado recesivo: VCAN_H - VCAN_L = 0V (-0.5 V a + 50 mV) Estado Dominante: VCAN_H - VCAN_L = 2V (1.5 V a 3.5 V) Corriente de salida en transmisión:Más alta que 25 mA Protección: Contra cortocircuitos
Capa Física CAN y EMI • CAN es insensitivo a las interferencias electromagnéticas debido al uso de una señal diferencial Nodo A Nodo B Nodo C V CAN_H U diff CAN_L t CAN_H CAN-Bus CAN_L EMI
Capa Física Relación entre Velocidad (Baud Rate) y longitud del bus • Hasta 1Mbit 40m de longitud de bus • o • Hasta 1000m 50 kbit Bit Rate [kbps] 1000 Considerando que las líneas del Bus son eléctricas (p.ej. Par trenzado) 500 200 100 50 20 10 5 0 10 40 100 200 1000 10,000 Longitud de Bus CAN [m]
* Capa Física Características Físicas * Secciones para 32 esclavos como máximo
Capa Física Conector sub DB9 • Pin Señal Descripción • 1: Reservado • 2: CAN_L CAN_L nivel bus dominante bajo • 3: CAN_GND Linea de Tierra • 4: Reservado • 5: CAN_SHLD Opcional malla CAN • 6: GND Tierra opcional • 7: CAN_H CAN_H nivel bus dominante alto • 8: Reservado • 9: CAN_V+ Opcional CAN alimentación externa positiva
Capa Física Conector abierto • Pin Señal Descripción • 1: CAN_GND Tierra / 0 V/V- • 2: CAN_L CAN_L nivel bus (dominante bajo) • 3: CAN_SHLD Opcional malla CAN • 4: CAN_H CAN_H nivel bus (dominante alto) • 5: CAN_V+ Opcional CAN alimentación externa positiva
Topología del bus CANopen • Un bus CANopen se puede dividir en distintos segmentos • Cada segmento se puede conectar por medio de un repetidor. • Cada segmento debe tener una resistencias de terminación (LT) en los dos extremos. • Tipos de conexión entre nodos: • Por derivación (drop), mediante drops conectados a Taps de puerto simple o múltiple. • En línea (daisy-chain), con un conector (Nodos 2, 8) o con dos conectores (Nodo 7). • ATENCIÓN: El uso de dos conectores no se recomienda ya que el cambio de un equipo provocaría el corte del bus.
Topología del bus CANopen • En un segmento se pueden conectar hasta 64 equipos CANopen • El uso de repetidores permite tener más de 64 equipos en una red CANopen, dividiendo el bus en más segmentos • =SE= provee cables para realizar la conexión en línea y para conexión en drop. • El cable CANopen debe tener dos pares trenzados y cada par con pantalla propia, para reducir las perturbaciones del cable de potencia a los cables de señal.
Topología del bus CANopen Para minimizar el efecto de las reflexiones desde el final del cable, se debe añadir una terminación de línea cerca de los dos finales. Cada terminación de línea se debe conectar entre los dos conectores CAN_H y CAN_L. La terminación de línea debe ser una resistencia de 120, 5% de 1/4W ATENCIÓN: Es recomendable que la resistencia de final de línea no esté en el dispositivo, ya que si esté se elimina del bus, se perdería la resistencia de final de línea.
Topología del bus CANopen • Longitud máxima del bus debido a la carga del segmento • Parámetros a tener en cuenta: • Sección del cable CANopen • Mínimo valor de la resistencia de terminación • Número de nodos en el bus • Distintas tensiones de salida del nodo emisor • Distintas tensiones de entrada del nodo receptor • Distintas resistencias de entrada de los nodos
Capa de enlace COB-ID. Arbitraje del bus Detección de errores Fichero EDS .Perfiles. Diccionario de objetos • Protocolo CanOpen
Capa de Enlace Multi-Master Mensajes “BroadCast” (Productor/Consumidor) Las colisiones se resuelven por prioridad. 0 es dominante frente al 1 Cada mensaje tiene un identificador (cuanto más bajo, más ceros tiene y más prioritario) Cada mensaje lleva 8 bytes de datos Los protocolos de alto nivel definen los servicios de comunicaciones: ej: Propios de VW, Propios de Mercedes, Devicenet, CANopen ...
Capa de Enlace Trama • Usado por cualquier nodo para transmitir de 0 a 8 bytes “broadcast” a todo el mundo
Estructura de la trama 2.0 A RBO CRC • Inicio de trama (SOF):Bit siempre dominante que indica inicio de la transmisión. Los nodos receptores se sincronizan con el flanco de bajada de este bit. • Identificador :11 bits más el bit RTR. En una trama de datos el bit RTR es dominante, en trama remota es recesivo • Control :El bit IDE se utiliza para indicar si la trama es CAN Estandar (IDE dominante) o CAN Extendido (IDE recesivo).El bit RBO es siempre recesivo ( reservado ).Los cuatro bits de código indican en binario el número de bytes de datos de mensaje ( 0 a 8 ). • Datos :Campo de 0 a 8 bytes ( 0 a 64 bits ). • CRC :Código que genera el transmisor . Los receptores comprueban este código, se incluye un bit recesivo ( delimitador de CRC ). • Campo de reconocimiento :( ACK ) Campo de dos bits que el transmisor pone como recesivos, el primero se sobrescribe por un bit dominante por los nodos que han recibido el mensaje correctamente. • Fin de trama (EOF) :Cierre de trama consta de 7 bits recesivos sucesivos. • Espaciado entre tramas :mínimo de 3 bits recesivos.
COB-ID – Arbitraje del Bus El COB-ID, en realidad será el Identificador del mensaje CAN en el bus CAN El COB-ID es un número que es una combinación entre el numero de nodo CANopen y el servicio de comunicaciones que se desea (4+7 bits) El COB-ID serían los canales por los que los dispositivos envían y reciben información Por ejemplo: Un PDO de un dispositivo tiene un COB-ID único Un dispositivo tiene dos COB-ID para los SDO (comunicaciones explícitas), uno para recibir información y otro para enviarla
COB-ID – Arbitraje del Bus • El identificador COB-ID (Communication Object Identifier) tiene dos funciones principales. • Arbitraje del bus especificación de las prioridades de transmisión. El objeto de comunicación con el COB_ID más bajo es el de mayor prioridad en la red. • Identificación de los objetos de comunicación, el equipo de red reconoce el tipo de servicio que se demanda ( NMT, SYNC, TxPDO, RxPDO , SDO, EMCY ) • Se compone de 2 partes: Código de función, 4 bits Node-ID, 7 bits
COB-ID – Definición de los Identificadores 1024 identificadores Máximo reservados para PDOs.
CSMA/CD – Acceso al Bus • El protocolo CAN maneja el acceso al bus siguiendo el concepto de “Carrier Sense Multiple Access with Collision Detection” • ¡Si se produce una colisión, NO se destruyen los mensajes! No se desperdicia ancho de banda en colisiones • A diferencia de Ethernet, en CAN las colisiones se resuelven. El mensaje con la prioridad más alta gana el acceso al bus • Cada mensaje tiene un identificador que determina su prioridad • Cada nodo debe usar un ID diferente para evitar colisiones con mensajes de la misma prioridad • Este proceso se llama “CSMA/CD con AMP”: • AMP – “Arbitraje por Prioridad de Mensaje”
Campo de identificación 1 1 1 1 Fase deArbitraje Nodo A 0 0 0 0 1erBit 1 1 Nodo B 0 Resto 1 1 1 Nodo C 0 0 0 Petición deTransmisión 1 1 0 Bus CAN 0 0 0 Nodo B sepierde Nodo C se pierde CSMA/CD – Acceso al Bus Nodo X Nodo A Orden de Transmisión de las tramas Nodo B Nodo C Se compara el Identificador y por prioridad va saliendo una u otra trama
Detección de errores / Reconocimiento • Cada trama tiene que ser reconocida por todos los nodos receptores • Con que un único nodo no reciba el mensaje correctamente, en lugar de reconocerlo, generará una trama de error CampoCRC CampoAck. Campo de fin de Frame Node A Recesivo Idle Recibe Transmite TX Dominante Node B Recesivo Idle Recibe Transmite TX Dominante Recesivo CAN Bus Idle Activo Dominante Ack. Delimiter Acknowledge Slot
Protocolo CANopen Estandarizado por CiA (www.can-cia.com) CAN en la Automatización Protocolo de alto nivel de CAN. Define servicios de comunicación orientados a soluciones industriales de automatización Cada dispositivo de un cierto tipo, sea del fabricante que sea, comunica sus funciones básicas mediante el mismo perfil (DS) La información de cada nodo se estructura en un Diccionario Productor / Consumidor para datos (PDO = Comunicaciones Implícitas) Maestro / Esclavo para configuraciones y comunicaciones explícitas (SDO) Maestro / Esclavo para gestión de red (NMT)
Protocolo CANopen • Un equipo CANopen se puede dividir en tres partes: • Comunication interface: provee los servicios de envío y recepción de objetos de comunicación por el bus. • Object dictionary: Define todos los tipos de datos, objetos de comunicación y objetos de aplicación utilizados por el equipo. Esta información se encuentra en el archivo EDS. • Application: Contiene la funcionalidad de control del equipo y el interfase con el hardware del equipo
Ficheros EDS • En los EDS se especifica la implementación exacta. • Se especifica el Diccionario de Objetos completo para un determinado dispositivo • El formato EDS es similar a los INI de Windows o a los GSD de Profibus. • Para que el Master pueda conocer el Diccionario de Objetos de cada nodo, necesita poder acceder al EDS localmente. • Un master que corre en un controlador “embedded” tendrá la información guardada en su memoria. • Una herramienta de configuración accederá directamente al fichero EDS.
Ficheros EDS [FileInfo] FileName=A58_F.eds FileVersion=1 FileRevision=2 Description=Carte Option ATV58 CreationTime=00:00AM CreationDate=12-05-2000 CreatedBy=Marie-Annick Menanteau, Schneider Electric [DeviceInfo] VendorName=Schneider Electric ProductName=ATV58_F ProductVersion=1 ProductRevision=1 BaudRate_10=0 BaudRate_20=0 BaudRate_50=0 BaudRate_100=0 BaudRate_125=1 BaudRate_250=1 BaudRate_500=1 BaudRate_800=0 BaudRate_1000=1 Granularity=0x8 VendorNumber=0x0200005a ProductNumber=0 SimpleBootUpMaster=0 ExtendedBootUpMaster=0 SimpleBootUpSlave=1 ExtendedBootupSlave=0…. [Comments] Lines=6 Line1=Used profile: 402 Line2=Manufacturer device name: VW3A58306 Line3=Hardware version: 1.0 Line4=Software version: 1.0 Line6= This is the EDS file for the CANopen Schneider Electric ATV58 drive module CAN Communication Adapter [MandatoryObjects] SupportedObjects=12 1=0x1000 2=0x1001 3=0x6040 4=0x6041 5=0x6042 6=0x6043 7=0x6044 8=0x6046 9=0x6048 10=0x6049 11=0x6060 12=0x6061 [1000] ParameterName=Device Type ObjectType=7 DataType=0x0007 AccessType=RO DefaultValue=0x10192 PDOMapping=0
Perfiles CANopen En la capa aplicación se pueden definir los siguiente grupos de perfiles: • CANopen communication profile (DSP-301- perfil básico ): Define una serie de parámetros necesarios para comunicar con un equipo CANopen. Todos los equipos CANopen requieren tener implementado el DSP-301. Índices asignados dentro del OD en el rango 1000h-1FFFh • CANopen device profiles (DSP-4xx): Define la funcionalidad de un tipo de equipo en particular y como acceder a esa funcionalidad por medio del bus CAN. Los perfiles disponibles hasta ahora son: DSP 401 (modulos E/S), DSP 402 (Control de drives y Motion), DSP 403 ( HMI ), DSP 405 (Equipos programables IEC1131) y DSP 406 (Encoders). Índices asignados dentro del OD en el rango 6000h-9FFFh • CANopen Application profiles: Define la funcionalidad y la relaciones de comunicación de todos los equipos CANopen del bus. Perfiles de aplicación disponibles: DS414 (maquinaria textil), DS417 (Ascensores) y DS422 (Sistemas municipales).
Diccionario de objetos (OD) Todos los dispositivos CANopen tienen el perfil de comunicaciones DS301 Cada registro del diccionario tiene un índice y un subíndice (ej: 6000:01) Cada registro puede tener el tamaño que se quiera La parte de configuración de las comunicaciones sigue la norma DS 301 La parte de datos sigue la norma DS 4xx (xx dependiendo del tipo de dispositivo) Existe una tercera parte propia del dispositivo (Definida en el fichero EDS) DS301 Todos los dispositivos de UN MISMO TIPO, tienen el perfil de datos DS4xx DS4xx Propio A Cada Dispositivo tiene una parte del diccionario propia. (Descrita en el fichero EDS)
Diccionario de objetos (OD) • El diccionario de Objetos contiene todos los parámetros del equipo que son accesibles mediante comunicaciones por medio del bus • Hay una serie de parámetros comunes a todo equipo CANopen y que vienen definidos según el perfil del equipo: DS301, DS4xx. Todo equipo con perfil DS4xx contiene los parámetros del perfil DS301. • Hay una serie de parámetros que son de libre definición por parte del fabricante. • La descripción del OD se realiza en forma de un archivo EDS (Electronic Data Sheet) en formato ASCII. Este archivo sigue una sintaxis estricta y se puede utilizar en todos los configuradores de bus CANopen (Sycon etc.) • Cada objeto del diccionario se puede acceder mediante: • Un índice de 16-bit • Un subíndice de 8-bit.
Diccionario de objetos (OD) Variables de ajuste del ATV312 Rampa de aceleración Rampa de deceleración
Comunicaciones implícitas ( PDO ) Comunicaciones explícitas ( SDO ) • Servicios de Comunicación
Servicios de comunicación CANopen ¿Qué servicios de comunicaciones están disponibles? • SDO – Objetos de comunicación punto a punto: (Service Data Objects) • PDO – Objetos de comunicación implícita: (Process Data Objects) • Objetos de comunicaciones especiales: (Special Function Objects) • Sincronización • Emergencia • Objetos de gestión de la red: (Network Management Objects) • Mensajes NMT • “Node Guarding” • “Heartbeat” • En CAN, estos objetos se asocian con mensajes con identificadores específicos. Ciertos identificadores están reservados para ciertos objetos de comunicaciones
Voy a perder el tren!!! Son las 6 pm CONSUMIDOR N°1 Vamos a ver una pelicula... PRODUCTOR CONSUMIDOR N°2 Comunicación implícita PDO PDO: Productor / Consumidor El PRODUCTOR es una entidad individual que produce información El CONSUMIDOR es una entidad que usa la información para hacer algo (diferentes entidades pueden usar la misma información)
Comunicación implícita PDO PDO: Productor / Consumidor PDO: “Process Data Objects” Comunicaciones implícitas El servicio más importante de CANopen Pensado para aplicaciones de tiempo real. PDOs de recepción y PDOs de transmisión Cada nodo lanza sus PDOs de transmisión al bus para que los consuma quien quiera Con el SyCon configuramos cada nodo para que: • reciba los PDOs que nosotros queramos • transmita en PDOs los índices de su diccionario que nosotros queramos
Comunicación implícita PDO • Por defecto, cada nodo tiene acceso a solo 4 PDOs • Dos tipos de parámetros para los PDOs: • Parámetros de configuración de los PDO • ¿Que ID de mensaje CAN se usa? • Define el “linking” (qué ID se usa para Transmitir o Recibir datos) • ¿Cuando se lanza el mensaje?(modo de transmisión) • Parámetros de mapeado del PDO • Qué objetos del diccionario están “mapeados” (incluidos) en el PDO • Máximo de 8 bytes por mensaje
Comunicación implícita PDO PDO En SyCon se seleccionan los datos a comunicar ID CANopen 1 ID CANopen 2 Datos PDO %MW Indice/SubÍndice Diccionario En UNITY se selecciona donde se dejan los datos Bus CANopen Los datos están actualizados en el bus en tiempo real Dispositivo A: Productor (Entradas Digitales) PLC Consume los datos del dispositivo A
Diccionario de Objetos (OD) • MAPEADO DE PDOs • Una de las ventajas que ofrece CANopen respecto a otros buses es la posibilidad de configurar el contenido de los parámetros que se envían/reciben en un PDO. A esto de le denomina “mapeado dinámico”. Los objetos mapeables permitidos por el equipo se encuentran contenidos en el archivo EDS que se proporciona con cada equipo de CANopen. ATENCIÓN: No todos los PDOs de un equipo se pueden mapear. En ciertos PDOs su contenido es fijo y no puede ser cambiado por el usuario. A esto de le denomina “mapeado fijo”. Por ello es importante leer la documentación del equipo y ver cual de los PDOs del equipo ofrecen la posibilidad de ser mapeados.
Mapeado de PDO’s Datos PDO En SyCon se seleccionan los datos a comunicar, es decir, cuando arranca el gestor de la red, el maestro escribe en los dispositivos esclavo (mediante SDOs) que datos formaran cada PDO (definición de los PDOs ) Diccionario de objetos del nodo Cada PDO puede contener hasta 8 bytes de datos Cada PDO puede tener su tiempo de ciclo particular Trama final En este caso se dejan sin usar 2 bytes de los 8 bytes disponibles en cada PDO
Comunicación implícita PDO En la pantalla de configuración de CanOpen en Unity parametrizamos la PCMCIA TSX CPP 110 módulo CanOpen • Configuración hardware – Via n • Entradas: num. Palabras y Índice 1º • Salidas: num. Palabras y Índice 1º • Selección Base de datos: Proyecto.co • Modo Carga configuración: UNITY