sábado, 21 de noviembre de 2009
Ayúdanos a crecer, haz NeoTeo tu página de inicio RegistrarseIniciar sesión

RS485: Domótica al alcance de tu mano

Por: Mario Sacco  @  sábado, 09 de mayo de 2009  Nota vista 16313 veces

Desde una simple lámpara o un relé hasta una discoteca completa o un sistema de proceso industrial. A través del puerto serie (COM1) de tu ordenador puedes aprovechar los beneficios que te brinda el estándar RS485 para conectarte al mundo real, de manera física, y poder así manejar dispositivos y procesos remotos. Operar una cámara de vigilancia, automatizar las luminarias de la casa o las aberturas de puertas y ventanas, todo manejado desde tu escritorio. Del RS485 a la casa domótica hay un solo paso: tus ganas.

¿te interesa?
104 -9
113 votos

¿Qué es el bus RS485?
Podemos resumirlo como un sistema de interconexión para transmisión de datos a grandes distancias y apto para operar en ámbitos eléctricamente ruidosos. Su conexión es muy sencilla: a partir del puerto serie (COM1) de cualquier ordenador utilizando tan sólo dos circuitos integrados muy económicos y fáciles de obtener: MAX232 y MAX485. En el caso del último IC mencionado se lo suele reemplazar por el SN76156, que cumple la misma función y es de menor coste. Si se construye un sistema pequeño de pocas terminales que utilizan este IC la diferencia monetaria es poca, pero al emplearlo en grandes cantidades el ahorro es importante.

Topología clásica de un Bus RS485

El bus permite una velocidad de datos de 10 y hasta 20 Mbps (a 12 metros de distancia), y de 100 Kbps cuando se conectan terminales o módulos separados 1200 metros entre sí. El sistema permite “colgar” del bus hasta 32 terminales, aunque en la actualidad ya se están utilizando sistemas de 128 y hasta 256 dispositivos conectados entre sí a una misma red de sólo dos hilos trenzados. En el mejor de los casos, es preferible que el par de cables que transporta la información sea blindado, pero si este montaje no es posible, y debemos utilizar cables individuales, será bueno tener un tercer cable que oficie de referencia de tierra o GND. Un cable blindado ayudaría a atenuar los ruidos eléctricos que pueden filtrarse entre los datos del sistema diferencial que utiliza el estándar RS485. Disponer de un cableado con estas características sería lo mejor.

Las especificaciones del estándar RS485 (cuyo nombre oficial es TIA/EIA–485-A) no determinan claramente cómo debe ser el correcto cableado de una red. Sin embargo, algunas recomendaciones pueden interpretarse dentro del texto de la norma y han sido estudiadas y ensayadas por ingenieros, tanto en forma conceptual como en función del método de prueba y error. Dichos ingenieros han llegado a delinear los conceptos que se utilizan hoy en día y que trataremos de resumir en esta sección de la nota. Dejamos bien aclarado que el método de interconexión que utilizaremos y el cable elegido no son los ideales sino que han demostrado funcionar de manera muy satisfactoria en ámbitos muy adversos y hostiles para la interconexión de sistemas de datos entre sí. Es por ello que te los recomendamos en este artículo.

Debido a que altas frecuencias intervienen en el intercambio de datos, que las distancias entre las terminales siempre son inciertas, y que los cables apropiados a utilizar no se determinan en el estándar, se acepta el uso de un par de cables trenzados comunes que tienen una impedancia aproximada de 120 Ohms. Las terminaciones inapropiadas de la línea a utilizar se traducen en reflexiones no deseadas de la señal, tal como muestran los ejemplos de los gráficos.

Terminaciones apropiadas a los extremos de una Red RS485
Terminaciones incorrectas provocan reflexiones indeseadas en la señal
Oscilogramas indicando terminaciones incorrectas (Izquierda)

En las imágenes (extraídas de la Web oficial de MAXIM) se puede apreciar claramente la distorsión sufrida en la señal, cuando el final de una línea no tiene una terminación adecuada. La reflexión ocasionada puede llevar a distorsionar y perder por completo los datos transmitidos. En el sitio Web de MAXIM, hay un artículo muy interesante y esclarecedor que te será muy útil para aclarar todas las dudas que puedas plantearte acerca del apropiado uso de las líneas de transmisión en el estándar RS485. Otro artículo muy interesante, y de lectura recomendada de la empresa antes mencionada, es el que habla del MAX485 y sus variantes, en donde se resalta su versatilidad de uso en redes half y full duplex.

La base del sistema, como dijimos antes, se fundamenta en la transmisión de datos en forma diferencial. Es decir, por ambos cables viaja la misma información, pero desfasada 180° en un cable respecto al otro. De esta forma, cualquier interferencia que pueda introducirse 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 de esta forma la señal útil que se desea transmitir.

Picos de ruido inducidos en la Red

Cuando el cableado recorre un ambiente ruidoso y hostil, como puede suceder en una instalación industrial, el tercer cable que oficia de tierra o GND también se transforma en un elemento que recepciona y lleva hasta las terminales o módulos los ruidos inducidos en él. Por este motivo siempre es recomendable colocar una resistencia de 100 Ohms en la conexión a GND en cada uno de los circuitos de las terminales.

Entre las múltiples diferencias fundamentales que existen respecto al estándar RS232 es que el RS485 se maneja con niveles TTL de tensión, mientras que el RS232 maneja tensiones de ambas polaridades con valores absolutos de 3 a 15 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; además, se requieren al menos 8 cables para una comunicación full y es muy propenso a ser afectado por el ruido eléctrico.

Protocolo de comunicación (Terminales charlando entre sí)
Debido a que el tipo de comunicación que desarrollaremos en el bus es considerada “half-duplex” (semiduplex) mientras un dispositivo transmite, los demás terminales o módulos que se encuentren conectados al sistema (a la red) recibirán la mencionada transmisión, es decir, todos escucharán el llamado. Dicho de otro modo, uno “hablará” y los demás “escucharán”. Debemos tener en claro que será muy importante organizar el protocolo de comunicación para que sólo un terminal o módulo “entienda y/o comprenda” que es a él a quién está llamando el transmisor. Esta situación de llamar – escuchar- actuar suele darse en ambas direcciones y entre múltiples terminales, lo que significa que el ordenador puede transmitir una instrucción, y que nuestro termómetro, al escucharla, puede responder o cumplir alguna función específica en el lugar de destino. Cualquiera de los terminales puede ser transmisor o receptor. Nunca deberá haber dos transmisores simultáneos ya que ocurrirá una inevitable colisión de datos que hará ilegible la interpretación de las instrucciones por parte de quienes están a la espera en “escucha”. Receptores pueden ser todos, pero transmisor debe haber uno solo por vez.
No necesariamente la comunicación será siempre ordenador – terminal y viceversa. Habrá oportunidades en que las terminales o módulos intercambien datos entre sí, si bien éste no es al caso. Aquí solo conectaremos el ordenador con un termómetro y un relé a la distancia. Hacer funcionar una red elemental de estas características puede ser una tontería para algunos y toda una proeza para otros.

Un dato importante a tener en cuenta es que no existe una forma universal de colocar sentencias en un programa que comunicará dos dispositivos entre sí. El desarrollador del software deberá tomar idea de otras aplicaciones y adaptar la que más convenga y se adecue al diseño que está llevando a cabo. Aunque esto sea algo sencillo de explicar, en la práctica adquiere cierto grado de dificultad.

¡Chiste interno!

A cada terminal se le otorga un “nombre”, que sencillamente podemos asignar con un número comprendido entre 0 y 255. Por ejemplo: el circuito maestro (el ordenador) puede llamarse “0”, y el esclavo (el termómetro) puede llamarse “1”. En cuanto a las instrucciones, también podemos utilizar la misma técnica para solicitarle al termómetro que nos transmita el valor de temperatura en el momento deseado, por citar un ejemplo.
En este caso podemos elegir arbitrariamente el número “33” para tal acción, y el termómetro nos responderá (si escucha e interpreta nuestro llamado) con la información que tenga disponible. A todo el conjunto de datos que envía el transmisor o el receptor en cada momento de actividad lo llamaremos “trama” de datos, y necesitamos saber que siempre deben terminar con un carácter identificable como “fin de transmisión”. Por lo tanto, la conversación entre los dispositivos se regirá por un orden que puede ser parecido al siguiente:

  • Todos los dispositivos están a la escucha y esperando recibir instrucciones.
  • Cuando el dispositivo que oficiará de transmisor comprueba la inactividad del bus envía la secuencia: “nombre del receptor – instrucción – fin de transmisión”.
  • Algunos diseñadores reenvían varias veces la trama para asegurar la comunicación.
  • El dispositivo transmisor pasa a recepción, y aquel que fue receptor de sus instrucciones actuará en consecuencia a la orden escuchada, lo que puede ser una acción autónoma o una respuesta a su interlocutor.
  • Si debe responder con una entrega de datos, asumirá el rol de “maestro” y observará en primera instancia que el bus esté inactivo. Luego, responderá con el mismo protocolo con el que fue interrogado: “nombre del receptor – datos – fin de transmisión
  • Todos quedarán en modo recepción, y el destinatario de los datos (en nuestro caso el ordenador) procesará la información recibida desde el termómetro.

Si analizamos la estructura sugerida y pensamos en que podemos llegar a colocar los 31 terminales adicionales al ordenador, los nombres podrían reservarse y enumerarse de esta forma: del 0 al 32. Por otro lado, si optamos también por un número para la instrucción a enviar, tenemos en nuestro caso la posibilidad de enviar más de 200 instrucciones distintas al termómetro. Por supuesto que no sucederá esto, ya que con una sola instrucción será suficiente para nuestro propósito. Podemos interrogar al termómetro para que nos devuelva el valor de temperatura donde esté instalado a través de una aplicación hecha por nosotros mismos en Visual Basic 2008 o el lenguaje de programación que elijamos para trabajar con el puerto serie.

El circuito.
Todos los ordenadores de mesa poseen una salida RS232 que viene identificada en el motherboard como puerto I/O COM1 y que constituye el puerto serie. Tal vez algunas no lo traigan expuesto con su conexión al exterior, pero en cualquier tienda de accesorios para el ordenador podremos adquirir por muy poco dinero el conector o alguna pequeña placa PCI que nos permitirá salir al exterior y poder allí conectar nuestra red.

Placa PCI con RS-232
Otro ejemplo con salida Serie
Conector con salida DB9 para el motherboard

El circuito utilizado es muy sencillo y cuenta con sólo dos circuitos integrados, como dijimos anteriormente: un MAX232 y un MAX485 o un SN76156 (para abaratar costos). La alimentación deberá ser independiente del puerto ya que la corriente que éste puede suministrarnos no alcanzará a activar el SN76156, el cual requiere unos 70 mA en Tx (transmisión). Con muy pocos componentes alrededor de estos IC tendremos la interfaz adecuada para crear, en nuestro ordenador, el punto de partida de una red que puede incluir desde un simple termómetro hasta el completo control de una discoteca, contando su consola de sonido, luces y efectos especiales.

Diagrama completo de la interfaz RS232 / RS485

Entre las características destacadas del diseño podemos apreciar un filtro diferencial de entrada de tensión formado por C10, T1 y C12, para minimizar ruidos eléctricos provenientes de la tensión de alimentación. El diodo (D3) se utiliza para prevenir al sistema de accidentales inversiones de polaridad en la entrada. Por su parte, el regulador serie 7805 no necesitará de disipador de calor por estar alimentado con tensiones que no representan una gran diferencia de potencial entre entrada y salida. Es decir, cuanto menor sea la diferencia entre las tensiones de entrada y salida, menor será la disipación de potencia en forma de calor en el regulador. D1 y D2 serán dos leds que mostrarán la actividad de transmisión y recepción de datos sirviéndonos de ayuda al momento de tratar de identificar problemas. Podemos destacar la presencia también de R3 en la parte inicial de la red RS485 para adaptar impedancias en toda su extensión. La misma resistencia deberá repetirse al final del recorrido, en el último terminal. Los terminales intermedios no requieren la resistencia ya mencionada en el texto; sólo los extremos de la red llevan la resistencia adaptadora de impedancias, tal como muestra la primera imagen del artículo. La resistencia de 100 Ohms que conecta la línea de GND a la placa de la interfase no figura en el circuito, pero no debes olvidar su inclusión al momento de comprar los materiales.
Un conector DB9 hembra será el nexo con nuestro ordenador. Es muy importante que pongas toda la atención y los cinco sentidos al construir una eventual prolongación del cable para conectar la interfaz. Cualquier error de conexiones aquí resultará en que el sistema no funcione y hasta en una posible rotura en el interior del puerto en el ordenador.

Para nuestro desarrollo hemos decidido utilizar cable telefónico sencillo de cuatro conductores (dos para señal y dos para GND), pero tú puedes cambiarlo por cable UTP, por conductores de energía eléctrica o por cualquier otro cable que se te cruce por el camino. Para agilizar el montaje hemos dotado a la placa de la interfaz, y a la del termómetro de conectores RJ11, para un rápido montaje y/o desarme del sistema.

Dibujo del circuito impreso
Circuito impreso terminado
Comenzando a montar componentes

En las imágenes puedes ver el impreso ya dibujado y listo para ser transferido al PCB; también se observa el PCB recién terminado, y en la tercera imagen se ve un intervalo en plena construcción de la interfaz. Recuerda que la red puede tomar las dimensiones que tu imaginación determine. Por ahora sólo la utilizaremos en el próximo artículo para conectar el termómetro que ya hemos desarrollado en el capítulo anterior. Pero puedes darte cuenta que la interfaz al ordenador te servirá para cualquier otro desarrollo futuro que decidas hacer. Por cierto, ¿ya has pensado qué es lo que conectarás a la red una vez que terminemos con el termómetro? ¿Qué tan cerca estás de automatizar toda tu casa?

Interfaz terminada y lista para usar


Artículo Siguiente
Personaliza GIMP y reemplaza Photoshop
Artículo Anterior
VSU: Nueva vida para tu MSX
CopyRight
Prohibida su copia total con o sin fines comerciales. Copias parciales deben citar la fuente.

 

URL Trackback para esta noticia:
  • RS485: Domótica al alcance de tu mano
    Publicado: Automatismos Mar del Plata,  08/08/2009 4:19:07
    "Desde una simple lámpara o un relé hasta una discoteca completa o un sistema de proceso industrial. A través del puerto serie (COM1) de tu ordenador puedes aprovechar los beneficios que te brinda el estándar RS485 para conectarte al mundo real, de ..."
Votos: 1 de 1
fonfonete
fonfonete
fonfonete
09/05/2009
16:34:09
#1   Demasiado interesante, aunque hacerlo debe costar tiempo del que no dispongo, en cuanto pueda lo haré. Excelente nota, sigue así. Y por cierto la carricatura me hizo reir.
     Responder 
Votos: 1 de 1
Jobev Lee
Jobev Lee
Jobev Lee
09/05/2009
18:24:54
#2   Es un tema muy interesante, y es parte básica de lo que son un tipo de Software a lo que se conoce como SCADAS.

Para complementar un poco, seria interesante que se presentará información sobre un protocolo que es muy utilizado cuando manejas redes RS485, que se trata de un estandard conocido como MODBUS, que tiene sus dos variantes (ASCII y RTU).

Seria muy interesante poder mostrar a futuro sobre este protocolo

Sldos.

JBV
     Responder 
Votos: 1 de 1
Saul
Saul
Saul
09/05/2009
20:20:49
#3   Interesante articulo, cada vez que veo uno como estos lo colecciono, aunque por el momento no se mucho de electronica estoy estudiando para seguir aprendiendo.
Por otro lado:
Es sencillo de usar el RS485 ¿tu que opinas Max?. JAJAJA XD, esta buena la caricatura. XD.
     Responder 
Votos: 0 de 0
Max Ferzzola
Max Ferzzola
Max Ferzzola
09/05/2009
23:15:41
#1   ¡Igual sigo sin entender! XD
     Responder 
Votos: 0 de 0
Ciul
Ciul
Ciul
09/05/2009
21:47:03
#4   Wow, excelente nota, te pasaste de calidad, es decir, está demasiada buena esta nota.

Imaginate si mezclas esto con Raphael(la mano robot), poder manejar una mano a distancia que está dentro de un cuarto manipulando elementos radiactivos o que se yo y uno con una cam y un par de estas montadas sobre un robot.

Simplemente da mucho para imaginar.
     Responder 
Votos: 0 de 0
Mario Sacco
Mario Sacco
Mario Sacco
11/05/2009
1:50:44
#1   De eso se trata Ciul ! :)

No existe límite para las aplicaciones que puede tener el circuito.
Realizando apropiadamente la aplicación (programa) en el ordenador, se puede controlar cualquier dispositivo electromecánico exterior.
Sólo es cuestión de imaginar, juntar las partes y conectar el ordenador al mundo exterior, al mundo físico.

Saludos !
     Responder 
Votos: 0 de 0
victor
victor
victor
09/05/2009
22:49:46
#5   Excelente, felicitaciones por este aporte, esta muy interesante.... Gracias
     Responder 
Votos: 1 de 1
dds
dds
dds
09/05/2009
23:21:04
#6   Buenismo estaba esperando esto!
Puedes enviarme al mail la lista de componentes y el archivo del PCB.? me gustaría intentar reducirlo un poco. Me quedo una duda : ¿cual es el valor de T1?
Gracias excelente aporte!
     Responder 
Votos: 1 de 1
Mario Sacco
Mario Sacco
Mario Sacco
11/05/2009
1:54:42
#1   Hola dds !

T1 es un arrollamiento de 10 vueltas de alambre de cobre esmaltado de 0,35 a 0,5 mm de díametro sobre un núcleo toroidal de ferrite. Su función en el circuito es suprimir los ruidos provenientes de la red eléctrica cuando al circuito se lo alimenta con una fuente de alimentación sencilla.
Lo puedes ver bien en la última fotografía del circuito a la izquierda de la imagen.

Saludos !
     Responder 
Votos: -1 de 1
dds
dds
dds
11/05/2009
14:43:31
#1   Gracias por la respuesta Mario

Me preguntaba si podría sustituir la fuente de alimentación por por los 5V de la salida de la fuente conmutada de la PC

Gracias saludos!
       
Votos: 0 de 0
Mario Sacco
Mario Sacco
Mario Sacco
11/05/2009
23:56:03
#2   La fuente del ordenador es muy ruidosa dds ... :(

Por eso propongo un sistema independiente de alimentación para que no haya posibilidades de ruidos que desemboquen en errores de interpretación de datos en la comunicación.

De todas formas puedes intentarlo.

Saludos !
       
Votos: 0 de 0
Truko
Truko
Truko
10/05/2009
1:28:14
#7   =O Interesante, e usado el MAX232 para programar, manejar y comunicarme con el PIC. No sabia que estaba con el MAX intercambiando entre protocolo, lo que entendía era que intercambia entre valores de tensión entre valores lógicos. Bueno como siempre muy interesante y e aprendido mucho =)
Que posibilidades hay que comente sobre bluetooth y los micros-controladores ^_^
     Responder 
Votos: 0 de 0
Mario Sacco
Mario Sacco
Mario Sacco
11/05/2009
1:59:32
#1   Hola Truko !

Sobre microcontroladores vamos a estar sacando cada semana un artículo al menos, y sobre bluetooth estoy trabajando en unas muestras que me llegaron de National (LMX9838SB) y apenas las haga funcionar armamos un artículo.

Saludos !
     Responder 
Votos: 0 de 0
Derkeshtai
Derkeshtai
Derkeshtai
10/05/2009
2:54:35
#9   larga vida al puerto serial!!!

Chupame los desos USB
     Responder 
Votos: 0 de 0
dds
dds
dds
10/05/2009
2:55:42
#10   seria interesante ver algo sobre zigBee entiendo q es lo ultimo q se usa en automatización del hogar
     Responder 
Votos: 1 de 1
kk
kk
kk
10/05/2009
6:51:48
#12   Max Hace ese chiste porque el programa se llama MAX485 es medio malo pero bueno
     Responder 
Votos: 0 de 0
FenixHardware
FenixHardware
FenixHardware
10/05/2009
15:58:18
#13   Muy interesante y completa la nota, la verdad que me dieron ganas de completar mi proyecto inconcluso.
Saludos

FenixHardware
Diseño Web
http://www.fenixhardware.com
     Responder 
Votos: -1 de 1
sinai1
sinai1
sinai1
10/05/2009
17:00:56
#14   buen dia no es por criticar ni nada pero me parece q esa placa no funcionara pues la tierra de la alimentacion no la ver conectada, podrian darle una checada??
     Responder 
Votos: 0 de 0
WTF
WTF
WTF
10/05/2009
21:40:48
#1   realmente no veo a que te refieres, lo he chequeado y a mi me parece q esta bien
     Responder 
Votos: 0 de 0
Mario Sacco
Mario Sacco
Mario Sacco
11/05/2009
1:45:05
#2   Hola sinai1 !

En el circuito, T1 te indica que la alimentación pasa a través de él para ingresar al PCB. T1 es el el ferrite toroidal con 10 vueltas de alambre de cobre que se vé en la última fotografía, arriba a la izquierda. Tanto el negativo como el positivo pasan a través de él. Por la línea superior pasa el negativo (se vé incluso en el dibujo del circuito impreso) y el positivo viaja por el bobinado inferior. Tienes razón que falta la conexión desde el positivo de la ficha de entrada de tensión hasta el bobinado de T1, pero si agregaba esa vía se me cortaba el plano de masa y preferí hacer un puente por el lado inferior de la placa.
Si quedan dudas de la explicación agrego una imagen del lado inferior de la placa a la nota para que se vea mejor lo que trato de decir.

La placa está funcionando perfectamente y próximamente saldrán varios artículos donde utilizamos esta interfaz para aplicaciones a distancia operadas desde el ordenador.

Saludos !
     Responder 
Votos: 0 de 0
tierra
tierra
tierra
10/05/2009
17:12:05
#15   No es por contestar!!!

Pero cual crees tu que es la tierra de una pila de 9v????
     Responder 
Votos: 0 de 0
FAH
FAH
FAH
10/05/2009
21:59:28
#21   He intentado publicar mi comentario pero el sistema no lo publica :P
     Responder 
Votos: 0 de 0
FAH
FAH
FAH
10/05/2009
22:07:04
#26   Les queria hacer una consulta, bueno desde una PC como servidor quiero controlar remotamente varios dispositivos (como solo tiene 1 salida serial, puedo utilizar varios convertidores USB-SERIAL y asi tengo varios puertos COM), haciendo la interfaz con un microcontrolador ATMEL, el esquema es el siguiente:

SERVER---USB-SERIAL---Bus RS485---Microcontrolador 89C52

Queria saber si puedo conectar directamente el ATMEL 89C52 (Que ya tiene implementada la interfaz serial de datos) al Bus RS485 ya que ambos manejan Niveles TTL (0-5.5V) y que se comuniquen.

Por favor, ayudenme en este tema, se los agradeceria mucho, e incluso les comento acerca de mi proyecto.

Saludos
     Responder 
Votos: 1 de 1
Mario Sacco
Mario Sacco
Mario Sacco
11/05/2009
2:09:56
#2   Hola FAH !

No entiendo muy bien la participación de los convertidores USB-Serial en tu aplicación, pero si miras bien la primer imagen del artículo, verás y comprenderás que con la interfaz presentada puedes controlar hasta 31 módulos que contengan circuitos con microcontroladores !
Muy pronto estaremos publicando un artículo donde utilizamos esta interfaz y la conectamos a un termómetro que utilizaremos para controlar la temperatura de un criadero de aves que está ubicado a más de 1000 metros del ordenador. Imagina que puedes tener hasta 31 termómetros conectados a la vez !

El circuito sería : Tu Server -- Interfaz de hoy -- Microcontrolador

El conversor USB - Serial no hace falta. Comprendes ?

Saludos !
     Responder 
Votos: 1 de 1
FAH
FAH
FAH
11/05/2009
6:21:44
#1   Antes que nada, muchas gracias por responder!!

Lo del convertidor USB SERIAL era para que cada microcontrolador tenga un puerto COM asignado en el servidor, ya que la mayoria de las PC'S solo tiene 1 salida RS232 (Serial).

( Server )- (USB-RS232)--RS485--89C52

Yo pensaba que por cada microcontrolador se necesitaba un convertidor RS485 Y una coneccion al server.

Esa era la idea, pero segun lo que veo se puede usar un bus en comun, utilizando una sola salida del server:

( Server )--(RS232)--RS485----89C52

Conectando todas las salidas y entradas de la interfaz serial (TxD, RxD) de los Microcontroaldores, asi me puedo comunicar con los Microcontroladores utilizando un canal en común, enviando mensajes como por ejemplo "M1=XXXX" donde M1 indica cual es el identificador del microcontrolador y XXXX las instrucciones o informacion , asi lo identifica el server, y cuando el server envia algo del tipo "M1=YYYY" solo el Microncontrolador nº1 va a a ejecutar alguna acción, y los otros van a ignorar el mensaje.

Lo que tambien quisiera saber, es como se manejan las colisiones, o que pasan si 2 microcontroladores transmiten informacion por el mismo canal al mismo tiempo.

Muchas gracias de antemano.
       
Votos: 0 de 0
Mario Sacco
Mario Sacco
Mario Sacco
12/05/2009
0:05:39
#2   Hola de nuevo FAH !

La cosa es así:

Server --- MAX232-MAX485 ---- Bus de datos del que se "cuelgan" todos los terminales o módulos (distancia hasta 1200 metros)--- MAX485 -- 89C52 (en tu caso)
En la placa de cada microcontrolador irá un MAX485 para tomar los datos del bus y acoplarlos correctamente al microcontrolador.

La colisión de datos la manejas tú al programar la aplicación en el server.
Ningún módulo transmitirá cuando se le antoje. El servidor determinará cuándo interrogar, cuándo llegará la respuesta, cuándo volverá a interrogar al mismo módulo ... es decir, nunca existirá la colisión de datos si el protocolo de comunicación que hagas es ordenado.
Si el protocolo es una anarquía y cualquier módulo hace lo que quiere cuando quiere, la situación será un caos.
Quien organiza en tráfico de datos es el server y el decide quién, cómo y cuándo habrá datos circulando por el bus.

Saludos !
       
Votos: -1 de 1
iPeter
iPeter
iPeter
11/05/2009
7:28:30
#27   Muy interesante, la verdad la electronica no es mi fuerte, pero esto realmente me interesa, por eso me compre una placa Arduino, para programar algunas cosas con leds RGB, se me ah hecho muy facil sobre todo usando "Processing", lo mas complicado para mi fue la comunicacion atravez del puerto serial (USB), pero vaya que le voy tomando el gusto a esto, gracias por este articulo.
     Responder 
Votos: 0 de 0
rem_1985
rem_1985
rem_1985
11/05/2009
20:40:48
#28   Hola Mario, primero que nada, excelente articulo, de mucha utilidad y muy facil de entender.

Solo que tengo una duda, en el diagrama del circuito solo aparecen 3 resistencias y el la foto del final, creo que hay 4, solo que no se ve de que valor, me podiras decir donde va en el diagrama y de cuanto es?
     Responder 
Votos: 0 de 0
Mario Sacco
Mario Sacco
Mario Sacco
12/05/2009
0:08:18
#1   Hola rem_1985 !

La resitencia que falta en el diagrama esquemático es de 100 Ohms y está detallado su funcionamiento en el texto de la nota. Observa en el primer gráfico del artículo que están dibujadas en cada módulo.

Saludos !
     Responder 
Votos: 0 de 0
Mario Sacco
Mario Sacco
Mario Sacco
12/05/2009
0:09:23
#1   Resistencia .... no resitencia jaja ! :)
       
Votos: 0 de 0
Jorge
Jorge
Jorge
12/05/2009
3:57:54
#29   Esta muy bien el circuito pero no me parece lo más adecuado para domótica, pero si para otras aplicaciones de automatizacion.
Para domótica me parece que sería mejor implementar un circuito de comunicación y control con la tecnología PLC y más especificamente para domótica me parece perfecto el estandar UPB (Universal Power Bus) yo me encuentro desarollando un circuito para comunicar un PC con varios microcontroladores usando este protocolo.
La velocidad de datos es de 240 bits por segundo aproximadamente a 100 metros de distancia, la informacion puede enviarse mediante paquetes de informacion (en cierta forma parecidos a paquetes IP) con un espacio de 8bits para direcciones (128 dispositivos individuales y 128 grupos de dispositivos).
Las ventajas de PLC para la automatizacion de casas es evidente sobre esta u otras tecnologías, es por eso que muchos de los sistemas comerciales de domótica la utilizan.
     Responder 
Votos: 0 de 0
Mario Sacco
Mario Sacco
Mario Sacco
12/05/2009
13:58:10
#1   Hola Jorge !

La prueba de que existen y conviven entre sí casi una decena de sistemas orientados a la automatización doméstica o domótica, hacen que nadie pueda asegurar que existe un sistema que sea el mejor respecto al resto. Mucho menos aún cuando se habla de PLC que son preferentemente utilizados en procesos industriales y no domésticos.
Por otro lado, con RS485 podremos trabajar a velocidades de 38400 bps. @ 1200 metros de distancia en las aplicaciones que realicemos en próximas entregas, ¿mientras tú aseguras que es mejor una velocidad de 240 bps a 100 metros?
El propósito final es que la arquitectura que implementes sea útil y funcional a tus necesidades. Por eso en Domótica no existe un estándar definido, ni asumido como "el mejor". Todo depende que cumpla con tus necesidades. Es como comparar entre dos sistemas operativos. Ninguno puede descalificar al otro, mientras logren satisfacer al usuario y cumplir su trabajo de manera eficaz.

Saludos !
     Responder 
Votos: 0 de 0
fabelo
fabelo
fabelo
14/05/2009
15:52:23
#30   Considero que está muy interesante, interesantísimo, pero me quedé con las ganas de medir la temperatura, de apagar las luces, de apagar o encender un motor, etc. ¿Cómo se hace eso?. Parece ser que este artículo no está para la media, constructivamente desde el punto de vista electrónico es posible, real, pero de ahí a lograr lo que tú quieras hacer, esa información no la veo clara, asequible, fácil, como para una sección como esta. Si fuera posible, desearía tener la idea, ya que no soy especialista en la materia, pero estoy interesado en el tema. Gracias.
     Responder 
Votos: 0 de 0
Mario Sacco
Mario Sacco
Mario Sacco
14/05/2009
23:29:07
#1   Hola fabelo !

Pronto, en el próximo artículo estará lo que estás buscando. Una aplicación específica. El tema es tan extenso que no puede publicarse en un sólo artículo.
No dejes de visitarnos. Lo que deseas saldrá publicado pronto.

Saludos !
     Responder 
Votos: 0 de 0
frivas
frivas
frivas
21/05/2009
10:45:47
#31   ¿Pódrías mandar el PCB para poder sacarlo en su tamaño por una impresora, o, en su defecto, decir el tamaño de la placa para ajustarlo a partir de la imagen?
Gracias.
     Responder 
 
 
Datos  Login Registrarse
Usuario
   
Email
Website
 
Nuevo comentario:


Tags HTML permitidos: br
 

Síguenos en TwitterAgréganos a tu RSS

 

 

Autores