mds2000 Enero 2004 COMUNICACIÓN SERIE I Cuando se deben enviar datos de un dispositivo a otro es preferible reducir al mínimo el número de los Hilos,dado que cada uno de ellos implica diversos “problemas”tales como impedancias,retardos,distancias Etc.La solución que requiere el mínimo gasto de hardware es el puerto serie que no necesita un hilo para Cada bit:viajan uno después de otro en la misma línea.Estos dispositivos se pueden presentar como chips independientes o integrados en microcontroladores. Los bits se envían por la línea a intervalos regulares,controlados por un reloj,poniendo el hilo en el ámbito Eléctrico alto o bajo según el valor del bit que se va a transmitir.Sin embargo,hay un problema:no basta que El receptor lea a su vez a intervalos regulares,debe también saber dónde empieza y donde termina la Información. Por lo tanto es necesario utilizar un protocolo. Transmisión asíncrona Para evitar el uso de una señal externa de sincronización (transmisión síncrona)se envían los datos en Paquetes de bits. La línea reside normalmente en el nivel lógico 1 en condición de reposo;para marcar el inicio de un paquete De datos,se pone a 0 durante un tiempo bien definido:el BIT DE INICIO. Se envían los datos a intervalos regulares,después se tiene la línea a 1 (durante al menos un intervalo de bits)tras el último bit:este BIT DE PARADA confirma el final del envio de un paquete. www.mds2000.es -1- Velocidad y reloj El bit de inicio tiene también otra importante función:.la de sincronizar el reloj del receptor,es decir, Informarle de que en ese preciso instante empieza la transmisión de un bit. El receptor hace por tanto,”saltar el cronometro” y lee la línea a intervalos regulares,según la velocidad de Transmisión que debe ser conocida con anterioridad. Control de errores Para permitir al receptor detectar posibles alteraciones debidas a interferencias de transmisión,se puede añadir un bit de paridad posterior,antes del bit de parada. Puede elegirse de modo que el número total de 1 en el paquete sea par o impar;sin embargo,la técnica no es Muy eficiente,ya que dos errores pueden anularse recíprocamente. Por lo tanto,está bastante en desuso,y ha sido sustituida por controles de software basados en datos Incorporados a propósito. Dúplex completo De momento hemos estado hablando de un solo hilo,pero naturalmente es necesario también el hilo De retorno(masa):una línea de transmisión está por lo tanto formada por dos hilos. Además,la conexión es bidireccional en general:una línea va desde el dispositvo A al dispositivo B,otra Línea viaja en sentido contrario de Ba A.La conexión mínima “dúplex completo”,es decir ,que permite la comunicación simultanéa en los dos sentidos,requiere tres hilos:transmisión (tx),recepción(rx) y masa www.mds2000.es -2- Uart Teóricamente no basta con hardware special:una comunicación serie puede ser desarrollada por el mismo Microprocesador a través de software utilizando un hilo o dos de un puerto paralelo. Sin embargo,debe permanecer ocupado para cambiar de estado en la línea en momentos bien definidos,y no debe nunca perder de vista el hilo del receptor;mientras hace esto,dificilmengte puede ocuparse de otra cosa.Para liberar la CPU se delega normalmente el trabajo a la UART (Universal Asynchronous Receiver/ Transmitter:receptor/transmisor asíncrono universal)es decir,a un puerto serie. Estructura de una uart El transmisor es,en la práctica,un registro de desplazamiento PISO,controlado por el reloj producido por un oscilador:el dato,bits adicionales incluidos,se carga en paralelo y se envia en serie. El receptor,basado en un registro de desplazamiento PISO,es más complejo:debe sincronizarse automáticamente con el bit de inicio,y empezar a leer los datos serie a la llegada. El paquete recibido se copia en un buffer de modo que la CPU tenga tiempo de leérselo mientras el www.mds2000.es -3- Registro de desplazamiento recibe el siguiente. Señales y errores Como la recepción es asíncrona,es decir,puede producirse en cualquier momento,el UART debe avisar A la CPU con el fin de que se lea rápidamente el paquete recibido,antes de que se sobrescriba. Puede hacerlo poniendo a 1 un bit de uno de sus registros,legible por la CPU,o bien enviando una petición de intervención urgente (interupción)en un hilo especial. Otros bits del registro señalarán posibles condiciones de error:paridad errónea,error de encuadre(el bit de parada está a 0)o “overrun”(la CPU no ha leído a tiempo el dato anterior). www.mds2000.es -4- Handshake y caracteres Si un puerto paralelo esta conectado a otro dispositivo,por ejemplo una impresora,es necesario poder avisarle cuando se escriba un dato nuevo destinado a él. Un sencilla sistema consiste en añadir un hilo posterior,por el cual enviar un impulso de strobe(dato listo),de modo que el receptor sepa que debe leer el nuevo dato. Podrá utilizarse por el receptor un hilo en el otro sentido,por ejemplo para recibir datos,normalmente porque está todavía “dirigiendo” los anteriores. Líneas auxiliares Para los puertos serie ,el handshake puede producirse a través de software(con paquetes de datos especiales) o bien mediante hardware con la incorporación de más líneas de comunicación. La figura muestra las líneas auxiliares más utilizadas en el estandar RS-232,con su aplicación asociada;se Utilizan,por ejemplo en la conexión serie entre PC y MODEM. Nombre Función TD Salida de datos RD Entrada de datos Esta línea indica que el modem está preparado para el intercambio de CTS datos Cuando el modem detecta un "Carrier" de otro modem conectado al DCD otro lado de la línea telefónica se activa la línea DCD DSR Indica al UART que el modem está listo para establecer un enlace Es el contrario al DSR, indica al modem que el UART está listo para DTR establecer un enlace Esta línea informa al modem que el UART está listo para el RTS intercambio de datos RI Se activa cuando el modem detecta una señal de zumbido del teléfono Departamento Técnico MDS2000 www.mds2000.es -5-