lectura 1

Anuncio
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 7: Reconocimiento Unidad 2
LECTURA 1
¿Qué es un Microcontrolador?
Microcontroladores
Un Microcontrolador es Circuito integrado o chip que incluye en su interior las tres
unidades funcionales de un ordenador: CPU, Memoria y Unidades de E/S, es
decir, se trata de un computador completo en un solo circuito integrado. Aunque
sus prestaciones son limitadas, además de dicha integración, su característica
principal es su alto nivel de especialización. Aunque los hay del tamaño de una
moneda, lo normal es que sean incluso más pequeños, ya que, lógicamente,
forman parte del dispositivo que controlan.
Un microcontrolador típico posee en su interior un generador de reloj integrado,
una pequeña cantidad de memoria RAM y ROM/EPROM/EEPROM. Para hacerlos
funcionar todo lo que se necesita son unos pocos programas de control,
alimentación (típicamente 3.3V o 5V) y un cristal de sincronización.
Los microcontroladores disponen generalmente también de una gran variedad de
dispositivos de entrada/salida, como convertidores de analógico a digital,
temporizadores, UARTs y buses de interfaz serie especializados, como I2C y
CAN.
Los microcontroladores mas utilizados son los:
AVR
ARM
MSP430
PIC
A continuación se detallan las principales diferencias entre ellos.
ARM
Los microcontroladores ARM son dispositivos de altas prestaciones, con un core
RISC de 16/32bits. El mercado de los ARM es uno de los que ha crecido mas
rápido en cuanto a microcontroladores se refiere. Los precios de los ARM son
similares a los dispositivos de 8 bit, sin embargo proveen mucho mas poder y
periféricos que cualquier dispositivo de 8 bit. Se encuentran disponibles de
1
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 7: Reconocimiento Unidad 2
distintos proveedores como: Texas Instruments, Atmel, Phillips, OKI, ST, Cirrus
Logic, Analog Devices y otros.
Muchos expertos en el tema dicen que dentro de 5 años los ARM reemplazaran la
industria ocupada por la arquitectura 8051 en la mayoría de las aplicaciones.
Olimex intenta proveer herramientas de desarrollo de bajo costo utilizando ARM
de la mayor cantidad de proveedores posible. Este año cubriremos 7 proveedores
y tenemos mas de 40 diferentes prototipos que incorporan dispositivos ARM7 y
ARM9.
Lo positivo
Muy rápidos: la mayoría de los ARM7 corren a 60 Mhz y los ARM9 a
150Mhz+ siendo mas poderosos que los antiguos procesadores Intel 386
Bajo Consumo: Los ARM7 necesitan aproximadamente 0.5-1mA por Mhz
Gran rango de perifericos: ADC,DAC,USB,SPI, UART, I2C, CAN, Ethernet,
SDRAM
Memoria Flash Interna: 32-512KB
Memoria Ram Interna: 4-64KB
Lo Negativo
Complejo de utilizar para principiantes, definitivamente no es un
microcontrolador con el que se puedan dar los primeros pasos para
aprender sobre microcontroladores.
MSP430
El microcontrolador MSP430 es de ultra bajo consumo, con un core de 16-Bit
RISC. Pueden correr hasta 8 Mhz y tiene un consumo de tan solo 250uA por
MIPS, lo cual lo hace perfecto para dispositivos portátiles.
Lo Positivo
Muy bajo consumo: 250uA por MIPS
Un producto muy desarrollado con una arquitectura limpia, permite portar
código a otro miembro de la familia MSP430 casi sin necesidad de retoque.
Disponible en bajas cantidades a través de los distribuidores de Texas
Instruments
Muchas aplicaciones desarrolladas y códigos de ejemplo.
2
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 7: Reconocimiento Unidad 2
Muy buen rango de periféricos: ADC y DAC de precisión, Comparadores,
OAMPs, LCD Drivers, SPI, UART, DMA.
Lo negativo
Posee una arquitectura Von Neuman, las instrucciones se toman de 1 a 4
bytes y utilizan de 1 a 6 ciclos de reloj.
PIC
Los microcontroladores PIC son unos de los mas populares de 8-bit. Microchip
tiene cientos de diferentes microcontroladores desde los pequeños en
encapsulados SOT23 hasta los 84-PLCC. Ellos pueden correr hasta 40Mhz y
ejecutar instrucciones cada 4 ciclos de reloj.
Lo Positivo
Son muy baratos, los dispositivos como el PIC10Fxx llegan a costar $0.40
cuando se compran en volúmenes.
Software de desarrollo en assembler gratuito (MPLAB)
Se encuentra una gran gama de dispositivos con diferentes tamaños de
memorias y cantidad de periféricos.
Los puertos GPIO pueden entregar hasta 20mA lo que permite manejar
LED`s y otros dispositivos directamente.
Hay disponibles para rangos de temperaturas extendidos de -40 a +125ºC
Lo Negativo
Escribir un programa en assembler es un arte que no muchos dominan y
puede extender el código a cientos de líneas.
Algunos de los nuevos dispositivos tienen bugs de hardware y no son tan
estables como los viejos OTP
No hay compatibilidad entre los diferentes PIC's y hay que reescribir el
código cada vez que se quiera cambiar de un PIC a otro.
Tomado de http://www.psoc-chile.es.tl/%BFMicrocontrolador-f-.htm
LECTURA 2
3
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 7: Reconocimiento Unidad 2
Herramientas de desarrollo
Las herramientas de desarrollo están formadas por un conjunto de programas e
interfaces que permiten realizar los proyectos de la forma más eficiente posible.
Las principales herramientas de ayuda al desarrollo de sistemas basados en
microcontroladores se describen a continuación
Ensamblador. La programación en lenguaje ensamblador puede resultar un tanto
ardua para el principiante, pero permite desarrollar programas muy eficientes, ya
que otorga al programador el dominio absoluto del sistema. Los fabricantes suelen
proporcionar el programa ensamblador de forma gratuita y en cualquier caso
siempre se puede encontrar una versión gratuita para los microcontroladores más
populares.
Compilador. La programación en un lenguaje de alto nivel (como C o Basic)
permite disminuir el tiempo de desarrollo de un producto y si además está
familiarizado con C o Basic es una buena opción. No obstante, cuando el
compilador convierta el código del programa a un lenguaje ensamblado, cada
línea de código del programa en lenguaje de alto nivel habrá generado bastantes
más líneas de código en lenguaje ensamblador, normalmente en una relación de
uno a tres. Esto significa que para utilizar un lenguaje de alto nivel necesitaremos
un microcontrolador con una capacidad de memoria relativamente grande.
Si el programa que estamos desarrollando necesita utilizar números con
decimales, o con notación científica o se utilizan operaciones complejas, como
pueden ser las trigonométricas, es casi obligado utilizar un lenguaje de alto nivel.
Pero si lo que se va a hacer es manipular bits en registros, entradas, salidas y
cálculos sencillos, el lenguaje ensamblado es la mejor opción.
Las versiones más potentes de compiladores suelen ser muy caras, aunque para
los microcontroladores más populares pueden encontrarse versiones demo
limitadas e incluso compiladores gratuitos.
Como compilador gratuito puede utilizarse el compilador C GNU, que es un
compilador C de código abierto tan bueno como los compiladores C comerciales
pero que sin embargo tiene un proceso de instalación que no es sencillo. Además
hay que comprobar que arquitecturas de microcontrolador soporta. Algunas de las
cuales son MSP430 de TI, AVR de Atmel y HC11 de Motorola, (ver www.gnu.org y
www.fsf.org). También puede conseguirse un compilador C GNU en binario ya
construido. Por ejemplo para la arquitectura ARM puede conseguirse un
4
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 7: Reconocimiento Unidad 2
compilador C GNU binario para win32 desde www.gnuarm.com, que trabaja con
línea de comandos e incluye un depurador de código. Para obtener un entorno de
desarrollo (IDE) para windows que pueda utilizarse con el conjunto de
herramientas GNU puede utilizarse la aplicación VIDE, que puede conseguirse en
www.objectcentral.com/vide.htm.
Simulador. Se trata de software que es capaz de ejecutar en un PC programas
realizados para el microcontrolador. Los simuladores permiten tener un control
absoluto sobre la ejecución de un programa, siendo ideales para la depuración de
los mismos. Su gran inconveniente es que es difícil simular la entrada y salida de
datos del microcontrolador. Tampoco cuentan con los posibles ruidos en las
entradas, pero, al menos, permiten el paso físico de la implementación de un
modo más seguro y menos costoso, puesto que ahorraremos en grabaciones de
chips para la prueba in-situ.
Placas de evaluación. Se trata de pequeños sistemas con un microcontrolador ya
montado y que suelen conectarse a un PC desde el que se cargan los programas
que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores
LCD, teclados, LEDs, fácil acceso a los pines de E/S, etc. Pueden incluir un
programa de control o sistema operativo que recibe el nombre de programa
monitor. El programa monitor de algunas placas de evaluación, aparte de permitir
cargar programas y datos en la memoria del microcontrolador, puede permitir en
cualquier momento realizar ejecución paso a paso, monitorizar el estado del
microcontrolador o modificar los valores almacenados los registros o en la
memoria.
Emuladores en circuito. Se trata de un instrumento que se coloca entre el PC
anfitrión y el zócalo de la tarjeta de circuito impreso donde se alojará el
microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la
placa de la aplicación es como si lo hiciese el mismo microcontrolador que luego
irá en el zócalo. Presenta en pantalla toda la información tal y como luego
sucederá cuando se coloque la cápsula.
Programador. Es un dispositivo que conectado a un PC permite grabar en el
microcontrolador el programa desarrollado. Algunos puede fabricarlos uno mismo
(ver Programador PIC y EEPROM JDM y Programador JDMD) y resultan muy
económicos. También existe software gratuito para programar no ya solo
microcontroladores sino también otros dispositivos, como memorias (ver
Programación de PIC con ic-prog). Actualmente se tiende a realizar la
programación en la propia placa de utilización mediante ISP, In System
5
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 7: Reconocimiento Unidad 2
Programmation o ICSP, In Circuit Serial Programation. De esta manera se puede
programar al microcontrolador una vez esté montado en la placa del circuito
utilizando una conexión de dos, tres o cuatro terminales. Para utilizar esta técnica
se utiliza un programador que suele ser muy sencillo y que en algunos casos
puede construir uno mismo.
Otra posibilidad es utilizar un "cargador de arranque", muy util en la etapa de
desarrollo de un programa. Un cargador de arranque es un pequeño programa en
el microcontrolador que está montado en la placa del circuito que se está
desarrollando y que puede comunicarse con las herramientas de desarrollo (que
se van a utilizar para escribir el código del programa de la aplicación) a través de
un enlace serie, como puede ser RS232, USB, I2C o un bus CAN.
El programa cargador de arranque debe interpretar comandos para leer, grabar y
borrar la parte de memoria reservada para el programa de la aplicación. Cuando
se desea verificar el programa que se está desarrollando se inicia la comunicación
con el programa cargador de arranque, que carga el código de programa en la
memoria de programa del microcontrolador. Después el programa cargador de
arranque transfiere el control al programa cargado y entonces se puede ejecutar y
verificar el programa cargado. Esta operación de carga y prueba puede realizarse
tantas veces como sea necesario.
Los requerimientos que tiene que cumplir el microcontrolador a utilizar son:
Suficiente memoria de programa para alojar tanto el cargador de arranque
como el programa en desarrollo.
Que el microcontrolador permita que pueda modificarse la memoria de
programa por si mismo.
Un puerto serie para la comunicación.
Por ejemplo, el microcontrolador LPC210x de la casa Philips incluye un cargador
de arranque serie integrado que está ubicado en los 8 K primeros de su memoria
Flash. Estándo el terminal P0.14 a masa y generando un reset el LPC210x ejecuta
el programa cargador de arranque. Utilizando un programa para PC gratuito de la
casa Philips y un cable serie conectado entre el PC y la UART del
microcontrolador LPC210x (a través de un conversor TTL/RS232 como el c.i.
MAX232) se puede realizar la programación del microcontrolador.
6
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 7: Reconocimiento Unidad 2
También resulta interesante el interface JTAG (que por ejemplo posee el
microcontrolador LPC210x), que puede utilizarse para programar el dispositivo y
para depurar un programa durante su ejecución en el microcontrolador. Para
utilizar el interface JTAG se necesita un módulo interfaz de depuración JTAG que
se conecta con entre el sistema de desarrollo del microcontrolador y el PC que lo
aloja. En el mercado existen distintos módulos interfaces JTAG comerciales pero
también se pueden encontrar otros en Internet.
Paquetes IDE
Actualmente existen paquetes de software denominados "Entornos de Desarrollo
Integrado", IDE, que suelen funcionar bajo Windows y que incluyen editores de
texto para el ensamblador o el compilador, permiten la simulación del programa y
también pueden integrar el control de emuladores y programadores de
dispositivos. Ejemplos de estos entornos de desarrollo son MPLAB de Microchip
(ver MPLAB-IDE v6.60) que permite programar en lenguaje ensamblado y PCWH
de la casa CCS que incluye un compilador C para los microcontroladores PIC de
Microchip. MPLAB es gratuito y muy bueno, incluye un editor, un ensamblador y
un simulador y también puede trabajar con compiladores y emuladores de otros
fabricantes.
http://perso.wanadoo.es/pictob/microcr.htm#herramientas_de_desarrollo>
LECTURA 3
Recursos especiales
Cada fabricante oferta numerosas versiones de una arquitectura básica de
microcontrolador. En algunas amplía las capacidades de las memorias, en otras
incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para
aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo
mínimo que satisfaga todos los requerimientos de su aplicación. De esta forma,
minimizará el coste, el hardware y el software.
Los principales recursos específicos que incorporan los microcontroladores son:
Temporizadores o "Timers"
7
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 7: Reconocimiento Unidad 2
Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la
cuenta de acontecimientos que suceden en el exterior (contadores).
Para la medida de tiempos se carga un registro con el valor adecuado y a
continuación dicho valor se va incrementando o decrementando al ritmo de los
impulsos de reloj o algún múltiplo hasta que se desborde y llegue a 0, momento en
el que se produce un aviso.
Cuando se desean contar acontecimientos que se materializan por cambios de
nivel o flancos en alguna de las patillas del microcontrolador, el mencionado
registro se va incrementando o decrementando al ritmo de dichos impulsos.
Perro guardián o "Watchdog"
Cuando un ordenador personal se bloquea por un fallo del software u otra causa,
se pulsa el botón del reset y se reinicializa el sistema.
En la mayoría de los casos y a diferencia de un ordenador personal, un
microcontrolador funciona sin el control de un supervisor y de forma continuada las
24 horas del día y 365 días al año. El Perro guardián consiste en un temporizador
que, cuando se desborda y pasa por 0, provoca un reset automáticamente en el
sistema.
Se debe diseñar el programa de trabajo que controla la tarea de forma que
refresque o inicialice al Perro guardián antes de que provoque el reset. Si falla el
programa o se bloquea, el programa no refrescará al Perro guardián y, al
completar su temporización, provocará el reset del sistema.
Protección ante fallo de alimentación o "Brownout"
Se trata de un circuito que resetea al microcontrolador cuando el voltaje de
alimentación (VDD) es inferior a un voltaje mínimo ("brownout"). Mientras el voltaje
de alimentación sea inferior al de brownout el dispositivo se mantiene reseteado,
comenzando a funcionar normalmente cuando sobrepasa dicho valor. Esto es muy
útil para evitar datos erróneos por transiciones y ruidos en la línea de alimentación.
Estado de reposo ó de bajo consumo
Son abundantes las situaciones reales de trabajo en que el microcontrolador debe
esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le
ponga de nuevo en funcionamiento. Para ahorrar energía, (factor clave en los
aparatos portátiles), los microcontroladores disponen de una instrucción especial
8
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 7: Reconocimiento Unidad 2
(SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el
cual los requerimientos de potencia son mínimos. En dicho estado se detiene el
reloj principal y se "congelan" sus circuitos asociados, quedando sumido en un
profundo "sueño" el microcontrolador. Al activarse una interrupción ocasionada por
el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo.
Para hacernos una idea, esta función es parecida a la opción de Suspender en el
menú para apagar el equipo (en aquellos PCs con administración avanzada de
energía).
Conversor A/D (CAD)
Los microcontroladores que incorporan un Conversor A/D (Analógico/Digital)
pueden procesar señales analógicas, tan abundantes en las aplicaciones. Suelen
disponer de un multiplexor que permite aplicar a la entrada del CAD diversas
señales analógicas desde las patillas del circuito integrado.
Conversor D/A (CDA)
Transforma los datos digitales obtenidos del procesamiento del computador en su
correspondiente señal analógica que saca al exterior por una de las patillas de la
cápsula. Existen muchos dispositivos de salida que trabajan con señales
analógicas.
Comparador analógico
Algunos modelos de microcontroladores disponen internamente de un
Amplificador Operacional que actúa como comparador entre una señal fija de
referencia y otra variable que se aplica por una de las patillas de la cápsula. La
salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea
mayor o menor que la otra.
También hay modelos de microcontroladores con un módulo de tensión de
referencia que proporciona diversas tensiones de referencia que se pueden aplicar
en los comparadores.
Modulador de anchura de impulsos o PWM
Son circuitos que proporcionan en su salida impulsos de anchura variable, que se
ofrecen al exterior a través de las patillas del encapsulado. Resulta util para
sistemas de control de potencia, como por ejemplo motores.
Puertos de comunicación
9
ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA
208006 – Sistemas Embebidos
Act 7: Reconocimiento Unidad 2
Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros
dispositivos externos, otros buses de microprocesadores, buses de sistemas,
buses de redes y poder adaptarlos con otros elementos bajo otras normas y
protocolos. Algunos modelos disponen de recursos que permiten directamente
esta tarea, entre los que destacan:
UART, adaptador de comunicación serie asíncrona.
USART, adaptador de comunicación serie síncrona y asíncrona
Puerto paralelo esclavo para poder conectarse con los buses de otros
microprocesadores.
USB (Universal Serial Bus), el conocido bus serie para los PC.
Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips.
Interface SPI, un puerto serie síncrono.
CAN (Controller Area Network), para permitir la adaptación con redes de
conexionado multiplexado desarrollado conjuntamente por Bosch e Intel
para el cableado de dispositivos en automóviles. En EE.UU. se usa el
J185O.
TCP/IP, ya existen microcontroladores con un adaptador de comunicación
para este protocolo.
Tanto el I2C en televisores, como el Bus CAN en automóviles, fueron diseñados
para simplificar la circuitería que supone un bus paralelo de 8 líneas dentro de un
televisor, así como para librar de la carga que supone una cantidad ingente de
cables en un vehículo.
http://perso.wanadoo.es/pictob/microcr.htm#recursos_especiales
10
Descargar