microcontro ladores€¦ · el progreso en la integración de circuitos causó un rápido...

30
MICROCONTRO LADORES Ing. Jhon Abel Ordoñez Ingali

Upload: others

Post on 30-Mar-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROCONTROLADORES Ing. Jhon Abel Ordoñez Ingali

Page 2: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

INTRODUCCIÓN El diseño de sistemas digitales es soportada por cientos de diferentes

circuitos integrados suministrados por muchas productores en el mundo. El crecimiento permanente de la velocidad, integración y reducción de costo de los circuitos integrados ha permitido que se usen sistemas digitales en vez de soluciones analógicas clásicos.

El crecimiento del poder computacional puede ser demostrado con el siguiente ejemplo: Un microcontrolador tiene el mismo poder computacional que una computadora de escritorio de 1992, 4 veces una computadora IBM de 1981,

Los circuitos digitales están compuestas por compuertas lógicas. Las salidas de in circuitos son gobernadas por al álgebra booleana. Es decir realiza operaciones lógicas y aritméticas. Sin embargo es no es suficiente para la construcción de autómatas, también es necesario memoria.

Page 3: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

COMPUTADORAS DE CONTROL Las primeras computadoras fueron hechas para uso científico-técnico y

aplicaciones de bases de datos. La invención en 1971 del CPU causó una revolución en la tecnología de la computación. A inicios de 1981 se introdujeron computadoras con múltiples partes y de uso personal y diario. En este tiempo se usa la computadora como una herramienta de procesamiento de texto, calculadora, juegos, dibujo, procesamiento multimedia y presentaciones.

La programabilidad de los controladores otorgan flexibilidad a los dispositivos como algún tipo de inteligencia (fuzzy logic), y una acción amigable para el usuario. Esto asegura una mayor confiabilidad y fácil mantenimiento, repraciones, auto calibración, autodiagnóstico e introduce la posibilidad de interconexión o jerarquía de control.

Page 4: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

COMPUTADORAS DE CONTROL Las microcomputadoras embebidas son basadas en arquitectura Harvard

donde la memoria de datos e instrucciones están separadas. El firmware (Program code) es compilado sobre un sistema de desarrollo y este reside sobre un amemoria no volátil. De esta manera el programa se ejecuta automáticamente cuando el dispositivo tenga power supply.

Para memorias relativamente caras y shock sensitive como hard disk y vacuum tube monitors fueron reemplazadas por memory cards o Solid State Disk(SSD).

El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria de datos , generados de reloj, y una diversidad de circuitos periféricos son integrados con el CPU para insertarlos a un solo chip completo.

Page 5: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

COMPUTADORAS DE CONTROL Los Digital Signal Processors(DSPs) son

microprocesadores embebidos con algunos perféricos pero con un external ADC/DAC, los cuales representan los mas importantes canales de I/O. Los DSP tiene una arquitectura de cómputo paralelo y un set de instrucciones en Fixed point or Floating point optimizado para operaciones de procesamiento de señales como discrete transformations, filtering, etc. Podemos encontrar DSPs en aplicaciones como sound procesing/generation, sensor signal analysis, telecomunicaciones(modulación/demodulación,transceivers) y control vector de AC motors.

Page 6: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

COMPUTADORAS DE CONTROL Para producciones en masa se encuentran disponible un amplio

conocimiento de operación, acceso a software de desarrollo y debugging, millones de códigos listos para usar.

Como resultado de la expansión computacional , existe un completo espectro de powerfull Workstation, PCs y VXI systems (mas de 1GFLOPS/MIPS, potencia mayor a 100W), módulos para computadoras(100-300 MFLOPS/MIPS, menos de 1000 dolares), módulos de microprocesadores(16/8 bits,10-30 MIPS, menos de 100 dolares), microcontroladores complejos(16/8 bits,10-30 MIPS, cerca de 10 dolares), microcontroladores simples(cerca de 1 dolar).

EN LA ACTUALIDAD SE TIENEN CONTROLADORES LOW COST

Page 7: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADORES Y MICROCONTROLADORES No existe un límite estricto entre microprocesadores y microcontroladores,

porque algunos chips pueden acceder a código externo y/o data(microprocessor mode) y son equipados con componentes periféricos.

Alguno tienen osciladores internos RC y no necesitan de un componente externo como un cristal. Las frecuencia varian desde 32 HKz y 75MHz. Algunos cuentan con Watchdog para problemas de ejecución del programa.

En la taxonomía de un microcontrolador aparecen características como: Estructura y complejidad de interrupciones, nivel de sensitividad de fuentes externas y eventos(periféricos) y manipulación de interrupciones.

Si bien los microcontroladores de 16 y 32 bits son para aplicaciones expeciales, en su mayoría se usan microcontroladores de 8 bits. Algunos pueden operar 16/32 bits en Fixed point. En la actualidad estos microcontroladores tienen un FPU, son construidos como RISC y tiene un alto nivel de pipeling.

Page 8: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADORES Y MICROCONTROLADORES Los diseños básicos de los microcontroladores son similares. La siguiente

figura muestra la estructura básica de un microcontrolador. Todos los componentes son conectados via bus y son integradas en un chip. Los módulos son conectados al exterior mediante I/O pins. Processor Core Memory Interrupt Controller Timer/Counter Digital I/O Analog I/O Interfaces Watchdog timer Debugging Unit

Page 9: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE El procesor core(CPU) es la parte mas importante de cualquier

microcontrolador. Todo microcontrolador contiene un microprocesador, por ejemplo el microcontrolador Motorola contiene el CPU 68000. ARQUITECTURA

Page 10: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE ARQUITECTURA

Arithmetic Logic Unit(ALU) Se encarga de realizar computos(AND,ORD, ADD,SUBS,etc). Tiene señales de control que

seleccionan el tipo de operación a realizar. El ALU toma 2 entradas y retorna el resultado con otras señales extra. La fuente y destino de los datos son tomados y almacenados en registers o desde memoria. Dependiendo de la naturaleza del resultado se tiene un status register: Z(Zero): El resultado de la operación es cero N(Negative): El resultado de la operación es negativo, el MSB del resultado es 1 O(Overflow): Se produce overflow, es decir, se cambió el signo en la operación two’s

complement, C(Carry): Se produce carry out. Un bit extra de la operación

Page 11: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE ARQUITECTURA

Arithmetic Logic Unit(ALU)

Page 12: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE ARQUITECTURA

Register File Contiene los registros de trabajo del CPU, consiste en general purpose register. Cada de

uno de estos puede ser la fuente o destino de una operación, o también pueden ser dedicados (por ejemplo acumulador).

Page 13: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE

ARQUITECTURA Stack Pointer(SP)

Es stack porción de memoria en el espacio de datos, los cuales pueden ser usados por el CPU para almacenar o retornar direcciones y posibilitar registrar contenidos durante subrutinas y servicios de interrupución. Es accesado mediante los comandos PUSH(colocar algo en el stack) y POP(eliminar algo del stack). El CPU contiene un registro especial llamado Stack Pointer. Este pointer puede decrementar o incrementar

Page 14: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE

ARQUITECTURAVon Neumann

En esta arquitectura, programas y datos están almacenados juntos y son accesados mediante el mismo bus. Desafortunadamente, esto implica que el acceso a programa y datos pueda ser confictivo, ocasionando un bottleneck

Harvard Programas y datos están almacenados en diferentes memorias y son accesadas mediante distintos buses. Esto evitas conflictos y mejora el desempeño. Requiere mas componentes Hardware, ya que necesita 2 buses y 2 memorias o una memoria dual port.

Page 15: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE

INSTRUCTION SET El instruction ser es una característica importante del CPU. Esto influye en el tamaño de código, es decir cuanto espacio de memoria toma el programa. Por lo tanto se debería escoger un controlador que mejor se ajuste a las necesidades. Las métricas para el diseño de un instrucción set son los siguientes: Instruction Size Execution Speed Available Instructions Addressing Modes

Page 16: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE

INSTRUCTION SET

Page 17: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE INSTRUCTION SET

Page 18: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE

INSTRUCTION SET Instruction Size

Una instrucction contiene en su opcode información acerca de la operación y operandos a ser ejecutados. Obviamente, una máquina con muchas diferentes instrucciones y modos de direccionamiento(Addressing modes) requieren opcdodes mas grandes que una máquina de pocas instrcciones y direccionamiento. CISC tiende a tener opcodes mas grandes que RISC.

Opcodes mas grandes no necesariamente implica que tu programa ocupe mas espacio.

Page 19: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE

INSTRUCTION SET Instruction Size

Page 20: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE

INSTRUCTION SET Instruction Size

Si uno necesita sólo instrucciones ya provistas por una arquitectura con opcode cortos, lo mas probable es que se deseche una máquina con opcodes largos. Decimos los mas probable ya que los CISC con opcodes largo tienden a compensar este déficit con variable size instructions. Es to quiere decir que para operaciones complejas se tendrán opcodes de 32 bits y para instrucciones simples sólo 8 bits. Esto tiene la desventaja de hacer mas complejo el Fetching y decoding.

Ovbiamente, un monton de espacio de opcode es toamdo por los operandos. Una manera de reducir el instrucción set es cortar el numero de operandos que son explícitamente encodificadas en el opcode.

Page 21: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE INSTRUCTION SET

Instruction Size En consecuencia, podemos distinguir 4 tipos de arquitecturas, dependiendo

de cuantos operando explícitos requiera una operación binaria: Stack Architecture: Esta arquitectura es también llamado 0-address

format architecture. No tiene operandos explicitos. En cambio el operando es organizado como un stack: Una instrucción como ADD toma los 2 valores mas arriba en el stack, los suma y coloca el resultado en el stack.

Accumulator Architecture: También es llamado 1-address format architecture. Tiene un acumulador, el cual siempre es usado como uno de los operandos y como registro de destino.

2-Address Format Architecture: Ambos operandos son especificados. Peo uno de ellos es usado como destino de almacenamiento. Dependiendo del controlador, en ATmega16 el 1er registro es destino, en 68000 usa el 2do registro

3-Address Format Architecture: Tanto operando como destino son especificados. Este tipo es mas flexible

Page 22: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE

INSTRUCTION SET Instruction Size

En consecuencia, podemos distinguir 4 tipos de arquitecturas, dependiendo de cuantos operando explícitos requiera una operación binaria:

Page 23: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE

INSTRUCTION SET Execution Speed

La velocidad de ejecución de una instrucción depende de varios factores. Es mayormente influenciado por la complejidad de la arquitectura, generalmente se espera que los CISC requieran mas ciclos para ejecutar una instrucción que RISC. También depende del tamaño de la palabra 8bits, 32bits.Finalmente, la frecuencia del oscilador define la velocidad absoluta de la ejecución, desde un CPU que puede ser operado en 20Mhz puede permitirse tomar el doble de ciclos de reloj y aún así será mas rápido que un CPU que opere a 8MHz.

Page 24: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE

INSTRUCTION SET Available Instructions

Por supuesto, la naturaleza de las instrucciones disponibles es un criterio importante para la selección de in controladore. Estas instrucciones usualmente se dividen en varias clases. Arithmetic Logic Instructions: Computan ADD, SUB, MUL,… y AND,

OR, XOR…Tambien incluyen bit operations, como BSET(set a bit), BCLR(clear a bit) y BTST(comprobar si un bit es set). Las operaciones SHIFT, los cuales mueven los contenidos de un registro

1 bit a la derecha o izquiera, son provistas como lógicas y aritméticas Data Transfer: Transfieren datos entre 2 registros, entre registros y

memoria o entre locaciones de memoria. Contienen instrucciones como LD(load) y ST(store), pero tambien acceso al stack PUSH y POP.

Page 25: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE

INSTRUCTION SET Available Instructions

Program Flow: Son instrucciones que influyen en el flujo de programa. Incluyen instrucciones de JUMP, el cual cambia la counter a una nueva dirección, condicional Branch como BNE, llamadas de subrutina, y llamadas que retornan desde subrutinas como RET o RETI(retorno desde una rutina de servicio de interrupcción)

Control Instructions: Esta clase contiene todas las instrucciones que influyen la operación del controlador. La instrucción mas simple es NOP, el cual dice al CPU no hacer nada. También incluyen instrucciones especiales como power-management, reset, debug mode control, etc

Page 26: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE INSTRUCTION SET

Addressing Modes Cuando se usa una instrucción aritmética, el programador de la aplicación puede ser capaz de especificar los operandos explícitos de la instrucción. Los operandos pueden ser constantes, contenidos de registros, o contenidos de memoria. Por lo tanto el procesador debe proveer medios para especificar el tipo de operando. Mientras cas procesador permite especificar los tipos anteriores, el acceso a locaciones de memoria puede ser relaizado de muchas diferentes memorias dependiendo qué sea requerido. Entonces el número y tipos de addressing modes provistos es otra característica importante de cualquier procesador. Existen numerosos addressing modes: Immediate/literal: El operando es constante Register: El operando es el registro que contiene el valor o que debería ser

usado para almacenar el resultado

Page 27: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE INSTRUCTION SET

Addressing Modes Direct /absolute: El operando es una locación de memoria Register indirect: El registro es especificado, pero sólo contiene la

dirección de memoria de la actual fuente o destino. El actual acceso es para esta locación de memoria.

Autoincrement: Esta es una variante de indirect addressing, donde el contenido del registro especificado es incrementado o antes(pre increment) o después(post increment) del acceso a la locación de memoria. Post increment es bastante útil para iteraciones a través de un array

Autodecrement: El valor de registro es decrementado antes o después del acceso a la locacación de memoria.

Displacement/based: En este modo, programador especifica una constante y un registro. El contenido del registro es añadido a la constante para obtener la locación final de memoria.

Page 28: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE INSTRUCTION SET

Addressing Modes Indexed: Aquí 2 registros son especificados y sus contenidos

son sumados para formar la dirección de memoria. Este modo es similar a displacement mode y puede ser usado para arrays por almacenamieto de la dirección base en un registro y el index en otro. Algunos microcontroladores usan un registro especial como index register.

Memory indirect: El programador especifica un registro, pero la correspondiente locación de memoria es interpretado como pointer, que contiene la locación final de memoria. Este modo es bastante útil, por ejemplo para jump tables.

Page 29: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE INSTRUCTION SET

Addressing Modes Como se mencionó antes, los CISC tiene mas addressing modes que RISC,

así los RISC deben construir mas complejos addressing modes con varias instrucciones. Por lo tanto, si frecuentemente es necesario usar addressing modes complejos, CISC sería la mejor opción.

Algunas precisiones importantes: Una instrucción es llamada ortogonal si uno usa cada instrucción con

todos los addressing modes. Si solo es posible direccionar la memoria con instrucciones de acceso de

memoria especial(LOAD, STORE), y todas las demás instrucciones como las aritméticas sólo operan en registros, la arquitectura es llamada load/store architecture.

Si todos los registros tienen la misma función(aparte de PC o SP), entonces estos son llamados general-purpose registers.

Page 30: MICROCONTRO LADORES€¦ · El progreso en la integración de circuitos causó un rápido desarrollo de microcontroladores en las ultimas 2 décadas. El código de programa, memoria

MICROPROCESADOR – PROCESSOR CORE INSTRUCTION SET

Addressing Modes