Tratamiento de errores
C APÍTULO 5: C APA F ÍSICA DE COMUNICACIONES EN RS-485 Y E THERNET
R
ESUMENDados los requerimientos planteados en la capa de aplicación, se han definido funciones que debe cumplimentar el software desarrollado para la capa de transporte. En está última capa se fija entonces, el funcionamiento que se exigirá a la capa física, ajustándose al funcionamiento de los componentes involucrados que poseen una fabricación normada por un estándar.
En el presente capítulo se describe a detalle la capa física, inferior de la estructura que se ha planteado, haciendo hincapié en algunas de sus características y particularidades.
Se verán a detalle los aspectos involucrados en una red funcionando bajo norma RS-485, sobre la que se efectúa una implementación y con un detalle menor los aspectos involucrados en una red Ethernet ya establecida por un estándar de amplia difusión.
5.1.1I
NTRODUCCIÓNLa red de interconexión RS-485, es la primera que se ha tenido en cuenta en esta tesis para una red de interconexión de microcontroladores, por varias razones a saber:
• Satisface los dos requerimientos dados para la red física de interconexión ya mencionados anteriormente: capacidad de multidifusión (broadcast) y distancia de varias decenas de metros. De hecho, dependiendo de la velocidad de comunicación se pueden interconectar dispositivos a varios cientos de metros de distancia (900 mts por norma). Si en cambio se involucran en los segmentos de red otros dispositivos menos susceptibles a ruido eléctrico – fibra óptica, por ejemplo -, los segmentos se pueden extender prácticamente en forma ilimitada con repetidores transparentes.
• Está ampliamente probada en entornos industriales de producción y reconocida como una de las más inmunes a ruido (básicamente por ser balanceada) [8] [9]. • En el caso de dispositivos interconectados, la capacidad de comunicación es
muy satisfactoria, al menos en términos relativos de rendimiento de los microcontroladores. Se debe tener en cuenta, que los microcontroladores que están en contracto directo con el campo de aplicación no tienen, en general, gran capacidad de procesamiento sino que están orientados a tener muy buena respuesta en tiempo real, manejando directamente sensores y actuadores.
• Puede ser controlada/manejada de manera directa desde la inmensa mayoría de los microcontroladores, por puertos de entrada/salida de los mismos. Efectivamente, la mayoría de los microcontroladores (sino todos), normalmente incluyen embebida al menos una UART (Universal Synchronous Receiver / Transmitter), o incluso una USART (Universal Synchronous / Asynchronous Receiver / Transmitter), que adicionan la capacidad de comunicación serie sincrónica.
La red (o bus) RS-485, en la actualidad norma EIA-485, es una especificación eléctrica de capa 1 (física) del modelo OSI, para comunicaciones serie half-duplex multipunto. Esto significa que en una comunicación entre dispositivos, donde sólo uno de los integrantes de la red puede transmitir (Tx) y el resto debe estar en recepción (Rx). Para que esto sea posible, los instantes de transmisión de cada dispositivo deberían estar controlados por la propia evolución de las comunicaciones de los dispositivos interconectados, que hace que las emisiones simultáneas sean muy poco probables, por ejemplo siguiendo un protocolo Master-Slave. La definición del estándar RS-485 otorga las condiciones para que exista éxito de comunicación en una configuración half-duplex (un dispositivo envía y el o los demás dispositivos deberían recibir) y no se establecen condiciones para un tipo de error muy posible, que se suscitaría en caso que los dispositivos efectuaran contienda o puja por la utilización del bus. Este error se denomina Line Contention y se debería evitar por alguna forma de administración/control de las comunicaciones.
A partir de este punto, red 485, bus 485 y RS-485 se usarán como sinónimos de la especificación EIA-485, a menos que se aclare específicamente otra cosa.
5.2.R
EQUERIMIENTOS YC
ARACTERÍSTICASEn principio, los dos requerimientos más importantes para la interconexión (red física) de los microcontroladores son:
1. Capacidad de multidifusión de la red. Esto implica que la red física debe tener la capacidad de que - como mínimo para algunas comunicaciones -, uno de los dispositivos envíe un dato que pueda ser recibido de manera simultánea por todos los demás dispositivos conectados a la red. La capacidad de multidifusión, está directamente orientada al mantenimiento del sincronismo sin algoritmos muy complejos, utilizando comunicaciones de tipo broadcast (o colectivas) y además, podría ser utilizado para comunicar eventos muy importantes y/o críticos en el tiempo, para los cuales las conexiones punto a punto pueden resultar ineficientes o en peor caso, inútiles.
2. Distancia máxima de al menos centenas de metros. Dado que en principio no está determinado el tipo de sistema a monitorizar y/o controlar con la red de microcontroladores, se tiene en cuenta una distribución física relativamente amplia. No se espera que con esta distribución (del orden de las centenas de metros) se cubran todas las alternativas posibles, sino que se tenga una red versátil en cuanto a que cubra al menos, los entornos de máquinas herramientas (robots, por ejemplo) en una planta o ambiente industrial o de producción relativamente reducidos (del contexto de una red local, por ejemplo).
Otros requerimientos, que deben ser tenidos en cuenta aunque que no se establecen requerimientos a priori sobre ellos, serían:
3. Inmunidad al ruido. Está claro que mientras se tenga mayor inmunidad a ruido tanto la red como los mecanismos de comunicación sobre la misma serán más robustos (con baja frecuencias de fallas). Se debe tener en cuenta que pueden haber aplicaciones con entornos de comunicación con muy poco ruido (redes a campo abierto, como en el caso de sistemas de control de riego o compuertas en sistemas hidráulicos) y otras en ambientes industriales de mucho ruido para las comunicaciones digitales (Control de alimentación eléctrica, rectificadores para procesos de electrólisis).
4. Capacidad de comunicación/rendimiento en ancho de banda y/o latencia. Sin lugar a dudas, siempre es mejor contar con una red de alto rendimiento en cuanto a la capacidad de comunicar datos por unidad de tiempo o el tiempo mínimo para una transferencia de datos. Sin embargo, se debe recordar que los sistemas a monitorear y/o controlar pueden tener requerimientos de tiempo muy dispares, dependiendo de la aplicación. Es por esta razón que no se podría establecer a priori un determinado rango de requerimientos. Por otro lado, siempre se debe tener en cuenta que el rendimiento de la red de comunicaciones se puede evaluar relativo a la capacidad de procesamiento de los microcontroladores que se interconectan. No tiene mucho sentido en realidad, tener más capacidad de comunicaciones de datos, si los procesadores no pueden ni siquiera enviar o recibir por tener baja frecuencias de reloj, por ejemplo.
Asimismo, se tienen varias características a tener en cuenta para la red física de interconexión de microcontroladores, ahora con la decisión de utilizar RS-485 para la capa física de comunicaciones y también utilizar la capacidad de los microcontroladores de transmisiones serie asincrónicas:
5. La red de microcontroladores debe tener la capacidad de interconectar varios microcontroladores con capacidad de multidifusión. Esto implica que normalmente habrá más de dos dispositivos interconectados y que las comunicaciones pueden ser desde uno cualquiera de ellos hacia otro/s.
6. La especificación de Rs-485 no incluye la forma en que se controla (o se asegura) la comunicación half-duplex. Se debe establecer una forma de comunicaciones que evite Line Contention sobre el bus 485. La consecuencia directa, es que no se define ninguna parte de la red física para evitar Line Contention, las colisiones se deben evitar en alguna de las capas superiores. 7. Se tiende a utilizar la capacidad de comunicaciones serie incorporada (integrada)
en los microcontroladores. Ello con puertos de comunicaciones basados en UART o USART. Esto implica la utilización de algún mecanismo de conversión de un puerto diseñado para comunicaciones serie, full-duplex, que posee una línea de Rx y otra de Tx, a un esquema como el propuesto por la norma RS-485, donde hay un único par de conductores, balanceado, por donde se debe transmitir y recibir. Concretamente, se debe convertir un puerto serie asincrónico full-duplex al manejo de señales eléctricas half-duplex que propone RS-485.