Utilice el subsistema especializado de Sitara para comunicaciones y procesamiento de automatización industrial
Colaboración de Editores de DigiKey de América del Norte
2019-11-21
Brindar comunicaciones confiables para sistemas de automatización industrial presenta desafíos únicos para los desarrolladores. Estos sistemas se basan en distintos protocolos de comunicaciones diseñados para mantener conexiones confiables en tiempo real entre los diversos subsistemas utilizados en un entorno industrial. Dentro de ese entorno, los procesadores convencionales de propósito general pueden no ser capaces de cumplir de manera consistente con los requisitos de comunicaciones en tiempo real cuando ejecutan el software de la aplicación.
Los desarrolladores necesitan una plataforma de desarrollo que puedan adaptar fácilmente para satisfacer las diversas demandas de las aplicaciones industriales.
Este artículo muestra cómo los desarrolladores pueden usar un kit comercial de desarrollo de Texas Instruments para acelerar el desarrollo de soluciones de comunicaciones industriales. En el corazón de este kit, el procesador Sitara de Texas Instruments ofrece la combinación de recursos computacionales y capacidades de comunicaciones dedicadas requeridas en aplicaciones industriales.
Requisitos de comunicaciones industriales
Como habilitador clave para estrategias de fabricación avanzadas, los sistemas de comunicaciones industriales enfrentan requisitos cada vez más estrictos para la respuesta en tiempo real y la confiabilidad al vincular grupos de sensores, motores y actuadores con controladores lógicos programables (PLC) e interfaces hombre-máquina (HMI).
Junto con esta colección diversa de subsistemas, una aplicación industrial podría enfrentar una combinación de requisitos de rendimiento, equipos especializados y sistemas heredados que impulsan la necesidad de admitir múltiples tecnologías y protocolos de red. Como resultado, un entorno único podría necesitar admitir múltiples protocolos de bus de campo como Control Area Network (CAN), Modbus y Profibus, así como protocolos de Ethernet industrial como Profinet, EtherCAT, Sercos III y otros.
Al igual que con los estándares de bus de campo, cada estándar de Ethernet industrial ha surgido para abordar un conjunto específico de requisitos. Cada uno proporciona el tipo de rendimiento en tiempo real que falta en el Ethernet convencional pero que se requiere para las comunicaciones industriales. La forma en que logran esa capacidad puede diferir notablemente de un estándar de Ethernet industrial a otro.
Por ejemplo, Profinet permite que el controlador maestro se comunique con todos los dispositivos en la red. Los dispositivos esclavos pueden a su vez intercambiar tramas con el controlador, pero solo se comunican con otros dispositivos de forma acíclica. Para las comunicaciones, este protocolo proporciona un canal estándar de protocolo de control de transmisión/protocolo de Internet (TCP/IP) para el intercambio de datos convencional en tiempo no real. Para el intercambio de datos en tiempo real, un canal Profinet en tiempo real admite intercambios cíclicos o acíclicos entre un controlador y dispositivos secundarios (Figura 1, izquierda).
Figura 1: Las diferentes pilas de Ethernet industrial para Profinet (izquierda) y EtherCAT (derecha) pueden proporcionar servicios similares, como el Ethernet convencional, pero difieren notablemente en su enfoque para admitir comunicaciones en tiempo real en sus protocolos de nivel superior y servicios de Control de acceso al medio (MAC) y Capa de enlace de datos (DLL) subyacentes. (Fuente de la imagen: Texas Instruments)
En EtherCAT, el maestro se comunica con los secundarios al incluir comandos y datos para cada secundario en una trama que se transmite de nodo a nodo. Cuando la trama pasa, cada nodo secundario lee sus comandos y datos designados y agrega sus propios datos a la trama a medida que continúa. Al igual que Profinet, EtherCAT combina un canal TCP/IP convencional para la comunicación compatible con Ethernet con un canal en tiempo real para la comunicación sensible al tiempo (Figura 1, derecha).
Aunque los diferentes estándares de Ethernet industrial dependen de mecanismos significativamente diferentes, todos comparten la capacidad de proporcionar el tipo de rendimiento en tiempo real que falta en el Ethernet convencional pero que es necesario para las comunicaciones industriales. Sin embargo, al implementar estos estándares, los desarrolladores pueden verse atrapados entre las limitaciones de rendimiento de las opciones de diseño típicas y los requisitos de rendimiento en tiempo real de su aplicación.
Las aplicaciones en tiempo real dependen de respuestas de baja latencia entregadas dentro de un período de tiempo constante después de un comando, entrada u otro estímulo de control. En los procesos basados en ciclos utilizados en los sistemas industriales, los sistemas de baja latencia aseguran que los procesos ocurran lo más cerca posible del comienzo de cada ciclo. La fluctuación u otros factores en estos sistemas pueden causar variaciones impredecibles en el ciclo, erosionando la capacidad del sistema para manejar procesos de alta velocidad de ciclo de una manera confiable y consistente.
En el pasado, los desarrolladores a menudo se veían obligados a diseñar sus propias soluciones de hardware para enfrentar los desafíos del procesamiento en tiempo real asociados con la conectividad industrial. Para complicar la mayoría de los enfoques, el software y el hardware diseñados para la informática de propósito general se centran en optimizar el rendimiento general de la ejecución de la aplicación en lugar de abordar los requisitos de rendimiento en tiempo real.
A nivel de software, los desarrolladores de aplicaciones industriales necesitan capacidades de respuesta determinista y de baja latencia, generalmente provistas de Linux en tiempo real y, a un nivel más exigente, con un sistema operativo de tiempo real (RTOS). En última instancia, la latencia y el rendimiento determinista dependen del procesador utilizado en la plataforma de hardware subyacente.
Un procesador de propósito general como el núcleo Arm® Cortex®-A es ideal para ejecutar software que realiza las tareas de nivel superior de cualquier aplicación, incluidas las necesarias para la automatización industrial. Los procesadores típicos de propósito general aprovechan las jerarquías de memoria caché multinivel y las canalizaciones de instrucciones de etapas múltiples para acelerar el procesamiento (Figura 2).
Figura 2: En un procesador de propósito general como el Arm Cortex-A, la arquitectura utiliza múltiples capas de interconexión y recursos para optimizar la ejecución de las diversas cargas de trabajo encontradas en la ejecución de la aplicación. (Fuente de la imagen: Texas Instruments)
Para los desarrolladores de comunicaciones industriales, esas mismas características arquitectónicas complican la capacidad de lograr el rendimiento en tiempo real requerido en la automatización industrial en general y en los sistemas Ethernet en tiempo real. Cada capa de caché, memoria e interconexión extiende el tiempo requerido para satisfacer los procesos basados en ciclos (latencia). Debido a que el grado en que el procesador debe alcanzar a través de estas capas puede cambiar de un ciclo a otro, el tiempo de respuesta puede variar drásticamente.
En el pasado, los desarrolladores con este problema han implementado las partes críticas de tiempo y rendimiento de sus sistemas con hardware dedicado, matrices de compuerta programables en campo (FPGA) o incluso circuitos integrados específicos de la aplicación (ASIC). Para soportar Ethernet en tiempo real, por ejemplo, este enfoque ha tenido que implementar el MAC y otras funciones en tiempo real en un FPGA o ASIC.
Aunque el hardware personalizado puede ofrecer una solución muy efectiva en términos de rendimiento, el aumento significativo en el costo y la complejidad del diseño resultante hace que este enfoque sea práctico solo para aplicaciones donde los requisitos de rendimiento dominan todas las demás consideraciones. Para las comunicaciones industriales, Texas Instruments ofrece una solución más práctica y rentable al aprovechar al máximo la arquitectura multiprocesador de su familia de procesadores Sitara.
Subsistema de comunicaciones industriales
La familia de procesadores Sitara combina un procesador de aplicaciones Arm Cortex-A de alto rendimiento con una o más instancias de su unidad de tiempo real programable y subsistema de comunicaciones industriales (PRU-ICSS). Mientras que el procesador Cortex-A ejecuta la aplicación principal, el PRU-ICSS proporciona procesamiento en tiempo real y capacidades de E/S necesarias para los protocolos de Ethernet industrial y otras funciones de control (Figura 3).
Figura 3: Los miembros de la familia de procesadores Sitara de Texas Instruments combinan un procesador Arm Cortex-A de propósito general con una unidad de tiempo real programable especializada especialmente optimizada para proporcionar el rendimiento determinista y de baja latencia requerido en aplicaciones en tiempo real. (Fuente de la imagen: Texas Instruments)
Cada subsistema de unidad de tiempo real programable (PRU) Sitara incluye dos núcleos de tiempo real de 200 megahercios (MHz) (PRU0 y PRU1 como se muestra en la Figura 3) que se ejecutan con un tiempo de ciclo de cinco nanosegundos (ns) por instrucción. Los núcleos están diseñados con un pequeño conjunto de instrucciones que se procesan sin una canal de instrucciones para garantizar la ejecución determinista de la instrucción de ciclo único. Para reducir la latencia de las operaciones periféricas, los núcleos acceden a recursos compartidos a través de una interconexión dedicada de 32 bits que los conecta directamente con múltiples periféricos, incluida la entrada/salida de datos de administración (MDIO) y la interfaz independiente de medios (MII) necesaria para Ethernet en tiempo real. Además, cada núcleo de PRU se conecta directamente a los pines externos del dispositivo a través de su propio conjunto de hasta 30 entradas y 32 salidas (Figura 4).
Figura 4: La PRU integrada en los procesadores Sitara de Texas Instruments utiliza su acceso directo a pines de entrada y salida, así como otros recursos de hardware para reducir la latencia en aplicaciones industriales. (Fuente de la imagen: Texas Instruments)
Con esta arquitectura periférica estrechamente acoplada, los núcleos en tiempo real pueden funcionar de forma independiente y evitar retrasos asociados con el trabajo a través de las múltiples interconexiones y capas en un sistema de procesamiento general típico. La combinación de ejecución rápida de ciclo único y acceso directo a periféricos permite al subsistema ejecutar procesos basados en ciclos de manera determinista y responder de manera rápida y predecible a eventos externos. Como resultado, el subsistema PRU puede realizar operaciones de E/S y alcanzar pines externos de manera mucho más eficiente que el procesador de propósito general complementario (Figura 5).
Figura 5: Con su ejecución de instrucción de ciclo único y acceso directo a los pines del dispositivo, el subsistema de unidad de tiempo real programable (PRU) integrado en los procesadores Sitara de TI necesita trabajar a través de muchas menos capas para leer o escribir señales en los pines del dispositivo (derecha), proporcionando más rápido operaciones periféricas de lo que es posible con el procesador Arm Cortex-A complementario (izquierda). (Fuente de la imagen: Texas Instruments)
La combinación de E/S de alta velocidad y 5 ns de tiempo de ciclo disponible con los núcleos de PRU proporciona la capacidad de rendimiento determinista y de baja latencia requerida para las comunicaciones industriales. En un nivel superior, esta arquitectura proporciona mecanismos flexibles diseñados para optimizar el uso coordinado del subsistema Arm Cortex-A y PRU para maximizar el rendimiento de las aplicaciones industriales.
Mediante el uso de recursos dedicados y compartidos, según corresponda, los diversos núcleos pueden operar al máximo rendimiento por sí solos y juntos para la ejecución de tareas complejas en tiempo real. Las tareas adaptadas a un núcleo individual pueden ejecutarse independientemente en ese núcleo, mientras que las tareas en tiempo real más exigentes pueden compartir la carga de procesamiento en diferentes núcleos estrechamente acoplados. La capacidad de los núcleos de la PRU para acceder directamente a los recursos del núcleo Cortex-A ayuda a garantizar la ejecución de alto rendimiento de las operaciones en tiempo real y las interacciones periféricas en cualquier de los dos modos operativos.
Para optimizar la asignación y gestión de recursos en una ejecución estrechamente acoplada, la arquitectura del sistema de Sitara proporciona mecanismos de coordinación tanto en hardware como en software. A nivel de hardware, las funciones de comunicación entre procesadores, incluidos los buzones de correo basados en hardware y los registros de bloqueo de recursos, ayudan a garantizar la sincronización del procesador Cortex-A y PRU-ICSS.
A nivel de software, el soporte para servicios de multiprocesamiento de Linux proporciona un entorno operativo estándar para coordinar la ejecución de tareas en una operación estrechamente acoplada. En tiempo de ejecución, el núcleo del sistema operativo que se ejecuta en el núcleo de Arm Cortex-A coordina las operaciones del sistema de la PRU utilizando los servicios estándar RemoteProc (Remote Process) y rpmsg (Remote Process Messaging) con sus propios controladores y controladores correspondientes en el firmware de la PRU. Mientras que los servicios RemoteProc manejan la carga del firmware de la PRU y el procesamiento posterior, el marco rpmsg permite el intercambio de mensajes desde la aplicación a la PRU utilizando la interfaz de virtualización virtio (Figura 6).
Figura 6: Los procesadores Sitara de Texas Instruments admiten un conjunto estándar de servicios para la interacción de aplicaciones y la coordinación del procesador host Arm Cortex-A y el subsistema de la PRU. (Fuente de la imagen: Texas Instruments)
Las ventajas de esta arquitectura se vuelven particularmente evidentes en su capacidad para simplificar el desarrollo y aumentar el rendimiento de las opciones de conectividad industrial que van desde interfaces de comunicaciones en serie como la interfaz periférica serial (SPI) hasta los complejos protocolos de Ethernet industrial. Los procesadores Sitara de TI pueden ejecutar eficientemente protocolos Ethernet en tiempo real como Profinet a través de una combinación de pilas de software de protocolo que se ejecutan en el procesador Cortex-A y servicios en tiempo real manejados por el firmware de la PRU (Figura 7).
Figura 7: Al coordinar la ejecución de software en su procesador host Arm Cortex-A y la ejecución de firmware en su subsistema PRU, un procesador Sitara de Texas Instruments puede cumplir con los requisitos de procesamiento de propósito general y en tiempo real de un protocolo Ethernet industrial como Profinet. (Fuente de la imagen: Texas Instruments)
Este enfoque proporciona una solución simple para admitir múltiples protocolos en una sola aplicación. Los desarrolladores solo necesitan ejecutar la pila y el firmware necesarios para cada protocolo simultáneamente en el procesador Sitara (Figura 8).
Figura 8: La eficiencia de ejecución de firmware de la PRU y el rendimiento de ejecución de software de su procesador Arm Cortex-A permiten que un procesador Sitara de Texas Instruments admita en forma concurrente múltiples interfaces y protocolos de comunicaciones industriales. (Fuente de la imagen: Texas Instruments)
TI proporciona pilas de protocolos completos para varios protocolos de comunicaciones seriales diferentes, protocolos de bus de campo y protocolos Ethernet en tiempo real, incluidos EtherCAT, Profinet y Sercos III. Al combinar pilas de protocolos en el mismo sistema basado en Sitara, los desarrolladores pueden admitir los diversos requisitos de conectividad para un PLC o conmutador industrial típico que necesita admitir, por ejemplo, un Ethernet industrial como Profinet en el lado del host, así como un bus de campo como Profibus o IO-Link en el lado de los periféricos.
Los paquetes de Ethernet industrial estándar disponibles se proporcionan como binarios de caja negra, pero TI proporciona a los desarrolladores una serie de ejemplos de servicios de comunicaciones industriales. Para el desarrollo de aplicaciones, un Kit de desarrollo de software de procesador (SDK de procesador) de TI específico de la familia, como el SDK de procesador para procesadores AM437x Sitara, proporciona una interfaz de programación de aplicaciones (API) para la familia de procesadores correspondiente. Al ofrecer una funcionalidad específica para la familia, estas API proporcionan abstracciones intuitivas para operaciones de bajo nivel, tales como transacciones GPIO o IO-Link (Listado 1).
Copy /* GPIO LED toggling*/ ...
Board_init(boardCfg); GPIO_init(); While(1) { GPIO_write(Board_LED1, GPIO_PIN_VAL_HIGH); Delay(); GPIO_write(Board_LED1, GPIO_PIN_VAL_LOW); Delay(); } /* IO-LINK status */ ...
Board_init(boardCfg); ...
IOLINK_socGetFwCfg(peripheralNum, &iolink_cfg); ...
IOLINK_socSetFwCfg(peripheralNum, &iolink_cfg); ...
IOLINK_init(); ...
iolinkHandle = IOLINK_open(peripheralNum, &iolinkParams); ...
status = IOLINK_control(iolinkHandle, iolinkCmd, &iolinkCmdArg); ...
Listado 1: Como demuestran estos fragmentos, la API del SDK de procesador de Texas Instruments para cada familia Sitara permite a los desarrolladores centrarse en abstracciones funcionales en lugar de dedicar su tiempo a la manipulación de bits de bajo nivel o el acceso a registros. (Fuente del código: Texas Instruments)
Desarrollo acelerado
Además del código y las herramientas ofrecidas por TI para implementar protocolos de comunicaciones industriales en los procesadores Sitara, los desarrolladores pueden acelerar el desarrollo de su propio software de comunicaciones industriales utilizando protocolos, controladores y firmware de PRU en paquetes adicionales de TI y de proveedores de pilas de protocolo de terceros. Del mismo modo, el Kit de desarrollo industrial (IDK) TMDSIDK437X de TI acelera el desarrollo al proporcionar una plataforma de hardware integral basada en Sitara para aplicaciones industriales (Figura 9).
Figura 9: El IDK TMDSIDK437X de Texas Instruments combina un procesador Sitara, memoria y un conjunto completo de periféricos, interfaces y canales de comunicación que proporcionan a los desarrolladores una plataforma para la evaluación de protocolos de comunicaciones industriales y el rápido desarrollo de aplicaciones de automatización industrial. (Fuente de la imagen: Texas Instruments)
La placa IDK TMDSIDK437X de TI incluye 1 gigabyte (Gbyte) de memoria de acceso aleatorio (RAM) de doble velocidad de datos 3 (DDR3), flash con SPI cuádruple NOR y un procesador Sitara AM4379 de TI. El procesador AM4379 combina un procesador Arm Cortex-A9 con dos subsistemas de PRU, cada uno con dos núcleos de PRU.
En una red de automatización industrial típica, el AM4379 de Sitara puede desempeñar múltiples funciones. Además del uso en sistemas multiprotocolo como PLC, conmutadores y puertas de enlace, los procesadores AM4379 de Sitara pueden usarse en equipos finales que requieren soporte HMI gracias a sus subsistemas gráficos y de visualización integrados.
Junto con múltiples periféricos y puertos de comunicaciones, la placa IDK incluye chips de interfaz de Ethernet que incluyen el transceptor PHY de 10/100 Mbits/s TLK105 de Texas Instruments para conexiones de Ethernet industrial y el transceptor PHY gigabit (Gbit) KSZ9031RNXIA-TR de Microchip Technology para conexiones de Ethernet convencionales.
Implementar una aplicación de comunicaciones industriales con este kit es sencillo, requiere solo un suministro de 24 voltios y una conexión de cable Ethernet al sistema de desarrollo.
El conjunto de software industrial PRU-ICSS de TI proporciona paquetes de software para los protocolos de comunicaciones industriales mencionados anteriormente. Usando el entorno completo de desarrollo integrado (IDE) Code Composer Studio de TI, los desarrolladores pueden cargar, construir y ejecutar rápidamente aplicaciones de muestra proporcionadas con los paquetes como punto de partida, o usarlas durante la producción para sus propias aplicaciones.
Mediante el uso del software de TI y los paquetes de software industrial PRU-ICSS, los desarrolladores pueden implementar rápidamente sofisticados sistemas de automatización industrial, como un controlador de accionamiento de motor conectado a Ethernet (Figura 10).
Figura 10: La combinación del IDK TMDSIDK437X de Texas Instruments y el software de Texas Instruments proporciona una plataforma de desarrollo particularmente efectiva para la implementación rápida de sistemas industriales como el controlador de motor conectado EtherCAT que se muestra aquí. (Fuente de la imagen: Texas Instruments)
Para la aplicación del controlador del impulsor de motor, el subsistema de la PRU recolectaría datos de posición del motor utilizando la interfaz del convertidor analógico a digital (ADC) de la placa TMDSIDK437X o su interfaz de codificador bidireccional digital EnDat. Con estos datos, el procesador Arm Cortex-A ejecutaría un algoritmo de control orientado al campo (FOC) para crear un nuevo conjunto de parámetros de control del motor para la entrega a través de un canal de modulación de ancho de pulso (PWM) de Sitara. Finalmente, un impulsor de motor DRV8313 de TI incluido en la placa TMDSIDK437X generaría los parámetros del motor ajustados.
Usando la placa de hardware IDK TMDSIDK437X con el software de TI, los desarrolladores pueden implementar rápidamente aplicaciones de automatización industrial conectadas a través de una variedad de interfaces y protocolos de comunicaciones. Para aplicaciones personalizadas, el kit sirve como un diseño de referencia integral que puede ayudar a acelerar el desarrollo de hardware. En combinación con esta base de hardware, el SDK de procesador de TI y el paquete de software industrial PRU-ICSS proporcionan una plataforma de desarrollo capaz de cumplir con los requisitos de las aplicaciones emergentes basadas en diversos protocolos de comunicaciones industriales.
Conclusión
En vista del creciente conjunto de requisitos, la ejecución de alto rendimiento de los protocolos de comunicaciones industriales es crítica para la realización de sistemas avanzados de automatización industrial. Si bien se requieren procesadores de propósito general para ejecutar algoritmos y procesos de nivel superior en estos sistemas, normalmente se necesitan dispositivos especializados para proporcionar el rendimiento determinista de baja latencia requerido para admitir protocolos de comunicaciones industriales en tiempo real para bus de campo y conectividad de Ethernet industrial.
Como se muestra, la familia Sitara de Texas Instruments proporciona unidades de procesamiento en tiempo real y de propósito general requeridas para cumplir con estos diversos requisitos. Utilizando un kit de desarrollo industrial basado en Sitara de Texas Instruments en combinación con pilas de protocolos de comunicaciones preconstruidas, los desarrolladores pueden implementar rápidamente sofisticadas aplicaciones de automatización industrial capaces de admitir una amplia gama de opciones de comunicaciones industriales.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.


