domingo, 9 de agosto de 2020

Módem Everex Traveller 2400i

La palabra "módem" es un acrónimo de modulador-demodulador. El aparato envía una onda llamada portadora modificada por una señal llamada moduladora que es la que contiene los datos a transmitir. En el otro extremo de la comunicación otro módem se encarga de recuperar la señal moduladora con los datos. Al enviar los datos se produce la modulación y al recibirlos la demodulación. La mayor parte de sistemas de telecomunicación utilizan un método u otro de modulación-demodulación pero el nombre de "módem" se asocia principalmente a los módem que usan la línea telefónica para la comunicación. Estos aparatos permitieron realizar comunicaciones de datos antes de que se implantara internet como conexión de teletipos, acceso a ordenadores remotos, sistemas de BBS, Videotex, FidoNet o las primeras conexiones a internet. Hoy día aún siendo fácil tener conexión a internet en cualquier sitio puede ser útil conectar a un ordenador u otro dispositivo utilizando solamente una línea telefónica.

La velocidad de los módem se puede medir en bits o en baudios. Los baudios indican el número de símbolos que se pueden enviar por segundo. Cada uno de estos símbolos puede representar un número mayor o menor de bits dependiendo del sistema, por lo que no hay una correspondencia directa entre baudios y bits a excepción del sistema cuyos símbolos solo transmitan un bit. Los módem utilizan diferentes estándares, por ejemplo mi primer módem, del año 1993, utiliza el estándar V.22bis y tiene una velocidad de 2400 b/s y 600 baudios. Mi último módem del año 1999 utiliza el estándar V.90 y tiene 56 Kb/s y 8000 baudios de recepción y 33,6 Kb/s y 3429 baudios de envío. Luego empezaron a aparecer móviles que permitían hacer de módem y módems USB que usaban la red móvil.

El módem de 2400 b/s es un Everex Traveller 2400i. Es una tarjeta ISA de 8 bits e incluye capacidades de fax. En la parte externa tiene dos conexiones RJ11: en la primera (Phone) se conecta la línea telefónica y en la segunda (Line) se puede conectar un teléfono para utilizar la línea telefónica cuando no esté ocupada por el módem/fax.


El circuito integrado principal está cubierto por una pegatina donde se indica que el modelo de la tarjeta es R2400B y cumple con las regulaciones de la FCC (Federal Communications Comision) (Comisión Federal de Comunicaciones) que exigen que el aparato no emita interferencias dañinas y sea capaz de recibir interferencias de otros aparatos.

Quitando esta pegatina quedan a la vista las inscripciones del chip, donde se ve que es un módem empotrado Conexant RC224ATL del año 1992. Este circuito integrado emula el UART 16C450 e implementa el estándar V.22bis que permite la transmisión de 2400 b/s usando 600 baudios. También implementa el estándar Bell 212A a 1200 b/s y sistemas de fax.

Para cumplir con las regulaciones de la FCC y proteger el chip, este no se conecta directamente a la línea telefónica sino a través de tres componentes:

En la documentación del chip, en la página 98, se muestra un circuito de ejemplo de conexión del chip a la línea telefónica utilizando esos componentes.

Junto al chip RC224ATL se encuentra el optoacoplador 4N35 conectado entre la línea telefónica y la entrada RING del chip. Esta entrada recibe la señal de llamada de más de 40 voltios y entre 15 Hz y 68 Hz. El optoacoplador convierte la señal eléctrica en luminosa y luego la convierte de luminosa a eléctrica, aislando eléctricamente al chip de la línea telefónica.

Algo más a la derecha está el transformador. Los transformadores tienen dos bobinas enrolladas en un núcleo ferromagnético y aisladas entre si. Cuando pasa una corriente alterna por una de ellas se produce un campo magnético variable cuyos cambios inducen una corriente eléctrica análoga en la otra bobina. La corriente continua al no cambiar no produce este efecto. Los transformadores se suelen usar para modificar el voltaje de la corriente alterna utilizando bobinas con diferente número de vueltas del hilo conductor alrededor del núcleo.

Si las bobinas del transformador son iguales siguen teniendo las características útiles de estar aisladas, no dejar pasar la corriente continua y poder transmitir una corriente eléctrica alterna a través de un campo magnético. Este tipo de transformador recibe el nombre de transformador de aislamiento y se utiliza en el módem para aislar el chip de la línea telefónica. Los dos cables de la línea telefónica se conectan a una bobina y la entrada y salida de datos del chip a la otra. Esto permite la comunicación entre el chip y la línea telefónica manteniéndose en circuitos electrónicos distintos y aislar al chip de la corriente continua suministrada por la línea telefónica para la alimentación de terminales telefónicos.

Detrás del transformador se encuentra el relé DSS41A05, versión del año 1993. Este relé mantiene la línea telefónica desconectada y está controlado por la salida OHRELAY del chip RC224ATL. Cuando el chip activa esta salida el relé conecta la línea telefónica.

Otro componente que se encuentra junto al chip RC224ATL es un resonador de 16,000312 MHz, de la empresa Raltron, que marca su frecuencia de funcionamiento. Es curioso que no sea de exactamente 16 MHz y en otros módems también se usaran resonadores con frecuencias no exactas. No me quedó claro la razón de ese diseño, si alguien lo sabe le agradecería que dejara un comentario explicándolo.

Atrás de la tarjeta hay un amplificar de sonido LM386N-1 y conectado a él un altavoz que sirven para oír los sonidos de marcación del número de teléfono y establecimiento de la conexión. El amplificador se conecta al chip RC224ATL en su salida SPKR (Speaker Analog Output).

Al otro lado del altavoz hay una pequeña memoria EEPROM de 1024 bits AT93C46 para que el chip RC224ATL almacene algunos parámetros de configuración.

En la parte de abajo se encuentran cuatro componentes interconectados entre si y con otras partes de la tarjeta para interacturar con el bus ISA:

Los módem se comunican con el ordenador como puertos serie. Por defecto el sistema operativo tiene cuatro puertos serie con una dirección de entrada/salida e IRQ definidas. Esa dirección es el principio de un rango de ocho direcciones asignadas al puerto serie. Dependiendo del sistema operativo tienen un nombre distinto. En la documentación del módem se indica que jumpers hay que colocar para utilizar cada uno de estos puertos serie con su dirección e IRQ.

LinuxWindowsDirección I/ORangoIRQ
/dev/ttyS0COM10x3F80x3F8 - 0x3FF4
/dev/ttyS1COM20x2F80x2F8 - 0x2FF3
/dev/ttyS2COM30x3E80x3E8 - 0x3EF4
/dev/ttyS3COM40x2E80x2E8 - 0x2EF3

Al lado de los jumpers se encuentra la puerta NAND de ocho entradas. Cuando todas sus entradas se activan con valor uno su salida se activa con valor cero. Debajo de este chip hay diez contactos para el bus de direcciones del bus ISA. Los tres primeros contactos están unidos al chip RC224ATL en sus entradas HA0-HA2 para elegir un registro de los ocho disponibles. Los siete contactos restantes están unidos a entradas de la puerta NAND, dos de ellos a través de jumpers.

El chip GD74LS04 se encuentra a la derecha de la puerta NAND y tiene seis puertas NOT que son usadas para invertir algunas entradas de la puerta NAND en determinadas circunstancias.

El bus ISA tiene veinte contactos de direcciones pero la tarjeta no necesita conectarse a todos porque solo puede configurarse para cuatro direcciones y sus rangos. La máxima dirección es 0x3F8, en binario 1111111000, diez dígitos que se leen con los primeros diez contactos. Los contactos están ordenados de izquierda a derecha, al revés que el número binario escrito, cuyos dígitos van de derecha a izquierda. Para emparejarlos debemos dar la vuelta al número, por ejemplo 1111111000 quedaría 0001111111.

HexadecimalBinarioContactos
0x3F811111110000001111111
0x2F810111110000001111101
0x3E811111010000001011111
0x2E810111010000001011101

Podemos ver que las cuatro direcciones tienen los tres primeros dígitos a cero, por lo que pondrán las entradas HA0-HA2 del chip RC224ATL a cero y seleccionarán el registro de lectura y escritura para la comunicación con el módem. En este registro se escribirán los datos a enviar al módem y se leerán los datos recibidos de este. El resto de combinaciones posibles de estos tres dígitos, que forman las otras siete direcciones del rango, seleccionarán los otros siete registros con información de estado y configuración del módem.

De los otros siete contactos los que cambian de valor dependiendo de la dirección son el segundo y el penúltimo, el resto siempre tienen el valor uno. Estos dos contactos se unen a la puerta NAND mediante jumpers para elegir la dirección de la tarjeta. Por cada contacto el jumper se puede poner en dos conexiones diferentes: una conecta directamente con la puerta NAND para el valor uno y otra a través de una puerta NOT en el chip GD74LS04 para el valor cero. De esta forma cuando se recibe un cero la puerta NOT lo convierte en uno y activa una entrada de la puerta NAND. Esto permite que las entradas de la puerta NAND se activen tanto con los unos como con los ceros de la dirección del bus.

Por el otro lado se pueden ver cuatro conectores al bus ISA: GND, +5V, IRQ3, IRQ4 y CLK. También se puede ver como existen conexiones entre los jumpers y la puerta NAND. Conectando los jumpers necesarios se activarán la conexión IRQ y las conexiones de direcciones que corresponden al puerto elegido.

Por ejemplo en la siguiente imagen se puede ver marcado en rojo la conexión entre el conector IRQ3 y el segundo jumper empezando por la izquierda. Para evitar la pista del primer conector del bus ISA hace un pequeño salto por el anverso de la tarjeta. Finalmente se conecta a la salida HINT del chip RC224ATL para que este pueda enviar la señal de interrupción.

A continuación se muestra un resumen de los jumpers, el conector que unen y el valor que le dan. Los conectores de direcciones de memoria se enumeran del 0 al 9:

JumperConectorValor
1IRQ41
2IRQ31
3Dirección Memoria 80
4Dirección Memoria 81
5Dirección Memoria 40
6Dirección Memoria 41

Para configurar la tarjeta para que use por ejemplo el segundo puerto serie (/dev/ttyS1 - COM2) con la dirección 0x2F8 y la IRQ 3 deberemos conectar jumpers en las conexiones 2, 3 y 6.

Cada uno de los jumpers tiene una inscripción con dos números para configurar el puerto serie sin tener en cuenta la IRQ y la dirección de memoria. Estos números indican un número de puerto serie según los nombres que reciben en Windows. Para configurar la tarjeta con un número de puerto es necesario poner jumpers en todas las conexiones que contengan ese número de puerto. Para configurar el COM2 deberemos poner jumpers en las conexiones que tengan un 2: 1/2, 2/4 y 2/4. El resultado es el mismo que configurando por IRQ y dirección de memoria.

LinuxWindowsJumpers
/dev/ttyS0COM11/2, 1/3 y 1/3
/dev/ttyS1COM21/2, 2/4 y 2/4
/dev/ttyS2COM33/4, 1/3 y 1/3
/dev/ttyS3COM43/4, 2/4 y 2/4

A la derecha se encuentra el transceptor de bus octal. Está conectado a los ocho conectores del bus de datos del bus ISA y se encarga de la transferencia de datos entre el chip RC224ATL y el bus. A continuación, a la izquierda, se encuentran otros dos conectores: I/O CH RDY y AEN. AEN (Address Enable) se activa cuando el DMA (Acceso Directo a Memoria) está activado. Este conector está unido a una puerta NOT del chip GD74LS04 cuya salida va a la octava y última entrada de la puerta NAND para que cuando no esté activo contribuya a activar la puerta NAND. El transceptor tiene su entrada DIR conectada a la salida HDIS del chip RC224ATL. El estado de esta entrada indica la dirección de los datos, entrada o salida.

Debajo del chip se puede ver una inscripción de copyright de 1991 aunque como se ha visto anteriormente el chip RC224ATL es del 1992 y el relé de 1993. El módem debió fabricarse en 1993 con el diseño de placa de 1991.

El transceptor y el chip RC224ATL son activados por la salida de la puerta NAND cuando sus entradas son activadas por la dirección configurada del bus ISA y el conector AEN no activo. Una vez activado el chip RC224ATL se realiza la lectura y escritura en el registro indicado por la dirección del bus ISA en sus entradas HA0-HA2. Si han sido puestas a cero por la primera dirección de entrada/salida, seleccionando el registro de lectura y escritura, se realizará la comunicación con el módem. El resto de direcciones del rango asignado al puerto serie permiten acceder al resto de registros de estado y configuración del módem. Por ejemplo en Linux con el comando inb se pueden leer los registros de 8 bits y con outb escribirlos. En Debian estos comandos se encuentran en el paquete ioport.

# inb 0x02f9

13

La salida es en decimal, con el comando bc se puede mostrar en binario para ver cada uno de los bits activados del registro. No se muestran los ceros a la izquierda.

echo "obase=2; `inb 0x2f9`;" | bc

1101

Utilizando los enlaces inw/outw o inl/outl se pueden leer o escribir 16 o 32 bits para manipular registros de estos tamaños. También se pueden usar los parámetros --read, --write o --size para indicar la cantidad de bits.

Por el reverso de la tarjeta se ven siete conectores al bus ISA: IOR, IOW, GND, -5V, +5V, RESET DRV y GND. Los conectores IOR e IOW que activan la lectura y la escritura en el bus de datos están directamente conectados a las entradas HRD y HWT del chip RC224ATL. También se pueden ver algunas conexiones entre los chips y el resto de la placa.

Con este repaso de la electrónica del módem ya sabemos como funciona este modelo o similares y podemos repararlo si tiene algún componente dañado. Ya está configurado para instalarlo en un ordenador que tenga al menos una ranura ISA y a continuación podremos probar a realizar comunicaciones módem a módem.

No hay comentarios:

Publicar un comentario