Está en la página 1de 3

enginy@eps Curs 2007/2008

Comunicacin serie Maestro/Esclavo


Laura Porcel Martn, Juan Carlos Gutirrez Baos.
Prctica de la asignatura Microordenadores

lauraporma@gmail.com
gutierrezjuanca@hotmail.com

Resumen En este trabajo se ha implementado un dispositivo


de comunicacin serie en configuracin
MAESTRO/ESCLAVO. Se ha utilizado el microcontrolador
PIC16F876 presente en el laboratorio y el programa de
control RealPic. El objetivo ha sido el diseo de un protocolo
a nivel de capa red sobre un nivel fsico basado en el estndar
RS232 en su versin asncrona.

I. INTRODUCCIN
Una comunicacin Maestro/Esclavo requiere un
conjunto de reglas que especifiquen el intercambio de datos
u rdenes. Estas reglas definen lo que se conoce como un
protocolo de red o tambin un protocolo de comunicacin.
En este caso el intercambio se produce entre dos Fig. 1 Fotografa del entrenador utilizado (PIC 16F876).
microcontroladores PIC16F876.
Este microcontrolador utiliza a nivel fsico el protocolo II. IMPLEMENTACIN HARDWARE
RS232 encargado de establecer una norma para el
B. Perifrico USART.
intercambio serie de datos binarios entre un equipo
terminal de datos y un equipo de Comunicacin de datos. El perifrico USART es el utilizado para la transmisin
La interfaz RS232 est diseada para distancias cortas, de de datos en formato serie, aplicando tcnicas de
unos 15 metros o menos, y para velocidades de transmisin sincrnica o asincronica, segn su
comunicacin bajas, de no ms de 20 [Kb/s]. La interfaz configuracin. La caracterstica ms destacable de este
puede trabajar en comunicacin asncrona o sncrona y perifrico es que destina un terminal a la transmisin (Tx)
tipos de canal simplex, half duplex o full duplex. En este y otro a la recepcin (Rx), en este caso el sincronismo se
caso ser asncrona y utilizar un canal simplex en el que el hace dentro de cada equipo y la interfaz solo define el uso
intercambio de datos se realiza en un solo sentido. de un bit de start y otro de stop, para indicar el inicio y fin
de transmisin de un byte, es por eso que todos los equipos
interconactados deben estar configurados para el mismo
A. Objetivos bit-rate. Las ventajas ms importantes de este modo de
En este trabajo se han configurado dos entrenadores comunicacin radica en que no se requiere destinar ms
basados en el PIC16F876 para establecer una entradas salidas a completar algunas interfaces como la
comunicacin mediante un perifrico (USART) que utiliza RS232.
el protocolo RS232.
C. Implementacin del cable de conexin
Se han implementado tanto una etapa de conexin como
una etapa de comunicacin de datos entre los entrenadores. Los dos entrenadores se conectan entre ellos cruzando
La etapa de conexin permite determinar si el entrenador, los pines del puerto RS232 de recepcin y transmisin y
configurado como esclavo est presente. Este proceso uniendo los pines de tierra. El pin encargado de recibir es
consiste en el intercambio de caracteres especficos. La el que ocupa la posicin 2, el pin de transmisin ocupa la
etapa de comunicacin permite al entrenador configurado posicin 3 y el pin de tierra o gnd es el nmero 5.
como maestro enviar los caracteres introducidos en su Vase Figura 2 en la que se muestra el esquema bsico
teclado y al entrenador esclavo recibirlos y mostrarlos en de la conexin entre dos entrenadores PIC16F876.
su pantalla LCD. Vase la Figura 1 una fotografa del
entrenador con los perifricos utilizados.

44
Curs 2007/2008 enginy@eps

Fig. 2 Esquema de la implementacin.

III. IMPLEMENTACIN SOFTWARE


El entrenador distinguir entre los dos modos de
operacin segn la posicin del interruptor RA4, nivel bajo
para Maestro y nivel alto para Esclavo.
A. Comprobacin inicial sobre el interruptor RA4.

Fig. 4 Diagrama de flujo Modo Maestro.

En cdigo ensamblador quedara de la siguiente forma:

InicioMaster: call inicio_tx


call inicio_rx
call inicio_lcd
call conectando_lcd
Fig. 3 Diagrama de flujo para seleccionar el modo. movlw 0xc5
call LCD_REG
Nuestro sistema de comunicacin Maestro/Esclavo se call master_lcd
inicia consultando el modo en el que queremos trabajar movlw .3
para una vez decidido comenzar nuestra transmisin de movwf intentos
datos. El bucle con que se inicia el programa principal es,
en cdigo ensamblador, el siguiente: LoopConexionMaster:

Loop: movf PORTA,W call enviar_@


andlw b'00010000' call esperar2seg
btfsc STATUS,Z call capturar
goto Vale_0 call comparar_igual
movwf interruptor call intento
movlw b'00000000' goto LoopConexionMaster
btfsc STATUS,Z
goto Vale_1 Utilizando la llamada a subrutinas hemos conseguido
Vale_1 construir un programa fcil de entender. A tener en cuenta,
goto InicioEsclavo destacamos que la funcin comparar_igual nos har salir
Vale_0 del bucle de conexin cuando recibamos el carcter =,
goto InicioMaster dirigindonos al estado conectado el cual veremos a
B. Modo Maestro. continuacin, y la subrutina intento al llegar al tercer
intento entraremos a un bucle de espera pidiendo reintentar
Inicializaremos este modo con un bucle de peticin de la conexin.
conexin, en el que el entrenador enviar cada dos Subrutina conectado Maestro e Intento:
segundos el carcter @ a travs del canal TX a no ser que
reciba = por su canal RX. Mientras estemos en este bucle ConectadoMaster:
el LCD mostrar por pantalla el siguiente mensaje: call LCD_INI
Detectando. movlw 0x80
Una vez establecida la comunicacin, el entrenador call LCD_REG
enviar por su canal TX el dato introducido en el teclado y movlw Mens_1
mostrar por pantalla el dato enviado y el mensaje call Mensaje
Conectado goto enviar
return
Seguimos el siguiente diagrama de flujo:

45
enginy@eps Curs 2007/2008

Intento LoopConexionEsclavo:
call error_lcd
call esperar1seg call esperar2seg
movlw 0xc5 call capturar
call LCD_REG call comparar_@
call master_lcd goto LoopConexionEsclavo
decfsz intentos
return La subrutina capturar consultamos el dato recibido en el
goto FalloConexion registro RCREG y lo introducimos en la variable global
RECIBIDO.
B. Parte opcional realizada
Como elemento opcional aadimos a nuestro sistema de
comunicacin control de errores en la conexin, limitando
este a tres intentos, tras el cual si no conseguimos
conectarnos pediremos pulsar la tecla C para reintentar
conectarnos.

IV. CONCLUSIONES
En este artculo hemos desarrollado un software capaz
de interconectar dos PIC16F87, teniendo en cuenta una
fase preliminar de peticin de conexin, no es un sistema
muy complejo de realizar y sus utilidades en este caso
tambin son escasas, aunque si cabe destacar que es la base
principal para poder implementar un software basado en
controladores PIC con una capacidad de comunicacin
muy superior.

REFERENCIAS
[34] Microchip PIC16F87X Data Sheet, 28/40-Pin 8-Bit CMOS FLASH
Microcontrollers.
Fig. 5 Diagrama de flujo Modo Esclavo.
[35] Tomeu Alorda, Apuntes de la asignatura de Microcontroladores, de
2 Telemtica, UIB.
C. Modo Esclavo [36] Mikel Etxebarria, (c) Microsystems Engineering (Bilbao), ejemplos
El entrenador, configurado como Esclavo, iniciar un Real Pic.
bucle de espera de carcter @ y mostrar por el LCD el [37] William Stalings, Comunicaciones y redes de computadores, 6
ed., Pearson Education, 2000.
mensaje Conectando
Una vez conectados ambos entrenadores, nuestro Asignatura impartida por Bartomeu Alorda y Pere Pons
entrenador mostrar por pantalla el valor que reciba por el
canal RX adems del mensaje Conectado
Su correspondiente diagrama de flujo se puede observar Juan Carlos Gutirrez Baos
Bachillerato en Colegio San Pedro.
en la Fig. 5. Estudiante de 3 de Ingeniera Tcnica de
Y su cdigo en ensamblador, tambin con un programa Telecomunicaciones esp. Telemtica.
inicial fcil de entender, es:

InicioEsclavo: Laura Porcel Martn


call inicio_tx Bachillerato en I.E.S. Guillem Sagrera.
call inicio_rx Estudiante de 3 de Ingeniera Tcnica de
call inicio_lcd Telecomunicaciones esp. Telemtica.
call esperar_lcd
movlw 0xc5
call LCD_REG
call esclavo_lcd

46

También podría gustarte