Sie sind auf Seite 1von 74

101010101 Circuitos Digitales y Microprocesadores 101010101

Circuitos Digitales y Microprocesadores


(CDM)
http://www.ing.unlp.edu.ar/electrotecnia/cdm/
Plan de trabajo
• Altura de conocimientos y perspectiva futura [Plan 2002]

PAyED(CB*): Programación, algoritmos y estructura de datos


ISLyD (TB*): Introducción a los sistemas lógicos y digitales
CDM (TA*): Circuitos digitales y microprocesadores
Arq (TA*): Arquitectura
SOyR (TA*): Sistemas operativos y redes
(*) Tipo de Asignatura: CB: Ciencias Básicas; TB: Tecnologías Básicas; TA: Tecnologías Aplicadas;
Objetivos y contenido de la materia
• Comprensión del funcionamiento de un procesador:
Estudio desde el punto de vista físico y lógico de los
microprocesadores.
– Diagrama de bloques. Buses. Registros. Instrucciones. Modos
de direccionamiento. Estructura algorítmica. (CPU)
– Periféricos de entrada salida. Proceso de interrupción.
Temporizadores. Comparadores y capturadotes. (MCU)
• Tipos y Selección de procesadores genéricos:
– Estado del arte y criterios comparativos de procesadores
– Conceptos de diseño digital con microprocesadores y
microcontroladores
• Utilización de procesadores genéricos:
– Programación en C
• Realización de experiencias concretas con elementos de
entrada / salida:
– Caso de estudio  908QYT  Aplicaciones
Estudio de los procesadores
Utilización:
Programa
Procesador
Algoritmo
Diagrama de flujo
Diseño interno:
Diagrama de estados
Arquitectura
Bloques de estructura
Diagrama en bloques Herramientas de diseño de programa (main,
y utilización: Hojas de
datos, programas, etc subrutinas,
Transferencia de registros
interrupciones, etc)
Componentes secuenciales
Instrucciones
Componentes combinacionales
Modelo de
Compuertas programación
Conexión con
Transistor el mundo real microinstrucción
Conocimientos de interfaz entrada/salida:
Comunicación Serie, temporizadores,
motores paso a paso, etc.
• Bibliografía básica
– Manuales Técnicos Manuales técnicos y notas de aplicación del
microcontrolador HC908.
– Manuales técnicos de otros componentes
– Apuntes de cátedra

• Bibliografía de consulta

– Microcontroladores Motorola - Freescale Programacion Familias y Sus


Distintas Aplicaciones en La Industria Cazares Juan , Haro Diego ,
Hueso Jaime , Muriel Eduardo , Puebla Luis, Ed. Alfaomega 2008.
– Programación de Sistemas Embebidos en C, Gustavo Galeano, Ed
Alfaomega, 2009
– Microcontroller Technology : The 68HC11and 68HC12, Peter Spasov
Ed. Prentice Hall (5th Edition) 2004
– Embedded Microcomputer Systems Real Time Interfacing Jonathan W.
Valvano Ed Thomson 2da Edition 2002
– Introduction to Embedded Microcomputer Systems: Motorola 6811 and
6812 Simulation Ed Thomson 2da Edition 2004
– Estructura y diseño de computadores. D. A. Patterson, J. L. Hennessy.
Ed. Reverté, 2000
Características de la cursada
REGLAMENTO
Disposiciones vigentes:
• Ordenanza 028/02, 3 de junio de 2002, NUEVO REGIMEN DE EVALUACION.
(http://www.ing.unlp.edu.ar/actualidad/otros_links/Ordenanzas/Ordenanza28.htm).

• Plan de Estudios 2002.


(http://www.ing.unlp.edu.ar/carreras/text/plan-electronica.htm)

(http://www.ing.unlp.edu.ar/carreras/analiticos/Electrotecnia/E-213%20Circuitos%20Digitales%20y%20Microprocesadores.doc )

• Calendario Académico 2010.

(http://www.ing.unlp.edu.ar/decanato/secacad-web/paginas/calendario10.htm)

Modalidad del curso:


• La cátedra adopta el cronograma de evaluaciones correspondiente a las asignaturas básicas, el que se detalla en el
enlace Calendario, de la página electrónica de la Cátedra.

• Los alumnos deberán inscribirse en la cátedra mediante Internet (SIU-Guaraní), previamente al inicio del curso.

• Los Trabajos Prácticos se realizarán en comisiones de tres (3) alumnos, que, a libre elección, deberán conformarse
el día de la inscripción.

• La realización de los Trabajos Prácticos (TP) constituirá parte de la nota final de cada módulo. A tal fin, antes de
retirarse de cada clase práctica, las comisiones deberán entregar a su ayudante la resolución del problema que se
le indicara al inicio de la clase. Si el trabajo resultara aprobado en primera instancia o en una segunda entrega a la
siguiente semana, aportará 0,5 puntos a la nota final del módulo correspondiente.

• Los horarios de las Clases: Teóricas, Prácticas y de Consulta, así como el contenido de las clases, los enunciados
y la bibliografía, se encuentran disponibles en sendos enlaces de la página electrónica de la Cátedra.
Presentación de los Docentes y

Armado de comisiones
Estudio de los procesadores
Utilización:
Programa
Procesador
Algoritmo
Diagrama de flujo
Diseño interno:
Diagrama de estados
Arquitectura
Bloques de estructura
Diagrama en bloques Herramientas de diseño de programa (main,
y utilización: Hojas de
datos, programas, etc subrutinas,
Transferencia de registros
interrupciones, etc)
Componentes secuenciales
Instrucciones
Componentes combinacionales
Modelo de
Compuertas programación
Conexión con
Transistor el mundo real microinstrucción
Conocimientos de interfaz entrada/salida:
Comunicación Serie, temporizadores,
motores paso a paso, etc.
Diseño interno:
Evolución hacia los microprocesadores
Lógica combinacional
• Los primeros controles digitales, corresponden a simples
decisiones de aperturas y cierres de “reles”, que respondian a
una lógica de operacón ( funciones lógicas: AND, OR, NOT)
– Componentes: Compuertas lógicas
– Herramientas: Karnaugh, Quine-McKlusky, etc
– Ejemplos:
• Control combinacional: Las salidas dependen solo de
las entradas
– Control de presencia - estado activo de alarma por
apertura de puerta, ventana o presencia
– Control on off de un motor…
• Unidad Aritmética.
Lógica combinacional
Diseño interno:
Lógica combinacional
Diseño interno:
Diseño interno: Lógica combinacional
Decodificadores (BCD a Decimal)…
Diseño interno: Lógica combinacional

3a8
Diseño interno: Lógica combinacional

Que generan la posibilidad mejorarlos e integrarlos,


…(74LS138)
Diseño interno: ALU de 2 bit Lógica combinacional
OP = 000 → XOR
OP = 001 → AND
OP = 010 → OR
OP = 011 → Suma

multiplexer

multiplexer
Diseño interno:
Evolución hacia los microprocesadores
Lógica secuencial
• Realizar una secuencia determinada en el tiempo. Las salidas
NO dependen solo de las entradas. Tipos: Asincrónicos y
Sincrónicos
– Herramientas: Diagramas de flujo y de estados
– Componentes: Flip-Flop (registros, contadores y memorias)
– Ejemplos:
• Temporizadores. Barrera de un paso a nivel. Control
secuencial lineal: Las salidas dependen de las entradas y del
tiempo en que ellas ocurren.
• Procesador digital ( sistema secuencial + unidad de
memoria + unidad aritmética)
herramientas
• Diagramas de flujo • Diagramas de estado
0

00
1

0 0
10
1
1 1

01 0 11
0 0

1
Lógica secuencial
Contador de 0 a 99
Lógica secuencial
Contador de 0 a 99

CD4511
Lógica secuencial

MC14553B, contador BCD de tres dígitos por una parte y el MC14543B, decodificador BCD a
siete segmentos
Diseño interno:
Evolución hacia los microprocesadores
• Cuando esas operaciones y secuencias se almacenaron
en un dispositivo (memoria) y se ejecutaron (unidad de
control)  pasamos al mundo de la lógica programada3.

Memoria

BUS

Periféricos BUS CPU


Unidad central de procesamiento

3 No confundir con programación de lógica (programación de dispositivos lógicos – ej FPGA)


Diagrama en bloques de un procesador
Control

información
ROM
Memoria de solo lectura

Memoria
entradas RAM
BUS
Memoria de lectura escritura

• Memorias: ROM
Periféricos BUS CPU • programable ROM = PROM
Unidad central de procesamiento • Programable y borrable por
luz ultravioleta = EPROM
• Programable por única vez =
OTP
• Programable y borrable
eléctricamente = EEPROM
salidas
ALU
Unidad aritmético lógica
CU FLASH (difieren en el tipo
de acceso de borrado dentro
Unidad de control
de la memoria, son las que
permiten realizar
programacion ‘in circuit’).
Diagrama en bloques de un procesador
Memorias
Programa Datos
ROM RAM
Memoria de solo lectura Memoria de lectura escritura

entradas CU ALU
Unidad aritmético lógica
Unidad de control

salidas CPU
Unidad central de procesamiento
Diagrama en bloques de un procesador:
Microprocesador - Microcontrolador

Memorias
Programa Datos
ROM RAM
Memoria de solo lectura Memoria de lectura escritura

entradas CU ALU
Unidad aritmético lógica
Unidad de control

salidas CPU
Unidad central de procesamiento
Diagrama en bloques de un procesador:
Arquitecturas …
Dirección – Datos – Instrucciones - BUS

Memoria Memoria Memoria


de de de
Instrucciones y Datos Instrucciones Datos
Bus de datos
Bus de instrucciones

CPU Bus de direcciones


de instrucciones CPU
Unidad central de procesamiento Unidad central de procesamiento
de datos

Von Neumann Harvard


Estudio de los procesadores

Utilización:
Programa
Procesador
Algoritmo
Diagrama de flujo
Diseño interno:
Instrucciones
Arquitectura
Modelo de
Diagrama en bloques Herramintas de programación
Transferencia de registros diseño y utilización
microinstrucción
Componentes secuenciales Ejemplo: SUMA …
Componentes combinacionales
Componentes

Conexión con
el mundo real
Aplicaciones
– ¿Que puede realizar con un procesador?
• Sistemas „embebidos‟ o „empotrados‟ (embedded)
• Sistemas Centralizados
• Sistemas Distribuidos

– ¿Que tipos de procesadores tenemos?


• uP + e/s en un solo chip uC
• uP + procesador matemático  DSP
• uP + más niveles lógicos  Lógica difusa
•…
Multiplexer para 4 displays
Control de motores paso a paso
control para un lavarropa
Control para robot
Camaras de fotos
Computadora de abordo en un auto
Computadora de abordo en un auto
Tecnología
Como apareció el microprocesador?
Un poco de Historia:
– A partir del pedido de integración de las plaquetas, en un pocos
„chips‟, de una calculadora de la empresa japonesa Busicon en
1969 [12 circuitos para una calculadora electrónica - 100Ku$] a la empresa
Integrated Electronic (INTEL), se penso en realizar un sistema
que resuelva este y otros problemas similares [Ted Hop (~12 de Intel)
realizar un microcomputador en un chip] . La empresa contrató a un
diseñador italiano Federico Faggin, que inspirado en una PDP
8(*) realizo una microcomputadora en 4 chip, el 4004 [CPU 4004, I/O
4003, Ram 4002, Rom 4001].
Por publicidad considerando que son útiles para vender
memorias Intel compra a Busicon el micro por (60Ku$) !!!

http://www.intel.com/museum/online/hist_micro/hof/index.htm

(*) Diferencial Engine II (mecánica – 1847) – Harvard Mark I (reles 1944)  ENIAC [Electronic Numerical Integrator
And Computer (Computador e Integrador Numérico Electrónico), utilizada por el Balistic Research
Laboratory] (tubos de vacio – 1959) PDP-1 (Programmed Data Processor-1) fue el primer computador en
serie PDP de la Digital Equipment, producida por primera vez en 1960…
…Univac (Universal Atomic Computer), IBM 360, PDP 8 -11 etc
Texas .. Atmel .. Dallas .. Philips Intel :::: Zilog Freescale MOS Technology (1) Microchip
(ex – Motorola)

4004 - 4040
6502 (1)

MSP430 AT91 ARM (1)


PIC1650(2)

PIC16F84
MCS 51 - DSPIC

HC908…

Rabit HC12
HC16

(1)1975, MOS Technology, 6501 y 6502 se vendían a solo $25 dólares cada uno, mientras el precio de los 8080 y 6800 eran
de $179 dólares. Como una respuesta a esto Intel y Motorola bajaron sus precios al primer día del anuncio del competidor a
$69.95 por microprocesador. Utilizado en Apple I, Apple II, Atari, Comodore, Acorn, Oric, etc..
El diseño de ARM comenzó en 1983 como un proyecto de desarrollo en la empresa Acorn Computers Ltd.  Advanced
RISC Machines
(2) Inicialmente la empresa GI (General Instruments) creó una subdivisión para fabricar dispositivos. Más tarde esta subvisión

fue vendida a Venture Capital Investors que decidió crear una nueva empresa llamada Arizona Microchip Technology.
Aquitecturas Comerciales

• 16C74 Microchip
• 8051 Intel
• 8085 Intel
• 6800 de Motorola
• HC11 Fresscale (ex Motorota)
• y otros..
16C74 Microchip
8051 Intel …
8085 Intel y otros..
6800 de Motorola
HC11 Fresscale (ex Motorota)
Motorola - Fresscale

32 - Bit Más
Potencia

Software Compatible
Arquitectura
68HCS12
68HC12
25 versiones
16-Bit 15 versiones

68HC11
60 Versiones
68HCS08
8-Bit 6800 68HC08 10 Versiones
45
68HC05 Versiones
180 Versiones Software Compatible
Menor
Costo
Tiempo
68HC908GP32 68HC908AP8/16/32/64 68HC908KX2/8
68HC908GT16
68HC908MR32 68HC908RK2
68HC908GT8 68HC908LJ12
68HC908QY4
68HC908JL8 68HC908MR16
68HC908GR16
68HC908JL3 68HC908QY2
68HC908SR12
68HC908GR8/4
68HC908QY1
68HC908JK8 68HC908MR8/4
ROM 68HC908GZ8/GZ16 68HC908QT4
68HC908JB8
68HC908AZ60A
68HC908QT2
68HC908JK3
68HC08AZ32
68HC908JK1 68HC908AS60A 68HC908QT1

General Consum. Motor CAN Low cost Gen. Purp.


Purpose Comm. Control Auto./Ind. Auto./Ind.
Freescale C&I MicroSelector
Estudio de los procesadores

Utilización:
Programa
Procesador
Algoritmo
Diagrama de flujo
Diseño interno:
Instrucciones
Arquitectura
Modelo de
Diagrama en bloques Herramientas de programación
Transferencia de registros diseño y utilización
microinstrucción
Componentes secuenciales Ejemplo: SUMA …
Componentes combinacionales
Componentes Ejemplos de
Conexión con
el mundo real
Lógica de transferencia entre registros
• Los sistemas digitales simples pueden ser diseñados por
medio de tablas de estado. De esta manera se llega a circuitos
lógicos secuenciales de grado no muy complejo. Sin embargo,
a la hora de diseñar circuitos lógicos complejos las tablas de
estado se tornan increíblemente complicadas, extensas y poco
prácticas. Una manera de poder llegar a este tipo de circuitos
es describir el sistema digital desde el punto de vista de su
comportamiento.
De esta manera se encuentran cuatro partes fundamentales en
los sistemas digitales complejos:
– Registros
– Información en código binario
– Operaciones realizadas con la información en los registros
– Funciones de control que inician las operaciones.
Lógica de transferencia entre registros
• Esta manera de ver al sistema se conoce también como lógica de
transferencia ente registros y es sumamente útil en el diseño de
sistemas lógicos complejos como los sistemas de procesamiento o
procesadores.
En la lógica de transferencia entre registros la unidad registro abarca
una gran gama de circuitos lógicos como son los contadores, registros
de desplazamiento, unidades de la memoria, etc.
Una unidad de memoria se considera como una colección de registros
de almacenamiento donde se guarda la información. De hecho, un flip-
flop se considera como un registro de un bit.
• La información binaria puede ser código, números binarios, decimales
codificados en binario, etc. Dicha información es guardada en los
registros antes mencionados.
• Las operaciones realizadas con la información en los registros se
conocen como microoperaciones. Una microoperación es una
operación elemental que se realiza en paralelo durante un periodo del
pulso de reloj. Por ejemplo, sumar, restar, desplazar, borrar, cargar,
etc.
• Las funciones de control, son las condiciones que deben de prevalecer
para iniciar una secuencia de operación.
Microoperaciones básicas.
Carga en paralelo: Transferencia de datos de un registro a otro.

B←A
La información que tenga el registro A se transfiere al registro B ordenada bit a bit.

Registro A Registro B
1 1 0 1 0 0 1 1

1 1 0 1 1 1 0 1

Registro A Registro B
Microoperaciones básicas.

• Desplazamiento .
0
0 0 0 0 0 0

• En un desplazamiento lógico se desplazan a la derecha o a la


izquierda los bits contenidos en un registro. En un extremo, el bit
saliente se pierde al desplazarse. En el otro extremo se introduce
un cero.
Microoperaciones básicas.

• Rotación: En la rotación se preservan todos los bits del registro


ya que si se hace hacia la derecha el bit mas a la izquierda se
coloca en lugar del bit mas a la derecha corriendo los demás
una posición hacia la derecha.

1 0 1 0

• ROL A, rotación a la izquierda del registro A.


• ROR A, Rotación a la derecha del registro A.
… mas detalles: capitulo 8 - Nivel de transferencia de registros – M. Morris
Mano Diseño Digital 3era Edición Pearson 2003
Estudio de los procesadores

Utilización:
Programa
Procesador
Algoritmo
Diagrama de flujo
Diseño interno:
Instrucciones
Arquitectura
Modelo de
Diagrama en bloques Herramientas de programación
Transferencia de registros diseño y utilización
microinstrucción
Componentes secuenciales Ejemplo: SUMA …
Componentes combinacionales
Componentes Ejemplos de
Conexión con
el mundo real
Instrucciones
Instrucciones
Aritméticas
Las microoperaciones básicas son sumar, restar y complementar.
• Todas las demás operaciones aritméticas puede obtenerse de una variación o secuencia de
estas microoperaciones.
• Simbología - Descripción
F←A+B Suma el contenido de A mas B y carga en F
F←A-B Resta el contenido A menos B y se carga en F
B ← B‟ Complemento a1 del registro B
B ← B‟ + 1 Complemento a2 del registro B
F ← A + B‟ + 1 Sumar A mas el compl. a2 de B y carga en F
A ← A+1 Incrementar el contenido de A en uno
A ← A-1 Decrementar el contenido de A en uno

– La operación de multiplicación, en la mayoría de las


computadoras, se ejecuta con una secuencia de
microoperaciones de suma y desplazamiento.
– La división se ejecuta con una secuencia de
microoperaciones de resta y desplazamiento. En la siguiente
tabla se muestran las operaciones aritméticas consideradas
básicas con su respectiva simbología.
Instrucciones
Lógicas

Las microoperaciones lógicas básicas son:

• A‟ , negación o complemento del registro A


• A ٧ B, OR lógica ente A y B.
• A ٨ B, AND lógica entre A y B
• A (+) B, XOR lógica entre A y B
Set de Instrucciones
• Manejo de datos: Carga, almacenamiento, transferencia, …
– LDA, STA, LDHX, MOV,….
• Aritméticas: Suma, resta, comparación, complemento a dos,
multiplicaciones y divisiones, …
– ADD, ADC, SUB, NEG, DEC, MUL, DIV, ….
• Operaciones lógicas y de manipulación de bit
– AND, OR, COM, LSR, ASR, …
• Desplazamientos (lógicos y aritméticos) y rotaciones
• Testeo/comparación de datos
– TST, CMP, BIT, ….
• Bifurcaciones y saltos condicionales
– BRA, JMP, JSR, BGE, CBEQ, DBNZ, …
• Instrucciones de modificación del CCR
– SEC, SEI, TAP, …..
Conjunto de Instrucciones HC08
Conjunto de Instrucciones S08
Conjunto de Instrucciones S08
Conjunto de Instrucciones
Conjunto de Instrucciones
Nomenclatura en las Instrucciones
Estudio de los procesadores

Utilización:
Programa
Procesador
Algoritmo
Diagrama de flujo
Diseño interno:
Instrucciones
Arquitectura
Modelo de
Diagrama en bloques Herramientas de programación
Transferencia de registros diseño y utilización
microinstrucción
Componentes secuenciales Ejemplo: SUMA …
Componentes combinacionales
Componentes Ejemplos de
Conexión con
el mundo real
MCU y CPU
CPU

• Características:
– Frecuencia de reloj
(clock)
– Bus de datos
– Bus de direcciones
– Set de instrucciones
(Risc/Cisc) y Registros
Modelo de programación
Registros del CPU08
7 0
READ:

Acumulador (A) WRITE: A


RESET: X X X X X X X X
X = Indeterminate

15 7 0
READ:
Registro Indice (H:X) WRITE:
H X
(16 BITS) RESET: 0 0 0
X = Indeterminate
0 0 0 0 0 X X X X X X X X

15 7 0
READ:
Puntero de Pila (SP) WRITE:

(16 BITS) RESET: 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

15 7 0
READ:
Contador de Programa (PC) WRITE:

(16BITS) RESET: LOADED WITH VECTOR FROM $FFFE AND $FFFF

7 4 0
READ:
V 1 1 H I NZ C
Registro de condiciones de código (CCR) WRITE:
RESET: X 1 1 X 1 X X X
X = Indeterminate
Registro de condiciones de código (CCR)
7 4 0
READ:
WRITE:
V 1 1 H I NZ C
RESET: X 1 1 X 1 X X X
X = Indeterminate

V - Flag overflow del Complemento a dos


“Seteado” si una operación aritmética signada ha desbordado
Utilizado en “chequeos” de operaciones aritmética signadas
H - Half Carry flag
“Seteado” si un carry (acarreo) ocurre desde el bit 3 al bit 4
Utilizado en operaciones aritméticas BCD
I - Global Interrupt Mask ( Mascara Global de Interrupciones )
Cuando está seteada, deshabilita las interrupciones del CPU.
N - Negativo
Seteado si el bit 7 está seteado en el Acumulador
Z - Zero flag
Seteado si TODOS los bits en el Acumulador son ceros.
C - Carry or Borrow flag
Seteado si un carry o borrow ocurren durante una operación
Dirección - Dato
Mapa de memoria

Das könnte Ihnen auch gefallen