Terminar un prototipo operativo de un sistema embebido puede tardar semanas o meses. En ocasiones, me he pasado días trabajando en una sola parte del proyecto. Sin embargo, cuando tu jefe quiere actualizaciones a diario, puede resultar especialmente molesto y entorpecer tu productividad. Cuando fundé mi empresa de diseño, aprendí a no repetir estos errores con mi equipo.
Al igual que las personas, los sistemas embebidos se presentan en diferentes formas y tamaños y, lo que es más importante, con diferentes funcionalidades y capacidades. Además de responder a un controlador ubicado más arriba en la cadena de mando, un sistema embebido tiene que realizar sus otras tareas de manera eficiente. Esto incluye supervisar entradas, calcular y convertir valores. También debe proporcionar actualizaciones fiables o comandos de procesamiento. Cuando las solicitudes de otro controlador interrumpen constantemente un sistema embebido, este es menos eficiente. En algunos casos, esto puede provocar que se bloquee sin previo aviso.
La manera más sencilla para que los sistemas embebidos se comuniquen entre sí es a través de una estructura de comunicación maestro-esclavo. En este caso, un único sistema embebido se designa como maestro y es responsable de iniciar la comunicación con los sistemas embebidos conectados a él. La comunicación maestro-esclavo tiene un patrón predecible en la forma en que los mensajes se transmiten a través de la interfaz de comunicación. Los controladores esclavos no pueden transmitir ningún paquete de datos a menos que el controlador maestro lo solicite.
Uno de mis últimos proyectos en el que he utilizado una configuración maestro-esclavo es un sistema de supervisión para máquinas de fabricación de caucho. Se colocó un controlador de supervisión de sensores en cada máquina para controlar sus ciclos de funcionamiento a través de distintos sensores. Un controlador maestro estaba conectado a todos los controladores de los sensores y utilizaba memoria no volátil para almacenar los datos recogidos.
Aunque parezca sencillo, no tener en cuenta las siguientes consideraciones de diseño puede generar problemas después de la implantación.
A menudo, los controladores maestros y esclavos están alimentados por microcontroladores con una potencia de procesamiento variable. Un controlador maestro suele funcionar con un microcontrolador más potente que un controlador esclavo. Los controladores esclavos suelen realizar tareas específicas, como controlar las entradas de los sensores o accionar un motor, por lo que tiene sentido equiparlos con un microcontrolador de gama media o baja.
Los programadores que escriben código para el controlador maestro deben abstenerse de interrumpir el controlador esclavo con demasiada frecuencia para solicitar actualizaciones de estado. Como tienen una capacidad de procesamiento limitada, la interrupción puede desbordar al controlador esclavo. Si un controlador esclavo no está diseñado para gestionar un gran volumen de solicitudes, puede sufrir un desbordamiento de memoria o pila y bloquearse.
Los programadores maestros y esclavos pueden funcionar a velocidades muy diferentes.
En teoría, puedes enlazar tu controlador maestro con tantos controladores esclavos como permitan las normas de la interfaz de comunicación. Por ejemplo, el RS458 puede tener hasta 32 dispositivos conectados a una sola conexión. Sin embargo, en la práctica, deberás considerar qué efectos tendrá la conexión de un gran número de controladores esclavos en un mismo canal sobre la velocidad de recuperación de la información. Por ejemplo, un controlador esclavo tarda 10 milisegundos en responder a una solicitud. Si hay 31 controladores esclavos, tardarán 310 milisegundos en recibir actualizaciones del mismo controlador en el siguiente ciclo. Si el controlador maestro requiere que las actualizaciones se realicen a una velocidad mayor, deberás limitar el número de controladores esclavos conectados a un solo canal.
Los sistemas embebidos que se configuran de forma maestro-esclavo a menudo se conectan con un solo cable que pasa de un controlador a otro. Este método de cableado de varios puntos es sencillo y económico, pero también pone en riesgo todo el sistema si el cable se rompe. Por ejemplo, un cable que se rompe entre el quinto y el sexto controlador esclavo reduce la comunicación del maestro con los cinco primeros controladores esclavos.
En aplicaciones críticas, los desarrolladores y diseñadores de sistemas deben considerar la posibilidad de añadir una conexión redundante desde el controlador maestro al último controlador esclavo en el bucle como medida de seguridad. Si el controlador maestro detecta una posible ruptura en el cable, puede activar la conexión de reserva para restaurar las comunicaciones.
Vale la pena ser redundante en aplicaciones críticas.
Independientemente de si vas a diseñar un controlador maestro o esclavo, es importante elegir el microcontrolador correcto, así como sus componentes correspondientes. Softwares de PCB como Altium Designer® y Altium Vault® te dan acceso a bibliotecas de componentes desde las que puedes simplificar los procesos.
Si tienes dudas sobre cómo implantar comunicaciones maestro-esclavo, ponte en contacto con los expertos de Altium.