Autor Tema: Pregunta acerca de comunicaciones (Posibles CAN o RS485)  (Leído 6278 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jagonru01

  • PIC10
  • *
  • Mensajes: 28
Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« en: 05 de Septiembre de 2012, 14:16:28 »
Hola amigos, que tal?

Bueno, quisiera haceros una preguna a ver si me podeis orientar, ya que llevo un tiempo sin trabajar con los amados PICs y no se por donde meter mano a lo que os voy a comentar.

Vereis, necesito conectar un PIC maestro con otros dispositivos que pueden ser esclavos. Para que os hagais a la idea, es una especie de central de alarma (maestro) con una serie de interruptores manuales a una cierta distancia (Esclavos) situados a unos 40-50 metros.

He trabajdo con los PIC 16F84A y 16F876 en comunicaciones a corta distancia con puertos serie e I2C, pero claro, ahora me encuentro con distancias muy superiores y cableado que ha de ir por ambientes exteriores.

Es por ello que se me viene a la cabeza y por lo que he leido el uso de los buses CAN o RS485. Pero nunca he trabajado con ellos. Segun he leido, al ser una comunicacion diferencial es mucho mas inmune a ruidos.

De ser asi, ¿Cual me recomendais?

He estado mirando en la casa comercial Mikroelektronika y parece haber unos dispositivos que hacen de interfaz entre un PIC y el bus, como por ejemplo estos que os pongo:
http://www.mikroe.com/click/rs485-3.3v/
http://www.mikroe.com/click/can-spi-5v/

SEgun veo de la tarjeta segunda que os he dejado, esta placa hace de interfaz entre SPI y el CAN. Imagino que de esta manera es facil implementar un sistema con el 16F876 y esta placa. ¿como lo veis uds?

Otra cosa, en estos casos, ¿que tipo de cables se usan? ¿tipico cable de red UTP para redes informaticas? Desde luego, la transmision de datos no es elevada?

Os doy las gracias de antemano.

Saludos

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #1 en: 05 de Septiembre de 2012, 19:00:45 »
Hola Jagonru01.
Respecto a usar una u otra placa con ese PIC, no hay problema alguno.
Te recomiendo usar el hardware usart para el 485 y el hardware SPI para el mcp2515 (controlador CanBus).

Si vas a programar en assembler te recomiendo el RS485, vas a poder hacer una red Maestro >>> Esclavos bastante buena.
No te recomiendo meterte con CAN en assembler porque vas a sufrir, son muchos registros para configurar y seguramente vas a meter la pata.

Si en caso contrario, usaras lenguaje C para programar, todos tienen librerias para usar el modulo CAN (Microchip, CCS y MikroC las traen al menos), alli renegaras menos o casi igual que en RS485.

Si debo hablar de ventajas uno sobre el otro, la principal diferencia ( a pesar que todo el mundo piensa que son iguales) es que RS485 funciona como Maestro >> Esclavo, mientras que CAN puede hacerlo asi, pero su principal fortaleza es que funciona como Productor > Consumidor, que esencialmente permite que un esclavo transmita un valor, dirigido a uno, varios o todos los que estan conectados en el Bus y esos pueden consumir ese dato sin que un maestro tenga que marcar el ritmo.
Ambos modos pueden funcionar al mismo tiempo, el maestro haciendo poolling y los esclavos transmitiendo por tiempo, por cambios o lo que se te ocurra, lo que hace que la red sea mucho mejor utilizada.
Por otro lado tiene arbitracion, ya que si dos dispositivos en el mismo medio comienzan a transmitir a la vez, siguen haciendolo hasta que el primer bit de sus direcciones sea distinto, en ese momento el de menor numero de Id sigue transmitiendo y el otro espera turno, lo que hace que no haya colisiones.
Todo eso lo resuelve el hardware. ;-)

Respecto al medio fisico, yo use cable de red ethernet en ambos sistemas y funciona de maravillas, en CAN hasta 80 metros (ese fue mi limite, porque no tenia mas cable  :lol:) y en RS485, con Modbus, hasta 500 metros.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado jagonru01

  • PIC10
  • *
  • Mensajes: 28
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #2 en: 06 de Septiembre de 2012, 04:58:41 »
Hola Jagonru01.
Respecto a usar una u otra placa con ese PIC, no hay problema alguno.
Te recomiendo usar el hardware usart para el 485 y el hardware SPI para el mcp2515 (controlador CanBus).

Si vas a programar en assembler te recomiendo el RS485, vas a poder hacer una red Maestro >>> Esclavos bastante buena.
No te recomiendo meterte con CAN en assembler porque vas a sufrir, son muchos registros para configurar y seguramente vas a meter la pata.

Si en caso contrario, usaras lenguaje C para programar, todos tienen librerias para usar el modulo CAN (Microchip, CCS y MikroC las traen al menos), alli renegaras menos o casi igual que en RS485.

Si debo hablar de ventajas uno sobre el otro, la principal diferencia ( a pesar que todo el mundo piensa que son iguales) es que RS485 funciona como Maestro >> Esclavo, mientras que CAN puede hacerlo asi, pero su principal fortaleza es que funciona como Productor > Consumidor, que esencialmente permite que un esclavo transmita un valor, dirigido a uno, varios o todos los que estan conectados en el Bus y esos pueden consumir ese dato sin que un maestro tenga que marcar el ritmo.
Ambos modos pueden funcionar al mismo tiempo, el maestro haciendo poolling y los esclavos transmitiendo por tiempo, por cambios o lo que se te ocurra, lo que hace que la red sea mucho mejor utilizada.
Por otro lado tiene arbitracion, ya que si dos dispositivos en el mismo medio comienzan a transmitir a la vez, siguen haciendolo hasta que el primer bit de sus direcciones sea distinto, en ese momento el de menor numero de Id sigue transmitiendo y el otro espera turno, lo que hace que no haya colisiones.
Todo eso lo resuelve el hardware. ;-)

Respecto al medio fisico, yo use cable de red ethernet en ambos sistemas y funciona de maravillas, en CAN hasta 80 metros (ese fue mi limite, porque no tenia mas cable  :lol:) y en RS485, con Modbus, hasta 500 metros.

Hola MGLSOFT. Muchisimas gracias por aclararme el tema.

Te comento, la programacion la haria en C (CCS) y entonces veo que con ello me recomiendas que use CAN.

Respecto de los 80m que comentas, con eso me sobra casi seguro.

Ahora a ver si convenzo a mi superiora en el trabajo para ir comprando el material e ir probando yo ya.

Y ya puestos, ¿Sabeis si es facil implementar el SPI en un PIC 16F84A en C? En todo caso seria para ponerlo en aquellos sitios que irias como "esclavos".

Gracias de nuevo por la ayuda. :)

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #3 en: 06 de Septiembre de 2012, 07:45:21 »
Que tipo de comunicacion quieres hacer?? Maestro->esclavo? Multimaestro? Maestro->Esclavos??

El CAN esta mas orientado a multimaestro, es mas complicado de usar al principio (luego cuando aprendes es bastante mas sencillo) la diferencia con el rs485 es que tiene la capa de hardware y software integrada, tu envias los mensajes con determinada prioridad y el se encarga de que el mensaje llege correctamente (en caso contrario te daria error). El rs485 si hay varios modulos que quieren enviar a la vez se produciria una colision, se perderian los mensajes, tendrias que hacerle muchas detecciones para ver que el mensaje recibido es correcto (crc), evitar las colisiones y un largo etc... Sin embargo si es un maestro que envia a varios esclavos es muchisimo mas sencillo que el CAN.

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #4 en: 06 de Septiembre de 2012, 08:27:54 »
Hola, yo usaría 485, que es muy sencillo de usar y más barato que el CAN, en ambos casos vas a tener que programarte a pelo la capa de enlace tú, porque las librerías que existen son para el puerto serie, pero no especifican nada sobre la norma, asique el acceso al medio es tuyo. Sólo utilizaría CAN si es exageradamente ruidoso el entorno (transformadores grandes, motores...), si no RS232, la interfaz que mencionas, yo no la usaría, pincharía directamente al puerto serie (que es más comodo) aaunque igualmente te tendrás que diseñar tu un driver para metrer un max485 o el adaptador de CAN.
En definitiva para no liarte, yo he trabajado con los dos y prefiero el 485, que es mucho más sencillo y "limpio".
Saludos.

Desconectado jagonru01

  • PIC10
  • *
  • Mensajes: 28
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #5 en: 06 de Septiembre de 2012, 08:47:26 »
Hola de nuevo, gracias por vuestras respuestas.

A priori se trata de un sistema para una centralita muy basica para situaciones de emergencia. Esta centralita gobernará el sistema de alarma como tal, pero podrá ser activada por diversos actuadores que seran los que tamnbien enviaran la informacion mediante uno de estos buses al sistema central. No descarto que la centralita maestra mande algun tipo de informacion a las esclavas o satelites para poder conocer el estado de la emergencia.

Desconectado peteorito

  • PIC16
  • ***
  • Mensajes: 136
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #6 en: 06 de Septiembre de 2012, 09:00:21 »
Hola:
  Este hilo es de CAN y esta genial
 http://www.todopic.com.ar/foros/index.php?topic=19182.0

 Yo estoy  usando los PIC 18F4685 que ya  viene integrado en contralador can y solo hay que añadirle e MCP2551  para gestionarl la capa fisica de la red.
  

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #7 en: 06 de Septiembre de 2012, 09:02:05 »

Y ya puestos, ¿Sabeis si es facil implementar el SPI en un PIC 16F84A en C? En todo caso seria para ponerlo en aquellos sitios que irias como "esclavos".


Yo no me liaria con ese PIC, ya que en poco tiempo se discontinuara, hay muchisimos mas modelos que lo superaron en muchos recursos, manteniendo las caracteristicas del pinout.
Por ejemplo con osciladores internos que te dejan dos pines mas desocupados, con velocidades de clock varias veces superiores, mas memoria, etcetera.

El SPI en CCS es muy facil de configurar, si usas CAN y los ejemplos de CCS, posiblemente no debas tocar casi nada, ya que la libreria del MCP2515 tiene todo el manejo de SPI, solo debes usar los pines de hardware y ella lo resuelve.

Si no quieres renegar con el MCP2515 ( que como dice NoSepComo encarece el costo respecto a RS485), deberias utilizar un PIC 18F con CAN, como puede ser un PIC18F2685 (en 28 pines) o un PIC18F4685 en 40 pines.
Yo use los dos y dan resultados maravillosos.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado jagonru01

  • PIC10
  • *
  • Mensajes: 28
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #8 en: 06 de Septiembre de 2012, 11:18:33 »
Muchisimas gracias de nuevom por vuestras respuestas.

PArece que el bus CAN puede ser un candidato a usar.

La verdad es que tambien he estado pensado en usar algun PIC que traiga implementado el CAN por ejemplo.

MGLSOFT, me has comentado por ejemplo el PIC18F2685. Desde luego, si eso es asi parece lo mas lógico.

En estas condiciones os quisiera preguntar otras cosas. Como comenté al principio, yo he trabajado con el 16F84 y el 16F876.
El hecho de trabajar ahora con un 18F, ¿implica un cambio muy profundo en cuanto a la arquitectura  de los 16F? ¿Y a la hora de programar, cambia mucho la filosofia de unos con respecto a otros?

Otra cosa, ese PIC, el PIC18F2685, ¿Como sale de precio?

Saludos
Jose Antonio

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #9 en: 06 de Septiembre de 2012, 14:41:58 »
Segun la pagina de Microchip Direct, los precios oficiales son

PIC16F876A         3,35 dolares/unidad   (recomiendan optar por PIC16F886, ya que es un producto muy maduro)
PIC18F2685         9      dolares/unidad  (para mi sorpresa aumentaron bastante su precio)
PIC18F26K80        3,45 dolares/unidad   (este lo estoy usando y es genial, por las mejoras que ofrece) ((:-)) ((:-))

Respecto a cuanto es mas dificil programar sobre la linea PIC18F, viniendo de la linea PIC16F, en CCS ni te daras cuenta siquiera.
Pero a decir verdad deberas leerte ambas hojas de datos y si es un proyecto a migrar desde uno a otro PIC, deberas leerte las recomendaciones y diferencias a tener en cuenta, que saca Microchip cuando ofrece un producto por otro.

Para el PIC18F26K80 son solo 600 paginas, asi que relájate !! :D :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #10 en: 06 de Septiembre de 2012, 16:27:01 »
Yo creo que para lo que quieres se puede hacer sin ningun problema con rs485, ya lo descartaste? Hay buenos articulos sobre esto y diseños funcionales, por ejemplo: http://www.neoteo.com/rs485-domotica-al-alcance-de-tu-mano-15810

Yo aun no he trabajado ni con CAN ni RS485, pero lo haré en estas semanas y será con el rs485 para empezar.

Desconectado jagonru01

  • PIC10
  • *
  • Mensajes: 28
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #11 en: 06 de Septiembre de 2012, 18:20:42 »
Segun la pagina de Microchip Direct, los precios oficiales son

PIC16F876A         3,35 dolares/unidad   (recomiendan optar por PIC16F886, ya que es un producto muy maduro)
PIC18F2685         9      dolares/unidad  (para mi sorpresa aumentaron bastante su precio)
PIC18F26K80        3,45 dolares/unidad   (este lo estoy usando y es genial, por las mejoras que ofrece) ((:-)) ((:-))

Respecto a cuanto es mas dificil programar sobre la linea PIC18F, viniendo de la linea PIC16F, en CCS ni te daras cuenta siquiera.
Pero a decir verdad deberas leerte ambas hojas de datos y si es un proyecto a migrar desde uno a otro PIC, deberas leerte las recomendaciones y diferencias a tener en cuenta, que saca Microchip cuando ofrece un producto por otro.

Para el PIC18F26K80 son solo 600 paginas, asi que relájate !! :D :D :D

Hola MGLSOFT.

Veo pues que el PIC18F26K80 ofrece mas prestaciones  que el 18F2685 y encima vale mas barato!!!

Me alegra saber que no va a ser muy diferente del trabajo que he venido realizando con el 16F876 (hace ya unos 2-3 años).

Y bueno, si el PDF son 600 hojas nada mas, me dejas mas tranquilo, je ej.

Desconectado jagonru01

  • PIC10
  • *
  • Mensajes: 28
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #12 en: 06 de Septiembre de 2012, 18:25:16 »
Yo creo que para lo que quieres se puede hacer sin ningun problema con rs485, ya lo descartaste? Hay buenos articulos sobre esto y diseños funcionales, por ejemplo: http://www.neoteo.com/rs485-domotica-al-alcance-de-tu-mano-15810

Yo aun no he trabajado ni con CAN ni RS485, pero lo haré en estas semanas y será con el rs485 para empezar.

Hola jeremylf.

La cuestion es que no sabia que usar, y si con las caracteristicas de lo que me hacia falta quizas con el CAN me es mas facil, pues intentare usar ese, pero en un primer momento me da igual. Es mas, por eso lo pregunte aqui en el foro, para ver si me podian dar un consejo, y la verdad es que estoy muy contento con  las respuestas.

Sinceramente, esto es algo con lo que me he comprometido y realmente lo que quiero es que me sea lo mas facil posible, ya que entre en el trabajo, la familia y demas cosas no me sobra mucho tiempo.

Y ya puestos, me gustaria saber porque ves tu mejor el RS485 en contraposicion al CAN.

Reitero que a priori me da igual uno que otro.

Gracias por tu comentario.

Desconectado jagonru01

  • PIC10
  • *
  • Mensajes: 28
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #13 en: 06 de Septiembre de 2012, 19:41:33 »
Bueno señores, creo que estoy mas oxidado de lo que me esperaba.

Os cuento y por favor no os riais mucho  :oops:

Me pongo  a ver el data sheet pr encima. Perfecto.

Me pongo a ver el proteus que tengo para ir haciendo alguna cosa de simulaciones antes de nada e ir empezando a jugar. Tengo la version 6.9 y por supuesto no trae el PIC18F26K80.  :shock:

Vale, primera cosa.

Sigamos: voy a ver el programador. Yo usaba el TE20 con el ICPROG. Me voy al ICPROG a ver la lista de dispositivos admitidos. NADA para este dispositivo.  :shock:

Empieza la cosa a temblar.

Me da por mirar mi CCS. VErsion 3.2. NADA para este dispositivo.  :shock:

Me da por mirar mi picflash, el cual era el que venia con una placa que compre hace tiempo de la casa Mikroe. NADA. La version es la 5.0.03.  :shock:

Perdonad que pregunte esto: ¿Con lo que tengo puedo hacer algo?.  :oops: :oops: :oops:

De verdad, veo que me he quedado anticuado.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Pregunta acerca de comunicaciones (Posibles CAN o RS485)
« Respuesta #14 en: 06 de Septiembre de 2012, 20:22:23 »
Primer mala noticia, Proteus NO simula Can... :5] :5] :5]
Creo que en la actual version no lo hace todavia...

Por lo que se el formato de grabacion (yo uso ICSP e ICD) deja fuera muchos de los grabadores mas estandar, como es de la linea de muy bajo consumo, tiene algunas cosillas que no dejan de embromar un poco.
Yo lo grabo y hago debug con el ICD3 de Microchip, desde el entorno del CCS.
El viejo ICD de CCS que tengo, no consigue grabarlo... :( :( :(

La version de CCS que uso es la 4.118 y la 4.134, ambas lo tienen a ese PIC. :lol: :lol:

No probe grabarlo con Winpic800, pero podria probarlo, si necesitas...

Todas estas razones pueden llevarte Hacia RS485... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.