Recepción Serial RS-232 Con Pic
Recepción Serial RS-232 Con Pic
Recepción Serial RS-232 Con Pic
1. OBJETIVOS:
Comunicar la PC con un micro-controlador PIC 16F877A por medio de su modulo USART (Universal Synchronous Asynchronous Receiver Transmitter).
Describir el funcionamiento del modulo USART. Conocer los principios acerca de la comunicacin serial de la norma RS232. Manejar Visual Basic para aplicaciones de Windows Fonts. Conocer el funcionamiento del transceptor MAX 232.
2. FUNDAMENTO TEORICO: A continuacin daremos un pequeo alcance sobre el manejo del modulo USART del PIC 16F877A; tambin sobre la aplicacin que fue diseada en el programa Visual Basic para poder seleccionar el puerto a utilizar as como el determinar el envi de los datos; hablaremos acerca
SOFTWARE 5
INSTITUTO IDAT
Pgina 1
A. MODULO USART:
La USART (Universal Synchronous Asynchronous Receiver Transmitter) es uno de los dos perifricos contenidos en el PIC que le permiten realizar comunicacin en serie. La USART, tambin conocida como SCI (Serial Communications Interface) puede configurarse como una unidad de comunicacin en serie para la transmisin de datos asncrona con dispositivos tales como terminales de computadora o computadoras personales, o bien para comunicacin sncrona con dispositivos tales como convertidores A/D o D/A, circuitos integrados o memorias EEPROM con comunicacin serie, etc. La gran mayora de los sistemas de comunicacin de datos digitales actuales utilizan la comunicacin en serie, debido a las grandes ventajas que representa esta manera de comunicar los datos: Econmica.- Utiliza pocas lneas de transmisin inclusive puede usar slo una lnea. Confiable.- Los estndares actuales permiten transmitir datos con bits de paridad y a niveles de voltaje o corriente que los hacen poco sensibles a ruido externo. Adems por tratarse de informacin digital, los cambios en amplitud de las seales (normalmente causadas por ruido) afectan muy poco o nada a la informacin. Verstil.- No est limitada a usar conductores elctricos como medio de transmisin, pudiendo usarse tambin: fibra ptica, aire, vaco, etc. Adems el tipo de energa utilizada puede ser diferente: luz visible, infrarroja, ultrasonido, pulsos elctricos, radio frecuencia, microondas, etc.
SOFTWARE 5
INSTITUTO IDAT
Pgina 2
Para este trabajo solo describiremos el modo asncrono y trabajaremos en el modo simplex, existiendo tambin half-duplex y
duplex.
Un canal simplex permite la transferencia de datos en un solo sentido. Un canal half-duplex soporta transferencias de datos en cualquier sentido, pero utilizando solo uno de ellos en cada comunicacin. Un canal duplex (tambin llamado full-duplex) soporta transferencias en ambos sentidos simultneamente. MODO ASNCRONO. En este modo la USART usa un formato estndar NRZ asncrono, el cual para la sincronizacin usa: 1 bit de inicio (I), 8 o 9 bits de datos y 1 bit de paro (P). Mientras no se estn transmitiendo datos la USART enva continuamente un bit de marca. El modo asncrono se selecciona limpiando el bit SYNC del registro TXSTA (98H). El modo asncrono es deshabilitado durante el modo SLEEP. Cada dato es transmitido y recibido comenzando por el LSB. El hardware no maneja bit de Paridad, pero el noveno bit puede ser usado para este fin y manejado por software.
SOFTWARE 5
INSTITUTO IDAT
Pgina 3
A continuacin describiremos los registros asociados a este modulo: REGISTROS ASOCIADOS: El mdulo USART dispone de una serie de registros, que son los siguientes: RCSTA: Registro de estado y control de recepcin de datos.
Bit 7
SPEN: Habilitacin del puerto serie 1= Puerto serie habilitado (configura RC7/RX/DT y RC6/TX/CK como pines del puerto serial)
Bit 6
0 = Puerto serie deshabilitado RX9: Habilita el bit 9 de recepcin 1 = Selecciona recepcin de 9 bits 0 = Selecciona recepcin de 8 bits
Bit 5
SOFTWARE 5
INSTITUTO IDAT
Pgina 4
SOFTWARE 5
INSTITUTO IDAT
Pgina 5
0 = No hay error de sobre-escritura. Bit 0 RX9D: Bit 9 del dato recibido (Puede ser el bit de paridad).
Bit 7 CSRC: bit de seleccin de reloj. Modo asncrono: no incluye. Modo sncrono: 1 = Modo maestro (reloj generado internamente desde BRG). 0 = Modo esclavo (reloj generado por una fuente externa). Bit 6 TX9: Habilita el bit 9 de transmisin. 1 = Selecciona transmisin de 9 bits. 0 = Selecciona transmisin de 8 bits. Bit 5 TXEN: Activa la transmisin. 1 = Transmisin activada.
SOFTWARE 5 INSTITUTO IDAT Pgina 6
Para nuestro trabajo trabajaremos en baja velocidad (2400 Baudios) y un cristal de 4MHZ; bajo estas condiciones el fabricante nos da una tabla donde nos da el valor que tendremos que cargarle al registro SPBRG el cual mostraremos a continuacin, para mayores alcances
SOFTWARE 5 INSTITUTO IDAT Pgina 7
RCREG: es el registro que almacena el carcter recibido, para capturarlo tendremos que leer este registro. TXREG: es donde tendremos que escribir el carcter que queremos enviar. En el siguiente cuadro se muestran todos los registros asociados al modulo USART.
SOFTWARE 5
INSTITUTO IDAT
Pgina 8
SOFTWARE 5
INSTITUTO IDAT
Pgina 9
PROCEDIMIENTO Y DESCRIPCION PARA EL RECEPTOR: El mdulo de recepcin es similar al de transmisin, en la siguiente figura se muestran los bloques que lo constituyen.
SOFTWARE 5
INSTITUTO IDAT
Pgina 10
Una vez que se ha seleccionado el modo asncrono, la recepcin se habilita poniendo en alto el bit CREN (RCSTA<4>). El dato es recibido mediante la lnea RC7/RX/DT, la cual maneja un registro de corrimiento de alta velocidad (16 veces el Baud rate). El corazn del receptor es el registro de corrimiento RSR. Este registro no es accesible por software, pero, cuando el dato recibido se ha completado (se ha recibido el bit de Stop) el dato de RSR es transferido automticamente al registro RCREG (1Ah) si ste est vaco y al mismo tiempo es puesto en alto la bandera de recepcin RCIF (PIR1<5>). La nica manera de limpiar la bandera RCIF es leyendo el los datos del registro RCREG. El registro RCREG puede contener hasta dos datos, ya que es un buffer doble que funciona como una cola de dos posiciones. Si las dos posiciones del registro RCREG estn llenas (no han sido ledas) y se detecta el bit de Stop de un tercer dato de recepcin, lo cual ocasiona un transferencia automtica del dato recibido a RCREG, esto destruir el primer dato recibido y activar el indicador de sobreescritura OERR (RCSTA<1>). Para evitar esto, se debern leer los dos datos en RCREG haciendo dos lecturas consecutivas.
SOFTWARE 5 INSTITUTO IDAT Pgina 11
SOFTWARE 5
INSTITUTO IDAT
Pgina 13
Cuadro de Herramientas
Cuadro de Cdigo
Cuadro de Propiedades
C. PANTALLAS LCD 16 X 2: Las pantallas de cristal lquido LCD o display LCD para mensajes (Liquid
permitiendo representar la informacin que genera cualquier equipo electrnico de una forma fcil y econmica. La pantalla consta de una matriz de caracteres (normalmente de 5x7 o 5x8 puntos) distribuidos en una, dos, tres o cuatro lneas de 16 hasta 40 caracteres cada lnea. El proceso de visualizacin es gobernado por un microcontrolador incorporado a la pantalla, siendo el Hitachi 44780 el modelo de controlador ms utilizado.
SOFTWARE 5 INSTITUTO IDAT Pgina 14
Las caractersticas generales de un mdulo LCD 16x2 son las siguientes: Consumo muy reducido, del orden de 7.5mW. Pantalla de caracteres ASCII, adems de los caracteres japoneses Kanji, caracteres griegos y smbolos matemticos. Desplazamiento de los caracteres hacia la izquierda o a la derecha. Memoria de 40 caracteres por lnea de pantalla, visualizndose 16 caracteres por lnea. Movimiento del cursor y cambio de su aspecto. Permite que el usuario pueda programar 8 caracteres. Pueden ser gobernados de 2 formas principales: o Conexin con bus de 4 bits. o Conexin con bus de 8 bits. A continuacin se presenta la descripcin de seales empleadas por el mdulo LCD as como el nmero de patilla a la que corresponden.
SOFTWARE 5
INSTITUTO IDAT
Pgina 15
D. MORMA RS-232: Ante la gran variedad de equipos, sistemas y protocolos que existen surgi la necesidad de un acuerdo que permitiera a los equipos de varios fabricantes comunicarse entre s. La EIA (Electronics Industry Association) elaboro la norma RS-232, la cual define la interface mecnica, los pines, las seales y los protocolos que debe cumplir la comunicacin serial.
Los cuadros anteriores nos describen los parmetros y caractersticas de la norma RS-232. En resumen se dira que: Un 1 lgico es un voltaje comprendido entre 5v y 15v en el transmisor y entre -3v y 25v en el receptor. Un 0 lgico es un voltaje comprendido entre +5v y +15 v en el trasmisor y entre +3v y +25 v en el receptor.
El envo de niveles lgicos (bits) a travs de cables o lneas de transmisin necesita la conversin a voltajes apropiados. En los microcontroladores para representar un 0 lgico se trabaja con voltajes inferiores a 0.8v, y para un 1 lgico con voltajes mayores a 2.0V. En general cuando se trabaja con familias TTL y CMOS se asume que un 0 lgico es igual a cero Volts y un 1 lgico es igual a cinco Volts. La importancia de conocer esta norma, radica en los niveles de voltaje que maneja el puerto serial del ordenador, ya que son diferentes a los que utilizan los microcontroladores y los dems circuitos integrados. Por
SOFTWARE 5 INSTITUTO IDAT Pgina 17
E. TRANCEPTOR MAX 232: Este circuito soluciona los problemas de niveles de voltaje cuando se requiere enviar unas seales digitales sobre una lnea RS-232. Este chip se utiliza en aquellas aplicaciones donde no se dispone de fuentes dobles de +12 y 12 Volts. El MAX 232 necesita solamente una fuente de +5V para su operacin, internamente tiene un elevador de voltaje que convierte el voltaje de +5V al de doble polaridad de +12V y 12V. Cabe mencionar que existe una gran variedad de CI que cumplen con la norma RS-232 como lo son: MAX220, DS14C232, MAX233, LT1180A. La configuracin que se utilizara en este trabajo es similar a la siguiente, salvo que los capacitores que usaremos sern de 1uF: Sobre los capacitores a utilizar presentaremos un cuadro donde se indican las opciones disponibles.
SOFTWARE 5
INSTITUTO IDAT
Pgina 18
Adems de este CI tambin necesitaremos un cable tipo DB9 que describiremos: EL CONECTOR DB9 DEL PC En los PCs hay conectores DB9 macho, de 9 pines, por el que se conectan los dispositivos al puerto serie. Los conectores hembra que se enchufan tienen una colocacin de pines diferente, de manera que se conectan el pin 1 del macho con el pin 1 del hembra, el pin2 con el 2, etc.
SOFTWARE 5
INSTITUTO IDAT
Pgina 19
3. PROGRAMAS A UTILIZAR: Utilizamos los siguientes programas: Proteus v7.8: Para simular los el programa y verificar su correcto funcionamiento antes de implementar el circuito fsico. Mplab de Microchip: Editor y compilador de cdigo assembler para microcontroladores PIC de Microchip. Visual Studio 2010: Concretamente la aplicacin para Windows Fonts. Virtual Serial Ports: Emulador que se utilizo para simular con Proteus el programa. 4. CIRCUITOS A IMPLEMENTAR:
SOFTWARE 5
INSTITUTO IDAT
Pgina 20
5. CONCLUCIONES: Las posibilidades de control que se abren con la comunicacin PC a PIC son innumerables. El amplio rango de voltajes de la norma RS-232 responde a que se tiene que contrarrestar las perdidas en la lnea de transmisin y adems asegura el envo correcto de los datos. La transmisin serial de datos es una manera econmica y eficaz de comunicacin entre dispositivos. Las aplicaciones de Windows Fonts son una herramienta muy verstil y fcil de usar.
SOFTWARE 5
INSTITUTO IDAT
Pgina 21
1.
BOTON DETERMINAR PUERTOS: Con este botn seleccionamos el puerto serie, con el que deseemos trabajar, de una lista creada automticamente por el programa.
SOFTWARE 5
INSTITUTO IDAT
Pgina 22
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load datotx = "" datorx = "" btn_conectar.Enabled = False btn_enviar.Enabled = False
SOFTWARE 5
INSTITUTO IDAT
Pgina 23
SOFTWARE 5
INSTITUTO IDAT
Pgina 24
ESCRIBRIR EN PANTALLA
ENCIENDE EL MDULO USART Y CONFIGURA PARA RECEPCION CONTINUA 8 BITS SIN BIT DE PARIDAD
NO
HA LLEGADO ALGN DATO?
SI
1.
SOFTWARE 5
ENDC ORG 0X2007 DW 0X3F7A ORG 0 GOTO INICIO ORG 0X05 INICIO BANKSEL TRISC BSF TRISC,7 CLRF TXSTA para baja velocidad MOVLW .25 MOVWF SPBRG CLRF TRISB D BANKSEL PORTB CLRF BUFFER CLRF PORTC CLRF RCREG ;seleccionamos banco 1 ;como salida al pin 7 del puertoC ; configuracion del TXSTA como ; para trabajar a 2400 baudios ; para trabajar la pantalla por el puerto ; banco 0 ;borramos el registro buffer ; borramos el puerto D ; borramos el RCREG
INSTITUTO IDAT
Pgina 26
parpadeo
off/no
; dos lineas ; caracter de 5 x 7 puntos ; posicion a partir del segundo cuadro ; para el titulo ; luego iremos a escribir el titulo
COMANDOS ADDWF PCL,F DT 0X20,0X20,0X20,0X80,0X00,0X60,0X00,0XC0,0X00,0X10,0X80,0X10,0XFF X1 CLRW ; borramos W MOVWF INDICE ; se mueve a indice X4 CALL TITULO MOVWF REG XORLW '&' BZ X5 ; cuando se termina de escribir el titulo MOVFW REG ; saltamos habilitar el modulo USART CALL MUESTRA SWAPF REG,W CALL MUESTRA INCF INDICE,F MOVFW INDICE GOTO X4 TITULO ADDWF PCL,F DT "TX Y RX SERIAL",'&' ; caracteres a mostrarse en pantalla
SOFTWARE 5 INSTITUTO IDAT Pgina 27
NUEVO MOVLW .16 MOVWF BYTS MOVLW 0X30 MOVWF FSR S1 MOVLW .32 MOVWF INDF INCF FSR,F DECFSZ BYTS,F GOTO S1
S3
MOVLW .16 MOVWF BYTS MOVLW 0X30 MOVWF FSR BTFSS PIR1,RCIF GOTO $-1 MOVFW RCREG MOVFW RCREG MOVWF INDF BCF PIR1,RCIF INCF FSR,F CALL SERIAL CALL MAS CALL MAS BTFSS PIR1,RCIF GOTO VER DECFSZ BYTS,F GOTO S3
SOFTWARE 5
INSTITUTO IDAT
Pgina 28
;******* ENABLE
CALL T_1MS RECOMENDAD POR EL FABRICANTE BSF PORTB,0 CALL T_1MS BCF PORTB,0 YA QUE CON ESTA ACCION CALL T_1MS PANTALLA PRA RECIBIR DATOS RETURN RUTINA
; A 1 EL BIT ENABLE ; ESPERA NESESARIA ; HACEMOS 0 EL BIT ENABLE, ; ; HABILITAMOS REGRESAMOS DE A LA LA SUB
; **** TIEMPO SEGUN FABRICANTE NESESARIO PARA LA PANTALLA **** SERIAL MOVLW .4 MOVWF R3 CALL TMPO DECFSZ R3,F GOTO $-2 RETURN MAS MOVLW .24 MOVWF R3 NOP
SOFTWARE 5 INSTITUTO IDAT Pgina 30
T_1MS
MOVLW .3 MOVWF R3 CALL TMPO DECFSZ R3,F GOTO $-2 RETURN ; ****** SUB RUTINA DE 1 MILISEGUNDO APROXIMADAMENTE *-***** TMPO MOVLW .249 MOVWF R1 NOP DECFSZ R1,F GOTO $-2 RETURN ; ******** TIEMPO REQUERIDO SEGUN FABRICANTE PARA QUE LA PANTALLA INICIE *** T_20MS MOVLW .15 MOVWF R2 CALL TMPO DECFSZ R2,F GOTO $-2 RETURN END
SOFTWARE 5
INSTITUTO IDAT
Pgina 31