Circuitos Digitales y Microprocesadores
(CDM)
http://www.ing.unlp.edu.ar/electrotecnia/cdm/
• Altura de conocimientos y perspectiva futura
[Plan 2002]Plan de trabajo
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
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:
Procesador Utilización: Programa Algoritmo Diagrama de flujo Diagrama de estados Bloques de estructura de programa (main, subrutinas, interrupciones, etc) Instrucciones Modelo de programación microinstrucción Diseño interno: Arquitectura Diagrama en bloques Transferencia de registros Componentes secuenciales Componentes combinacionales Compuertas Transistor Conexión con el mundo real
Estudio de los procesadores
Herramientas de diseño y utilización: Hojas de datos, programas, etc
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
REGLAMENTODisposiciones 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
Procesador Utilización: Programa Algoritmo Diagrama de flujo Diagrama de estados Bloques de estructura de programa (main, subrutinas, interrupciones, etc) Instrucciones Modelo de programación microinstrucción Diseño interno: Arquitectura Diagrama en bloques Transferencia de registros Componentes secuenciales Componentes combinacionales Compuertas Transistor Conexión con el mundo real
Estudio de los procesadores
Herramientas de diseño y utilización: Hojas de datos, programas, etc
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…
Diseño interno:
Decodificadores (BCD a Decimal)…
3 a 8
Que generan la posibilidad mejorarlos e integrarlos,
…(74LS138)
ALU de 2 bit OP = 000 → XOR OP = 001 → AND OP = 010 → OR OP = 011 → Suma multiplexer multiplexer
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)
Diseño interno:
herramientas
• Diagramas de flujo
• Diagramas de estado
1 00 0 01 1 10 0 11 0 0 1 0 1 1 0 1
Contador de 0 a 99
Contador de 0 a 99
CD4511
MC14553B, contador BCD de tres dígitos por una parte y el MC14543B, decodificador BCD a siete segmentos
• Cuando esas operaciones y secuencias se almacenaron
en un dispositivo (memoria) y se ejecutaron (unidad de
control) pasamos al mundo de la lógica programada
3.
3 No confundir con programación de lógica (programación de dispositivos lógicos – ej FPGA)
Periféricos
CPU
Unidad central de procesamiento
Memoria
BUS
BUS
Diseño interno:
Diagrama en bloques de un procesador
Periféricos
CPU
Unidad central de procesamiento
Memoria
BUS
BUS
ROM
Memoria de solo lectura
RAM
Memoria de lectura escritura
entradas
salidas
CU
Unidad de control
ALU
Unidad aritmético lógica
Control
información
• Memorias: ROM
• programable ROM = PROM • Programable y borrable por
luz ultravioleta = EPROM • Programable por única vez =
OTP
• Programable y borrable eléctricamente = EEPROM FLASH (difieren en el tipo de acceso de borrado dentro de la memoria, son las que permiten realizar
Diagrama en bloques de un procesador
CPU
Unidad central de procesamiento
Programa
ROM
Memoria de solo lectura
Datos
RAM
Memoria de lectura escritura
entradas
salidas
CU
Unidad de control
ALU
Unidad aritmético lógica
Diagrama en bloques de un procesador:
Microprocesador
-
Microcontrolador
CPU
Unidad central de procesamiento
Programa
ROM
Memoria de solo lectura
Datos
RAM
Memoria de lectura escritura
entradas
salidas
CU
Unidad de control
ALU
Unidad aritmético lógica
Diagrama en bloques de un procesador:
Arquitecturas …
Von Neumann Harvard
CPU
Unidad central de procesamiento
Memoria de
Instrucciones y Datos
CPU
Unidad central de procesamiento
Memoria de Instrucciones Memoria de Datos Bus de datos Bus de instrucciones de datos de instrucciones Bus de direcciones
Procesador Utilización: Programa Algoritmo Diagrama de flujo Instrucciones Modelo de programación microinstrucción Ejemplo: SUMA …
Conexión con
el mundo real
Diseño interno: Arquitectura Diagrama en bloques Transferencia de registros Componentes secuenciales Componentes combinacionales ComponentesEstudio de los procesadores
Herramintas de diseño y utilización
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
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/O4003, 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)
(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.
6502 (1) ARM (1) PIC1650(2) PIC16F84 DSPIC HC908… Rabit HC12 HC16 MCS 51 -4004 - 4040 MSP430 AT91
Aquitecturas Comerciales
• 16C74 Microchip
• 8051 Intel
• 8085 Intel
• 6800 de Motorola
• HC11 Fresscale (ex Motorota)
• y otros..
Motorola - Fresscale
Más Potencia Menor Costo 6800 68HC11 60 Versiones 68HC05 180 Versiones 68HC08 45 Versiones 16-Bit 8-Bit 68HC12 15 versiones Software Compatible 68HCS12 25 versiones 68HCS08 10 Versiones 32 - Bit Software CompatibleArquitectura
Tiempo
68HC908RK2 68HC908JK1 68HC908MR32 68HC908KX2/8 68HC908JB8 ROM 68HC908AS60A 68HC08AZ32 68HC908AZ60A CAN Auto./Ind. Motor Control Gen. Purp. Auto./Ind. Low cost Consum. Comm. General Purpose 68HC908MR8/4 68HC908JL3 68HC908JK3 68HC908GP32 68HC908MR16 68HC908QT1 68HC908QT2 68HC908QT4 68HC908QY1 68HC908QY2 68HC908QY4 68HC908GT16 68HC908GT8 68HC908LJ12 68HC908SR12 68HC908JL8 68HC908JK8 68HC908GR8/4 68HC908GR16 68HC908GZ8/GZ16 68HC908AP8/16/32/64
Procesador Utilización: Programa Algoritmo Diagrama de flujo Instrucciones Modelo de programación microinstrucción Ejemplo: SUMA … Ejemplos de Conexión con el mundo real Diseño interno: Arquitectura Diagrama en bloques Transferencia de registros Componentes secuenciales Componentes combinacionales Componentes
Estudio de los procesadores
Herramientas de diseño y utilización
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 detransferencia 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
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 registroB
ordenada bit a bit.1 1 0 1 1 1 0 1
1 1 0 1 0 0 1 1
Registro A Registro B
Microoperaciones básicas.
• Desplazamiento
.
• 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
.
0
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.
• ROL A, rotación a la izquierda del registro A
.
• ROR A, Rotación a la derecha del registro A.
1 0 1 0
… mas detalles: capitulo 8 - Nivel de transferencia de registros – M. Morris Mano Diseño Digital 3era Edición Pearson 2003
Procesador Utilización: Programa Algoritmo Diagrama de flujo Instrucciones Modelo de programación microinstrucción Ejemplo: SUMA … Ejemplos de Conexión con el mundo real Diseño interno: Arquitectura Diagrama en bloques Transferencia de registros Componentes secuenciales Componentes combinacionales Componentes
Estudio de los procesadores
Herramientas de diseño y utilización
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
Procesador Utilización: Programa Algoritmo Diagrama de flujo Instrucciones Modelo de programación microinstrucción Ejemplo: SUMA … Ejemplos de Conexión con el mundo real Diseño interno: Arquitectura Diagrama en bloques Transferencia de registros Componentes secuenciales Componentes combinacionales Componentes
Estudio de los procesadores
Herramientas de diseño y utilización
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
Acumulador (A) Registro Indice (H:X) (16 BITS) Puntero de Pila (SP) (16 BITS) Contador de Programa (PC) (16BITS)
Registro de condiciones de código (CCR)
7 0 A READ: WRITE: RESET: X X X X X X X X X = Indeterminate X H 15 7 0 READ: WRITE: RESET: 0 0 0 0 0 0 0 0 X X X X X X X X X = Indeterminate 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 15 7 0 READ: WRITE: RESET: 15 7 0 READ: WRITE:
RESET: LOADED WITH VECTOR FROM $FFFE AND $FFFF
7 4 0 V 1 1 H I N Z C 1 X 1 X 1 X X X READ: WRITE: RESET: X = Indeterminate
Registro de condiciones de código (CCR)
7 4 0
V
1 1
H I
N
Z
C
1 X 1 X 1 X X X READ: WRITE: RESET: X = IndeterminateV - 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