Hoy por hoy no debe ser un secreto para nadie que estamos en la era de la informática. El desarrollo en este sector de la producción aumenta con el tiempo, y su influencia es patente en todos los órdenes de la vida. Uno de los sectores más beneficiosamente afectados es el de las comunicaciones. | AMSTRAD Y RS 232: UN MATRIMONIO FELIZ Continuando con el tema del RS 232, y hablando ya más concretamente de AMSTRAD, nos ha llegado el interface serie RS 232 C, fabricado por M.H.T. Ingenieros. Como prácticamente todas las expansiones que hay en el mercado para los AMSTRAD CPC, se conecta directamente al bus de expansión, sin necesidad de cable paralelo. El soporte del software que permite la comunicación es una ROM, con lo cual el hecho de tener conectado este periférico no limita la memoriaRAM disponible. El manejo es bastante sencillo y está enfocado desde tres puntos de vista: 1) BASIC. Es totalmente posible utilizar el interface RS 232 C por medio de comandos residentes (RSX), los cuales, como ya sabréis, se escriben precedidos de una barra vertical. Mediante estos comandos es posible determinar la velocidad de transmisión, la de recepción, el control de paridad, la longitud del bit de parada y la longitud en bits de la palabra a transmitir. Además, podemos transmitir y recibir carácter a carácter o por bloques, así como redirec-cionar la impresora hacia el RS 232 (por ejemplo, para utilizar una impresora con conexión serie). Los comandos disponibles son los siguientes: - SFORM: permite modificar los parámetros de transmisión. Las velocidades disponibles son 50, 75, 110, 134, 5, 150, 300, 600,. 1.200, 1.800, 2.000, 2.400, 3.600, 4.800, 7.200, 9.600 y 19.200 baudios. Se puede verificar la paridad par, paridad impar o suprimir la verificación. También podremos elegir la longitud del bit de parada ente 1, 1,5 y 2, y la cantidad de bits de cada dato entre 5, 6, 7 y 8.
- SSEND: permite enviar un carácter simple, pu-diendo fijar el usuario el tiempo durante el cual se intentará enviar el carácter. Si pasado ese tiempo el carácter no pudo ser enviado, se retorna con un código de error.
- SRECB: permite recibir un carácter simple. Se puede especificar el tiempo de espera de forma semejante al comando anterior.
- BREAKSEND: este comando envía un Break por la línea de tranmisión.
- OUTSTRING: semejante a SSEND, pero envía una cadena de caracteres de una vez. También se puede fijar el tiempo de espera, y además el carácter que marca el fin de cadena.
- INSTRING: permite recibir una cadena completa. Posee las mismas opciones que OUTSTRING.
- SSTAT: permite leer la palabra de estado del interface, la cual proporciona imformación sobre el estado de éste y los errores producidos.
- SPRNT: permite redi-reccionar la impresora hacia el RS232.
- SPRINT redirecciona la impresora al cauce normal.
2) CP/M 2.2. Utilizando el CP/M 2.2 se puede adaptar el sistema para que asigne el interface RS 232 al dispositivo lógico TTY. Para ello, la ROM incluye una rutina apropiada que modifica el BIOS.3) CP/M Plus. También el CP/M Plus permite asignar al dispositivo lógico TTY el interface RS 232. Para ello está disponible otra rutina en la ROM del interface. El manual, afortunadamente, está en castellano, e incluye al final las conexiones del cable para comunicarse con un QL y con un Spectrum. |
Quién le iba a decir a Mr. Bell, cuando ideó aquel rudimentario primer teléfono, que medio mundo estaría comunicado a través de los «hijos» de su invento, y que todo este tráfico de comunicación estaría controlado automáticamente por microprocesadores! Sin embargo, estamos ya tan acostumbrados a la automatización (que, por supuesto, debemos a la informática), que si se suprimieran todas las centrales telefónicas automáticas y todas las comunicaciones del mundo se realizaran a través de operadora, se originaría una grave crisis mundial. En la actualidad, los últimos avances apuntan a un futuro vertiginoso: centrales y líneas totalmente digitalizadas, posibilidad de comunicar con varios abonados simultáneamente, comunicación de ordenadores a través de las líneas telefónicas, recepción de información en el hogar (teletexto), etc. configuran el panorama de lo ya inventado y que poco a poco se irá introduciendo en nuestra vida cotidiana. Por supuesto, existen problemas en esta comunicación. Uno de ellos, el coste de desarrollo de esta tecnología. Otro, quizá menos evidente, «los idiomas». Al igual que en la torre de Babel, nos encontramos ante un mar de fabricantes que no terminan de ponerse de acuerdo en la adopción de un canal estándar de comunicación, de ahí que diversos organismos internacionales traten de hallar un punto de acuerdo que simplifique las cosas. De ese esfuerzo nació el popular in-terface RS 232 C, cuyo nombre oficial es «Recomended Standard 232 Revisión C», esto es, Modelo Recomendado 232 Revi-son C, de la E.I.A. (Asociación de Industrias Electrónicas). Este modelo fue desarrollado para un uso muy concreto: la comunicación de ordenadores y terminales por líneas telefónicas, utilizando «modems» (moduladores que convierten la señal digital en audible, para que puede ser transmitida por una línea telefónica convencional). Sin embargo, hoy por hoy se conoce por RS 232 al modelo de conexión. 
El sistema que utiliza esta conexión es la transmisión de datos en serie, esto es, los bits circulan uno detrás de otro por una única línea, a diferencia de los sistemas en paralelo, en los cuales los bits circulan en grupos, generalmente de ocho, simultáneamente por varias líneas paralelas. Pero, por supuesto, es necesario algo más que la línea de transmisión. Imagínese el problema que puede surgir si dos terminales quieren hablar a la vez, o si los dos se quedan escuchando y ninguno habla. Las líneas que ayudan a evitar estos problemas son las líneas de control. Las conexiones normalizadas por la E.I.A. son las siguientes: - Patilla 1 (opcional). Masa de carcasa o chasis (GND).
- Patilla 2. Transmisión de datos (TXD o TD).
- Patilla 3. Recepción de datos (RXD o RD).
- Patilla 4. Petición de envío (RTS). Salida de propósito general. Sus usos varían ampliamente.
- Patilla 5. Borrado para enviar (CTS). Entrada de propósito general. Sus usos varían ampliamente.
- Patilla 6. Conjunto de datos listo (DSR). Entrada de propósito general para comunicar al transmisor que el receptor está listo.
- Patilla 7. Circuito común de las señales (GND).
- Patilla 8. Detector de Portadora de Datos (DCD). De usos diversos, generalmente se utiliza
para deshabilitar la recepción de datos. - Patilla 20. Terminal de datos listo (DTR). Salida de propósito general. Normalmente se usa para comunicar al receptor que el emisor está listo.
Sin embargo, algunos fabricantes pueden utilizar otras patillas para posibilitar el uso de opciones propias.Estas líneas de control permiten el entendimiento entre receptor y transmisor. Así, para comenzar la comunicación, el transmisor lee la línea adecuada para verificar si el receptor está listo. Si es así, comienza la transmisión. Sin embargo, el receptor suele ser un dispositivo comparativamente lento (por ejemplo, una impresora) que dispondrá de una memoria intermedia en la cual almacena los datos hasta que los utiliza (imprime). Al ser más lento, llegará un momento en que la memoria intermedia esté casi llena, momento en el que el receptor tiene que parar al transmisor para evitar la pérdida de información. Una vez que la memoria intermedia esté casi vacía, el receptor informará de este hecho al transmisor, el cual reanudará la transmisión. De este modo se consigue el perfecto entendimiento entre dos aparatos, posibilitando la comunicación. | AMSTRAD-LABORATORIO Un día cualquiera de un mes cualquiera la Luna llena estaba en conjunción con Mercurio y las mareas altas hacían notar su influjo; una extraña fiebre se apoderó de algunos de los miembros de esta Redacción. ¿Sería posible establecer comunicación con El Más Allá mediante el interface RS 232 C? ¿Serían tales sus poderes? Eran las preguntas que asaltaban a nuestras mentes inquietas. La duda nos corroía tan intensamente que decidimos poner manos a la obra y dedicar nuestro tiempo a tan peligrosa y excitante investigación. Sin embargo, pronto encontramos un obstáculo insalvable..., aunque disponíamos del interface para AMSTRAD necesitábamos en el otro extremos el interface para El Más Allá, y en ninguna tienda supieron decirnos dónde conseguirlo. Además, cuando les preguntábamos, nos miraban con una cara muy extraña... (?) Mas nuestra férrea voluntad no se amilanó ante tan insignificante circunstancia, y decidimos desahogar nuestra frustración realizando semejante intento, pero con un SANYO MSX. Y he aquí los resultados que obtuvimos: En primer lugar, teníamos que plantearnos un objetivo, y a ser posible algo complejo. Decidimos intentar pasar un fichero binario de AMSTRAD a MSX. Ahora sólo nos faltaba idear cómo. Intentamos hacerlo desde BASIC, pero nos encontramos con el problema de que los comandos CP/M no tienen cabecera, por lo que el operativo ASMDOS los considera ficheros ASCII, que han de ser leídos mediante OPENIN, INPUT#9 y esas cosas. Sin embargo, como aparecían muchos caracteres no considerables como ASCII (menores que 32), se producían serios problemas. Para que nos entendáis, se la pegaban. Pero en ese instante, veloz como el rayo, atravesó nuestra mente una genial idea: ¿Qué mejor para comunicar un fichero que el sistema operativo más flexible en comunicaciones? ¡Era necesario un CP/M! Pusimos manos a la obra y pronto obtuvimos resultados. En primer lugar instalamos el RS 232 en el CP/M 2.2 siguiendo las instrucciones del excelente manual de M.H.T. Ingenieros. A continuación preparamos el programa adecuado en el MSX para recibir los datos. Este consistía en una matriz a la cual se asignaban los datos leídos del RS 232 a través del interface para MSX, datos que después eran procesados y pasados a disco. Como formato de transmisión elegimos el llamado formato INTEL, que consiste en representar un byte por dos. El primero es el código ASCII del número hexadecimal que forman los cuatro bits de la izquierda, y el segundo el correspondiente a los cuatro bits de la derecha. Por ejemplo, para enviar el número 195 decimal, que en hexadecimal es C3, se envía 67 (código ASCII de la C) y a continuación 51 (el código ASCII del 3). Ahora os preguntaréis cómo enviamos estos códigos desde el CP/M, y aún más, cómo realizamos la conversión del número a los dos códigos que lo representan. Pues muy sencillo cómo habréis observado, existe un comando CP/M llamado DUMP que muestra en la pantalla el contenido en hexadecimal de un fichero, y probablemente sepáis también que bajo CP/M, pulsando [control] + [P] logramos que la pantalla salga a la vez hacia la impresora. Pues bien, nos bastó con asignar a la impresora el dispositivo lógico TTY (mediante el comando STAT DEV:), que, como habréis leído en la parte dedicada al interface serie de AMSTRAD, corresponde al RS 232 una vez instalado. De esta forma, pulsando [CONTROL] [P] y escribiendo DUMP cnombre del fichero aparecerían en el MSX los códigos en formato INTEL. Ahora sólo faltaría un programa MSX que convirtiera los códigos INTEL a código máquina y salvara el fichero binario a Disco del MSX. En cuanto al programa de BASIC que introdujimos en el MSX, lo que hacía era leer una línea de «DUMP», la cual contiene una dirección de cuatro bytes y deciséis datos de dos bytes, y la guardaba en una matriz alfanumérica. Una vez leído todo el fichero, cerramos el puerto de entrada del RS 232 y abrimos un puerto de salida a disco. A continuación íbamos tomando cada línea de la matriz, suprimiendo los cuatro bytes de la dirección y los espacios en blanco y escribiendo el resto al disco en un fichero ASCII. |
Amstrad User |