comunicación serie i

Anuncio
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-
Descargar