Vous êtes sur la page 1sur 22

Introduccin a los Sistemas Electrnicos Digitales

lvaro Snchez Miralles Cesreo Fernndez Martnez

Objetivos de la asignatura

Objetivos generales:
Detectar y corregir errores en un sistema que no funciona a nivel de software. Desarrollar la sistematizacin del trabajo para resolver problemas sencillos.

Objetivos especficos:
Entender la arquitectura, a nivel del modelo de programador, de un microcontrolador. Entender su documentacin. Interaccionar con el exterior usando los perifricos del micro. Entender y ser capaz de abordar cualquier problema que requiera el uso de microcontroladores. Disear, a nivel hardware, un sistema digital elemental basado en un microcontrolador. Utilizar las herramientas de desarrollo propias de un microcontrolador: ensamblador y depurador.
Introduccin a los SED - 2

Modelo de programador

Elemento bsico de SED: el microprocesador El microprocesador est formado por:


Segn modelo Von Neumann

2. Memoria

1. CPU 3. Entrada/Salida

Introduccin a los SED - 3

La CPU

CPU
SR 1.ALU ALU

Memoria

Rx

Entrada/Salida
PC IR

2. Unidad de Control

3. Registros de la CPU:
Rx: Registros genricos PC: Program counter SR: Status register IR: Instruction register
Introduccin a los SED - 4

La memoria.

Almacena datos en formato binario Ejemplo


El nmero 5 codificado en binario (8 bits)
0000 0101 5 0x05

Nmeros ms grandes 127


0111 111 127d 0x7F

Todo en binario
Agrupados de 4 en 4 bits: nmero en hexadecimal !!!

Introduccin a los SED - 5

La memoria. Organizacin En celdas de 8 bits


Cada 8 bits: 1 Byte
Direccin 0000 0001 Dato 05 7F

A cada byte se le asocia


Una direccin de memoria

Direcciones de memoria
0x0000: la ms baja 0xFFFF: la ms alta
FFFF A0

Qu tamao tiene esta memoria?


Similar a la de nuestro PC ?

Introduccin a los SED - 6

La CPU. Instrucciones Almacenadas en la memoria


En formato BINARIO

Ejemplo
add R1,R0

Significa
Suma los datos almacenados en los registros R0 y R1 Guarda el resultado en el registro R1

Instruccin en binario
0001 0000 0001 0000 0x1010

Introduccin a los SED - 7

La CPU. Instrucciones El formato general utilizado


15 12 11 Parmetros 0 Cod. Op.

Donde Cod. Op.: Cdigo de operacin Cuantas operaciones puede soportar la mquina?

Para la instruccin ADD Rx, Ry


15 1 12 NA 7 4 3 Rs1 0 Rs2

Donde Rs1: Registro parmetro 1 Rs1: Registro parmetro 2 Cuntos registros puede tener?

Introduccin a los SED - 8

La CPU. Instrucciones Para la instruccin MOVE Rx, mem


15 2 12 11 Rs 8 7 mem 0

Donde mem: direccin de memoria Hasta donde puede direccionar en memoria esta instruccin?

Para la instruccin MOVE mem, Rx


15 3 12 11 mem 4 3 Rs 0

Introduccin a los SED - 9

Un programa sencillo Queremos sumar los datos almacenados en


Direcciones 0x80 y 0x82 de memoria

Y dejar el resultado en
Direccin 0x84 de memoria

Programa
MEM[0x84] <- MEM[0x82] + MEM[0x80]

En ensamblador
move move add move R0, 0x80 R1, 0x82 R1, R0 0x84, R1

Traducir el programa a binario


Se carga en la direccin de memoria 0x0000 Mostrar los valores de la memoria a partir de 0x0000
Introduccin a los SED - 10

Un programa sencillo en memoria Agrupando los bytes


De dos en Dos Para facilitar la lectura

Cargando el programa en 0 Como se ejecuta el programa?


Lee instruccin primera instruccin Posicin 0x0000 de memoria Ejecuta instruccin

0000 0002 0004 0006

2080 2182 1010 3841

Instruccin Instruccin Instruccin Instruccin

0080 0082

0007 0003

Dato Dato

Repite Con todas instrucciones de programa


FFFF A0

Resultado?
Introduccin a los SED - 11

Ciclo de instruccin

Dos pasos:
Captura de la instruccin (Instruction Fetch) Ejecucin

Introduccin a los SED - 12

Fase de Fetch
1. El Contador de Programa (PC) contiene la direccin de la prxima instruccin a ejecutar 2. El procesador captura la instruccin de memoria 3. La instruccin se carga en el Registro de Instrucciones (IR) 4. El PC se incrementa
Salvo en las instrucciones de salto

5. Se interpreta la instruccin y se generan las seales de control (decodificacin instruccin)


SR
ALU ALU

CPU

Rx 1 Unidad de 5 Control 4 PC=0 PC=2 IR IR=2080 3 2

Memoria
Dir 0000 0002 Inst 2080 2182
Introduccin a los SED - 13

Fase de ejecucin

La CPU puede ejecutar diferentes operaciones


1. 2. 3. 4. 5. Transferencia de procesador a memoria Transferencia de procesador a I/O Procesado de datos Instrucciones de control Combinacin de las anteriores
SR 1.ALU ALU 3 Rx

CPU
1

Memoria
Dir 0080 0082 Dato 0007 0003

Unidad de 4 Control

PC=0 IR

Entrada/Salida
Introduccin a los SED - 14

Fases de ejecucin de nuestro programa


move r0, 0x80

Fetch

Execute

0000 0002

2080 2182 1010

0002 2080

PC IR

0080 0082

0007 0003 0000

0007 0000

R0 R1

move
0000 0002 2080 2182 1010

r1, 0x82
0004 2182 PC IR 0080 0082 0007 0003 0000 0007 0003 R0 R1

Introduccin a los SED - 15

Fases de ejecucin de nuestro programa


add r1, r0
Execute
ALU: R1 <- R0+R1

Fetch

0004 0006

1010 3841 0000

0006 1010

PC IR

0080 0082 0084

0007 0003 0000

0007 000A 0000

R0 R1 R2

move
0004 0006 1010 3841 0000

0x84, r1
0008 3841 PC IR 0080 0082 0084 0007 0003 000A 0007 000A 0000 R0 R1 R2

Introduccin a los SED - 16

Arquitectura de microprocesador

Arquitectura del micro


El ordenador visto desde el programador

Organizacin de computadores
Cmo est organizado por dentro para procesar esos datos segn esas instrucciones

Esta asignatura
Fundamentalmente interesa la Arquitectura

Introduccin a los SED - 17

Lo que ve un programador
C167 Memoria VER RESULTADOS
Escribir programa en el editor

Variables Datos

Fuente
Ensamblador/ Compilador

Programa

CPU
Direcciones

Monitor
Stack

Objeto: Libreras Instrucciones objeto y variables

Enlazar
Cdigo mquina

Slo entiende de ristras de 1s y 0s: Datos Instrucciones

INTRODUCIR DATOS

Ejecutar

Introduccin a los SED - 18

Sistema electrnico

PROGRAMAS uC

DATOS Cdigos de alto nivel ASCII Interpretacin 0's y 1's Nmeros con y sin signo

PROGRAMAS FPGA

Lenguaje C

Interpretacin 0's y 1's Ensamblador

Lenguaje VHDL

Nivel lgico 0's y 1's

Nivel fsico Hardware +5V, 0V

ABSTRACCIN

Introduccin a los SED - 19

Un programador experto

Introduccin a los SED - 20

Organizacin a nivel de bloques y buses

Modelo Von Neumann ampliado Bus


Conjunto de lneas comn a varios bloques que permite la comunicacin entre ellos
CPU (ALU, Registros y Control)

Memoria

Entrada/Salida

Desde la CPU todo se ve como direcciones. El mapa de memoria es un vector donde el ndice es la direccin. Bus de datos Bus de direcciones Bus de control

Bus del sistema

Introduccin a los SED - 21

Interrupciones
Mecanismo por el cual otros mdulos (e.g. I/O) pueden alterar la secuencia normal de programa
Timers : Con el rebose de un temporizador I/O: Del controlador E/S (p.e. Datos disponibles)

CPU (ALU, Registros y Control)

Memoria

Entrada/ Salida

Bus del sistema

Bus de datos Bus de direcciones Bus de control

LINEA DE INTERRUPCION

Introduccin a los SED - 22

Vous aimerez peut-être aussi