Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Microcontroladores.
7.-”C”
Ingeniería Mecatrónica.
1.1 Diferencia entre microcomputador, microprocesador
y microcontrolador.
Los microcontroladores disponen de un oscilador que genera los pulsos que sincronizan
todas las operaciones internas. El oscilador puede ser del tipo RC, aunque generalmente
se prefiere que esté controlado por un cristal de cuarzo (XTAL) debido a su gran
estabilidad de frecuencia. La velocidad de ejecución de las instrucciones del programa
está en relación directa con la frecuencia del oscilador del microcontrolador.
Igual que en un microcomputador, la CPU es el
"cerebro" del microcontrolador. Esta unidad trae
las instrucciones del programa, una a una, desde
la memoria donde están almacenadas, las
interpreta (descodifica) y hace que se ejecuten.
En la CPU se incluyen los circuitos de la ALU para
realizar operaciones aritméticas y lógicas
elementales con los datos binarios. La CPU de un
microcontrolador dispone de diferentes registros,
algunos de propósito general y otros para
propósitos específicos. Entre estos últimos están
el Registro de Instrucción, el Acumulador, el
Registro de Estado, el Contador de Programa, el
Registro de Direcciones de Datos y el Puntero de
la Pila. El Registro de Instrucción (RI) almacena
la instrucción que está siendo ejecutada por la
CPU. El RI es invisible para el programador. El
Acumulador (ACC: Accumulator) es el registro
asociado a las operaciones aritméticas y lógicas
que se pueden realizar en la ALU. En cualquier
operación, uno de los datos debe estar en el ACC
y el resultado se obtiene en el ACC. El ACC no
existe en los microcontroladores PIC, que tienen
en cambio el registro W (Working Register), con
características muy parecidas a las del ACC.
El Registro de Estado (STATUS) agrupa los bits indicadores
de las características del resultado de las operaciones
aritméticas y lógicas realizadas en la ALU. Entre estos
indicadores están el signo el resultado (si es positivo o
negativo), si el resultado es cero, si hay acarreo o
préstamo, el tipo de paridad (par o impar) del resultado,
etc. El Contador de Programa (PC: Program Counter) es el
registro de la CPU donde se almacenan direcciones de
instrucciones. Cada vez que la CPU busca una instrucción en
la memoria, el PC se incrementa, apuntando así a la
siguiente instrucción. En un instante de tiempo dado, el PC
contiene la dirección de la instrucción que será ejecutada a
continuación. Las instrucciones de transferencia de control
modifican el valor del PC. El Registro de Direcciones de
Datos (RDD) almacena direcciones de datos situados en la
memoria. Este registro es indispensable para el
direccionamiento indirecto de datos en la memoria. El RDD
toma diferentes nombres según el microcontrolador. En los
PIC, el RDD es el registro FSR (File Select Register).
El Puntero de la Pila (SP: Stack Pointer) es el registro que almacena
direcciones de datos en la pila. En el capítulo 4 se estudian con
detalle la pila y el registro SP. Los microcontroladores PIC carecen
de registro SP. La memoria del microcontrolador es el lugar donde
son almacenadas las instrucciones del programa y los datos que
manipula. En un microcontrolador siempre hay dos tipos de
memoria: la memoria RAM (Random Access Memory) y la memoria
ROM (Read On.ly Memory). La memoria RAM es una memoria de
lectura y escritura, que además es volátil, es decir, pierde la
información almacenada cuando falta la energía que alimenta la
memoria. La memoria ROM es una memoria de solo lectura y no
volátil. Las diferentes tecnologías para realizar las memorias de
solo lectura (ROM, EPROM, EEPROM, OTP, FLASH) se estudian en el
capítulo 3. Tanto la memoria RAM como las memorias ROM son de
acceso aleatorio, pero la costumbre ha dejado el nombre de RAM
para las memorias de lectura y escritura. El término "acceso
aleatorio" se refiere a que el tiempo necesario para localizar un
dato no depende del lugar de la memoria donde esté almacenado.
En las memorias de acceso secuencial, en cambio, cuando más
alejado esté un dato de la posición a la que se ha accedido por
última vez, más se tarda en localizarlo.
La memoria ROM se usa para almacenar
permanentemente el programa que debe
ejecutar el microcontrolador. En la
memoria RAM se almacenan
temporalmente los datos con los que
trabaja el programa. Un número creciente
de microcontroladores dispone de alguna
memoria no volátil de tipo EEPROM para
almacenar datos fijos o que sólo sean
cambiados esporádicamente. La cantidad
de memoria ROM disponible es
normalmente muy superior a la cantidad
de memoria RAM. Esto obedece a dos
razones: la primera es que la gran
mayoría de las aplicaciones requieren
programas que manejan pocos datos;
entonces basta una memoria RAM en la
que se pueda almacenar algunas decenas
de datos. La segunda razón es que la
memoria RAM ocupa mucho más espacio
en el circuito integrado que la memoria
ROM, de modo que es mucho más costosa
que ésta.
La entrada y salida es particularmente
importante en los microcontroladores,
pues a través de ella el microcontrolador
interacciona con el exterior. Forman
parte de la entrada y salida los puertos
paralelo y serie, los temporizadores y la
gestión de las interrupciones. El
microcontrolador puede incluir también
entradas y salidas analógicas asociadas a
convertidores A/D y D / A. Tienen
particular importancia los recursos que
garantizan un funcionamiento seguro del
microcontrolador, como el denominado
perro guardián. Los puertos paralelos se
organizan en grupos de hasta 8 líneas de
entradas y salidas digitales.
Normalmente es posible manipular
individualmente las líneas de los puertos
paralelos. Los puertos serie pueden ser
de varios tipos, según la norma de
comunicación que implementen: RS-
232C, I2C, USB, Ethernet, etc.
Un requisito general para que un microcontrolador se pueda
utilizar en un gran número de aplicaciones es que tenga
muchos recursos de entrada y salida. Este requisito está
relacionado con el número de terminales del circuito
integrado. A la vez se desea tener esos recursos en un
circuito integrado lo más pequeño posible. Si cada bloque de
entrada y salida tuviera terminales exclusivos en el
microcontrolador, posiblemente no alcanzarían los
terminales o habría que fabricar microcontroladores con muy
pocos recursos de entrada y salida, en contra del interés
general. La solución para este problema es que un número
importante de terminales del circuito integrado sean
compartidos por unidades de entrada y salida diferentes. Es
decir, un mismo terminal puede estar conectado
internamente a más de un bloque de entrada y salida. Por
ejemplo, las líneas de entrada y salida de un puerto serie
pueden ser parte de las líneas de un puerto paralelo, etc.
1.5 Componentes del microcontrolador
1.5.1 Registros
internos.
Los registros no son localidades de
memoria, están construidos con
FilFlops y son parte del camino de
datos del CPU.
Casi todas las instrucciones
requieren del uso de un registro y
algunas solo funcionan con un
registro en especifico.
La lectura y escritura de los
registros es lo más rápido en un
procesador
1.5.2 Tipos y distribución de las
memorias internas.
● Flash/ROM: Puede usarse para almacenar tanto código
como datos. Se puede acceder tanto por bytes como por
palabras. Usualmente se trabaja como memoria de solo
lectura. No es volátil
● RAM: Aunque puede usarse tanto para código como para
datos, es raro usarla para código. Es volátil y al arrancar el
programa tiene valor aleatorios, por lo que debe asignarse
un valor inicial a las variables en RAM.
1.5.3 periféricos
Ensamblador se refiere a un tipo de programa, informático que se encarga de traducir un fichero fuente escrito en un lenguaje
ensamblador, a un fichero objeto que contiene código máquina ejecutable directamente por la máquina para la que se ha
generado.La tarea fundamental de un ensamblador es traducir un programa en lenguaje de ensamblador al código
correspondiente en lenguaje de máquina.
Tipos De Ensambladores
Ensambladores cruzados: Se denominan así a los ensambladores que se utilizan en una computadora que posee el procesador
diferente al que tendrán las computadoras donde se va a ejecutar el programa objeto producido. Ensambladores residentes: Son
aquellas que permanecen en la memoria principal de la computadora y cargar para su ejecución al programa objeto producido.
Micro ensambladores: Al programa que indica al intérprete de instrucciones de la CPU como debe actuar se le denomina
microprograma. El programa que ayuda a realizar este microprograma se llama micro ensamblador.
Ensambladores de una fase: leen una línea y la traducen directamente para producir una instrucción de lenguaje maquina o la
ejecuta si se trata de una
pseudosinstrucción. Se construye la tabla de símbolos a medida que aparecen las definiciones de variables, etiquetas, etc.
Ensambladores de dos fases: Realiza la traducción en dos etapas: 1° fase leen el programa fuente y construyen la tabla de
símbolos, 2° fase vuelve a leer el programa fuente y pueden ir traduciendo totalmente pues reconocen la totalidad de los
símbolos.
Compilador:
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de
programación a otro lenguaje de programación, generando un programa equivalente que la maquina
será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también
puede ser simplemente texto. Este proceso de traducción se conoce como compilación.
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje
de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de maquina). De esta manera
un programador puede diseñar un programa en un lenguaje mucho más cercano a cómo piensa un
ser humano, para luego compilarlo a un programa más manejable por una computadora.
Fases del compilador
Clasificación De Compiladores
De una pasada: Examina el código fuente una vez, generando el código o programa objeto.
Pasadas múltiples: Requiere pasos intermedios para producir código en otro lenguaje y una
pasada final para producir y optimizar el código producido durante pasos anteriores.
Compiladores incrementales: Generan un código objeto, instrucción por instrucción cuando el
usuario teclea cada orden individual.
Compilador cruzado: Se genera código en lenguaje objeto para una maquina diferente a la que
se está utilizando para compilar.
Compilador con montador: Compila distintos módulos de forma independiente y después es
capaz de aplazarlos.
1.7.2 Simulador, debugger y emulador.
SIMULADOR:
Los simuladores más complejos son evaluados y cualificados por las autoridades competentes. En el
caso de los simuladores de vuelo la cualificación la realiza la organización de aviación civil de cada
país, que proporciona a cada simulador un código indicando su grado de realismo. En los simuladores
de vuelo de mayor realismo las horas de entrenamiento contabilizan como horas de vuelo reales y
capacitan al piloto para realizar su labor.
EMULADOR:
Es un software que permite ejecutar programas o videojuegos en una plataforma (sea una
arquitectura de hardware o un sistema operativo) diferente de aquella para la cual
fueron escritos originalmente. A diferencia de un simulador, que solo trata de reproducir
el comportamiento del programa, un emulador trata de modelar de forma precisa el
dispositivo de manera que este funcione como si estuviese siendo usado en el aparato
original.
DEPURADOR:
(En inglés, debugger), Es un programa usado para probar y depurar (eliminar) los errores de otros
programas (el programa "objetivo"). El código a ser examinado puede alternativamente estar
corriendo en un simulador de conjunto de instrucciones (ISS), una técnica que permite gran
potencia en su capacidad de detenerse cuando son encontradas condiciones específicas pero será
típicamente algo más lento que ejecutando el código directamente en el apropiado (o el mismo)
procesador. Algunos depuradores ofrecen dos modos de operación - la simulación parcial o
completa, para limitar este impacto.
Si es un depurador de nivel de fuente o depurador simbólico, comúnmente ahora visto en entornos
de desarrollo integrados, cuando el programa "se estrella" o alcanza una condición predefinida, la
depuración típicamente muestra la posición en el código original. Si es un depurador de bajo nivel o
un depurador de lenguaje de máquina, muestra la línea en el fuente desensamblado (a menos que
también tenga acceso en línea al código fuente original y pueda exhibir la sección apropiada del
código del ensamblador o del compilador). Un "estrellamiento" sucede cuando el programa no
puede continuar normalmente debido a un error de programación. Por ejemplo, el programa pudo
haber intentado usar una instrucción no disponible en la versión actual del CPU o haber intentado
tener acceso a memoria protegida o no disponible.
1.7.3 Equipos programadores (downloaders).
Un programador es una herramienta hardware que traduce información de un
determinado lenguaje (hex, ASCII,?) en información que pueda interpretar el
microcontrolador para el funcionamiento correcto de la placa que utilicemos.
Características generales
• Pueden programar distintos tipos de memorias y microcontroladores
• Conexión serie o paralela según modelos
• Fácilmente actualizables
• Permiten testear circuitos integrados
Programador Universal SCM MP−UNIV
Programador universal expansible por software
Soporta una amplia familia de dispositivos programables
Función de testeo de circuitos integrados digitales
Convertible en un emulador de ROM mediante un opcional soportando
memorias de hasta 4Mb
Advantech Lab TOOL −48
Programador universal con zócalo ZIF de 48 pines DIP
Conectado a PC por puerto paralelo
Software para Windows 95/98/2000/NT
Fácilmente actualizable mediante Internet
Gran rapidez de programación (utilizando memoria flash de 8Mb)
La programación se inicia al insertar el componente en el zócalo
No necesita adaptadores para componentes en DIP
Programador De Memoria Y Microcontroladores