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 firmo desde el siglo XVII, se desarrolló lentamente y hoy va ganando velocidad con ímpetu creciente. Un futuro que va tomando forma, gracias principalmente al 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 con un sistema operativo para que puedan correr 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ñes el filósofo francés Blaise Pascal (1592-1692), en cuyo honor se le ha dado el nombre a un conocido 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, y es posible 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 el montaje de 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, hay que participar por los nuevos conocimientos para no 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.

¿Que es un microprocesador? 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 grabada con claves de un repertorio de instrucciones programables desde el exterior. La unión del microprocesador con las instrucciones es la arquitectura de John von Neumann, que ayudó a construir computadoras con bulbos mas pequeñas, y con el tiempo se pudo fabricar millones de microprocesadores al alcance de todos, cada microprocesador tiene una medida real de capacidad, la longitud de bits con que opera se llama palabra, Mínimum maneja palabras de 32 bits, con instrucciones para operar media palabra (16 bits), 1/4 de palabra (8 bits = 1 byte) o 1 bit.

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 había construído una computadora personal. Cuando estuvo 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 la bautizaron como microcomputadora. La comunicación directa con el procesador fue con lenguaje máquina, 16 switches mecánicos fijaban la direccion binaria de la memoria, la palanca hacia arriba indicaba 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 las secuencias de 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, se ejecutaba la instrucción NOP (Sin operación) y en microsegundos la máquina indicaba en los focos cada locación secuencial al buscar 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, como 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 actualmente incluye 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 conjunto de instrucciones con sus registros, para que el usuario pueda crear y desarrollar diversos 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 nuestra computadora maneja 32 bits de datos o instrucciones, con un total de 4 gigabytes de locaciones segmentadas 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 ¿ha terminado? 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. Los rangos altos y bajos 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 representan 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 es con 32 bits, las computadoras 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 central. 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. Su repertorio de instrucciones con código exclusivo para crear programas incluye transferencia de datos, manipulación de datos, control de programas, 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 definitivos del usuario. Cuando no se conecta un cristal de cuarzo u oscilador externo, internamente hay un oscilador de frecuencia 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 se encuentran en sitios de venta de internet o tiendas de componentes electrónicos.

Foto 3. Un circuito impreso comercial con norma LQFP-64 para ajustar y soldar con precisión el microprocesador y otros componentes, donde cada patita milimétrica va de acuerdo con los hoyos 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, requiere ciertas virtudes como la aplicación, la diligencia, el sentido de propósito, el poder de concentrarse, de perseverar, y no dejarse vencer por la adversidad. Lo contrario es el vacio existencial de no creer en los sueños, solo ganar dinero por encima de todo, en un mundo de propaganda que despierta un deseo enorme por consumir, despojando el caracter para buscar la verdad, inventar, crear belleza y prevalezca la justicia. Afortunadamente las personas sin la confusión de la crisis social trabajan por amor a su vocación, con esfuerzo para una calidad de vida, por honor y caracter para los desafios, construyen computadoras y programan máquinas-herramienta, algoritmos que diseñan sistemas médicos y procesos bioquímicos que erradiquen los males de los seres vivos o descubrir un hallazgo sorprendente en el lado oculto de la luna.

 

Siguiente artículo Siguiente articulo