Txusart

3,259 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,259
On SlideShare
0
From Embeds
0
Number of Embeds
1,753
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Txusart

  1. 1. CONTROL DE BRAZO ROBOT POR TX USART <ul><li>Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter </li></ul><ul><li>Características Generales </li></ul><ul><ul><li>Los datos se envían bit a bit por una misma línea durante un tiempo fijo. </li></ul></ul><ul><ul><li>La velocidad de transmisión se indica en baudios (número de bits enviados por segundo). </li></ul></ul><ul><ul><li>La transferencia puede ser síncrona o asíncrona. </li></ul></ul><ul><ul><ul><li>Síncrona: Se envía la señal de reloj para sincronizar cada bit. </li></ul></ul></ul><ul><ul><ul><li>Asíncrona: Se necesitan “relojes” en el emisor y el receptor de la misma frecuencia y en fase. </li></ul></ul></ul>
  2. 2. PICmicro GAMA MEDIA: PIC16F87X <ul><li>Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter </li></ul><ul><li>Características Generales </li></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>Se puede llevar a cabo varios tipos de sincronización: </li></ul></ul><ul><ul><ul><li>De los sucesivos bits. </li></ul></ul></ul><ul><ul><ul><li>De cada paquete de bits (8 ó 9 bits) </li></ul></ul></ul><ul><ul><li>Se envía la señal de reloj si la distancia entre Emisor y Receptor es corta. </li></ul></ul><ul><ul><ul><li>Así se consiguen menores retardos en las transiciones y mejores flancos en la señal de reloj recibida. </li></ul></ul></ul><ul><ul><li>Posibles codificaciones de cada bit. </li></ul></ul><ul><ul><ul><li>NRZ: Nivel alto: 1 / Nivel bajo: 0 </li></ul></ul></ul><ul><ul><ul><li>NRZI: Cambio de nivel: 1 / Sin cambio de nivel: 0 </li></ul></ul></ul><ul><ul><ul><li>RZ: Impulso: 1 / Sin impulso: 0 </li></ul></ul></ul>
  3. 3. PICmicro GAMA MEDIA: PIC16F87X <ul><li>Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter </li></ul><ul><li>Transferencia Asíncrona </li></ul><ul><ul><li>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). </li></ul></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>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). </li></ul></ul><ul><ul><li>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). </li></ul></ul>
  4. 4. PICmicro GAMA MEDIA: PIC16F87X <ul><li>Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter </li></ul><ul><li>Comunicación serie asíncrona en microcontroladores PIC </li></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>El módulo USART puede actuar como sistema asíncrono full duplex . </li></ul></ul><ul><ul><ul><li>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. </li></ul></ul></ul><ul><ul><li>Terminales asociados: RC6/TX/CK y RC7/RX/DT. </li></ul></ul><ul><ul><li>El módulo USART también permite localizar direcciones de 9 bits. </li></ul></ul>
  5. 5. PICmicro GAMA MEDIA: PIC16F87X Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter <ul><li>Registros Asociados: </li></ul><ul><ul><li>SPBRG : Generador de Baud rate </li></ul></ul><ul><ul><li>TXSTA : Estado de transmisión y control. </li></ul></ul><ul><ul><li>RCSTA : Estado de recepción y control. </li></ul></ul><ul><ul><li>TXREG : Registro de datos de transmisión </li></ul></ul><ul><ul><li>RCREG : Registro de datos de recepción. </li></ul></ul><ul><ul><li>PIR1 : Flag de interrupción. </li></ul></ul><ul><ul><li>PIE1 :Habilitación interrupción. </li></ul></ul>
  6. 6. PICmicro GAMA MEDIA: PIC16F87X <ul><li>Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter </li></ul><ul><li>Registro TXSTA (98h) </li></ul><ul><li>Bit 7 En modo asíncrono no interviene. </li></ul><ul><li>bit 6 TX9 : Bit de habilitación de la transmisión de 9 bits </li></ul><ul><li>0: Transmisión de 8 bits 1: Transmisión de 9 bits </li></ul><ul><li>bit 5 TXEN : Bit de habilitación de la transmisión </li></ul><ul><li>0: Transmisión deshabilitada 1: Transmisión habilitada </li></ul><ul><li>bit 4 SYNC : Bit de selección del modo de funcionamiento </li></ul><ul><li>0: Transmisión asíncrona 1: Transmisión síncrona </li></ul><ul><li>bit 2 BRGH : Bit de selección de alto valor de baudios </li></ul><ul><li>0: Baja velocidad 1: Alta velocidad </li></ul><ul><li>bit 1 TRMT : Bit de estado del registro TSR </li></ul><ul><li>0: TSR lleno 1: TSR vacío </li></ul><ul><li>bit 0 TX9D : 9 bit de datos transmitido. </li></ul><ul><li>Puede ser el bit de paridad, por ejemplo </li></ul>
  7. 7. PICmicro GAMA MEDIA: PIC16F87X Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter
  8. 8. PICmicro GAMA MEDIA: PIC16F87X <ul><li>Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter </li></ul><ul><li>Registro RCSTA (18h) </li></ul><ul><li>bit 7 SPEN : Bit de habilitación del puerto serie (RC6:RC7 como puerto serie) </li></ul><ul><li>0:Deshabilitado 1:Habilitado </li></ul><ul><li>bit 6 RX9 : Bit de habilitación de la recepción de 9 bits </li></ul><ul><li>0:Recepción de 8 bits 1:Recepción de 9 bits </li></ul><ul><li>bit 4 CREN : Bit de habilitación de recepción continua </li></ul><ul><li>0:Deshabilitada 1:Habilitada </li></ul><ul><li>bit 3 ADDEN : Bit de habilitación de detección de dirección </li></ul><ul><li>0:Deshabilitada 1:Habilitada ( Sólo si RX9=1) </li></ul><ul><li>bit 2 FERR : Bit de error de </li></ul><ul><li>0:No hubo error 1:Sí hubo error ( Se actualiza al leer RCREG) </li></ul><ul><li>bit 1 OERR : Bit de error de </li></ul><ul><li>0:No hubo error 1:Sí hubo error ( Se pone a 0 si CREN ← 0) </li></ul><ul><li>bit 0 RX9D : 9 bit de datos transmitido. </li></ul>
  9. 9. PICmicro GAMA MEDIA: PIC16F87X <ul><li>Modulo USART: Universal Synchronous/Asynchronous Receiver/Transmitter </li></ul><ul><li>Comunicación serie asíncrona con la USART </li></ul><ul><ul><li>La información se transmite en formato NRZ: Se transmite primero el bit menos significativo. </li></ul></ul><ul><ul><li>El emisor y el receptor son funcionalmente independientes: Aunque comparten el mismo formato de datos y la misma velocidad de la comunicación (baudios). </li></ul></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>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. </li></ul></ul>
  10. 10. EJEMPLOS 1 <ul><li>; PRUEBA DEL BUFFER TRANSMISOR </li></ul><ul><li>LIST P=16F877 </li></ul><ul><li>INCLUDE <P16F877.INC> </li></ul><ul><li>INCLUDE <MACROS.INC> </li></ul><ul><li>ORG 0000H </li></ul><ul><li>banco 1 </li></ul><ul><li>bcf TRISC,6 ; RC6 como salida </li></ul><ul><li>mov SPBRG,.129 ; Vtx = 9600bps </li></ul><ul><li>mov TXSTA,B'00100100' ; TX-ON / 8 bits /BRGH=1 </li></ul><ul><li>banco 0 </li></ul><ul><li>bsf RCSTA,SPEN ; SPEN = 1 </li></ul><ul><li>;============================================ </li></ul><ul><li>REPITE </li></ul><ul><li>movlw 'A' </li></ul><ul><li>call TX_DATO </li></ul><ul><li>goto REPITE </li></ul><ul><li>;============================================ </li></ul><ul><li>TX_DATO </li></ul><ul><li>banco 1 </li></ul><ul><li>btfss TXSTA,TRMT </li></ul><ul><li>goto $-1 </li></ul><ul><li>banco 0 </li></ul><ul><li>movwf TXREG </li></ul><ul><li>return </li></ul><ul><li>END </li></ul>
  11. 11. <ul><li>;retransmite todo lo que el pc le envia </li></ul><ul><li>LIST P=16F877 </li></ul><ul><li>INCLUDE<P16F877.INC> </li></ul><ul><li>INCLUDE<MACROPIC.INC> </li></ul><ul><li>CBLOCK 0X20 </li></ul><ul><li>ENDC </li></ul><ul><li>ORG 0000H </li></ul><ul><li>call inicio_TX </li></ul><ul><li>call inicio_RX </li></ul><ul><li>INFINITO </li></ul><ul><li>call WAIT_RX ;espera un dato y lo almacena en W </li></ul><ul><li>call TX_DATO ;TRANSMITE EL DATO DE W </li></ul><ul><li>goto INFINITO </li></ul><ul><li>INCLUDE<UART.ASM> </li></ul><ul><li>INCLUDE<ARITH.ASM> </li></ul><ul><li>INCLUDE<LCD.ASM> </li></ul><ul><li>INCLUDE<RETARDO.ASM> </li></ul><ul><li>END </li></ul>
  12. 12. USO DE SENSORES ANALOGO DIGITAL <ul><li>;muestra en el LCD el voltaje aplicado al CH-5 </li></ul><ul><li>;EL MACRO PARA AD DEVUELVE EN W EL RESULTADO DE ;MUESTREO A 8 BITS </li></ul><ul><li>LIST P=16F877 </li></ul><ul><li>INCLUDE<P16F877.INC> </li></ul><ul><li>INCLUDE<MACROPIC.INC> </li></ul><ul><li>INCLUDE<MACRO_LCD.INC> </li></ul><ul><li>INCLUDE<CONV_AD.INC> </li></ul><ul><li>CBLOCK 0X20 </li></ul><ul><li>ENDC </li></ul><ul><li>ORG 0000H </li></ul><ul><li>INIT_AD XTAL_20MHZ,CH5 </li></ul><ul><li>REPITE </li></ul><ul><li>CLS </li></ul><ul><li>PUT 'V' </li></ul><ul><li>PUT '=' </li></ul><ul><li>call muestra_AD_8 </li></ul><ul><li>movwf AARGB0 </li></ul><ul><li>mov BARGB0,.196 </li></ul><ul><li>call MUL8X8_U </li></ul><ul><li>movr DATOC_H,AARGB0 </li></ul><ul><li>movr DATOC_L,AARGB1 </li></ul><ul><li>call BITS16_BCD </li></ul><ul><li>call ENVIA_VOLTAJE_8 </li></ul><ul><li>call ret50ms </li></ul><ul><li>goto REPITE </li></ul><ul><li>INCLUDE <LCD.ASM> </li></ul><ul><li>INCLUDE <RETARDO.ASM> </li></ul><ul><li>INCLUDE <CONV_AD.ASM> </li></ul><ul><li>INCLUDE <MATH_877.INC> </li></ul><ul><li>INCLUDE <ARITH.ASM> </li></ul><ul><li>END </li></ul>
  13. 13. EJEMPLO2 <ul><li>;retransmite todo lo que el pc le envia </li></ul><ul><li>LIST P=16F877 </li></ul><ul><li>__CONFIG 3F32 </li></ul><ul><li>INCLUDE<P16F877.INC> </li></ul><ul><li>INCLUDE<MACROPIC.INC> </li></ul><ul><li>CBLOCK 0X20 </li></ul><ul><li>ENDC </li></ul><ul><li>ORG 0000H </li></ul><ul><li>call inicio_TX </li></ul><ul><li>call inicio_RX </li></ul><ul><li>CALL inicio_LCD </li></ul><ul><li>INFINITO </li></ul><ul><li>call WAIT_RX ;espera un dato y lo almacena en W </li></ul><ul><li>call EnviaCarLCD </li></ul><ul><li>call TX_DATO ;TRANSMITE EL DATO DE W </li></ul><ul><li>goto INFINITO </li></ul><ul><li>INCLUDE<UART.ASM> </li></ul><ul><li>INCLUDE<ARITH.ASM> </li></ul><ul><li>INCLUDE<LCD.ASM> </li></ul><ul><li>INCLUDE<RETARDO.ASM> </li></ul><ul><li>END </li></ul>
  14. 14. ENVIO Y RECEPCION DE PULSOS DE CONTROL

×