Está en la página 1de 30

MICROPROCESADORES Y

MICROCONTROLADORES
(EL3234)
CLASE 1 (TEORÍA)
PROFESOR: RICARDO VIRGUEZ
EMAIL: CRINSONFLAME@HOTMAIL.COM
TLF. : 04145116458 1
UNIDADES
• UNIDAD I. MICROPROCESADORES Y
MICROCONTROLADORES.
• UNIDAD II. PROGRAMACION DE MICROCONTROLADORES.
• UNIDAD III. TEMPORIZADORES CONTADORES
• UNIDAD IV. INTERRUPCIONES
• UNIDAD V. DISPOSITIVOS PARA SISTEMAS CON
MICROCONTROLADORES
2

• UNIDAD VI. COMUNICACIÓN SERIAL


FORMA DE EVALUACIÓN TEÓRICA

• PARCIAL I : Unidades de la I a la IV. Lenguaje de Programación: Assembler. 20%


Fecha: 30 ó 31 de Mayo (Tentativo)
• PARCIAL II: Unidades V y IV. Lenguaje de Programación: C. 20%
Fecha: 4 ó 5 de Julio (Tentativo)
(No se excluye el conocimiento adquirido en unidades previas)
• Otras Evaluaciones: Trabajos y Talleres
PONDERACIÓN PROPUESTA: 50%
3
PRÁCTICAS
• PRACTICA 1: SISTEMA MÍNIMO Y PROGRAMACIÓN BÁSICA. 7.5%
LENGUAJE: ASSEMBLER
• PRACTICA 2: INTERRUPCIONES Y TEMPORIZADORES/CONTADORES. 7.5%
LENGUAJE: ASSEMBLER
• PRACTICA 3: PERIFERICOS PARALELOS Y/O SERIALES. 7.5%
LENGUAJE: C
• PRACTICA 4: COMUNICACIÓN SERIAL. 7.5%
LENGUAJE: C
• PROYECTO. 20%
LENGUAJE C 4
MATERIALES A ADQUIRIR

• PIC18F4550
• PICKIT 2 Ó PICKIT 3
• PANTALLA LCD 16X2
• TECLADO MATRICIAL 3X4 Ó 4X4
• LEDS
• 2 DISPLAYS 7-SEGMENTOS
• RESISTENCIAS DE 100, 200, 1K, 2K y 10K
• Osciladores de cristal (4 y 20Mhz)
• TRANSISTORES TTL (Al menos 2) 5
OBJETIVOS E IMPORTANCIA

El estudiante debe lograr aprender en forma satisfactoria lo siguiente:


1. Diseñar el hardware y el software de sistemas basados en microcontroladores.
2. Diseñar interfaces para dispositivos de entrada y/o salida tales como teclados, sensores,
displays, pantallas LCD y/o con otros dispositivos.

Lo cual se resume en el entendimiento y la capacidad de aplicar el conocimiento adquirido


en las unidades que comprende la enseñanza de la asignatura.

LOS MICROPROCESADORES Y MICROCONTROLADORES SE UTILIZAN A


NIVEL DE TODAS LAS MENCIONES Y EN UNA GRAN CANTIDAD DE CIRCUITOS
6
ELECTRÓNICOS
HISTORIA Y EVOLUCIÓN
“Desde la segunda guerra mundial, la electrónica ha sufrido grandes cambios y ha revolucionado la
tecnología como se conocía, provocando el surgimiento de nuevos dispositivos y herramientas cuya
existencia quizás muchos jamás habrían imaginado.
Sin embargo, no fue hasta después de la guerra, como es referenciado por Harper (2003), que en 1948 se
autorizó el uso comercial, en Estados Unidos, de circuitos impresos (o PCB, del inglés printed circuit
boards) y, sucesivamente, la primera solicitud de patente para el circuito integrado (conocido también
como microchip, C.I, o I.C, del inglés integrated circuit) es remitida en 1949 por Werner Jacobi,
producto de la necesidad de tener en un espacio más reducido un circuito adaptado a resolver ciertas
necesidades; como consecuencia, se efectúa la miniaturización de muchos dispositivos y componentes,
lo que permitió la posterior invención de circuitos integrados como los microprocesadores en la década
de los 70 que, a su vez, generarían grandes avances en el área de la computación y, a futuro por supuesto,
en el área de control de procesos dada la creación de microcontroladores, destacando en este ámbito para
dicha década, empresas como INTEL y años después otras como MICROCHIP”.
7
HISTORIA Y EVOLUCIÓN
• George Boole inventa el algebra Booleana en 1830, fundamento teórico de los circuitos digitales.
• Claude Shannon Demostró que el álgebra booleana y la aritmética binaria se pueden usar para simplificar circuitos con
relays. Este resultado es el fundamento práctico del diseño de circuitos digitales.
• La primera computadora programable fue creada por Konrad Zuse en 1941, y el programa de la misma era
almacenado en cintas perforadas.
• Entre 1943 y 1959 surgen las primeras computadoras electrónicas, que utilizaban cintas perforadoras y circuitos
cableados. Ej: UNIVAC1
• Oficialmente, en 1958, se produce el primer circuito integrado por TEXAS INSTRUMENTS; seguidamente
FARCHILD SEMICONDUCTORS en 1959, también fabricaría su propia gama de circuitos integrados.
• Ente 1959 y 1964 surgen computadoras con circuitos impresos y transistores. Ej: IBM 7030
• Entre 1964 y 1972 se utilizaban ya computadores con circuitos integrados, surgiendo en 1971, el primer procesador, el
INTEL 4040 o I4040.
8
• En 1971 TEXAS INSTRUMENTS crea el primer microcontrolador, el TMS 1000
• En 1993 se implementa el uso de EEPROMs en microcontroladores, comenzando por el PIC
COMPUTADOR
“Un computador no es solo una computadora de escritorio, se puede llamar computador
a un sistema que posea tres elementos fundamentales: procesador, memoria y
dispositivos de entrada/salida.
El procesador es el encargado de ejecutar instrucciones, realizar cálculos, enviar señales
a los dispositivos y controlar cada uno de los periféricos; en resumen se encarga de
procesar la mayoría de los recursos que conforman el sistema. De allí que también se le
conozca como unidad central de procesamiento (CPU).
La memoria, según Patterson y Hennessy (1997), es donde los programas se mantienen
cuando se están ejecutando; también contienen los datos necesitados por estos
programas” Álvarez (2005)
10
11
LA MEMORIA

• Tocci et al. (2007) definen a la memoria como la habilidad de la salida de un circuito de


permanecer en un estado, aun y cuando se haya removido la condición de entrada que
produjo ese estado.
• Los dispositivos de memoria aprovechan esta ventaja que proporcionan ciertos sistemas
digitales, lo que les permite almacenar con facilidad grandes cantidades de información y
datos digitales,
• La memoria principal de un computador está en comunicación constante con la CPU a
medida que se ejecutan instrucciones. El programa y cualquier información que este utilice
residen en la memoria principal. La RAM y la ROM pueden conformar la memoria principal.
12
LA MEMORIA

• Memoria de acceso aleatorio (RAM, del inglés Random Access Memory): Memoria en la cual la
ubicación física de una palabra de memoria no tiene efecto sobre el tiempo que tardan las
operaciones de lectura o escritura, en una ubicación determinada. En otras palabras, el tiempo de
acceso es igual para cualquier dirección en memoria. La mayoría de las memorias semiconductoras
son de este tipo.
• Memoria de lectura/escritura: Cualquier memoria que se puede leer o escribir con la misma
facilidad.
• Memoria de sólo lectura (ROM, del inglés Read Only Memory): diseñada para retener datos que
sean permanentes o que no cambien con facilidad. Durante su operación normal, no se pueden
escribir datos en ella, pero si se pueden leer. Al proceso de introducirle datos se le llama
programación o quemado de la ROM. 13
LA MEMORIA

• Memorias volátiles: Memorias que mantienen información almacenada sólo


mientras son alimentadas eléctricamente por una fuente. Las memorias de
datos o RAM, suelen ser de este tipo.
• Memorias no volátiles: Memorias que matienen información almacenada aun
después de dejar de ser alimentadas eléctricamente por una fuente. Las
memorias del programa o ROM son de este tipo.

14
MICROPROCESADOR

Según Rouse (2016), un procesador es la circuitería lógica que responde las


instrucciones que controlan el computador y las procesa. Señala también, que
las 4 funciones primarias de un procesador son la búsqueda de instrucciones,
decodificación, ejecución y escritura (write back).

15
MICROPROCESADOR

Características comerciales: Número de núcleos, Memoria cache, velocidad,


socket…
Características específicas: Cantidad de registros, amplitud de registros de
memoria, set de instrucciones, tamaño del bus de datos, arquitectura según
acceso a memoria, ciclo de instrucción…

16
MICROPROCESADOR
De acuerdo con Tokheim (1989), la mayoría de los microprocesadores contienen como mínimo lo siguiente:
• Unidad aritmética y lógica (ALU, del inglés Arithmetic-Logic Unit): realiza operaciones como sumar,
desplazar/desplazar circularmente, comparar, incrementar, decrementar, negar, AND, OR, XOR, complementar,
borrar y preinicializar (preset).
• Varios registros o posiciones de almacenamiento internas: Entre los que destacan los registros de propósito
general, que pueden utilizarse para guardar datos de manera temporal o para que contengan una dirección específica.
No tienen asignada una tarea específica.
• Contador del programa: El contador del programa (PC, del inglés Program Counter) es la posición de memoria
que contiene la dirección de la siguiente instrucción del programa.
• Decodificador de instrucciones: esta unidad interpreta los bits de la instrucción que representan el código de
operación, determinando el microprograma exacto que debe seguir para ejecutar la instrucción completa y dirigiendo
adecuadamente la sección de control.
• Sección de control y temporización: Esta sección recibe señales del decodificador de instrucciones para determinar
la naturaleza de la instrucción que se va a ejecutar. La información del registro de status también está disponible para
las bifurcaciones condicionales. Las señales de temporización y control son enviadas a todo el microprocesador para
coordinar la ejecución de las instrucciones. También se generan las señales externas de control.
17
MICROPROCESADOR
• Cerrojos / buffers de datos: conectados con las líneas de datos y líneas de dirección que, a su vez, son
conectadas a las memorias para la lectura de instrucciones y escritura/lectura de datos.
• Líneas de control y buses internos: la mayoría de los procesadores se caracterizan porque tienen
todas o algunas de las siguientes líneas de control: líneas de reloj, líneas de lectura/escritura, líneas de
interrupción, líneas de reinicialización, líneas de control del bus, líneas de status del ciclo.
• Varias entradas y salidas de control: Entrada de reloj, salidas de escritura/lectura de memoria, entre
otras.

NOTA: La memoria de datos (RAM) y memoria del programa (ROM) No forman parte del
microprocesador.

18
ARQUITECTURA SEGÚN DE ACCESO A
MEMORIA

• Arquitectura Von Neumann: Llamada también arquitectura del


programa almacenado. En esta arquitectura se tienen señales y memoria
compartidas para código (instrucciones) y datos. Por lo tanto, el
programa puede ser fácilmente modificado por sí mismo, dado que está
almacenado en una memoria de lectura/escritura. (Keil, 2009). Esta
arquitectura tiene como inconveniente que la CPU sólo puede leer
instrucciones o datos en un determinado momento, lo que da lugar a un
cuello de botella en la interfaz entre memoria y CPU. (Uzcátegui, 2015).

19
ARQUITECTURA SEGÚN DE ACCESO A
MEMORIA

• Arquitectura Harvard: La característica más obvia de esta arquitectura, es que


posee señales y almacenamiento separados para código y memoria de datos.
Es posible acceder a la memoria del programa y a la memoria de datos de
manera simultánea. Típicamente, la memoria del programa es de sólo lectura,
mientras que la de datos es de lectura/escritura. Por tanto, es imposible que
los contenidos del programa sean modificados por sí mismo. (Keil, 2009).
(Esquema observado en la diapositiva 11)

20
21
MICROARQUITECTURA DEL PROCESADOR

Hardware o bloques funcionales y recursos que conforman la estructura interna


de un procesador

22
ARQUITECTURA DEL PROCESADOR EN
TÉRMINOS DE SOFTWARE

“Aspectos del sistema visibles para el programador, es decir aquellos que


tienen una influencia directa sobre la ejecución lógica de un programa”
Uzcátegui (2015). Esto incluye, entre otras cosas, el conjunto de instrucciones,
número de bits utilizados para representar algún tipo de dato, mecanismos de
entrada y salida, mecanismos de direccionamiento de memoria

23
INSTRUCTION SET ARCHITECTURE (ISA)

Se refiere más específicamente a la arquitectura del set de instrucciones, o


dicho de otra manera, las instrucciones en assembler de un procesador en
particular, su funcionalidad y estructura; y abarca en términos generales lo
referido a la arquitectura del procesador. Ejemplos: x86, IA32, MIPS, ARM,
PIC… etc.
Existen dos tipos de arquitectura de set de instrucciones:

24
CISC
Del inglés Complex Instruction Set Computing, es un tipo de arquitectura que promueve el uso de gran
número de instrucciones, permitiendo operaciones complejas entre operandos situados en memoria o
en registros internos.
“Esta arquitectura se basa en un conjunto complejo de instrucciones que no poseen formato regular,
cada una toma el tiempo que necesito de acuerdo a su complejidad y está orientada a usar instrucciones
muy poderosas que realicen tareas muy complejas a pesar de su duración”. (Álvarez, 2005).
Se caracteriza por su énfasis en el hardware instrucciones multi-ciclo complejas, incorporación de
carga y almacenamiento en una misma instrucción, tamaño de código reducido, aunque alta cantidad
de ciclos por segundo, y en que usa gran cantidad de transistores para almacenar instrucciones
complejas (Tiwari, 2015). Un ejemplo de este tipo de arquitectura es x86, utilizada en procesadores
INTEL y AMD.

25
RISC
Del inglés Reduced Instruction Set Computing, la contraparte de la arquitectura CISC. Esta arquitectura se basa en la filosofía
de diseño de procesadores de conjunto instrucciones simple, regular, en la que cada instrucción toma aproximadamente el
mismo tiempo, lo que implica que en un lugar de ejecutar una instrucción compleja lenta, ejecuta varias instrucciones más
sencillas pero rápidas. (Álvarez, 2005).
Se caracteriza por hacer más énfasis en el software, todas las instrucciones se basan en un mismo ciclo de reloj, se trabaja más
de registro a registro, dado que las instrucciones para carga y almacenamiento son independientes, baja cantidad de ciclos por
segundo, aunque códigos más grandes debido a la inexistencia de instrucciones complejas o a que haya pocas de ellas, y
utiliza mayor cantidad de transistores en registros. (Tiwari, 2015). Ejemplo de este tipo de arquitecturas son: MIPS,
OPENRISC, SPARC, ARM.
De aquí surgen dos conceptos de implementación importantes: implementación monociclo, según explica Patterson y
Hennessy (2014), en la cual una instrucción es ejecutada en un ciclo de reloj, y la multiciclo su contraparte evidente.
Sin embargo, hoy en día, la práctica más común es el pipelining (segmentación), otra técnica de implementación utilizada en
la mayor parte de los procesadores modernos. En el caso de arquitecturas RISC como MIPS, esta técnica consiste en la
división del procesador por etapas (mencionada previamente), de modo que, no se reduce el tiempo de ejecución de la
instrucción más larga, pero si se permite paralelismo en la ejecución de las mismas, dado que cada etapa dura exactamente un
ciclo de reloj, de modo que en lugar de adaptar la duración del ciclo para todas las instrucciones de acuerdo a la duración de la
26
instrucción que toma mayor cantidad de tiempo, solo se ajustan las diferentes etapas. (Patterson y Hennessy, 2014)
NIVELES DE
PROGRAMACIÓN
• Alto nivel: Java, JavaScript, Python, C# (C Sharp),
Perl, PHP, Ruby…

• Medio nivel Nota: Existen


 C++ más lenguajes de
C medio nivel.

• Bajo nivel:
Assembler
Lenguaje de máquina
HDL y circuitería 27
MICROCONTROLADOR

En esencia, un microcontrolador se diferencia de un microprocesador por tener, además de todo lo incluido


dentro de un microprocesador, memoria de datos, memoria del programa y puertos de entrada y salida digitales
(TTL o CMOS). También pueden incluir otros periféricos de uso general, como convertidores
analógico/digitales, comparadores, timers y contadores, salidas analógicas, entre otros.
Existen sistemas más complejos que incluyen periféricos para uso específico en determinado sistema o
aplicación; a estos circuitos se les conoce como ASICs (Application Specific Circuit) y SOCs (System On a
Chip), encontrados en teléfonos por ejemplo; tal es es el caso de Snapdragon.
Listado de empresas de microcontroladores comunes o más vistos: MICROCHIP, XILINX, ALTERA, ATMEL,
INTEL, FUJITSU, HOLTEK, ANALOG DEVICES, MAXIM INTEGRATED, CYPRESS
SEMICONDUCTOR, ELAN MICROELECTRONICS CORP, EPSON SEMICONDUCTOR, TEXAS
INSTRUMENTS, NEC, ROCKWELL, PANSONIC, SONY, PARALLAX, TOSHIBA, SILICON MOTION;
SILICON LABORATORIES, XiLOG, XMOS, etc.
28
29
PIC18F4550
Un registro de propósito 35 I/O
general (Registro W) 4 Temporizadores/Contadores
Set de Instrucciones: RISC Tres interrupciones externas
77 Instrucciones (Assembler) PWM
Acceso a memoria: Harvard SPI e I2C

Memoria RAM de datos de Convertidor analógico digital de 8 y 10 bits


2048 bytes con opción de usar hasta 13 canales
Comparadores analógicos duales con opción
Memoria EEPROM de datos
de multiplexar entrada
de 256 bytes
UART
Memoria FLASH de
Comunicación serial mediante USB o RS232
32KBytes / 16 Para
instrucciones
Oscilador externo de hasta 48
Mhz
31
Oscilador interno de entre
31Khz hasta 31Mhz
BIBLIOGRAFÍA

• Uzcátegui, Roberto (2015); Clases de la asignatura Diseño de Sistemas de


Computación
• Virguez, Ricardo (2016); Procesador de Núcleo Blando en un FPGA. Trabajo de
Grado.
• Microchip Technology; Datasheet del PIC18F4550
• Manual en Español del PIC184550
• Wikipedia, The Free Encyclopedia.
32

También podría gustarte