Unidad 1: Arquitectura de Computadoras
Ing. Oscar Alonso Rosete Beas
Semana 24 Enero Rev:3 ciclo 2022-1
oscarrosete.com
oscarrosete.com
1.1. Introducción a los sistemas embebidos
1.2. Conceptos básicos de arquitectura de computadoras
1.3. Procesador.
1.4. Memoria.
1.5. Periféricos de entrada Salida.
1.6. Arquitectura de microcontroladores.
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
Horas de Clase Asistidas: 64 (4/semana)
Horas de laboratorio: 32 (2/semana)
Horas de Clase Independientes: 32 (2/semana)
Duración Total: 128 horas
Horario:
Lunes 17:00-19:00
Miércoles 19:00-21:00
Viernes 19:00-21:00 (Laboratorio)
DATOS DEL DOCENTE
Nombre: Oscar Alonso Rosete Beas
E-mail: oscar.rosete@cetys.mx
oscarrosete.com
oscarrosete.com
Este curso tiene como propósito que el alumno pueda adquirir y poner en práctica sus conocimientos acerca del diseño de controladores basados en microcontroladores y sistemas embebidos.
Durante el curso se estudiará:
Arquitectura de computadoras
Sistema de memoria, puertos de entrada y salida
Programación de microcontroladores en lenguaje ensamblador y C
Interconexión con sensores y periféricos
oscarrosete.com
Las actividades que se realicen dentro del aula serán dirigidas por el profesor y otras serán de carácter independiente para ser realizadas por los alumnos fuera del aula.
Las formas genéricas de actividades de aprendizaje que serán realizadas por los alumnos son:
oscarrosete.com
oscarrosete.com
oscarrosete.com
Reportes de lectura y reportes de investigación.
Prácticas de Laboratorio (*).
Elaboración de prototipos/ simulaciones.
Presentaciones en clase.
Exámenes teóricos/prácticos a lo largo del curso.
Proyecto final integrador en donde se apliquen las herramientas vistas durante el curso.
oscarrosete.com
oscarrosete.com
1.1. Introducción a los sistemas embebidos
1.2.Conceptos básicos de arquitectura de computadoras
1.3. Procesador
1.4. Memoria
1.5. Periféricos de entrada Salida
1.6. Arquitectura de microcontroladores
oscarrosete.com
oscarrosete.com
2.1. Introducción a los lenguajes de programación en microcontroladores
2.2. Arquitectura y lenguaje de programación Ensamblador
2.3. Modos de direccionamiento
2.4. Memoria RAM
2.5. Lenguaje C
oscarrosete.com
oscarrosete.com
3.1. Puertos paralelo de Entrada/Salida
3.2. Manejo de Temporización básica y contadores
3.3. Interrupciones
3.4. Puertos Seriales
3.5. Convertidores A-D y D-A
oscarrosete.com
oscarrosete.com
4.1. Tecnologías de Memoria
4.2. Organización de Memoria
4.3. Sistemas de Memoria
4.4. Manejo de memoria externa en un microcontrolador
5.1. Interfaces Hombre-Máquina
5.2. Interfaces con Sensores y Actuadores
5.3. Aplicaciones en Automatización y Robótica
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
Bibliografía
Wilmhurst, T. (2009). Designing Embedded Systems with PIC microcontrollers. Principles and Applications. Burlington, MA, USA: Newnes
Williams Elliot. (2014). AVR Programming. Learning to Write Software for Hardware. San Francisco, CA, USA. Maker Media Inc.
oscarrosete.com
oscarrosete.com
Software:
Arduino IDE 1.8.8, Proteus 8 Professional, Multisim 14.0, MPLAB X IDE v5.10, Atmel Studio 7
Herramientas digitales:
Blackboard, Google suite, recursos microsoft, portafolio electronico, bases de datos.
oscarrosete.com
oscarrosete.com
Concepto | Descripción | Ponderación |
---|---|---|
Formación: Actitudes y valores | Actitud en actividades individuales y en equipo relacionadas a la clase | 10% |
Tareas | Resolución de ejemplos típicos, solución de problemas en tareas individuales y en equipo. | 15% |
Exposiciones grupales | Exposiciones de acuerdo a temáticas asignadas. | 10% |
Pruebas objetivas (2) | Pruebas objetivas en forma de exámenes parciales y/o finales | 15% |
Prácticas de laboratorio | Desarrollo exitoso y elaboración de repórte de práctica de laboratorio | 25% |
Proyecto Final | Desarrollo y presentaciones profesionales de los proyectos | 25% |
oscarrosete.com
oscarrosete.com
Profesor:
Ing. Oscar Alonso Rosete Beas
E-Mail:
oscar.rosete@cetys.mx
Pagina de facebook:
https://www.facebook.com/oscararosete
Sitio web:
https://oscarrosete.com/
oscarrosete.com
oscarrosete.com
Asesorías: WhatsApp 686 264 5073
oscarrosete.com
oscarrosete.com
Desarrollar un proyecto de innovación a nivel experimental de tecnología utilizando microcontroladores y sistemas embebidos, donde el alumno proponga la solución de un problema planteado mediante el desarrollo de un proceso para la implementación de la solución y la realización de pruebas de factibilidad y utilidad de un sistema.
oscarrosete.com
oscarrosete.com
Learning Path
Ensamblador
Software: MPLAB, Multisim , Proteus,
C
Software: MPLAB, Multisim , Proteus,
Ensamblador y C
Software: ATmega328p,
Tinkercad
Lenguaje Arduino
oscarrosete.com
oscarrosete.com
Componentes básicos
oscarrosete.com
oscarrosete.com
Componentes básicos
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
1.1. Introducción a los sistemas embebidos
1.2. Conceptos básicos de arquitectura de computadoras
1.3. Procesador
1.4. Memoria
1.5. Periféricos de entrada Salida
1.6. Arquitectura de microcontroladores
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
Sistema de numeración decimal, compuesto de 10 dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8 y 9)
528= (5*10^2) + (2*10^1) + (8*10^0)= 500+20+8
Sistema de numeración binario, compuesto de 2 dígitos (0, 1) los cuales son comúnmente denominados bits. Ejemplo 1101012
oscarrosete.com
oscarrosete.com
Sistema de numeración binario
Es utilizado en las computadoras debido al hecho de que dos niveles de voltaje pueden ser representados como los dígitos 0 y 1.
Un sistema puede definir:
0 v como 0 lógico
+5v como 1 lógico
*con su debida tolerancia a variaciones en voltaje.
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
Realizar divisiones sucesivas por 2 y escribir los restos obtenidos en cada división en orden inverso al que han sido obtenidos.
oscarrosete.com
oscarrosete.com
Utilizada como una representación conveniente de los números binarios. Compuesto de 10 dígitos y 6 letras.
1000 1001 0110=896H
oscarrosete.com
oscarrosete.com
Conversión binario a hexadecimal: separar en bloques de 4 bits y reemplazar por su equivalente en hexadecimal.
Conversión hexadecimal a binario: Intercambiar cada dígito hexadecimal por su equivalente de 4 bits
oscarrosete.com
oscarrosete.com
Conversión decimal a hexadecimal:
Convertir a binario y posteriormente a hexadecimal
Conversión hexadecimal a decimal:
Convertir a binario y posteriormente a decimal
oscarrosete.com
oscarrosete.com
En cada una de las bases cuando se adiciona uno al dígito más alto (9, 1 y F), el dígito se convierte en 0 con un carry en la siguiente posición.
1-->10 (binario)
9-->10 (decimal)
F-->10 (hexadecimal)
Suma de números binarios:
Relevante porque las computadoras tienen circuitos sumadores
oscarrosete.com
oscarrosete.com
Suma de números hexadecimal:
Se agregan los dígitos como en la suma decimal, si el resultado es menor de 16 el dígito se asigna al resultado en la posición indicada, si es mayor de 16 al resultado de la operación se le resta 16 y se mantiene en la posición indicada con un acarreo de 1.
oscarrosete.com
oscarrosete.com
Al requerirse representar toda la información en las computadoras por medio de 0s y 1s, se definieron patrones binarios para las letras y otros caracteres.
En 1960 una representación estándar denominada ASCII fue establecida para los números de 0 a 9, las letras del alfabeto en minúsculas y mayúsculas, así como signos de puntuación.
oscarrosete.com
oscarrosete.com
El sistema ASCII utiliza 7 bits para representar cada “código”, ej. 100 0001 es la letra “A” y 110 0001=“a”. A menudo se agrega un 0 para utilizar paquetes de 8 bits(0100 001=”A”)
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
Convertir 7710 a binario y a hexadecimal
Convertir 1101012 a hexadecimal y a decimal
Realiza la adición binaria: 101100+101
Convertir 1101012 a su representación en complemento 2
Sumar 36BH+F6H
Investigar proceso para restar hexadecimal y realizar la operación 36BH-F6H
Escribir “Hola Mundo” en código ASCII(hexadecimal)
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
Equipo 1: Antonio Loredo, Oscar Montes, Pedro Monge y Andre Ochoa
Equipo 2: Alan Gutierrez, Alejandro Mendoza, Diego Carrillo y Emiliano lopez
Equipo 3: Carlos Rivera, Oscar Garcia, Roberto Ibarra y Rodrigo Pérez
Equipo 4: Abigail Rodriguez, Angel Ramirez, Rebeca Alarcon y Andrea Castro
oscarrosete.com
oscarrosete.com
Los componentes electrónicos se encuentran presentes en la mayoría de los sistemas, la mayoría utiliza microcontroladores.
oscarrosete.com
oscarrosete.com
¿Qué tecnologías tendrán un rol importante en el futuro?
oscarrosete.com
oscarrosete.com
Sistema cyber-físico:
Conexión del mundo digital y el físico
Industria 4.0:
Recopilación de información de procesos de producción
oscarrosete.com
oscarrosete.com
Sistema cyber-físico:
Conexión del mundo digital y el físico
Industria 4.0:
Recopilación de información de procesos de producción
oscarrosete.com
oscarrosete.com
Embedded systems:
“Information processing systems embedded into a larger product”
-ETH Zurich EE281
No es la principal razón de compra, es valor agregado.
Información: conjunto organizado de datos
oscarrosete.com
oscarrosete.com
Networked embedded computing systems/IoT:
Computing systems embedded within things/gadgets connected to the network.
Stanford EE281
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
Programar en cualquier lenguaje de su preferencia un convertidor de sistemas de numeración.
El usuario deberá poder:
Ejemplo:
"Me gustaría convertir el (1101) base 2 a hexadecimal"
oscarrosete.com
¿Qué es una computadora?
Las computadoras se encuentran en todo lugar, celulares, carros, relojes, pulseras y mochilas entre otros lugares.
-Stanford EE108
oscarrosete.com
¿Cómo funcionan las computadoras?
Solo funcionan con señales binarias
Tiene valor de 0 o 1 lógico, llamado bit.
Las letras, números, cadenas e imágenes deben ser construidas de múltiples bits.
Las cadenas de bits que le indican al hardware que hacer (instrucciones) y una secuencia de instrucciones se denomina programa en código máquina.
oscarrosete.com
¿Cómo funcionan las computadoras?
Construidas a partir de compuertas lógicas(lógica booleana)
Cuentan con celdas de memoria para preservar bits a lo largo del tiempo (Flip-flops, registers, SRAM cells, DRAM cells)
oscarrosete.com
Tamaño
Un bit es un dígito binario, un byte son 8 bits, un nibble medio byte, word son 2 bytes o 16 bits.
Un kilobyte es 2^10 bytes o 1024 bytes, un megabyte 2^20 bytes o 1,048,576 bytes, gigabyte 2^30 bytes, terabyte 2^40 bytes.
oscarrosete.com
Software: Conjunto de programas necesarios para hacer posible la realización de una tarea específica. Programas + datos +documentación
Programa: Secuencia de sentencias
Sentencia o instrucción: Específica ciertas operaciones que debe ejecutar una computadora.
Lenguaje de programación: Notación que permite escribir programas.
Sintaxis: Reglas gramaticales
-Facultad de ingeniería , universidad de los Andes
oscarrosete.com
Generalmente tienen:
Cada sistema es distinto, pero tienen elementos similares
Debe de tener:
Procesador, memoria
Interacción con medio externo (I/O)
oscarrosete.com
La arquitectura Harvard utiliza una memoria separada para datos y para el programa con direcciones y buses independientes. Von Neumann utiliza la misma memoria.
Harvard
Von Neumann/Princeton
oscarrosete.com
Procesador
Es el componente más importante de una computadora, ya que todo lo demás se encuentra centrado en el. En esencia, el procesador es la sección que hace el cómputo.
oscarrosete.com
Procesador
Es un dispositivo capaz de manipular información de acuerdo a una secuencia de instrucciones. Estas instrucciones se denomina código máquina, las cuales pueden ser modificadas para adecuarse a la aplicación (son programables), una secuencia de instrucciones se denomina programa.
oscarrosete.com
Microprocesador
Un microprocesador incorpora las funciones de una unidad de procesamiento central (CPU/ procesador) en un circuito integrado.
Con excepción de las “supercomputadoras”, casi la totalidad de los procesadores modernos son microprocesadores, por lo que los términos son utilizados de manera intercambiable.
oscarrosete.com
Microprocesador
De manera análoga a una caja musical (se hace una secuencia de giros y se produce música) en un microprocesador se le envía una serie de patrones de bits y estas activan o desactivan partes del núcleo de procesamiento (puede ejecutar adiciones, guardar un byte en memoria). Cada procesador tiene una serie de instrucciones específico.
oscarrosete.com
Microprocesador
Microprocesadores utilizados en la actualidad son las series Intel Pentium, Freescale/IBM PowerPC, MIPS, ARM y SPARC entre otros.
También se les llaman CPU.
oscarrosete.com
Como ingenieros.....creamos
Describir en equipos de laboratorio 1 aplicación documentada y 1 no documentada (propuesta por ustedes) de un microcontrolador o 1 sistema embebido en:
Industria
Casa habitación/sociedad en general.
oscarrosete.com
Como ingenieros.....creamos
Describir en equipos de laboratorio 1 aplicación documentada y 1 no documentada (propuesta por ustedes) de un microcontrolador o 1 sistema embebido en:
Industria
Casa habitación/sociedad en general.
oscarrosete.com
Como ingenieros.....creamos
En una presentación deberá describir la problemática a resolver, con que dispositivos sera resuelto, clasificar el dispositivo central como microcontrolador o sistema embebido y justificar la selección de su dispositivo.
Subir a blackboard.
La extensión mínima será de 2 diapositivas por aplicación.
Nota: Toda actividad debe subirse a blackboard en un solo archivo cuyo nombre sea:
No de matricula – Titulo_Actividad
Ejemplo: 13256 Aplicaciones Microcontroladores...
oscarrosete.com
oscarrosete.com
1.1. Introducción a los sistemas embebidos
1.2. Conceptos básicos de arquitectura de computadoras
1.3. Procesador
1.4. Memoria
1.5. Periféricos de entrada Salida
1.6. Arquitectura de microcontroladores
Como ingenieros.....creamos
Describir en equipos de laboratorio 1 aplicación documentada y 1 no documentada (propuesta por ustedes) de un microcontrolador o 1 sistema embebido en:
Industria
Casa habitación/sociedad en general.
oscarrosete.com
Equipo 1: Antonio Loredo, Oscar Montes, Pedro Monge y Andre Ochoa
Equipo 2: Alan Gutierrez, Alejandro Mendoza, Diego Carrillo y Emiliano lopez
Equipo 3: Carlos Rivera, Oscar Garcia, Roberto Ibarra y Rodrigo Pérez
Equipo 4: Abigail Rodriguez, Angel Ramirez, Rebeca Alarcon y Andrea Castro
oscarrosete.com
Elementos que componen un microprocesador
Puede existir confusión ya que a los procesadores se les denomina CPU.
La CPU es responsable de ejecutar el ciclo de obtención, decodificación y ejecución de instrucciones. (comúnmente denominado three-stage pipeline)
oscarrosete.com
oscarrosete.com
Pueden diferir ampliamente en sus diseños, sin embargo de acuerdo al modelo Von Neumann, el ciclo se implementa a través de la combinación de los siguientes 4 componentes:
oscarrosete.com
Buses internos de cpu
Un bus es un grupo físico de líneas de señal que tiene relacionada una función. Buses permiten la transferencia de señales eléctricas entre distintas partes.
-John Catsoulis-Designing Embedded Hardware(2005, O'Reilly Media)
Los buses internos de un CPU son mecanismos que interconectan sus componentes internos (ALU, CU y registros).
-Tammy Noergaard (Eds.) - Embedded Systems Architecture. A Comprehensive Guide for Engineers and Programmers (2013, Newnes)
oscarrosete.com
Ancho de bus
El ancho de bus es el número de líneas de señal dedicadas para transferencia de información. Un bus de 8 bits transfiere 8 bits de datos en paralelo.
Buses internos de cpu
La mayoría de los microprocesadores disponibles hoy utilizan la arquitectura de sistema denominada three-bus. Estos tres buses son bus de direcciones, bus de información y bus de control.
John Catsoulis-Designing Embedded Hardware(2005, O'Reilly Media)
oscarrosete.com
Bus de información
Transportan información bidireccionalmente, entre registros y ALU.
Bus de direcciones
Transporta la ubicación de los registros que contienen información que debe ser transferida.
Bus de control
Transporta información de señales de control, tales como temporizador y señales de control entre registros, ALU y CU.
oscarrosete.com
ALU
Implementa operaciones de comparación, logica y operaciones matemáticas definidas por ISA.
ISA Architecture Models
Modelo abstracto de una computadora o arquitectura del conjunto de instrucciones es el repertorio de instrucciones que puede entender y ejecutar la unidad de control de una determinada CPU.
En cuanto a la complejidad se clasifica en CISC O RISC.
oscarrosete.com
ISA Architecture Models
La ISA define las operaciones que pueden utilizar los programadores para crear programas para la arquitectura especifica, los operandos (datos) que son aceptados, almacenamiento, modos de acceso a memoria y manejo de interrupciones.
-Tammy Noergaard (Eds.) - Embedded Systems Architecture. A Comprehensive Guide for Engineers and Programmers (2013, Newnes)
oscarrosete.com
ALU (Arithmetic Logic Unit)
Es un circuito lógico combinatorio que puede tener una o más entradas y solamente una salida. La salida del ALU es dependiente de las entradas aplicadas en ese instante, y no de condiciones pasadas. Conformado por compuertas lógicas, medio sumador y como bloque de construcción más básico sumador completo.
-Tammy Noergaard (Eds.) - Embedded Systems Architecture. A Comprehensive Guide for Engineers and Programmers (2013, Newnes)
oscarrosete.com
Circuitos lógicos combinatorios
Cuando compuertas lógicas se conectan para producir una salida específica para cierta combinación de variables de entrada, sin almacenamiento de información, el circuito resultante es combinatorio. Las variables de salida son dependientes en todo momento de la combinación de variables de entrada.
-Digital Logic Circuits. A.P.Godse, D.A.Godse
oscarrosete.com
ALU son multifunción
Provee operaciones de adición, así como otras operaciones lógicas y matemáticas, diseñado a partir de la circuiteria sumadora y circuiteria adicional incorporada para realizar sustracciones (complemento a dos), AND lógico, OR lógico, entre otras.
oscarrosete.com
ALU son multifunción
La ubicación donde es guardado a la información obtenida por el ALU varía dependiendo de la arquitectura.
En la PowerPC se guarda en un registro denominado acumulador.
También pueden ser guardados en memoria (una stack u otro lugar) o una combinación híbrida de estas ubicaciones.
oscarrosete.com
Las 8 operaciones básicas ALU
-Sistemas digitales: principios y aplicaciones. Ronald J. Tocci, Neal S. Widmer
oscarrosete.com
a) En base al siguiente video, la información vista en clase describir que es un ALU y una investigación de bases de datos confiables
b) Realizar mapa conceptual del ALU.
El mapa conceptual mejor elaborado contará con 3 décimas en el examen.
oscarrosete.com
Trabajaremos con el ALU 74LS181N existente en multisim.
El alumno deberá investigar y armar un circuito en el simulador que logre realizar y desplegar en un display de 7 segmentos el resultado de las siguientes funciones lógicas:
1.Suma lógica A+B
2.Producto lógico A*B
3. A XOR B
Comprobar con A=1001 y B=0011.
Resultados: 1.-1011 2.-0001 3.-1010
Siendo A y B números de 4 bits.
oscarrosete.com
oscarrosete.com
1.1. Introducción a los sistemas embebidos
1.2. Conceptos básicos de arquitectura de computadoras
1.3. Procesador
1.4. Memoria
1.5. Periféricos de entrada Salida
1.6. Arquitectura de microcontroladores
Automatización y monitoreo remoto proceso industrial
10 equipos interconectados en una red ethernet industrial y comunicados a computador central por medio de sistemas embebidos
oscarrosete.com
Automatización y monitoreo remoto proceso industrial
10 equipos interconectados en una red ethernet industrial y comunicados a computador central por medio de sistemas embebidos
oscarrosete.com
Desarrollo de fresadora CNC con placa de desarrollo Arduino y Dremel 3000.
oscarrosete.com
Memoria en la computadora
La memoria de una computadora se puede dividir en tres grupos:
Memoria del microprocesador
Memoria primaria o principal
Memoria secundaria
oscarrosete.com
La memoria del microprocesador se refiere a sus registros internos, funcionan a velocidad del CPU pero solo se tiene un número limitado de ellos. Es una parte integral de un sistema microprocesador y su función es contener las instrucciones y los datos.
oscarrosete.com
Registros
Son una combinación de varios flip-flops que pueden utilizarse para guardar información temporalmente o retrasar señales.
Un registro de almacenamiento es una forma de memoria de procesador interno usualmente utilizada para temporalmente guardar, copiar y modificar operandos que están inmediatamente y frecuentemente utilizado por el sistema. Shift registers retrasan señales al pasar las señales a través de varios flip-flops internos con cada pulso de reloj.
oscarrosete.com
Registros
Los registros están construidos de un grupo de flip-flops que pueden ser activados en grupo o individualmente, en realidad el número de flip-flops utilizados en cada registro describe el procesador, procesador de 32 bits cuenta con 32 flip-flops (circuito secuencial) en sus registros de trabajo.
oscarrosete.com
Circuito secuencial
También denominado máquina de estados finitos, tiene un número finito de estados en los cuales se recuerda cierta información dependiendo del estado en particular que nos encontremos.
Ej. Máquina expendedora.
oscarrosete.com
Ejemplo registro 8 bits con 8 flip-flops de tipo D
Tammy Noergaard (Eds.) - Embedded Systems Architecture. A Comprehensive Guide for Engineers and Programmers (2013, Newnes)
oscarrosete.com
Registros
En resumen los registros tienen un flip-flop por cada bit que es manipulado o almacenado en un registro.
oscarrosete.com
Registros
Aunque los diseños ISA no utilizan los registros de la misma manera para procesar información, el almacenamiento se clasifica en dos categorías:
Registros de propósito general: utilizados para almacenar y manipular cualquier tipo de información determinado por el programador.
Registros de propósito especial: solo pueden ser utilizados de una manera especificada por ISA, incluyendo guardar los resultados de tipos específicos de cálculos, banderas, contadores, puertos I/O y registros de corrimiento.
oscarrosete.com
oscarrosete.com
CU
El CU es responsable de generar las señales de temporizado, así como controlar y coordinar la obtención, decodificación y ejecución de instrucciones en el procesador.
Tras la obtención de instrucciones de memoria y decodificación, la CU determina la operación que debe desempeñar el ALU, selecciona y escribe señales apropiadas para cada unidad funcional dentro y fuera del procesador (memoria,registros,ALU).
-Tammy Noergaard (Eds.) - Embedded Systems Architecture. A Comprehensive Guide for Engineers and Programmers (2013, Newnes).pdf
oscarrosete.com
CU
La unidad de control se realiza por medio de una de las siguientes técnicas:
Control alambrado. El primero se hace diseñando físicamente los circuitos con compuertas y registros lógicos, se hace para un especifico juego de instrucciones . Ejemplo zilog Z8000
Control microprogramado incluye una ROM de control para la traducción de instrucciones, Ejemplo:Intel 8086.
oscarrosete.com
CU
La unidad de control se realiza por medio de una de las siguientes técnicas:
En la nanoprogramación se incluyen dos ROMs donde la primera contiene las direcciones de la segunda que almacena las microoperaciones, esto lo hace más eficiente.
oscarrosete.com
Resumen
El microprocesador generalmente contenido en un solo chip y es compuesto de registros, una o varias ALUs y una unidad de control.
En los microprocesadores de propósito general los registros pueden usarse para almacenar datos, direcciones o resultados de operaciones. La mayor parte de los microcontroladores actuales son de este tipo, aunque algunos tienen registros para usos específicos.
oscarrosete.com
Realizar mapa mental o cuadro sinoptico de los elementos del procesador
oscarrosete.com
oscarrosete.com
ENTRADAS/SALIDAS
Debido a las diferencias que hay entre el CPU y los dispositivos, es necesaria una circuitería de interfase para que se encarguen de las transferencias. El procesador utiliza instrucciones de E/S para tener acceso al bus de E/S.
Se tienen tres formas de transferir datos entre un dispositivo y el CPU:
oscarrosete.com
ENTRADAS/SALIDAS
La comunicación entre el CPU y los dispositivos es por medio de registros llamados puertos. En los microcontroladores estos puertos se encuentran en el mismo C.I. que el CPU.
Los bits del puerto pueden configurarse como entradas o salidas ya sea como conjunto o individualmente, a través de un registro de comando.
oscarrosete.com
ENTRADAS/SALIDAS
En los sistemas de propósito general por cuestiones de compatibilidad los puertos son fijos. Algunos puertos cuentan además con líneas de control (handshake) para regular el flujo de información.
oscarrosete.com
Un microcontrolador (MCU) es una computadora pequeña en un circuito integrado que consiste de una unidad central de procesamiento (CPU relativamente simple) combinada con dispositivos periféricos tales como memorias, dispositivos de entradas y salidas, y temporizadores.
Destinada a gobernar una sola tarea. Más de la mitad de los CPUS vendidos mundialmente son utilizados en microcontroladores.
oscarrosete.com
Un microcontrolador posee los siguientes componentes:
Unidad de proceso. Procesador, memoria del programa, memoria de datos, lineas de E/S.
Memoria no volátil para contener el programa
Memoria de lectura y escritura para guardar los datos.
Líneas de E/S para los controladores de periféricos: comunicación paralela,comunicación serie, diversas puertas de comunicación como bus I2C, USB, etc
oscarrosete.com
Un microcontrolador posee los siguientes componentes:
Recursos auxiliares: Circuito de reloj, temporizadores, perro guardián, protección contra fallas de alimentación, estado de reposo o bajo consumo,etc.
Periféricos complementarios. Timers, convertidores, A/D, comparadores analogicos, puertos de comunicación,etc.
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
Fabricante de las familias PIC y AVR (disponibles en 8,16 y 32 bits) Busqueda parametrica familia AVR, Curso PIC avanzado
Utilizaremos PIC16F84A ya que es simulable en Multisim y PROTEUS
oscarrosete.com
oscarrosete.com
ARM es un procesador y las compañías más importantes lo producen
Mejor rendimiento en comparación con los microcontroladores de 8,16 y 32 bits como 8051, PIC 18 Y 32, texas MP
Son los de menor consumo de potencia eléctrica. Muy bajo costo.
Conjunto de instrucciones optimizado para programarse en lenguaje C
Hardware de punto flotante e instrucciones de DSP
oscarrosete.com
Qualcomm-snapdragon
IBM -iot con arm
Android principalmente en procesadores arm
Continental en sistemas automotrices
NI en sus DAQ
oscarrosete.com
Curso Youtube. ARM® Cortex®-M4F Based MCU TM4C123G LaunchPad™ Evaluation Kit. Compra alternativa: teensy. Curso STNucleo
oscarrosete.com
oscarrosete.com
Derivación de pic: Picaxe
'three wire' download cable connection vs programador convencional
Programado en PICAXE Basic
oscarrosete.com
Para Lunes junto con cuadro sinóptico/mental
Generales: Generar un documento Word o Powerpoint
RISC
CISC
Clasificación de los siguientes microcontroladores acuerdo al arbol visto en clase (Agregar referencias):
Pic16f84a, pic16f18877
Atmega328p
PICAXE 08M2
oscarrosete.com
Requerimientos para simular un microcontrolador PIC16F84a utilizando lenguaje ensamblador y lenguaje C
Realizar una simulación del encendido de un LED utilizando el PIC16F84a en cualquier lenguaje.
oscarrosete.com
oscarrosete.com
1.1. Introducción a los sistemas embebidos
1.2. Conceptos básicos de arquitectura de computadoras
1.3. Procesador
1.4. Memoria
1.5. Periféricos de entrada Salida
1.6. Arquitectura de microcontroladores
Text
2.1. Introducción a los lenguajes de programación en microcontroladores
2.2. Arquitectura y lenguaje de programación Ensamblador
2.3. Modos de direccionamiento
2.4. Memoria RAM
2.5. Lenguaje C
Repaso el viernes 7 de febrero
Lunes 10 de febrero examen
oscarrosete.com
Para Lunes junto con cuadro sinóptico/mental
Generales: Generar un documento Word o Powerpoint
RISC
CISC
Clasificación de los siguientes microcontroladores acuerdo al arbol visto en clase (Agregar referencias):
Pic16f84a, pic16f18877
Atmega328p
PICAXE 08M2
oscarrosete.com
Requerimientos para simular un microcontrolador PIC16F84a utilizando lenguaje ensamblador y lenguaje C
Realizar una simulación del encendido de un LED utilizando el PIC16F84a en cualquier lenguaje.
oscarrosete.com
mplab assembler input output
page 52,53
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
309c23fe3a02
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
Click on debug
oscarrosete.com
oscarrosete.com
oscarrosete.com
Cursor on status
oscarrosete.com
oscarrosete.com
oscarrosete.com
oscarrosete.com
leer pg 3
O 30 LIBRO
pg. 5
oscarrosete.com
Program memory
Data memory
Flash program memory
1 K words =1024 instructions
14 bit-program
memory word
Special Function Registers (SFR)
General Purpose Registers (GPR)
8-bits wide
oscarrosete.com
El vector "RESET" se encuentra en la dirección 00h ()
El vector "interrupt" se encuentra en la dirección 0004h()
La memoria de programa abarca 1K x 14 bits (0000h-03FFh)
3ff=1023 de 0 a 1023(1024 lineas)
wraparound:
20h, 420h son la misma ubicación
32 y 1056. Diferencia son 1024
oscarrosete.com
El contador de programa (PC: Program Counter) es el registro del microcontrolador cuya función es direccionar la memoria de programa.
EL PC almacena direcciones de instrucciones; esta la dirección de la siguiente instrucción que hay que ejecutar.
es de 13 bits (8 a 12 bits PCLATH, bits 0-7 PCL)
Durante la ejecución de un programa, el PC se incrementa en 1 con cada instrucción que se ejecute.
oscarrosete.com
Portions of data memory are banked. This is for both the SFR area and the GPR area.
Data memory is partitioned into two banks which contain the general purpose registers and the special function registers. Bank 0 is selected by clearing the RP0 bit (STATUS<5>). Setting the RP0 bit selects Bank 1.
oscarrosete.com
oscarrosete.com
File register
SFRs
oscarrosete.com
Page 7
oscarrosete.com
El microcontrolador se comunica con el mundo exterior a través de los puertos.
Estos están constituidos por líneas digitales de entrada/salida que trabajan entre 0 y 5 V. los puertos se pueden configurar como entradas para recibir datos o como salidas para gobernar dispositivos externos
El Puerto A con 5 líneas, pines RA0 a RA4.
El puerto B con 8 líneas, pines RB0 a RB7.
Cada línea puede ser configurada como entrada o como salida, independientemente unas de otras, según se programe.
oscarrosete.com
La información contenida en estas memorias, que es el programa que lo controla y que consiste de una serie de números hexadecimales (ejemplo:1683 0186 30FF 0085 1283 0805 0086 2805), debe ser grabada previamente mediante un equipo físico denominado programador o grabador. Este equipo se conecta al ordenador y mediante un software se controla la grabación de la memoria del programa del microcontrolador (grabar o programar el microcontrolador)
oscarrosete.com
oscarrosete.com
Subir archivo .asm a Blackboard
oscarrosete.com
Las expresiones son combinaciones de constantes y símbolos mezclados con operadores aritméticos y lógicos. Se permite usar paréntesis, se pueden utilizar en el campo de los operandos.
Los operadores son los símbolos que denotan las operaciones aritméticas y lógicas definidas en el lenguaje ensamblador.
oscarrosete.com
oscarrosete.com
oscarrosete.com
Verdadero si su valor numérico es diferente de 0
oscarrosete.com
Bitwise operations, operaciones bit a bit
oscarrosete.com
oscarrosete.com
oscarrosete.com
equ no puede ser modificado posteriormente, se utiliza comúnmente para registros de funciones especiales y sus direcciones en memoria de datos.
oscarrosete.com
DATO1 equ .18
DATO2 equ .7
movlw DATO1 %DATO2
; Al dividir 18/7 el residuo es 4
DATO=.10 (operador de asignación)
oscarrosete.com
Repaso PORTB, TRISB
oscarrosete.com
Text
2.1. Introducción a los lenguajes de programación en microcontroladores
2.2. Arquitectura y lenguaje de programación Ensamblador
2.3. Modos de direccionamiento
2.4. Memoria RAM
2.5. Lenguaje C
Repaso el viernes 7 de febrero
Lunes 10 de febrero examen
oscarrosete.com
Brazo robotico controlado por guante inalámbrico
Microcontrolador atmel
oscarrosete.com
Las 2 horas de los días Miércoles estarán designadas a trabajo en práctica de laboratorio.
Entrega: Miercoles 16/03/21
oscarrosete.com
Text
2.1. Introducción a los lenguajes de programación en microcontroladores
2.2. Arquitectura y lenguaje de programación Ensamblador
2.3. Modos de direccionamiento
2.4. Memoria RAM
2.5. Lenguaje C
oscarrosete.com
En los lenguajes de programación, un switch case o switch statement, declaración de cambiador o declaración de interruptor.
El valor de la expresión entregada como parámetro es comparada con las constantes asociadas a los casos, en caso de no haber coincidencia ejecuta operación predeterminada.
oscarrosete.com
Se envia al registro w lo que se quiera comparar
movfw PORTA
Se llama a una subrutina
call compara
Al registro PCL se le asigna PCL+W
compara addwf PCL,F
Las combinaciones requeridas se ponen en orden dentro de la subrutina
oscarrosete.com
¿Qué pasa cuando F tiene un valor de D'20'?
oscarrosete.com
1. Una serie de interruptores conectados al Puerto B efectúan las siguientes operaciones:
Asegurarse que solo realice la comparación si el puerto B tiene un valor <=3.
Nota: La ubicación de los registros y sus contenidos serán seleccionados de manera arbitraria por los estudiantes.
El contenido no puede ser 0.
oscarrosete.com
Realizar el programa y simulación que cumpla con lo siguiente:
2. Interruptor conectado al puerto B bit 3 inicia la siguiente secuencia:
Se simulará el funcionamiento de un semáforo, en el puerto A bit 0 permanecerá 5 segundos encendidos, después hará un parpadeo de 0.5s se desactivará y activará el bit 1, el cual permanecerá 2 segundos encendido hará un parpadeo de 0.5s se desactivará y activará el bit 2 , el cual permanecerá 5 segundos encendido hará un parpadeo de 0.5s y repetirá la secuencia.
oscarrosete.com
oscarrosete.com
Documentar el codigo, decirle al software que usamos un pic16f84a e Incluir archivo de símbolos
;autor,fecha,descripción
list p=16F84a
#include "p16f84a.inc"
Definir que sucede al hacer reset al pic
org 0
goto init
Definir configuration bits
__CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _CP_OFF
Evitar vector de interrupción y acceder a banco 1 de memoria de datos
org 5
init bsf STATUS,RP0
Definir que es salida a traves de TRISB
bcf TRISB,0
regresamos al banco 0 e ir al inicio de mi ciclo principal
bcf STATUS,RP0
goto start
En ciclo principal cambiar a 1 el bit 0 de Puerto B
start bsf PORTB,0
goto start
Finalizar
END
oscarrosete.com
oscarrosete.com
Evitar vector de interrupción y acceder a banco 1 de memoria de datos
org 5
init bsf STATUS,RP0
Definir que el bit 0 de Puerto B es salida y el bit 0 del puerto A es entrada
bcf TRISB,0
bsf TRISA,0
Regresamos al banco 0 e ir al inicio de mi ciclo principal
bcf STATUS,RP0
goto start
bit 0 del puerto A==0?
start btfsc PORTA,0
Cambiar a 1 el bit 0 de Puerto B
bsf PORTB,0
Si
No
goto start
oscarrosete.com
oscarrosete.com
oscarrosete.com
The instruction cycle (also known as the fetch–decode–execute cycle or simply the fetch-execute cycle) is the cycle which the central processing unit (CPU) follows from boot-up until the computer has shut down in order to process instructions
oscarrosete.com
pg. 22
oscarrosete.com
pg. 23
Capacitor selection for crystal oscillator
oscarrosete.com
pg. 57
oscarrosete.com
Si el reloj principal es de 4 MHz y queremos saber cuanto tiempo emplea en procesarse la instrucción nop, la cual sólo emplea un ciclo de máquina, se emplearía la siguiente expresión matemática:
pg. 36
TCY= 4*( 1/Fosc )*Cycles=
4*( 1/( 4*10^6 ) )*1 =
1*10^6 s =
1μs
oscarrosete.com
GOTO?
CICLOS?
oscarrosete.com
Llamada subrutina (2)
Primera vuelta (3+2)
3 vueltas intermedias (3)
Última vuelta s(2)
Retorno subrutina (2)
oscarrosete.com
oscarrosete.com
oscarrosete.com
Realizar el programa y simulación que cumpla con lo siguiente:
1. Con interruptores conectados a las terminales RB0 y RB1 activar los LEDs conectados a las terminales RA0 y RA1 de acuerdo a la Tabla 1.
RB0 | RB1 | RA1 | RA0 |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 |
Tabla 1
Si PUERTOB==0000 0010:
Puerto A = 0000 0001
oscarrosete.com