Autor Tema: Comunicar 3 PCs con un PIC  (Leído 1789 veces)

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

Desconectado Peliparado

  • PIC10
  • *
  • Mensajes: 14
Comunicar 3 PCs con un PIC
« en: 22 de Marzo de 2005, 13:39:00 »
Buenas:

Les comento que este es mi proyecto, asignado por mi profesor de micro. Les voy a decir cuales son mis ideas y por favor, diganme si estoy muy lejos de la realidad:

1. Utilizo solo un PIC: 16F876A

2. Los voy a conectar por puerto serie, osea que necesitaria 6 pines del micro libres (un puerto B por ejemplo), ya que utilizaria RX y TX para PC1, RX y TX para PC2 y RX y TX para PC3.

3. Necesitaria 3 MAX232.

4. El pic se encargara de dirigir el dato (un caracter, solo quiero mandar caracteres) al PC destino, con sus datos correspondientes (PC origen, datos, PC destino).

5. El software en el computador, programado en lenguaje C, debe decirle al PIC, cual es el dato a mandar y cual es el PC destino.

YA, eso es lo que tengo en mente. Por favor, diganme si estoy en lo correcto, o si me salto algun paso, especialmente tengo dudas en el paso 3 y en el 5.

Muchas gracias de antemano, solo necesito que me digan si es posible hacerlo de la manera en que lo pienso o hay otra forma mas facil.


Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
RE: Comunicar 3 PCs con un PIC
« Respuesta #1 en: 23 de Marzo de 2005, 16:08:00 »
Hola, me parece, a menos que te lo hayan especificado asi, que te convendria poner todos los equipos en una sola red (Bus) y asi gestionar los datos, con ello te ahorrarias 2 max, y solo usarias 2 patas del micro, y ya que ese micro tiene usart tienes el 50 % del trabajo hecho, lo unico que podria complicarte seria el control de colisiones con las pc (ya que con el micro es facil), pero supongo que se puede hacer.

Bueno espero te sirva, cualquier duda, pregunta.

Saludos.
Alejandro

Desconectado fer_zone

  • PIC12
  • **
  • Mensajes: 74
RE: Comunicar 3 PCs con un PIC
« Respuesta #2 en: 23 de Marzo de 2005, 16:33:00 »
Hola, este es un buen proyecto, algunas preguntas: ¿el profesor especifico la forma de hacerlo? tu dices usar un solo micro (mediano) y usarlo como una especie de switch para rs-232, no es mala idea, pero tendras mucho trabajo de software para lograr atender tres señales con un solo micro, es decir, puedes recibir varias peticiones al mismo tiempo.
Al tener solo una usart solo podrias recibir dos peticiones a la vez, una por hard y la otra por soft, ahora bien, si el trafico es más intenso este modelo se complica un poco. Si el proyecto especifica algo sobre esto y piensas que no tendras estos problemas, pues creo que lo que tu tienes en mente puede funcionar bien.

Por otro lado esta la idea de hacer un bus de comunicación, para esto la interface ya no puede ser directamente rs-232, es necesario construir un conversor, por ejemplo rs232 a rs485 (encuentras mucha info y circuitos en la web), al que le podrias agregar un micro más pequeño entre medio, es decir, rs232-micro-rs485
este ultimo puedes usarlo para recibir el dato y direccion del puerto serie y enviarlo (si quieres con agregado de información de redundancia) al conversor rs485. En esta opción el micro solo se encargaria de un solo puerto, pero debes construir un circuito igual para cada PC, programandolo con diferente direccion.

Como ves hay varias forma de hacerlo, tendras que evaluar costos y trabajo
hard-soft que màs se acerque a tus posibilidades. Saludos

Desconectado Peliparado

  • PIC10
  • *
  • Mensajes: 14
RE: Comunicar 3 PCs con un PIC
« Respuesta #3 en: 25 de Marzo de 2005, 18:21:00 »
Gracias por las respuestas. Recien se me quemó el PIC16F876, y compre un 16F877A y me parecio mucho mejor, tengo mas puertos, asi que este es el que voy a utilizar.

La idea de unir los 3 pcs a traves de un BUS es estupenda, dado que no hay problema alguno para identificar quien fue el pc que mandó el dato, porque en la transmision dira el origen, datos y destino.

El problema (grande) es como tu dices: las colisiones, si dos PCs mandan al mismo tiempo, que pasaría?, como tu dices funcionaria de pelos, pero solo pensando o restringiendo la comunicacion a un solo pc por vez.

Pensandolo bien ... es posible que colisionen los datos ?, solo con 3 pcs ?, tal vez si conectara una red entera depronto es mas posible, pero cual es la probabilidad de que se unda "enter" en los 3 pcs AL MISMO TIEMPO ?, bueno, es un pensamiento no mas, soy un novato mas con dudas.

Desconectado el-dani

  • PIC10
  • *
  • Mensajes: 12
RE: Comunicar 3 PCs con un PIC
« Respuesta #4 en: 25 de Marzo de 2005, 19:57:00 »
Hola, primero que nada me quiero presentar ante el foro, ya que es la primera vez que respondo algo, aunque ya he visto muchas respuestas y veo que el nivel y la calidad de la gente es realmente estupendo.
Ahora bien espero poder aportar algo que te sirva a tu proyecto. Quisiera también decirte que normalmente hay muchas formas de hacer un proyecto y no por eso una peor que otra es un tema de ideas. Por ejemplo para tu trabajo yo haría lo siguiente: primero que nada el max232 te soporta hasta 2 puertos, es decir convierte 2 TX y 2 RX, esto es para poder convertir tambien las señales de RTS y CTS que en tu caso no las usarias, pero yo utilizaría los max232 y del lado del pic pondria buffers como el 74hc244 por ejemplo para "unir" cada PC con el pic de una en una, con esto utilizarias la USART del pic que como decia el colega ya tenes todo resuelto y para solucionar el tema de las colisiones, tenes que crearte un "master" que sería el Pic, con lo cual habilitas el PC-1 y comunicas con él, luego el PC-2 y luego el PC-3, de esta forma los vas "escaneando" y cuando un PC tiene algo que comunicar al pic espera su turno, este es un sistema muy usado y que yo particularmente he utilizado mucho. En fin espero que te sirva de algo y cualquier cosa a las órdenes

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
RE: Comunicar 3 PCs con un PIC
« Respuesta #5 en: 26 de Marzo de 2005, 06:11:00 »
Hola, podrias hacer un sistema multimaster, en el que cada uno de los integrantes del bus testean la inactividad de la red, si esta permanece inactiva un determinado tiempo, toman el control de la comunicacion y hacen la peticion a cualquiera de los otros integrantes del bus, esto te permite que no tengas que preocuparte por si dos pc tratan de enviar un mensaje, ya que en el software, te encargarias de ver si el bus esta desocupado.
Respecto a lo que mencionan de hacer esto en 485, me parece mucho mejor, ya que te permitiria independizarte de las distancias (por lo menos hasta los 1000 metros) entre los integrantes del bus.

Saludos