Home MundoTec Software Código fuente Tutorial / pdf Minijuegos
Cerrar

Tutorial Microcontroladores

Tutorial Microcontroladores.







Microcontroladores

Memoria y Dispositivos de I/O.

Antes de poder discutir la operación de la CPU en detalle, es preciso conocer algunos conceptos respecto de la memoria de una computadora. En muchos cursos de programación para principiantes, se presenta a la memoria como si fuese similar a una matriz de casillas de correo o casillas de un guardarropa, donde se puede guardar mensajes u otra información. La analogía con casillas de correo o las casillas de un guardarropa, si bien son una buena aproximación a lo que sucede en una memoria, necesitan de alguna explicación adicional para describir exactamente el funcionamiento de la misma.

Analogía de las Casillas de Correo.

La misión final de cualquier arreglo circuital de memoria, es que tenga la capacidad de retener información. Obviamente no se satisface sólo con almacenar la información si no hay manera de retirarla. El arreglo de casillas de correo de un gran edificio de departamentos u oficina postal puede utilizarse como una memoria. Se podrá poner información en la casilla de correo de un número dado de departamento o número de usuario de oficina postal. Cuando se desee recuperar información se podrá ir a la casilla de correo de la dirección especifica (departamento o número de casilla) y retirar la información.

Lo siguiente es trasladar esta analogía para explicar más ampliamente como la computadora ve a la memoria. Confinaremos esta discusión para una computadora de 8 bits a los efectos de poder ser muy específicos.

En una CPU de 8 bits, cada casilla de correo puede pensarse como conteniendo un conjunto de ocho interruptores SI / NO. Al igual que en un casillero de correo, no se podrá colocar más información escribiendo más apretado, si ya se ha colmado su capacidad (ocho interruptores, cada uno de ellos abierto o cerrado). El contenido de una posición de memoria puede ser desconocido o indefinido en un momento dado, igual que el estado de los interruptores en la casilla de correo, pueden estar en un estado desconocido hasta que se los acciona por primera vez. Los ocho interruptores podrían estar en una fila donde cada uno de ellos representa un simple dígito binario (bit). Un “uno” binario corresponde a un interruptor en SI, y un “cero” binario corresponde a un interruptor en NO. Cada casilla de correo (posición de memoria) posee una única dirección tal que la información puede almacenarse y retirarse con confianza (no existen direcciones “gemelas”, hay una y solo una dirección posible para cada casilla).

En un edificio de departamentos, la dirección de la casilla de correo puede ser de 100 a 175 para el primer piso, de 200 a 275 para el segundo, etc. Estos son números decimales que tienen sentido para la gente. Como se discutió anteriormente, las computadoras trabajan con el sistema de numeración binario.

Una computadora con cuatro cables (líneas) de dirección puede únicamente identificar 16 direcciones, ya que un conjunto de cuatro 1’s y 0’s pueden formar 16 combinaciones distintas.

Esta computadora podría identificar la dirección de las primeras 16 posiciones de memoria (casillas de correo) con los valores hexadecimales que van del $ 0 al $ F.

En los pequeños microcontroladores como el MC68HC705J1A (familia HC705 OTP de Freescale) hay diez líneas de dirección con las que estos MCUs pueden manejar 1024 (o 2 a la 10) posiciones de memoria únicas. Los microcontroladores de 8 bits de propósitos generales como el MC68HC11 o el MC68HC908 poseen 16 líneas de dirección con las que son capaces de direccionar 65536 (o 2 a la 16) posiciones de memorias únicas.

Elementos básicos de Lógica binaria.

A continuación, mostraremos algunos de los elementos básicos utilizados en el interior de un MCU para implementar la lógica binaria necesarias para muchas de sus funciones. Sugerimos al lector no experimentado con lógica binaria y álgebra de Boole, consultar en textos técnicos específicos sobre lógica binaria y álgebra Boolena. En el presente curso, se dará por sentado los conocimientos mínimos necesarios sobre este tema.

Microcontroladores
Microcontroladores
Microcontroladores
Microcontroladores

Como ve una Computadora a la memoria.

Una computadora de 8 bits con 10 líneas de dirección (podría ser el caso del MCU MC68HC705J1A) ve a la memoria como una columna continua de 1024 (ó 2 a la 10) valores de 8 bits. La dirección de la primer posición de memoria es 00 0000 0000 (2) y la de la última es 11 1111 1111 (2). La dirección de diez bits se expresa normalmente como dos números de 8 bits que se vuelcan en cuatro dígitos hexadecimales. En notación hexadecimal, el rango de estas direcciones va desde $0000 a $03FF.

La computadora especifica que posición está siendo accedida (lectura desde o escritura sobre) colocando una única combinación de unos y ceros sobre las líneas de dirección. La intención de leer la posición o escribir en ella se señaliza colocando un uno (leer) o un cero (escribir) sobre una línea denominada “leer / escribir” (R/W). La información de o para la posición de memoria es transportada por las ocho líneas de datos.

Para una computadora cualquier posición puede ser leída o escrita. No todos los tipos de memoria soportan la escritura, pero es tarea del programador saberlo, no de la computadora. Si el programador por error instruye a la computadora a escribir en una memoria de lectura solamente, esta tratará de hacerlo.