txusart

14

Click here to load reader

Upload: tomas-francisco

Post on 08-Jul-2015

2.433 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Txusart

1

CONTROL DE BRAZO ROBOT POR TX USART

Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter

• Características Generales– Los datos se envían bit a bit por una misma línea durante un tiempo

fijo.– La velocidad de transmisión se indica en baudios (número de bits

enviados por segundo).– La transferencia puede ser síncrona o asíncrona.

• Síncrona: Se envía la señal de reloj para sincronizar cada bit.• Asíncrona: Se necesitan “relojes” en el emisor y el receptor de la misma

frecuencia y en fase.

Page 2: Txusart

2

PICmicro GAMA MEDIA: PIC16F87X

Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter

• Características Generales– Se emplean dos registros de desplazamiento (uno en el emisor y otro en el

receptor) encadenados para la conversión paralelo/serie en la emisión y serie/paralelo en la recepción.

– Se puede llevar a cabo varios tipos de sincronización:• De los sucesivos bits.• De cada paquete de bits (8 ó 9 bits)

– Se envía la señal de reloj si la distancia entre Emisor y Receptor es corta.• Así se consiguen menores retardos en las transiciones y mejores flancos en

la señal de reloj recibida.– Posibles codificaciones de cada bit.

• NRZ: Nivel alto: 1 / Nivel bajo: 0• NRZI: Cambio de nivel: 1 / Sin cambio de nivel: 0• RZ: Impulso: 1 / Sin impulso: 0

Page 3: Txusart

3

PICmicro GAMA MEDIA: PIC16F87X

Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter

• Transferencia Asíncrona– Se emplean relojes de igual frecuencia (se acuerda y se configura la velocidad

de transmisión) pero también es necesario que estén en fase (sincronizados).

– Cada paquete de bits de tamaño fijo se “enmarca” con bits de arranque y de parada que sirven para sincronizar los relojes del emisor y del receptor.

– La línea de datos está inactiva a “1”. Si se desea enviar un dato se manda un bit de arranque, que sitúa a “0” la línea durante el tiempo correspondiente a un bit (START).

– Al finalizar el envío de un dato, la línea se sitúa a “1” al menos durante el tiempo de un bit: bit de parada (STOP).

Page 4: Txusart

4

PICmicro GAMA MEDIA: PIC16F87X

Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter

• Comunicación serie asíncrona en microcontroladores PIC

– Se va a implementar haciendo uso del módulo USART (Universal Synchronous/Asynchronous Receiver/Transmitter). También se conoce como Serial Communications Interface (SCI). Es uno de los dos módulos de E/S serie del PIC.

– El módulo USART puede actuar como sistema asíncrono full duplex.• Permite comunicarse con periféricos como CRTs y PCs. También puede configurarse

como sistema síncrono half duplex. Para comunicación con circuitos A/D o D/A, memorias serie EEPROM, etc.

– Terminales asociados: RC6/TX/CK y RC7/RX/DT.

– El módulo USART también permite localizar direcciones de 9 bits.

Page 5: Txusart

5

PICmicro GAMA MEDIA: PIC16F87X

Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter

• Registros Asociados:– SPBRG: Generador de Baud

rate– TXSTA: Estado de transmisión

y control.– RCSTA: Estado de recepción y

control.– TXREG: Registro de datos de

transmisión– RCREG: Registro de datos de

recepción.– PIR1: Flag de interrupción.– PIE1:Habilitación interrupción.

Page 6: Txusart

6

PICmicro GAMA MEDIA: PIC16F87X

Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter

• Registro TXSTA (98h)

Bit 7 En modo asíncrono no interviene.bit 6 TX9: Bit de habilitación de la transmisión de 9 bits

0: Transmisión de 8 bits 1: Transmisión de 9 bitsbit 5 TXEN: Bit de habilitación de la transmisión

0: Transmisión deshabilitada 1: Transmisión habilitadabit 4 SYNC: Bit de selección del modo de funcionamiento

0: Transmisión asíncrona 1: Transmisión síncronabit 2 BRGH: Bit de selección de alto valor de baudios

0: Baja velocidad 1: Alta velocidadbit 1 TRMT: Bit de estado del registro TSR

0: TSR lleno 1: TSR vacíobit 0 TX9D: 9 bit de datos transmitido.

Puede ser el bit de paridad, por ejemplo

Page 7: Txusart

7

PICmicro GAMA MEDIA: PIC16F87X

Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter

Page 8: Txusart

8

PICmicro GAMA MEDIA: PIC16F87X

Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter

• Registro RCSTA (18h)

bit 7 SPEN: Bit de habilitación del puerto serie (RC6:RC7 como puerto serie)0:Deshabilitado 1:Habilitado

bit 6 RX9: Bit de habilitación de la recepción de 9 bits0:Recepción de 8 bits 1:Recepción de 9 bits

bit 4 CREN: Bit de habilitación de recepción continua0:Deshabilitada 1:Habilitada

bit 3 ADDEN: Bit de habilitación de detección de dirección0:Deshabilitada 1:Habilitada (Sólo si RX9=1)

bit 2 FERR: Bit de error de0:No hubo error 1:Sí hubo error (Se actualiza al leer RCREG)

bit 1 OERR: Bit de error de0:No hubo error 1:Sí hubo error (Se pone a 0 si CREN 0)←

bit 0 RX9D: 9 bit de datos transmitido.

Page 9: Txusart

9

PICmicro GAMA MEDIA: PIC16F87X

Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter

• Comunicación serie asíncrona con la USART

– La información se transmite en formato NRZ: Se transmite primero el bit menos significativo.

– El emisor y el receptor son funcionalmente independientes: Aunque comparten el mismo formato de datos y la misma velocidad de la comunicación (baudios).

– El receptor incorpora un circuito de muestreo de la línea de datos que lee el valor del bit en la mitad del periodo de muestreo. Así se eliminan posibles errores debidos a las diferencias en los relojes del emisor y el receptor.

– No se genera paridad mediante hardware. Si se quiere enviar como 9º bit el bit de paridad, el usuario debe calcularlo e interpretarlo en el software.

Page 10: Txusart

10

EJEMPLOS 1

; PRUEBA DEL BUFFER TRANSMISORLIST P=16F877INCLUDE <P16F877.INC>INCLUDE <MACROS.INC>

ORG 0000Hbanco 1bcf TRISC,6 ; RC6 como salidamov SPBRG,.129 ; Vtx = 9600bpsmov TXSTA,B'00100100' ; TX-ON / 8 bits /BRGH=1banco 0bsf RCSTA,SPEN ; SPEN = 1

;============================================REPITE

movlw 'A'call TX_DATOgoto REPITE

;============================================TX_DATO

banco 1btfss TXSTA,TRMTgoto $-1banco 0movwf TXREGreturn

END

Page 11: Txusart

11

;retransmite todo lo que el pc le envia

LIST P=16F877INCLUDE<P16F877.INC>INCLUDE<MACROPIC.INC>

CBLOCK 0X20ENDC

ORG 0000Hcall inicio_TXcall inicio_RX

INFINITOcall WAIT_RX ;espera un dato y lo almacena en Wcall TX_DATO ;TRANSMITE EL DATO DE W goto INFINITO

INCLUDE<UART.ASM>INCLUDE<ARITH.ASM>INCLUDE<LCD.ASM>INCLUDE<RETARDO.ASM>END

Page 12: Txusart

12

USO DE SENSORES ANALOGO DIGITAL;muestra en el LCD el voltaje aplicado al CH-5;EL MACRO PARA AD DEVUELVE EN W EL RESULTADO DE ;MUESTREO A 8 BITS

LIST P=16F877INCLUDE<P16F877.INC>INCLUDE<MACROPIC.INC>INCLUDE<MACRO_LCD.INC>INCLUDE<CONV_AD.INC>

CBLOCK 0X20ENDC

ORG 0000HINIT_AD XTAL_20MHZ,CH5REPITECLSPUT 'V'PUT '='call muestra_AD_8movwf AARGB0mov BARGB0,.196call MUL8X8_Umovr DATOC_H,AARGB0movr DATOC_L,AARGB1call BITS16_BCDcall ENVIA_VOLTAJE_8call ret50msgoto REPITE

INCLUDE <LCD.ASM>INCLUDE <RETARDO.ASM>INCLUDE <CONV_AD.ASM>INCLUDE <MATH_877.INC>INCLUDE <ARITH.ASM>END

Page 13: Txusart

13

EJEMPLO2;retransmite todo lo que el pc le envia

LIST P=16F877__CONFIG 3F32INCLUDE<P16F877.INC>INCLUDE<MACROPIC.INC>

CBLOCK 0X20ENDC

ORG 0000Hcall inicio_TXcall inicio_RXCALL inicio_LCD

INFINITOcall WAIT_RX ;espera un dato y lo almacena en Wcall EnviaCarLCDcall TX_DATO ;TRANSMITE EL DATO DE W goto INFINITO

INCLUDE<UART.ASM>INCLUDE<ARITH.ASM>INCLUDE<LCD.ASM>INCLUDE<RETARDO.ASM>END

Page 14: Txusart

14

ENVIO Y RECEPCION DE PULSOS DE CONTROL