Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
31/01/2013
Objetivos de Asignatura
Objetivo general:
Objetivos especficos: Caracterizar las funciones y arquitectura de un sistema microprocesado. Interpretar las instrucciones de programacin del microcontrolador en lenguaje JAVA. Programar microcontroladores con herramientas de entorno grfico. Disear aplicaciones de sistemas automatizados.
2 Arquitectura de Sistemas Microprocesados 31/01/2013
Contenidos:
Unidades didcticas:
Metodologa
En cada perodo de clase se presentar el tema, exponiendo el objetivo especfico 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 tecnologa. Las actividades (aplicaciones) son una rica y variada seleccin de aplicaciones del mundo real, estas ofrecen un constante repaso de las habilidades para resolver problemas. Adems, se pueden incorporar Actividades en equipo, motivando al estudiante a pensar, hablar y escribir soluciones en un ambiente de aprendizaje de mutuo apoyo.
4 Arquitectura de Sistemas Microprocesados 31/01/2013
Sistema de evaluacin
Controles frecuentes, Trabajos individuales o en grupo, Pruebas escritas y prcticas, Resolucin de ejercicios, Exposiciones y trabajos independientes. Para el control de notas se guiar segn ficha de evaluacin para cada parcial emitida por el Departamento Acadmico. Es decir con notas intraclase y extractase.
actividades desarrolladas intraclase y extractase (EF) 20%
20 % 60%
31/01/2013
Referencias bibliogrficas
JOS M ANGULO USATEGUI, IGNACIO ANGULO MARTNEZ. PIC diseo prctico de aplicaciones, Tercera edicin. MCGRAW HILL VERLE MILAN. PIC Microcontrollers Programming in C. Primera edicin. 2009 BANZI MASSIMO. GETTING STARTED WITH ARDUINO. Segunda edicin. OREILLY. 2011 WARREN JOHN, JOSH ADAMS, MOLLE HARALD. ARDUINO ROBOTICS. Primera edicin. TIA. 2010 BART HUYSKENS, JOHN DOBSON, STEVE TANDY. AN INTRODUCTION TO MICROCONTROLLER PROGRAMMING. MATRIX MULTIMEDIA. 2010
6 Arquitectura de Sistemas Microprocesados 31/01/2013
Plataforma de trabajo
PIC16F887 PIC16F88 ARDUINO AUTOMASIS VER3.0 Osciloscopios, fuentes cc, multmetros, generadores de seales, programadores PIC MPLAB, MIKROC, PROTEUS
Arquitectura de Sistemas Microprocesados 31/01/2013
Entrenadores de microcontroladores:
Equipos de medicin:
Compiladores y simuladores:
31/01/2013
Procesamiento secuencial:
La lgica digital Codificacin de los datos La organizacin de los componentes Programacin: ensamblador, lenguaje C Compilar Interfaces con mundo exterior Dispositivos y controladores
31/01/2013
10
31/01/2013
S ab
a
0 0
b
0 1
S
0 0
1
1
0
1
0
1
Funcin OR (suma)
S a b
a
0 0
b
0 1
S
0 1
1
1
0
1
1
1
Sa
a 0 1
S 1 0
S
0 1 0 1
(abc) (abc)
1
1 1 1
0
0 1 1
0
1 0 1
0
0 0 1
cuando a, b y c son 1
S
0 1 1 1 0 1 1 1
y
cuando a es 1 y b y c son 0
(a+b+c)
S = (a+b+c) (a+b+c)
Teoremas de De Morgan
Funcin NAND
S ab
a
0 0
b
0 1
S
1 1
1
1
0
1
1
0
Funcin NOR
S a b
a
0 0
b
0 1
S
1 0
1
1
0
1
0
0
S a b
a
0 0
b
0 1
S
0 1
1
1
0
1
1
0
Codificadores
Dan salidas dependiendo de los valores de las entradas
Decimal a BCD
BCD a decimal
BCD a 7 segmentos
Multiplexor
Una salida 2n entradas n entradas de seleccin a 0 b 0 c 0 S D0
0
0
0
1
1
0
D1
D2
0 1
1 1 1
1 0
0 1 1
1 0
1 0 1
D3 D4
D5 D6 D7
Demultiplexor
2n salidas una entrada n entradas de seleccin
Comparador
2 grupos de 2n entradas tres salidas
Actividad en clase:
25
Objetivo:
Conceptualizar componentes en un sistema microprocesado, mediante el anlisis de sus mdulos funcionales, para la identificacin en procesos de ejecucin.
26
27
28
Buses de comunicacin
Bus de direcciones: A0-AM-1. Es el empleado por la CPU para seleccionar la direccin de memoria o el dispositivo de E/S con el cual va a intercambiar informacin. Es unidireccional. El tamao determina la capacidad de direccionamiento de la CPU, que es el mximo nmero de posiciones de memoria y dispositivos E/S a los que la CPU puede acceder. Para m lneas la capacidad de direccionamiento ser: 2m.
29
Buses de comunicacin
30
Buses de comunicacin
Bus de datos: D0 - DN-1. El bus de datos es el conjunto de conductores a travs del cual el microprocesador intercambia informacin con la unidad de memoria o E/S seleccionada mediante el bus de direcciones. Caractersticas:
Bidireccional: La informacin puede viajar en los dos sentidos. Nmero de lneas (N): representa la cantidad de bits que se pueden transmitir simultneamente. Suele denominarse la palabra del P. Triestado: Las lneas del bus de datos deben ser triestado. Las lneas triestado son aquellas capaces de tener tres estados: Estado alto (High, H). Estado bajo (Low, L). Estado de alta impedancia (High Impedance, HZ).
31
Buses de datos
32
Bus de control
Bus de control. Est formado por un conjunto de lneas por las que circulan las seales auxiliares de gobierno y sincronizacin del sistema. Las lneas existentes dependen del fabricante del P y de las funciones que desee implementarle. Algunas seales tpicas en todos los sistemas son:
Seal de reloj de sincronizacin (CLK) Seal de RESET o inicializacin (RST) Seal de lectura/escritura en memoria (R/W), etc.
33
Bus de control
34
35
Arquitectura CISC
36
Arquitectura RISC
37
Arquitectura RISC
38
Set de instrucciones complejo: Set de instrucciones reducido: en INTEL cerca de 320 PIC gama media 32 instrucciones instrucciones Multipropsito: operaciones Propsito lgicas, operaciones programados aritmticas, multimedia concretas Costo mayor Menor costo especfico: para tareas
Requieren de dispositivos En CHIP se encuentran CPU, externos para funcionar: reloj, memorias, reloj interno memorias, tarjetas I/O
memoria de interna
Microprocesador vs Microcontrolador
40
Arquitectura de uP de 8 bits
41
Componentes de uP
Adems de la Unidad de Aritmtica y Lgica (ALU) y de la Unidad de Control (UC), los microprocesadores contienen REGISTROS. REGISTRO (register): Es el elemento ms pequeo que puede retener un dato. Usado para almacenar temporalmente informacin dentro de la CPU. Los registros pueden ser de propsito general o especializado.
42
Registros internos
REGISTRO DE PROPSITO GENERAL (generalpurpose register): Son aquellos sobre los que no existe restriccin en cuanto a su utilizacin. 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 estn dedicados a realizar alguna funcin especfica.
43
ALU y registros
7 0 7 0
REGISTRO ACUMULADOR
REGISTROS TEMPORALES
7
ALU DE 8 BITS
44
REGISTRO ACUMULADOR (accumulator): Es el registro base para las operaciones aritmticas y lgicas. Antes de la ejecucin de la instruccin contiene uno de los OPERANDOS y despus de la ejecucin es el que generalmente recibe el resultado. Tambin 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 ms de un Acumulador.
45
REGISTROS TEMPORALES O AUXILIARES (temporal registers) Son registros para uso interno de la CPU, en los que se almacena momentneamente cierta informacin y no son accesibles al programador mediante ninguna instruccin. 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.
46
REGISTRO ACUMULADOR
REGISTROS TEMPORALES
REGISTRO DE INSTRUCCIONES
7
ALU DE 8 BITS
BUS DE CONTROL
47
Registros de instrucciones
REGISTRO DE INSTRUCCIONES (instruction register): Es el registro donde se almacena el CDIGO DE LA OPERACIN de la instruccin que se esta ejecutando, una vez que es trado 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 instruccin que se encuentra en el Registro de Instrucciones, en base a una memoria ROM que contiene microinstrucciones que controlan la ejecucin de las instrucciones.
48
CIRCUITOS LGICOS GENERADORES DE TIEMPO Y CONTROL (timming and control circuits): Son los circuitos encargados de generar las seales tanto internas como externas que permiten ejecutar las instrucciones. A estos circuitos tambin llegan las seales externas como las de inicializacin, las de espera, las de interrupciones, etc. Es decir, es el bloque que esta directamente relacionado con el Bus de Control.
49
BUS DE DATOS
7
BUS DE DATOS INTERNO (8 BITS)
D7D0
0
REGISTRO ACUMULADOR
REGISTROS TEMPORALES
REGISTRO DE INSTRUCCIONES
7
ALU DE 8 BITS
0
DECODIFICADOR DE INSTRUCCIONES
50
BUS DE CONTROL
Buses
BUS INTERNO (internal bus): Es el bus de comunicaciones entre los distintos componentes del microprocesador, se lo conoce tambin como el BUS INTERNO DE DATOS. El nmero de lneas que posee este bus esta determinado por el nmero de bits que procesa en paralelo la ALU y es uno de los parmetros que clasifican a los microprocesadores. Este bus se encuentra relacionado con el bus externo de datos a travs del BUFFER DEL BUS DE DATOS.
51
BUS DE DATOS
7
BUS DE DATOS INTERNO (8 BITS)
D7D0
0
REGISTROS ESPECIALIZADOS
REGISTRO ACUMULADOR
REGISTROS TEMPORALES
REGISTRO DE INSTRUCCIONES
REGISTROS DE PROPSITO GENERAL REGISTROS NDICES REGISTRO CONTADOR DEL PROGRAMA (PC) REGISTRO PUNTERO DE LA PILA (SP)
7
ALU DE 8 BITS
15
CIRCUITOS LGICOS GENERADORES DE TIEMPO Y DE CONTROL
BUS DE CONTROL 52
Contador de programa
CONTADOR DEL PROGRAMA (program counter PC): Es el que contiene la direccin de la localidad donde se encuentra la siguiente instruccin a ser ejecutada. PUNTERO DE LA PILA (stack pointer SP): Contiene la direccin de la memoria donde se almacen el ltimo dato de la PILA o STACK. REGISTRO NDICE (index register): Tambin contiene una direccin y es utilizado como puntero. El uso de este registro permite que los programas sean ms flexibles, ya que para acceder a distintas localidades de memoria, basta especificar un valor que sumado al contenido del registro ndice da la direccin real.
53
BUS DE DATOS
7
BUS DE DATOS INTERNO (8 BITS)
D7D0
0
REGISTROS ESPECIALIZADOS
REGISTRO ACUMULADOR
REGISTROS TEMPORALES
REGISTRO DE INSTRUCCIONES
7
ALU DE 8 BITS
0
DECODIFICADOR DE INSTRUCCIONES
15
CIRCUITOS LGICOS GENERADORES DE TIEMPO Y DE CONTROL
BUS DE CONTROL 54
BUS DE DIRECCIONES
A15...A0
55
Arquitectura RISC
56
31/01/2013
Segmentacin PIPE-LINE
La segmentacin permite al procesador realizar al mismo tiempo la ejecucin de una instruccin y la bsqueda del cdigo de la siguiente. De esta forma se puede ejecutar cada instruccin en un ciclo (en los PIC cada ciclo de instruccin son cuatro ciclos de reloj). Durante la fase de bsqueda, la direccin de la instruccin la proporciona el PC, el cual normalmente se autoincrementa en la mayora de las instrucciones, excepto en las de salto.
57
31/01/2013
Ciclo de instruccin
El registro Program Counter (PC) es gobernado por el ciclo de instruccin. Cada ciclo de instruccin la CPU lee (ciclo Fetch) la instruccin guardada en la memoria de programa apuntada por PC y al mismo tiempo ejecuta la instruccin anterior, esto debido a una cola de instrucciones que le permite ejecutar una instruccin mientras lee la prxima.
58
31/01/2013
Ciclo de instruccin
59
31/01/2013
Ciclo de instruccin
Como puede verse, cada ciclo de instruccin: (Tcy = 4Tosc) Se compone a su vez de cuatro ciclos del oscilador Tosc= 1/Fosc. Cada ciclo Q provee la sincronizacin para los siguientes eventos:
Q1: Decodificacin de la instruccin Q2: Lectura del dato (si lo hay) Q3: Procesa el dato Q4: Escribe el dato
Debido a esto cada ciclo de instruccin consume 4 ciclos de reloj, de manera que si la frecuencia de oscilacin es Fosc, Tcy ser 4/Fosc.
60 Arquitectura de Sistemas Microprocesados 31/01/2013
Segmentacin PIPE-LINE
61
31/01/2013
Objetivo:
62
Microcontroladores
Registros
Un registro o una celda de memoria es un circuito electrnico que puede memorizar el estado de un byte.
63
Microcontroladores
Registro SFR
Registros de funciones especiales, cada bit configura los circuitos internos del microcontroladores que se conectan a travs de los pines a los perifricos.
64
Microcontroladores
Conectan los circuitos internos con los perifricos. Son configurable s bit a bit. Carga mxima (1020mA)
Microcontroladores
65
UNIDAD DE MEMORIA
66
Microcontroladores
UNIDAD DE MEMORIA
67
Microcontroladores
Memoria en PIC
68
Microcontroladores
69
Decodificador de instrucciones: decodifica las instrucciones del programa y acciona otros circuitos Unidad lgica aritmtica (Arithmetical Logical Unit - ALU) realiza todas las operaciones matemticas y lgicas sobre datos Acumulador o registro de trabajo. Microcontroladores
Bus
70
El bus est formado por 8, 16 o ms cables. Dos tipos de buses: Bus de direcciones Bus de datos.
Microcontroladores
COMUNICACIN EN SERIE
Permite conectar un uC con un perifrico utilizando un mnimo nmero de cables, lo que permite el alcance de mayores distancias.
71
Microcontroladores
La velocidad de transmisin serial (baud rate) es el trmino utilizado para denotar el nmero 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 transmisin serial es 300 bps un mximo de 37 y un mnimo de 27 bytes se pueden transmitir por segundo.
72
Microcontroladores
(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 estn normalmente en la misma placa de circuito impreso). La conexin se establece por medio de dos lneas - una se utiliza para transmitir los datos, mientras que la otra se utiliza para la sincronizacin (la seal de reloj).
Microcontroladores
73
74
Microcontroladores
SPI (SERIAL PERIPHERAL INTERFACE BUS) - BUS SERIAL DE INTERFAZ DE PERIFRICOS Es un sistema para la comunicacin serial que utiliza hasta cuatro lneas (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 conexin full duplex, lo que significa que los datos se envan y se reciben simultneamente. La velocidad de transmisin mxima es mayor que en el sistema de conexin I2C.
Microcontroladores
75
ASYNCHRONOUS
UART (UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER) - TRANSMISORRECEPTOR ASNCRONO UNIVERSAL Este tipo de conexin es asncrona, lo que significa que no se utiliza una lnea especial para transmitir la seal de reloj. Tanto el receptor como el transmisor reciben y envan los datos a velocidad misma que ha sido predefinida para mantener la sincronizacin necesaria. Esto es una manera simple de transmitir datos puesto que bsicamente representa una conversin de datos de 8 bits de paralelo a serial. La velocidad de transmisin no es alta, es hasta 1 Mbit/sec.
Microcontroladores
76
OSCILADOR
Se configura normalmente de tal manera que utilice un cristal de cuarzo o resonador cermico para estabilizacin de frecuencia. Adems, puede funcionar como un circuito autnomo (como oscilador RC).
77
Microcontroladores
CIRCUITO DE ALIMENTACIN
Brown out es un estado potencialmente peligroso que ocurre al apagar el microcontrolador o en caso de que el voltaje de la fuente de alimentacin salga de unos mrgenes debido al ruido elctrico. 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) lgico 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.
Microcontroladores
78
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
79
Microcontroladores
80
Los pulsos generados por el oscilador de cuarzo son llevados al circuito una vez por cada ciclo de mquina directamente o por el pre-escalador, lo que aumenta el nmero en el registro del temporizador. Microcontroladores
EL
Un pre-escalador es un dispositivo electrnico utilizado para dividir la frecuencia por un factor predeterminado. Esto quiere decir que se necesita llevar 1, 2, 4 o ms pulsos a su entrada para generar un pulso a la salida.
Microcontroladores
81
EL
Si el registro del temporizador es de 8 bits, el mayor nmero que se puede escribir en l es 255. Si se excede este nmero, el temporizador se reinicia automticamente y el conteo comienza de nuevo en cero. Esto es denominado desbordamiento o sobreflujo (overflow).
Microcontroladores
82
TEMPORIZADOR (WATCHDOG)
PERRO
GUARDIN
83
El perro guardin es un temporizador conectado a un oscilador RC completamente independiente dentro del microcontrolador. Si el perro guardin est habilitado, cada vez que cuenta hasta el mximo valor en el que ocurre el desbordamiento del registro se genera una seal de reinicio del microcontrolador y la ejecucin de programa inicia en la
Microcontroladores
CONVERTIDOR
A/D
Un convertidor analgico-digital es un circuito electrnico encargado de convertir las seales continuas en nmeros digitales discretos. En otras palabras, este circuito convierte un nmero real en un nmero binario y se lo enva a la CPU para ser procesado.
84
Microcontroladores
85
Microcontroladores
CONVERTIDOR
A/D
Resolucin depende del nmero de BITS. A mayor nmero de BITS, menor error.
86
Microcontroladores
87
31/01/2013
Caractersticas PIC16F887
Arquitectura RISC Los datos se pueden grabar ms de 1.000.000 veces 35 instrucciones Instrucciones son uni-ciclo excepto por las 368 bytes de memoria RAM de ramificacin Convertidor A/D: Frecuencia de operacin 0-20 MHz 14 canales Oscilador interno de alta precisin resolucin de 10 bits Rango de frecuencia de 8MHz a 31KHz 3 temporizadores/contadores seleccionado por software independientes Voltaje de la fuente de alimentacin de 2.0V Temporizador perro guardin a 5.5V Mdulo comparador analgico con Consumo: 220uA (2.0V, 4MHz), 11uA (2.0 Dos comparadores analgicos V, 32 KHz) 50nA (en modo de espera) Referencia de voltaje fija (0.6V) Ahorro de energa en el Modo de Referencia de voltaje programable en el suspensin chip 35 pines de entrada/salida Mdulo PWM incorporado Resistencias pull-up programables Mdulo USART mejorado individualmente por software Soporta las comunicaciones seriales RS Interrupcin al cambiar el estado del pin 485, RS-232 y LIN2.0 Memoria ROM de 8K con tecnologa FLASH Auto deteccin de baudios El chip se puede re-programar hasta Puerto Serie Sncrono Maestro (MSSP) 100.000 veces Soporta los modos SPI e I2C Opcin de programacin serial en el circuito 256 bytes de memoria EEPROM 88 Arquitectura de Sistemas 31/01/2013 Microprocesados
La mayora de los pines del microcontrolador PIC16F887 son multipropsito. Por ejemplo, la asignacin 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 analgica Vref+ Referencia positiva de voltaje C1IN+ Entrada positiva del comparador C1
Estas funciones de los pines no se pueden utilizar simultneamente, sin embargo se pueden cambiar en cualquier instante durante el funcionamiento mediante SW.
89 Arquitectura de Sistemas Microprocesados 31/01/2013
Memoria en PIC16F887
Memoria ROM:
El PIC16F887 tiene 8Kb de memoria ROM (en total 8192 localidades). Como la memoria ROM est fabricada con tecnologa FLASH, su contenido se puede cambiar al proporcionarle un voltaje de programacin especial (13V). El contenido de esta memoria est permanentemente guardado al apagar la fuente de alimentacin. 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.
Arquitectura de Sistemas Microprocesados 31/01/2013
Memoria EEPROM:
90
Memoria en PIC16F887
Memoria RAM: Se compone de dos partes: registros de propsito 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 alimentacin, adems estn fabricados de la misma forma y se comportan de la manera similar.
91 Arquitectura de Sistemas Microprocesados 31/01/2013
Sistema de interrupciones
Al aparecer una peticin de interrupcin lo primero que hace el microcontrolador es ejecutar la instruccin actual despus de que se detiene el proceso de ejecucin de programa. Como resultado, la direccin de memoria de programa actual se apila automticamente y la direccin por defecto (predefinida por el fabricante) se escribe en el contador de programa. La localidad en la que el programa contina con la ejecucin se le denomina vector de interrupcin. En el caso del microcontrolador PIC16F887 esta direccin es 0x0004h.
Al reconocer la fuente de interrupcin y al terminar de ejecutar la rutina de interrupcin el microcontrolador alcanza la instruccin RETFIE, toma la direccin de la pila y contina con la ejecucin de programa desde donde se interrumpi.
MIKROC reconoce una rutina de interrupcin que se ejecutar como la funcin void interrupt(). El cuerpo de la funcin, o sea, rutina de interrupcin, debe ser escrito por el usuario.
92
cnt++ ;
Sistema de interrupciones
93
31/01/2013
Contiene el estado aritmtico de datos en el registro W, el estado RESET, los bits para seleccionar el banco para los datos de la memoria. IRP - Registro de seleccin 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 seleccin de banco usado para direccionamiento directo. TO - Time-out bit bit de salida del temporizador perro guardin 1 - Despus de encender el uC, o ejecutarse CLRWDT o ejecutarse la instruccin SLEEP 0 - Despus de acabarse el tiempo del WDT. PD - Power-down bit: 1 - Despus de encender el microcontrolador, despus de ejecutar la instruccin CLRWDT, 0 Despus de ejecutarse la instruccin SLEEP que pone al microcontrolador en el
modo de bajo consumo. Z - Zero bit (bit cero): 1 - El resultado de una operacin lgica o aritmtica es 0; 0 El resultado de una operacin lgica o aritmtica es distinto de 0. DC - Digit carry/borrow bit (bit de acarreo/prstamo de dgito) 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 ms significativo (MSB) del resultado. 0 - No ocurri acarreo en el bit ms significativo (MSB) del resultado.
IRP 7
94
RP1 6
RP0 5
TO 4
PD 3
Z 2
DC 1
C 0
31/01/2013
ADCON1 = 6; \\ instruccin indispensable para usar el puerto A y el puerto E como entrada o salida de datos digitales TRISA = 0b01110000; TRISA = 0x70; TRISA = 112;
96
31/01/2013
97
31/01/2013
98
31/01/2013
Objetivos: Establecer parmetros de medicin e interface mediante el estudio de acondicionamiento de seales a microcontroladores. El control de procesos depende de la obtencin de informacin de entrada, su evaluacin y la ejecucin de la accin correspondiente. En control industrial, la mayora de las veces la informacin de entrada involucra el monitoreo de dispositivos de campo que admiten dos estados posibles. Un interruptor es un ejemplo comn de dispositivo de dos estados. O est abierto o est cerrado.
Microcontroladores
99
Acondicionamiento de seales
100
Microcontroladores
101
102
Microcontroladores
Interruptor reflectivo
103
Microcontroladores
Microcontroladores se conectan a cargas elctricas mayores mediante dispositivos actuadores, cumpliendo secuencias, considerando retardos debido a inercias mecnicas, retardos en activaciones, etc
104 Microcontroladores
105
Microcontroladores
106
Microcontroladores
107
Sensores de temperatura
Transductores: convierten seales fsicas en seales elctricas. Sensores: miden seales sin convertirlas en otra magnitudes, contienen a los transductores
108
Microcontroladores
109
Microcontroladores
110
Microcontroladores
Objetivos:
Definir la estructura de un programa en C mediante la descripcin de etapas en lenguaje de alto nivel para microcontroladores
111
Lenguajes de programacin
El uC ejecuta el programa cargado en la memoria Flash, se denomina el cdigo ejecutable. Dependiendo de la arquitectura, el cdigo binario est compuesto por palabras de 12, 14 o 16 bits de anchura, que se interpreta por la CPU como una instruccin a ser ejecutada durante el funcionamiento. Se les denominan Conjunto de instrucciones. El cdigo ejecutable se representa con nmeros hexadecimales denominada cdigo Hex. En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35 instrucciones diferentes.
112
Microcontroladores
Las instrucciones consisten en abreviaturas con significado y a cada instruccin corresponde una localidad de memoria. Un programa denominado ensamblador compila (traduce) las instrucciones del lenguaje ensamblador a cdigo mquina (cdigo 113
Microcontroladores
Desventajas de ASSEMBLER
Una sola operacin en ensamblador consiste en muchas instrucciones, hacindolo muy largo y difcil 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.
114
Microcontroladores
115
Microcontroladores
Lenguaje C
El lenguaje C dispone de todas las ventajas de un lenguaje de programacin de alto nivel (anteriormente descritas) y le permite realizar algunas operaciones tanto sobre los bytes como sobre los bits (operaciones lgicas, desplazamiento etc.). C est estandarizado (el estndar ANSI)
116
Microcontroladores
Este lenguaje es muy similar al C estndar, no obstante en determinados aspectos difiere del ANSI estndar en algunas caractersticas. Algunas de estas diferencias se refieren a las mejoras, destinadas a facilitar la programacin de los microcontroladores PIC, mientras que las dems son la consecuencia de la limitacin de la arquitectura del hardware de los PIC
117
Microcontroladores
FASES DE COMPILACIN
118
El archivo fuente contiene el cdigo en MIKROC. El preprocesador se utiliza automticamente por el compilador al iniciarse el proceso de la compilacin. El compilador busca las directivas del preprocesador (que siempre empiezan por #) dentro del cdigo y modifica el cdigo fuente de acuerdo con las directivas. En esta fase se llevan a cabo inclusin de archivos, definicin de constantes y macros etc, lo que facilita el proceso. El analizador sintctico (parser) elimina toda la informacin intil del cdigo (comentarios, espacios en blanco). Compilador traduce el cdigo a un archivo binario denominado archivo .mcl. El enlazador (linker) recupera toda la informacin requerida para ejecutar el programa de los archivos externos y la agrupa en un solo archivo (.dbg). Adems, un proyecto puede contener ms de un archivo fuente y el programador puede utilizar funciones predefinidas y agrupadas dentro de los archivos denominados libreras. Por ltimo, el generador .hex produce un archivo .hex. Es el archivo que se va a cargar en el microcontrolador.
Microcontroladores
FASES DE COMPILACIN
119
Microcontroladores
ESTRUCTURA DE PROGRAMA
Por ejemplo: 1. Activar y configurar el convertidor A/D incorporado; 2. Medir el valor analgico; 3. Calcular temperatura; y 4. Enviar los datos en el formato apropiado al LCD.
120 Microcontroladores
ESTRUCTURA DE PROGRAMA
121
Microcontroladores
122
Microcontroladores
Datos en MIKROC
Cada dato utilizado en el programa debe tener su tipo especificado. Esto permite al compilador conocer el tamao de dato (nmero de bytes requerido en la memoria) y su representacin. Hay varios tipos de datos que se pueden utilizar en el lenguaje de programacin mikroC dependiendo del tamao de dato y del rango de valores.
123
Microcontroladores
Datos en MIKROC
Al aadir un prefijo (calificador) a cualquier tipo de dato entero o carcter, el rango de sus posibles valores cambia as como el nmero 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 slo positivo. Note que el prefijo es opcional.
124
Microcontroladores
Hexadecimal: el nmero empieza con 0x (o 0X). Decimal (base 10): El primer dgito no puede ser 0. En este formato, se puede introducir el signo de nmero (+ 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
125
Microcontroladores
El tipo punto flotante (float) se utiliza para los nmeros reales con el punto decimal. Los datos de tipo float se pueden representar de varias maneras. Un dato float es siempre consigno (signed).
126
Microcontroladores
El tipo char es considerado como un entero por el compilador. No obstante, se utiliza normalmente para los datos de tipo carcter. Un dato de tipo carcter est encerrado entre comillas y codificado en un carcter ASCII.
127
Microcontroladores
VARIABLES Y CONSTANTES
Una variable es un objeto nombrado capaz de contener un dato que puede ser modificado durante la ejecucin 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.
128
Microcontroladores
VARIABLES Y CONSTANTES
Una constante tiene las mismas caractersticas que una variable excepto el hecho de que su valor asignado no puede ser cambiado durante la ejecucin 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 automticamente el tipo de dato de una constante, as que no es necesario especificar el tipo adicionalmente.
129
Microcontroladores
Declaracin 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 ms bytes)
<tipo> variable1, variable2, variable3; unsigned int peso ; // Declarar una variable llamada peso peso = 20 ; // Asignar el valor 20 a la variable ;peso
130
Microcontroladores
Declaracin 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 declaracin. Dos siguientes declaraciones son equivalentes:
const int MINIMUM = -100; // Declarar constante MINIMUM const MINIMUM = -100; // Declarar constante Microcontroladores MINIMUM
131
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.
132
Microcontroladores
OPERADORES
Un operador es un smbolo que denota una operacin aritmtica, lgica u otra operacin particular. Operador aritmtico: +, -, *, /, % Operador de asignacin: asignan valores a las variables
133
Microcontroladores
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 expresin. De lo contrario, la variable se utilizar en la expresin antes de ser aumentada por 1. Lo mismo se aplica a la operacin de decremento.
134
Microcontroladores
Operadores
OPERADORES RELACIONALES Los operadores relacionales se utilizan en comparaciones con el propsito de comparar dos valores. En mikroC, si una expresin es evaluada como falsa (false), el operador devuelve 0, mientras que si una oracin es evaluada como verdadera (true), devuelve 1.
135
Microcontroladores
Operadores
OPERADORES LGICOS Hay tres tipos de operaciones lgicas en el lenguaje C: Y (AND) lgico, O (OR) lgico y negacin - NO (NOT) lgico. Los operadores lgicos devuelven verdadero (1 lgico) si la expresin evaluada es distinta de cero. En caso contrario, devuelve falso (0 lgico) si la expresin evaluada equivale a cero.
136
Microcontroladores
Operadores
OPERADORES DE MANEJO DE BITS A diferencia de las operaciones lgicas 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:
137
Microcontroladores
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 expresin. En otras palabras, Si se cumple la condicin (...), se debe hacer (...). De lo contrario, si la condicin 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.
Microcontroladores
138
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(expresin) operacin;
139
if(expresin) operacin1 else operacin2; Si operacin1 u operacin2 est compuesta, escriba una lista de sentencias encerradas entre llaves. Por ejemplo: if(expresin) { ... // ... // operacin1 ...} // else operacin2
Microcontroladores
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:
140
Microcontroladores
A menudo es necesario repetir una cierta operacin un par de veces en el programa. Un conjunto de comandos que se repiten es denominado un bucle de programa. Cuntas veces se ejecutar, es decir cunto tiempo el programa se quedar en el bucle, depende de las condiciones de salir del bucle.
BUCLES
while(1){ // En vez de "while(1)", se puede escribir "while(true)" ... // Expresiones encerradas entre llaves se ejecutarn ... // repetidamente (bucle infinito) } 141 Microcontroladores
BUCLES
Bucle For El bucle for se parece a lo siguiente: for(expresin_inicial; expresin_de_condicin; cambiar_expresin) { operaciones ... } La ejecucin de esta secuencia de programa es similar al bucle while, salvo que en este caso el proceso de especificar el valor inicial (inicializacin) se realice en la declaracin. La expresin_ inicial especifica la variable inicial del bucle, que ms tarde se compara con la expresin_ de_condicin antes de entrar al bucle
Microcontroladores
142
Bucles
Bucle Do-while El bucle do-while se parece a lo siguiente: do operacin while (cambiar_condicin); La expresin cambiar_condicin se ejecuta al final del bucle, que significa que operacin se ejecuta como mnimo una vez sin reparar en que si la condicin es verdadera o falsa. Si el resultado es distinto de 0 (verdadero), el procedimiento se repite.
143
Microcontroladores
Ejemplos de bucles
144
Microcontroladores
Ejemplos de bucles
145
Microcontroladores
Ejemplos de bucles
146
Microcontroladores
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 tambin. En stas la sentencia break se utiliza para salir de las sentencias switch si la condicin case es verdadera. En este ejemplo, Esperar est parpadeando en la pantalla LCD hasta que el programa detecte un uno lgico en el pin 0 del puerto PORTA.
147
Microcontroladores
Sentencias de salto
148
Microcontroladores
Sentencias de salto
SENTENCIA CONTINUE La sentencia continue colocada dentro de un bucle se utiliza para saltar una iteracin. A diferencia de la sentencia break, el programa se queda dentro del bucle y las iteraciones continan.
149
Microcontroladores
Sentencias de salto
SENTENCIA GOTO La sentencia goto le permite hacer un salto absoluto al otro punto en el programa. Esta caracterstica se debe utilizar con precaucin ya que su ejecucin puede causar un salto incondicional sin hacer caso a todos los tipos de limitaciones de anidacin. El punto destino es identificado por una etiqueta, utilizada como un argumento para la sentencia goto. Una etiqueta consiste en un identificador vlido seguido por un colon (:).
Microcontroladores
150
Sentencias de salto
151
Microcontroladores
FUNCIONES
Una funcin 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 ms facilidad. Una funcin se ejecuta cada vez que se llame dentro de otra funcin. En C, un programa contiene como mnimo una funcin, la funcin main(), aunque el nmero de funciones es normalmente mayor. Al utilizar funciones el cdigo se hace ms corto ya que es posible llamar una funcin tantas veces como se necesite. En C, el cdigo normalmente consiste en muchas funciones.
Microcontroladores
152
Ejemplos de funciones
char Binario_7seg(char digit); Proceso en la funcin: char Binario_7seg(char digit){ switch (digit) { case 0: return 0x3F; 0. case 1: return 0x06; 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; }
//funcin 7 segmentos
//Definicin de la funcin.
153
31/01/2013
Ejemplos de funciones
Funcin BUTTON: elimina el efecto de rebote (BOUNCING) que se produce al presionar un pulsador. Instruccin:
(Button(&PORTA,4,1,0)) Parmetros: &PORTA: puerto de conexin del pulsador 4: Pin del puerto 1: Tiempo de retardo en milisegundos 0: nivel lgico cuando est presionado
154
31/01/2013
Ejemplos de funciones
155
31/01/2013
156
31/01/2013
157
31/01/2013
_LCD_RETURN_HOME _LCD_CURSOR_OFF
_LCD_UNDERLINE_ON _LCD_BLINK_CURSOR_ON _LCD_MOVE_CURSOR_LEFT _LCD_MOVE_CURSOR_RIGHT _LCD_TURN_ON _LCD_TURN_OFF _LCD_SHIFT_LEFT _LCD_SHIFT_RIGHT 158
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;
159 Arquitectura de Sistemas Microprocesados 31/01/2013
RS RW E 4 5 6
1 2 3
C1
22p
U2 X1
4MHz 13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
C2
22p
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A
160
7 8 9 10 11 12 13 14
31/01/2013
D0 D1 D2 D3 D4 D5 D6 D7
void main(){ Lcd_Init(); 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'); Lcd_Chr(2,8,'2'); Lcd_Chr(2,15, '3'); // Lcd_Cmd(_LCD_CURSOR_OFF); while(1) { } }
//Inicializa el LCD.
//Apaga cursor
161
31/01/2013
Char Texto1[20]= Sistemas void main(){ Lcd_Init(); LCD. Lcd_Out_Cp(Seminario UTSAM); Lcd_Out(2,1,Texto1); // Lcd_Cmd(_LCD_CURSOR_OFF); cursor while(1) { } }
162 Arquitectura de Sistemas Microprocesados
//Inicializa el
//Apaga
31/01/2013
Librera CONVERSIONS: conversin de valor numrico a lnea de caracteres. IntToStr(Entrada entera, Salida caracteres) FloatToStr(entrada flotante, Salida carcteres)
163
31/01/2013
char Texto1[20]="Sistemas"; int Entero=123; float Decimal=3.14; void main(){ Lcd_Init(); 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) { } }
164
//Inicializa el LCD.
31/01/2013
Se presiona un pulsador conectado a RA4, lo que provoca el incremento de un contador que se visualiza en el centro de la segunda lnea, si supera el conteo de 100, se reinicia el registro contador en 0. Uso de funciones:
165
31/01/2013
Contador en LCD
166
31/01/2013
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 mdulos seriales como: IC, SPI, USART, y USB.
167
31/01/2013
Comunicaciones Seriales
IC es ideal para la comunicacin 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, mdulos de transmisin y recepcin XBee, ordenadores personales, mdulos GPS, y otros micros. USB que est incorporado en unos pocos micros, como el 18F2550, y el 18F4550, permite hacer la comunicacin con un ordenador personal por medio de un puerto USB, definido como HID o dispositivo 168 Arquitectura de Sistemas 31/01/2013 de interfaz humana. Microprocesados
Modulo serial IC
MikroC contiene una librera para este protocolo denominada I2C El protocolo IC, se caracteriza por tener una lnea de datos bidireccional y una lnea 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 condicin de inicio, un bloque de direccin para los dispositivos en la red, un bloque de datos y una condicin de fin. De igual manera usa las condiciones de repeticin de inicio y un bit de reconocimiento o acknowledge denotado como ACK.
169 Arquitectura de Sistemas Microprocesados 31/01/2013
Microprocesados
unsigned short I2C1_Rd(unsigned short ack): lee un dato del bus de datos y enva la confirmacin ack por el bus. Si ack vale 1 la confirmacin es positiva y si es 0 la confirmacin es negativa o NO ACK. unsigned short I2C1_Wr(unsigned short data ): est funcin enva el dato data por el bus y retorna 0 si la transmisin fue exitosa, o algo diferente de 0 si suceden errores. void I2C1_Stop(void): Genera la condicin de final en el bus de comunicacin.
171
31/01/2013
Escritur a
Lectura
172
31/01/2013
173
31/01/2013
Mdulo USART
Comunicacin serial asncrona Requiere un solo medio de transmisin para enviar informacin, y no requiere un medio para el reloj o sincronismo; lo deben asumir independientemente cada uno de los elementos, el transmisor y el receptor. Comunicacin full-duplex, para este propsito se usan dos medios de transmisin dedicados, uno solo para transmitir y uno solo para recibir. Velocidad de transmisin debe estar definida con el mismo valor en los dos dispositivos que se comunican, est por defecto en casi toda comunicacin es de 9600 bps.
174 Arquitectura de Sistemas Microprocesados 31/01/2013
La comunicacin sncrona cuenta con las siguientes caractersticas: un bit de inicio o de start, que siempre es un 0 lgico, 8 o 9 bits de datos para el caso puntual de los PIC, y 1, 1.5 o 2 bits de fin o stop.
175
31/01/2013
Protocolo RS-232
Este protocolo se conoce como RS232 Los niveles de tensin elctrica son diferentes al microcontrolador. El protocolo RS232, representa el valor de un 0 lgico con una tensin de +12 voltios, y el valor de un 1 lgico con -12 voltios. Se usa un conector DB9, que tiene 9 pines.
176
31/01/2013
177
31/01/2013
CI MAX-232
178
31/01/2013
UART1_Init(const unsigned long baud_rate): Est funcin inicializa el mdulo USART, y establece la velocidad de comunicacin definida en el parmetro: baud_rate. char UART1_Data_Ready(): determina si hay un dato listo para ser ledo, en el bfer de llegada del mdulo, si la funcin retorna 1 el dato puede ser ledo, de lo contrario no hay datos nuevos en el bfer. char UART1_Tx_Idle(): establece si el bfer de transmisin se encuentra ocupado enviando un dato, para esto retorna 1 si el bfer est ocupado, o 0 si el mdulo est disponible para enviar un nuevo dato. char UART1_Read(): retorna el valor del bfer de entrada, es decir que sirve para leer un dato de entrada.
179 Arquitectura de Sistemas Microprocesados 31/01/2013
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 parmetro Attempts, define la longitud de la cadena de caracteres del delimitador de fin de cadena Delimiter.
180
31/01/2013
UART1_Write(char _data): transmite el dato _data ingresado en el parmetro de entrada, por la USART. UART1_Write_Text(char * UART_text): Transmite una cadena de texto finalizada con el carcter nulo o 0. Est cadena de texto es entregada por medio del parmetro UART_text.
181
31/01/2013
182
31/01/2013
Objetivo: Definir los modos de funcionamiento de mdulo UART de microcontroladores PIC, mediante configuracin de parmetros de comunicacin con PC para diseo de aplicaciones bsicas. Actividad: Testeo de BITS en puerto B y presentacin de estado en monitor de PC.
183
31/01/2013
J1 U1 X1
13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 5 9 4 8 3 7 2 6 1 3 C1T1OUT R1IN T2OUT R2IN VS+ VSC2+ 4 C214 13 7 8 2 6 1u TXD
C7
22p
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A
DSW1
8 7 6 5
OFF ON
1 2 3 4
+
1 C1+ 11 12 10 9 T1IN R1OUT T2IN R2OUT
C1
1u
U2
CONN-D9M RXD
DIPSW_4
+5V
RTS
C3
CTS
C2
1u
MAX232 5
C5 C4
1u 1u
184
31/01/2013
Actividad grupal
Los estudiantes disearan la siguiente aplicacin 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 despus de 3 segundos LED2 Al enviar 0: desactiva cualquiera de los LEDS activos
185
31/01/2013
Mdulo USB
186
31/01/2013
Mdulo USB
Disponible en PIC como 18F2550 y 18F4550, destinan pines exclusivos para esta comunicacin. La conexin USB puede entregar una alimentacin de 5 voltios con una corriente mxima de 500mA, esto significa que si el desarrollo no supera este consumo, no es necesario implementar una fuente de poder externa. Para la simulacin es necesario activar puerto virtual de PROTEUS ISIS, en la siguiente direccin:
DRIVERS vlidos para sistemas operativos de 32 BITS. 187 Arquitectura de Sistemas 31/01/2013
Microprocesados
Esquema de simulacin
188
31/01/2013
Configura el mdulo USB, y establece la comunicacin con la computadora. Incluye los parmetros de entrada readbuff y writebuff, que son apuntadores a los arreglos de memoria que guardan y transmiten la informacin por el puerto USB. Retorna la cantidad de datos listos para ser ledos del puerto USB.
*writebuff,
Escribe en el puerto USB, la cantidad de bytes definidos en el parmetro len, que estn consignados en el apuntador writebuff. Deshabilita el uso del puerto USB.
Arquitectura de Sistemas Microprocesados 31/01/2013
void Hid_Disable(void);
189
Realizar actividad por estudiante establecida en documento PDF respecto a comunicacin USB entre PIC y puerto virtual.
190
31/01/2013
La Modulacin por Ancho de Pulso (PWM = Pulse Width Modulation) es una tcnica para simular una salida analgica con una salida digital. El control digital se usa para crear una onda cuadrada, una seal que conmuta constantemente entre encendido y apagado. Este patrn de encendido-apagado puede simular voltajes entre 0 (siempre apagado) y 5 voltios (siempre encendido) simplemente variando la proporcin de tiempo entre encendido y apagado. A la duracin del tiempo de encendido (ON) se le llama Ancho de Pulso (pulse width). Para variar el valor analgico cambiamos, o modulamos, ese ancho de pulso.
191 Arquitectura de Sistemas Microprocesados 31/01/2013
PWM
192
31/01/2013
PWM en PIC
En este modo, el pin CCP1 produce una salida PWM de hasta 10 bits de resolucin, se tienen hasta 1024 opciones de configuracin del ciclo de trabajo. Este pin tiene que configurarse como salida por medio del registro TRISB. Se caracteriza por una base de tiempo (perodo) y un tiempo durante el cual la salida tiene un nivel alto (ciclo de trabajo). La frecuencia es el inverso del perodo.
193
31/01/2013
PWM en PIC
El perodo se especifica escribiendo en el registro PR2 y se puede calcular con la siguiente frmula:
Cuando TMR2 es igual a PR2, se producen los tres siguientes eventos en el prximo ciclo de incremento:
194
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.
Arquitectura de Sistemas Microprocesados 31/01/2013
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 frmula permite el clculo 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 perodo). En el modo PWM, el registro CCPR1H es de 195 Arquitectura de Sistemas 31/01/2013 solo lectura. Microprocesados
La mxima resolucin PWM (bits) para una determinada frecuencia PWM est dada por la siguiente frmula:
196
31/01/2013
Microprocesados
Ejemplo PWM
Con una frecuencia de oscilador (FOSC) de 4MHz se tiene un perodo (TOSC) de 0,25 us; si el prescaler del Timer2 tiene un valor de 1, entonces se pueden calcular los perodos mnimo y mximo PWM y las frecuencias mxima y mnima permitidas, respectivamente. El perodo mnimo se obtiene cuando el registro PR2 tiene un valor de 0, por lo tanto: TPWMmn=(0+1)x4x0,25x1=1 us Y la frecuencia mxima ser: fPWMmx=1MHz El perodo mximo se obtiene cuando el registro PR2 tiene un valor de 255: TPWMmx=(255+1)x4x0,25x1=256 us Y la frecuencia mnima ser:fPWMmn=3.906Hz En el siguiente ejemplo se trabaja con una frecuencia PWM de 5kHz.
198 Arquitectura de Sistemas Microprocesados 31/01/2013
Esquema PWM
LCD1
LM016L
RS RW E 4 5 6
+5V
1 2 3 7 8 9 10 11 12 13 14 RB1 RB2 RB0 RB3
(+)
D0 D1 D2 D3 D4 D5 D6 D7
12V
RB[4..1]
D1
1N4007
U3
13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 RB0 RB1 RB2 RB3
R2
620
U2
1 6 5 2 4
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A
Q1 R3
10 IRFZ44N
R1
10k
4N25
R4
91k
VELOCIDAD
199
31/01/2013
31/01/2013
Objetivos
Definir las etapas de conversin analgica a digital mediante la determinacin del proceso de adquisicin de datos en relacin a registros afectados lo que permitir la interpretacin de instrucciones en Lenguaje C para este procedimiento. Cmo percibe las condiciones de su entorno un sistema microcontrolado? Cmo codifica parmetros no elctricos un microcontrolador?
Reflexin:
202
31/01/2013
La familia de microcontroladores PIC16F87X, disponen de un mdulo de conversin Analgico/Digital que tiene cinco entradas para los dispositivos de 28 pines y ocho para los otros dispositivos de la familia. A travs de la entrada analgica se aplica la seal analgica a un condensador de captura y retencin (sample and hold) que despus 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.
203 Arquitectura de Sistemas Microprocesados 31/01/2013
Tomar una muestra de la seal: Es como un interruptor electrnico cuya nica funcin es dejar pasar la seal anloga a convertir, este paso ser por un pequeo instante de tiempo, solo lo necesario para que el retenedor quede cargado al mismo nivel de voltaje de la seal de entrada. Cuantificar y Codificar: Una vez que la seal esta lista en el retenedor, el modulo de control SAR (Successive-approximation-register), inicia el proceso de cuantificacin y codificacin directa.
204
31/01/2013
205
31/01/2013
Tomar una muestra de una seal anloga en un instante de tiempo, cuantificarla y darle un cdigo digital que representa la cantidad de niveles a los cuales pertenece la muestra.
206
31/01/2013
El mdulo del convertidor A/D puede seleccionar como tensin 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 mxima tensin aplicada a la patilla VREF+ (RA3/AN3) podr ser de VDD+0,3V y la mnima de VDD- 2,5V. En cuanto a la tensin VREF(RA2/AN2) la mnima tensin ser VSS-0,3V y la mxima VREF+ - 2V, as por ejemplo, si la tensin de alimentacin es de 5V, la tensin en RA3/AN3 no podr exceder de 5V. Por lo que la mxima tensin en la VREF- ser de 3V. Siempre se ha de cumplir que VREF+ - VREF 2V.
207 Arquitectura de Sistemas Microprocesados 31/01/2013
Registros en ADC
ADRESH : Parte alta del resultado de la conversin ADRESL : Parte baja del resultado de la conversin ADCON0: Registro de Control 0 ADCON1, Registro de Control 1
Los pines del PORTA pueden configurarse como entradas analgicas (RA, tambin puede ser entrada de tensin de referencia) o como E/S digital. Los registros ADRESH: ADRESL contienen los 10 bits resultado de la conversin A/D. Cuando se completa la conversin 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 conversin ADIF (PIR1<6>) se pone a 1.
208 Arquitectura de Sistemas Microprocesados 31/01/2013
2. 3.
4.
2.
1. 2. 3.
3.
209
Inicio de la conversin
Poner a 1 el bit GO/#DONE (ADCON0)
2.
1.
Tiempo de espera para terminar la conversin A/D que puede detectarse por:
Exploracin de bit GO/#DONE , que al finalizar la conversin toma el valor "0" Esperar que se produzca una interrupcin si se ha programado al finalizar la conversin.
2.
210
31/01/2013
unsigned int ADC_Read(unsigned short channel); Inicializa el mdulo A/D para operar con el oscilador interno RC. Retorna un nmero de 10 bits como resultado de la conversin.
211
31/01/2013
LM016L
RS RW E 4 5 6
VT(15V max)
1 2 3
BAT1
3.5V
R2
20k
U2
13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30
R1
10k
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A
212
31/01/2013
7 8 9 10 11 12 13 14
D0 D1 D2 D3 D4 D5 D6 D7
Objetivo: analizar el funcionamiento de sensores mediante la comunicacin con PIC en lenguaje lo que permitir el desarrollo de aplicaciones de control bsicas
Reflexin: Qu variables fsicas se pueden medir? Cmo se pueden medir estas variables? Cmo se comunican con microcontrolador?
213
31/01/2013
214
31/01/2013
Es un dispositivo activo de 3 terminales que permite adquirir la temperatura ambiente en rangos de -55 a 150 Es de fcil implementacin dado que solo cuenta con dos terminales de polarizacin, 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.
215 Arquitectura de Sistemas Microprocesados 31/01/2013
Sensor de temperatura
Para realizar la lectura del voltaje de salida del sensor se implementa en el microcontrolador el mdulo ADC. La mxima 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 anlogo digital, con el fin de mejorar la resolucin de la medida de voltaje. Para el ejemplo de este captulo se configurar el voltaje de referencia positivo del ADC, en 2,5 voltios.
216
31/01/2013
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 conversin AD. De est ecuacin se puede deducir que el voltaje Vadc, ledo por el 217 convertidor AD, es:
31/01/2013
Sensor de temperatura
Trabajando con la relacin del sensor que es: 10m voltios por cada grado Celsius, se puede plantear la siguiente ecuacin:
Donde n es la temperatura en grados Celsius, que est registrando el sensor, de est ecuacin se puede deducir que la temperatura n es:
Obtenemos la ecuacin:
218 Arquitectura de Sistemas Microprocesados 31/01/2013
219
31/01/2013
Objetivo: Caracterizar el funcionamiento de sensores de distancia mediante el tratamiento de algoritmos para deteccin de mediciones provenientes de estos sensores para su futura aplicacin en medicin de distancias
220
31/01/2013
Permiten medir una longitud desde el punto de ubicacin del sensor hasta un obstculo puesto en un punto dentro del rango de trabajo del sensor. Con un rango de 3 centmetros a 3.3 metros, es una atraccin para cualquier elemento robtico y proyectos de automatizacin. Sensor GP2D12, este dispositivo usa un rayo de luz infrarroja y su reflejo para determinar la longitud.
221
31/01/2013
222
31/01/2013
31/01/2013
Ejemplo de medicin: Tenemos y es distancia, x voltaje del sensor. Escogemos dos puntos donde la funcin se aproxime a la escogida. Resolvemos el sistema con los valores de las constantes: A = 34,76546392 B = -4,793814433
224 Arquitectura de Sistemas Microprocesados 31/01/2013
Parametrizar la funcin: x representa el voltaje de salida del sensor que no supera 2,5 voltios, la referencia del convertidor AD, se puede ajustar Remplazando 225 Vad: x por
Arquitectura de Sistemas Microprocesados 31/01/2013
226
31/01/2013
227
31/01/2013
El sensor enva un breve silbido con su altavoz ultrasnico y mide el tiempo de regreso del eco a su micrfono ultrasnico. El PIC empieza envindole un pulso para iniciar la medicin. 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 enva una seal alta al PIC. Cuando detecta el eco con su micrfono ultrasnico, cambia la seal alta de regreso a seal baja.
228 Arquitectura de Sistemas Microprocesados 31/01/2013
229
31/01/2013
Objetivos:
Describir funcionamiento de dispositivos de potencia, mediante conexin de componentes elctricos de carga a microcontrolador.
Los actuadores son dispositivos elctricos o electrnicos que permiten crear un cambio fsico sobre una variable. Est pueden ser temperatura, velocidad, presin, luminosidad, humedad, posicin angular o lineal, entre otras. Los actuadores DC, son aquellos como motores, servomotores, lmparas incandescentes, solenoides, relevadores, entre otros.
230 Arquitectura de Sistemas Microprocesados 31/01/2013
Relevadores
Son dispositivos electromecnicos, que tienen un electroimn con el cual se cierra o se abre un circuito elctrico por medio de uno o varios contactos. Los relevadores son ideales para aislar los circuitos de potencia con la etapa de control electrnico. Bajo rendimiento, dado que no pueden hacer cambios de estado veloces, y con el uso constante los contactos elctricos se deterioran con el tiempo.
231 Arquitectura de Sistemas Microprocesados 31/01/2013
232
31/01/2013
Opto acopladores:
233
31/01/2013
Motores DC
234
31/01/2013
235
31/01/2013
Motores DC
Sentido de giro:
Mediante puente H
236
31/01/2013
Se componen de varias bobinas lo que permite un control en el giro correspondiente al nmero de paso de activacin Se requiere activar un secuencia en las entradas de las bobinas. Control desde 1,8 o menos.
237
31/01/2013
238
31/01/2013
239
31/01/2013
240
31/01/2013
241
31/01/2013
Motores Servo
Son sistemas integrados que tienen un control de posicin angular, y un sistema mecnico de piones para ofrecer mayor fuerza pero menor velocidad. Un servomotor tiene incorporado un control de posicin angular, que puede ser gobernado por medio de una seal PWM, cuentan con un terminal de tres pines para la alimentacin, la referencia y la seal de control PWM.
242
31/01/2013
243
31/01/2013
244
31/01/2013
El diagrama de flujo es la representacin grfica del algoritmo o proceso. Se utiliza en disciplinas como la programacin, la economa, los procesos industriales y la psicologa cognitiva.
245 Microcontroladores: Ing. Vctor Medina G
Definicin
Es una representacin grfica 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.
246 Microcontroladores: Ing. Vctor Medina G
Ventajas
247
Favorecen la comprensin del proceso a travs de mostrarlo como un dibujo. Un buen diagrama de flujo remplaza varias pginas 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 Medina G Microcontroladores: Ing. Vctor de
Permite programar microcontroladores mediante diagramas de flujo, que se traducen en cdigo C o ASSEMBLER
248
249
31/01/2013
250
Diseo del programa fuente. Escogiendo y arrastrando los diferentes iconos de comandos disponibles, vamos dibujando el organigrama o diagrama de flujo de nuestra aplicacin. Podemos ajustar los diferentes parmetros y propiedades asociados a ellos. Diseo del sistema. Dispone de una gran variedad de perifricos tpicos como leds, interruptores, pantallas LCD, etc. Simulacin 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 simulacin en tiempo real. Descargar y grabar el microcontrolador. Con un nico botn podemos compilar, ensamblar y grabar el programa ejecutable obtenido sobre la memoria fsica del microcontrolador.
Arquitectura de Sistemas Microprocesados 31/01/2013
251
Herramientas en FLOWCODE
Herramientas de ingreso
Permite ejecutar tareas relacionadas con la adquisicin de datos procedentes de los Puertos del controlador. En el campo Variable indicamos en qu variable se va a guardar el valor ledo 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 nmeros 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.
252 Arquitectura de Sistemas Microprocesados 31/01/2013
Herramienta de salida
Permite ejecutar operaciones relacionadas con los Puertos de salida del controlador. En Mostrar Nombre podemos aadir 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. Arquitectura de Sistemas 253
Microprocesados
31/01/2013
Herramienta de temporizacin
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.
254 Arquitectura de Sistemas Microprocesados 31/01/2013
Herramienta de decisin
255
Se trata de la clsica toma de decisiones. Se realiza una determinada evaluacin y, en funcin del resultado, el flujo del programa va por un camino o por otro. En el campo En Caso de Que se establece la condicin. Esto es equivalente a evaluar si la lnea RA0 de la puerta A est a nivel lgico 1 o no. En caso afirmativo, el curso de la ejecucin se desva por la derecha. En caso contrario la ejecucin contina su curso. Podemos activar (o no) el campo Intercambiar Si y No. En este caso el desvo del curso de la ejecucin se produce si NO se da la condicin establecida.
31/01/2013
Herramienta de decisin
Las condiciones pueden estar formadas por nmeros y/o variables y uno de los siguientes operadores:
256
( ) Parntesis =, <> Igual a, diferente a. +, -, *, /, MOD Adicin, sustraccin, multiplicacin, divisin y mdulo. <, <=, >, >= 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 lgicas: NOT, AND, OR u OR exclusiva
Arquitectura de Sistemas Microprocesados 31/01/2013
258
31/01/2013
Permite establecer el punto de conexin de destino al que debe dirigirse el flujo del programa. En el campo Ir a Punto de Conexin asignamos un nombre o etiqueta del punto de destino. En el ejemplo hemos asignado la etiqueta Bucle.
259
31/01/2013
Esta herramienta se emplea junto con la anterior. Permite establecer el punto de conexin de destino al que debe dirigirse el flujo del programa. En el campo Ir a Punto de Conexin asignamos un nombre o etiqueta del punto de destino. En el ejemplo hemos asignado la etiqueta Bucle
260
31/01/2013
261
31/01/2013
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.
262
31/01/2013
Herramienta Bucle
Los comandos encerrados dentro de un bucle se pueden ejecutar mientras se produzca una condicin (Bucle Mientras) o hasta que se produzca esa condicin (Bucle Hasta). En el momento en que se cumpla esta condicin, 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 tambin se pueden ejecutar un nmero determinado de veces. Para ello, activamos e indicamos en el campo Recuento de bucle, el nmero de veces deseado (entre 1 y 255).
263 Arquitectura de Sistemas Microprocesados 31/01/2013
Herramienta MACRO
Una macro es una funcin o una subrutina, que est compuesta de cualquiera de los comandos o iconos disponibles y/o tambin 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 botn Crear Nuevo Macro accedemos a una ventana que nos permite definir una nueva Macro. Con el botn OK&Editar Macro podemos editar una Macro. Es decir, describir los componentes que debe ejecutar para realizar una determinada tarea.
264 Arquitectura de Sistemas Microprocesados 31/01/2013
FlowCode incluye una serie de componentes o perifricos con los que podemos construir, para su simulacin, el circuito elctrico de nuestra aplicacin. Estos componentes se colocan en el Panel de Montaje, en donde se establecen sus propiedades y conexiones con el controlador. Cada componente tiene asociadas, segn sus caractersticas, un nmero 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 lnea 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 lnea de entrada a la que est conectado el SWITCH(0) se ponga a nivel 1. En este momento finaliza la Macro o funcin, que no retorna ningn valor. 3. EsperarHastaBajo. Espera a que la lnea de entrada a la que est conectado el SWITCH(0) se ponga a nivel 0. En este momento finaliza la Macro o funcin, que no retorna ningn valor.
Arquitectura de Sistemas Microprocesados 31/01/2013
265
266
31/01/2013
Herramienta de clculo
Permite insertar operaciones lgico/aritmticas en nuestros programas. En el campo Mostrar Nombre podemos escribir el comentario que deseemos. En el campo Clculos describimos los clculos a realizar. El botn Variables nos abre una ventana donde podemos crear, editar, borrar y seleccionar distintas variables. Con el botn Funciones accedemos a todas las funciones lgico/ 267 Arquitectura de Sistemas Microprocesados aritmticas disponibles.
31/01/2013
Herramienta secuencia
La herramienta de Manipulacin 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 botn Variables nos permite crear, borrar, editar o usar variables de secuencia o cadenas. El botn Funciones nos presenta una lista con todas las funciones disponibles para el manejo de secuencias o cadenas de caracteres.
268 Arquitectura de Sistemas Microprocesados 31/01/2013
Herramienta interrupcin
FlowCode 4 tambin soporta la activacin/desactivacin de algunas de las interrupciones ms relevantes del microcontrolador seleccionado. Aunque no estn disponibles todas las que tiene el controlador, si estn las ms representativas. Con el botn Propiedades se selecciona el evento deseado para esa interrupcin. Por ejemplo, en el caso de la interrupcin externa INT, podemos seleccionar el flanco ascendente o descendente. En el campo Llamar al Macro se indica qu Macro o funcin se debe ejecutar cada vez que se produzca la interrupcin. Con el botn Crear Nuevo Macro creamos una nueva funcin. Con el botn 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 Arquitectura de Sistemas Macro. de componente 31/01/2013 269
Microprocesados
Herramienta interrupcin
270
31/01/2013
Herramienta cdigo 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 cdigo fuente en C o en ensamblador, para resolver aquellas tareas que FlowCode no pueda realizar directamente. Disponemos as de la herramienta Cdigo C.
271
31/01/2013
Macros de Perifricos
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 potencimetro para emular una entrada analgica. LCDDisplay. Inserta una pantalla LCD alfanumrica.
Arquitectura de Sistemas Microprocesados 31/01/2013
272
Macros de Perifricos
Entradas: KeyPad. Teclado matricial de hasta 4 x 4. SWITCHbank. Coloca un banco de hasta ocho interruptores. SWITCH. Interruptor sencillo ADC. Coloca un potencimetro para emular una entrada analgica.
273 Arquitectura de Sistemas Microprocesados 31/01/2013
Macros de Perifricos
Salidas:
274
Led7seg. Coloca el clsico 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 grfica. LCD Display. Inserta una pantalla LCD alfanumrica. Led7seg4. Inserta un conjunto de 4 displays de 7 segmentos conectados en paralelo.
31/01/2013
Macros de Perifricos
Comunicaciones:
275
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: Estndar RS232 para la transferencia de datos. Lin_Slave. Protocolo Lin en modo Slave para la transferencia de datos. CAN: Protocolo CAN.
Arquitectura de Sistemas Microprocesados 31/01/2013
Macros de Perifricos
WIRELESS
IrDA Comunicacin mediante infrarrojos. RFID. Identificacin por radiofrecuencia. Zigbee. Comunicacin por radiofrecuencia segn el protocolo Zigbee Bluetooth. Comunicacin por radiofrecuencia segn el protocolo Bluetooth.
276
31/01/2013
Macros de Perifricos
Perifricos
277
USBSerial: Dispositivo USB para la comunicacin serie. TCP_IP: Transferencia de datos segn el estndar TCP_IP. USBHID: Dispositivo USB como dispositivo de interface humano (HID). MIDI: Comunicacin en tiempo real entre diferentes dispositivos como controladores musicales o instrumentos. FAT16: Diseado para usarse junto con tarjetas de memoria MMC/SD para configurar el sistema de localizacin de archivos (FAT) y empleo de los mismos. WebServer: Podemos disear aplicaciones basadas en servicios de pginas web. USBSlave: Dispositivo USBArquitectura de Sistemas esclavo.
Microprocesados
31/01/2013
Macros de Perifricos
MECHATRONICS
Stepper. Para la simulacin de aplicaciones que controlan un motor paso a paso PWM. Componente cuyas Macros o funciones podemos emplear para generar y visualizar seales PWM moduladas en anchura. Speech. Permite el diseo de aplicaciones con sntesis de voz. Servo. Para la simulacin de aplicaciones que controlan un servo motor
Arquitectura de Sistemas Microprocesados 31/01/2013
278
279
31/01/2013
280
31/01/2013
281
Interpretar y formular el problema Disear una solucin Identificar los recursos para obtener la solucin. Organizarnos como equipo de trabajo Programar las tareas para llevar a cabo la solucin Ejecutar la solucin Evaluar la solucin Presentar la Solucin
Microcontroladores
Analizar: Descomposicin mental del objeto de estudio en sus partes integrantes, con el objetivo de relevar su composicin y estructura as como su descomposicin en elementos ms simples.
282
31/01/2013
Dado que los productos de la tecnologa pueden ser bienes (objetos), procesos o servicios, el anlisis de productos revestir distintas formas segn sea el tipo de producto a analizar. Un producto puede ser sujeto a diferentes tipos de anlisis, como el anlisis morfolgico, funcional, estructural, de funcionamiento, econmico, tecnolgico, comparativo, relacional, del surgimiento y evolucin histrica del producto.
283
31/01/2013
Las diversas etapas del mtodo de anlisis surgen como respuesta a interrogantes que normalmente un observador crtico se planteara frente a los objetos en general y a un objeto en particular. La secuenciacin 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.
284
31/01/2013
El anlisis del problema se centra en plantear los interrogantes cuyas respuestas se buscarn a lo largo del proceso de anlisis. Algunos de lo interrogantes que se pueden plantear, teniendo en cuenta las caractersticas del producto (que puede ser tangible o intangible), los objetivos buscados y lo que se intenta priorizar.
Anlisis del producto donde se hace una descripcin ms precisa de los elementos que lo componen
Fase de sntesis
Fase de conclusin
285
Anlisis de las relaciones del producto con su entorno, con la estructura sociocultural.
Arquitectura de Sistemas Microprocesados 31/01/2013
Anlisis funcional Est centrado en la funcin que cumple el objeto. Se llama funcin a la manera en que el objeto cumple el propsito 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 creacin (especificaciones). Anlisis estructural Se busca reconocer la estructura del objeto (modo en que estn dispuestas las partes), confeccionar el listado de componentes, determinar la misin 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 captacin sensorial, sino que es una construccin intelectual del observador, resultado de un anlisis y de una bsqueda de las relaciones entre las partes de ese todo que es el objeto.
286 Arquitectura de Sistemas Microprocesados 31/01/2013
Lugar de emplazamiento:
Modos de operacin:
Maniobras de operacin:
287
288
31/01/2013
Seleccin de componentes:
Tecnologa de componente
Seleccin de controlador:
291
31/01/2013