291
Seminario de Titulación Ingeniería en Sistemas Arquitectura de Sistemas Microprocesados 23/05/2022 Arquitectura de Sistemas Microprocesados 1

ARQUITECTURA SIST MICRO_REV2.pptx

Embed Size (px)

Citation preview

Page 1: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

1

Seminario de TitulaciónIngeniería en Sistemas

Arquitectura de Sistemas Microprocesados

Page 2: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

2

Objetivos de Asignatura Objetivo general:

Diseñar sistemas automatizados de mediana complejidad gobernados por Microcontroladores

Objetivos específicos: Caracterizar las funciones y arquitectura de un

sistema microprocesado. Interpretar las instrucciones de programación del

microcontrolador en lenguaje JAVA. Programar microcontroladores con herramientas de entorno gráfico.

Diseñar aplicaciones de sistemas automatizados.

Page 3: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

3

Contenidos: Unidades didácticas:

1: Arquitectura de sistemas microprocesados Microprocesadores vs microcontroladores Arquitectura interna de microcontroladores

2: Programación de microcontroladores: C++, JAVA Estructura de programas Fundamentos de lenguaje para microncontroladores Herramientas OPEN SOURCE para microcontroladores Simulación de sistemas microprocesados

3: Programación gráfica de microcontroladores Funciones y Macros de recursos especiales de uC

4: Diseño de aplicaciones con microcontroladores

Page 4: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

4

Metodología En cada período de clase se presentará el tema,

exponiendo el objetivo específico y las habilidades que se desea alcanzar. Mediante el autoaprendizaje (exploraciones) se llega al descubrimiento de conceptos y patrones de manera independiente, aprovechando el poder de la tecnología. Las actividades (aplicaciones) son una rica y variada selección de aplicaciones del mundo real, estas ofrecen un constante repaso de las habilidades para resolver problemas. Además, se pueden incorporar Actividades en equipo, motivando al estudiante a pensar, hablar y escribir soluciones en un ambiente de aprendizaje de mutuo apoyo.

Page 5: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

5

Sistema de evaluación La evaluación será continua y constante

durante el desarrollo de las temáticas programadas: Controles frecuentes, Trabajos individuales o en

grupo, Pruebas escritas y prácticas, Resolución de ejercicios, Exposiciones y trabajos independientes.

Para el control de notas se guiará según ficha de evaluación para cada parcial emitida por el Departamento Académico. Es decir con notas intraclase y extractase.

actividades desarrolladas intraclase y extractase (EF)

20%

Evaluación parcial (EP) 20 %

Evaluación ordinaria o final (EO) 60%

Page 6: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

6

Referencias bibliográficas JOSÉ Mª ANGULO USATEGUI, IGNACIO ANGULO

MARTÍNEZ. PIC diseño práctico de aplicaciones, Tercera edición. MCGRAW HILL

VERLE MILAN. PIC Microcontrollers Programming in C. Primera edición. 2009

BANZI MASSIMO. GETTING STARTED WITH ARDUINO. Segunda edición. O´REILLY. 2011

WARREN JOHN, JOSH ADAMS, MOLLE HARALD. ARDUINO ROBOTICS. Primera edición. TIA. 2010

BART HUYSKENS, JOHN DOBSON, STEVE TANDY. AN INTRODUCTION TO MICROCONTROLLER PROGRAMMING. MATRIX MULTIMEDIA. 2010

Page 7: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

7

Plataforma de trabajo Microcontroladores PIC de 8 bits:

PIC16F887 PIC16F88

Microcontroladores ATMEL de 32 bits: ARDUINO

Entrenadores de microcontroladores: AUTOMASIS VER3.0

Equipos de medición: Osciloscopios, fuentes cc, multímetros,

generadores de señales, programadores PIC

Compiladores y simuladores: MPLAB, MIKROC, PROTEUS

Page 8: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

8

¿Cómo trabaja nuestro sistema?

Page 9: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

9

Pasos de diseño de sistemas microprocesados Procesamiento secuencial:

La lógica digital Codificación de los datos La organización de los componentes Programación: ensamblador, lenguaje C Compilar Interfaces con mundo exterior Dispositivos y controladores

Page 10: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

10

Repaso de electrónica digital

Page 11: ARQUITECTURA SIST MICRO_REV2.pptx

Función AND (producto)

111

001

010

000

SbabaS

Page 12: ARQUITECTURA SIST MICRO_REV2.pptx

Función OR (suma)

111

101

110

000

SbabaS

Page 13: ARQUITECTURA SIST MICRO_REV2.pptx

Función NOT (inversor)

01

10

SaaS

Page 14: ARQUITECTURA SIST MICRO_REV2.pptx

Primera forma canónica

1111

0011

0101

0001

1110

0010

1100

0000

Scba Minitérminos: Casos en los que se obtiene salida 1

cuando a y b son 0 y c es 1(a·b·c)

cuando a es 0 y b y c son 1(a·b·c)

cuando a, b y c son 1(a·b·c)

ó

ó

S = (a·b·c) + (a·b·c) + (a·b·c)Al unir los casos favorables

Page 15: ARQUITECTURA SIST MICRO_REV2.pptx

Segunda forma canónica

1111

1011

1101

0001

1110

1010

1100

0000

ScbaMaxitérminos: Casos en los que se

obtiene salida 0cuando a, b y c son 0

(a+b+c)

cuando a es 1 y b y c son 0(a+b+c)

y

S = (a+b+c) · (a+b+c)Al eliminar los casos desfavorables

Page 16: ARQUITECTURA SIST MICRO_REV2.pptx

Propiedades del álgebra de BooleEstructura matemática de un conjunto de elementos {0,1} con tres operaciones con ellos {+, ·, }

1 ) Conmutativa• a+b = b+a• a·b = b·a

2 ) Asociativa• a+b+c = a+(b+c)• a·b·c = a·(b·c)

3 ) Distributiva• a·(b+c) = a·b + a·c• a+(b·c) = (a+b)·(a+c)

4 ) Elemento neutro• a+0 = a• a·1 = a

5 ) Elemento absorbente• a+1 = 1• a·0 = 0

6 ) Ley del complementario• a+a = 1• a·a = 0

7 ) Idempotente• a+a = a• a·a = a

8 ) Simplificativa• a+a·b = a• a·(a+b) = a

Page 17: ARQUITECTURA SIST MICRO_REV2.pptx

Teoremas de De Morgan

1 ) Primer teorema

a + b = a · b

2 ) Segundo teorema

a · b = a + b

Page 18: ARQUITECTURA SIST MICRO_REV2.pptx

Función NAND

011

101

110

100

SbabaS

Page 19: ARQUITECTURA SIST MICRO_REV2.pptx

Función NOR

011

001

010

100

SbabaS

Page 20: ARQUITECTURA SIST MICRO_REV2.pptx

Función XOR (o exclusiva)

011

101

110

000

SbabaS

Page 21: ARQUITECTURA SIST MICRO_REV2.pptx

Codificadores

Dan salidas dependiendo de los valores de las entradas

Decimal a BCD

BCD a decimal

BCD a 7 segmentos

Page 22: ARQUITECTURA SIST MICRO_REV2.pptx

Multiplexor

• Una salida

• 2n entradas

• n entradas de selección

a b c S

0 0 0 D0

0 0 1 D1

0 1 0 D2

0 1 1 D3

1 0 0 D4

1 0 1 D5

1 1 0 D6

1 1 1 D7

Transforma valores en paralelo a valores en serie

Page 23: ARQUITECTURA SIST MICRO_REV2.pptx

Demultiplexor

• 2n salidas

• una entrada

• n entradas de selección

Transforma valores en serie a valores en paralelo

Page 24: ARQUITECTURA SIST MICRO_REV2.pptx

Comparador

• 2 grupos de 2n entradas

• tres salidas

Page 25: ARQUITECTURA SIST MICRO_REV2.pptx

25

Actividad en clase:

Page 26: ARQUITECTURA SIST MICRO_REV2.pptx

26

Actividad 2: Arquitectura de sistemas microprocesados

Objetivo: Conceptualizar

componentes en un sistema microprocesado, mediante el análisis de sus módulos funcionales, para la identificación en procesos de ejecución.

Page 27: ARQUITECTURA SIST MICRO_REV2.pptx

27

¿Cuántos componentes caben en un chip?

Page 28: ARQUITECTURA SIST MICRO_REV2.pptx

28

Arquitectura simplificada de uComputadora

PERIFERICOENTRADASALIDA

µPMEMORIA

RAMROM

BUS DATOS

BUS DIRECCIONES

BUS CONTROL

Page 29: ARQUITECTURA SIST MICRO_REV2.pptx

29

Buses de comunicación Nos referiremos a tres clases de buses de

comunicación: Bus de direcciones Bus de datos Bus de control

Bus de direcciones: A0-AM-1. Es el empleado por la CPU para seleccionar la dirección de memoria o el dispositivo de E/S con el cual va a intercambiar información.

Es unidireccional. El tamaño determina la capacidad de direccionamiento de la CPU, que es el máximo número de posiciones de memoria y dispositivos E/S a los que la CPU puede acceder. Para m líneas la capacidad de direccionamiento será: 2m.

Page 30: ARQUITECTURA SIST MICRO_REV2.pptx

30

Buses de comunicación

Page 31: ARQUITECTURA SIST MICRO_REV2.pptx

31

Buses de comunicación Bus de datos: D0 - DN-1. El bus de datos es el conjunto

de conductores a través del cual el microprocesador intercambia información con la unidad de memoria o E/S seleccionada mediante el bus de direcciones.

Características: Bidireccional: La información puede viajar en los dos sentidos. Número de líneas (N): representa la cantidad de bits que se

pueden transmitir simultáneamente. Suele denominarse “la palabra del μP”.

Triestado: Las líneas del bus de datos deben ser triestado. Las líneas triestado son aquellas capaces de tener tres estados:

Estado alto (High, H). Estado bajo (Low, L). Estado de alta impedancia (High Impedance, HZ).

Page 32: ARQUITECTURA SIST MICRO_REV2.pptx

32

Buses de datos

Page 33: ARQUITECTURA SIST MICRO_REV2.pptx

33

Bus de control Bus de control. Está formado por un

conjunto de líneas por las que circulan las señales auxiliares de gobierno y sincronización del sistema. Las líneas existentes dependen del fabricante del μP y de las funciones que desee implementarle.

Algunas señales típicas en todos los sistemas son: Señal de reloj de sincronización (CLK) Señal de RESET o inicialización (RST) Señal de lectura/escritura en memoria (R/W), etc.

Page 34: ARQUITECTURA SIST MICRO_REV2.pptx

34

Bus de control

Page 35: ARQUITECTURA SIST MICRO_REV2.pptx

35

Arquitectura RISC vs CISC Arquitectura CISC (Complex Instruction Set

Computer).

Basado en un amplio repertorio de instrucciones. Se aumenta la potencia del microprocesador a costa de aumentar el tamaño de las instrucciones, y por tanto el número de ciclos de reloj que precisan para ejecutarse. Eso sí, los programas verán reducido el número de instrucciones máquina que precisan para ser ejecutados por el microprocesador.

Ejemplos: Los procesadores de Intel y AMD son puramente CISC

Page 36: ARQUITECTURA SIST MICRO_REV2.pptx

36

Arquitectura CISC

Page 37: ARQUITECTURA SIST MICRO_REV2.pptx

37

Arquitectura RISC Arquitectura RISC (Reduced

Instruction Set Computer).

Plantea un conjunto reducido de instrucciones, buscando reducir el número de ciclos de reloj de ejecución por cada una de ellas, haciéndolas simples y evitando instrucciones complejas. Se descarga la responsabilidad de construir programas eficientes al software, al compilador.

Ejemplos: Procesadores Alpha, el Power PC (Motorola/IBM), microcontroladores ATMEL, PIC

Page 38: ARQUITECTURA SIST MICRO_REV2.pptx

38

Arquitectura RISC

Page 39: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

39

Microprocesadores VS. Microcontroladores

Microprocesadores Microcontroladores

Set de instrucciones complejo: en INTEL cerca de 320 instrucciones

Set de instrucciones reducido: PIC gama media 32 instrucciones

Multipropósito: operaciones lógicas, operaciones aritméticas, multimedia

Propósito específico: programados para tareas concretas

Costo mayor Menor costo

Requieren de dispositivos externos para funcionar: reloj, memorias, tarjetas I/O

En CHIP se encuentran CPU, memorias, reloj interno

Programa principal se almacena en memoria externa

Cuenta con memoria de programa interna reprogramable

Mayores frecuencias de trabajo: INTEL en GHz

Frecuencias de trabajo menores: PIC en MHz

Page 40: ARQUITECTURA SIST MICRO_REV2.pptx

Microcontroladores: Ing. Víctor Medina G

40

Microprocesador vs Microcontrolador

Page 41: ARQUITECTURA SIST MICRO_REV2.pptx

41

Arquitectura de uP de 8 bits

Page 42: ARQUITECTURA SIST MICRO_REV2.pptx

42

Además de la Unidad de Aritmética y Lógica (ALU) y de la Unidad de Control (UC), los microprocesadores contienen REGISTROS.

REGISTRO (register): Es el elemento más pequeño que puede retener un dato. Usado para almacenar temporalmente información dentro de la CPU. Los registros pueden ser de propósito general o especializado.

Componentes de uP

Page 43: ARQUITECTURA SIST MICRO_REV2.pptx

43

REGISTRO DE PROPÓSITO GENERAL (general-purpose register): Son aquellos sobre los que no existe restricción en cuanto a su utilización. Pueden ser empleados como fuente o destino de datos, como contador, como puntero de localidades de memoria o de elementos de E/S.

REGISTROS ESPECIALIZADOS (special-purpose register): Son los registros que están dedicados a realizar alguna función específica.

Registros internos

Page 44: ARQUITECTURA SIST MICRO_REV2.pptx

44

7 0

REGISTRO ACUMULADO

R

REGISTRO DE

BANDERASS, C, Z, etc.

ALU DE8 BITS

7 0

REGISTROS TEMPORALES

7 0

ALU y registros

Page 45: ARQUITECTURA SIST MICRO_REV2.pptx

45

REGISTRO ACUMULADOR (accumulator): Es el registro base para las operaciones aritméticas y lógicas. Antes de la ejecución de la instrucción contiene uno de los OPERANDOS y después de la ejecución es el que generalmente recibe el resultado. También es registro fuente o destino de las transferencias de datos con la unidad de memoria o con el sistema de entrada / salida. En algunos microprocesadores existe más de un Acumulador.

Registro de trabajo (W)

Page 46: ARQUITECTURA SIST MICRO_REV2.pptx

46

REGISTROS TEMPORALES O AUXILIARES (temporal registers) Son registros para uso interno de la CPU, en los que se almacena momentáneamente cierta información y no son accesibles al programador mediante ninguna instrucción.

REGISTRO DE BANDERAS (flag register): Esta formado por un conjunto de biestables, los mismos que indican ciertas condiciones del resultado de las operaciones; como por ejemplo el valor del signo, si hubo o no carry, si es igual a cero o no, etc.

Registro temporales y FLAGS

Page 47: ARQUITECTURA SIST MICRO_REV2.pptx

47

7 0

REGISTRO ACUMULADO

R

REGISTRO DE INSTRUCCIONE

S

REGISTRO DE

BANDERASS, C, Z, etc.

ALU DE8 BITS

DECODIFICADOR DE

INSTRUCCIONES

BUS DE CONTROL

7 0

REGISTROS TEMPORALES

7 0

CIRCUITOS LÓGICOS GENERADORES

DE TIEMPO Y DE CONTROL

7 0

Page 48: ARQUITECTURA SIST MICRO_REV2.pptx

48

REGISTRO DE INSTRUCCIONES (instruction register): Es el registro donde se almacena el CÓDIGO DE LA OPERACIÓN de la instrucción que se esta ejecutando, una vez que es traído desde la memoria del programa mediante el Bus de Datos.

DECODIFICADOR DE INSTRUCCIONES (instruction decoder): Es la parte de la Unidad de Control que se encarga de interpretar la instrucción que se encuentra en el Registro de Instrucciones, en base a una memoria ROM que contiene microinstrucciones que controlan la ejecución de las instrucciones.

Registros de instrucciones

Page 49: ARQUITECTURA SIST MICRO_REV2.pptx

49

CIRCUITOS LÓGICOS GENERADORES DE TIEMPO Y CONTROL (timming and control circuits): Son los circuitos encargados de generar las señales tanto internas como externas que permiten ejecutar las instrucciones. A estos circuitos también llegan las señales externas como las de inicialización, las de espera, las de interrupciones, etc. Es decir, es el bloque que esta directamente relacionado con el Bus de Control.

TIMMING AND CONTROL CIRCUITS

Page 50: ARQUITECTURA SIST MICRO_REV2.pptx

50

BUS DE DATOS D7…D0

7 0

REGISTRO ACUMULADO

R

REGISTRO DE INSTRUCCIONE

S

REGISTRO DE

BANDERASS, C, Z, etc.

ALU DE8 BITS

7 0BUFFER DEL BUS DE

DATOS

DECODIFICADOR DEINSTRUCCIONES

BUS DE CONTROL

BUS DE DATOS INTERNO (8

BITS)

BUS DE DATOS INTERNO (8

BITS)

7 0

REGISTROS TEMPORALES

7 0

CIRCUITOS LÓGICOS GENERADORES

DE TIEMPO Y DE CONTROL

7 0

Page 51: ARQUITECTURA SIST MICRO_REV2.pptx

51

BUS INTERNO (internal bus): Es el bus de comunicaciones entre los distintos componentes del microprocesador, se lo conoce también como el BUS INTERNO DE DATOS. El número de líneas que posee este bus esta determinado por el número de bits que procesa en paralelo la ALU y es uno de los parámetros que clasifican a los microprocesadores. Este bus se encuentra relacionado con el bus externo de datos a través del BUFFER DEL BUS DE DATOS.

Buses

Page 52: ARQUITECTURA SIST MICRO_REV2.pptx

52

BUS DE DATOS D7…D0

7 0

REGISTRO ACUMULADO

R

REGISTRO DE INSTRUCCIONE

S

REGISTRO DE

BANDERASS, C, Z, etc.

REGISTROS DE PROPÓSITO GENERAL

REGISTROS ÍNDICES

REGISTRO CONTADOR DEL PROGRAMA (PC)

REGISTRO PUNTERO DE LA PILA (SP)

ALU DE8 BITS

7 0BUFFER DEL BUS DE

DATOS

DECODIFICADOR DE

INSTRUCCIONES

BUS DE CONTROL

BUS DE DATOS INTERNO (8

BITS)

BUS DE DATOS INTERNO (8

BITS)

7 0

REGISTROS TEMPORALES

7 0

CIRCUITOS LÓGICOS GENERADORES

DE TIEMPO Y DE CONTROL

7 0

15 0

7 0

7 0

REGISTROS ESPECIALIZADO

S

REGISTROS ESPECIALIZADO

S

Page 53: ARQUITECTURA SIST MICRO_REV2.pptx

53

CONTADOR DEL PROGRAMA (program counter PC): Es el que contiene la dirección de la localidad donde se encuentra la siguiente instrucción a ser ejecutada.

PUNTERO DE LA PILA (stack pointer SP): Contiene la dirección de la memoria donde se almacenó el último dato de la PILA o STACK.

REGISTRO ÍNDICE (index register): También contiene una dirección y es utilizado como puntero. El uso de este registro permite que los programas sean más flexibles, ya que para acceder a distintas localidades de memoria, basta especificar un valor que sumado al contenido del registro índice da la dirección real.

Contador de programa

Page 54: ARQUITECTURA SIST MICRO_REV2.pptx

54

BUS DE DATOS D7…D0

7 0

REGISTRO ACUMULADO

R

REGISTRO DE INSTRUCCIONE

S

REGISTRO DE

BANDERASS, C, Z, etc.

REGISTROS DE PROPÓSITO GENERAL

REGISTROS ÍNDICES

REGISTRO CONTADOR DEL PROGRAMA (PC)

REGISTRO PUNTERO DE LA PILA (SP)

BUFFER DEL BUSDE DIRECCIONES

ALU DE8 BITS

7 0BUFFER DEL BUS DE

DATOS

BUS DE DIRECCIONES A15...A0

DECODIFICADOR DEINSTRUCCIONES

BUS DE CONTROL

BUS DE DATOS INTERNO (8

BITS)

BUS DE DATOS INTERNO (8

BITS)

7 0

REGISTROS TEMPORALES

7 0

CIRCUITOS LÓGICOS GENERADORES

DE TIEMPO Y DE CONTROL

7 0

15 0

7 0

7 0

REGISTROS ESPECIALIZADO

S

REGISTROS ESPECIALIZADO

S

Page 55: ARQUITECTURA SIST MICRO_REV2.pptx

55

Ciclo de instrucciones en microprocesador de 8 bits

Page 56: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

56

Arquitectura RISC

Page 57: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

57

Segmentación PIPE-LINE La segmentación permite al procesador

realizar al mismo tiempo la ejecución de una instrucción y la búsqueda del código de la siguiente. De esta forma se puede ejecutar cada instrucción en un ciclo (en los PIC cada ciclo de instrucción son cuatro ciclos de reloj).

Durante la fase de búsqueda, la dirección de la instrucción la proporciona el PC, el cual normalmente se autoincrementa en la mayoría de las instrucciones, excepto en las de salto.

Page 58: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

58

Ciclo de instrucción El registro Program Counter (PC) es gobernado

por el ciclo de instrucción. Cada ciclo de instrucción la CPU lee (ciclo Fetch) la instrucción guardada en la memoria de programa apuntada por PC y al mismo tiempo ejecuta la instrucción anterior, esto debido a una cola de instrucciones que le permite ejecutar una instrucción mientras lee la próxima.

Page 59: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

59

Ciclo de instrucción

Page 60: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

60

Ciclo de instrucción Como puede verse, cada ciclo de instrucción:

(Tcy = 4Tosc) Se compone a su vez de cuatro ciclos del oscilador

Tosc= 1/Fosc. Cada ciclo Q provee la sincronización para los

siguientes eventos: Q1: Decodificación de la instrucción Q2: Lectura del dato (si lo hay) Q3: Procesa el dato Q4: Escribe el dato

Debido a esto cada ciclo de instrucción consume 4 ciclos de reloj, de manera que si la frecuencia de oscilación es Fosc, Tcy será 4/Fosc.

Page 61: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

61

Segmentación PIPE-LINE

Page 62: ARQUITECTURA SIST MICRO_REV2.pptx

Microcontroladores62

Actividad 3: Arquitectura de microcontroladores

Objetivo: Definir los componentes de un microcontrolador

mediante el análisis de sus etapas funcionales

Page 63: ARQUITECTURA SIST MICRO_REV2.pptx

Registros Un registro

o una celda de memoria es un circuito electrónico que puede memorizar el estado de un byte.

Microcontroladores63

Page 64: ARQUITECTURA SIST MICRO_REV2.pptx

Registro SFR

Registros de funciones especiales, cada bit configura los circuitos internos del microcontroladores que se conectan a través de los pines a los periféricos.

Microcontroladores64

Page 65: ARQUITECTURA SIST MICRO_REV2.pptx

PUERTOS DE ENTRADA/SALIDA (E/S)

Conectan los circuitos internos con los periféricos. Son configurables bit a bit. Carga máxima (10-20mA)

Microcontroladores65

Page 66: ARQUITECTURA SIST MICRO_REV2.pptx

UNIDAD DE MEMORIA

Almacena los datos.

Microcontroladores66

Page 67: ARQUITECTURA SIST MICRO_REV2.pptx

UNIDAD DE MEMORIA

Microcontroladores67

Page 68: ARQUITECTURA SIST MICRO_REV2.pptx

Memoria en PIC

Microcontroladores68

Page 69: ARQUITECTURA SIST MICRO_REV2.pptx

UNIDAD CENTRAL DE PROCESAMIENTO (CENTRAL PROCESSOR UNIT - CPU)

Decodificador de instrucciones: decodifica las instrucciones del programa y acciona otros circuitos

Unidad lógica aritmética (Arithmetical Logical Unit - ALU) realiza todas las operaciones matemáticas y lógicas sobre datos

Acumulador o registro de trabajo.

Microcontroladores69

Page 70: ARQUITECTURA SIST MICRO_REV2.pptx

Bus

El bus está formado por 8, 16 o más cables. Dos tipos de buses: Bus de direcciones Bus de datos.

Microcontroladores70

Page 71: ARQUITECTURA SIST MICRO_REV2.pptx

COMUNICACIÓN EN SERIE

Permite conectar un uC con un periférico utilizando un mínimo número de cables, lo que permite el alcance de mayores distancias.

Microcontroladores71

Page 72: ARQUITECTURA SIST MICRO_REV2.pptx

VELOCIDAD DE TRANSMISIÓN SERIAL

La velocidad de transmisión serial (baud rate) es el término utilizado para denotar el número de bits transmitidos por segundo [bps].

El protocolo normalmente requiere que cada byte se transmita junto con varios bits de control. Eso quiere decir que un byte en un flujo de datos serial puede consistir en 11 bits. Por ejemplo, si velocidad de transmisión serial es 300 bps un máximo de 37 y un mínimo de 27 bytes se pueden transmitir por segundo.

Microcontroladores72

Page 73: ARQUITECTURA SIST MICRO_REV2.pptx

Sistemas de comunicación serial I2C (INTER INTEGRATED CIRCUIT) -

CIRCUITO INTER-INTEGRADO Circuito inter-integrado es un sistema

para el intercambio de datos serial entre los microcontroladores y los circuitos integrados. Se utiliza cuando la distancia entre ellos es corta (el receptor y el transmisor están normalmente en la misma placa de circuito impreso). La conexión se establece por medio de dos líneas - una se utiliza para transmitir los datos, mientras que la otra se utiliza para la sincronización (la señal de reloj).

Microcontroladores73

Page 74: ARQUITECTURA SIST MICRO_REV2.pptx

I2C (INTER INTEGRATED CIRCUIT)

Microcontroladores74

Page 75: ARQUITECTURA SIST MICRO_REV2.pptx

SPI (SERIAL PERIPHERAL INTERFACE BUS)

SPI (SERIAL PERIPHERAL INTERFACE BUS) - BUS SERIAL DE INTERFAZ DE PERIFÉRICOS

Es un sistema para la comunicación serial que utiliza hasta cuatro líneas (normalmente solo son necesarias tres) - para recibir los datos, para transmitir los datos, para sincronizar y (opcional) para seleccionar el dispositivo con el que se comunica.

Esto es la conexión full duplex, lo que significa que los datos se envían y se reciben simultáneamente.

La velocidad de transmisión máxima es mayor que en el sistema de conexión I2C. Microcontroladores75

Page 76: ARQUITECTURA SIST MICRO_REV2.pptx

UART (UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER)

UART (UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER) - TRANSMISOR-RECEPTOR ASÍNCRONO UNIVERSAL

Este tipo de conexión es asíncrona, lo que significa que no se utiliza una línea especial para transmitir la señal de reloj.

Tanto el receptor como el transmisor reciben y envían los datos a velocidad misma que ha sido predefinida para mantener la sincronización necesaria. Esto es una manera simple de transmitir datos puesto que básicamente representa una conversión de datos de 8 bits de paralelo a serial. La velocidad de transmisión no es alta, es hasta 1 Mbit/sec.

Microcontroladores76

Page 77: ARQUITECTURA SIST MICRO_REV2.pptx

OSCILADOR

Se configura normalmente de tal manera que utilice un cristal de cuarzo o resonador cerámico para estabilización de frecuencia. Además, puede funcionar como un circuito autónomo (como oscilador RC).

Microcontroladores77

Page 78: ARQUITECTURA SIST MICRO_REV2.pptx

CIRCUITO DE ALIMENTACIÓN

Brown out es un estado potencialmente peligroso que ocurre al apagar el microcontrolador o en caso de que el voltaje de la fuente de alimentación salga de unos márgenes debido al ruido eléctrico. Como el microcontrolador dispone de varios circuitos que funcionan a niveles de voltaje diferentes, ese estado puede causar un comportamiento descontrolado. Para evitarlo, el microcontrolador normalmente tiene un circuito incorporado para el brown out reset.

El pin de reset (reinicio), marcado frecuentemente con MCLR (Master Clear Reset), sirve para el reinicio externo del microcontrolador al aplicar un cero (0) o un uno (1) lógico dependiendo del tipo del microcontrolador. En caso de que el circuito brown out no esté incorporado, un simple circuito externo para el brown out reset se puede conectar al pin MCLR.

Microcontroladores78

Page 79: ARQUITECTURA SIST MICRO_REV2.pptx

TEMPORIZADORES/CONTADORES

Son circuitos que sirven medir el tiempo transcurrido entre dos eventos, basados en contar los pulsos generados por el oscilador principal que es un cristal de cuarzo

Microcontroladores79

Page 80: ARQUITECTURA SIST MICRO_REV2.pptx

¿CÓMO FUNCIONAN LOS TEMPORIZADORES?

Los pulsos generados por el oscilador de cuarzo son llevados al circuito una vez por cada ciclo de máquina directamente o por el pre-escalador, lo que aumenta el número en el registro del temporizador.

Microcontroladores80

Page 81: ARQUITECTURA SIST MICRO_REV2.pptx

UTILIZAR UN PREESCALADOR EN EL FUNCIONAMIENTO DEL TEMPORIZADOR

Un pre-escalador es un dispositivo electrónico utilizado para dividir la frecuencia por un factor predeterminado. Esto quiere decir que se necesita llevar 1, 2, 4 o más pulsos a su entrada para generar un pulso a la salida.

Microcontroladores81

Page 82: ARQUITECTURA SIST MICRO_REV2.pptx

UTILIZAR UNA INTERRUPCIÓN EN EL FUNCIONAMIENTO DEL TEMPORIZADOR

Si el registro del temporizador es de 8 bits, el mayor número que se puede escribir en él es 255. Si se excede este número, el temporizador se reinicia automáticamente y el conteo comienza de nuevo en cero. Esto es denominado desbordamiento o sobreflujo (overflow).

Microcontroladores82

Page 83: ARQUITECTURA SIST MICRO_REV2.pptx

TEMPORIZADOR PERRO GUARDIÁN (WATCHDOG)

El perro guardián es un temporizador conectado a un oscilador RC completamente independiente dentro del microcontrolador.

Si el perro guardián está habilitado, cada vez que cuenta hasta el máximo valor en el que ocurre el desbordamiento del registro se genera una señal de reinicio del microcontrolador y la ejecución de programa inicia en la primera instrucción.

Microcontroladores83

Page 84: ARQUITECTURA SIST MICRO_REV2.pptx

CONVERTIDOR A/D

Un convertidor analógico-digital es un circuito electrónico encargado de convertir las señales continuas en números digitales discretos. En otras palabras, este circuito convierte un número real en un número binario y se lo envía a la CPU para ser procesado.

Microcontroladores84

Page 85: ARQUITECTURA SIST MICRO_REV2.pptx

Codificación analógica a digital

Microcontroladores85

Page 86: ARQUITECTURA SIST MICRO_REV2.pptx

CONVERTIDOR A/D

Resolución depende del número de BITS.

A mayor número de BITS, menor error.

Microcontroladores86

Page 87: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

87

Actividad 4: Arquitectura de microcontroladores PIC16F887

Objetivo: Diferenciar gamas de microcontroladores mediante análisis de sus partes funcionales

Page 88: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

88

Características PIC16F887 Arquitectura RISC

35 instrucciones Instrucciones son uni-ciclo excepto por las

de ramificación Frecuencia de operación 0-20 MHz Oscilador interno de alta precisión

Rango de frecuencia de 8MHz a 31KHz seleccionado por software

Voltaje de la fuente de alimentación de 2.0V a 5.5V Consumo: 220uA (2.0V, 4MHz), 11uA (2.0 V,

32 KHz) 50nA (en modo de espera) Ahorro de energía en el Modo de

suspensión 35 pines de entrada/salida

Resistencias pull-up programables individualmente por software

Interrupción al cambiar el estado del pin Memoria ROM de 8K con tecnología

FLASH El chip se puede re-programar hasta

100.000 veces Opción de programación serial en el

circuito

256 bytes de memoria EEPROM Los datos se pueden grabar más de

1.000.000 veces 368 bytes de memoria RAM Convertidor A/D:

14 canales resolución de 10 bits

3 temporizadores/contadores independientes

Temporizador perro guardián Módulo comparador analógico con

Dos comparadores analógicos Referencia de voltaje fija (0.6V) Referencia de voltaje programable en el

chip Módulo PWM incorporado Módulo USART mejorado

Soporta las comunicaciones seriales RS-485, RS-232 y LIN2.0

Auto detección de baudios Puerto Serie Síncrono Maestro (MSSP)

Soporta los modos SPI e I2C

Page 89: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

89

Descripción de PINOUT PIC16F887 La mayoría de los pines del microcontrolador

PIC16F887 son multipropósito. Por ejemplo, la asignación RA3/AN3/Vref+/C1IN+

para el quinto pin del microcontrolador indica que éste dispone de las siguientes funciones: RA3 Tercera entrada/salida digital del puerto A AN3 Tercera entrada analógica Vref+ Referencia positiva de voltaje C1IN+ Entrada positiva del comparador C1

Estas funciones de los pines no se pueden utilizar simultáneamente, sin embargo se pueden cambiar en cualquier instante durante el funcionamiento mediante SW.

Page 90: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

90

Memoria en PIC16F887 Memoria ROM:

El PIC16F887 tiene 8Kb de memoria ROM (en total 8192 localidades). Como la memoria ROM está fabricada con tecnología FLASH, su contenido se puede cambiar al proporcionarle un voltaje de programación especial (13V).

Memoria EEPROM: El contenido de esta memoria está permanentemente

guardado al apagar la fuente de alimentación. Sin embargo, a diferencia de la ROM, el contenido de la EEPROM se puede cambiar durante el funcionamiento del microcontrolador. Posee 256 localidades que pueden ser cambiados y utilizados durante el funcionamiento.

Page 91: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

91

Memoria en PIC16F887 Memoria RAM: Se compone de dos

partes: registros de propósito general y en los registros de funciones especiales (SFR). Todos estos registros se dividen en cuatro bancos de memoria.

Los dos grupos de registros se ponen a cero al apagar la fuente de alimentación, además están fabricados de la misma forma y se comportan de la manera similar.

Page 92: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

92

Sistema de interrupciones Al aparecer una petición de interrupción lo primero que hace el

microcontrolador es ejecutar la instrucción actual después de que se detiene el proceso de ejecución de programa. Como resultado, la dirección de memoria de programa actual se apila automáticamente y la dirección por defecto (predefinida por el fabricante) se escribe en el contador de programa. La localidad en la que el programa continúa con la ejecución se le denomina vector de interrupción. En el caso del microcontrolador PIC16F887 esta dirección es 0x0004h.

Al reconocer la fuente de interrupción y al terminar de ejecutar la rutina de interrupción el microcontrolador alcanza la instrucción RETFIE, toma la dirección de la pila y continúa con la ejecución de programa desde donde se interrumpió.

MIKROC reconoce una rutina de interrupción que se ejecutará como la función void interrupt(). El cuerpo de la función, o sea, rutina de interrupción, debe ser escrito por el usuario. void interrupt() { // Interrupt routine cnt++ ; // Interrupt causes variable cnt to be

incremented by 1}

Page 93: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

93

Sistema de interrupciones

Page 94: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

94

Principales registros SFR: STATUS Contiene el estado aritmético de datos en el registro W, el estado

RESET, los bits para seleccionar el banco para los datos de la memoria.

IRP - Registro de selección de Banco usado para direccionamiento indirecto

1 - Bancos 0 y 1 son activos (00h-FFh) 0 - Bancos 2 y 3 son activos (00h-1FFh) RP1, RP0 - Registro de selección de banco usado para

direccionamiento directo. TO - Time-out bit bit de salida del temporizador perro

guardián 1 - Después de encender el uC, o ejecutarse CLRWDT o

ejecutarse la instrucción SLEEP 0 - Después de acabarse el tiempo del WDT. PD - Power-down bit: 1 - Después de encender el

microcontrolador, después de ejecutar la instrucción CLRWDT, 0 - Después de ejecutarse la instrucción SLEEP que pone al microcontrolador en el modo de bajo consumo.

Z - Zero bit (bit cero): 1 - El resultado de una operación lógica o aritmética es 0; 0 - El resultado de una operación lógica o aritmética es distinto de 0.

DC - Digit carry/borrow bit (bit de acarreo/préstamo de dígito) cambia al sumar o al restar si ocurre un "desbordamiento"

1 - Hubo acarreo del cuarto bit de orden bajo (nibble bajo) en el resultado.

0 - No hubo acarreo del cuarto bit de orden bajo (nibble bajo) en el resultado.

C - Carry/Borrow bit cambia al sumar o al restar si ocurre

un "desbordamiento" en el resultado, o sea si el resultado es mayor de 255 .

1 - Ocurrió acarreo en el bit más significativo (MSB) del resultado.

0 - No ocurrió acarreo en el bit más significativo (MSB) del resultado.

IRP RP1 RP0 TO PD Z DC C

7 6 5 4 3 2 1 0

Page 95: ARQUITECTURA SIST MICRO_REV2.pptx

Entrada o salida en puertos Si deseamos configurar el puerto A con la

siguiente asignación:RA0 salidaRA1 salidaRA2 salidaRA3 salidaRA4 entradaRA5 entradaRA6 entrada

Posibles instrucciones a utilizarADCON1 = 6; \\ instrucción indispensable para usar el

puerto A y el puerto E como entrada o salida de datos digitales

TRISA = 0b’01110000’;TRISA = 0x70;TRISA = 112;

Page 96: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

96

Principales registros SFR: OPTION

Page 97: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

97

Principales registros SFR: INTCON

Page 98: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

98

Principales registros SFR: INTCON

Page 99: ARQUITECTURA SIST MICRO_REV2.pptx

Actividad 5: Acondicionamiento de señales

Objetivos: Establecer parámetros de medición e interface mediante el estudio de acondicionamiento de señales a microcontroladores.

El control de procesos depende de la obtención de información de entrada, su evaluación y la ejecución de la acción correspondiente.

En control industrial, la mayoría de las veces la información de entrada involucra el monitoreo de dispositivos de campo que admiten dos estados posibles.

Un interruptor es un ejemplo común de dispositivo de dos estados.

O está abierto o está cerrado.

Microcontroladores99

Page 100: ARQUITECTURA SIST MICRO_REV2.pptx

Acondicionamiento de señales Interruptores:

activan o desactivan señales de entrada

Microcontroladores100

Page 101: ARQUITECTURA SIST MICRO_REV2.pptx

Conexión eléctrica de interruptores

Conectados directamente a los puertos Se recomienda proceso anti rebote

Microcontroladores101

Page 102: ARQUITECTURA SIST MICRO_REV2.pptx

Acondicionamiento señales digitales

Microcontroladores102

Page 103: ARQUITECTURA SIST MICRO_REV2.pptx

Interruptor reflectivo

Las señales ingresan por cortes de luminosidad en receptor

Microcontroladores103

Page 104: ARQUITECTURA SIST MICRO_REV2.pptx

Acondicionamiento de señales a cargas

Microcontroladores se conectan a cargas eléctricas mayores mediante dispositivos actuadores, cumpliendo secuencias, considerando retardos debido a inercias mecánicas, retardos en activaciones, etc

Microcontroladores104

Page 105: ARQUITECTURA SIST MICRO_REV2.pptx

Acondicionamiento de señales a cargas

Microcontroladores105

Page 106: ARQUITECTURA SIST MICRO_REV2.pptx

Acondicionamiento salidas digitales

Microcontroladores106

Page 107: ARQUITECTURA SIST MICRO_REV2.pptx

Control de procesos continuos

Circuitos retroalimentados, la salida se compara con la entrada.

Microcontroladores107

Page 108: ARQUITECTURA SIST MICRO_REV2.pptx

Sensores de temperatura

Transductores: convierten señales físicas en señales eléctricas.

Sensores: miden señales sin convertirlas en otra magnitudes, contienen a los transductores

Microcontroladores108

Page 109: ARQUITECTURA SIST MICRO_REV2.pptx

Sistemas continuos = retroalimentados

Microcontroladores109

Page 110: ARQUITECTURA SIST MICRO_REV2.pptx

Control sistemas continuos con PIC

Microcontroladores110

Page 111: ARQUITECTURA SIST MICRO_REV2.pptx

Actividad 6: Programación de PIC en C

Objetivos: Definir la estructura de un programa en C

mediante la descripción de etapas en lenguaje de alto nivel para microcontroladores

111

Page 112: ARQUITECTURA SIST MICRO_REV2.pptx

Lenguajes de programación

El uC ejecuta el programa cargado en la memoria Flash, se denomina el código ejecutable.

Dependiendo de la arquitectura, el código binario está compuesto por palabras de 12, 14 o 16 bits de anchura, que se interpreta por la CPU como una instrucción a ser ejecutada durante el funcionamiento. Se les denominan Conjunto de instrucciones.

El código ejecutable se representa con números hexadecimales denominada código Hex.

En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35 instrucciones diferentes.

Microcontroladores112

Page 113: ARQUITECTURA SIST MICRO_REV2.pptx

Lenguaje ensamblador (ASSEMBLER)

Las instrucciones consisten en abreviaturas con significado y a cada instrucción corresponde una localidad de memoria. Un programa denominado ensamblador compila (traduce) las instrucciones del lenguaje ensamblador a código máquina (código binario).

Microcontroladores113

Page 114: ARQUITECTURA SIST MICRO_REV2.pptx

Desventajas de ASSEMBLER

Una sola operación en ensamblador consiste en muchas instrucciones, haciéndolo muy largo y difícil de manejar.

Cada tipo de microcontrolador tiene su propio conjunto de instrucciones.

Un programador tiene que conocer el hardware del microcontrolador para escribir un programa.

Microcontroladores114

Page 115: ARQUITECTURA SIST MICRO_REV2.pptx

Lenguaje alto nivel vs. ASSEMBLER

Microcontroladores115

Page 116: ARQUITECTURA SIST MICRO_REV2.pptx

Lenguaje C

El lenguaje C dispone de todas las ventajas de un lenguaje de programación de alto nivel (anteriormente descritas) y le permite realizar algunas operaciones tanto sobre los bytes como sobre los bits (operaciones lógicas, desplazamiento etc.).

C está estandarizado (el estándar ANSI)

Microcontroladores116

Page 117: ARQUITECTURA SIST MICRO_REV2.pptx

CARACTERÍSTICAS PRINCIPALES DEL MIKROC

Este lenguaje es muy similar al C estándar, no obstante en determinados aspectos difiere del ANSI estándar en algunas características. Algunas de estas diferencias se refieren a las mejoras, destinadas a facilitar la programación de los microcontroladores PIC, mientras que las demás son la consecuencia de la limitación de la arquitectura del hardware de los PIC

Microcontroladores117

Page 118: ARQUITECTURA SIST MICRO_REV2.pptx

FASES DE COMPILACIÓN

El archivo fuente contiene el código en MIKROC. El preprocesador se utiliza automáticamente por el compilador al

iniciarse el proceso de la compilación. El compilador busca las directivas del preprocesador (que siempre empiezan por ‘#’) dentro del código y modifica el código fuente de acuerdo con las directivas. En esta fase se llevan a cabo inclusión de archivos, definición de constantes y macros etc, lo que facilita el proceso.

El analizador sintáctico (parser) elimina toda la información inútil del código (comentarios, espacios en blanco).

Compilador traduce el código a un archivo binario denominado archivo .mcl.

El enlazador (linker) recupera toda la información requerida para ejecutar el programa de los archivos externos y la agrupa en un solo archivo (.dbg). Además, un proyecto puede contener más de un archivo fuente y el programador puede utilizar funciones predefinidas y agrupadas dentro de los archivos denominados librerías. Por último, el generador .hex produce un archivo .hex. Es el archivo que se va a cargar en el microcontrolador.

Microcontroladores118

Page 119: ARQUITECTURA SIST MICRO_REV2.pptx

FASES DE COMPILACIÓN

Microcontroladores119

Page 120: ARQUITECTURA SIST MICRO_REV2.pptx

ESTRUCTURA DE PROGRAMA

Por ejemplo:1. Activar y configurar

el convertidor A/D incorporado;

2. Medir el valor analógico;

3. Calcular temperatura; y

4. Enviar los datos en el formato apropiado al LCD.

Microcontroladores120

Page 121: ARQUITECTURA SIST MICRO_REV2.pptx

ESTRUCTURA DE PROGRAMA

Microcontroladores121

Page 122: ARQUITECTURA SIST MICRO_REV2.pptx

Microcontroladores122

Page 123: ARQUITECTURA SIST MICRO_REV2.pptx

Datos en MIKROC

Cada dato utilizado en el programa debe tener su tipo especificado. Esto permite al compilador conocer el tamaño de dato (número de bytes

requerido en la memoria) y su representación. Hay varios tipos de datos que se pueden utilizar en el lenguaje de programación

mikroC dependiendo del tamaño de dato y del rango de valores.

Microcontroladores123

Page 124: ARQUITECTURA SIST MICRO_REV2.pptx

Datos en MIKROC Al añadir un prefijo (calificador) a cualquier tipo de dato entero o

carácter, el rango de sus posibles valores cambia así como el número de los bytes de memoria necesarios. Por defecto, los datos de tipo int son con signo, mientras que los de tipo char son sin signo. El calificador signed (con signo) indica que el dato puede ser positivo o negativo. El prefijo unsigned indica que el dato puede ser sólo positivo. Note que el prefijo es opcional.

Microcontroladores124

Page 125: ARQUITECTURA SIST MICRO_REV2.pptx

Tipo entero (int)

Hexadecimal: el número empieza con 0x (o 0X). Decimal (base 10): El primer dígito no puede ser 0.

En este formato, se puede introducir el signo de número (‘+’ o ‘-’). Por ejemplo: 569, -25, +1500.

Binario: cuando un entero empieza con 0b (o 0B) se representan como una serie de bits (‘0’ y ‘1’). Por ejemplo: 0B10011111

Microcontroladores125

Page 126: ARQUITECTURA SIST MICRO_REV2.pptx

Tipo punto flotante (float)

El tipo punto flotante (float) se utiliza para los números reales con el punto decimal. Los datos de tipo float se pueden representar de varias maneras. Un dato float es siempre consigno (signed).

Microcontroladores126

Page 127: ARQUITECTURA SIST MICRO_REV2.pptx

Tipo carácter (char)

El tipo char es considerado como un entero por el compilador. No obstante, se utiliza normalmente para los datos de tipo carácter. Un dato de tipo carácter está encerrado entre comillas y codificado en un carácter ASCII.

Microcontroladores127

Page 128: ARQUITECTURA SIST MICRO_REV2.pptx

VARIABLES Y CONSTANTES

Una variable es un objeto nombrado capaz de contener un dato que puede ser modificado durante la ejecución de programa. En C, las variables tienen tipo, que significa que es necesario especificar el tipo de dato que se le asigna a una variable (int, float etc.). Las variables se almacenan en la memoria RAM y el espacio de memoria que ocupan (en bytes) depende de su tipo.

Microcontroladores128

Page 129: ARQUITECTURA SIST MICRO_REV2.pptx

VARIABLES Y CONSTANTES

Una constante tiene las mismas características que una variable excepto el hecho de que su valor asignado no puede ser cambiado durante la ejecución de programa. A diferencia de las variables, las constantes se almacenan en la memoria Flash del microcontrolador para guardar el mayor espacio posible de memoria RAM. El compilador las reconoce por el nombre y el prefijo const. En mikroC, el compilador reconoce automáticamente el tipo de dato de una constante, así que no es necesario especificar el tipo adicionalmente.

Microcontroladores129

Page 130: ARQUITECTURA SIST MICRO_REV2.pptx

Declaración de variables

Cada variable debe ser declarada antes de ser utilizada en el programa. Como las variables se almacenan en la memoria RAM, es necesario reservar el espacio para ellas (uno, dos o más bytes) <tipo> variable1, variable2, variable3; unsigned int peso ; // Declarar una

variable llamada peso peso = 20; // Asignar el valor 20 a la variable

;peso

Microcontroladores130

Page 131: ARQUITECTURA SIST MICRO_REV2.pptx

Declaración de constantes

las constantes deben ser declaradas antes de ser utilizadas en el programa. En mikroC, no es obligatorio especificar el tipo de constante al declararla. Por otra parte, las constantes deben ser inicializadas a la vez que se declaran. El compilador reconoce las constantes por su prefijo const utilizado en la declaración. Dos siguientes declaraciones son equivalentes:

const int MINIMUM = -100; // Declarar constante MINIMUM const MINIMUM = -100; // Declarar constante MINIMUM

Microcontroladores131

Page 132: ARQUITECTURA SIST MICRO_REV2.pptx

Ámbito de variables y constantes Una variable o una constante es reconocida por el

compilador en base de su identificador. Un identificador tiene significado si el compilador lo puede reconocer. El ámbito de una variable o una constante es el rango de programa en el que su identificador tiene significado.

Microcontroladores132

Page 133: ARQUITECTURA SIST MICRO_REV2.pptx

OPERADORES Un operador es un símbolo que denota una

operación aritmética, lógica u otra operación particular.

Operador aritmético: +, -, *, /, % Operador de asignación: asignan valores a

las variables

Microcontroladores133

Page 134: ARQUITECTURA SIST MICRO_REV2.pptx

OPERADORES

OPERADORES DE INCREMENTO Y DECREMENTO: Las operaciones de incremento y decremento por 1 se denotan con "++" y "--". Estos caracteres pueden preceder o seguir a una variable. En primer caso (++x), la variable x será incrementada por 1 antes de ser utilizada en la expresión. De lo contrario, la variable se utilizará en la expresión antes de ser aumentada por 1. Lo mismo se aplica a la operación de decremento.

Microcontroladores134

Page 135: ARQUITECTURA SIST MICRO_REV2.pptx

Operadores

OPERADORES RELACIONALES Los operadores relacionales se utilizan en

comparaciones con el propósito de comparar dos valores. En mikroC, si una expresión es evaluada como falsa (false), el operador devuelve 0, mientras que si una oración es evaluada como verdadera (true), devuelve 1.

Microcontroladores135

Page 136: ARQUITECTURA SIST MICRO_REV2.pptx

Operadores OPERADORES LÓGICOS Hay tres tipos de operaciones lógicas en el lenguaje C: Y

(AND) lógico, O (OR) lógico y negación - NO (NOT) lógico. Los operadores lógicos devuelven verdadero (1 lógico) si la expresión evaluada es distinta de cero. En caso contrario, devuelve falso (0 lógico) si la expresión evaluada equivale a cero.

Microcontroladores136

Page 137: ARQUITECTURA SIST MICRO_REV2.pptx

Operadores

OPERADORES DE MANEJO DE BITS A diferencia de las operaciones lógicas que se realizan

sobre los valores o expresiones, las operaciones de manejo de bits se realizan sobre los bits de un operando. Se enumeran en la siguiente tabla:

Microcontroladores137

Page 138: ARQUITECTURA SIST MICRO_REV2.pptx

ESTRUCTURAS DE CONTROL

ESTRUCTURAS CONDICIONALES Las condiciones son ingredientes comunes de un

programa. Las condiciones permiten ejecutar una o varias sentencias dependiendo de validez de una expresión. En otras palabras, ‘Si se cumple la condición (...), se debe hacer (...). De lo contrario, si la condición no se cumple, se debe hacer (...)’. Los operandos condicionales if-else y switch se utilizan en las operaciones condicionales. Una sentencia condicional puede ser seguida por una sola sentencia o por un bloque de sentencias a ser ejecutadas.

Microcontroladores138

Page 139: ARQUITECTURA SIST MICRO_REV2.pptx

ESTRUCTURAS DE CONTROL

OPERADOR CONDICIONAL if-else El operador if se puede utilizar solo o asociado al

operador else (if-else). Ejemplo del operador if: if(expresión) operación;

if(expresión) operación1 else operación2; Si operación1 u operación2 está compuesta,

escriba una lista de sentencias encerradas entre llaves. Por ejemplo:

if(expresión) { ... // ... // operación1 ...} // else operación2

Microcontroladores139

Page 140: ARQUITECTURA SIST MICRO_REV2.pptx

Estructuras de control Operador Switch A diferencia de la sentencia if-else que selecciona entre dos opciones en el programa,

el operador switch permite elegir entre varias opciones. La sintaxis de la sentencia switch es:

Microcontroladores140

Page 141: ARQUITECTURA SIST MICRO_REV2.pptx

BUCLES A menudo es necesario repetir una cierta operación un par de veces en el programa. Un conjunto de comandos que se repiten es denominado un bucle de programa. Cuántas veces se ejecutará, es decir cuánto tiempo el programa se quedará en el bucle, depende de las condiciones de salir del bucle. Bucle While El bucle while se parece a lo siguiente: while(expresión){ comandos ... }

while(1){ // En vez de "while(1)", se puede escribir "while(true)" ... // Expresiones encerradas entre llaves se ejecutarán ... // repetidamente (bucle infinito) } Microcontroladores141

Page 142: ARQUITECTURA SIST MICRO_REV2.pptx

BUCLES Bucle For El bucle for se parece a lo siguiente: for(expresión_inicial; expresión_de_condición;

cambiar_expresión) { operaciones ... }

La ejecución de esta secuencia de programa es similar al bucle while, salvo que en este caso el proceso de especificar el valor inicial (inicialización) se realice en la declaración. La expresión_ inicial especifica la variable inicial del bucle, que más tarde se compara con la expresión_ de_condición antes de entrar al bucle

Microcontroladores142

Page 143: ARQUITECTURA SIST MICRO_REV2.pptx

Bucles Bucle Do-while El bucle do-while se parece a lo

siguiente: do operación while (cambiar_condición);

La expresión cambiar_condición se ejecuta al final del bucle, que significa que operación se ejecuta como mínimo una vez sin reparar en que si la condición es verdadera o falsa. Si el resultado es distinto de 0 (verdadero), el procedimiento se repite.

Microcontroladores143

Page 144: ARQUITECTURA SIST MICRO_REV2.pptx

Ejemplos de bucles

Microcontroladores144

Page 145: ARQUITECTURA SIST MICRO_REV2.pptx

Ejemplos de bucles

Microcontroladores145

Page 146: ARQUITECTURA SIST MICRO_REV2.pptx

Ejemplos de bucles

Microcontroladores146

Page 147: ARQUITECTURA SIST MICRO_REV2.pptx

SENTENCIAS DE SALTO

SENTENCIA BREAK A veces es necesario detener y salir de un bucle

dentro de su cuerpo. La sentencia break se puede utilizar dentro de cualquier bucle (while, for, do while) y en las sentencias switch también. En éstas la sentencia break se utiliza para salir de las sentencias switch si la condición case es verdadera. En este ejemplo, “Esperar” está parpadeando en la pantalla LCD hasta que el programa detecte un uno lógico en el pin 0 del puerto PORTA.

Microcontroladores147

Page 148: ARQUITECTURA SIST MICRO_REV2.pptx

Sentencias de salto

Microcontroladores148

Page 149: ARQUITECTURA SIST MICRO_REV2.pptx

Sentencias de salto SENTENCIA CONTINUE La sentencia continue colocada dentro de un bucle se utiliza para

saltar una iteración. A diferencia de la sentencia break, el programa se queda dentro del bucle y las iteraciones continúan.

Microcontroladores149

Page 150: ARQUITECTURA SIST MICRO_REV2.pptx

Sentencias de salto

SENTENCIA GOTO La sentencia goto le permite hacer un salto

absoluto al otro punto en el programa. Esta característica se debe utilizar con precaución ya que su ejecución puede causar un salto incondicional sin hacer caso a todos los tipos de limitaciones de anidación. El punto destino es identificado por una etiqueta, utilizada como un argumento para la sentencia goto. Una etiqueta consiste en un identificador válido seguido por un colon (:).

Microcontroladores150

Page 151: ARQUITECTURA SIST MICRO_REV2.pptx

Sentencias de salto

Microcontroladores151

Page 152: ARQUITECTURA SIST MICRO_REV2.pptx

FUNCIONES

Una función es una subrutina que contiene una lista de sentencias a realizar.

La idea principal es dividir un programa en varias partes utilizando estas funciones para resolver el problema inicial con más facilidad.

Una función se ejecuta cada vez que se llame dentro de otra función. En C, un programa contiene como mínimo una función, la función main(), aunque el número de funciones es normalmente mayor.

Al utilizar funciones el código se hace más corto ya que es posible llamar una función tantas veces como se necesite. En C, el código normalmente consiste en muchas funciones.

Microcontroladores152

Page 153: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

153

Ejemplos de funciones

Definición de función de presentación de datos en DISPLAY de 7 segmentos char Binario_7seg(char digit); //función 7 segmentos

Proceso en la función: char Binario_7seg(char digit){ //Definición de la función. switch (digit) { case 0: return 0x3F; //0x3F es el código 7-segmentos del 0. case 1: return 0x06; //0x06 es el código 7-segmentos del 1. case 2: return 0x5B; case 3: return 0x4F; case 4: return 0x66; case 5: return 0x6D; case 6: return 0x7D; case 7: return 0x07; case 8: return 0x7F; case 9: return 0x67; }

Page 154: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

154

Ejemplos de funciones Función BUTTON: elimina el efecto de rebote

(BOUNCING) que se produce al presionar un pulsador.

Instrucción: (Button(&PORTA,4,1,0)) Parámetros: &PORTA: puerto de conexión del pulsador 4: Pin del puerto 1: Tiempo de retardo en milisegundos 0: nivel lógico cuando está presionado

Page 155: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

155

Ejemplos de funciones Función de habilitación de resistencias PULL-

UP internas del puerto B NOT_RBPU_bit=0

Page 156: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

156

Conexión DISPLAY LCD y PIC

Page 157: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

157

Funciones para conexión PIC - LCD

Función Descripción

Lcd_Init() Inicializa módulo LCD

Lcd_Out(fila, columna, texto) Presenta texto en posición indicada

Lcd_Out_CP(texto) Presenta texto en posición de cursor

Lcd_Chr(fila, columna, carácter) Presenta carácter en posición indicada

Lcd_Chr_CP(carácter) Presenta carácter en posición del cursor

Lcd_Cmd(comando) Envía comando al LCD

Page 158: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

158

Funciones para comandar PIC - LCDComando LCD Descripción

_LCD_FIRST_ROW Mueve el cursor a la 1ra fila

_LCD_SECOND_ROW Mueve el cursor a la 2da fila

_LCD_CLEAR Borra la pantalla

_LCD_RETURN_HOME Retorna el cursor a su origen.

_LCD_CURSOR_OFF Apaga el cursor

_LCD_UNDERLINE_ON Enciende el cursor de subrayado

_LCD_BLINK_CURSOR_ON Enciende el cursor con parpadeo

_LCD_MOVE_CURSOR_LEFT Mueve el cursor a la izquierda sin modificar la RAM del LCD

_LCD_MOVE_CURSOR_RIGHT Mueve el cursor a la derecha sin modificar la RAM del LCD

_LCD_TURN_ON Enciende el módulo LCD

_LCD_TURN_OFF Apaga el módulo LCD

_LCD_SHIFT_LEFT Desplaza la pantalla a la izquierda sin modificar la RAM del LCD

_LCD_SHIFT_RIGHT Desplaza la pantalla a la derecha sin modificar la RAM del LCD

Page 159: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

159

Definición de BITS para conexión LCD-PIC

sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D4 at RB0_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB0_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D7_Direction at TRISB3_bit;

Page 160: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

160

Conexión LCD - PIC

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1LM016L

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U2

PIC16F877A

X14MHz

C1

22p

C2

22p

Page 161: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

161

Ejemplo: presentación de caracteres void main(){ Lcd_Init(); //Inicializa el LCD. Lcd_Chr_Cp('S'); Lcd_Chr_Cp('E'); Lcd_Chr_Cp('M'); Lcd_Chr_Cp('I'); Lcd_Chr_Cp('N'); Lcd_Chr_Cp('A'); Lcd_Chr_Cp('R'); Lcd_Chr_Cp('I'); Lcd_Chr_Cp('O'); Lcd_Chr(2,1,'1'); //fija posición para valores Lcd_Chr(2,8,'2'); Lcd_Chr(2,15, '3'); // Lcd_Cmd(_LCD_CURSOR_OFF); //Apaga cursor while(1) { } }

Page 162: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

162

Presentación de cadenas de texto

Char Texto1[20]= “Sistemas” void main(){ Lcd_Init();

//Inicializa el LCD. Lcd_Out_Cp(“Seminario UTSAM”); Lcd_Out(2,1,Texto1); // Lcd_Cmd(_LCD_CURSOR_OFF); //Apaga

cursor while(1) { } }

Page 163: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

163

Presentación de valores numéricos Funciones de

conversión de valores numéricos: Librería CONVERSIONS:

conversión de valor numérico a línea de caracteres.

IntToStr(Entrada entera, Salida caracteres)

FloatToStr(entrada flotante, Salida carácteres)

Page 164: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

164

Ejemplo de presentación de valores numéricos char Texto1[20]="Sistemas"; int Entero=123; float Decimal=3.14; void main(){ Lcd_Init(); //Inicializa el LCD. Lcd_Out(1,1,"Entero:"); IntToStr(Entero,Texto1); Lcd_Out(1,8,Texto1); FloatToStr(Decimal,Texto1); Lcd_Out(2,1,"Decimal:"); Lcd_Out(2,10,Texto1); Lcd_Cmd(_LCD_CURSOR_OFF); while(1) { } }

Page 165: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

165

Ejemplo: contador con LCD Se presiona un pulsador conectado a RA4, lo

que provoca el incremento de un contador que se visualiza en el centro de la segunda línea, si supera el conteo de 100, se reinicia el registro contador en 0.

Uso de funciones: Declaración de variables Button Comandos para LCD

Page 166: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

166

Contador en LCD

Page 167: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

167

Comunicaciones con PIC Permiten establecer transporte de datos con otros

dispositivos tales como: memorias, sensores, ordenadores, e incluso otros microcontroladores. Con el fin de realizar las comunicaciones seriales, algunos microcontroladores cuentan con módulos seriales como: I²C, SPI, USART, y USB.

Page 168: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

168

Comunicaciones Seriales I²C es ideal para la comunicación con memorias

seriales como la 24LC64, 24LC128, 24LC512, entre otras.

SPI permite establecer comunicaciones con unidades de almacenamiento masivo como las memorias SD.

USART permite hacer comunicaciones con dispositivos como sensores, módulos de transmisión y recepción XBee, ordenadores personales, módulos GPS, y otros micros.

USB que está incorporado en unos pocos micros, como el 18F2550, y el 18F4550, permite hacer la comunicación con un ordenador personal por medio de un puerto USB, definido como HID o dispositivo de interfaz humana.

Page 169: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

169

Modulo serial I²C MikroC contiene una librería para este

protocolo denominada I2C El protocolo I²C, se caracteriza por tener una

línea de datos bidireccional y una línea de reloj con drenador abierto. Por este motivo en estos dos pines se debe usar una resistencia de pull-up, generalmente de 10KΩ. Este usa una condición de inicio, un bloque de dirección para los dispositivos en la red, un bloque de datos y una condición de fin. De igual manera usa las condiciones de repetición de inicio y un bit de reconocimiento o acknowledge denotado como ACK.

Page 170: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

170

Funciones para I2C I2C1_Init(const unsigned long clock): inicializa los

pines de comunicación en el PIC, y ajusta la velocidad de comunicación a la velocidad que denote el parámetro clock.

unsigned short I2C1_Start(void): genera la condición de inicio y retorna 0 si no hay ningún error en la transmisión, de otro forma retorna un valor diferente de 0.

void I2C1_Repeated_Start(void): genera la repetición de inicio.

unsigned short I2C1_Is_Idle(void): se usa para identificar si el bus de datos está ocupado, y retorna 1, si el bus está disponible o retorna 0, si está ocupado.

Page 171: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

171

Funciones para I2C unsigned short I2C1_Rd(unsigned short

ack): lee un dato del bus de datos y envía la confirmación ack por el bus. Si ack vale 1 la confirmación es positiva y si es 0 la confirmación es negativa o NO ACK.

unsigned short I2C1_Wr(unsigned short data ): está función envía el dato data por el bus y retorna 0 si la transmisión fue exitosa, o algo diferente de 0 si suceden errores.

void I2C1_Stop(void): Genera la condición de final en el bus de comunicación.

Page 172: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

172

W/R en memoria serial 24LC00 en IC2 Escritur

a

Lectura

Page 173: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

173

Ejemplo de protocolo IC2

Page 174: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

174

Módulo USART Comunicación serial asíncrona Requiere un solo medio de transmisión para enviar

información, y no requiere un medio para el reloj o sincronismo; lo deben asumir independientemente cada uno de los elementos, el transmisor y el receptor.

Comunicación full-duplex, para este propósito se usan dos medios de transmisión dedicados, uno solo para transmitir y uno solo para recibir.

Velocidad de transmisión debe estar definida con el mismo valor en los dos dispositivos que se comunican, está por defecto en casi toda comunicación es de 9600 bps.

Page 175: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

175

Trama de datos USART La comunicación síncrona cuenta con las

siguientes características: un bit de inicio o de start, que siempre es un 0 lógico, 8 o 9 bits de datos para el caso puntual de los PIC, y 1, 1.5 o 2 bits de fin o stop.

Page 176: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

176

Protocolo RS-232 Este protocolo se conoce como RS232 Los niveles de tensión eléctrica son diferentes

al microcontrolador. El protocolo RS232, representa el valor de un 0 lógico con una tensión de +12 voltios, y el valor de un 1 lógico con -12 voltios.

Se usa un conector DB9, que tiene 9 pines.

Page 177: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

177

PINOUT de conector DB9

Page 178: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

178

CI MAX-232

Page 179: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

179

Librería UART en MIKROC UART1_Init(const unsigned long baud_rate): Está

función inicializa el módulo USART, y establece la velocidad de comunicación definida en el parámetro: baud_rate.

char UART1_Data_Ready(): determina si hay un dato listo para ser leído, en el búfer de llegada del módulo, si la función retorna 1 el dato puede ser leído, de lo contrario no hay datos nuevos en el búfer.

char UART1_Tx_Idle(): establece si el búfer de transmisión se encuentra ocupado enviando un dato, para esto retorna 1 si el búfer está ocupado, o 0 si el módulo está disponible para enviar un nuevo dato.

char UART1_Read(): retorna el valor del búfer de entrada, es decir que sirve para leer un dato de entrada.

Page 180: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

180

Librería UART en MIKROC

UART1_Read_Text(char *Output, char *Delimiter, char Attempts): lee una cadena de caracteres y la guarda en el apuntador Output, el apuntador Delimiter, es un apuntador a una cadena de caracteres que contiene el texto definido como fin de la cadena de texto de entrada, el parámetro Attempts, define la longitud de la cadena de caracteres del delimitador de fin de cadena Delimiter.

Page 181: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

181

Librería UART en MIKROC UART1_Write(char _data): transmite el dato

_data ingresado en el parámetro de entrada, por la USART.

UART1_Write_Text(char * UART_text): Transmite una cadena de texto finalizada con el carácter nulo o 0. Está cadena de texto es entregada por medio del parámetro UART_text.

Page 182: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

182

Ejemplo comunicación módulo UART

Page 183: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

183

Actividad 9: aplicaciones USART Objetivo: Definir los modos de funcionamiento

de módulo UART de microcontroladores PIC, mediante configuración de parámetros de comunicación con PC para diseño de aplicaciones básicas.

Actividad: Testeo de BITS en puerto B y presentación de estado en monitor de PC.

Page 184: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

184

Lectura de BITS y presentación en PC

T1IN11

R1OUT12

T2IN10

R2OUT9

T1OUT14

R1IN13

T2OUT7

R2IN8

C2+

4

C2-

5

C1+

1

C1-

3

VS+2

VS-6

U2

MAX232

C1

1u

C2

1u

C3

1u

C41u

C51u

+

+5V

162738495

J1

CONN-D9M

RXD

RTS

TXD

CTS

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

OFF ON 1234

8765

DSW1

DIPSW_4

X1

C6

22p

C7

22p

Page 185: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

185

Actividad grupal Los estudiantes diseñaran la siguiente

aplicación basada en MIKROC que responda a las siguientes necesidades de datos enviados desde la PC

Al enviar 1: activa LED1 Al enviar 2: activa LED2 Al enviar 3: activa LED1 y LED2 Al enviar 4: activa LED1 y después de 3

segundos LED2 Al enviar 0: desactiva cualquiera de los LEDS

activos

Page 186: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

186

Módulo USB

Page 187: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

187

Módulo USB Disponible en PIC como 18F2550 y 18F4550,

destinan pines exclusivos para esta comunicación.

La conexión USB puede entregar una alimentación de 5 voltios con una corriente máxima de 500mA, esto significa que si el desarrollo no supera este consumo, no es necesario implementar una fuente de poder externa.

Para la simulación es necesario activar puerto virtual de PROTEUS – ISIS, en la siguiente dirección: C:/labcenter Electronics/Proteus 7 Professional/USB

Drivers/installer.exe

DRIVERS válidos para sistemas operativos de 32 BITS.

Page 188: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

188

Esquema de simulación

Page 189: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

189

Funciones de librería USB en MIKROC

Hid_Enable(unsigned *readbuff, unsigned *writebuff); Configura el módulo USB, y establece la comunicación con la

computadora. Incluye los parámetros de entrada readbuff y writebuff, que son apuntadores a los arreglos de memoria que guardan y transmiten la información por el puerto USB.

unsigned char Hid_Read(void); Retorna la cantidad de datos listos para ser leídos del puerto

USB. unsigned short Hid_Write(unsigned *writebuff,

unsigned short len); Escribe en el puerto USB, la cantidad de bytes definidos en el

parámetro len, que están consignados en el apuntador writebuff.

void Hid_Disable(void); Deshabilita el uso del puerto USB.

Page 190: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

190

Actividad en clase: Simulación PIC - USB Realizar actividad por estudiante establecida

en documento PDF respecto a comunicación USB entre PIC y puerto virtual.

Page 191: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

191

Modulación por ancho de pulso (PWM)

La Modulación por Ancho de Pulso (PWM = Pulse Width Modulation) es una técnica para simular una salida analógica con una salida digital.

El control digital se usa para crear una onda cuadrada, una señal que conmuta constantemente entre encendido y apagado. Este patrón de encendido-apagado puede simular voltajes entre 0 (siempre apagado) y 5 voltios (siempre encendido) simplemente variando la proporción de tiempo entre encendido y apagado.

A la duración del tiempo de encendido (ON) se le llama Ancho de Pulso (pulse width). Para variar el valor analógico cambiamos, o modulamos, ese ancho de pulso.

Page 192: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

192

PWM

Page 193: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

193

PWM en PIC En este modo, el pin CCP1 produce una salida PWM de

hasta 10 bits de resolución, se tienen hasta 1024 opciones de configuración del ciclo de trabajo. Este pin tiene que configurarse como salida por medio del registro TRISB.

Se caracteriza por una base de tiempo (período) y un tiempo durante el cual la salida tiene un nivel alto (ciclo de trabajo). La frecuencia es el inverso del período.

Page 194: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

194

PWM en PIC El período se especifica escribiendo en el registro PR2

y se puede calcular con la siguiente fórmula:

Cuando TMR2 es igual a PR2, se producen los tres siguientes eventos en el próximo ciclo de incremento: El registro TMR2 es borrado. El pin CCP1 se pone en 1 (excepto si el ciclo de trabajo es

0%). El ciclo de trabajo PWM es movido desde el registro

CCPR1L al registro CCPR1H.

Page 195: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

195

Ciclo de trabajo PWM El ciclo de trabajo se especifica escribiendo en el registro

CCPR1L (los 8 MSbs) y en los bits CCP1CON<5:4> (los 2 LSbs). Este valor de 10 bits se representa como:

CPR1L: CCP1CON<5:4>. La siguiente fórmula permite el cálculo del ciclo de

trabajo:

En los bits CCPR1L: CCP1CON<5:4>se puede escribir en cualquier momento, pero el ciclo de trabajo no es movido hacia CCPR1H hasta que se produce una coincidencia entre TMR2 y PR2 (es decir, se completa el período). En el modo PWM, el registro CCPR1H es de solo lectura.

Page 196: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

196

Ciclo de trabajo PWM La máxima resolución PWM (bits) para una

determinada frecuencia PWM está dada por la siguiente fórmula:

Page 197: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

197

Funciones de mikroC para PWM PWM1_Init(frecuencia): Inicializa el módulo

PWM con un ciclo de trabajo igual a 0. La frecuencia PWM se expresa en Hz (tomar en cuenta las frecuencias permitidas de acuerdo a la frecuencia del oscilador FOSC).

PWM1_Set_Duty(ciclo de trabajo): Establece el ciclo de trabajo desde 0 hasta 255 (resolución de 8 bits). Donde 0 es 0%, 127 es 50% y 255 es 100%. Se pueden calcular otros valores del ciclo de trabajo con la fórmula (Porcentaje*255)/100.

PWM1_Start( ): Inicia la generación de la señal PWM.

PWM1_Stop( ): Detiene la generación de la señal PWM.

Page 198: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

198

Ejemplo PWM Con una frecuencia de oscilador (FOSC) de 4MHz se tiene un

período (TOSC) de 0,25 us; si el prescaler del Timer2 tiene un valor de 1, entonces se pueden calcular los períodos mínimo y máximo

PWM y las frecuencias máxima y mínima permitidas, respectivamente. El período mínimo se obtiene cuando el registro PR2 tiene un valor de 0, por lo tanto:

TPWMmín=(0+1)x4x0,25x1=1 us Y la frecuencia máxima será: fPWMmáx=1MHz El período máximo se obtiene cuando el registro PR2 tiene

un valor de 255: TPWMmáx=(255+1)x4x0,25x1=256 us Y la frecuencia mínima será:fPWMmín=3.906Hz En el siguiente ejemplo se trabaja con una frecuencia PWM

de 5kHz.

Page 199: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

199

Esquema PWM

RB

[4..

1]

RB

3

RB

1R

B2

RB

0

RB0RB1RB2RB3

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1LM016L

R1

10k

6

5

4

1

2

U2

4N25

Q1IRFZ44N

D11N4007

R2

620

R3

10

12V

R491k

VELOCIDAD

12V10Amax

+5V

MOTOR

(+)

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U3

PIC16F877A

Page 200: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

200

Aplicaciones PWM: movimiento rotacional en robot móvil

Movimiento de ruedas: velocidad mediante PWM

Dirección: control diferencial

Sentido: DRIVERS, puentes H

Lógica de programación define operación de recorrido.

Page 201: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

201

Actividad 12: Módulo ADC Objetivos

Definir las etapas de conversión analógica a digital mediante la determinación del proceso de adquisición de datos en relación a registros afectados lo que permitirá la interpretación de instrucciones en Lenguaje C para este procedimiento.

Reflexión: ¿Cómo percibe las condiciones de su entorno un

sistema microcontrolado? ¿Cómo codifica parámetros no eléctricos un

microcontrolador? Todo lo que se puede medir se puede

controlar.

Page 202: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

202

Módulo Convertidor Analógico Digital (ADC)

Page 203: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

203

Módulo ADC en PICs La familia de microcontroladores PIC16F87X,

disponen de un módulo de conversión Analógico/Digital que tiene cinco entradas para los dispositivos de 28 pines y ocho para los otros dispositivos de la familia.

A través de la entrada analógica se aplica la señal analógica a un condensador de captura y retención (sample and hold) que después se introduce en el convertidor. El convertidor A/D que es de aproximaciones sucesiva da como resultado una palabra de 10 bits.

Permite al microcontrolador sensar al entorno.

Page 204: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

204

Muestreo y retención (SAMPLE & HOLD)

Tomar una muestra de la señal: Es como un interruptor electrónico cuya única función es dejar pasar la señal análoga a convertir, este paso será por un pequeño instante de tiempo, solo lo necesario para que el retenedor quede cargado al mismo nivel de voltaje de la señal de entrada.

Cuantificar y Codificar: Una vez que la señal esta lista en el retenedor, el modulo de control SAR (Successive-approximation-register), inicia el proceso de cuantificación y codificación directa.

Page 205: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

205

Muestreo y retención (SAMPLE & HOLD)

Page 206: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

206

Módulo ADC en PICs Tomar una muestra de una señal análoga en

un instante de tiempo, cuantificarla y darle un código digital que representa la cantidad de niveles a los cuales pertenece la muestra.

Page 207: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

207

Valores máximos y mínimos de ADC

El módulo del convertidor A/D puede seleccionar como tensión de referencia la interna, es decir entre VDD y masa o bien una externa que se introduzca entre RA3/AN3/ VREF+ y RA2/AN2/VREF-.

La máxima tensión aplicada a la patilla VREF+ (RA3/AN3) podrá ser de VDD+0,3V y la mínima de VDD- 2,5V. En cuanto a la tensión VREF- (RA2/AN2) la mínima tensión será VSS-0,3V y la máxima VREF+ - 2V, así por ejemplo, si la tensión de alimentación es de 5V, la tensión en RA3/AN3 no podrá exceder de 5V.

Por lo que la máxima tensión en la VREF- será de 3V. Siempre se ha de cumplir que VREF+ - VREF - ≤2V.

Page 208: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

208

Registros en ADC El módulo conversor A/D tiene asociados cuatro

registros: ADRESH : Parte alta del resultado de la conversión ADRESL : Parte baja del resultado de la conversión ADCON0: Registro de Control 0 ADCON1, Registro de Control 1

Los pines del PORTA pueden configurarse como entradas analógicas (RA, también puede ser entrada de tensión de referencia) o como E/S digital.

Los registros ADRESH: ADRESL contienen los 10 bits resultado de la conversión A/D. Cuando se completa la conversión A/D, el resultado se guarda en los registros ADRESH:ADRESL y se pone a cero el bit GO/DONE y el flag de fin de conversión ADIF (PIR1<6>) se pone a 1.

Page 209: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

209

Proceso módulo ADC

1. Configurar el módulo conversor A/D:1. Configurar los pines que actúan como entradas

analógicas, las señales que harán de tensión de referencia la que trabajarán como E/S digitales (ADDCON1)

2. Seleccionar el canal de entrada A/D (ADCON0).3. Seleccionar la fuente de la señal de reloj para la

conversión A/D (ADCON0).4. Activar el módulo de conversión A/D (ADCON0)

2. Activar si, se desea, la interrupción del módulo conversor A/D

1. Poner a cero el bit ADIF2. Poner a uno el bit ADIE3. Poner a uno los bits habilitadores GIE y PEIE

3. Esperar el tiempo requerido para la adquisición

Page 210: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

210

Proceso módulo ADC1. Inicio de la conversión

1. Poner a 1 el bit GO/#DONE (ADCON0)

2. Tiempo de espera para terminar la conversión A/D que puede detectarse por:

1. Exploración de bit GO/#DONE , que al finalizar la conversión toma el valor "0"

2. Esperar que se produzca una interrupción si se ha programado al finalizar la conversión.

Page 211: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

211

Librería ADC en MIKROC unsigned int ADC_Read(unsigned short

channel); Inicializa el módulo A/D para operar con el

oscilador interno RC. Retorna un número de 10 bits como resultado

de la conversión.

Page 212: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

212

Ejemplo: Lectura de voltaje. Se mide el

voltaje de una fuente de DC y se presenta su valor en LCD

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1LM016L

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP2 16

RC2/CCP1 17

RC3/SCK/SCL 18

RD0/PSP0 19

RD1/PSP1 20

RB7/PGD 40RB6/PGC 39

RB5 38RB4 37

RB3/PGM 36RB2 35RB1 34

RB0/INT 33

RD7/PSP7 30RD6/PSP6 29RD5/PSP5 28RD4/PSP4 27RD3/PSP3 22RD2/PSP2 21

RC7/RX/DT 26RC6/TX/CK 25

RC5/SDO 24RC4/SDI/SDA 23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI 15

MCLR/Vpp/THV1

U2

PIC16F877A

R1

10k

R220kBAT1

3.5V

VT(15V max)

Page 213: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

213

Actividad 13: Interconexión con sensores

Objetivo: analizar el funcionamiento de sensores mediante la comunicación con PIC en lenguaje lo que permitirá el desarrollo de aplicaciones de control básicas

Reflexión: ¿Qué variables físicas se pueden medir? ¿Cómo se pueden medir estas variables? ¿Cómo se comunican con microcontrolador?

Page 214: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

214

Entorno de desarrollo con sensores

Page 215: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

215

Sensor de temperatura LM35 Es un dispositivo activo de

3 terminales que permite adquirir la temperatura ambiente en rangos de -55° a 150°

Es de fácil implementación dado que solo cuenta con dos terminales de polarización, y una salida de voltaje directamente proporcional a la temperatura.

Este sensor puede ser polarizado de 4 a 30 voltios y tiene una salida de 10m voltios por cada grado Celsius.

Page 216: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

216

Sensor de temperatura Para realizar la lectura del voltaje de salida del

sensor se implementa en el microcontrolador el módulo ADC. La máxima salida del sensor es 1,5 voltios, cuando la temperatura es 150 grados Celsius. Por esto es importante cambiar el valor de referencia positiva del convertidor análogo digital, con el fin de mejorar la resolución de la medida de voltaje. Para el ejemplo de este capítulo se configurará el voltaje de referencia positivo del ADC, en 2,5 voltios.

Page 217: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

217

Sensor de temperatura Cambiando la referencia

positiva a 2,5 voltios el convertidor entregará un resultado binario de 1023 cuando el voltaje a convertir es de 2,5 voltios. Para el caso de este sensor, se verá definido por las siguientes relaciones:

Donde Radc es el resultado binario de la conversión AD. De está ecuación se puede deducir que el voltaje Vadc, leído por el convertidor AD, es:

Page 218: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

218

Sensor de temperatura Trabajando con la relación

del sensor que es: 10m voltios por cada grado Celsius, se puede plantear la siguiente ecuación:

Donde n es la temperatura en grados Celsius, que está registrando el sensor, de está ecuación se puede deducir que la temperatura n es:

Obtenemos la ecuación:

Page 219: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

219

Simulación de sensor de temperatura

Page 220: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

220

Actividad 14: Sensores de distancia Objetivo: Caracterizar el funcionamiento de

sensores de distancia mediante el tratamiento de algoritmos para detección de mediciones provenientes de estos sensores para su futura aplicación en medición de distancias

Page 221: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

221

Sensores de distancia: Infrarrojos Permiten medir una longitud desde el punto

de ubicación del sensor hasta un obstáculo puesto en un punto dentro del rango de trabajo del sensor.

Con un rango de 3 centímetros a 3.3 metros, es una atracción para cualquier elemento robótico y proyectos de automatización.

Sensor GP2D12, este dispositivo usa un rayo de luz infrarroja y su reflejo para determinar la longitud.

Page 222: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

222

Sensor Infrarrojo GP2D12 Descripción física y PINOUT

Page 223: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

223

Sensor Infrarrojo GP2D12 Este tipo de sensores

cuentan con un comportamiento no lineal, esto quiere decir que la salida no obedece a una función de transferencia lineal.

Se realiza una interpolación con una cantidad finita de puntos conocidos de la función.

Page 224: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

224

Sensor Infrarrojo GP2D12 Ejemplo de medición: Tenemos y es distancia,

x voltaje del sensor.

Escogemos dos puntos donde la función se aproxime a la escogida.

Resolvemos el sistema con los valores de las constantes: A = 34,76546392 B = -4,793814433

Page 225: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

225

Sensor Infrarrojo GP2D12

Parametrizar la función:

x representa el voltaje de salida del sensor que no supera 2,5 voltios, la referencia del convertidor AD, se puede ajustar

Remplazando x por Vad:

Page 226: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

226

Sensor Infrarrojo GP2D12

Page 227: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

227

El Sensor Ultrasónico de Distancia

Page 228: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

228

Sensor Ultrasónico de Distancia PING El sensor envía un breve silbido con su altavoz

ultrasónico y mide el tiempo de regreso del eco a su micrófono ultrasónico.

El PIC empieza enviándole un pulso para iniciar la medición. Luego, el sensor espera lo suficiente para que el programa del PIC inicie un comando de lectura de Pulso. Entonces, al mismo tiempo que silba un tono de 40 kHz, le envía una señal alta al PIC. Cuando detecta el eco con su micrófono ultrasónico, cambia la señal alta de regreso a señal baja.

Page 229: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

229

Sensor Ultrasónico de Distancia PING

Page 230: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

230

Actividad 16: Actuadores y potencia

Objetivos: Describir funcionamiento de dispositivos

de potencia, mediante conexión de componentes eléctricos de carga a microcontrolador.

Los actuadores son dispositivos eléctricos o electrónicos que permiten crear un cambio físico sobre una variable. Está pueden ser temperatura, velocidad, presión, luminosidad, humedad, posición angular o lineal, entre otras.

Los actuadores DC, son aquellos como motores, servomotores, lámparas incandescentes, solenoides, relevadores, entre otros.

Page 231: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

231

Relevadores Son dispositivos

electromecánicos, que tienen un electroimán con el cual se cierra o se abre un circuito eléctrico por medio de uno o varios contactos.

Los relevadores son ideales para aislar los circuitos de potencia con la etapa de control electrónico.

Bajo rendimiento, dado que no pueden hacer cambios de estado veloces, y con el uso constante los contactos eléctricos se deterioran con el tiempo.

Page 232: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

232

Uso de relevadores con uC PIC

Page 233: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

233

Uso de relevadores con uC PIC Opto acopladores:

Page 234: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

234

Motores DC Permiten movimiento a través de cargas

inductivas. Podemos controlar velocidad.

Velocidad mediante PWM

Page 235: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

235

Conexión PIC a motor DC

Page 236: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

236

Motores DC Sentido de giro:

Mediante puente H

Page 237: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

237

Motores paso a paso Se componen de varias bobinas lo que

permite un control en el giro correspondiente al número de paso de activación

Se requiere activar un secuencia en las entradas de las bobinas.

Control desde 1,8° o menos.

Page 238: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

238

Tipos de motores PAP

Page 239: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

239

Secuencias en motores PAP (STEPPER)

Page 240: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

240

Conexión PIC a motor PAP

Page 241: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

241

Conexión PIC a motor PAP

Page 242: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

242

Motores Servo Son sistemas integrados que tienen un control

de posición angular, y un sistema mecánico de piñones para ofrecer mayor fuerza pero menor velocidad.

Un servomotor tiene incorporado un control de posición angular, que puede ser gobernado por medio de una señal PWM, cuentan con un terminal de tres pines para la alimentación, la referencia y la señal de control PWM.

Page 243: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

243

Conexión PIC a servomotor

Page 244: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

244

PROGRAMACIÓN GRÁFICA DE MICROCONTROLADORES

Page 245: ARQUITECTURA SIST MICRO_REV2.pptx

Microcontroladores: Ing. Víctor Medina G

245

Para qué sirven los diagramas de flujo

El diagrama de flujo es la representación gráfica del algoritmo o proceso.

Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva.

Page 246: ARQUITECTURA SIST MICRO_REV2.pptx

Microcontroladores: Ing. Víctor Medina G

246

Definición Es una representación gráfica

que desglosa un proceso en cualquier tipo de actividad a desarrollarse tanto en empresas industriales o de servicios y en sus departamentos, secciones u áreas de su estructura organizativa.

Se trata de una muy útil herramienta para poder entender correctamente las diferentes fases de cualquier proceso y su funcionamiento, por tanto, permite comprenderlo y estudiarlo para tratar de mejorar sus procedimientos.

Page 247: ARQUITECTURA SIST MICRO_REV2.pptx

Microcontroladores: Ing. Víctor Medina G

247

Ventajas Ventajas de los Diagramas de Flujo

Favorecen la comprensión del proceso a través de mostrarlo como un dibujo.

Un buen diagrama de flujo remplaza varias páginas de texto.

Permiten identificar los problemas y las oportunidades de mejora del proceso.

Se identifican los pasos redundantes, los flujos de los re procesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.

Page 248: ARQUITECTURA SIST MICRO_REV2.pptx

ESTRUCTURA DE PROGRAMA EN MODO GRÁFICO

Permite programar microcontroladores mediante diagramas de flujo, que se traducen en código C o ASSEMBLER

Microcontroladores: Ing. Víctor Medina G

248

Page 249: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

249

Plan de trabajo modo gráfico

Page 250: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

250

Plan de trabajo modo gráfico Diseño del programa fuente. Escogiendo y arrastrando los

diferentes iconos de comandos disponibles, vamos dibujando el organigrama o diagrama de flujo de nuestra aplicación. Podemos ajustar los diferentes parámetros y propiedades asociados a ellos.

Diseño del sistema. Dispone de una gran variedad de periféricos típicos como leds, interruptores, pantallas LCD, etc.

Simulación del programa. Podemos ejecutar el programa paso a paso, icono a icono, analizar los resultados obtenidos sobre los componentes del sistema, editar y/o visualizar las variables del programa o ejecutar la simulación en tiempo real.

Descargar y grabar el microcontrolador. Con un único botón podemos compilar, ensamblar y grabar el programa ejecutable obtenido sobre la memoria física del microcontrolador.

Page 251: ARQUITECTURA SIST MICRO_REV2.pptx

Actividad 19: ENTORNO DE TRABAJO FLOWCODE

Microcontroladores: Ing. Víctor Medina G

251

Page 252: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

252

Herramientas en FLOWCODE Herramientas de ingreso Permite ejecutar tareas relacionadas

con la adquisición de datos procedentes de los Puertos del controlador.

En el campo “Variable” indicamos en qué variable se va a guardar el valor leído desde el Puerto de entrada.

Podremos crear, editar y borrar variables de 8 bits, de 16, de cadenas ASCII o strings y variables para almacenar números en coma flotante.

La lectura de un Puerto de entrada puede hacerse a nivel de un bit único o a nivel del puerto completo.

Lectura enmascarada, es decir qué bits de ese puerto son los que nos interesa leer. En el ejemplo se leen los bits 0,2 y 3 del Puerto A.

Page 253: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

253

Herramienta de salida Permite ejecutar operaciones

relacionadas con los Puertos de salida del controlador.

En “Mostrar Nombre” podemos añadir el comentario deseado. En el campo “Variable o Valor” introducimos directamente el valor de salida o bien el nombre de la variable que contiene el valor que deseamos sacar.

Mediante el campo “Puerto” se selecciona el puerto de salida, la escritura se puede realizar a nivel de bit único o a nivel de Puerto completo.

Page 254: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

254

Herramienta de temporización Permite realizar todo tipo de

temporizaciones basadas en la frecuencia de trabajo del sistema que hemos seleccionado mediante las opciones del proyecto.

En el campo “Mostrar Nombre”, podemos incluir un comentario. En el campo “Tiempo de Demora o Variable” introducimos el valor a temporizar.

Este valor se puede indicar directamente, o bien indicando el nombre de la variable que lo contiene.

Page 255: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

255

Herramienta de decisión Se trata de la clásica toma de

decisiones. Se realiza una determinada evaluación y, en función del resultado, el flujo del programa va por un camino o por otro. En el campo “En Caso de Que” se establece la condición.

Esto es equivalente a evaluar si la línea RA0 de la puerta A está a nivel lógico “1” o no. En caso afirmativo, el curso de la ejecución se desvía por la derecha. En caso contrario la ejecución continúa su curso.

Podemos activar (o no) el campo “Intercambiar Si y No”. En este caso el desvío del curso de la ejecución se produce si NO se da la condición establecida.

Page 256: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

256

Herramienta de decisión Las condiciones pueden estar formadas por

números y/o variables y uno de los siguientes operadores: ( ) Paréntesis =, <> Igual a, diferente a. +, -, *, /, MOD Adición, sustracción, multiplicación,

división y módulo. <, <=, >, >= Menor que, menor que o igual a,

mayor que, mayor que o igual a. >>, << Desplazamiento a la derecha,

desplazamiento a la izquierda. NOT, AND, OR, XOR Funciones lógicas: NOT, AND,

OR u OR exclusiva

Page 257: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

257

Herramientas de decisión múltiple En este caso se pueden evaluar hasta once posibles

condiciones. Resultan especialmente útiles a la hora de personalizar el programa para que reaccione de formas diferentes basándose en una variable de entrada.

En el campo “Expresión” se indica el nombre de la variable cuyo contenido se desea evaluar, “Entradas” en el ejemplo. Los campos “Caso”, cuando se activan, permiten determinar con qué valores hay que comparar el contenido de la variable “Entradas”: 1, 4, 2 o 7. Cuando coincide uno de ellos, el flujo de ejecución del programa toma un camino u otro. Si no coincide con ninguno, la ejecución sigue su curso.

Page 258: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

258

Herramientas de decisión múltiple

Page 259: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

259

Herramienta punto de conexión Permite establecer el punto de conexión de

destino al que debe dirigirse el flujo del programa.

En el campo “Ir a Punto de Conexión” asignamos un nombre o etiqueta del punto de destino. En el ejemplo hemos asignado la etiqueta “Bucle”.

Page 260: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

260

Herramienta ir a punto de conexión

Esta herramienta se emplea junto con la anterior. Permite establecer el punto de conexión de destino al que debe dirigirse el flujo del programa.

En el campo “Ir a Punto de Conexión” asignamos un nombre o etiqueta del punto de destino. En el ejemplo hemos asignado la etiqueta “Bucle”

Page 261: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

261

Herramienta punto de conexión

Page 262: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

262

Herramienta Bucle Esta herramienta de Bucle se emplea para repetir

una tarea, bien de forma incondicional o indefinida, o bien hasta que se cumplan las condiciones indicadas. Esta herramienta siempre se muestra como dos iconos, uno de inicio y otro de final, donde se alojan los comandos de programa que forman el bucle.

Page 263: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

263

Herramienta Bucle Los comandos encerrados dentro de un

bucle se pueden ejecutar mientras se produzca una condición (“Bucle Mientras”) o hasta que se produzca esa condición (“Bucle Hasta”).

En el momento en que se cumpla esta condición, el bucle finaliza y el flujo del programa reanuda su curso.

Las condiciones se pueden evaluar y comprobar si se cumplen, al “Principio” del bucle o al “Final” del mismo. Los comandos o instrucciones que componen un bucle también se pueden ejecutar un número determinado de veces. Para ello, activamos e indicamos en el campo “Recuento de bucle”, el número de veces deseado (entre 1 y 255).

Page 264: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

264

Herramienta MACRO Una macro es una función o una

subrutina, que está compuesta de cualquiera de los comandos o iconos disponibles y/o también de otras macros.

En el campo “Mostrar Nombre” podemos escribir un comentario. En el campo “Macro” podemos ver una lista con todas las macros disponibles. Seleccionamos la que necesitemos en un momento dado.

Mediante el botón “Crear Nuevo Macro” accedemos a una ventana que nos permite definir una nueva Macro. Con el botón “OK&Editar Macro” podemos editar una Macro. Es decir, describir los componentes que debe ejecutar para realizar una determinada tarea.

Page 265: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

265

Herramienta MACRO de componentes

FlowCode incluye una serie de componentes o periféricos con los que podemos construir, para su simulación, el circuito eléctrico de nuestra aplicación. Estos componentes se colocan en el “Panel de Montaje”, en donde se establecen sus propiedades y conexiones con el controlador. Cada componente tiene asociadas, según sus características, un número determinado de funciones o Macros para su control.

Cuando empleamos la herramienta “Macro de Componentes” y hacemos doble clic sobre ella, aparece una ventana de propiedades. En ella disponemos de un listado con todos los componentes que hubiera en ese momento en el panel de montaje y accedemos a todas las funciones asociadas a los mismos. En la figura, vemos que hay dos componentes: un interruptor SWITCH(0) y un led LED(0). Al seleccionar por ejemplo, el

SWITCH(0), a la derecha, en la ventana “Macro”, aparecen las funciones a él asociadas. Hay tres:

LeerEstado. Lee el estado de la línea de entrada a la que está conectado el SWITCH(0) y los deposita en la variable de retorno que se indica en el campo “Valor de Retorno(BYTE)”.

2. EsperarHastaAlto. Espera a que la línea de entrada a la que está conectado el SWITCH(0) se ponga a nivel “1”. En este momento finaliza la Macro o función, que no retorna ningún valor.

3. EsperarHastaBajo. Espera a que la línea de entrada a la que está conectado el SWITCH(0) se ponga a nivel “0”. En este momento finaliza la Macro o función, que no retorna ningún valor.

Page 266: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

266

Herramienta MACRO de componentes

Page 267: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

267

Herramienta de cálculo Permite insertar operaciones

lógico/aritméticas en nuestros programas. En el campo “Mostrar Nombre” podemos escribir el comentario que deseemos. En el campo “Cálculos” describimos los cálculos a realizar.

El botón “Variables” nos abre una ventana donde podemos crear, editar, borrar y seleccionar distintas variables. Con el botón “Funciones” accedemos a todas las funciones lógico/ aritméticas disponibles.

Page 268: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

268

Herramienta secuencia La herramienta de

Manipulación de Secuencia permite manipular y operar con cadenas

de caracteres ASCII. En el campo “Funciones de”

editamos las operaciones a realizar con una o varias cadenas de caracteres.

El botón “Variables” nos permite crear, borrar, editar o usar variables de secuencia o cadenas. El botón “Funciones” nos presenta una lista con todas las funciones disponibles para el manejo de secuencias o cadenas de caracteres.

Page 269: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

269

Herramienta interrupción FlowCode 4 también soporta la activación/desactivación de

algunas de las interrupciones más relevantes del microcontrolador seleccionado. Aunque no están disponibles todas las que tiene el controlador, si están las más representativas.

Con el botón “Propiedades” se selecciona el evento deseado para esa interrupción. Por ejemplo, en el caso de la interrupción externa INT, podemos seleccionar el flanco ascendente o descendente.

En el campo “Llamará al Macro” se indica qué Macro o función se debe ejecutar cada vez que se produzca la interrupción. Con el botón “Crear Nuevo Macro” creamos una nueva función.

Con el botón “OK & Editar Macro” editamos el contenido de la Macro. Es decir, dibujamos el organigrama de tareas que esa Macro debe ejecutar. El funcionamiento es muy similar al empleado en la herramienta de componente “Macro”.

Page 270: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

270

Herramienta interrupción

Page 271: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

271

Herramienta código C Puede haber casos en que el lenguaje como tal no pueda

realizar ciertas tareas. Por ello, este tipo de lenguajes siempre tienen una puerta abierta que nos permita insertar nuestro propio código fuente en C o en ensamblador, para resolver aquellas tareas que FlowCode no pueda realizar directamente. Disponemos así de la herramienta Código C.

Page 272: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

272

Macros de Periféricos Comunes:

Led. Coloca un led en el panel de montaje.

LEDarray. Coloca una barra de hasta ocho diodos leds.

SWITCHbank. Coloca un banco de hasta ocho interruptores.

SWITCH. Interruptor sencillo.

ADC. Coloca un potenciómetro para emular una entrada analógica.

LCDDisplay. Inserta una pantalla LCD alfanumérica.

Page 273: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

273

Macros de Periféricos Entradas:

KeyPad. Teclado matricial de hasta 4 x 4.

SWITCHbank. Coloca un banco de hasta ocho interruptores.

SWITCH. Interruptor sencillo

ADC. Coloca un potenciómetro para emular una entrada analógica.

Page 274: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

274

Macros de Periféricos Salidas: Led7seg. Coloca el

clásico display de 7 segmentos con punto decimal.

Led. Coloca un led en el panel de montaje.

LEDarray. Coloca una barra de hasta ocho diodos leds.

GLCD. Pantalla gráfica. LCD Display. Inserta una

pantalla LCD alfanumérica.

Led7seg4. Inserta un conjunto de 4 displays de 7 segmentos conectados en paralelo.

Page 275: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

275

Macros de Periféricos Comunicaciones: LinMaster: Uso de Macros y

funciones que implementan el protocolo Lin en modo Master para la transferencia de datos.

SPI_Legacy: Protocolo SPI para la transferencia de datos.

One_Wire: Protocolo One_Wire para la transferencia de datos.

I2C_Master. Protocolo I2C en el modo Master para la transferencia de datos.

CAN2: Protocolo CAN2. RS232: Estándar RS232 para la

transferencia de datos. Lin_Slave. Protocolo Lin en modo

Slave para la transferencia de datos. CAN: Protocolo CAN.

Page 276: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

276

Macros de Periféricos WIRELESS

IrDA Comunicación mediante infrarrojos.

RFID. Identificación por radiofrecuencia.

Zigbee. Comunicación por radiofrecuencia según el protocolo Zigbee

Bluetooth. Comunicación por radiofrecuencia según el protocolo Bluetooth.

Page 277: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

277

Macros de Periféricos Periféricos USBSerial: Dispositivo USB para la

comunicación serie. TCP_IP: Transferencia de datos según el

estándar TCP_IP. USBHID: Dispositivo USB como

dispositivo de interface humano (HID). MIDI: Comunicación en tiempo real

entre diferentes dispositivos como controladores musicales o instrumentos.

FAT16: Diseñado para usarse junto con tarjetas de memoria MMC/SD para configurar el sistema de localización de archivos (FAT) y empleo de los mismos.

WebServer: Podemos diseñar aplicaciones basadas en servicios de páginas web.

USBSlave: Dispositivo USB esclavo.

Page 278: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

278

Macros de Periféricos MECHATRONICS

Stepper. Para la simulación de aplicaciones que controlan un motor paso a paso

PWM. Componente cuyas Macros o funciones podemos emplear para generar y visualizar señales

PWM moduladas en anchura. Speech. Permite el diseño

de aplicaciones con síntesis de voz.

Servo. Para la simulación de aplicaciones que controlan un servo motor

Page 279: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

279

Consideraciones previas al diseño con microcontroladores

Page 280: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

280

Solucionar problemas con uso de TIC´s

Page 281: ARQUITECTURA SIST MICRO_REV2.pptx

Diseño de aplicaciones con microcontroladores

Interpretar y formular el problema Diseñar una solución Identificar los recursos para obtener la

solución. Organizarnos como equipo de trabajo Programar las tareas para llevar a

cabo la solución Ejecutar la solución Evaluar la solución Presentar la Solución

Microcontroladores281

Page 282: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

282

Análisis Funcional - Estructural Analizar:

Descomposición mental del objeto de estudio en sus partes integrantes, con el objetivo de relevar su composición y estructura así como su descomposición en elementos más simples.

Page 283: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

283

Análisis Funcional - Estructural Dado que los productos de la tecnología

pueden ser bienes (objetos), procesos o servicios, el análisis de productos revestirá distintas formas según sea el tipo de producto a analizar.

Un producto puede ser sujeto a diferentes tipos de análisis, como el análisis morfológico, funcional, estructural, de funcionamiento, económico, tecnológico, comparativo, relacional, del surgimiento y evolución histórica del producto.

Page 284: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

284

Análisis Funcional - Estructural Las diversas etapas del método de análisis

surgen como respuesta a interrogantes que normalmente un observador crítico se plantearía frente a los objetos en general y a un objeto en particular. La secuenciación de las etapas no será estrictamente lineal, sino que habrá idas y vueltas. En muchos casos el proceso será recursivo y se planteará la necesidad de reconsiderar etapas ya tratadas.

Page 285: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

285

Fases del método Fase de reconocimiento y análisis del

problema, necesidad o situación El análisis del problema se centra en plantear los

interrogantes cuyas respuestas se buscarán a lo largo del proceso de análisis. Algunos de lo interrogantes que se pueden plantear, teniendo en cuenta las características del producto (que puede ser tangible o intangible), los objetivos buscados y lo que se intenta priorizar.

Fase de síntesis Análisis del producto donde se hace una descripción más

precisa de los elementos que lo componen Fase de conclusión

Análisis de las relaciones del producto con su entorno, con la estructura sociocultural.

Page 286: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

286

Análisis Funcional - Estructural Análisis funcional Está centrado en la función que cumple el objeto. Se llama

función a la manera en que el objeto cumple el propósito para el cual fue concebido y construido.

Debemos analizar el repertorio de funciones elementales que el objeto debe cumplir para satisfacer los requerimientos que motivaron su creación (especificaciones).

Análisis estructural Se busca reconocer la estructura del objeto (modo en que están

dispuestas las partes), confeccionar el listado de componentes, determinar la misión de cada uno y las relaciones entre ellos.

La estructura formal (relaciones descripciones vinculadas a la forma del objeto) no se obtiene de la simple captación sensorial, sino que es una construcción intelectual del observador, resultado de un análisis y de una búsqueda de las relaciones entre las partes de ese todo que es el objeto.

Page 287: ARQUITECTURA SIST MICRO_REV2.pptx

Consideraciones previas PIC

Análisis de entradas y salidas.

Condiciones de trabajo del sistema Lugar de

emplazamiento: Interno, externo

Modos de operación: Manual, automático,

semiautomático Maniobras de operación:

Sensores, controladores y actuadores

Microcontroladores287

Page 288: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

288

Ejemplo de evaluación a discapacitado

Page 289: ARQUITECTURA SIST MICRO_REV2.pptx

Selección de componentes:

Inversión del sistema Arquitectura del sistema

propuesto Cableado, inalámbrico

Tecnología de componente TTL, CMOS

Selección de controlador: PIC, ATMEL, INTEL

Sensores e interfaces en entradas

Actuadores y controladores en salidas

Microcontroladores289

Page 290: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

290

Ejemplo de selección de componentes

Se propone diseñar el modelo de estación remota de control de indicadores en una estación minera, con las siguientes condiciones:• Se medirán gases en el aire, minerales en fuentes de agua y

temperatura en los trayectos de mina• Los datos serán almacenados en una micro SD• Todos los días a la misma hora en medianoche, los datos son

enviados vía red GSM a un servidor central en Guayaquil con BACKUP en QUITO.

• Estos datos se almacenan en documento de texto para ser revisados por el supervisor regional al día siguiente.

• La plataforma de servicio debe ser OPEN SOURCE

Se armarán grupos de 3 estudiantes para proponer el modelo de la estación remota.Tendrán el siguiente puntaje• 3 puntos, al definir los sensores que se van a utilizar• 3 puntos si definen el sistema de subida de datos y

especificaciones del servidor central y BACKUP• 4 puntos si definen la plataforma de servicio y SOFTWARE

de tratamiento de datos

Page 291: ARQUITECTURA SIST MICRO_REV2.pptx

13/04/2023Arquitectura de Sistemas Microprocesados

291

Aplicaciones GSM - PIC