Construye tu computadora Mínimum.

Parte 1: Inicio de las microcomputadoras.

Por: Oscar Toledo Esteva.       Septiembre de 2018.


Este curso trata sobre el futuro inmediato, no distante para poder ignorarlo, cuyo progreso puede ser calculado con exactitud, se trata de un futuro que está transformando la sociedad en todos los niveles, desde el siglo XVII comenzó con paso firme, con lento desarrollo que 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 una serie de instrumentos cuyo impacto ya percibimos: la tecnología digital.

La mayoría de las personas creen que todas las tecnologías como las computadoras son iguales, que solo hay un diseño básico de las mismas y un sistema operativo donde se ejecutan todos los programas (o software). Pero las computadoras difieren enormemente unas de otras, incluso en sus diseños y estructura básica.

Historia de una tecnología exponencial

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 en 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 fue nombrado un lenguaje de programación. Su aparato asombró a muchos, 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 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 apoyado 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.

Con Mínimum ampliamos los conocimientos sobre la construcción y programación de las computadoras de forma práctica, y profundizamos en ello desde lo básico hasta lo mas avanzado. La microelectrónica y las computadoras ya determinan los puestos de trabajo, dando origen en todos los campos del quehacer humano, cambios revolucionarios que surgen del talento científico y tecnológico de 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, como diseñar una placa de circuito impreso por medio de un microprocesador, usando una programación optimizada para reducir en una tercera parte el tiempo original del desarrollo, incluso se puede ahorrar mas tiempo si en el proceso de fabricación se emplea una máquina herramienta CNC gobernada por un microprocesador, produciendo un circuito impreso milimétrico 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 los años 40 permitió la invención de los diodos y transistores para el diseño del microprocesador, al comenzar los años 60 se logró crear los circuitos integrados con transistores que posteriormente ya contenìan miles de ellos, primeramente se usaron en relojes, calculadoras, videojuegos, etc. En los 70, nuevos avances en la tecnología condujeron a la fabricación del microprocesador para uso personal.

Un microprocesador es un conjunto de circuitos integrados que ejecuta programas de acuerdo a sus instrucciones y realiza las funciones principales de la computadora dígital, cuya propiedad mas llamativa es su versatilidad, para cada necesidad concreta, y el usuario solo cambia el programa para otra tarea ejecutable del microprocesador, sin quitar un circuito integrado o cambiar cables del circuito electrónico, igual al cambiar los códigos del programa del robot y este realizará una nueva tarea, 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 su 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 su 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 microprocesadores con instrucciones integradas al alcance de todos, y manejan 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.

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 RAM era un conjunto de 8 memorias de un kilobyte x 1 para manejar instrucciones o datos de 8 bits.

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.

El microprocesador central

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.


Microprocesador central de Mínimum con sus periféricos integrados.

El progreso incesante en microelectrónica beneficia a la ciencia y enfrenta ganadores y perdedores en la competencia por ofrecer velocidad de procesos de los microprocesadores, acelerador al máximo de las frecuencias de trabajo, interface de cámara, controlador LCD TFT, criptografía, interface en paralelo de memorias externas, mayor capacidad de sus memorias FLASH y SRAM, etc.

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.

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 los pines 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


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.

La electrónica digital maneja números digitales con los dos estados; cero y uno, hay un tercer estado (menos conocido) llamado estado Z o triestado, que tiene un umbral eléctrico o alta impedancia, que significa la ausencia de los estados uno y cero binarios, representa la desconexión de la señal de salida en la pata del microprocesador, el triestado facilitó la creación de puertas programables y que los microprocesadores estuvieran al alcance de todos, al permitir que una sola pata tenga diversas funciones, como señales de entrada, salida o análogo, y sea cómodo programar proyectos prácticos en pequeños espacios. Los fabricantes colocan todas las patas del microprocesador en una función inicial como patas de entrada, un circuito de la pata del microprocesador ocupa dos compuertas triestado programables a base de interruptores lógicos para las señales de entrada o salida, estos se programan para recibir o transmitir señales ademas de otros parámetros eléctricos suministrados por los fabricantes.

En las primeras computadoras, el triestado era un circuito con diodos bipolares para conducir, bifurcar y desconectar el flujo de datos con los relevadores, bulbos o transistores. Ahora los microprocesadores usan compuertas lógicas triestado que conectan y desconectan señales en nanosegundos, aunque sus patas operativas operan en milisegundos, velocidad suficiente para manejar periféricos externos, y ser analizados sus estados lógicos por instrumentos multicanales sofisticados y costosos. La alternativa económica es el uso de un detector lógico para detectar en cada pata los tres estados lógicos con los pulsos de flancos positivos o negativos.


Circuito electrónico de Mìnimum

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.

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 entre pines 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.

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.

Para conocer una computadora con capacidades que desafían nuestra inteligencia primero hay que descubrir lo que hay en la estructura del núcleo del microprocesador, su hardware, firmware y su software, para manejar los algoritmos en nanosegundos, y su conversión de señales análogas al dominio digital. Minimum cumple estas funciones para una amplia area: educativa, control de mecanismos, programación de algoritmos con instrucciones del microprocesador, manejo de puertas de entradas y salidas para activar señales digitales o analógicas, para predecir el clima, cuidado del medio ambiente, construcción de instrumentos de laboratorio, manejo de señales de dispositivos, productos industriales o nuevas tareas en el area científica y tecnológica.

El propósito de crear Mínimum en solo 3x3 centímetros es para controlar proyectos mecatrónicos, donde cada gramo y espacio es valorable. Al construirlo utilizamos varias computadoras e instrumentos de precisión de diseño propio para comprobar cada etapa del circuito electrónico, se diseñó un circuito impreso de doble capa con pistas milimétricas, agregamos un enlace de comunicación con el lenguaje ensamblador, y finalmente el firmware que ilustra todos los los periféricos del microprocesador. Además de instrumentos de medición para los intervalos de temporización, para fijar los protocolos de grabación del MicroSD. UART, I2C, etc, interface gráfico a color, grabación del firmware en la memoria flash interna, y el programa de comunicación con el microprocesador.

Diagrama de la computadora Minimum. Con las pines de las puertas para entradas y salidas GPIO (General Purpose Input/Output) del microprocesador, al inicio siempre están en el modo para entrada, y se programan al modo para salida y otras funciones alternas, para visualizar LCD, canales de timer, lineas de control para periféricos, motores paso a paso, CNC, impresoras 3D, robots, drones, teléfonos o automóviles. Algunas puertas son exclusivas para interfazar memorias SD, USB, y otros periféricos.
Circuito impreso de 3x3 centímetros de Mínimum, con pistas de doble capa para los componentes del microprocesador de la computadora, con regulador de voltaje e interfaz RS232, incluye islas de conexión para otros componentes como: condensadores contra ruidos, resistencias e inductores, diodo para batería, cristales de cuarzo para la frecuencia del reloj calendario y la frecuencia del interfaz USB del microprocesador.

Comunicación con Mínimum

Para enlazar Minimum a la computadora anfitrión se utiliza un cable serializado para transmitir y recibir datos del microprocesador, un programa de comunicaciones de creación propia con un editor, ensamblador y ordenador, guarda, enlista y ejecuta todas las ordenes que suministra el monitor o debug que ya viene incluido en el microprocesador. Los fabricantes de microprocesadores instalan su firmware exclusivo de comunicación, algunos los nombran bootloader o ISP (In-System-Programming). Particularmente, el microprocesador de Mínimum tiene un depurador con 12 ordenes: para examinar y escribir en la memoria, ejecutar programas del usuario, listar las ordenes incluidas, además de borrar y programar la memoria flash de 1,048,576 bytes, en 12 sectores que comienzan en la dirección 0800:0000 hexadecimal.

Nuestra plataforma con conectores USB y DB9 232C, es el anfitrión de la computadora Minimum y del curso anual de la Familia Toledo "Construye y programa tu computadora". Un software de creación propia comunica ordenes e instrucciones de programas, para depurar, listar, ensamblar instrucciones y ejecutar programas de cualquier tipo; mecatrónica, memoria SD, usos educativos, autoaprendizaje, calculadora científica, comunicación cableada, sensores o grabar una tarea definitiva en la memoria flash del microprocesador.

El microprocesador tiene seis UART (Universal Asynchronous Receiver And Transmitter), para un enlace cableado serializado, en una comunicación con el debug este examina cada UART hasta seleccionar el que está activado con la computadora anfitrión, y desconecta todos los periféricos restantes de comunicación. Se elige un UART y se fija la velocidad de transmisión de la computadora anfitrión a 115200 baudios, y envía la clave 7F hexadecimal para activar Mínimum, cuando el debug del microprocesador sincroniza la velocidad en baudios del UART anfitrión, la computadora responde al anfitrión con la clave 79 hexadecimal como señal de reconocimiento indicando que el enlace está establecido y el microprocesador preparado para recibir programas del anfitrión.

Interfaz serializado RS232C para comunicar al microprocesador con la computadora anfitrión. El switch de botón momentaneo reinicia Mínimum desde una locación prefijada para ejecutar el programa del usuario.

En el depurador WRITE (W) es la orden de escritura, pide al usuario teclear la dirección de la locación donde comienza el volcado de los datos e instrucciones para escribir el programa correspondiente. La orden GO (G) es para ejecutar en una dirección el programa correspondiente. El comienzo de cualquier programa inicia con dos datos de 32 bits, uno para fijar espacios de la memoria (SP) del microprocesador, y en la siguiente el apuntador de la locación donde se van a ejecutar las instrucciones del usuario.

¡Mi laptop solo tiene conector USB y no RS232C! No hay problema, coloque en el circuito impreso un cristal de cuarzo de 8 MHZ y dos condensadores de 20 picofaradios para que el microprocesador sea preciso en 20 PPM (Partes por millones) que requiere el interfaz USB. O también usar un convertidor comercial de USB a UART RS232C.

Circuitos adicionales para mejorar la computadora Minimum.

Programación digital

Lo que sigue es comprender el repertorio de instrucciones del microprocesador, para fabricar con los registros, puertas, guardar y leer datos procesados con la aritmética o la lógica digital, además de obtener el retardo preciso para un evento visual con luces o una pantalla con gráfico y caracteres. Programar optimamente un microprocesador se deriva de la experiencia y la voluntad de adquirirlo, concentrarse, perseverar, creer en el esfuerzo y tener caracter para buscar la verdad, inventar, crear belleza y prevalencia de la justicia. Afortunadamente, hay personas que trabajan por vocación, para una calidad de vida, por el honor y los desafios, diseñan y programan computadoras para máquinas-herramienta, descubren algoritmos de sistemas biológicos moleculares que ayudarán a erradicar enfermedades y continuan explorando el universo para hallazgos sorprendentes.

 

Siguiente artículo Siguiente articulo