Está en la página 1de 19

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO

Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

INFORMACIN BSICA NOMBRE DE LA PRCTICA:

Comunicacin PC-PIC-PC
ASIGNATURA:

PRCTICA No.: 5

Telemedicina
TEMA DE LA PRCTICA:

Comunicacin de datos.
LABORATORIO A UTILIZAR:

Laboratorio de Biomdica
CONTENIDO DE LA GUA (Para elaborar por el Docente) OBJETIVOS. Conocer el protocolo de comunicacin serial RS232C y USART para la transmisin de seales desde dispositivos hacia el PC. Aprender a utilizar las aplicaciones Hyperterminal y Matlab para la visualizacin de los datos en el PC. Aplicar los conceptos adquiridos en clase para la transmisin de seales biomdicas hacia el PC. INTRODUCCIN. Los equipos mdicos en la actualidad se comunican con computadores para almacenar, visualizar, procesar e intercambiar informacin. La capa fsica, la cual, es la de ms baja jerarqua en el modelo de referencia OSI se encarga de implementar esta conexin. Algunos de los protocolos comunican de manera serial o de manera paralela; hoy da, los protocolos de comunicacin predominante en los equipos biomdico son los de tipo serial, como rs232c, rs485, USB, SPI, I2C, etc. Para esta prctica, se implementa el protocolo RS232C por ser el ms bsico de todos y por tanto el que se utiliz como referencia para la implementacin de mucho de los otros. La primera etapa de una comunicacin de dato es la conexin a un pc, es decir que sin esta interfaz los dispositivos biomdicos no puede intercambiar informacin. Esta gua se dirige a los estudiantes de la asignatura de Telemedicina de la carrera de Ingeniera Biomdica de la universidad Manuela Beltrn. MARCO TEORICO PUERTO SERIE 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. El otro es el MSSP (Master Synchronous Serial Port), el cual no es tratado en estas notas. 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.

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

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 la seales (normalmente causados 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. Una gran cantidad de perifricos se comunican actualmente en serie con una micro computadora: lneas telefnicas, terminales remotas, unidades de cassette magntico, el ratn, teclados, etc. Comunicacin en paralelo: En este caso se utiliza una lnea fsica por cada bit del dato a comunicar adems de posibles lneas para protocolo. Esquemticamente en la siguiente figura se muestra como se transmitira el dato de 8 bits 1001 0111= 97h. Este tipo de comunicacin se puede realizar mediante el PIC usando el puerto D como puerto de datos y las lneas del puerto E como lneas de protocolo.

La principal ventaja de la comunicacin paralelo es la alta velocidad de transmisin, ya que se envan simultneamente todos los bits de un dato. No obstante, si la distancia entre el transmisor y el receptor es grande, puede ser que el costo de las lneas sea tan alto que se vuelva incosteable este mtodo de comunicacin. Comunicacin en Serie: En cambio, la comunicacin en serie slo utiliza una lnea para la transmisin de datos, y opcionalmente alguna lnea o lneas para protocolo. Por ejemplo, en la siguiente figura se muestra como se transmitira en serie el mismo dato (97h):

La desventaja obvia de la comunicacin serie es que los bits de un dato se envan de a uno por uno, de manera que mientras que la comunicacin en paralelo enva en un ciclo un dato de

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

8 bits, a la comunicacin serie le toma ms de 8 ciclos (ya que adems del dato en la comunicacin serie se requiere agregar algunos bits de sincronizacin. Sin embargo, debido a que la comunicacin serie requiere slo una lnea para la transmisin esto abarata los costos en lneas de transmisin y no slo esto, ya que este hecho tambin hace posible que los datos puedan ser enviados no necesariamente por un conductor elctrico, sino inclusive por aire o por el vaco si en lugar de pulsos elctricos se usan impulsos electromagnticos, tales como: ondas de radio, microondas, pulsos luminosos, infrarrojo, ultrasonido, lser (a travs de fibra ptica), etc. Protocolo de comunicacin serie. A diferencia de la comunicacin en paralelo, en la comunicacin en serie se hace necesario establecer mtodos de sincronizacin para evitar la interpretacin errnea de los datos transmitidos. Para ilustrar esto consideremos la siguiente informacin en serie: 01001100010011001100100 Esta informacin puede interpretarse de diversas maneras, (an si se recibe a la velocidad adecuada) dependiendo del punto de inicio de separacin de datos, por ejemplo, una posible interpretacin sera como sigue:

Que interpretado como cdigos ASCII corresponde a los caracteres 1 y 2. Sin embargo, otra posible interpretacin es:

Que corresponde a los caracteres b y d. Sincronizacin de bit: Una manera de resolver el problema anterior es la sincronizacin de bits que puede realizarse por varios mtodos: 1. Enviar por una lnea adicional una seal de reloj que indique el centro de las celdas de bits en la lnea de datos (datos no - auto reloj). 2. Enviar con cada bit y por la misma lnea de datos informacin que permita extraer la seal de reloj (datos auto reloj). 3. Lograr mediante alguna estrategia que los relojes de transmisin y de recepcin se mantengan en fase continuamente. Codificacin no auto reloj: En la figura siguiente se muestran las tres codificaciones de una lnea de datos: RZ: Una celda de bit es 1 si contiene un impulso positivo y un 0 si no lo contiene. NRZ: La celda contiene un 1 o 0 de acuerdo al nivel de la seal (constante) en la celda. NRZI: La celda de bit contiene un 1 si hay una transicin y un 0 si no la hay.

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

Como puede verse, en estos sistemas (RZ, NRZ y NRZI) las secuencias de ceros no contienen ninguna transicin que permita ubicar la situacin de las celdas de bit. De hecho, el formato NRZ no la contiene ni en los unos. Codificacin auto reloj: Algunos mtodos que contienen en la misma lnea de datos informacin adicional para determinar la velocidad del reloj a costa de disminuir la cantidad de informacin til a la mitad que los mtodos no-auto reloj. En la siguiente figura se muestran los ms utilizados, como son: PE: Codificacin de fase. FSC: Codificacin por cambio de frecuencia FM: Modulacin de frecuencia. MFM y M2FM: Modulacin de frecuencias modificadas.

Los mtodos autoreloj son muy tiles cuando la velocidad de transmisin no es constante, por ejemplo, cuando los datos han sido grabados en un medio magntico giratorio, por ejemplo discos, cintas magnticas, etc. Sincronizacin de caracter.- Algunos sistemas utilizan lneas adicionales que envan impulsos para indicar el inicio de un bloque de caracteres. Otros sistemas que no requieren lneas adicionales a la lnea de datos son: Mtodo Asncrono: Cada carcter va sealizado mediante dos bits: un bit de inicio y un bit de paro, estos dos bits permiten al receptor reconocer el inicio y el final de cada carcter. La especificacin RS404 de EIA (Electronic Industries Association) define las caractersticas del mtodo asncrono para transmisin en serie de acuerdo a las siguientes reglas: 1. Cuando no se envan datos la lnea debe mantenerse en estado 1.

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

2. Cuando se va a mandar un carcter se enva primero un bit de inicio de valor 0. 3. A continuacin se envan todos los bits del carcter a transmitir al ritmo marcado por el reloj de transmisin. 4. Despus del ltimo bit del carcter enviado se enva un bit de paro de valor 1. Mtodo Sncrono: Cada mensaje o bloque de transmisin va precedido de unos caracteres de sincronismo. As, cuando el receptor identifica una configuracin de bits igual a la de los caracteres de sincronismo da por detectado el inicio y el tamao de los datos. Observacin: Para el usuario de un microcontrolador que posee una USART o sistema similar la manera detallada como el sistema logra establecer la comunicacin resulta transparente a l, ya que slo tiene que configurar el protocolo del transmisor y del receptor para que estos logren la comunicacin adecuada, es decir, el usuario usualmente slo debe configurar: tipo de comunicacin (sncrona o asncrona) velocidad de transmisin en Baudios (bits por segundo) longitud de los datos bits de inicio y de paro, bits de paridad, etc. La USART del PIC16F877. La USART del PIC puede ser configurada para operar en tres modos: Modo Asncrono (full duplex (transmisin y recepcin simultneas)), Modo Sncrono Maestro (half duplex) Modo Sncrono Esclavo (half duplex) En estas notas slo se cubre el modo asncrono. 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.

El mdulo Asncrono de la USART consta de 3 mdulos fundamentales: El circuito de muestreo. El generador de frecuencia de transmisin (Baud Rate). El transmisor asncrono. El receptor asncrono. El circuito de muestreo.- El dato en la patita de recepcin (RC7/RX/DT) es muestreado tres veces para poder decidir mediante un circuito de mayora, si se trata de un nivel alto o un nivel bajo. El Generador de Baud Rate (BRG): Este generador sirve tanto para el modo sncrono como el asncrono y consiste de un contador/divisor de frecuencia de 8 bits controlado por el registro SPBRG (99H). De tal manera que la frecuencia de transmisin se calcula de acuerdo a la siguiente

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

tabla:

Debido a que el divisor es de 8 bits, no se puede tener cualquier velocidad de transmisin deseada, ya que X se deber redondear al entero ms cercano. En las dos tablas anteriores se muestran algunos valores baud estndares, el divisor necesario (X=SPBRG) bajo diferentes frecuencias Fosc y el error producido en porcentaje. El transmisor asncrono: En la siguiente figura se muestra el diagrama de bloques del transmisor de la USART. El corazn de este mdulo es el registro de corrimiento (transmit shift register, TSR). La nica manera de acceder al registro TSR es a travs del registro TXREG (19H). Para transmitir un dato, el programa deber ponerlo primero en el registro TXREG. En cuanto el TSR termina de enviar el dato que tena (en cuanto transmite el bit de paro) lee el dato contenido en TXREG (si hay alguno) esto ocurre en un ciclo TCY. En cuanto el dato de TXREG es transferido al TSR el TXREG queda vaco esta condicin es indicada mediante el bit bandera TXIF (que es el bit 4 del registro PIR1 (0Ch)), el cual se pone en alto. Este bit NO puede ser limpiado por software, slo dura un instante en bajo cuando se escribe un nuevo dato a TXREG. Si se escribe un dato seguido de otro (back to back) a TXREG el primero se transfiere inmediatamente a TSR y el otro tiene que esperar hasta que el TSR termine de enviar el bit de Stop del primero. Durante esta espera TXIF permanece en bajo. Existe otro bit, llamado TRMT (TXSTA<1>), el cual muesta el estado del TSR. TRMT se pone en alto cuando TSR est vaco, y en bajo cuando TSR est transmitiendo un dato. Mientras que TXIF puede generar una interrupcin TRMT no lo puede hacer, TRMT est pensado para ser consultado por poleo (sin usar interrupciones).

Para habilitar el mdulo de transmisin es necesario poner en alto el bit TXEN (TXSTA<5>), mientras no se habilite el mdulo, la patita de transmisin (RC6/TX/CK) se mantiene en alta impedancia. Si TXEN es deshabilitada a la mitad de una transmisin, est ser abortada y el transmisor ser reseteado. Si se est usando un noveno bit TX9 (TXSTA<6>), ste deber ser escrito antes de escribir los 8 bits restantes a TXREG, ya que en cuanto se escribe un dato a este registro inmediatamente es transferido a TSR (si ste est vaco). De acuerdo a lo anterior, la inicializacin del mdulo de transmisin consiste en los siguientes pasos:

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

1. Inicializar baud rate escribiendo al registro SPBRG el divisor adecuado y opcionalmente al bit BRGH . 2. Habilitar comunicacin asncrona limpiando el bit SYNC y poniendo el bit SPEN. 3. Si se van a usar interrupciones, poner el bit TXIE (PIE<4>). 4. Poner el bit TX9 si se desea transmitir datos de 9 bits. 5. Habilitar transmisin poniendo el bit TXEN, lo cual pondr el bit TXIF. 6. Colocar el noveno bit del dato en TX9D si se estn usando datos de 9 bits. 7. Cargar el dato al registro TXREG (inicia la transmisin). CONSULTA PREVIA

Protocolo serie RS232C. Programacin de microcontroladores, ejemplo PIC de Microchip. Manejo del Matlab. METODOLOGIA El diagrama de flujo de la realizacin de este laboratorio se muestra a continuacin:

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011
Consultar en libros artculosy , textosen gral los temas desarrollados en lapractica.

Cdigo: GRL-006

Versin: 4.0

Implementacin delos algoritmos y experimentos(Circuitos y montajes paralacomprobacin y ) demostracin delos conceptos estudiados.

Replantear las soluciones propuestas Dirigirseal . docenteparacontrastar conceptos y resolver los problemasencontrados .

Funciono ?

NO

SI

Anlisisdelosresultados obtenidos Sedebeentender los . conceptos aplicadosen el laboratorio .

Releer, resumir y preguntar al docente .

Escribir el informedelaboratorio donde seevidencietodo lo desarrollado en el mismo. Seguir el formato encontrado al final deestaguia .

Realimentar los comentarios realizadospor el docentey aclarar los conceptos no comprendidos .

Funcionando100%?

Proximo Laboratorio

El alumno debe tener en cuenta que el desarrollo de la prctica va orientado a desarrollar en l las competencias necesarias para aumentar su capacidad deductiva e inductiva, as como habilidades grupales que van desde conciencia de grupal, interdependencia en la satisfaccin de necesidades, interaccin, habilidad para actuar de manera unificada, atenuacin de coerciones, liderazgo distribuido, formulacin de objetivos, flexibilidad, consenso, comprensin del proceso y evaluacin permanente.

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

MATERIALES, EQUIPOS Y REACTIVOS A UTILIZAR (Indicar las cantidades) Materiales y Equipos

PC con software MATLAB Seales suministradas por el docente. Generador de seales. Osciloscopio. Fuente de poder.

Reactivos N.A. N.A.

Materiales Estudiante

PC con software MATLAB


Seales biomdicas.
1 CI MAX232 1 PIC16F877A 1 Cristal de cuarzo de 4 MHz. 1 DB9 4 Condensadores Electrolticos 10uF, 2 Condensadores Cermicos de 22pF. 2 Resistencias 10K Elementos para el circuito de captura de la seales electrofisiolgica, es decir; EEG, ECG, EOG, PCG, EMG, etc.

PRECAUCIONES Y MANEJO DE MATERIALES Y EQUIPOS. CONSULTA DE EQUIPO ESPECIALIZADO.

Tener precaucin en verificar las conexiones antes de encender las fuentes y generador.
PROCEDIMIENTO A UTILIZAR
1.1. COMUNICACIN SERIE ASNCRONA CON EL PUERTO SERIE DE UN PC - MODULO USART. El ejemplo de partida consiste en un programa que se encarga de realizar la medida de una tensin analgica comprendida entre 0 y 5V cada vez que se solicite desde un PC y mostrar el valor medido expresado en voltios en una ventana de hyperterminal del propio PC. Para realizar la conversin se utilizar la resolucin correspondiente a 8 bits. La solicitud desde el PC se realizar cada vez que se pulse la tecla s de su teclado.

el

Si se pulsara cualquier otra tecla que no sea la s (minscula), el microcontrolador no responder ni realizar

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

ninguna conversin. Para realizar la comunicacin, el PC utilizar una ventana de hyperterminal configurada para comunicarse va RS232 a travs de un puerto serie (COM1) con el microcontrolador. La comunicacin del PC estar configurada para una comunicacin de 8 bits, sin paridad, con 1 bit de parada y sin control de flujo. La medida analgica se realizar mediante el canal RA0 de entrada del mdulo A/D y se variar mediante un potencimetro. Se emplea un microcontrolador PIC16F877A con un oscilador de 4MHz.
PROGRAMA. ;*************************************************************************************** ; Programa de ejemplo de envo y recepcin serie asncrona mediante el mdulo USART (SCI) ; para comunicacin con el puerto serie de un PC ; ; Este programa espera por la recepcin a traves del puerto serie del caracter "s". ; Al recibir este caracter, el micro realiza una conversin A/D de la tensin presente en el canal 0 ; y el resultado de la conversin lo enva a travs del puerto serie para imprimirlo en la ventana ; de hyperterminal configurado para trabajar con el puerto serie de un PC (el mismo de trabajo) ; Si el caracter recibido es distinto de "s", no devuelve el resultado de ninguna conversin ; La comunicacion se realiza a 9600 baudios y el PIC utiliza un reloj de 4 MHz. ; ***************************************************************************************************** ** list p=PIC16F877A include "P16F877A.INC" LONGITUD INDIRECTO Banco_0_RAM EQU EQU EQU D'10' 0 0x20 ; Tamao del mensaje " Tension= " ; Etiqueta para referirnos al registro fuente ; cuando utilizamos direccionamiento indirecto ; comienzo de la RAM de propsito general en Banco 0

; Bloque de variables en RAM CBLOCK Banco_0_RAM AUX FACTOR1 FACTOR2 BIN_ALTO BIN_BAJO CONTADOR BCD0 BCD1 BCD2 TMP ENDC ORG GOTO ORG GOTO INICIO BSF MOVWF 0 ;Vector de Reset INICIO 4 PTI ;Rutina de interrupcin ;Programa de Tratamiento de Interrupcin ;Variable auxiliar ;Para el subprograma del producto ;Uno de los factores del producto ;Otro de los factores del subprograma producto ;Resultado del producto: ;Parte alta del valor medido en binario ;Parte baja del periodo en binario ;Para el subprograma de multiplicacin ; Almacenamos los dgitos a mostrar en: ;(DECENAS:UNIDADES) ;(MILLARES:CENTENAS) ;(0:DECENAS DE MIL) ;otra variable auxiliar

STATUS,RP0 ;Pasamos al banco 1 MOVLW b'00000010' ;Configuramos PORTA analgico, PORTE como digital ADCON1 ;resultado con ajuste a la izquierda ;y referencia de 5V BSF MOVLW MOVWF MOVLW MOVWF BCF MOVLW MOVWF PIE1,RCIE d'25' SPBRG b'10100100' TXSTA STATUS,RP0 b'11000001' ADCON0 ;Activamos la mscara particular de interrupciones por recepcin ;Cargamos el registro SPBRG con d'25' para ;conseguir 9600 baudios con un oscilador de 4MHz ; (4MHz/(9600*16))-1 = 25,041 ;Configuramos USART en modo asncrono y velocidad alta ;todo ello en el registro TXSTA ;Volvemos al banco 0 ;Configuramos entrada analogica por canal 0 (RA0), ;y reloj RC interno de conversin TAD=4us tpico

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011
BCF MOVLW MOVWF MOVLW MOVWF LAZO TIRA GOTO ADDWF LAZO PCL,F DT PIR1,ADIF b'10010000' RCSTA b'11000000' INTCON

Cdigo: GRL-006

Versin: 4.0

;Ponemos a 0 el flag de fin de conversin ;Habilitamos la recepcin continua y tamao 8 bits ;en el registro RCSTA ;Habilitamos interrupciones globales ;y de perifricos

;Bucle continuo de espera del programa principal " Tension= " ;Parte del mensaje a sacar en el PC ;directiva para colocar una tabla con todos los caracteres ;de la tira indicada

; ***************************************************************************************************** ** ;Desde la posicin 4 vamos aqu (Programa de Tratamiento de Interrupcin) ;No se salva el contexto ya que el bucle continuo de ejecucin del programa principal no lo requiere ; ***************************************************************************************************** ** PTI MOVLW b'00000110' ;Chequea posibles errores ANDWF RCSTA,W ;en los bits FERR y OERR BTFSS STATUS,Z GOTO Rec_Error ;Si hay error va a Rec_Error BTFSS PIR1,RCIF RETFIE MOVF RCREG,W XORLW 's' BTFSS STATUS,Z RETFIE BSF ADCON0,GO ;Chequea interrupcion por ;recepcin serie, si no salimos ;Se recoge el byte recibido en RCREG ;y se compara con el cdigo ASCII de la 's' ;si no lo es una 's' retornamos de la interrupcion ;Si lo es lanzamos una nueva conversin

;Mientras acaba la conversin, sacamos mensaje " Tension = " en la ventana del PC MENSAJE CLRF AUX ;Pongo a 0 el ndice de la tabla CADENA MOVF AUX,W ;se lo paso a W CALL TIRA ;Llamo a la tabla y vuelvo trayENDo ;el caracter que estaba almacenado CALL ENVIAR ;lo envio por el puerto serie al PC ;mediante el subprograma ENVIAR INCF AUX ;Incrementamos el ndice de la tabla MOVF AUX,W ;y se lo pasamos a W XORLW LONGITUD ;comparamos el ndice de cuenta con la longitud total BTFSS STATUS,Z ;de la cadena de caracteres GOTO CADENA ;Si no llegamos al final repetimos FINCONV BTFSS PIR1,ADIF ;espero por el fin de la conversin GOTO FINCONV ;lanzada anteriormente MOVF ADRESH,W ;Recogemos el resultado de la conversin de ADRESH MOVWF FACTOR1 ;y se lo pasamos a uno de los factores MOVLW MOVWF CALL CALL CALL d'195' FACTOR2 PRODUCTO BINBCD SACA_VALOR ;Cargamos 195 en el otro factor ;constante de multiplicacin (1e-4 V/bit) ;Llamamos al subprograma de multiplicacin ;volvemos trayENDo en BIN_ALTO - BIN_BAJO ;el valor en binario del producto ;Llamamos al subprograma de paso a BCD ;Llamamos a subprograma que enva al puerto serie ;los dgitos BCD ;Ponemos a cero el flag de fin de conversin ;Retornamos del programa de tratamiento

BCF PIR1,ADIF RETFIE Rec_Error BCF RCSTA,4 BSF RCSTA,4 RETFIE

;Llegamos aqu si hubo algn error de recepcin ;Para limpiar el posible error ;limpio CREN y lo vuelvo a poner a 1

;********************************************************************** ; Subprograma que se encarga de sacar en la ventana del Hyperterminal

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0
; en el PC el resto de mensaje (valor de tensin, V de Voltios, retorno ; de carro y avance de linea). ;********************************************************************** SACA_VALOR MOVF ANDLW ADDLW CALL MOVLW CALL MOVF ANDLW MOVWF SWAPF ADDLW CALL MOVF ANDLW ADDLW CALL MOVF ANDLW MOVWF SWAPF ADDLW CALL MOVF ANDLW ADDLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL RETURN BCD2,W 0x0F A'0' ENVIAR ',' ENVIAR BCD1,W 0xF0 AUX AUX,W A'0' ENVIAR BCD1,W 0x0F A'0' ENVIAR BCD0,W 0xF0 AUX AUX,W A'0' ENVIAR BCD0,W 0x0F A'0' ENVIAR ' ' ENVIAR 'V' ENVIAR 0x0A ENVIAR 0x0D ENVIAR ;Tomo las unidades de voltio ;las extraigo con una mscara ;le sumo el ASCII del 0 ;y llamo al subprograma que enva el byte ;coloco la coma decimal ;y la envo al PC ;Tomo las dcimas y centsimas ;y extraigo las dcimas ;se las paso a la variable AUX ;y las coloco en la parte baja de W ;le sumo el ASCII del 0 ;y llamo a enviar caracter ;Tomo las centsimas ;de la parte baja de BCD1 ;le sumo el ASCII del 0 ;y lo envo al PC ;Tomo ahora milsimas y diezmilsimas ;Extraigo las milsimas ;se las paso a la variable AUX ;y las coloco en la parte baja de W ;le sumo el ASCII del 0 ;y llamo a enviar caracter ;Tomo las ;diezmilsimas ;le sumo el ASCII del 0 ;y lo envo al PC ;coloco un espacio en blanco ;y lo envo al PC ;envo las unidades (V) finalmente ;y lo envo al PC ;cargo caracter avance de linea ;y lo envo al PC ;y caracter retorno de carro ;y lo envo al PC ;salimos del subprograma

;*************************************************************************** ; Subprograma de conversin Binario a BCD ; ; Recibe el valor a convertir en 16 bits: BIN_ALTO & BIN_BAJO ; y devuelve los dgitos BCD asociados en: BCD2, BCD1 y BCD0 ; -------------------------; BCD2:| 0 | Decenas Mil | ; BCD1:| Unidad Mil | Centenas | ; BCD0:| Decenas | Unidades | ; -------------------------;*************************************************************************** BINBCD BCF MOVLW MOVWF CLRF CLRF CLRF STATUS,C d'16' CONTADOR BCD2 BCD1 BCD0 BIN_BAJO BIN_ALTO ;Puesta a cero del carry ;Cargamos 16 en el contador ;Puesta a cero ;inicial de las posiciones ;finales ;Rotacin total ;desde el byte bajo

DESPLAZ RLF RLF

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011
RLF RLF RLF DECFSZ GOTO RETURN AJUSTE MOVLW MOVWF CALL MOVLW MOVWF CALL MOVLW MOVWF CALL GOTO BCD0 BCD1 BCD2 CONTADOR AJUSTE BCD0 FSR AJBCD BCD1 FSR AJBCD BCD2 FSR AJBCD DESPLAZ

Cdigo: GRL-006
;hasta el byte ms alto ;de los datos finales ;en BCD ;Si el contador es cero ;ya van 16 desplazamientos ;y retornamos ;Empleamos direccionamiento indirecto ;para llamar al subprograma de ajuste ;decimal de cada byte, primero con BCD0 ;Lo mismo con BCD1

Versin: 4.0

;Y lo mismo con BCD2

;Volvemos a las rotaciones

;*************************************************************************** ; Subprograma para ajuste BCD de cada byte ; Realiza el ajuste decimal de la posicin a la que apunte el registro FSR ;*************************************************************************** AJBCD MOVLW 3 ;Sumamos 3 a la posicion a la que apunta FSR ADDWF INDIRECTO,W ;el contenido queda en W MOVWF BTFSC MOVWF MOVLW ADDWF MOVWF BTFSC MOVWF TMP TMP,3 INDIRECTO 0x30 INDIRECTO,W TMP TMP,7 INDIRECTO ;Exploramos si en el primer dgito el ;resultado es mayor que 7 ;si es as corregimos almacenando ese valor ;Hacemos lo mismo con el dgito BCD superior ;Exploramos sumando 30 al byte completo ;y si el dgito superior es mayor que 7 ;lo almacenamos para corregir

RETLW 0 ;Retorno desde el subprograma AJBCD ;*************************************************************************** ; Subprograma de multiplicacin de dos bytes ; ; Recibe los valores en posiciones FACTOR1 y FACTOR2 ; y entrega el resultado en dos bytes: BIN_ALTO & BIN_BAJO ; ;*************************************************************************** PRODUCTO CLRF BIN_ALTO ;Limpio el byte alto CLRF BIN_BAJO ;y el byte bajo tambin MOVLW MOVWF MOVF BCF BUCLE RRF BTFSC ADDWF 8 CONTADOR FACTOR1,W STATUS,C FACTOR2 STATUS,C BIN_ALTO,F ;Cargamos 8 en CONTADOR ;Paso FACTOR1 a W para ir haciENDo sumas ;Pongo a 0 el carry para empezar rotaciones ;Roto a la derecha FACTOR2 para ver bit a la dcha ;que pas al carry ;Si era 1 el bit le sumo FACTOR1 a parte alta ;es FACTOR1 00000000

;Al llegar aqu el carry tENDr el acarreo de la operacin anterior (suma) o cero si salt suma RRF RRF BIN_ALTO BIN_BAJO ;Roto en conjunto BIN_ALTO y BIN_BAJO ;Carry -> BIN_ALTO -> BIN_BAJO ;Decrementamos el contador ;si no llegamos a 0 repetimos

DECFSZ CONTADOR GOTO BUCLE

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011
RETURN

Cdigo: GRL-006
;si ya llegamos a cero salimos

Versin: 4.0

;*************************************************************************** ; Subprograma de envio de un byte por el puerto serie ; se enva el byte que llega cargado en W ;*************************************************************************** ENVIAR MOVWF TXREG ;Se carga en TXREG el byte que inicia el envo BSF STATUS,RP0 ;pasamos al banco 1 LAZO1 BTFSS TXSTA,TRMT ;para poder explorar TXSTA y esperamos a que se transmita GOTO LAZO1 ;mientras TRMT permanezca a 0 seguimos esperando BCF STATUS,RP0 ;en cuanto TRMT=1 se acab el envo y volvemos al banco o RETURN ;Retornamos del subprograma END

La parte de la conexin con el PC aparece a continuacin, los pines Tx y Rx se conectan directamente a los pines RC7 y RC6 del microcontrolador PIC16F877A respectivamente.

Se utiliza el mdulo SCI para realizar la comunicacin de datos con el PC y el mdulo de conversin A/D para realizar la conversin analgica del canal RA0 cada vez que se le solicite. Se configura el mdulo SCI para una comunicacin asncrona de 8 bits a 9600 baudios partiendo del reloj de 4 MHz disponible en el microcontrolador. Carga en el registro SPBRG -> X

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

sustituyendo el valor de la frecuencia del oscilador fosc=4MHz, se obtiene: X=25,041, cargando 25 en SPBRG la velocidad real de transmisin sera 9615 baudios (error de 0,16%) Se configura el mdulo A/D para que utilice el reloj basado en la red RC interna e independiente del oscilador del microcontrolador (valor nominal de Tad de 4s y con variacin de 2 a 6s). Se activa la generacin de interrupciones cada vez que se reciba un carcter a travs del mdulo SCI (bit PIR1,RCIE). En el programa de tratamiento de la interrupcin se recoge el carcter recibido por el mdulo SCI. Si dicho carcter no es una s, simplemente se retorna de la interrupcin. Si el carcter es una s se lanza una conversin del canal analgico RA0 y se mandan los cdigos ASCII de los caracteres para que aparezca en la ventana del PC el mensaje Tension = . Se espera por la finalizacin de la conversin, el valor resultante de la conversin en el registro ADRESH de 8 bits se convierte a su valor equivalente de tensin en voltios. Como la tensin de referencia es de 5V, la resolucin del convertidor es de 5V/256 = 0,0195V (195E-4 V). Realizando el producto (con un subprograma ya conocido) del valor resultante por 195 obtendremos un valor de tensin analgica comprendida entre 0 y 49725 diez milsimas de voltio que se puede almacenar en binario en dos bytes y que podemos descomponer en sus 5 dgitos BCD (con un subprograma ya conocido y utilizado) de cara a su representacin en el PC. Una vez realizado el producto y su descomposicin en dgitos decimales los enviamos al PC junto con un carcter V de Voltios, un carcter de avance de lnea (0x0A) y otro carcter de retorno de carro (0x0D). Finalmente, se limpia el flag que indica fin de conversin y se retorna de la interrupcin. Dentro de la rutina de interrupcin y antes de leer el byte recibido, se detecta si se ha producido algn error de recepcin (mediante las consultas de los bits FERR y OERR). Si hay error, se debe corregir limpiando el bit CREN y volviendo a ponerlo a 1.

1.2.

COMUNICACIN SERIE ASNCRONA CON PIC18 Y LENGUAJE C DE CCS. A continuacin se muestra un ejemplo de una comunicacin utilizando el mdulo USART del microcontrolador pic18f452, el cdigo es implementado en el lenguaje c y su compilador es el ccs. La siguiente figura muestra el circuito esquemtico para el montaje del circuito:
LCD1
LM016L

VSS VDD VEE

RS RW E 4 5 6

1 2 3

U2
VCC 13 1 2 3 4 5 6 7 14 33 34 35 36 37 38 39 40 OSC1/CLKI MCLR/VPP RC0/T1OSO/T1CKI RC1/T1OSI/CCP2A RC2/CCP1 RA0/AN0 RC3/SCK/SCL RA1/AN1 RC4/SDI/SDA RA2/AN2/VREFRC5/SDO RA3/AN3/VREF+ RC6/TX/CK RA4/T0CKI RC7/RX/DT RA5/AN4/SS/LVDIN RA6/OSC2/CLKO RD0/PSP0 RD1/PSP1 RB0/INT0 RD2/PSP2 RB1/INT1 RD3/PSP3 RB2/INT2 RD4/PSP4 RB3/CCP2B RD5/PSP5 RB4 RD6/PSP6 RB5/PGM RD7/PSP7 RB6/PGC RB7/PGD RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 PIC18F452 GND 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10

RV1

Variable Resistor

GND VCC

100k +88.8
Volts

7 8 9 10 11 12 13 14

D0 D1 D2 D3 D4 D5 D6 D7

COM1
P1
1 6 2 7 3 8 4 9 DCD DSR RXD RTS TXD CTS DTR RI

RXD TXD RTS CTS

ERROR COMPIM

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

El elemento COMPIM es un emulador de conexin al computador y visualizacin en el programa hyperterminal, si se desea implementar se debe montar el mismo esquema del ejemplo anterior. El cdigo para el funcionamiento de circuito esquemtico anterior se muestra a continuacin: #include <18F452.h> #device adc=10 #FUSES XT,NOWDT #use delay(clock=4000000) #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N) #include <LCD.C> void main() { int16 q; float p; setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); lcd_init(); for (;;) { set_adc_channel(0); delay_us(10); q = read_adc(); p = 5.0 * q / 1024.0; printf(lcd_putc, "\fADC = %4ld", q); printf(lcd_putc, "\nVoltage = %01.2fV", p); printf("ADC = %4ld ", q); printf("Voltage = %01.2fV\r", p); // El \r permite cambiar de lnea. delay_ms(100); } } COMUNICACIN SERIAL CON MATLAB. El cdigo necesario para la inicializar el puerto serial es: SerPIC = serial('COM2'); set(SerPIC,'BaudRate',2400); set(SerPIC,'DataBits',8); set(SerPIC,'Parity','none'); set(SerPIC,'StopBits',1); set(SerPIC,'FlowControl','none'); La funcin serial crea un objeto que contiene todos los parmetros correspondientes al puerto serial como baudios, bits de datos, bit de parada, etc. Estos parmetros se los modifica con la funcin set. Una vez establecidos los parmetros de la comunicacin, se procede a abrir el puerto con la funcin fopen: fopen(SerPIC); La funcin para escribir el puerto serial es fprintf: fprintf(SerPIC,'%s','A') En la lnea precedente se escribe en el puerto la letra A en formato string. (Tambin es posible escribir caracteres, reemplazando %s por %c y enviando los datos con la funcin char.) Una vez terminada la

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

comunicacin, se procede a cerrar el puerto con el siguiente cdigo: fclose(SerPIC); delete(SerPIC) clear SerPIC NOTA: el archivo adjunto contienen un ejemplo bajado de la pgina: http://www.matpic.com/esp/microchip/com_serial_pc_pic.html , el cual les puede servir de gua para el desarrollo de la prctica. TRABAJO PROPUESTO. El estudiante debe transmitir una seal biomdica, es decir, EEG, EMG, ECG, respiracin, oximetra, etc. , y graficarla en el PC usando MATLAB. En el informe de laboratorio se debe explicar el esquemtico implementado, el cdigo diseado para la recepcin y visualizacin de la seal en MATLAB, los problemas encontrados y los trabajos futuros para la mejora de dicha transmisin.

BIBLIOGRAFA RECOMENDADA. Libros o textos: B. P. Lathi: Modern Digital and Analog Communication Systems, Third Edition, 1998 W.Tomasi: Sistemas de Comunicaciones Electrnicas, 4a Edicin, Prentice Hall 2003 Miller, Gary; Modern electronic comunication, 7 ed., Prentice Hall, 2002 Haykin, Simon; Sistemas de comunicacin, 1. Ed., Limusa Wiley, Mxico, 2005. Lathi, B. P., Introduccin a la teora y sistemas de comunicacin, Limusa Wiley, Mxico, 2004. Pginas Web:
http://gemini.udistrital.edu.co/comunidad/estudiantes/ocala/matlabTut/. http://www.itu.int/home/index-es.html Unin internacional de telecomunicaciones http://www.ieee.org/web/membership/students/scholarshipsawardscontests/SAG_homepage.html http://www.comsoc.org/ IEEE communication society http://www.ieice.org/eng/index.html the institute of electronics, information and communication engineering http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2219 electronics & communications engineering journal http://web.usc.es/~elusive/comu_e.html http://www.electronicagratis.com/index.php Sitio para aficionados en electrnica.

ELABOR (Personas que elaboraron la gua)

REVIS (Director de Programa o rea)

APROB (Laboratorios)

Firma Nombre : Horderlin V. Robles Fecha: 25 de Julio de 2011

Firma Nombre : Fecha:

Firma Nombre : Fecha:

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

INFORME DE LABORATORIO (Para elaborar por el Estudiante) ESTUDIANTES: GRUPO:

NOTA:

CARRERA: Formule tres objetivos que desee cumplir con la Prctica de Laboratorio El estudiante formular desde su conocimiento los objetivos para la realizacin de la prctica

Elabore un Mapa conceptual del tema a tratar en la Prctica de Laboratorio.

RESULTADOS Incluir tablas, diagramas en la que los estudiantes puedan ir consignando los datos y observaciones obtenidos en la prctica

UNIVERSIDAD MANUELA BELTRN MACROPROCESO DE RECURSOS E INFRAESTRUCTURA ACADMICA FORMATO PARA PRCTICAS DE LABORATORIO
Fecha: Abril de 2011 Cdigo: GRL-006 Versin: 4.0

CUESTIONARIO

1. Cules son las caractersticas del protocolo RS232C. 2. En la capa fsica, cuales son los protocolos ms implementados para aplicaciones biomdicas, justifique su respuesta. 3. Cules son las frecuencias de muestreo y transmisin usadas para las seales biomdicas en comunicaciones seriales, construya una tabla comparativa y explique las diferencias. 4. Cules son los protocolos de transmisin seriales existentes en la actualidad utilizados en aplicaciones biomdicas. 5. En telemedicina, que equipo biomdicos actuales usan el protocolo serial RS232C para transmitir datos al PC. Justifique los resultados encontrados 6. Haga una breve descripcin del protocolo RS485, esquema utilizado, velocidad de transmisin, distancia mxima de conexin, etc.
CAUSAS DE ERROR Y ACCIONES PARA OBTENER MEJORES RESULTADOS: El estudiante formulara las posibles causas de error comparando sus resultados experimentales con los tericos CONCLUSIONES El estudiante realizara una serie enunciados que respondan a los objetivos que el mismo formul, basados en el desarrollo de la prctica. APLICACIN PROFESIONAL DE LA PRCTICA REALIZADA

BIBLIOGRAFIA UTILIZADA

También podría gustarte