Figura 2. Formato de un dato serie síncrono

ELECTRÓNICA DIGITAL II 1   COMUNICACIÓN SERIE EN EL 8051    • En la comunicación serie los datos se transfieren bit por bit.   • Una interfaz en el 

0 downloads 87 Views 546KB Size

Recommend Stories


Figura 5-1. Figura 5-2
Pag 1 OPERACION DE INSTRUMENTOS MIDI 1 NORMA MIDI 1.0 La norma MIDI (Musical instruments digital interface) o Interfase Digital para Instrumentos Mu

3. UN FORMATO DE FORMULARIO
3. UN FORMATO DE FORMULARIO A partir de este punto vamos a presentar un formato de formulario que recoge la información más habitualmente requerida po

Story Transcript

ELECTRÓNICA DIGITAL II

1

  COMUNICACIÓN SERIE EN EL 8051    • En la comunicación serie los datos se transfieren bit por bit.   • Una interfaz en el microcontrolador los transfiere el dato en paralelo del CPU a serie para trasmitirlo  por un solo enlace a otro dispositivo.  • En el dispositivo receptor (que puede ser otro microcontrolador) se tiene que reconstruir de serie a  paralelo.   • Existen dos tipos de comunicación serie: ASÍNCRONA y SÍNCRONA.  • En la comunicación asíncrona, el trasmisor y receptor no comparten un reloj común. Cada uno de  ellos tiene su propio reloj. El trasmisor también agrega los bits de START, STOP y PARIDAD (figura 1).   

 

Figura 1. Formato de un dato serie asíncrono    • • • • • •

El receptor extraerá el dato con su reloj propio y convertirá el dato a paralelo después de quitar los  bits de inicio, alto y paridad.  Transmisión asíncrona es más fácil de implementar pero con la desventaja de tener que agregar los  2 o 3 bits de control para cada 8 bits de dato.   Por tanto se usa para trasmisión de bajo volumen de datos.  En la comunicación síncrona, se envían bloques de datos sobre una línea en serie (figura 2).  El trasmisor y el receptor comparten un reloj común.  El  trasmisor  típicamente  provee  el  reloj  como  una  señal  separada  además  de  la  señal  de  datos  (figura 3).   

 

Figura 2. Formato de un dato serie síncrono.   

Figura 3. Trasmisión síncrona.    • • •

 

El bloque de datos se complementa con uno o más bytes de sincronización de modo que el receptor  pueda identificar cuál grupo de bits en el flujo de bits son datos.  Se incluye también un ENCABEZADO (header)  para informar al receptor acerca del número de bytes  de dato en el bloque y otra información relevante.  Después de los bytes de datos están los bytes de verificación de error (check byte).  

DR. JAVIER VEGA PINEDA

INSTITUTO TECNOLÓGICO DE CHIHUAHUA

ELECTRÓNICA DIGITAL II

2

  • Al final y al inicio del bloque están los bytes de de sincronización respectivamente (sync byte).  • Los bytes de verificación permiten al receptor detectar errores de trasmisión.     El 8051 incluye un dispositivo periférico llamado UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER  (UART) para comunicación serie.    La operación esencial del UART es la conversión paralelo a serie del dato de salida y serie a paralelo del  datos de entrada y por tanto solo soporta comunicación serie asíncrona.    El UART es programable y capaz de trabajar sin mucha asistencia por parte del CPU. El CPU inicializa al  UART, le envía los datos y pasa a otras actividades.  La salida del UART (en formato serie) pasa por un VOLTAGE LEVEL SHIFTER y convierte el nivel lógico TTL  a nivel lógico RS‐232C de ±12V. Esta señal se trasmite al dispositivo externo receptor (figura 4).   

  Figura 4. Trasmisión serie asíncrona de datos de 7 bits.    El UART en el 8051 puede trabajar en varios modos y en un rango amplio de frecuencias de trasmisión.    Puede  operar  en  FULL  DUPLEX  (trasmisión  y  recepción  simultáneas)  y  con  BUFFERING  para  recepción.  Esto permite que un carácter al recibirse sea retenido en un BUFFER mientras un segundo carácter se  está recibiendo.    Un bit RECEIVE OVERRUN indica cuando un nuevo dato es capturado en el buffer del receptor antes que  el byte previo recibido se lea.    En  trasmisión  asíncrona  se  utiliza  el  BAUD  RATE  como  medida  de  velocidad  de  trasmisión  serie.  El  siguiente ejemplo explica su significado.  THROUGHPUT  (volumen  de  trabajo  o  de  información  que  fluye  a  través  de  un  sistema)  —  los  datos  reales trasmitidos por segundo (bits totales trasmitidos — OVERHEAD)   

DR. JAVIER VEGA PINEDA

INSTITUTO TECNOLÓGICO DE CHIHUAHUA

ELECTRÓNICA DIGITAL II

3

  Ejemplo: 115,200 baud = 115,200 bits/seg  Si usamos datos de 8 bits, 1 start, 1 stop, y sin bits de paridad, el throughput efectivo es: 115,200 * 8 /  10 = 92,160 bits/sec.    REGISTROS DE COMUNICACIÓN SERIE DEL 8051   

 

 

  MODOS DE TRASMISIÓN    El 8051 cuenta con 4 modos de trasmisión, 3 modos asíncronos y un modo síncrono (el modo 0).     MODO 0    El modo 0 se muestra funcionalmente en la figura 5 y el formato de trasmisión y recepción de los datos  en la figura 6.    La frecuencia de trasmisión es el clock/12.    MODO 1. UART DE 8 BITS CON BAUD RATE VARIABLE    Provee comunicación asíncrona serie full duplex. Se reciben 10 bits en RX o se trasmiten en TX. Los bits  son, un bit de inicio (siempre 0), los 8 bits de dato (LSB primero) y un bit de alto (siempre 1).  

DR. JAVIER VEGA PINEDA

INSTITUTO TECNOLÓGICO DE CHIHUAHUA

ELECTRÓNICA DIGITAL II

4

  La frecuencia de trasmisión es variable.    En recepción el bit de Alto (Stop), se almacena en RB8 de SCON, si SM2=0.   

               Figura 5. Modo 0 en la trasmisión serie y los pines en el 8051.   

 

 

Figura 6. Formato de dato en la trasmisión serie modo 0.   

Figura 7. Una aplicación directa del modo 0. 

DR. JAVIER VEGA PINEDA

 

INSTITUTO TECNOLÓGICO DE CHIHUAHUA

ELECTRÓNICA DIGITAL II

5

  MODO 2. UART DE 9 BITS CON BAUD RATE FIJO    Se  trasmiten  (TX)  o  reciben  (RX)  11  bits.  Los  bits  son,  un  bit  de  inicio  (siempre  0),  8  bits  de  dato,  un  noveno bit de dato programable, en recepción es RB8 y en trasmisión es TB8 (de SCON) y un bit de alto.    El baud rate es clock/32 o clock/64.    MODO 3. UART DE 9 BITS CON BAUD RATE VARIABLE

  Se trasmiten o reciben 11 bits igual que en el modo dos.     La diferencia es que el baud rate es variable. Se usa el Timer 1 para generar el baud rate.      En los 4 modos, la transmisión se inicia cuando SBUF se usa como registro destino.     La recepción se inicia en el modo 0 comienza cuando RI=0, en los otros modos, cuando se detecta el bit  de inicio (START) si REN=1.   

Baud rate en puerto serie del 8051    BAUD RATE 

9600  2400  1200  19200  9600  2400  1200 

FRECUENCIA  DEL CRISTAL,  MHz  12.000  12.000  12.000  11.059  11.059  11.059  11.059 

SMOD 

1  0  0  1  0  0  0 

VALOR DE  RECARGA EN  TH1  ‐7 (F9H)  ‐13 (F3H)  ‐26 (E6H)  ‐3 (FDH)  ‐3 (FDH)  ‐12 (F4H)  ‐24 (E8H) 

BAUD RATE  REAL 

ERROR 

8923  2404  1202  19200  9600  2400  1200 

7%  0.16 %  0.16 %  0  0  0  0 

  EJEMPLOS    Inicializando el puerto serie  Defina los registros que se deben inicializar para que el puerto serie opere como un UART de 8 bits a un  baud rate de 2400 bauds, usando el timer 1 para dicho baud rate. Escriba un programa que realice la  inicialización del  puerto.    REGISTRO SCON:  SM0  SM1  SM2  REN  TB8  RB8  TI  RI  0  1  0  1  0  0  1  0    SM0/SM1 = 0/1, pone el puerto en modo UART 8 bits.  REN = 1, habilita al puerto a recibir caracteres.  TI = 1, permite la trasmisión del primer carácter indicando que el buffer de trasmisión está vacío.   

DR. JAVIER VEGA PINEDA

INSTITUTO TECNOLÓGICO DE CHIHUAHUA

ELECTRÓNICA DIGITAL II

6

  REGISTRO TMOD:  GTE  C/T  M1  M0  GTE  C/T  M1  M0  0  0  1  0  0  0  0  0    M1/M0 = 1/0, pone al timer 1 en modo autoreload de 8 bits.    REGISTRO TCON:  TF1  TR1  TF0  TR0  IE1  IT1  IE0  IT0  0  1  0  0  0  0  0  0    TR1 = 1,  activa el timer 1.    REGISTRO TH1:  1  1  1  1  0  0  1  1    El valor de recarga es 0F3H (‐13), ¿porqué?        El programa        ORG  8100H    INICIO:    MOV  SCON,#52H  ; puerto serie modo 1        MOV  TMOD,#20H  ;timer 1, modo 2        MOV  TH1,#‐13  ; cuenta de recarga        SETB  TR1    ; arranca el timer        END      Subrutina para salida de caracteres (co, console output)  Escribir  una  subrutina  co  para  trasmitir  por  el  puerto  serie  código  ASCII  de  7  bits  disponible  en  el  acumulador, con paridad impar agregada en el octavo bit.  Regrese de la subrutina con el acumulador  intacto, esto es, con el mismo valor antes de que la subrutina fuera llamada.          ORG  8100H    CO:    MOV  C,P    ;poner el bit de paridad en carry        CPL  C    ;cambiar a paridad impar        MOV  ACC.7,C   ;insertar al byte    REPETIR:  JNB  TI,REPETIR  ;¿Está Tx vacío? No: checa de nuevo,        CLR   TI    ;Sí, limipia bandera y        MOV  SBUF,A    ;envia el caracter        CLR  ACC.7    ;elimina el bit de paridad        RET      ; regresa        END    Esta subrutina es llamada desde un nivel mayor para trasmitir un carácter o una cadena de caracteres.  Por  ejemplo  el  código  siguiente  llamará  a  la  subrutina  para  trasmitir  el  código  ASCII  de  la  letra  Z  al  dispositivo conectado al puerto serie. 

DR. JAVIER VEGA PINEDA

INSTITUTO TECNOLÓGICO DE CHIHUAHUA

ELECTRÓNICA DIGITAL II

7

          MOV  A,#’Z’        CALL  CO        (continua)    Subrutina para entrada de caracteres (ci, console input)  Escribir una subrutina ci para leer un carácter del puerto serie y regresar con el código ASCII de 7 bits en  el  acumulador.  Espere  paridad  impar  en  el  octavo  bit  recibido  y  ponga  la  bandera  del  carry  si  hay  un  error de paridad.          ORG  8100H      CI:  JNB  RI,CI    ;esperar por el caracter        CLR  RI    ;limpia la bandera        MOV  A,SBUF    ;lee char al acumulador        MOV  C,P    ;pon paridad en carry        CPL  C    ;paridad impar        CLR  ACC.7    ;elimina el bit de paridad        RET        END     

DR. JAVIER VEGA PINEDA

INSTITUTO TECNOLÓGICO DE CHIHUAHUA

SISTEMAS DIGITALES II                                                                                                                                               1 

RS‐232C (EIA‐232) INTERFAZ SERIE 

  Conector tipo D de 25 pines (hembra), DB25. 

 

CARACTERÍSTICAS:    • Longitud de cable máxima de 50 píes (15.24 m).  • Niveles de voltaje típicos േ12 Volts  • Baud rates comunes: 300, 600, 1200, 2400, 4800 y 9600.   

DR. JAVIER VEGA PINEDA                                                                                               INSTITUTO TECNOLÓGICO DE CHIHUAHUA 

PROCESAMIENTO DIGITAL DE SEÑALES                                                                                                                           1 

COMUNICACIÓN SERIE DEL 8051 CON LA PC UTILIZANDO EL MAX232   

    MAX232  El  circuito  integrado  MAX232  cambia  los  niveles  TTL  (0  A  5V)  a  los  del  estándar  RS‐232  (±  12v)  cuando se hace una transmisión, y cambia los niveles RS‐232 a TTL cuando se tiene una recepción.   

DR. JAVIER VEGA PINEDA                                                                          INSTITUTO TECNOLÓGICO DE CHIHUAHUA 

PROCESAMIENTO DIGITAL DE SEÑALES                                                                                                                           2 

 

DR. JAVIER VEGA PINEDA                                                                          INSTITUTO TECNOLÓGICO DE CHIHUAHUA 

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.