TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: ogris en 20 de Mayo de 2007, 13:59:36

Título: Comunicacion por RS485
Publicado por: ogris en 20 de Mayo de 2007, 13:59:36
Hola a todos,

a ver si me podéis solucionar una duda sobre la comunicación RS485, no tengo muy claro si el RS485 es un protocolo o si es solo un tipo de conexion. Me explico, en el protocolo I2C esta definido las conexiones y tramas del protocolo (hay por ejemplo 7 bit para direccionar los dispositivos), pero para el RS485 no encuentro nada de las tramas,

¿sabeis si hay algo normalizado para la tramas, direccionamiento, etc?

gracias y un saludo
Título: Re: Comunicacion por RS485
Publicado por: Renatox_ en 20 de Mayo de 2007, 14:50:20
 Hola, no hay una restricción en la comunicación, puedes enviar cualquier tipo de trama por el RS485, este actua a nivel físico modificando las señales de 0 y 5v a voltajes diferenciales para que puedan transmitirse con más inmunidad al ruido a largas distancias, puedes hacer un I2C y transmitirlo por 485.

Te dejo este documento.

Saludos
Título: Re: Comunicacion por RS485
Publicado por: maunix en 21 de Mayo de 2007, 08:15:54
ogris si vas a comunicar solo equipos hechos y diseñados por tí no habrá problemas, si quieres comunicarte con dispositivos de terceros ahí se suele usar por ejemplo MODBUS que es un protocolo de más alto nivel, también hay otros menos conocidos o populares.

Saludos
Título: Re: Comunicacion por RS485
Publicado por: ogris en 21 de Mayo de 2007, 08:54:14
Sí, voy a mirar como va el MOSBUS, creo que tambien el PROFIBUS se usa sobre RS485, ¿cual recomendais? en principio es solo para comunicar equipos hechos por mi, pero seguro que estos protocolos estarán muy bien pensados y ademas asi aprendo y dejo abierta la posibilidad de usar otros equipos.

muchas gracias y un saludo
Título: Re: Comunicacion por RS485
Publicado por: reiniertl en 21 de Mayo de 2007, 09:39:35
Sobre ese tema, hace unos días tuve una disucsión bastante interesante con mi hermano.

Me pedía un convertidor de medios RS-485 a Ethernet, como si eso fuera tan fácil.

Bien, RS-485 no define un protocolo de comunicación, sino un medio físico para el transporte de datos, es decir que solamente define cómo deben realizarse las conexiones, las características del cable a utilizar, distancias que soporta la comunicación, tensiones, y otro conjunto de definiciones de crácter eléctrico.

La confusión de muchos, entre ellos mi hermano, viene dada porque como RS-485 o también EIA-485, es un estándar, se piensa que implementa una interfaz completa con la parte eléctrica y el protocolo de comunicación, pero no es así.

El protocolo lo pone el diseñador del sistema, no el estánar EIA-485, así que tendrás que crear tu estándar propio o utilizar alguno ya existente como MODBUS, HDLC, SDLC, FIELDBUS u otro que te guste o utilice el equipo con el cual te vas a comunicar.

Es por eso que yo le decía a mi hermano, un convertidor de medios RS-485+(protocolo que se implementa) a Ethernet.

Un saludo Reinier
Título: Re: Comunicacion por RS485
Publicado por: maunix en 21 de Mayo de 2007, 12:36:02
Sí, voy a mirar como va el MOSBUS, creo que tambien el PROFIBUS se usa sobre RS485, ¿cual recomendais? en principio es solo para comunicar equipos hechos por mi, pero seguro que estos protocolos estarán muy bien pensados y ademas asi aprendo y dejo abierta la posibilidad de usar otros equipos.

muchas gracias y un saludo

MODBUS es tremendamente más fácil que PROFIBUS...  MODBUS está muy documentado PROFIBUS no... o mejor dicho 'no gratuitamente'.  El Profibus requiere un manejo de las señales bastante importante lo que obliga en casi todos los casos a usar un integrado para el modo esclavo y el modo maestro... bueno, no tengo ni la más pálida idea de cómo hacerlo y que leyendo y leyendo lo poco que pude bajar, nada se comentaba más que "comprar la placa xxx con el soft xxx" de siemens... y asunto solucionado.



Título: Re: Comunicacion por RS485
Publicado por: reiniertl en 21 de Mayo de 2007, 12:48:17
Uno muy sencillo, tal vez por lo añejo es SDLC (Serial Data Link Contro) desarrolaldo por IBM, que tiene versiones más actuales como HDLC, básicamente tiene la siguiente estructura

Flag | address | command | data | CRC | Flag

En google pones SDLC y te salen una pila de páginas que lo explican de maravillas

Es muy sencillo pero eficaz, a tal punto que muchas centrales telefónicas lo implementan

un Saludo Reinier
Título: Re: Comunicacion por RS485
Publicado por: maunix en 21 de Mayo de 2007, 14:47:01
Uno muy sencillo, tal vez por lo añejo es SDLC (Serial Data Link Contro) desarrolaldo por IBM, que tiene versiones más actuales como HDLC, básicamente tiene la siguiente estructura

Reinier, el HDLC tiene varias décadas, de hecho es lo que se usa en Ethernet.
Título: Re: Comunicacion por RS485
Publicado por: reiniertl en 21 de Mayo de 2007, 15:10:12
Una razón más para aprender a utilizarlo, no lo cree usted mease maunix?
Título: Re: Comunicacion por RS485
Publicado por: ogris en 21 de Mayo de 2007, 19:24:25
Muchas gracias por la ayuda, desconocia mucho el tema.

Estoy indeciso, el HDLC tiene muy buena pinta, aunque no me llega a gustar demasiado los Flags de inicio y fin q obligan a introducir un bit de relleno en algunos  bytes para no confundirlos con los flags.

El Modbus parece muy sencillo, lo que no acabo de ver es el tema del acceso al medio, ya que es un sistema maestro-esclavo y yo necesito q a veces los esclavos tienen que hacer llamadas al maestro sin que haya un polling.

el Profibus queda descartado por lo que me habeis comentado.

saludos


Título: Re: Comunicacion por RS485
Publicado por: maunix en 21 de Mayo de 2007, 19:37:04
Una razón más para aprender a utilizarlo, no lo cree usted mease maunix?

Maese Reinier... por supuesto.  De hecho yo lo uso desde mi primer comunicación 485 hasta hoy en día. :)

El espíritu de mi post fue el de agregar un comentario o información al tema, más no corregirlo.  Espero no haya pensado que fue para corregir... un abrazo.

PD: siempre tengo que revisar como 3 veces cuando escribo tu nombre!!! tantas vocales y encima... me acabo de dar cuenta que tu nombre es capicúa!! ¿estoy en lo cierto?
Título: Re: Comunicacion por RS485
Publicado por: reiniertl en 21 de Mayo de 2007, 19:49:40
Completamente CORRECTO respecto al nombre

Y por supuesto que nunca pensé que la nota era para rectificar nada en particular, simplemente contesté para reafirmar que era una excelente opción implementar HDLC o SDLC, más aún cuando es el mismo protocolo usado en Ethernet, cosa que no conocía.

Por cierto el problema del byte de flag se puede evitar codificándolo como una combinación de otros bytes, puede inventarte el código que desees. Por ejemplo si en la trama aparece un byte igual al flag lo puedes convertir en "\F\" o cualquier otro código, así te evitas tener que meter la serie de unos y ceros para resolver el problema. Claro cuando recibas una trama deberás sustituir el código por el valor adecuado.

Un saludo Reinier
Título: Re: Comunicacion por RS485
Publicado por: Nocturno en 25 de Mayo de 2007, 05:49:01
PD: siempre tengo que revisar como 3 veces cuando escribo tu nombre!!! tantas vocales y encima... me acabo de dar cuenta que tu nombre es capicúa!! ¿estoy en lo cierto?
¡Qué curioso!, un nombre capicúa. Yo sólo conocía el de Ana  :mrgreen:
Título: Re: Comunicacion por RS485
Publicado por: MGLSOFT en 25 de Mayo de 2007, 22:36:14
Yo sabia de Ada  :mrgreen: :mrgreen:
Título: Re: Comunicacion por RS485
Publicado por: reiniertl en 26 de Mayo de 2007, 11:50:34
Dejando un poco el asunto del nombre capicúa y retomando el de este hilo, recomendaría a este amigo utilizar el protoclo MODBUS porque en la última versión de CCS ya viene un driver para este protocolo.

Ya me estuve quemando las pestañas con SDLC y he comprobado que para implementarlo tal y como viene en el estándar voy a tener que escribir un programa en VHDL para meterlo dentro de un PLD, porque la USART no me sirve para ello, y hacer que el uC se encargue de emularlo sería demasiada carga para el uC o muy ineficiente.

Un saludo Reinier
Título: Re: Comunicacion por RS485
Publicado por: jfh900 en 27 de Mayo de 2007, 20:11:09
No es capicua, ya que solo se aplica a los números, para las frases se llama "palíndromo", cuando se lee igual de derecha a izquierda que de izquierda a derecha.

Un saludo
Título: Re: Comunicacion por RS485
Publicado por: panchocolorado en 29 de Mayo de 2007, 18:47:32
Yo te recomendaría modbus ya que gran parte de los equipos industriales lo soportan y tb puedes conseguir programitas que te permiten conectar a la PC. En cuanto a la librería de CCS, no cumple con todas las especificaciones del Standard Modbus, principalmente lo referido a los temporizadores, si quieres algo qu sea standart tendras que hacer algunas modificaciones en #INT_TIMER2. Además hay que tener en cuenta que sólo las versiones muy nuevas de CCS lo traen completa, las anteriores tienen muchos huecos