txusart
TRANSCRIPT
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.
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
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).
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.
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.
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
7
PICmicro GAMA MEDIA: PIC16F87X
Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter
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.
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.
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
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
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
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
14
ENVIO Y RECEPCION DE PULSOS DE CONTROL