Sei sulla pagina 1di 38

MICROPROCESADORES

Tema 6: Microcontroladores
Carlos Garre del Olmo

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Microcontroladores
MICROPROCESADORES

Introduccin a los microcontroladores. Principales familias y sus caractersticas. La familia PIC16. Programacin de microcontroladores. Diseo de sistemas empotrados. Introduccin a los DSP

Contenidos

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Ingeniera de Hardware
MICROPROCESADORES

Es necesario seguir una metodologa bien estructurada a la hora de abordar el diseo de un sistema hardware-software complejo. Fases habituales:
1. 2. 3. 4. Definicin del Sistema. Diseo del Sistema. Implementacin del Sistema. Verificacin y Soporte. Definir responsabilidades del hardware y del software. Diseo jerrquico, en general Top-Down. Tener en cuenta los estndares existentes. Uso de herramientas de diseo formales (grficas y textuales). Analizar necesidades de robustez y posibles fuentes de error. Documentacin completa a lo largo de todo el proceso. Nombrar adecuadamente cada mdulo, de forma rigurosa. Diferenciar subsistema de control de subsistema de datos.
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Puntos importantes:

Diseo del Subsistema Hardware


MICROPROCESADORES

En otras asignaturas se estudia mucho sobre diseo de software, y adems el software en los sistemas empotrados suele ser relativamente sencillo. Para el diseo del hardware se empieza viendo un esquema general del sistema, donde slo hay:
Mdulos: cajas con nombre. Concepto de caja negra. Conexiones: flechas que conectan los mdulos. Cada flecha tiene que tener un nombre, y un nmero (nmero de bits o de hilos). aunque en mis esquemas no hay nombres...

Partiendo de este esquema, se desarrolla cada uno de los mdulos, respetando el nmero y nombre de las conexiones entrantes y salientes. Este proceso se repite recursivamente. En los niveles ms bajos empiezan a aparecer otros componentes que ya no son mdulos: son como las hojas de nuestro rbol, y definen componentes atmicos (ya no se pueden subdividir). Siempre que sea posible, los componentes atmicos se representarn con smbolos estndar (mejor el smbolo de inversor, que el patillaje de un 74HC04). Si es necesario, el esquema se puede completar con un apndice en el que se detallen las conexiones de los integrados.
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
4

Ejemplo de Esquema Global


MICROPROCESADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Ejemplo de Esquema de 2 Nivel


MICROPROCESADORES

Mdulo Sensores:
R1 = 220 R2 = 10K R3 = 200 R4 = 50K IC1 = LM358

Detalle de conexionado del IC1:

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Mdulos Bsicos
MICROPROCESADORES

Suele haber cinco tipos de mdulos en el hardware de un sistema empotrado:


Subsistema de control (unidad de proceso). Mdulo de alimentacin. Mdulos de entrada. Mdulos de salida. Mdulos de entrada/salida.

Vamos a ver en detalle cada mdulo, centrndonos nicamente en sistemas empotrados basados en microcontroladores PIC16.

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Subsistema de Control
MICROPROCESADORES

Habitualmente consta nicamente del conexionado bsico del microcontrolador, aunque muchas veces puede requerir otros componentes, como conexin con una memoria adicional (EEPROM o RAM)

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

Mdulo de Alimentacin
MICROPROCESADORES

El microcontrolador necesita una fuente de alimentacin que proporcione corriente continua de 5V o menos. Otros mdulos pueden requerir su propia fuente de alimentacin, que proporcione otros voltajes (motores, ...). Para obtener una fuente de alimentacin continua de 5V a partir de la corriente alterna de 220V:
1. 2. 3. Un transformador baja los 220V a un voltaje algo superior a 5V (por ejemplo, 9V). Un rectificador (puente de diodos) convierte la forma de onda que alterna entre voltaje positivo y negativo en otra que slo tiene voltaje positivo: La onda se filtra mediante un condensador:

4.

Mediante un regulador de tensin, fijamos el voltaje a 5V:


ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
9

Mdulo de Alimentacin
MICROPROCESADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

10

Mdulos de Entrada
MICROPROCESADORES

Un sistema empotrado suele tener tres tipos diferentes de entrada:


Mdulos de adquisicin de datos (sensores, ...). Entrada de interfaz con el usuario (botones, interruptores, ruedas, ...). Comunicacin con sistemas externos (entrada/salida).

La comunicacin con sistemas externos se realizar mediante alguno de los sistemas de comunicacin que implementan los PIC (USART, ...). No vamos a entrar en detalles. Para el resto de entradas vamos a ver los esquemas de conexionado de las entradas ms habituales hacia un microcontrolador PIC:
Interruptores. Teclados. Potencimetros. Sensores.

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

11

Interruptores
MICROPROCESADORES

Interruptores, botones, palancas, switches, bumpers... Son todos componentes que permiten al usuario alternar entre dos posibles entradas, habitualmente 0v y 5v.

Si el interruptor tiene 3 patas, podemos conectar sin ms Vcc y Gnd a las dos entradas, y la tercera pata es la salida:

Si slo hay dos patas, entonces tenemos que utilizar una resistencia de pull-up o pulldown. Ejemplo de interruptor con pull-down:

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

12

Filtro Antirebotes
MICROPROCESADORES

El cambio de estado en la salida ante la pulsacin de un interruptor dista mucho de ser ideal grfica en pizarra... Si este interruptor controla algn cambio de estado o cualquier mdulo que se active por flancos, obtendremos transiciones no deseadas. Es necesario filtrar los pulsos no deseados:
Por software: retardando la lectura cuando se recibe el primer flanco. Por hardware, mediante filtro RC. Por hardware, mediante biestables.

Otra opcin es combinar un circuito RC con un inversor Schmitt (histresis):

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

13

Teclados
MICROPROCESADORES

Un teclado con muchas teclas, como el de un PC, es un sistema empotrado en s mismo con su propio microcontrolador. Se comunica con otros sistemas (como el PC) mediante un protocolo de comunicacin. Si queremos manejar teclados pequeos, podemos hacerlo dejando toda la tarea de control en nuestro propio sistema. Es tpico hacerlo as con teclados numricos de 4x4 (teclados matriciales). Para un teclado matricial MxN necesitaremos M+N pines, en lugar de M*N:
M pines de salida para cada fila. N pines de entrada para cada columna.

El proceso consiste en:


Poner a 0 la salida de una fila (m), y a 1 las dems (M-1). Leer los N pines de entrada de las columnas. Si el pin n vale 0 est pulsado el botn m,n. Repetir con las dems filas en un bucle constante.

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

14

Potencimetros
MICROPROCESADORES

Los potencimetros son las tpicas ruedas y deslizadores en las interfaces.

Actan como una resistencia cuyo valor vara en funcin del giro o del deslizamiento. Se han de conectar a una entrada analgica del PIC.

Potencimetro digital: Se utiliza en interfaces digitales (subir volumen con un botn en lugar de con una rueda). Se comunican con la MCU mediante una interfaz serie (SPI, I2C...), y actan como un potencimetro en funcin de las seales de entrada. Su resolucin suele variar entre 32 y 1024.
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

15

Sensores
MICROPROCESADORES

Los sensores nos permiten obtener medidas fsicas del mundo externo al sistema empotrado. Lo que hacen es transducir una magnitud fsica en otra, concretamente de tipo elctrico (resistencia, capacidad, corriente o voltaje). Hay sensores para medir:
Temperatura (termistor, termocupla, pirmetros...). Distancia/proximidad a un obstculo (ultrasonidos, infrarojos...). Presin (piezoresistivos, efecto Hall...). Luz (fototransistor, LDR...). Humedad. Qumicos (gases, pH...). Colores (CCD...). Flexin, torsin y estiramiento (galgas extensiomtricas, ...). Contacto (bumper, resistivos...). Sonido (micrfono...). Aceleracin (acelermetros...). Caudal (rotmetros...). Inclinacin (inclinmetros...). Rotacin o posicin lineal (encoder, potencimetro...).
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
16

Caractersticas de un Sensor
MICROPROCESADORES

Las caractersticas de un sensor determinarn la forma en la que podemos leer su informacin. Algunos sensores incorporan un circuito que permite conectarlo directamente a una entrada del microcontrolador, pero en general los sensores necesitan un circuito de acondicionamiento de seal. Principales caractersticas:
Magnitud de entrada: temperatura, luz, aceleracin, humedad... Magnitud de salida: resistencia, capacidad, corriente, tensin nos vamos a centrar en los que nos dan tensin. Dominio de entrada: intervalo en el que puede medir la magnitud de entrada (-20C a 80C...). Dominio de salida: rango de valores que se pueden obtener a la salida (0V a 5V...). Resolucin: mnima variacin en la entrada que se puede medir (01C...). Curva de relacin: curva que muestra la salida del sensor frente a los diferentes valores de entrada. Lo ideal es que sea lineal. Offset: Forma parte de la curva. Muchos sensores no devuelven 0 cuando la magnitud leda es 0 (3V a 8V...).

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

17

Amplificador Operacional
MICROPROCESADORES

Para entender cmo funcionan los circuitos de acondicionamiento de seal debemos presentar antes un componente fundamental en la electrnica analgica: el amplificador operacional. Es un circuito integrado con dos entradas y una salida, formado internamente por transistores y resistencias que persigue las siguientes propiedades ideales:
Impedancia de entrada infinita (~1M): la corriente de entrada necesaria para hacerlo funcionar es muy pequea. Impedancia de salida nula (~100): fuente de tensin ideal. Ganancia de tensin infinita (~200K): amplifica la tensin de entrada.

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

18

AO: Comparador
MICROPROCESADORES

El AO se puede configurar en diferentes circuitos bsicos que le dan una funcionalidad concreta. La configuracin ms bsica es en lazo abierto, denominada Comparador:

La tensin que devuelve es Vs+ si V1 > V2, Vs- si V1 < V2. Si fijamos la tensin negativa es una forma sencilla de convertir una seal analgica en digital. Si fijamos la positiva, sera con inversin pizarra... Comparador Schmitt: es un comparador con histresis evitamos rebotes!

Ur es una tensin de referencia, y Ue la tensin de entrada.


ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
19

AO: Seguidor de Tensin


MICROPROCESADORES

Simplemente replica a la salida la misma tensin de entrada. Lo importante es que, gracias a las caractersticas del AO, no requiere mucha corriente de entrada (impedancia de entrada infinita), y en cambio es capaz de proporcionar su salida independientemente de la corriente que requiera el circuito conectado a ella (impedancia de salida nula). Es muy til para sensores que suministran poca corriente, o que se puedan ver afectados por su lectura. Tambin es til para regenerar seales.

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

20

AO: Amplificador
MICROPROCESADORES

Dos de las configuraciones ms importantes son: Amplificador Inversor y Amplificador No Inversor. Vamos a ver nicamente el amplificador no inversor.

La tensin de salida es proporcional a la de entrada, en funcin de las resistencias que se utilicen: Vout = Vin * (1 + R2/R1) Ejemplo: tenemos un sensor que devuelve una salida entre 0V y 1V, y queremos un dominio de salida entre 0V y 5V para atacar a una entrada del PIC.
Necesitamos una ganancia 5x. 5 = 1 * (1 + r2/r1) r2/r1 = 4. Por tanto, podemos usar por ejemplo: R2=4K, R1 = 1K. OJO! Si el valor mnimo no era 0V, estaremos tambin amplificndolo

OFFSET.

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

21

AO: Sumador Inversor


MICROPROCESADORES

Devuelve la suma algebraica de, virtualmente, cualquier nmero de entradas:

La tensin a la salida es: Si todas las resistencias son iguales: Vout = V1 + V2 + ... Vn Tambin existe una configuracin de restador: Para R iguales: Vout = V2 V1

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

22

AO: Otras configuraciones


MICROPROCESADORES

Integrador:

Diferenciador:

Osciladores, filtros, amplificador diferencial...

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

23

Acondicionamiento de Seal
MICROPROCESADORES

Para acondicionar la seal de salida de un sensor a la entrada de un PIC, necesitamos conocer las caractersticas del sensor, y en funcin de ellas construir un circuito que nos devuelva a la salida una seal digital entre 0V y 5V. En el caso general, necesitaremos un seguidor de tensin, un amplificador y un sumador para eliminar el offset. Con esto obtenemos una seal analgica acondicionada, que luego podemos digitalizar mediante un comparador.

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

24

Sensor CNY70
MICROPROCESADORES

Vamos a ver un ejemplo prctico con el sensor CNY70: es un sensor ptico reflexivo que internamente consta de un LED y un fototransistor. La salida del sensor determina cunta de la luz emitida por el LED ha sido reflejada al fototransistor. Aplicaciones:
Sensor de proximidad: es preciso slo a distancias muy cortas (menos de 2cm). El rayo rebota contra el objeto y vuelve al fototransistor. Detector de color blanco/negro: El blanco refleja todo el rayo, mientras que el negro lo absorbe. Hay que poner el patrn muy cerca del sensor.

Es el sensor ms utilizado en los robots rastreadores. Presenta una tensin de salida muy baja, y con offset.

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

25

Acondicionamiento del CNY70


MICROPROCESADORES

Existen muchos circuitos de acondicionamiento del CNY70 en Internet, pero yo he creado el mo propio: R1 = 220 R2 = 10K R3 = 200 R4 = 50K IC1 = LM358 IC2 = 74HC14

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

26

Mdulos de Salida (LED)


MICROPROCESADORES

Algunas salidas tpicas en los sistemas empotrados, aparte de salidas complejas mediante protocolos de comunicacin:
LED. LCD. Motores. Seales de alto voltaje. Seales analgicas.

LED:

R determina el brillo y el consumo del LED. En torno a 330 suele ser un buen compromiso.

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

27

LCD
MICROPROCESADORES

LCD: Liquid Crystal Display. Hay multitiud de LCDs, pero vamos a ver un caso muy sencillo: 2 filas x 16 columnas. Pines del LCD:
RS:
Si es 0, escribimos rdenes sobre el registro de control. Si es 1, escribimos caracteres sobre el registro de datos.

E: Enable. R/W: lo podemos fijar en escritura. D7-D0: bus de datos bidireccional. Vo: contraste.

Comandos:
Inicializacin: RS=0. D=0x3C. Limpiar pantalla: RS=0. D=0x01. Cursor home: RS=0. D=0x02. Escribir carcter: RS=1. D=Ascii. Tambin hay comandos para definir tus propios caracteres.
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
28

Motores
MICROPROCESADORES

Hay diferentes tipos de motores:


Servos:
Motor muy preciso utilizado en robtica, modelismo, ... Habitualmente, giro de 180. Incorpora una reductora y un circuito de control. Se controlan mediante PWM. Control por posicin: si lo giras manualmente, hace fuerza para volver a su posicin. Gran velocidad y poca precisin juguetes, giro de lector CD, ... Giro infinito. Velocidad y par se controlan por tensin PWM reduce slo velocidad. Se suele utilizar un circuito de Puente en H para controlarlo:

Motores de corriente continua:

Motores paso a paso:


Control por posicin en unos pocos pasos discretos.

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

29

Seales de Alto Voltaje


MICROPROCESADORES

En muchos casos necesitamos controlar una seal de alto voltaje desde el PIC: Apertura/Cierre de puerta. Disparo del airbag. Lanzamiento de un misil.

Para algunas aplicaciones basta con utilizar un transistor de potencia (Ej: IRF830), que conmuta una seal de alta tensin (entre el colector y el emisor) controlada mediante una seal pequea como la de un PIC (en la puerta). Rel: interruptor que, en lugar de controlarse manualmente, se controla desde una seal elctrica. Aisla por completo la lgica de control (salida del PIC) del sistema a controlar.

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

30

Seales Analgicas
MICROPROCESADORES

Si el microcontrolador no dispone de salidas analgicas, tenemos que utilizar un conversor DAC. Podemos utilizar un circuito integrado comercial, o fabricarlo nosotros:

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

31

Ejemplos de SSEE
MICROPROCESADORES

En pizarra...

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

32

Microcontroladores
MICROPROCESADORES

Introduccin a los microcontroladores. Principales familias y sus caractersticas. La familia PIC16. Programacin de microcontroladores. Diseo de sistemas empotrados. Introduccin a los DSP.

Contenidos

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

33

Alternativas a los MCU (DSP)


MICROPROCESADORES

Adems de los microcontroladores hay otras opciones para construir sistemas empotrados: Sistemas basados en microprocesador: cuando se requiere mucha potencia de clculo. Sistemas basados en FPGA y ASIC: sistemas muy especficos. Sistemas basados en DSP: cuando se requiere un tratamiento intensivo de seales (imagen, sonido, medicina, comunicaciones...).

DSP: Digital Signal Processor. Procesadores diseados especficamente para optimizar los clculos relacionados con el tratamiento de seales: transformadas, filtros, convoluciones, ... Principales diferencias con microcontroladores:
Operaciones matemticas complejas un un solo ciclo. Algunas instrucciones especficas (MAC...). Conversores AD rpidos y precisos. Diseados para ser programados en alto nivel (C) mejor que en ensamblador. El fabricante provee libreras de alto nivel.
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
34

Microchip dsPIC
MICROPROCESADORES

Microchip tiene una familia de DSPs denominados dsPIC. En realidad, Microchip los llama DSC (Digital Signal Controller), ya que son un hbrido entre una MCU y un DSP de gama baja: dsPIC30F: gama bsica.
16 bits. 30 MIPS. De 28 a 80 pines. Hasta 144KB de programa, 8KB de RAM y 4KB de EEPROM. Conversores A/D de hasta 500kbps y 12 bits (hasta 16 por chip). 30 MIPS.

dsPIC33F: gama alta.


16 bits. 40 MIPS. De 28 a 100 pines. Hasta 256KB de programa, 30KB de RAM, sin EEPROM. Conversores A/D de hasta 22Mbps y 12 bits (hasta 32 por chip). Controlador de DMA (8 canales).
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
35

dsPIC 30F2010
MICROPROCESADORES

Es uno de los dsPIC ms bsicos, con 28 pines, 12KB de programa, 512B de RAM, 1KB de EEPROM, 6 ADC de 10 bits, etc.
Canal dual de acceso a memoria de datos (bancos X e Y). Array de 16x16b registros W. Unidad de divisin. ALU mejorada. Motor DSP (multiplicador 17 bits, ALU de 40 bits, 2 acumuladores de 40 bits y un barrel shifter de 40 bits. Detalles en arquitectura optimizados para algoritmos DSP. 62 fuente de interrupcin (en 7 niveles). ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA

36

Nuevas instrucciones
MICROPROCESADORES

Entre las nuevas instrucciones destacan:


DIV: divisin. Instrucciones DSP:

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

37

TEST
MICROPROCESADORES

TEST!

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

38

Potrebbero piacerti anche