CCS_RS485

29
GAMA ALTA DE MICROCONTROLADORES COMPILADOR C CCS SISTEMAS EMBEBIDOS DIGITALES III: 1

description

Electrónica programación pic 16f877A

Transcript of CCS_RS485

Page 1: CCS_RS485

GAMA ALTA DE MICROCONTROLADORES

COMPILADOR C CCS SISTEMAS EMBEBIDOS

DIGITALES III: 1

Page 2: CCS_RS485

GAMA ALTA DE MICROCONTROLADORES

PIC18F4550

RS485 ,vomo funciona?

DIGITALES III: 2

Page 3: CCS_RS485

ESTANDAR RS485

Principio de funcionamiento

¿Qué es el bus RS485?

Se conoce también como EIA-485, se utiliza para transmitir datos a grandes y es utilizado en ambientes eléctricamente ruidosos. Su conexión es sencilla: a partir del puerto serie (COM1) de cualquier computador utilizando dos circuitos integrados económicos como el MAX232 y MAX485.

RS485 no es un protocolo, es un estándar y pertenece al nivel uno de modelo OSI, se encuentra en la capa física, requiere para su implementación de tres líneas , 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 función.

DIGITALES III: 3

Page 4: CCS_RS485

ESTANDAR RS485

CARACTERISTICAS

TRANSMICION SERIE ASINCRONICA (usas UART)

Transmisión 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: -7 +12

Sensibilidad: +/- 200mv

DIGITALES III: 4

Page 5: CCS_RS485

RED RS485 BASICA

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

DIGITALES III: 5

Page 6: CCS_RS485

RS485

¿Qué es el max485?

Es un circuito integrado que permite la conversión TTL/RS485, tiene 8 pines, con las siguientes características:

R0 Salida TTL Pin 1

Re complementada Pin 2DE pin 3

DI Entrada TTl Pin 4

Vcc alimentación a 5 voltios Pin 8

D0 complementada RS485 Pin 7D0 RS485 Pin 6

Gnd Tierra Pin 5

DIGITALES III: 6

Page 7: CCS_RS485

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 conexión:

DIGITALES III: 7

Page 8: CCS_RS485

RS485Suprimir el ruidoRS485 transmite los datos en forma diferencial. Por los dos cables viaja la misma información, 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 señales se restituyen en polaridad y los picos de ruidos que se habían introducido con la misma polaridad en ambos cables, al invertirse las señales, se neutralizan y eliminan entre sí, y se recupera la señal útil que se desea transmitir. Observe la siguiente gráfica:

DIGITALES III: 8

Page 9: CCS_RS485

RS485

Configuración típica del MAX485

DIGITALES III: 9

Page 10: CCS_RS485

RS485 CONFIGURACION MAX485

DIGITALES III: 10

Page 11: CCS_RS485

MAX485 PROVEEDORES NACIONALES

Si no encuentra el CI MAX485 en las tiendas locales de electrónica, este se puede adquirir en Bogotá con el proveedor PLINTEC.

DIGITALES III: 11

Page 12: CCS_RS485

RS485 contra RS232

Una de las ventajas de RS485 es el alcance comparado con RS232, RS485 se maneja niveles TTL de tensión, 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 simultánea), pero su distancia de trabajo es de tan sólo 12 metros a 30 metros y para ello se requieren al menos 8 cables para una comunicación full y es muy a ser afectado por el ruido eléctrico. En RS485 la comunicación 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 años por la revista CEKIT.

DIGITALES III: 12

Page 13: CCS_RS485

RS485 ejemplo de conexionado

DIGITALES III: 13

Page 14: CCS_RS485

RS485COMO 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 comunicación:

1. Maestro envía un byte con un formato especial que indica a todos los micros esclavos que permanezcan atentos porque que posteriormente se mencionara la dirección del esclavo. En este punto los microcontroladores esclavos mantienen sus líneas como entrada y habilitan al max485 para esta configuración.

2. El micro controlador maestro envía la dirección 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 envía el comando correspondiente desde el maestro al esclavo. Asigna sus líneas como salida y el esclavo como entradas.

4. Si la operación es escribir el esclavo realiza las operaciones del caso.

DIGITALES III: 14

Page 15: CCS_RS485

RS485

En Proteus se encuentra el circuito integrado MAX487

DIGITALES III: 15

Page 16: CCS_RS485

RS485

- PC - MICROCONTROLADOR

APLICACIÓN BASICA MAESTRO ENVIA DATOS A ESCLAVO

DIGITALES III: 16

Page 17: CCS_RS485

RS485 APLICACION BASICA MAESTRO ENVIA DATOS A ESCLAVO

DIGITALES III: 17

Page 18: CCS_RS485

RS485

Modificación de librerías en ensamblador

Se puede utilizar la librerías RS232 y modificarla, en ella se debe agregar una línea adicional a transmisión y recepción, a esta le denominará RS485_RW. Las siguientes son las líneas que encabezan la libreria RS485

#DEFINE RS485_Entrada PORTB,0 ; Línea por la que se reciben los datos.#DEFINE RS485_Salida PORTB,1 ; Línea por la que se envían los datos.#DEFINE RS485_RW PORTB,2 ; Línea 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: Si piensa escribir asigne lo siguiente:

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

Page 19: CCS_RS485

GAMA ALTA DE MICROCONTROLADORES

PIC18F4550

RS485 EN CCS

DIGITALES III: 19

Page 20: CCS_RS485

RS485

RS485 EN CCS

CCS cuenta con una librería que permite el control de dispositivos con bus RS485, para ello se debe ingresar en el encabezado de la librería las siguientes instrucciones:

#include <RS485.C>

#include <stdlib.h>// esta libreria permite convertir datos desde y hacia un valor numérico//por ejemplo, lee por rs232 una cadena y esta se la debe manejar como un//numero

Para su comprensión existe en la carpeta ejemplos de CCS uno dedicado al envío de mensajes en una red RS485. Hasta el momento no se puede verificar su funcionamiento

DIGITALES III: 20

Page 21: CCS_RS485

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 RS485Entradas de la función: to - Direccion destino (id)len - Longitud del mensaje(size)*data - Puntero del mensaje (s)La función retorna verdadero si se pudo enviar la cadena, en caso contrario retorna falso verdadero es 1, falso es cero,

DIGITALES III: 21

Page 22: CCS_RS485

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 prevenirque el dispositivo se reinicie, esto función no es necesaria si envía respuesta inmediata.Valor es una variable que inicialmente se envía como false, para que esta retorne con un true.

DIGITALES III: 22

Page 23: CCS_RS485

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 falseSu objetivo principal es obtener un mensaje desde el bus RS485. Para este proceso se requiere la dirección 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

Page 24: CCS_RS485

RS485

Actividad en clase

Ingrese a la carpeta de ejemplos de CCS y decodifique cada línea del programa principal y de la librería RS485.C, el objetivo del programa es contar con una serie de comandos que se envían por RS232 al microcontrolador este envía mensajes de texto por bus RS485 al microcontrolador solicitado.

Esta actividad solo la puede realizar si ejecuta el proceso lógico 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 líneas 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

Page 25: CCS_RS485

RS485DIAGRAMA DE CONEXIONESLa librería 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 librería de CCS:

DIGITALES III: 25

Page 26: CCS_RS485

RS485DIAGRAMA DE CONEXIONESLa siguiente gráfica ilustra en detalle el conexionado entre el microcontrolador y el max485.

DIGITALES III: 26

Page 27: CCS_RS485

RS485

DIAGRAMA DE CONEXIONES GENERAL

DIGITALES III: 27

Page 28: CCS_RS485

RS485

PROGRAMA EN EJECUCION

DIGITALES III: 28

Page 29: CCS_RS485

29