Sei sulla pagina 1di 29

GAMA ALTA DE MICROCONTROLADORES

COMPILADOR C CCS
SISTEMAS EMBEBIDOS

DIGITALES III: 1

GAMA ALTA DE MICROCONTROLADORES

RS485 ,vomo funciona?

PIC18F4550

DIGITALES III: 2

ESTANDAR RS485
Principio de funcionamiento
Qu es el bus RS485?
Se conoce tambin como EIA-485, se utiliza para transmitir datos a grandes y es
utilizado en ambientes elctricamente ruidosos. Su conexin es sencilla: a partir
del puerto serie (COM1) de cualquier computador utilizando dos circuitos
integrados econmicos como el MAX232 y MAX485.
RS485 no es un protocolo, es un estndar y pertenece al nivel uno de modelo OSI,
se encuentra en la capa fsica, requiere para su implementacin de tres lneas ,
dos de datos y una de tierra por ello se puede utilizar cable blindado o cable utp .
Puede
RS-485 utilizar un par de cobre trenzado apantallado, y permite
velocidades entre 9.6 kbps y 12 Mbps.
Cuando no se encuentra el MAX485 se remplaza con SN76156, que cumple la
misma funcin.

DIGITALES III: 3

ESTANDAR RS485
CARACTERISTICAS
TRANSMICION SERIE ASINCRONICA (usas UART)
Transmisin DIFERENCIAL (sobre par trenzado)
Cantidad De Nodos Receptores/Transmisores: 32
Long Max SEGMENTO(cable): 1200 metros
Velocidad MAX:

10Mb/s a 12 metros

Carga Por Driver:

54 ohms

Rango de tension de entrada:


Sensibilidad:

-7 +12

+/- 200mv

DIGITALES III: 4

RED RS485 BASICA


En la actualidad existen versiones de CI
que permiten conectar sistemas con 128
y hasta 256 dispositivos

DIGITALES III: 5

RS485
Qu es el max485?
Es un circuito integrado que permite la conversin TTL/RS485, tiene 8 pines, con
las siguientes caractersticas:
R0 Salida TTL

Pin 1

Re complementada
DE
pin 3

Pin 2

DI Entrada TTl

Pin 4

Vcc alimentacin a 5 voltios

Pin 8

D0 complementada RS485 Pin 7


D0
RS485 Pin 6
Gnd Tierra

Pin 5
DIGITALES III: 6

RS485
Qu es el max485?
El circuito se habilita
colocando RE / y DE
en bajo, si lo que se
desea es leer.
Si se desea escribir se
debe colocar RE / y
DE en alto.
Observe la siguiente
estructura
de
conexin:

DIGITALES III: 7

RS485
Suprimir el ruido
RS485 transmite los datos en forma diferencial. Por los dos cables viaja la
misma informacin, pero desfasada 180 en un cable respecto al otro. De esa
forma, cualquier interferencia que se introduce en el cableado lo har en
ambos hilos por igual, con la misma polaridad y amplitud. En el destino de la
terminal, sea en el ordenador o en el dispositivo colocado a la distancia, las
seales se restituyen en polaridad y los picos de ruidos que se haban
introducido con la misma polaridad en ambos cables, al invertirse las seales,
se neutralizan y eliminan entre s, y se recupera la seal til que se desea
transmitir. Observe la siguiente grfica:

DIGITALES III: 8

RS485
Configuracin tpica del MAX485

DIGITALES III: 9

RS485 CONFIGURACION MAX485

DIGITALES III: 10

MAX485 PROVEEDORES NACIONALES

Si no encuentra el CI MAX485 en las


tiendas locales de electrnica, este se
puede adquirir
en Bogot con el
proveedor PLINTEC.
DIGITALES III: 11

RS485 contra RS232

Una de las ventajas de RS485 es el alcance comparado con RS232, RS485


se maneja niveles TTL de tensin, mientras que el RS232 maneja tensiones de
dos polaridades con valores absolutos de +12 y -12 Volts. RS232 permite
comunicaciones full-duplex (ambos terminales transmiten y reciben datos en
forma simultnea), pero su distancia de trabajo es de tan slo 12 metros a 30
metros y para ello se requieren al menos 8 cables para una comunicacin full y
es muy a ser afectado por el ruido elctrico. En RS485 la comunicacin es
Half-duplex. En esta redes se encuentra un micro transmitiendo y los demas se
encargan de recibir los datos.
MODULOS CONVERSION RS232 A RS485
Existen en el comercio adaptadores RS232 a RS485, para ello hacen uso de
un microcontrolador como el 16f84, en este caso se puede configurar al PC
como el maestro quien por medio de software puede administrar los datos de
los diferentes esclavos, al igual que ejercer operaciones de control. Su docente
Olger Erazo har entrega de una copias de un articulo publicado hace algunos
aos por la revista CEKIT.
DIGITALES III: 12

RS485 ejemplo de conexionado

DIGITALES III: 13

RS485
COMO TRANSFERIR DATOS
RS485 es un estandar por ello podemos construir un protocolo, recuerde la
forma como transfiere los datos X10 o como los hace el bus I2cC. La siguiente
puede ser una estructura de comunicacin:
1. Maestro enva un byte con un formato especial que indica a todos los
micros esclavos que permanezcan atentos porque que posteriormente se
mencionara la direccin del esclavo. En este punto los microcontroladores
esclavos mantienen sus lneas como entrada y habilitan al max485 para
esta configuracin.
2. El micro controlador maestro enva la direccin del esclavo en modo
escritura, con el cual se quiere comunicar y habilita su max485 como
entrada esperando un Ok.
3. Una vez llega el OK, se enva el comando correspondiente desde el
maestro al esclavo. Asigna sus lneas como salida y el esclavo como
entradas.
4. Si la operacin es escribir el esclavo realiza las operaciones del caso.

DIGITALES III: 14

RS485
En Proteus se encuentra el circuito integrado MAX487

DIGITALES III: 15

RS485

APLICACIN BASICA
MAESTRO ENVIA
DATOS A ESCLAVO
- PC - MICROCONTROLADOR

DIGITALES III: 16

RS485 APLICACION BASICA MAESTRO ENVIA DATOS A ESCLAVO

DIGITALES III: 17

RS485
Modificacin de libreras en ensamblador
Se puede utilizar la libreras RS232 y modificarla, en ella se debe agregar una
lnea adicional a transmisin y recepcin, a esta le denominar RS485_RW.
Las siguientes son las lneas que encabezan la libreria RS485
#DEFINE RS485_Entrada PORTB,0
; Lnea por la que se reciben los datos.
#DEFINE RS485_Salida
PORTB,1
; Lnea por la que se envan los datos.
#DEFINE RS485_RW
PORTB,2
; Lnea por la que se habilita escritura o
lectura, 0 es leer y uno es escribir.
Al iniciar el proceso de lectura no se olvide asignar las siguientes instrucciones:
piensa escribir asigne lo siguiente:

Si

RS485_LeeDato
RS485_EnviaNumero
BCF
RS485_RW
BSF RS485_RW
movlw
d'8'
addlw
'0'
movwf
RS485_ContadorBits
RS485_EnviaDato
BSF RS485_RW

DIGITALES III: 18

GAMA ALTA DE MICROCONTROLADORES

RS485 EN CCS

PIC18F4550

DIGITALES III: 19

RS485

RS485 EN CCS
CCS cuenta con una librera que permite el control de dispositivos con
bus RS485, para ello se debe ingresar en el encabezado de la librera
las siguientes instrucciones:
#include <RS485.C>
#include <stdlib.h>
// esta libreria permite convertir datos desde y hacia un valor numrico
//por ejemplo, lee por rs232 una cadena y esta se la debe manejar
como un
//numero
Para su comprensin existe en la carpeta ejemplos de CCS uno
dedicado al envo de mensajes en una red RS485. Hasta el momento
no se puede verificar su funcionamiento

DIGITALES III: 20

RS485

FUNCIONES
Al explorar las diferentes funciones encontramos:
RS485_INIT();
Permite inicializar los pines del micro y del bus.
INT1 RS485_SEND_MESSAGE(INT8 TO, INT8 LEN, INT8* DATA)
Envia mensaje sobre el bus RS485
Entradas de la funcin:
to - Direccion destino (id)
len - Longitud del mensaje(size)
*data - Puntero del mensaje (s)
La funcin retorna verdadero si se pudo enviar la cadena, en caso
contrario retorna falso
verdadero es 1, falso es cero,

DIGITALES III: 21

RS485

Ejemplo:
DO
{
envio=rs485_send_message(id, size, s);
fputS ("\n\rfuncion de envio ciclo do", PC);
}while(!envio);
RS485_WAIT_FOR_BUS(VALOR);
void rs485_wait_for_bus(int1 clrwdt)
Espera hasta que el bus RS485 este abierto. Normalmente se usa
antes de enviar un mensaje para evitar colisiones.
Pasa a verdadero al reiniciar el timer del wath dog para prevenir
que el dispositivo se reinicie, esto funcin no es necesaria si enva
respuesta inmediata.
Valor es una variable que inicialmente se enva como false, para que
esta retorne con un true.

DIGITALES III: 22

RS485

RS485_GET_MESSAGE(cadena, FALSE))
La funcion int1 rs485_get_message(int* data_ptr, int wait) retorna un
int1 con un valor true o false
Su objetivo principal es obtener un mensaje desde el bus RS485.
Para este proceso se requiere la direccin la cual puede ser un valor
de 1 - 33.
Un 1 es retornado si al verificar la paridad existe un error.
Ejemplo:
if(rs485_get_message(msg, FALSE))
{
printf("\n\r%d: ", msg[0]);
for(i=0; i < msg[1]; ++i)
putc(msg[i+2]);
printf("\n\r");
//al final hace salto de linea retorno de carro }

DIGITALES III: 23

RS485

Actividad en clase
Ingrese a la carpeta de ejemplos de CCS y decodifique cada lnea del
programa principal y de la librera RS485.C, el objetivo del programa
es contar con una serie de comandos que se envan por RS232 al
microcontrolador este enva mensajes de texto por bus RS485 al
microcontrolador solicitado.
Esta actividad solo la puede realizar si ejecuta el proceso lgico del
programa, sus conocimientos en C le permiten realizar hasta el
diagrama de conexiones. Si observa demasiada complejidad solicite
al Docente Olger Erazo que le entregue las lneas decodificadas. Este
programa de ejemplo no funciona, pero es interesante el modo como
direcciona los datos.
El siguiente diagrama ilustra las conexiones a desarrollar en proteus:

DIGITALES III: 24

RS485

DIAGRAMA DE CONEXIONES
La librera indica el diagrama de conexiones, esta depende si cuenta
o no con interrupciones. Los pines asignados se encuentran en la
siguiente imagen que se extrae de la librera de CCS:

DIGITALES III: 25

RS485

DIAGRAMA DE CONEXIONES
La siguiente grfica ilustra en detalle el conexionado entre el
microcontrolador y el max485.

DIGITALES III: 26

RS485

DIAGRAMA DE CONEXIONES GENERAL

DIGITALES III: 27

RS485

PROGRAMA EN EJECUCION

DIGITALES III: 28

29

Potrebbero piacerti anche