Construye tu computadora Mínimum.

Parte 1: Inicio de las microcomputadoras.

Por: Oscar Toledo Esteva.       Septiembre de 2018.


Este curso trata sobre un futuro, no muy distante para poder ignorarlo, sino de uno inmediato cuyo progreso puede ser calculado con exactitud, se trata de un futuro que transformará la sociedad en todos los niveles, comenzó con paso firme desde el siglo XVII, se desarrolló lentamente y hoy va ganando velocidad con ímpetu creciente. Un futuro que va tomando forma, por el progreso tecnológico de vanguardia que ha dado nacimiento a un instrumento cuyo impacto ya percibimos: la computadora digital.

Por su ubicuidad la mayoría de las personas creen que todas las computadoras son iguales, e imaginan que solo hay un diseño básico de las mismas y un sistema operativo donde corren todos los programas (o software). Pero las computadoras difieren enormemente unas de otras, incluso en su estructura básica y en su organización.

Antes de todo lo que conocemos como computadoras, la humanidad inició un largo camino de aprendizaje y descubrimientos matemáticos, hasta poder diseñar calculadoras mecánicas. La primera calculadora digital automática fue inventada hacia 1623 por un desconocido astrónomo alemán llamado Wilhelm Schickard (1592-1635), así lo describe en sus cartas su discípulo, el astrónomo Johannes Kepler. Otra calculadora dada a conocer públicamente la construyó unos veinte años después el filósofo francés Blaise Pascal (1592-1692), en cuyo honor se le ha dado el nombre a un lenguaje de programación. Su aparato asombró a todos, aunque solo se pudiera sumar y restar con bastante torpeza, pues sólo era un mecanismo con ruedas dentadas del cero al nueve. Con las mejoras introducidas en 1673 por el filósofo alemán Gottfried Wilhelm Von Leibniz (1646-1716), pudo multiplicar y dividir, pero algunas fallas mecánicas evitaron que se hiciera popular. El primer científico de la computación, fue el inglés Charles Babbage (1792-1871) educado como matemático, se propuso construir una computadora automática que pudiera resolver ecuaciones de diferencia e "imprimir" las respuestas. Trabajó sobre ella durante unos 20 años ayudado por el gobierno inglés, pero finalmente en 1842 renunció a la empresa de terminarla por dificultades técnicas. En 1833 su imaginación fue capturada por un nuevo esquema más elegante y más ambicioso, una máquina analítica que fue su máxima realización, y que lo mantuvo ocupado por el resto de su vida.

En la construcción de Mínimum, ampliamos los conocimientos sobre computadoras con su programación, y profundizar en ello partiendo desde el principio, pero desde un punto de vista mas avanzado y moderno. Hoy, la microelectrónica y las computadoras determinan los puestos de trabajo y están dando origen en todos los campos del quehacer humano, cambios revolucionarios, que surgen del talento científico y tecnológico para la investigación y el desarrollo. De esta experiencia y formación permanente nacen nuevas ideas para el diseño, imprimiendo al trabajo un caracter creador, con más contenido productivo. Solo con diseñar una placa de circuito impreso por medio de un programa se usan varios algoritmos, se reduce el tiempo original del desarrollo en una tercera parte, más con un programa especializado en el proceso de fabricación con una máquina herramienta CNC gobernado por un solo microprocesador, el resultado es un circuito impreso con varias capas de pistas, para montar las piezas de una computadora, diseñada para desarrollar programas o interfazar el mundo análogo con el mundo digital. Que nadie se sienta sorprendido o atropellado por estas nuevas tecnologías y sus efectos, al participar por los nuevos conocimientos nadie quedará excluido, solo se necesitan personas con intuición para entender una sofisticada tecnología electrónica.

El progreso de la electrónica digital al final de la década de los 40, aceleró el desarrollo del microprocesador con la invención de diodos y transistores, al inicio de la década de 1960 apareció en el mercado el circuito integrado que evolucionó de pocos a miles de transistores para tareas digitales complicadas, desde relojes, calculadoras, hasta videojuegos. En los 70, los nuevos avances en la tecnología condujeron a la fabricación del microprocesador para uso personal.

Un microprocesador es un circuito integrado que ejecuta programas y realiza las funciones principales de una computadora dígital, cuya propiedad mas llamativa es su versatilidad para cada necesidad concreta, el usuario solo especifica o cambia el programa y otra tarea es ejecutada por el microprocesador, sin quitar un tornillo o cambiar un cable del circuito electrónico, en un futuro cercano, cambiando un código en el programa del robot con microprocesador este realizará una nueva función, un robot diplomático será un robot agricultor o un robot médico. Los equipos domésticos, juguetes, instrumentos, automóviles, aviones, teclados, computadoras, celulares, etc, se construyen alrededor del microprocesador, encapsulado en un circuito integrado, que básicamente contiene circuitos transistorizados que funcionan como: compuertas lógicas, procesador lógico aritmético, control del oscilador de frecuencia, memoria para escritura y lectura temporal, y una memoria para grabar desde el exterior un programa con las instrucciones del microprocesador. Unir el repertorio de instrucciones con el microprocesador fue la idea que originó la arquitectura de John von Neumann, que ayudó a construir computadoras con bulbos termoiónicos, y con el tiempo se pudo fabricar millones de microprocesadores al alcance de todos, y pueden manejar una longitud de bits desde un bit hasta 64 bits, la longitud mayor se llama palabra, Mínimum maneja palabras de 32 bits en sus instrucciones.

Todo comenzó en 1971, cuando la compañía japonesa Busicom utilizó el primer microprocesador de 4 bits para fabricar calculadoras, época en que los aficionados construían con circuitos integrados, controles para diversos mecanismos, relojes, frecuencímetros, etc, todos cableados para una sola tarea, manejaban los números binarios, los circuitos flip-flop, las lógicas de compuertas, en ese entonces las computadoras ocupaban un enorme espacio, y ningun aficionado podía construir una computadora personal. Al estar disponible el microprocesador de 8 bits, conectaron memorias volátiles SRAM (Static Random Access Memory) para guardar los programas temporales, y la memoria no-volatil EPROM (Erasable Programmable Read-Only-Memory) para guardar el programa operativo de todo el conjunto. A esta máquina portentosa y pequeña la bautizaron como microcomputadora. La comunicación directa con el microprocesador fue con su lenguaje máquina, desde el exterior 16 switches mecánicos fijaban la direccion binaria de la memoria, un interruptor hacia arriba fijaba el estado lógico 1 y hacia abajo el estado lógico 0. En el mismo panel otros ocho switches eran utilizados para introducir instrucciones de 8 bits (dígitos binarios). Cuando todas las instrucciones estaban almacenadas en la memoria, el programa se ejecutaba y centelleaban los 24 focos instalados en el mismo panel. Fijando la dirección con los 24 switches a: 0000 0000 0000 0000 y el dato a: 0000 0000 significaba la instrucción NOP (Sin operación) y era ejecutada en microsegundos, la máquina indicaba en los focos cada locación secuencial en la búsqueda de otra instrucción del microprocesador. De esta máquina que el usuario programaba con entusiasmo, nació la computadora personal.

Fig 1. Microprocesador de 8 bits con dos memorias externas en paralelo, el núcleo típico de las computadoras de la década de 1970, similar al diseño de la primera computadora mexicana. La memoria SRAM usaba 8 integrados de un kilobyte x 1 para operar instrucciones o datos de 8 bits.

En una computadora todo sucede en su núcleo principal, que es el procesador binario, con los avances en la fabricación en un espacio nanométrico cambió su nombre por el de microprocesador central o MPC, que hoy incluye internamente memorias EEPROM (Electrically Erasable Programmable Read-Only-Memory) y SRAM, reloj calendario, convertidor de señal análogo a digital (ADC), y señal digital a análogo (DAC), interfaz para memoria externa y MicroSD, interfaz serializado I2C, UART, USB, CAN, SPI, etc, y un repertorio de instrucciones con sus registros, que el usuario usa para crear todo tipo de programas.

Actualmente en la búsqueda de la máxima velocidad y el bajo consumo de energía, están cambiando los fundamentos del diseño y la terminología del microprocesador. Por la alta integración de funciones en un microprocesador económico ya podemos construir una computadora más poderosa y con menos componentes, capaz de direccionar 4294967296 locaciones de memorias; mientras los anteriores no rebasaban las 65536 locaciones y no tenian memorias internas. El microprocesador para construir "Minimum" maneja 32 bits de datos o instrucciones, con un total de 4 gigabytes de locaciones compartidas con los periféricos, memorias internas o externas y registros privados para usos especiales.

Los lenguajes estructurados de programación facilitan la innovación rápida en el diseño de equipos electrónicos que son controlados por los microprocesadores, desde el motor de la lavadora, reloj de pulsera, teléfonos celulares, drones, aviones, automóviles, robots para cirugia médica, hasta sistemas automáticos guiados por satélites. La evolución de las computadoras no ha terminado, y no creo que termine algún día.

Foto 1. Materiales básicos para construir Mínimum: Un microprocesador, regulador de voltaje, interfaz de comunicación, switch para reiniciar nuestra máquina y circuito impreso comercial con norma LQFP-64 para soldar con precisión el microprocesador y extensión de las pistas de las patillas a hoyos de 2.54mm.

Mínimum es una computadora que como los demás sistemas digitales usa únicamente dos valores discretos, denominados señales digitales, cada pata del microprocesador usa dos rangos de valores, excepto para las funciones análogas, el valor alto es el uno, y el valor bajo es el cero, el voltaje de alimentación de Mínimum determina el valor alto con un voltaje que oscila entre 3.3 y 1.5 voltios, y el valor bajo entre 1 y 0.5 voltios. Estos rangos pueden tener diferentes nombres como: alto = high o 1, bajo = low o 0. 0 = falso. 1 = verídico. 0 y 1 es la asociación binaria y a cada dígito se le llama bit. Las computadoras digitales presentan su información por grupos de bits, 4 dígitos binarios es un cuarteto, 8 dígitos binarios o bits es un byte. Las instrucciones y los datos que procesa Mínimum son de 32 bits, los microprocesadores no usan directamente cifras decimales, octales, hexadecimales, claves ASCII, UUEncode, pero nosotros si. Todos los datos de texto, imágenes, numéricos, audio, etc. cuando son procesados en la computadora, se convierten a un formato con cifras binarias que maneja el microprocesador. Los dos estados del número binario se representan con unos y ceros, pero cada pata del microprocesador usa señales eléctricas, un voltaje presente es igual a un uno binario (on = encendido), su ausencia igual a cero binario (off = apagado).

Tabla de conversión numérica

Binario Hexadecimal Decimal
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 A 10
1011 B 11
1100 C 12
1101 D 13
1110 E 14
1111 F 15

La numeración binaria es un sistema en base 2, hexadecimal es un sistema en base 16 y la decimal a un entero como potencia en base 10. En la numeración octal en base 8 cada cifra son 3 dígitos binarios.

El microprocesador de Mínimum integra una unidad de control con una ruta de datos para procesar su conjunto de instrucciones, cada instrucción es un código binario de 16 o 32 bits. El conjunto de instrucciones tiene un código exclusivo para crear programas que incluye transferencia de datos, manipulación de datos, control del programa, manejo de punto flotante, procesamiento de señales análogas, un programa depurador integrado (debug) con ordenes para escribir, leer y ejecutar programas temporales o grabadas por el usuario. Cuando no se conecta un cristal de cuarzo u oscilador externo, se cuenta con un oscilador de frecuencia interno que permite operar y ejecutar la mayoría de sus funciones.

Foto 2. El microprocesador de nuestra computadora está encapsulado en un chip con 64 patas con norma LQFP-64 para montaje de superficie plana (SMD). Un punto señala la pata número uno y cada separación de patas o pin mide .5mm, por lo impráctico de esta dimensión se solda sobre un circuito impreso donde cada pata va directo a perforaciones separadas por 2.54mm de fácil manipulación.

Por el interés y la demanda en la tecnología microelectrónica, los circuitos impresos para determinados procesadores estàn disponibles en tiendas de componentes electrónicos y en internet.

Foto 3. Un circuito impreso comercial con norma LQFP-64 para ajustar y soldar con precisión el microprocesador y otros componentes, cada patita milimétrica es una pista que va al agujero de 2.54mm.
Fig 2. El microprocesador opera con 3.3 voltios y consume menos de 100 miliamperes. Un módulo conectado a la red eléctrica suministra 5V de corriente continua al regulador de 3.3V para el microprocesador.

Programar optimamente un microprocesador se deriva de la experiencia y la voluntad de adquirirlo, la diligencia, el sentido de propósito, el poder de concentrarse, de perseverar, paciencia y creer en el esfuerzo, sin el deseo por consumir que despoja el caracter para buscar la verdad, inventar, crear belleza y prevalencia de la justicia. Afortunadamente hay personas que trabajan por amor a su vocación, por una calidad de vida, por honor y caracter para los desafios, diseñan computadoras y programan máquinas-herramienta, algoritmos para sistemas médicos y procesos moleculares para erradicar males de los seres vivos o descubrir un hallazgo sorprendente en el universo.

 

Siguiente artículo Siguiente articulo