Download Guardar - Creces.cl

Document related concepts
no text concepts found
Transcript
El computador como funciona
( Publicado en Revista Creces, Mayo 1982 )
La presente década estará fuertemente marcada por el uso cada vez mayor que se es
dando a esta máquina prodigio de la microelectrónica. El conocimiento de su estructura la
forma como operan restituye su verdadera naturaleza, totalmente ajena al misterio con
que siempre han sido presentados.
Entendida la estructura general de un computador y la forma como el hombre puede
servirse de él, nos parece importante complementar dicha información con lo que
constituye hoy día un aliado formidable del científico, educador, secretaria, ingeniero,
diseñador, experto en comunicaciones. Se trata del microcomputador, caballo de batalla
de la tecnología de frontera en la presente década.
Un microcomputador consta de cuatro elementos fundamentales: el microprocesador, casi
literalmente el cerebro de la máquina que sabe efectivamente ejecutar las instrucciones
del código de máquina y que controla y orquesta la totalidad del computador: la memoria
donde se almacenan los programas en ejecución y los datos; los sistemas de entrada y
salida que comprenden dispositivos como las consolas, las impresoras y los giradiscos para
almacenamiento masivo con sus "interfaces" correspondientes, o sea los circuitos
electrónicos que intercomunican al computador con estos dispositivos; y los "buses",
verdadero sistema de carreteras que conecta entre sí al microprocesador, la memoria y los
sistemas de entrada y salida.
Toda la electrónica involucrada en estos cuatro elementos puede caber, con la tecnología
de hoy, en la punta de un dedo y en una superficie menor a un centímetro cuadrado. La
brusca transición del tubo al transistor fue sólo el primer paso en reducción de tamaño y
consumo energético. El paso (o salto) siguiente es el que condujo al circuito integrado: un
conjunto de componentes electrónicos se condensan en un sólo circuito. Durante la
primera mitad de la década del sesenta se desarrollan los circuitos de integración llamados
de pequeña escala en los cuales un circuito consta de hasta 40 componentes; en la
segunda mitad de esa década se llega a los mil componentes por circuito y durante los
sesenta se sobrepasan los cientos de miles. Tanto o más impresionante que la
miniaturización es el abaratamiento de costos. La tecnología de fabricación de estos
circuitos usa la fotolitografía o la electrolitografía con las cuales no sería muy exagerado
decir que producir un circuito integrado es tan fácil como dibujarlo y sacarle una fotocopia.
Junto a los circuitos integrados se desarrolla la electrónica digital y las familias de circuitos
lógicos (la TTL es una de las más famosas). Estas familias están constituidas por una serie
de "chips", nombre dado al empaquetamiento en que vienen los circuitos cuyas medidas
típicas son unos 20 x 7 x 4 milímetros con hileras de alrededor de siete contactos en
ambos bordes (Figura 2). La electrónica digital se caracteriza porque las señales con las
cuales trabaja pueden estar en sólo dos niveles de voltage (digamos 0, + 5 ) voltios).
Existe una multiplicidad de chips que pueden ejecutar diversas funciones sobre estas
señales: funciones lógicas, generadores de pulsos de duración regulable, marcapasos,
contadores de pulsos, etc. En un cierto sentido los microprocesadores son chips, mucho
más complejos, versátiles y flexibles pues tienen la potencialidad de comportarse como
cada uno de esos dispositivos a voluntad del programador.
Sólo ceros y unos
Gran parte del poder de la electrónica digital proviene de dos áreas desarrolladas por los
matemáticos mucho antes que se vislumbrara su aplicabilidad a la computación: el álgebra
de Boole y el sistema de números en base dos o binario. La primera tiene que ver con la
lógica de proposiciones y dice cosas tan aparentemente perogrullescas como que si se dan
dos afirmaciones, la afirmación A y la afirmación B, uno puede combinarlas para producir
la afirmación "A y B" o la afirmación "A ó B". La primera combinación será cierta sólo
cuando tanto A como B sean ciertas y será falsa en cualquier otro caso; la segunda
combinación será verdadera cuando ambas o una cualquiera de las afirmaciones sea
verdadera y sólo será falsa si ambas lo son. Lógica de este tipo se implementa fácilmente
como una "compuerta" en un chip: por ejemplo, dos contactos son las entradas para una
función y (o "AND") y un tercero es la salida. A los contactos de entrada se puede aplicar
sólo dos niveles de voltaje: + 5 (digamos "estado 1") ó 0 volts (digamos "estado 0"), si en
ellos probamos diversas combinaciones mientras observamos el voltaje en el contacto de
salida veremos que éste siempre va a estar en el estado 0 excepto cuando pongamos
ambas entradas en estado 1, en cuyo caso la salida también será 1. Tal conducta entonces
es análoga a la que seguíamos para determinar si la combinación "A y B" era verdadera o
falsa. Es fácil adivinar cómo se conduce una compuerta "o" (u "OR"): bastará que
cualquiera de los contactos de entrada esté en estado 1 para que la salida también lo esté,
y ésta caerá a estado 0 sólo cuando ambas entradas sean 0. El lector puede imaginar
muchos casos en que un circuito de control será diseñado incluyendo funciones de este
tipo, en que queremos que algo ocurra (o se detenga) si y sólo si dos condiciones dadas se
cumplen simultáneamente (función "y") o si una cualquiera de dos condiciones ocurre
(función "o"). Un circuito específicamente construido con tal fin puede incluir el chip
correspondiente, por otra parte, es fácil programar un microprocesador para que tome
decisiones de este tipo, pues las funciones lógicas están incluidas en su repertorio de
instrucciones.
El sistema de números binarios utiliza sólo dos dígitos: 0 y 1, lo que lo hace fácilmente
representable por los dos estados de los circuitos electrónicos digitales. Para representar
un número determinado cotidianamente utilizamos el sistema de base diez y seguimos
una convención posicional: un dígito "vale" según su posición, según en que columna esté:
en el número 252 el dos de la primera columna a la derecha tiene un valor distinto al de la
tercera columna; el primero representa la cantidad dos, en tanto el otro la cantidad
doscientos.
El valor de un número es igual a la suma del dígito de la primera columna por 1 (o sea,
por 100), más el de la segunda columna por 10(101), más el de la tercera por 100(102),
etc. El sistema es válido para cualquier base que elijamos: necesitaremos una cantidad de
guarismos igual a la base (utilizamos diez corrientemente 0,1......9; si utilizáramos la base
ocho no necesitaríamos los guarismos 8 ni 9; si usáramos la base 16 necesitaríamos
nuevas figuras para representar a diez, once, doce, trece, catorce y quince; y como ya
anticipamos en base dos basta el cero y el uno); y el valor de cualquier número se obtiene
multiplicando la primera cifra de la derecha por uno, la segunda por la base, la tercera por
la base al cuadrado, la cuarta por la base al cubo, etc. y luego sumando estos productos.
Como indica la Fig. 3B la suma de dos números representados en el sistema binario es
totalmente análogo a la de números en base diez, sólo que es más simple, aunque los
números requieren más dígitos para representarse. Cualquier número decimal puede
escribirse en binario, binario, y viceversa, porque el concepto de número es independiente
de su representación. Las demás operaciones aritméticas son también mucho más "fáciles"
en sistema binario que en decimal, en particular, más fáciles de instrumentar para un
autómata como un computador.
Bits y bytes
¿Cuántos números diferentes pueden representarse con una cantidad determinada de
dígitos en una base dada?. Esta pregunta, altamente relevante, es fácil de contestar: la
base elevada a la cantidad de dígitos en cuestión. En el sistema de base diez, con dos
dígitos representamos cien (102) números distintos: 00,01.... 98, 99. En el sistema base
dos con n dígitos binarios (o bits, como se les llama corrientemente) representamos 2 n
números; por ejemplo, con tres bits representamos ocho (23) números: 000, 001, 010,
011, 100, 101, 110 y 111. Al conjunto de ocho bits, que permite representar 256 (28)
números se le llama un "byte", y es la forma habitual de cuantificar cantidad de memoria.
Un "kilobyte", medida comúnmente usada, es igual a 1024 bytes.
Como veremos en la sección siguiente, un computador en su memoria, sus buses y su
procesador no trata a los bits en forma individual sino que trabaja con un conjunto de ellos
a la vez como si este conjunto constituyera una unidad. A este conjunto se le llama una
palabra y el número de bits en una palabra es la "longitud de palabra" de un computador.
Este quizás sea el dato aislado más relevante para describir a un computador: así se habla
de computadores de ocho bits (más propiamente computadores que trabajan con palabras
de ocho bits), de 16 bits, de 32 bits, etc. La inmensa mayoría de los microcomputadores
trabaja con palabras de ocho bits, es decir, una palabra contiene un byte.
Obviamente el que una palabra de un computador tenga ocho bits no significa que sólo
puede trabajar con números menores de 256. El computador puede organizar muy
versatilmente la sección de la memoria en que almacena datos. Por ejemplo si destina dos
palabras (de ocho bits cada una) para almacenar cada número, quedan 16 bits disponibles
que pueden representar del 0 al 65.535 (o quizás del -32.767 al +32.767). Habitualmente
se usa el formato de punto flotante en que algunas palabras se destinan a almacenar la
mantisa y otras el exponente (semejante a lo que hacen las calculadoras de bolsillo).
Decíamos que una palabra de ocho bits puede representar cualquier número del 0 al 255.
El párrafo anterior señalaba que dos o más palabras pueden combinarse de acuerdo a
cierta convención para representar cantidades mayores. Ahora bien, extendiendo esta
idea, podemos utilizar las combinaciones de ocho bits para codificar otras entidades que
no son números, como por ejemplo, letras u otros caracteres. Así la secuencia 01000001,
puede representar al número que en base diez escribimos "65" (26 + 20 = 64 + 1 = 65) o
bien, podemos convenir en que tal combinación representará la letra "A". De hecho en
nuestro lenguaje usamos una misma palabra para representar ideas totalmente distintas
(ejemplo: la palabra "sobre") y el contexto hace obvio la acepción a la que hacemos
referencia. Innecesario decirlo, en los computadores hay mecanismos que hacen
inequívoco el sentido en que una palabra debe ser interpretada en cada oportunidad.
Procesador y memoria
Cuando hablamos de la memoria de un computador nos referimos solamente a la memoria
de acceso inmediato, contenida en el computador, no a los elementos de almacenamiento
masivo como los discos flexibles, las cassettes u otros. Así se dice por ejemplo que un
determinado mícrocomputador se puede comprar con 32 K (o sea 32 kilobytes), 48 K ó 64
K de memoria. Comúnmente se utilizan como memoria circuitos integrados de gran
capacidad. Hay básicamente dos tipos: RAM (de "random-access memory") en que se
puede almacenar y leer información a voluntad, pero en la que al interrumpirse el
suministro de electricidad la información se pierde; y ROM (de "read-only memory") que
son chips en los que el usuario no puede escribir información sino que en ellos ciertos
programas o datos han sido impresos con dispositivos especiales y, por supuesto, la
información estará ahí se apague o encienda el computador. Típicamente los fabricantes
proporcionan con el computador algunos kilobytes de ROM que contienen programas y
rutinas elementales para ayudar al usuario a un manljo efectivo del sistema, incluyendo el
programa para interpretar BASIC. Por el contrario, un programa propio que el usuario
escriba en la RAM del computador se perdería al ser éste apagado o al escribir encima un
nuevo programa. Para evitar tener que escribir el programa cada vez que se va a usar,
éste se conserva en disco (u otro elemento de almacenamiento masivo); igual cosa puede
hacerse con los datos, ya sea que éstos hayan sido obtenidos directamente por el
computador o que uno los haya entrado manualmente.
Palabras y casillas
Desde un punto de vista funcional, uno puede imaginar la memoria del computador como
una gigantesca muralla de una oficina de correos con tantas casillas como palabras de
memoria haya. (En un microcomputador de ocho bits cada palabra equivale a un byte y en
adelante subentenderemos que este es el caso). En esta analogía hay una semejanza
fundamental: cada palabra de memoria, así como cada casilla, se identifica con una
dirección, con un número determinado. Es esencial para el funcionamiento del computador
que éste pueda ir a una dirección específica para escribir o leer una palabra determinada.
Hay también una diferencia fundamental en la analogía: en una casilla de correos uno
almacena cualquier cosa que quepa en ella; por el contrario, una palabra de memoria lo
que puede almacenar es solamente (y siempre), una secuencia de ocho bits, de ocho
ceros y unos.
Para el microprocesador el trabajar con la memoria significa encaminarse a una dirección
determinada y leer en cuál de los 256 estados posibles está, o bien escribir en esa
dirección uno de esos 256 estados. La operación de leer no altera en absoluto el contenido
de la memoria; la operación de escribir elimina cualquier contenido previo que en esa
dirección estuviera almacenado y lo reemplaza por una nueva secuencia de ocho ceros y
unos.
Instrucciones
Hemos dicho que en memoria se almacenan tanto programas como datos y hemos
indicado cómo se representan números y letras. ¿Cómo se representan las instrucciones
de los programas? Ya hemos señalado que un microcomputador - sólo sabe ejecutar un
número limitado de instrucciones elementales y que las 256 combinaciones posibles con
ocho bits pueden utilizarse no sólo para representar números sino para codificar entidades
no numéricas. La respuesta es la síntesis de estas dos observaciones: cada una de las
instrucciones elementales se representa por una secuencia de ocho bits y esta codificación
es el "código de máquina". Volviendo al ejemplo antes citado, la secuencia 01000001 en
una celdilla de memoria puede significar según el contexto cosas muy distintas:
simplemente el número 65 o puede ser parte de una codificación o un número, por
ejemplo en punto flotante parte de la mantisa o del exponente; o puede representar la
letra "A"; o puede representar una de las instrucciones elementales que el
microprocesador ejecuta.
El microprocesador debe en primer lugar interpretar y ejecutar las instrucciones del código
de máquina. Para ello ha de contar con varios "registros" (secuencias de bits comparables
a celdillas en memoria pero que están en el microprocesador mismo). Hay un registro para
almacenar la instrucción de código de máquina que se ha de ejecutar; otro para retener la
dirección de la memoria en la cual vamos cuando ejecutamos un programa para saber
dónde ir a buscar la próxima instrucción; otro registro de estados para señalar que ciertas
situaciones relevantes han ocurrido (por ejemplo, cuando al sumar hay reserva en la
columna más significativa que requeriría de un noveno bit). El microprocesador cuenta con
una unidad lógico-aritmética que es la que propiamente ejecuta las instrucciones
elementales (suma, resta, funciones lógicas, etc.) y que cuenta con un registro
especialísimo: el acumulador, en el cual se realizan las operaciones.
Buses
Un segundo tipo de funciones a cargo del microprocesador es el traspaso bidireccional de
información tanto entre microprocesador y memoria, como entre microprocesador y
dispositivos de entrada/salida. Esto se logra mediante los "buses" a que hicimos mención
como uno de los cuatro tipos de elementos que constituyen el microcomputador. Hay tres
tipos de buses: primero, el bus de direcciones en el que el microprocesador señala cuál
dirección de la memoria ha de ser leída o escrita. Este bus tiene tantas líneas como bits se
usan para determinar una dirección. Típicamente en los microcomputadores las
direcciones se especifican con dieciséis bits lo que permite hacer referencia a un total de
216 o 65.536 celdillas de memoria ("64 K"). Esto también significa que una dirección (o
sea, el número de una dirección, no la celdilla ni su contenido) requiere dos bytes para
especificarse, esto es, dos palabras del programa. Hay un segundo bus, de ocho líneas,
que es el bus de datos donde se colocan las palabras a ser transferidas. Cuando el
microprocesador escribe algo en memoria coloca entonces en el bus de direcciones la
dirección de la celdilla en la cual va a escribir y en el bus de datos la palabra que va a ser
escrita; análogamente, si se trata de leer algo, señalará en el primer bus la dirección de la
celdilla cuyo contenido quiere obtener y la memoria pone el contenido de ésta en el bus de
datos para que el microprocesador lo reciba.
De esto surge la necesidad de un tercer tipo de funciones a cumplir por el microprocesador
y un tercer tipo de buses: la de servir de marcapaso para que las operaciones se realicen
sincrónicamente y de definirlas y controlarlas. Por ejemplo, determinar si se trata de leer o
de escribir una palabra en la celdilla indicada en el bus de direcciones, o, cuando escriba
en una impresora, dará la orden de que se escriba una letra sólo después de asegurarse
que la anterior ya fue escrita y la impresora está lista para recibir la siguiente. Las líneas
que llevan este tipo de información de sincronización y control configuran el bus del
control.
Microprocesadores
Parece innecesario recalcar que en un microcomputador el elemento clave será el
microprocesador: de él dependerá la rapidez con la cual trabaja, la longitud de palabra
que procesa como una unidad, y la cantidad total de celdillas de memoria con las cuales
puede trabajar. Diferentes microprocesadores tienen diversas "arquitecturas": número de
registros, repertorio de instrucciones, duración de un ciclo de acceso a memoria, etc.
Como es de esperar, cada uno ha sido diseñado intentando optimizar ciertos aspectos del
trabajo y puede por lo tanto resultar particularmente eficiente para un cierto tipo de
tareas.
Propondremos ahora un ejemplo concreto. Supongamos que tenemos un computador con
64 K de memoria (65.536 celdillas) de las cuales las primeras 4 K (4.096) son ROM, o sea,
no están disponibles para que el usuario escriba en ellas. El programa de código de
máquina que el usuario ha cargado está almacenado de la celdilla 4.096 a las 9.432 y de
ahí para arriba el resto de la memoria está disponible para almacenar datos.
Concentrémonos ahora en un pequeño segmento del programa total y que, como ilustra la
Fig. 4, ocupa ocho celdillas de memoria partiendo de la número 7.777. (Nótese que para
indicar el número de la dirección de las celdillas y su contenido ocupamos el sistema
decimal para facilidad del lector: en realidad en el computador son sólo secuencias de bits
"encendidos" o "apagados").
La primera celdilla contiene la palabra 123 (01111011). Esto, en el código de máquina del
microcomputador imaginario que estamos inventando para este ejemplo, significa "borre
el acumulador y enseguida cárguelo con el número contenido en la celdilla siguiente". La
celdilla siguiente es la 7.778 que contiene al número 6 (00000110). Al cumplir esta
instrucción lo que el microprocesador ha hecho es ni más ni menos que colocar en el bus
de direcciones el número 7778, dar una orden de lectura y cargar el acumulador con el
contenido recibido por el bus de datos, que debería ser "6". Otra cosa que se ha hecho es
colocar en el registro interno encargado de llevar la cuenta del programa la dirección 7779
que es donde habremos de dirigirnos para obtener la próxima instrucción. Esta celdilla
contiene también el número 6, (00000110); este número lo traemos por el bus de datos,
lo depositamos en el registro de instrucciones y lo interpretamos como una instrucción. En
nuestro código de máquina el 6 significa "fíjese en el contenido de las dos celdillas
siguientes, entre ambas codifican en 16 bits una dirección; diríjase a la celdilla indicada
por esa dirección y lea su contenido; ese contenido súmelo al contenido actual del
acumulador". Utilizando los buses y registros correspondientes, el microprocesador
ejecutará esta instrucción: primero determinará que la dirección en cuestión es la número
25.606 (el lector puede calcular el número representado por 0110010000000110), y luego
traerá el contenido de esa celdilla y la sumará al acumulador. En nuestro ejemplo, el
contenido en cuestión es el número 193 por lo que al finalizar esa instrucción el
acumulador contendrá el número 199. La instrucción siguiente está en la celdilla 7782 y es
el número 128. En nuestro código imaginario significa "el número que está en el
acumulador, escríbalo en la celdilla cuya dirección está codificada en las dos celdillas
siguientes". Tal dirección es la 25.607 y en ella entonces se almacenará el número 199.
En resumen, lo que este segmento del programa hace es tomar el contenido de la celdilla
25606, sumarIe 6 y depositar el resultado en la celdilla 25.607
El microcomputador y el mundo externo
Es esencial contar con mecanismos para interactuar con los dispositivos de entrada y
salida con el fin de entrar programas en memoria, leer datos, imprimir resultados,
controlar procesos, etc. Conceptualmente este problema es análogo al escribir y leer datos
de la memoria. Por ejemplo, si se trata de usar una impresora ésta puede entender que la
secuencia 01000001 representa la letra "A" con lo que para el microprocesador el
problema se reduce a hacerle llegar tal secuencia tal como la escribiría en una celdilla de
memoria. Análogamente, para recibir una letra "A" desde la consola basta con que ésta le
envíe esa secuencia y el microprocesador sabrá interpretarla. Es tal la similitud entre el
problema de enviar información a un dispositivo externo y el escribir en la propia memoria
que muchos microcomputadores resuelven el problema asignando algunas direcciones no
a celdillas de memoria sino a servir de "puertos" de entrada y salida, la lectura y escritura
en tales direcciones irá a parar entonces no a chips de memoria sino a interfaces de
entrada/salida. Un enfoque alternativo es tener puertos especializados con instrucciones
propias para dirigirse a ellos, diferentes de las instrucciones que hacen referencia a
memoria.
Un segundo problema general es el cómo enviar la información desde la interface al
dispositivo en cuestión. Una posibilidad es la transmisión en paralelo, análoga al bus de
datos ya descrito, con una línea por bit más quizás algunas líneas de sincronización y
control. Este sistema es muy rápido, pues todos los bits de una palabra se transmiten
simultáneamente, pero es caro cuando las distancias entre computador y receptor son
importantes. La alternativa es usar una sola línea y transmitir en ella los ocho bits (y
señales de sincronización y control) secuencialmente. Con interfaces adecuadas de este
tipo ("modem") se puede incluso usar la línea telefónica para que dos computadores
conversen entre sí enviándose palabras bit por bit.
Al configurar un sistema en torno a un computador, son elementos habituales consolas e
impresoras con capacidades de graficar (o bien "plotters" x-y de alta resolución). Estas
son proporcionadas por el mismo fabricante del microcomputador o pueden obtenerse de
otros con la interface adecuada para el computador en cuestión. Un sistema de discos
flexibles es altamente deseable para el almacenamiento masivo de programas y datos. Los
computadores poseen "sistemas operativos de discos" que proporcionan comandos que
hacen muy fácil para el usuario escribir y leer en los discos y preguntar cosas como qué
programas tiene almacenado un disco o cuánto espacio disponible queda en él.
Sin embargo, los principios básicos de transmisión de bits entre el computador y
dispositivos externos mediante una interface tiene un campo de aplicación mucho más
amplio. Una interface simple que tan sólo permita conectar cada bit de una palabra en un
puerto de entrada/salida con líneas de un sistema externo, puede detectar, por ejemplo, el
estado de un interruptor, o si un sensor está por encima o por debajo de un punto critico
(un termostato). Para conseguir esto es cuestión que la señal de interés active una línea
de entrada a +5 ó O volts y éste voltaje se conecte al bit destinado a detectarlo en el
puerto de entrada. A la inversa, si el bit es cargado por el microprocesador con un cero o
un uno y damos la señal de control indicando que se trata de una salida, este voltaje del
bit puede ser llevado por la interface a accionar interruptores, activar relays, etc. No hay
problemas entonces para que un computador reciba o comande información binaria.
Conversor A/D
Supongamos ahora que nos interesa estudiar una señal que fluctúa entre 0 y 4 volts
proveniente de un transductor, o quizás de la salida auxiliar de un polígrafo. Tenemos
entonces una señal analógica que puede fluctuar entre esos limites en forma continua y
queremos que el microprocesador pueda leerla cada cierto intervalo, es decir, debemos
transformar el valor analógico de esa señal en un número. Esto precisamente es lo que
hace un conversor análogo -digital (conversor A/D).
En un cierto sentido, este problema es la extensión de un detector binario a un caso de
más de dos alternativas. Si tuviéramos un sensor que indicara "0" o "1" según que la señal
esté por debajo o por encima de 2 volts, al tomar una muestra podríamos saber si la señal
está entre 0 y 2 volts o entre 2 y 4. Podríamos ahora combinar dos bits y establecer
cuatro posibilidades: "(00" significa entre 0 y 1; "01", entre 1 y 2; "10" entre 2 y 3; y "11"
entre 3 y4. Si usáramos más bits podríamos dividir el rango en segmentos menores. El
número de bits que emplea un conversor A/D es uno de los datos más importantes para
caracterizarlo, y es lo que se llama su "resolución". Un conversor A/D de ocho bits divide
el rango de voltaje en 256 segmentos y, en nuestro ejemplo, resolvería como niveles
distintos los que difieran en 4/256 = 0.0156 15.6 milivolts. Una segunda característica
relevante se refiere al rango permitido de voltaje. En nuestro ejemplo hemos supuesto que
tanto el rango de salida del instrumento de medición como el de entrada del conversor son
0 a 4 volts, un caso óptimo en que no hay posibilidad que la señal supere o quede por
debajo del rango permisible y además aprovecha todo ese rango. Si este no fuera
naturalmente el caso habría que amplificar la señal para aumentarla o disminuirla o
cambiar su punto central para hacerla coincidir con el rango del conversor. Un tercer dato
pertinente es el tiempo que demora en efectuar una conversión y que, según el conversor
en cuestión, puede ser de algunos microsegundos o de cientos de milisegundos. Según
cómo varía la señal de interés en el tiempo, la frecuencia de muestreo y la precisión
deseada, una o más de estas características cobrarán especial relevancia.
El conversor digital -analógico permite resolver el problema inverso: utilizar el computador
para generar señales dentro de un rango de valores, no sólo para encender y apagar como
nos permite un bit aislado de un puerto de salida. Aquí el computador proporciona
números al conversor y éste los transforma en niveles de voltaje.
La figura 5 ilustra ambos tipos de conversión. En ella vemos una curva que ha sido
muestreada a una frecuencia tal que se obtuvieron doce muestras de un ciclo completo. El
microcomputador ha leído entonces la secuencia correspondiente de números mediante un
conversor A/D. A su vez, estos números podrían ser transformados en una secuencia de
voltajes utilizando un conversor D/A.
Resumen
Un microcomputador consta de un microprocesador que ejecuta las instrucciones y
orquesta la totalidad del sistema; una memoria donde se almacenan programas y datos;
interfaces de entrada y salida para comunicarse esos tres tipos de elementos entre si.
Las señales con que un computador trabaja sólo tienen dos estados; la lógica de Boole y el
sistema de números binarios son poderosas herramientas que precisamente trabajan sólo
con dos estados. Se reseña cómo el procesador intercambia con la memoria y con las
interfaces, y cómo ejecuta las instrucciones codificadas.
Ennio Vivaldi V.
INTA. Universidad de Chile.
Artículo extraído de CRECES EDUCACIÓN - www.creces.cl