Documente Academic
Documente Profesional
Documente Cultură
Microprocesador. Es un dispositivo
integrado digital capaz de interpretar y
ejecutar un conjunto secuencial de
instrucciones (programa). Bsicamente
contiene circuitos electrnicos que
realizan operaciones aritmticas, lgicas y
de control. Se trata de un sistema muy
complejo, por eso debe ir integrado en
chips.
1
1.2 Caractersticas y aplicaciones de los microcontroladores.
2
1.2 Tipos de arquitecturas computacionales.
Arquitectura de von Neumann
Tradicionalmente los sistemas con microprocesadores se basan en esta
arquitectura, en la cual la unidad central de proceso (CPU), est conectada a una
memoria principal nica (casi siempre slo RAM) donde se guardan las
instrucciones del programa y los datos. A dicha memoria se accede a travs de un
sistema de buses nico (control, direcciones y datos).
Arquitectura Harvard
Este modelo, que utilizan los Microcontroladores PIC, tiene la unidad central de
proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con
los datos) por medio de dos buses diferentes.
3
Ventajas de esta arquitectura:
* El tamao de las instrucciones no est relacionado con el de los datos, y por lo
tanto puede ser optimizado para que cualquier instruccin ocupe una sola posicin
de memoria de programa, logrando as mayor velocidad y menor longitud de
programa.
* El tiempo de acceso a las instrucciones puede superponerse con el de los datos,
logrando una mayor velocidad en cada operacin.
1.4 Tipos de microcontroladores y sus fabricantes.
4
80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares
microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar
las herramientas de desarrollo para PC.
5
Con los pines de entrada/salida el micro PIc puede monitorizar y controlar otros
dispositivos, para aadir flexibilidad al micro muchos de sus pines estan
multiplexados con funciones alternativas la direccion del pin es controlado por el
registro de direccion de datos llamado TRIS, TRISX<n> controlada la direccion del
pin n del puerto x un 1 indica que el pin es de entrada y un 0 inica que es de salida
6
La memoria RAM est destinada al almacenamiento de informacin temporal que
ser utilizada por el procesador para realizar clculos u otro tipo de operaciones
lgicas. En el espacio de direcciones de memoria RAM se ubican adems los
registros de trabajo del procesador y los de configuracin y trabajo de los distintos
perifricos del microcontrolador. El tipo de memoria utilizada en las memorias
RAM de los microcontroladores es SRAM, lo que evita tener que implementar
sistemas de refrescamiento, poseen pequeas cantidades de memoria RAM.
7
Son circuitos sincrnicos para el conteo de los pulsos que llegan a su poder para
conseguir la entrada de reloj. Si la fuente de un gran conteo es el oscilador interno
del microcontrolador es comn que no tengan un pin asociado, y en este caso
trabajan como temporizadores. Por otra parte, cuando la fuente de conteo es
externa, entonces tienen asociado un pin configurado como entrada, este es el
modo contador.
Conversor analgico/digital
Como es muy frecuente el trabajo con seales analgicas, stas deben ser
convertidas a digital y por ello muchos microcontroladores incorporan un conversor
analgico-digital, el cual se utiliza para tomar datos de varias entradas diferentes
que se seleccionan mediante un multiplexor.
Las resoluciones ms frecuentes son 8 y 10 bits, que son suficientes para
aplicaciones sencillas. Para aplicaciones en control e instrumentacin estn
disponibles resoluciones de 12bit, 16bit y 24bit. 6 Tambin es posible conectar un
convertidor externo, en caso de necesidad
Puerto serie
Este perifrico est presente en casi cualquier microcontrolador, normalmente en
forma de UART (Universal Asynchronous Receiver Transmitter)
o USART (Universal Synchronous Asynchronous Receiver Transmitter)
dependiendo de si permiten o no el modo sincrnico de comunicacin.
SPI
Este tipo de perifrico se utiliza para comunicar al microcontrolador con otros
microcontroladores o con perifricos externos conectados a l, por medio de una
interfaz muy sencilla. Hay solo un nodo controlador que permite iniciar cualquier
transaccin, lo cual es una desventaja en sistemas complejos, pero su sencillez
permite el aislamiento galvnico de forma directa por medio de optoacopladores.
I2C
Cumple las mismas funciones que el SPI, pero requiere menos seales de
comunicacin y cualquier nodo puede iniciar una transaccin. Es muy utilizado
para conectar las tarjetas grficas de las computadoras personales con los
monitores, para que estos ltimos informen de sus prestaciones y permitir la
autoconfiguracin del sistema de vdeo.
USB
Los microcontroladores son los que han permitido la existencia de este sistema de
comunicacin. Es un sistema que trabaja por polling (monitorizacin) de un
conjunto de perifricos inteligentes por parte de un amo, que es normalmente un
computador personal. Cada modo inteligente est gobernado inevitablemente por
un microcontrolador.
Ethernet
8
Es el sistema ms extendido en el mundo para redes de rea local cableadas. Los
microcontroladores ms poderosos de 32 bits se usan para implementar
perifricos lo suficientemente poderosos como para que puedan ser accesados
directamente por la red. Muchos de los enrutadores caseros de pequeas
empresas estn construidos sobre la base de un microcontrolador que hace del
cerebro del sistema.
Can
Este protocolo es del tipo CSMA/CD con tolerancia a elevados niveles de tensin
de modo comn y orientado al tiempo real. Este protocolo es el estndar ms
importante en la industria automotriz (OBD). Tambin se usa como capa fsica
del "field bus" para el control industrial.
Modulador de ancho de pulsos
Los PWM (Pulse Width Modulator) son perifricos muy tiles sobre todo para el
control de motores, sin embargo hay un grupo de aplicaciones que pueden
realizarse con este perifrico, dentro de las cuales podemos citar: inversin DC/AC
para UPS, conversin digital analgica D/A, control regulado de luz (dimming)
entre otras.
1.5.4 Instrucciones del microcontrolador.
f: cualquier registro del microcontrolador
W: registro de trabajo
b: posicion de un bit en el registro 'f'
d: destino, puede ser 'f' (d=1) o 'W' (d=0)
etiqueta: grupo de caracteres que marcan el inicio de una parte del programa
[]: opcional
: posicion de un bit dentro de un registro
ADDWF: Suma W y f
Suma el contenido del registro 'W' y el registro 'f'. Si "d" es 0, el resultado se
almacena en el registro W. Si 'd' es 1 el resutado se almacena en el registro 'f'.
Sintaxis: [etiqueta] ADDWF f,d
Operacin: (W) + (f) --> (destino)
Flags afectados: C, DC, Z
Ejemplo: ADDWF REG,1
Antes de la instruccin: W=0x03, REG=0x04
Despus de la instruccin: W=0x03, REG=0x07
ANDWF: W AND f
Realiza la operacin lgica AND entre el registro W y el registro "f". Si "d" es 0 el
resultado se almacena en el registro W. Si "d" es 1, el resultado se almacena en el
registro "f".
Sintaxis: [etiqueta] ANDWF f,d
Operacin: (W) AND (f) --> (destino)
9
Flags afectados: Z
Ejemplo: ANDWF REG,1
Antes de la instruccin: W=0x17, REG= 0xC2
Despus de la instruccin: W=0x17, REG= 0x02
DECF: Decrementa f en 1
De decrementa en uno el contenido del registro 'f'. Si d=0, el resultado se
almacena en W. Si d=1, el resultado se almacena en 'f'.
Sintaxis: [etiqueta] DECF f,d
Flags afectados: Z
Ejemplo: DEC CONT, 1
Antes de la instruccin: CONT=0x01, Z=0
Despus de la instruccin: CONT=0x00, Z=1
10
INCF: Incrementa el registro f
Incrementa en uno el contenido del registro 'f'. Si d=0, el resultado se almacena en
W. Si d=1, el resultado se almacena en 'f'.
Sintaxis: [label] INCF f,d
Flags afectados: Z
Ejemplo: INCF CONT,1
Antes de la instruccin: CONT=0xFF, Z=0
Despus de la instruccin: CONT=0x00, Z=1
IORWF: W OR f
Realiza la operacin lgica OR entre el registro W y el registro 'f'. Si d=0 el
resultado se almacena en el registro W. Si d=1, el resultado se almacen en el
registro 'f'.
Sintaxis: [etiqueta] IORWF f,d
Flags afectados: Z
Ejemplo: IORWF REG,0
Antes de la instruccin: REG=0x13, W=0x91
Despus de la instruccin: REG=0x13, W=0x93
SUBWF: Resta f - W
Resta el contenido del registro 'f' menos el contenido del registro W. Si d=0, el
resultado se almacena en el registro W. Si d=1, el resultado se almacena en el
registro 'f'.
Sintaxis: [etiqueta] SUBWF f,d
Flags afectados: C, DC, Z
Ejemplo: SUBWF REG,1
Antes de la instruccin: REG=0x01, W=0x02
Despus de la instruccin: REG=0xFF, W=0x02
SWAPF: Intercambio de f
El nibble bajo del registro 'f' se intercambia con el nibble alto del mismo. Si d=0, el
resultado se coloca en el registro W. Si d=1, el resultado queda en el registro 'f'.
Sintaxis: [etiqueta] SWAPF f,d
Flags afectados: Ninguno
Ejemplo: SWAPF REG,1
Antes de la instruccin: REG=0x54
Despus de la instruccin: REG=0x45
XORWF: W XOR f
Realiza la funcin lgica OR exclusiva entre el contenido del registro W y el
registro 'f'. Si d=0, el resultado se almacena en el registro W. Si d=1 el resultado se
almacena en el registro 'f'.
Sintaxis: [etiqueta] XORWF f,d
Flags afectados: Z
Ejemplo: XORWF REG,1
Antes de la instruccin: REG=0xAF, W=0xB5
Despus de la instruccin: REG=0x1A, W=0xB5
NOP: No operacion
No realiza ninguna operacion, solo consume un ciclo de reloj
Sintaxis: [etiqueta] NOP
IORLW: W OR literal
Se realiza la funcin lgica OR entre el registro W y la contante "k". El resultado se
almacena en el registro W.
Sintaxis: [etiqueta] IORLW k
Flags afectados: Z
Ejemplo: IORLW Ox35
Antes de la instruccin: W=0x9A
Despus de la instruccin: W=0xBF
14
XORLW: W XOR literal
Realiza la funcin lgica OR exclusiva entre el contenido del registro W y la
constante "k" de 8 bits. El resultado se almacena en el registro W.
Sintaxis: [etiqueta] XORLW k
Flags afectados: Z
Ejemplo: XORLW 0xAF
Antes de la instruccin: W = 0xB5
Despus de la instruccin: W = 0x1A
SUBLW: Resta L - W
A una constante "k" de 8 bits se le resta el registro W. El resultado es guardado en
el mismo registro W.
Sintaxis: [etiqueta] SUBLW k
Flags afectados: C,DC,Z
Y estas son las 35 instrucciones que podemos utilizar para programar los
microcontroladores PIC. La razon para que solo se utilicen 35 instrucciones en la
programacion es que los PIC son microcontroladores RISC, y estas instrucciones
estan bien optimizadas para tener una mayor velocidad de trabajo, una
arquitectura mas simple y un codigo mas compacto.
15
Patas 1, 2, 3, 17 y 18 (RA0-RA4/TOCKI): Es el PORT A. Corresponden a 5 lneas
bidireccionales de E/S (definidas por programacin). Es capaz de entregar niveles
TTL cuando la alimentacin aplicada en VDD es de 5V 5%. El
pin RA4/TOCKI como entrada puede programarse en funcionamiento normal o
como entrada del contador/temporizador TMR0. Cuando este pin se programa
como entrada digital, funciona como un disparador de Schmitt (Schmitt trigger),
puede reconocer seales un poco distorsionadas y llevarlas a niveles lgicos (cero
y cinco voltios). Cuando se usa como salida digital se comporta como colector
abierto; por lo tanto se debe poner una resistencia de pull-Up (resistencia externa
conectada a un nivel de cinco voltios, ...no te preocupes, mas abajo lo entenders
mejor). Como salida, la lgica es inversa: un "0" escrito al pin del puerto entrega a
la salida un "1" lgico. Este pin como salida no puede manejar cargas como
fuente, slo en el modo sumidero.
16
programacin del integrado.
17
Power-On Reset (POR):
Una condicin de Power-On Reset es generada a travs de un pulso dentro del
PIC, cuando se detecta una variacin en el voltaje de alimentacin V DD en el rango
de 1.2V a 1.7V. Para evitar esta condicin de Reset es necesario conectar el pin
MCLR (a travs de una resistencia) directamente a V DD, con lo que se consigue
eliminar componentes RC externos que pueden dar lugar a un POR.
Power-up Timer (PWRT):
Para evitar la posibilidad de un reset debido a POR, el dispositivo tambin posee
un bit de configuracin PWRTE(Power-Up Timer Enable) que puede habilitar o
deshabilitar la accin de PWRT (Power-Up Timer), este mecanismo que opera con
un oscilador interno RC, provee un retardo de 72 ms (en los cuales el PIC se
mantiene en RESET) a partir de una condicin de POR generalmente originada
cuando el microcontrolador es conectado a la fuente de alimentacin debido al
cambio de la seal DC permitiendo que el voltaje de alimentacin V DD llegue hasta
un nivel aceptable de operacin para el microcontrolador.
18
19
1.7 Ambiente integrado de desarrollo (IDE)
Entorno de Desarrollo Integrado (IDE).
Un entorno de desarrollo integrado, es un entorno de programacin que ha sido
empaquetado como un programa de aplicacin, es decir, consiste en un editor de
cdigo, un compilador, un depurador y un constructor de interfaz grfica (GUI).
Los IDE proveen un marco de trabajo amigable para la mayora de los lenguajes
de programacin tales como C++, PHP, Python, Java, C#, Delphi, Visual Basic,
etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de
ejecucin, en donde se permite utilizar el lenguaje de programacin en forma
interactiva, sin necesidad de trabajo orientado a archivos de texto.
Es posible que un mismo IDE pueda funcionar con varios lenguajes de
programacin. Este es el caso de Eclipse, al que mediante plagios se le puede
aadir soporte de lenguajes adicionales.
Un IDE debe tener las siguientes caractersticas:
Multiplataforma
Soporte para diversos lenguajes de programacin
Integracin con Sistemas de Control de Versiones
Reconocimiento de Sintaxis
Extensines y Componentes para el IDE
Integracin con Framework populares
Depurador
Importar y Exportar proyectos
Mltiples idiomas
Manual de Usuarios y Ayuda
Componentes
Editor de texto.
Compilador.
Intrprete.
Herramientas de automatizacin.
Depurador.
Posibilidad de ofrecer un sistema de control de versiones.
Factibilidad para ayudar en la construccin de interfaces grficas de
usuarios.
Ventajas de los IDEs.
La curva de aprendizaje es muy baja.
Es ms gil y ptimo para los usuarios que no son expertos en manejo de
consola.
20
Formateo de cdigo.
Funciones para renombrar variables, funciones.
Warnings y errores de sintaxis en pantalla de algo que no va a funcionar al
interpretar o compilar.
Poder crear proyectos para poder visualizar los archivos de manera grfica.
1.7.1 Ensamblador y compilador.
Ensamblador se refiere a un tipo de programa, informtico que se encarga de
traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto
que contiene cdigo mquina ejecutable directamente por la mquina para la que
se ha generado.
La tarea fundamental de un ensamblador es traducir un programa en lenguaje de
ensamblador al cdigo correspondiente en lenguaje de mquina.
ENSAMBLADORES CRUZADOS: Se denominan as a los ensambladores que se
utilizan en una computadora que posee el procesador diferente al que tendrn las
computadoras donde se va a ejecutar el programa objeto producido.
Son aquellas que permanecen en la memoria principal de la computadora y cargar
para su ejecucin al programa objeto producido.
Un compilador es querer traducir un programa de un lenguaje de alto nivel, a otro
lenguaje de nivel inferior (tpicamente lenguaje mquina).
Los compiladores son programas o herramientas encargadas de compilar. Un
compilador toma un texto (cdigo fuente) escrito en un lenguaje de alto nivel y lo
traduce a un lenguaje comprensible por las computadoras (cdigo objeto).
1.7.2 Simulador, debugger y emulador.
Emulador
Un emulador (imitar lo que otro hace, procurando ventaja) es un programa capaz
de actuar de intrprete en la mquina destino (nuestra PC o en una Mac, por
ejemplo) para que un software originalmente escrito para otra plataforma pueda
ser ejecutado en ella (PalmOS en nuestro caso).
El emulador traduce el cdigo de la mquina original al cdigo de la de destino
(nuestra PC), por lo que nuestra computadora ni siquiera sabe que est
comportndose como otra plataforma (otro sistema operativo diferente al que
ejecuta por defecto), y tan solo ejecuta el programa siguiendo su propio juego de
instrucciones, pero adaptado desde la plataforma original.
Simulador
21
Simular (que simula o finge). Aparato o instalacin que simula un fenmeno o
reproduce el funcionamiento de una mquina, vehculo, etc. Es muy utilizado en
adiestramientos. Para comprender mejor la diferencia entre un emulador y un
simulador
un simulador solo trata de reproducir el comportamiento del programa, El
simulador de la unidad central de procesamiento (CPU) es a menudo la parte ms
compleja de un emulador. Muchos emuladores son escritos utilizando simuladores
de CPU "preempaquetados", para as poder realizar una emulacin fiel y eficiente
de una mquina especfica.
22
un potencimetro . Su programa por defecto, explicado en la documentacin, gira
los LEDs en serie. La direccin y la velocidad de rotacin de la pantalla luminosa
se pueden cambiar con el botn y el potencimetro en la tarjeta PICkit.
PICkit2
El PICkit 2 - introducido en mayo de 2005
reemplaz al PICkit 1. La diferencia ms notable entre los dos es que el PICkit 2
tiene una unidad programadora / depuradora separada que se conecta a la placa
que lleva el chip a programar, PICkit 1 era una sola unidad. Esto hace posible usar
el programador con una tarjeta de circuito personalizado a travs de una cabecera
de programacin en serie del circuito (ICSP). Sin embargo, esta caracterstica no
est destinada a la llamada programacin de "produccin".
El PICkit 2 utiliza un PIC18F2550 interno con USB FullSpeed. El ltimo firmware
PICkit 2 permite al usuario programar y depurar la mayora de los miembros
PICmicro y dsPIC de 8 y 16 bits de la lnea de productos Microchip.
PICkit 3
Microchip ha pasado a fabricar el PICkit 3, una variacin del PICkit 2 con el mismo
factor de forma y un nuevo caso translcido. Cuenta con un procesador PIC24F de
16 bits ms rpido y un rango de regulacin de voltaje ms amplio. Hay algunas
quejas de no ser tan confiable como el Pickit 2.
Tanto el PICkit 2 como el PICkit 3 tienen reguladores de voltaje internos de
conmutacin. Esto les permite, en el caso del PICkit 2, generar voltajes de 2,5 a 5
voltios, o en el caso del PICkit 3, de 2,5 a 5,5 voltios, desde un suministro USB de
5 V, a unos 100 mA. Ambos tienen opciones para calibrar la salida con un
multmetro, para mayor precisin. Adicionalmente, para algunos PIC, se puede
generar el voltaje de programacin MCLR, en torno a 13 a 14 voltios. Este voltaje
es necesario para reprogramar la memoria flash.
El K150 es un programador de PICs de bajo costo que soporta los
microcontroladores ms populares de Microchip.
23
Es un entorno de desarrollo integrado (IDE) para aplicaciones basadas en
microchip PIC y microcontroladores dsPIC similares al entorno MPLAB . Se integra
con varios toolchains del compilador y del ensamblador (como gputils, sdcc, c18) y
con el simulador de GPSim. Soporta los programadores ms comunes (serial,
paralelo, ICD2, Pickit2, PicStart +), el depurador ICD2 y varios cargadores de
arranque (Tiny, Pickit2 y Picdem).
MPLAB X IDE
24