Autor Tema: RS485!!! se puede hacer esto....??  (Leído 4327 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
RS485!!! se puede hacer esto....??
« en: 01 de Agosto de 2006, 00:16:17 »
Hola
estuve buscando info y no encuentro nada relacionado o por lo menos algo que me oriente un poco.... mi pregunta es hacerca de si se podria implementar una rs485 con modulos por ejemplo y cada modulo una direccion pero que a su vez cada modulo tenga conectado 3  modulos mas (sub modulos) por ejemplo!!!
Alguien ha hecho esto con pic?


saludos

Y espero se entienda la consulta y me puedan responder

" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: RS485!!! se puede hacer esto....??
« Respuesta #1 en: 01 de Agosto de 2006, 08:17:18 »
Hola doppel (co-provinciano) un esquema que aclare lo que quieres hacer, sería bueno pero en principio el 'bus' o la 'topologia' en estrella del RS485 te permite conectar numerosos dispositivos mientras la impedancia de la línea no sea muy baja.

En cuanto a submódulos, si eso es algo 'lógico' lo puedes hacer perfectamente y preverlo en tu software.

Ahora bien si ese módulo que se comunica con los submódulos es el master de esos submódulos y lo hará cuando se le plazca te sugiero que separes los buses para evitar colisiones.

La inteligencia para evitar colisiones lo tienes que resolver por software, en tu código.

Nuevamente si aclaras algo más lo que quieres hacer te podremos dar un pantallazo mejor de si RS485 es o no apto para la cuestión.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
Re: RS485!!! se puede hacer esto....??
« Respuesta #2 en: 01 de Agosto de 2006, 18:25:16 »
Hola Mauricio!
Gracias por responder!!
Creo que lo que vos decis se llama tambien modo jerarquico, aunque no encontré mucha info sobre eso y como implementarlo.-
coloco una imagen para que se entienda mejor mi pregunta, el diagrama superior sería el tradicional de rs485 y el de abajo mi incognita!
En el supuesto caso de utilizar el master, que en este caso seria cada modulo (1....2....3)
este seria el encargado de enviarle la info a los sub módulos=? o se podria enviar el dato directamente a cada submodulo? en mi caso los datos los enviaria por VB

diagramas




saludos
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: RS485!!! se puede hacer esto....??
« Respuesta #3 en: 01 de Agosto de 2006, 18:54:44 »
Si cada submódulo tendrá una conexión RS485 ... puedes cualquiera de las 2 cosas.  Enviar el dato al módulo y que este lo envíe al submódulo o bien enviarlo directamente al submódulo.

Convengamos que colgados todos así, todos "escucharan" o recibirán lo que sea transmitido.  Es entonces en que se usa un direccionamiento por protocolo (tipo HDLC).  El direccionamiento consiste en que cada dispositivo tenga una dirección (como una dirección IP) la cual es única y no se repite en todo el bus.

Cuando quieres enviar un dato a un dispositivo en particular, lo indicas con su address.

Vayamos a algo más concreto, para responder a tu pregunta.
1) Envio de Datos a Módulo (y que éste envíe a los submódulos)
En este caso, la conexión con los submódulos puede no ser RS485, y hasta te diría que hacerlo sobre RS485 no tendría mayor sentido porque te convendría usar la opción 2.

El master o PC, direccionará el módulo que desea y le enviará una trama con los datos a confiugrar.  El módulo interpretará dicha trama y sabrá a qué submódulo dirigir la información.  Por supuesto todo esto es dependiente del hardware que estes armando y de lo que quieras hacer, de ahí que mi descripción es 'general'.

1) Envio de Datos directamente al subMódulo
En este caso, cada submódulo estará también colgado del bus RS485.  Para distinguir a un submódulo de un módulo, lo puedes hacer por su adddress.
Por ejemplo, en la trama de datos, puedes poner un address que sea de 2 bytes, el primer byte indicará el módulo y el 2do byte el submódulo.  Todo esto será acorde a la complejidad de tu circuito y a cuantos miembros quepan en el.  Si tienes solo 4 módulos con 2 submódulos cada uno,  podrias usar un address de solo 1 byte, donde el nibble superior sea el módulo y el inferior el submódulo.

La PC o master general, para direccionar a su dispositivo esclavo solo deberá indicar su address y 'subaddress' si quieres denominarlo de esa forma, y le enviará la información que crea necesaria.



Como te habrás dado cuenta a esta altura, si usas la opción 1, y los submódulos están en el bus RS485, se te complicaría la cosa y los timings.  ¿Sabes porqué?

Porque la PC manda a un módulo y ese módulo a su vez a los submódulos.  Si usas algún sistema de 'reintento de envíos' , como sabrá la PC o cuanto deberá esperar para cerciorarse de que el dato llegó al módulo pero no al submódulo? o que sí llegó?  Todas estas cuestiones hacen tedioso y complicado el sistema de timings ,  por lo cual es más simple y más eficiente hacerlo directamente de la PC hacia el submódulo, salvo que como te dije anteriormente ese submódulo pueda estar conectado al Módulo de otra forma (i2c, spi, can bus).


Espero haberte aclarado mas el punto.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
Re: RS485!!! se puede hacer esto....??
« Respuesta #4 en: 01 de Agosto de 2006, 22:16:54 »
Hola Mauricio
gracias por responder! has contestado mi pregunta de forma impecable, ahora bien.. viendo la data solo admiten 32 módulos en 485 de ahi que surgen nuevas dudas!! a saber... si por ejemplo como tu dices todas las placas no pueden tener la misma address voy a tener un problema ya que habia pensado en esta solucion para superar esa cantidad pero es correcto lo que dices con respecto a que todos "oyen" me pregunto si utilizando RS232 hasta cada linea de submódulos y ahi poner un conversor RS485 si con esto le puedo asignar como un nombre de Subred por asi decirlo, diferente a cada uno de los otros submódulos y de ahi colocar las address a cada plaquita (que se repita en cada submodulo), en este caso no se si es correcto pero no se como se toma la cantidad de 32 que se menciona si se suma todo o  como es realmente!!

saludos y gracias
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: RS485!!! se puede hacer esto....??
« Respuesta #5 en: 02 de Agosto de 2006, 08:22:50 »
Hola Mauricio
gracias por responder! has contestado mi pregunta de forma impecable, ahora bien.. viendo la data solo admiten 32 módulos en 485 de ahi que surgen nuevas dudas!! a saber... si por ejemplo como tu dices todas las placas no pueden tener la misma address voy a tener un problema ya que habia pensado en esta solucion para superar esa cantidad pero es correcto lo que dices con respecto a que todos "oyen" me pregunto si utilizando RS232 hasta cada linea de submódulos y ahi poner un conversor RS485 si con esto le puedo asignar como un nombre de Subred por asi decirlo, diferente a cada uno de los otros submódulos y de ahi colocar las address a cada plaquita (que se repita en cada submodulo), en este caso no se si es correcto pero no se como se toma la cantidad de 32 que se menciona si se suma todo o  como es realmente!!

saludos y gracias

No había leído de esa limitación de '32' que mencionas, pero puede que la limitante esté en que están todos en paralelo y la impedancia del bus 'baja' y con eso surgen problemas.

En cuanto a hacer lo que mencionas con RS232, no lo aconsejo, en RS232 debieras unir los TX de los módulos que van a la  PC.  Unir pines de usar TX no es buena idea... Salvo que tu software los ponga como entrada constantemente cuando están en recepción.

El tema con los módulos y submódulos es que me mareo un poco con como sería tu sistema.  Tal vez podrías, si quieres separar de esa forma, usar 2 buses por separado y tener 2 usarts.  Esas dos usarts pueden ser ambas por hardware o bien una por hardware y otra por software (dependiendo del pic que vayas a usar).

Si comentas algo más de cómo es el sistema, tal vez se me caiga otra idea :)  8)
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
Re: RS485!!! se puede hacer esto....??
« Respuesta #6 en: 03 de Agosto de 2006, 18:59:30 »
Hola Mauricio:

Creo que lo de las dos USART sería la solución ya que eso me asegura la independencia de cada red y en este caso no tendria problemas en superar los 32 módulos (en total) .-
Otra incognita que me surge es si por ejemplo el dia de mañana quiero agregar una red que sea independiente de las dos que tengo (2 USART hipotesis) y usar el mismo puerto de la pc para controlar cada una, cual seria la solucion a esto tomando en cuenta lo de la limitacion de unidades por red!?? 

saludos
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: RS485!!! se puede hacer esto....??
« Respuesta #7 en: 04 de Agosto de 2006, 00:04:59 »
Los pics de 2 usart son una opción a prioiri pero no te salvas de desarrollar el protocolo.

jeje, creo que te la estas complicando demasiado y aún no has dicho de donde sacaste eso de la limitación a los 32 dispositivos....

Si se te complica mucho podrías usar algún tipo de multiplexor que te permita trabajar con el rango que usa el RS485 o bien implementar algo con llaves analógicas.

No se qué aplicación estas pensando ya que aún no has dicho de que se trata, pero no me he visto nunca en la disyuntiva de necesitar 3 buses RS485 totalmente diferentes...

Tal vez tu problema se pueda resolver de otra forma pero... si no das mas datos... solo puedo adivinar o hacer conjeturas.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado JavisusII

  • PIC12
  • **
  • Mensajes: 79
Re: RS485!!! se puede hacer esto....??
« Respuesta #8 en: 04 de Agosto de 2006, 09:45:58 »
Buenas doppel,

He estado observando tu post desde el inicio .Y realmente pienso que:

La respuesta ha tu pregunta la tienes en la primera y segunda intervención del experto Mauricio, el cual te ha respondido de forma eficaz.

Pero tu sigues y sigues complicando la cosa, pero sin concreción ni lo que realmente quieres hacer.

Tus preguntas realmente empiezan a valer dinero, no son simples preguntas, y realmente pienso que te estas aprovechando un poco de la buena fe de los expertos de este foro.


Es sólo una apreciación no te lo tomes a mal Doppel.

Saludos.
 
Xavi (Barcelona)

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
Re: RS485!!! se puede hacer esto....??
« Respuesta #9 en: 04 de Agosto de 2006, 16:34:20 »
Hola:

Mauricio estas dudas surgen de la idea de querer hacer un reloj, una miniestación meteorogica y la posibilidad de conectar algo más en algún momento.-
Cada dispositivo seria manejado mediante la pc via RS485 / RS232 entonces me puse a buscar info acerca de como hacer esto sin tener que enchufar y desconectar cada módulo de la pc, de ahi que se me ocurrio lo de las sub redes (ya que se podria ir de un aparato a otro sin ir a la pc desde cada uno)  cada Placa tendria una direccion para acceder a la información.-



Con respecto a los 32 módulos en muchos textos que he conseguido "googleando" aparece esa cantidad como también ahora encontré uno que dice 256!!
Dejo un PDF para que lo lean con info general para el que quiera saber a grandes rasgos sobre RS485
En este texto aparecen las dos cantidades citadas de módulos

http://rapidshare.de/files/28194657/RS-485.pdf.html

Lamentablemente la poca disponibilidad de tiempo y el dinero necesario para hacer ciertos proyectos para poder aprender un poco mas,  llevan a pensar de antemano como hacer todo dando lugar a dudas que solo puedo evacuar en este foro, por que muchas veces no se dispone de la información con solo hacer click!
Nuevamente te agradezco Mauricio la buena predisposicion que has tenido, me has aclarado mucho el panorama para poder comenzar a prácticar.-
Y lamento si he ofendido a alguien con mis preguntas pero estas mismas inquietudes las puede tener otro usuario y creo que eso es lo bueno del foro que todo queda plasmado para que otros accedan.-

saludos

" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: RS485!!! se puede hacer esto....??
« Respuesta #10 en: 05 de Agosto de 2006, 14:54:25 »
doppel estuve leyendo detenidamente los datasheet de los IC que uso para MAX485 y tienes razón están limitados para 32 conexiones

El punto es que todo depende de la impedancia del transceiver y leí por ahí que se puede lograr hasta 256 con transceivers de diferente impedancia, aunque tal vez haya 'trucos' para usar los comunes y llevarlos a una topología que permita las 256 conexiones.

Más allá de eso no te puedo asesorar más ya que tendría que buscar para poderte explicar, lo que considero que tu podrías hacer solito :)

Creo que con 32 módulos te será suficiente para hacer las primeras prácticas.  Los módulos RS485 no son caros para nada, mucho menos los cables y conectores.  Si en algún momento piensas en ampliar, te sugiero que el PCB donde coloques los RS485 lo tengas separado por si a futuro debes cambiarlos por unos con impedancia diferente o bien un PCB que contenga esos mismos RS485 pero con algún circuito adosado al bus que te permita modificar la impedancia el Módulo.


Saludos y espero te haya servido de ayuda
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)