Capitulo_1

1. Introducción a los microcontroladores Arquitectura de Microcomputadoras Fernando Flores Septiembre / 2008 Control

Views 55 Downloads 4 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

1. Introducción a los microcontroladores Arquitectura de Microcomputadoras

Fernando Flores

Septiembre / 2008

Controlador •

Un controlador es un dispositivo que se emplea para el gobierno de uno o varios procesos. Aunque el concepto de controlador ha permanecido invariable a través del tiempo, su implementación física ha variado frecuentemente.



Hace tres décadas, los controladores se construían exclusivamente con componentes de lógica discreta, posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. Prácticamente se trataba de una computadora en una sola tarjeta (SBC, Single Board Computer).

2

Controlador •

Aunque un controlador prácticamente incluye los elementos necesarios para ser considerado como una computadora, frecuentemente no es tratado como tal, ya que su uso típico consiste en el desempeño de funciones de “control” interactuando con el “mundo real” para monitorear condiciones (a través de sensores) y en respuesta a ello, encender o apagar dispositivos (por medio de actuadores).



Los controladores están enfocados a sistemas de propósito específico, por ejemplo: cajas registradoras, hornos de microondas, videojuegos, videocámaras, equipos de sonido, instrumentos musicales, máquinas de escribir, fotocopiadoras, etc.

3

Controlador •

En la actualidad, todos los elementos del controlador se han podido incluir en un circuito integrado, el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero completo sistema contenido en un solo circuito integrado

MCU (Micro Controller Unit) SBC (Single board Computer)

4

Microcontroladores Un microcontrolador es un Circuito Integrado con tecnología VLSI que contiene una Unidad Central de Procesos (CPU), memoria para código, memoria para datos, además de otros recursos necesarios para el desarrollo de aplicaciones, por lo general con un propósito específico. Un microcontrolador es de hecho una computadora completa situada en un único chip.

5

Uso de los Microcontroladores

COMPUTADORAS 15%

CONSUMO 27%

INDUSTRIA 10%

AUTOMOVILES 18%

COMUNICACIONES 30%

6

Microprocesadores y Microcontroladores Aunque los microprocesadores y microcontroladores son dispositivos con algunas similitudes, existen diferencias importantes entre ellos, las cuales revisaremos desde 3 perspectivas diferentes: Hardware Aplicaciones Características del repertorio de instrucciones.

7

Hardware Microprocesadores • Es una Unidad Central de Procesamiento en un circuito integrado.

Microcontroladores • Además de la CPU, contiene: RAM, ROM, interfaz serial, interfaz paralela, manejo de interrupciones, temporizadores, etc. Todo en un circuito integrado. • Las limitantes en el microcontrolador son: – Velocidad de procesamiento – Tamaño de los datos – Espacio de direccionamiento de memoria 8

Aplicaciones Microprocesadores

Microcontroladores

• Los microprocesadores son comúnmente usados como CPU en las computadoras. Aunque también existen tarjetas de evaluación y desarrollo con base en algún microprocesador (SBC, Single Board Computer), pero éstas cada vez son menos comunes.

• Los microcontroladores son encontrados en sistemas mínimos desempeñando actividades orientadas a control.

• Son la base para la construcción de sistemas de propósito general.

• Son la base para sistemas con propósito específico.

9

Características del repertorio de instrucciones Microprocesadores • Los microprocesadores deben incluir modos de direccionamiento capaces de manejar grandes cantidades de datos. • Se espera que sus instrucciones operen sobre palabras (32 bits) o palabras dobles (64 bits).

Microcontroladores • Un microcontrolador debe poder manjar bits directamente. Por ejemplo: para encender o apagar un motor basta con cambiar el estado de un bit. • La mayoría de microcontroladores incluyen un procesador booleano que permite hacer operaciones lógicas directamente sobre bits. 10

Organización de una computadora

11

Organización de un microcontrolador Timer

CPU

Vcc

Gnd Oscillator

Watchdog Timer

Program Memory

UART (Serial Port)

RAM

8-bit DATA Bus

Analog I/O Port

Digital I/O Port

12

La Unidad Central de Procesos •

Administra todas las actividades en el sistema y ejecuta todas las operaciones sobre los datos. Su tarea puede reducirse a las siguientes operaciones: – – –



Atrapar una instrucción. Decodificarla. Ejecutarla.

Cada instrucción contiene un código de operación (opcode) y uno o más operandos sobre los que se realizará la operación. Estas instrucciones usualmente incluyen: – – – –

Aritméticas: suma, resta, producto, división, etc. Lógicas: AND, OR, NOT, etc. Transferencia de datos. Bifurcaciones (condicionales o incondicionales) Un grupo de instrucciones para un procesador particular forma su repertorio de instrucciones. Una familia de computadoras comparte un repertorio de instrucciones, aunque sus integrantes pueden variar en costo y rendimiento. 13

Tipos de CPUs •

CISC :Complex Instruction Set Computers



RISC : Reduced Instruction Set Computers



Una arquitectura RISC tiene pocas instrucciones y generalmente del mismo tamaño y muchas veces corresponde con el tamaño de los datos; en la CISC hay demasiadas instrucciones con diferentes tamaños y formatos, que pueden ocupar varios bytes, uno para el opcode y el resto para los operandos. Pero una instrucción CISC puede corresponder a varias instrucciones RISC.



Con tecnologías de semiconductores comparables e igual frecuencia de reloj, un procesador RISC típico tiene una capacidad de procesamiento de dos a cuatro veces mayor que la de un CISC y su estructura de hardware es tan simple, que se puede realizar en una fracción de la superficie ocupada por el circuito integrado de un procesador CISC.

14

La Unidad Central de Procesos (Visión simplificada) IR (Instruction Register)

PC (Program Counter)

Contiene la instrucción que actualmente se está ejecutando.

Contiene la dirección de la siguiente instrucción.

Unidad de decodificación y control

REGISTROS De función específica

ALU (Unidad Aritmético Lógica)

Y De propósito general

También conocido como Camino de datos (Data Path)

15

Tareas de la CPU 1)

Atrapar la instrucción: es una etapa fundamental que involucra los siguientes pasos: a)

El contenido del PC es colocado en el bus de direcciones.

b)

Una señal de control (READ) es activada.

c)

Un dato (la instrucción) es leído de la RAM y puesto en el bus de datos.

d)

El dato es colocado en el registro de instrucción (IR).

e)

El PC es preparado para la siguiente instrucción.

16

Tareas de la CPU (2) CPU

Addres Bus

N Program Counter

Data Bus

OPCODE Instruction Register Control Bus Clock OPCODE

Read

N+2 N+1 N N-1

17

Tareas de la CPU (3) 2)

Decodificación: consiste en descifrar el opcode para generar las señales de control necesarias, dependiendo del tipo de instrucción.

3)

Ejecución: consiste en la habilitación de la ALU para obtener algún resultado, cargar datos desde memoria, almacenar datos en memoria, modificar el valor del PC, etcétera (según las señales generadas por el control).

Una serie de instrucciones combinada para realizar tarea significativa es llamado programa.

alguna

El grado en el cual las tareas son realizadas eficiente y correctamente depende en mucho del software, no de qué tan sofisticado sea el CPU. 18

Sistema de Memoria Una computadora (y por lo tanto, también un microcontrolador) debe contar con memoria de código y memoria para datos. Existen 2 modelos o Arquitecturas, de acuerdo con la organización de la memoria: Bus de Direcciones

Memoria de Código y Datos

CPU

Arquitectura Von Neumann

Bus de Datos e Instrucciones

Arquitectura Harvard

Memoria de Código

Bus de Direcciones

Bus de Direcciones

CPU Bus de Instrucciones

Memoria de Datos

Bus de Datos

19

Sistema de Memoria  La mayoría de Microcontroladores utilizan una Arquitectura Harvard.  La memoria de código (o de instrucciones o de programa) almacena las instrucciones que forman al programa.  Para acomodar programas grandes, la memoria de código se puede particionar como memoria interna y memoria externa, en algunos microcontroladores.  Usualmente la memoria de programa es no volátil y puede ser del tipo EPROM, EEPROM, Flash, ROM enmascarable o OTP (one-time programmable).

 Para la memoria de datos, los microcontroladores pueden contener RAM o EEPROM, para el uso de variables o de una pila.

 Todos los microcontroladores tienen memoria interna de datos, en diferentes magnitudes, algunos además cuentan con la capacidad de expansión usando una memoria externa.

20

Timer

CPU

Watchdog Timer

Program Memory

UART (Serial Port)

RAM

Vcc Gnd

Oscillator

8-bit DATA Bus

Analog I/O Port

Periféricos incorporados a un microcontrolador

Digital I/O Port

La Unidad Central de Procesos va tomando las instrucciones de la memoria de programa a cierta frecuencia. Está frecuencia está determinada por el circuito de oscilación, el cual puede ser temporizado por un circuito RC o un cristal de cuarzo externo. Tan pronto como se suministra la alimentación eléctrica, el oscilador empieza su operación. 21

Timer

CPU

Vcc Gnd

Oscillator

Watchdog Timer

Program Memory

UART (Serial Port)

RAM 8-bit DATA Bus

Analog I/O Port

Digital I/O Port

Periféricos incorporados a un microcontrolador

El timer (Temporizador) es usado para eventos de tiempo, se compone de registros que se incrementan automáticamente cada ciclo de reloj y sus desbordamientos indican que ha transcurrido un intervalo de tiempo. El timer también puede ser usado para contar eventos, tanto internos como externos, en ese caso, el timer es conocido como contador. Por ejemplo, si alguna salida debe actualizarse a cierto intervalo de tiempo, el timer genera la señalización que le indica a la CPU cada que transcurre el intervalo deseado. 22

Timer

CPU

Vcc Gnd

Oscillator

Watchdog Timer

Program Memory

UART (Serial Port)

RAM 8-bit DATA Bus

Analog I/O Port

Periféricos incorporados a un microcontrolador

Digital I/O Port

El Watchdog Timer (perro guardián) es un temporizador con una función especial, también lleva un control de intervalos de tiempo, pero sus desbordamientos reinician al procesador (aplican un reset). Si se utiliza, en posiciones estratégicas del programa debe incluirse una intrucción que lo reinicie, para evitar que desborde. Su objetivo es que si por alguna condición externa el microcontrolador se cicla en algún estado inesperado, se reinicialice y regresé la operación al sistema. 23

Timer

CPU

Vcc Gnd

Oscillator

Watchdog Timer

Program Memory

UART (Serial Port)

RAM 8-bit DATA Bus

Analog I/O Port

Periféricos incorporados a un microcontrolador

Digital I/O Port

La mayoría de Microcontroladores cuentan con una UART (Universal Asynchronous Receiver Transceiver), para comunicación serial con dispositivos o sistemas externos, bajo protocolos y razones de transmisiones estándares. La comunicación serial puede ser: Síncrona: Además de la línea de datos se utiliza una línea de reloj. Asíncrona: Sólo hay una línea de datos, para el transmisor y receptor se deben configurar el Baud Rate (bits/segundo) y el formato de las tramas.

24

Timer

CPU

Watchdog Timer

Program Memory

UART (Serial Port)

RAM

Vcc Gnd

Oscillator

8-bit DATA Bus

Analog I/O Port

Digital I/O Port

Periféricos incorporados a un microcontrolador

Los microcontroladores usan componentes digitales de Entrada/Salida para intercambiar datos digitales con el mundo exterior. A diferencia del puerto serie donde se transfiere un bit a la vez, los puertos digitales permiten el intercambio de bytes. Todos los microcontroladores tienen estos puertos y son frecuentemente usados como entradas por medio de botones, interruptores, sensores con salida a relevador, etc., y como salidas para el manejo de LEDs, visualizadores de 7 segmentos, activación de motores, etc.

25

Timer

CPU

Watchdog Timer

Program Memory

UART (Serial Port)

RAM

Vcc Gnd

Oscillator

8-bit DATA Bus

Analog I/O Port

Periféricos incorporados a un microcontrolador

Digital I/O Port

Para entradas analógicas algunos microcontroladores incorporan Convertidores Analógico a Digital (ADC) o comparadores analógicos. Éstos son muy útiles por que sin recursos adicionales, permiten obtener información analógica del exterior, para monitorear parámetros como temperatura, velocidad, humedad, etc. Para salidas analógicas podría pensarse en un Convertidor Digital a Analógico (DAC) pero no es común que se incluya en un microcontrolador. Lo que algunos microcontroladores incluyen son salidas con Modulación por Ancho de Pulso (PWM), las cuales, con pocos elementos externos pueden 26 generar salidas analógicas.

Tipos de Arquitecturas de Microcontroladores •

Pueden clasificarse por la arquitectura del procesador como RISC o CISC.



Por el tamaño de los datos, se tienen microcontroladores de 4 bits, de 8 bits, de 16 bits y hasta de 32 bits.



Con base en como se puede tener acceso a la memoria de código y datos, se tienen 2 modelos Arquitectura Von Neumann y Arquitectura Harvard.



Otra clasificación proviene de la forma en que los datos internos son almacenados y manipulados dentro de la CPU. Los microcontroladores manipulan datos con ayuda de un programa de usuario, este esquema de clasificación distingue a las arquitecturas de acuerdo en como la CPU ejecuta las instrucciones y tiene acceso a los datos que involucra cada instrucción. Bajo este esquema, se tienen los siguientes modelos básicos: – – – –

Pila Acumulador Registro-Memoria Registro-Registro (También conocida como Carga-Almacenamiento)

27

Tipos de Arquitecturas de Microcontroladores Operación: C=A–B A, B y C son variables, por lo tanto, se encuentran en memoria de datos.

Pila:

push push sub pop

Acumulador:

A B C

Load A Sub B Store C

Registro-Memoria:

Load Rx, A Sub Rx, B Store C, Rx

Registro-Registro:

Load Load Sub Store

Rx, A Ry, B Rz, Rx, Ry C, Rz

28

Familias populares de microcontroladores Se muestran las versiones de mas bajo costo de las familias mas populares de microcontroladores de 8 bits: COMPANY

DEVICE

ON-CHIP MEMORY

AB Semicon Ltd

AB180-20

Nil

Atmel Corp

Dallas Semi

Hitachi

ATtiny11

DS80C310

H8/3640

1-kbyte flash

OTHER FEATURES Two 16-bit timers, UART, fixed-point arithmetic unit, DMA controller 8-bit timer, analog comparator, watchdog, on-chip oscillator, one external interrupt

256-byte RAM

Four clocks per machine cycle, UART, three 16-bit timer/counters, dual data pointers, ten internal/six external interrupts, power-on reset

8-kbyte ROM 512 byte RAM

Three 8-bit timers, one 16-bit timer, one 14-bit PWM timer, one watchdog, two SCI ports, eight 8-bit ADC, 32-kHz subclock generator 29

COMPANY

DEVICE

ON-CHIP MEMORY

OTHER FEATURES

Infineon

C501

8-kbyte ROM 512-byte RAM

Serial interface, three 16-bit timers, 32 I/O ports

PIC16CR54C

768-byte ROM 25-byte RAM

12 I/O pins, 8-bit timer, high-current sink/source for direct LED drive, watchdog timer, RC oscillator

8-kbyte ROM 256-byte RAM

2.2 to 5.5V operation; 16-bit-wide address bus; three 8-bit timer; 16-bit watchdog timer; 10-bit, eight-channel ADC; UART; one clock-synchronized serial port; one external interrupt, seven high-current output ports for LED operation; key-on wake-up function, 29 programmable-I/O ports, built-in clockgenerating circuit

1240-byte OTP 64-byte RAM

15-stage multifunction timer, on-chip oscillator, low-voltage reset, watchdog, keyboard interrupt, high-current I/O port

Microchip

Mitsubishi

Motorola

M37531M4

68HC705KJ1

30

COMPANY NEC

Philips

Samsung

Scenix

STMicro

Toshiba

DEVICE

ON-CHIP MEMORY

789011

2-kbyte ROM 128-byte RAM

Two 8-bit timers, UART, 22 programmable I/O ports, two-channel serial interface

P87LPC762

2-kbyte OTP 128-byte RAM

Oscillator, watchdog, 32-byte customercode EPROM, UART, I2C, comparators, timers/counters, brown-out detector, power-on reset, keypad wake-up, LED drivers

KS86C0004

4-kbyte ROM 208-byte RAM

RC oscillator, 12-pin key matrix, one 8-bit timer/counter, 14 interrupt sources, 32 I/O ports

SX28AC

3-kbyte flash 136-byte RAM

Analog comparator, programmable I/O, brown-out detector, 8-bit timer, watchdog

ST6203CB1

TMP87C405AM

OTHER FEATURES

8-bit timer, watchdog, nine I/O lines 1-kbyte ROM or with high-current capability, internal OTP backup oscillator system, brown-out 64-byte RAM detection 4-kbyte ROM 256-byte RAM

Nine interrupt sources, programmable watchdog timer, 22 programmable I/O 31 ports

Elección de un Microcontrolador Consideraciones Básicas:

• Prestaciones Gama baja: 4, 8 y 16 bits. Dedicados fundamentalmente a tareas de control (electrodomésticos, cabinas telefónicas, smart-cards, algunos periféricos de ordenadores, etc.) Generalmente son µC. Gama media: 16 y 32 bits. Tareas de control con cierto grado de procesamiento (control en automóvil, teléfonos móviles, PDA,…) Suelen ser P o C + periféricos integrados, y memoria externa. Gama alta: 32, 64 y 128 bits. Fundamentalmente procesamiento (ordenadores, videoconsolas, etc.) Casi en su totalidad son µP + circuitería periférica + memoria

• Tecnología – Alimentación (5v, 3.3v, 2.5v, 1.5v) – Consumo (desde µW a decenas de W) – Frecuencia (desde KHz a GHz)

32

Elección de un Microcontrolador Criterios de selección. ¿Qué µP/µC uso? • Requisitos y coste: – Prestaciones: ¿Cumple especificaciones? Análisis del rendimiento medio o del peor caso (en esto influye tanto el hardware como el software) – Tecnología: Alimentación, consumo – Coste: (desde 2 USD a 1000 USD o más) – Fiabilidad: Fundamental en aplicaciones de soporte vital • Herramientas de desarrollo (precio, complejidad, prestaciones) • Otros factores – Experiencia y soporte – Compatibilidad – Disponibilidad y segundas fuentes

33

Elección de un Microcontrolador • Repercusión del tiempo de desarrollo sobre los beneficios: Pequeños retrasos en el tiempo de puesta en el mercado pueden producir grandes pérdidas • Vida media de un producto: La vida media de los productos tecnológicos es cada vez más corta (hoy en día, en torno a 2 años) • Obsolescencia de la tecnología: La rápida evolución de la tecnología hace que los tiempos de desarrollo deban ser cortos para mantener competitividad. Ej: Hacemos un diseño de una agenda electrónica, que

hoy es competitivo (con un ARM, a 100MHz, y un consumo de 10mW/MHz), pero tardamos dos años. Cuando salga al mercado puede no ser competitivo (podría haber ARMs a 300 Mhz y 5mW/MHz).

34