TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: dogflu66 en 12 de Enero de 2011, 14:15:39

Título: Concentrar 3 entradas RS232 en 1 sola
Publicado por: dogflu66 en 12 de Enero de 2011, 14:15:39
Estoy pensando en como podría concentrar tres entradas de datos RS232 y posteriormente enviarlas por una única salida RS232. ¿Existe algo en el mercado que lo haga?.
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: Nocturno en 12 de Enero de 2011, 14:18:09
¿Cabe en una única salida lo que llegue por las tres entradas?, ¿es que vas a triplicar los baudios a la salida?
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: RICHI777 en 12 de Enero de 2011, 15:00:15
Hola, no se si es correcto lo que te vaya a decir, en mi caso necesitaba manejar un GPS, un módulo GPRS o dos dispositivos adicionales series, como el micro no tenia tantas UARTs incorporadas no me quedo otra opción que colocar un 4052 ( Mux/Demux)
Eso si solo puede estar activa una sola comunicación al mismo tiempo.

Saludos !
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: dogflu66 en 12 de Enero de 2011, 16:07:33
Es algo parecido a lo que indica RICHI777, son tramas que se repiten 1 vez por segundo y son de unos 30bytes de media a 4800Baudios. Y si se pierde alguna no pasa nada, ya que repite tramas durante varios segundos. Tenía pensado crear 3 búfer con sendos micros, cada uno conectado (a un único micro maestro) a un bus común de salida y 1bit para cada uno de selección y BIT indicador de datos en búfer. Pero esto es mucho trabajo, era por si alguien había encontrado algún tipo chip que lo hiciera o en su defecto tres uart independientes con su búfer incluido.
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: RICHI777 en 12 de Enero de 2011, 16:26:18
Hola, tal vez algun micro con dos UART y agregar algun UART externo ( Maxim tiene uno con conexión SPI ), lo que si no conozco que tenga buffer de muchos bytes.

Saludos !
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: Nocturno en 13 de Enero de 2011, 02:42:33
Para 30 bytes y 4800 baudios, creo que te podría servir perfectamente meterle las UART por software.
Si utilizas un micro que tenga 3 interrupciones externas, las combinas con un Timer para conocer los anchos de los pulsos y ya lo tienes.
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: dogflu66 en 13 de Enero de 2011, 10:11:45
Pero son tramas completas, no puedo mezclar los bytes recibidos. Las tramas tienen cabecera y fin de trama, si se mezclan los bytes ya no son operativas
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: dogflu66 en 13 de Enero de 2011, 10:59:44
Meditando un poco más lo que indica Manolo, seria crear una función que procesa las tres interrupciones. Cuando se produce una interrupción la función toma el valor del timer, lo asociado al Pin que provocó la interrupción y esperamos el siguiente cambio de estado, volvemos a tomar el valor del timer y, calculamos para ir obteniendo el BIT de cabecera, BIT que va conformando el byte de datos y BIT de parada. Que se irán almacenado los bytes en respectivos búfer tipo fifo, que otra función se encargara de ir vaciando de forma ordenada por tramas completas. Resumiendo; crear una función de Rx de tres entradas que maneja la capa de bajo nivel del Rs232. Esta función genera tres búfer internos que son vaciados de forma ordenada por una salida de Tx tipo Rs232, en este caso para simplificar software mejor mediante modulo uar. Y todo esto un solo “micro”. Necesitaría un micro con mucha memoria ram  para alojar los búfer y posiblemente 40Mhz de reloj, tendría que ser seguramente de la familia 18....?.
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: Nocturno en 13 de Enero de 2011, 12:13:46
Sí, pero no creo que necesites un micro tan cañero. Al fin y al cabo son 4800 baudios. Por mucho que las tramas no paren de llegar, cada bit dura 208us, tiempo en el que a cualquier micro le dará tiempo a muchas cosas.
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: MGLSOFT en 13 de Enero de 2011, 12:52:51
Hay placas com multipuertos o mejor aun placas que se conectan a ethernet y tienen hasta 24 ports configurables con velocidades independientes cada uno.
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: Nocturno en 13 de Enero de 2011, 13:07:29
Estoy pensando que si estás seguro que siempre serán 4800 baudios, no necesitarás interrupciones externas.

Tu hardware se limitaría a un Timer, programado para que interrumpa cada 208us. En esa interrupción miras los tres pines de entrada. En estado de reposo verás un "1". Cuando uno de ellos te enseñe un "0" sabes que comienza a recibir un byte; en las 8 interrupciones siguientes vas completando el byte y luego compruebas que ha llegado un "1" como bit de stop.

Da igual que el timer no se sincronice con el flanco de bajada o subida, porque como es asíncrono, la única precaución a tomar es que los 4800 baudios corran exactamente a ese ritmo.
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: scientist en 13 de Enero de 2011, 14:02:10
Ese 4052 es un excelente opcion, no lo conocia, justamente necesita una solucion de ese tipo, muchas gracias!!
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: RICHI777 en 13 de Enero de 2011, 17:27:41
Hola, el comentario de Nocturno es super válido, lo que se estila es centrar la lectura del bit. Es recomendable cuando se implementa una UART por soft setear el pin de RX como interrupción por flanco descendente, para poder detectar el bit de start. Una vez ocurrido esto se espera por la mitad del bit, en tu caso 104 us que es la mitad de los 4800 baud y producir a partir de lecturas periodicas por 208 us, eso te asegura que siempre leas los 9 bits restantes en la mitad. Tecnicas mas complejas implementan mas lecturas por bits manejadas por una maquina de estados para poder eliminar ruidos.

Citar
Ese 4052 es un excelente opcion, no lo conocia, justamente necesita una solucion de ese tipo, muchas gracias!!

Si es una buena opción, en mi caso tuve que colocar resistencias de pull-up es las lineas TX ya que los canales que estan desactivados se leen como estados 0 y el receptor me los toma como bit de start o datos breaks.

Saludos !
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: scientist en 13 de Enero de 2011, 18:26:54
Citar
Si es una buena opción, en mi caso tuve que colocar resistencias de pull-up es las lineas TX ya que los canales que estan desactivados se leen como estados 0 y el receptor me los toma como bit de start o datos breaks.
gracias por el tip  ;-)
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: dogflu66 en 13 de Enero de 2011, 21:17:31
Ok, haré unas pruebas con tranquilidad porque tengo que terminar algunas cosas antes, pero prometo informar de la solución.
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: darck_khronos en 13 de Enero de 2011, 21:41:27
Podrias usar rs485
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: dogflu66 en 14 de Enero de 2011, 05:32:18
¿Como se ria con el RS485?.
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: stk500 en 14 de Enero de 2011, 08:10:56
Hola Dogflu66!
lo puede hacer, si te fija en el CANBUS,SNAP y MODBUS, son protocologo escrito para comunicarse entre si, pero es un trabajo muy jodido hacerlo, poner todos los pic que se comuniquen entre si. osea todos modulo MASTER/SLAVER, ya el DMX512 trabaja asi, no es que quiero que te meta ahora en el DMX512  :D :D, sino para que tenga una idea, y como dice Manolo, trabajando al mismo Baudrate no tendra ningun problema. esa es la historia de los protocologo, todos se comunicacion con su mismos Baudrate.

Saludos

Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: dogflu66 en 14 de Enero de 2011, 15:21:48
En este caso el protocolo no me asusta.:mrgreen:
El problema lo veo en que tengo que leer los tres puertos al mismo tiempo, y con el RS485 hay que compartir el tiempo en el bus, o sea, no puedo hacer las tres cosas a la vez. Bueno, con el otro sistema tampoco, pero se aprovecha toda la potencia del micro, mientras que con el RS485 no se puede. A no ser que fuesen 3 uart con sus respectivos búfer trabajando bajo RS485 como salida de datos y la entrada de datos fuese independiente al RS485. O si no estoy en lo cierto, me lo tendrían que explicar científicamente.
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: MLO__ en 14 de Enero de 2011, 15:44:04
Hola.

RS485 full duplex .... pero no se pueden leer las 3 tramas al mismo tiempo. Si hay que leer al mismo tiempo ... toca implementar las USART por soft como dice el maestro Noc.

Saludos
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: BrunoF en 14 de Enero de 2011, 16:46:08
Da igual que el timer no se sincronice con el flanco de bajada o subida, porque como es asíncrono, la única precaución a tomar es que los 4800 baudios corran exactamente a ese ritmo.

No entendí bien eso. El bit de START del protocolo RS232 existe precisamente para poder sincronizar y mantener el error de tiempos entre las partes que se comunican lo mínimo posible. Si no sincronizas el bit START de cada entrada con el timer, seguramente vas a recibir datos erróneos cada cierto tiempo.

Una opcion sencilla seria, una vez obtenidas las señales TTL de entrada seriales, someterlas a una triple compuerta AND y el resultado a la entrada hardware de la USART del uC. Obviamente si mas de un dispositivo transmite a la vez, los daños van a ser probablemente destruidos. Fuera de eso, si puedes identificar a cada dispositivo por tan solo el contenido de sus mensajes, no lo veo inviable.

Saludos.

Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: Nocturno en 14 de Enero de 2011, 17:06:18
A lo que me refiero, es que si miras la señal justo a una frecuencia de 4800 baudios, dará igual si pillas el bit justo al principio, en medio, o justo al final, porque todos los bits los pillarás a la misma altura.
De todas formas, si se sincroniza con el flanco y se espera medio periodo, será mucho más fiable.
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: KALLITOS en 15 de Enero de 2011, 10:04:13
Por si te sirve  :lol:.
http://ww1.microchip.com/downloads/en/DeviceDoc/DS-61156B.pdf

Saludos
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: dogflu66 en 15 de Enero de 2011, 12:27:16
A un que me sirviera, no tengo herramientas para poder trabajar con el. :8}
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: MLO__ en 15 de Enero de 2011, 12:33:35
Por si te sirve  :lol:.
http://ww1.microchip.com/downloads/en/DeviceDoc/DS-61156B.pdf

Saludos

 :shock:

Que belleza!!!!!!
Título: Re: Concentrar 3 entradas RS232 en 1 sola
Publicado por: 1Roland1 en 13 de Abril de 2011, 22:39:17
Hola compañeros

Estoy haciendo mi proyecto de tesis que consiste en tomar la lectura de los medidores de luz a travez de la red celular gsm, los medidores son electronicos y estos son los que se estan instalando actualmente en mi pais ecuador, pero a pesar de ser electronicos la lectura es analogica y se la toma de forma manual. Ya diseñe el circuito microcontrolado que cuenta los pulsos que envia este medidor y logro envir la lectura de los KWH por medio de sms, adicional puedo cortar y reconectar la energía sique no se ha pagado la mensualidad por consumo. Todo este proceso funciona perfecto pero para un medidor.
Ahora lo que quiero es poder tomar la lectura con un solo modem gsm de varios medidores por lo menos unos 5, enviando un comando via sms que distinga de cual medidor quiero tomar la lectura, cortar o reconectar el suministro. Pero no se como hacer para poder comunicarme con los otros pics que van a estar instalados en cada medidor y pasar sus lecturas al pic principal y este enviar via sms a traves del modem dicha lectura.
Espero sus sugerencias amigos, no me fallen
Gracias