Este conversor de señal RS-232 a paralelo es un receptor de datos en serie compatible con la norma RS-232C. Se puede configurar la velocidad entre 1200, 2400, 4800 y 9600 bps. El formato es fijo, a 8N1, y la adaptación de tensiones entre TTL y RS232C es pasiva.
Esquema eléctrico del conversor de señal rs232 a paralelo
Como se ve, todo el sistema se basa en el microcontrolador PIC16F84A y un puñado de resistencias y condensadores con funciones poco importantes. La recepción de los datos en serie y la posterior conversión a paralelo se efectúan dentro del PIC, así como la generación de los tiempos de retardo para las diferentes velocidades.
La resistencia de 10 kΩ a la entrada de señal se encarga de adaptar los niveles de tensión del bus RS232C a TTL. Dado que el estándar RS232 estipula que un uno lógico (o marca) corresponde a un voltaje negativo comprendido entre -3 y -25 V y un cero lógico (o espacio) corresponde a un voltaje positivo comprendido entre 3 y 25 voltios, a la entrada del PIC tendremos un estado lógico invertido, siendo el cero expresado por +V y el uno por 0 V. Pero como aquí todo se resuelve por software, esto no es para hacerse mala sangre.
Tabla de velocidad de conexión
La velocidad de conexión vendrá condicionada por el switch de 4 posiciones marcado en el esquema como S1.
1 a 8 pines cerrado 1200 bps
2 a 7 pines cerrado 2400 bps
3 a 6 pines cerrado 4800 bps
4 a 5 pines cerrado 9600 bps
Nota: Solo podrá estar conectada la línea de la velocidad que deseemos usar; las demás líneas deben permanecer abiertas.
Funcionamiento del conversor de señal RS232 a paralelo
En el encabezado se aclaran los pines del puerto A para saber dónde se conectan. Luego se definen las equivalencias. La clásica llamada org que indica a partir de qué posición comienza a cargarse el programa en la memoria para saltear el vector de interrupción.
Desde la etiqueta “Start”hasta el siguiente “Retlw”
Podemos ver la rutina de retardos, empleada para generar la temporización entre cada bit, así como la inicial del bit de arranque. Recordemos que siempre es mejor leer el bit en su parte central, por lo que si demoramos un tiempo total de bit y medio al bit de arranque, al primer bit de datos le atinaremos en el medio del mismo.
Desde la etiqueta “Recibir”hasta el próximo “Retlw”
Tenemos la rutina que se encarga de recibir los datos por el pin serie y colocarlos en la variable recep, la cual actúa como un buffer de recepción. Empleamos una forma muy peculiar pero práctica para completar la palabra de 8 bits partiendo de uno solo seriado. Colocamos el estado de la línea serie en el indicador de Carry del CPU.
Luego rotamos la palabra recep una posición a la derecha, con lo que conseguimos que todo su contenido se desplace. Pero como esta instrucción utiliza el carry como intermedio de un extremo al otro, logramos que el bit recibido aparezca en la palabra recep. Estas ocho veces conforman la palabra total recibida.
Desde la etiqueta “Inicio”hasta el siguiente “Clrf ptob”
El programa configura los puertos, limpia el buffer de recepción y pone a cero todos los bits de la salida paralela.
Desde la etiqueta “Sel” hasta la instrucción “Goto sel”
El programa lee el selector de velocidad de comunicaciones y carga en las variables retsb y reteb los valores necesarios para lograr el timming adecuado a la velocidad escogida. Esto lo logra dirigiendo el programa hacia sel12, sel24, sel48 o sel96 según corresponda.
Luego de establecerse la velocidad de comunicación, el programa queda en un pequeño ciclo infinito, desde la etiqueta ciclo hasta la orden goto ciclo, en el cual lo que se hace es quedar a la espera de un dato vía serie, recibirlo y colocarlo sobre los pines del puerto B del micro.
Como sale a simple deducción, el selector de velocidad solo es leído al arrancar el programa. Y una vez interpretado, no es vuelto a consultar hasta que se reinicie el mismo. Por ello, si se cambia de velocidad, será necesario o bien aplicar reset al micro o bien apagarlo y volverlo a encender.
Con resistencias de 470 Ω y diodos LED es posible indicar visualmente la palabra recibida. Si bien el microcontrolador es de tecnología CMOS, alimentado con 5V puede considerarse como que funciona en TTL y por ello puede ser instalado en un circuito de lógica TTL.
Utilizamos cookies propias y de terceros para garantizar el funcionamiento de la web, medir su uso y mejorar nuestros servicios. Puede aceptar todas las cookies, rechazar las no necesarias o configurar sus preferencias. Política de cookies
Configurar cookies
Necesarias para que la web funcione correctamente. No se pueden desactivar desde este panel.
Ayudan a medir el uso del sitio y mejorar sus contenidos.
Permiten publicidad, medición de campañas o personalización de anuncios.
Guardan preferencias o permiten contenido externo no necesario.