Logo CIDIS  

CONVERTIDOR V35-RS232


Las V35 son interfaces utilizadas en trasmisión de datos sincronicos desde 56 kbps hasta varios Mbps. Su funcionamiento está basado en un mixto de signales balanceadas (datos y clocks) y signales "simples" (lineas de handshake). Una signal balanceada se transmite utilizado la diferencia de voltaje entre dos cables (A y B). Por ejemplo:

DATAAB
1+0.35Vdc-0.2Vdc
0-0.2Vdc+0.35Vdc

Mientras que las lineas de handshake utilizan la misma señalización que los puertos seriales RS232:

DATAVOLTAJE
1-3 hasta -12 Vdc
0+3 hasta +12 Vdc

La interfaz V35 incluye 3 clock diferentes, sin embargo en nuestro proyecto solo hemos utilizado solo uno, el clock de RX (V y X) que tiene la ventaja de estar ligermente anticipado respecto al clock de TX (Y y AA). Ambos clock son generados por el DCU.

La interfaz serial está configurada para 115200 mientras que el DCU a 128000. Esa diferencia es esencial para operar la conversión entre transmisión sincrónica y asincrónica. Es posible programar el conversor a velocidades menores cuidando siempre que la velocidad de los DCU sea mayor que la del puerto serial.

El programa opera con una unica interrupción, que se ejecuta sobre el canto de subida del clock de RX. Una vez ejecutada, la rutina se encarga de:

  1. Transmitir el bit de datos sobre la V35 (si hay)
  2. Leer 1 bit desde la V35
  3. Prepara el prox bit de datos (V35Out)
  4. Analiza el bit recibido (V35Bit)
  5. Verifica si ha llegado un byte desde la serial
  6. Transmite por la serial si ha terminado de recibir el byte por la V35

El manejo del puerto serial es ejecutado directamente por el PIC, mientras que la transmisión y recepción sincrónica tiene que ejecutarse en el programa. Los bytes son trasmitidos segun el esquema 1bit start - 8 bit datos - 1 bit stop, empezando por el bit menos significativo.
Cada 8 bytes se introduce una pausa poniendo en 0 CTS y DSR. Siendo que despues de bajar el valor de CTS y DSR el hardware de la serial sigue trasmitiendo el contenido de su buffer (tipicamente 16 bytes) esperamos que la recepción de datos por la serial se interrumpa (poninedo en 0 ContWait por cada byte recibido) y contamos 16 pulsos de clock (bit 5 de ContWait=1) antes de volver a poner a 1 CTS y DSR. Esa pausa de 1,5 bytes cada 24 bytes recibidos es necesaria para equilibrar el proceso de conversión.
NOTA: Una de las mayores limitaciones ha sido la velocidad del PIC de 20 Mhz, la cual nos ha obligado a reducir grandemente la cantidad de instrucciones que podemos ejecutar en la interrupción.


CODIGO FUENTE DEL PIC: V35.ASM


HARDWARE

Cantidad Parte
1 PIC 16F628
1 MAX232
1 LM393
1 2N3904
1 Cristal 22 Mhz
2 Condensadores 22 pF
5 Condensadores 1 uF
1 Resistencia 10 K
4 Resistencias 1 K