Documente Academic
Documente Profesional
Documente Cultură
UNIDAD IV MICROCONTROLADORES.
13-12-2011
= MICROCONTROLADOR. = Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir, se trata de un computador completo en un solo circuito integrado. Son diseados para disminuir el coste econmico y el consumo de energa de un sistema en particular. Por eso el tamao de la CPU, la cantidad de memoria y los perifricos incluidos dependern de la aplicacin. El control de un electrodomstico sencillo como una batidora, utilizar un procesador muy pequeo (4 u 8 bit) por que sustituir a un autmata finito. En cambio un reproductor de msica y/o vdeo digital (mp3 o mp4) requerir de un procesador de 32 bit o de 64 bit y de uno o ms Cdec de seal digital (audio y/o vdeo). El control de un sistema de frenos ABS (Antilock Brake System) se basa normalmente en un microcontrolador de 16 bit, al igual que el sistema de control electrnico del motor en un automvil.
Esquema de un microcontrolador Los microcontroladores representan la inmensa mayora de los chips de computadoras vendidos, sobre un 50% son controladores "simples" y el restante corresponde a DSPs ms especializados. Mientras se pueden tener uno o dos microprocesadores de propsito general en casa (vd. est usando uno para esto), usted tiene distribuidos seguramente entre los electrodomsticos de su hogar una o dos docenas de microcontroladores. Pueden encontrarse en casi cualquier dispositivo electrnico como automviles, lavadoras, hornos microondas, telfonos, etc...
Un microcontrolador difiere de una CPU normal, debido a que es ms fcil convertirla en una computadora en funcionamiento, con un mnimo de chips externos de apoyo. La idea es que el chip se coloque en el dispositivo, enganchado a la fuente de energa y de informacin que necesite, y eso es todo. Un microprocesador tradicional no le permitir hacer esto, ya que espera que todas estas tareas sean manejadas por otros chips. Hay que agregarle los modulos de entrada/salida (puertos) y la memoria para almacenamiento de informacin. Por ejemplo, un microcontrolador tpico tendr un generador de reloj integrado y una pequea cantidad de memoria RAM y ROM/EPROM/EEPROM/FLASH, significando que para hacerlo funcionar, todo lo que se necesita son unos pocos programas de control y un cristal de sincronizacin. Los microcontroladores disponen generalmente tambin de una gran variedad de dispositivos de entrada/salida, como convertidores de analgico a digital, temporizadores, UARTs y buses de interfaz serie especializados, como I2C y CAN. Frecuentemente, estos dispositivos integrados pueden ser controlados por instrucciones de procesadores especializados. Los modernos microcontroladores frecuentemente incluyen un lenguaje de programacin integrado, como el BASIC que se utiliza bastante con este propsito. Los microcontroladores negocian la velocidad y la flexibilidad para facilitar su uso. Debido a que se utiliza bastante sitio en el chip para incluir funcionalidad, como los dispositivos de entrada/salida o la memoria que incluye el microcontrolador, se ha de prescindir de cualquier otra circuitera.
= Familias de microcontroladores =
Los microcontroladores ms comunes uso son:
Empresa
8 bits
12 bits
14 bits
16 bits
32 bits
64 Observaciones bits
Atmel AVR
Hitachi, Ltd
H8
Holtek
HT8
Intel
MCS96, MXS296
National Semiconductor
COP8
Microchip
Familia Familia 12Fxx, 16Cxx 18Cxx y Familia 12Cxx y 16Fxx de 18Fxx de 10f2xx de 12 14 bits 16 bits bits (PIC16F87X)
NEC
78K
Parallax
ST
ST 62,ST 7
Texas Instruments
TMS370, MSP430
Zilog
Z8, Z86E02
Silabs
C8051
= DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPROCESADOR. = Las extensas reas de aplicacin de los Microcontroladores y Microprocesadores, que se pueden considerar ilimitadas, exigirn un gigantesco trabajo de diseo y fabricacin. *La industria informtica acapara gran parte de los ( C) y ( P) que se fabrican. *Los sistemas de supervisin , vigilancia y alarma los utilizan para optimizar rendimiento de calefaccin, alarmas de incendio y robo, etc. *Las comunicaciones y sus sistemas de transferencia de informacin . Inicialmente cuando no existan los microprocesadores las personas se ingeniaban en disear sus circuitos electrnicos y los resultados estaban expresados en diseos que implicaban muchos componentes electrnicos y clculos matemticos. Un circuito lgico bsico requera de muchos elementos como transistores, resistencias. Al principio se crea que el manejo de un microprocesador era para aquellas personas con un coeficiente intelectual muy alto; Por lo contrario con la aparicin de este circuito integrado todo sera mucho ms fcil de entender y los diseos electrnicos serian mucho ms pequeos y simplificados. Los microcontroladores estn conquistando el mundo, pero la invasin acaba de comenzar y el nacimiento del siglo XXI ser testigo de la conquista masiva de estos diminutos computadores, que gobernarn la mayor parte de los aparatos que se fabrican hoy en das. Cada vez existen ms productos que incorporan un Microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamao y costo , mejorar su fiabilidad. El funcionamiento y aplicaciones de los microcontroladores y los microprocesadores permite profundizar en los aspectos tecnolgicos de las arquitecturas de las nuevas computadoras, convirtindose de esta forma en una herramienta til para el desarrollo de variadas aplicaciones que contribuyen al avance tecnolgicos y desarrollo integral de la sociedad.
= El Procesado =
Pues bien Definamos a un microprocesador o procesador como un elemento de hardware que se encarga como su nombre mismo lo dice procesar datos a partir de ciertas instrucciones de entrada arrojando cierto resultado, todo esto en base a su set de instrucciones que incorpora.
Un microprocesador por si solo sera prcticamente inservible, para que funcione necesita estar conectado mediante diferentes buses a otros elementos como la memoria RAM, y dispositivos de entrada y salida (E/S) y otro tipo de memoria especial llamada EEPROM que almacena los datos de forma permanente aun sin energa elctrica. La mayora de los procesadores de las PCs personales suelen utilizar la arquitectura Von Neuman. En esta arquitectura el procesador comparte la memoria RAM para almacenar las instrucciones del programa y los datos. Debemos comprender que en una PC, cuando se carga un programa en memoria, a ste se le asigna un espacio de direcciones de la memoria que se divide en segmentos, de los cuales tpicamente tenderemos los siguientes: cdigo (programa), datos y pila. Es por ello que podemos hablar de la memoria como un todo, aunque existan distintos dispositivos fsicos en el sistema (HDD, RAM, CD, FLASH). Utilizar la arquitectura tiene ventajas y desventajas, una de ellas es que al utilizar la misma memoria para almacenar los datos de programa y las instrucciones, solo se utilizan tres buses (de control, de datos y de direcciones) de estar separadas utilizaramos otros tres buses mas, que con respecto al diseo seria ms costosa. Como desventaja principal de esta arquitectura encontramos que el procesador no puede acceder a los datos de programa y a las instrucciones al mismo tiempo, sino que debe almacenar una de ellos en los registros del procesador y volver a consultar las instrucciones para ejecutar, esto se traduce en prdida de tiempo ya que el procesador tendr que acceder dos veces a la memoria para poder ejecutar una sola instruccin. Tambin existe otro tipo de arquitectura llamada Harvard que es utilizada comnmente por supercomputadoras o Mainframes. Esta define que la memoria de datos de programa y las instrucciones deben estar separadas. Con esto se tienen que crear otros tres buses a la otra memoria que incorporamos. Pero vale la pena ya que podemos procesar la informacin mas rpido, pues se puede acceder a la memoria de datos y a las instrucciones al mismo tiempo.
Existen dos tipos de set de instrucciones: CISC y RISC Las instrucciones CISC (Complex Instruction Set Computer, Computadora de Conjunto de Instrucciones Complejo) se caracterizan por tener un repertorio amplio de instrucciones, que pueden hacer clculos muy complejos. Pero tambin se complica su uso. El tipo RISC (Reduced Instruction Set Computer, Computadora con Conjunto de Instrucciones Reducido) se distingue por sus pocas instrucciones, y tamao un tamao fijo por instruccin adems permite el paralelismo en la ejecucin.
= El Microcontrolador =
Fue necesario definir algunas de las caractersticas principales de un procesador porque conociendo lo anterior definiremos al Microcontrolador. Un Microcontrolador en realidad no es otra cosa ms que una mini computadora embebida dentro de un solo encapsulada del tamao de un chip. Este cuenta con procesador, memoria RAM, Memoria ROM y perifricos de entrada y salida. Tcnicamente un Microcontrolador lleva dentro un Microprocesador. Este a su vez cuenta con buses de datos, control y direccin hacia la memoria y hacia los perifricos o puertos. La arquitectura de estos dispositivos es la Harvard quiere decir que poseen 2 memorias una memoria RAM que almacena los datos y otra de tipo EPROM o EEPROM que almacena el programa. Al usar esta arquitectura tiene la ventaja de poder usar simultneamente los dos tipos de memoria y en lugar de ser una desventaja como lo era con una PC normal puesto que todo se encuentra en un solo encapsulado puede implementarse fcilmente. El set de instrucciones es del tipo RISC las cuales ya vimos anteriormente. El lenguaje nativo de estos dispositivos es el lenguaje ensamblador. Aunque en la actualidad hay muchas empresas que se dedican a desarrollar compiladores que funcionan con la sintaxis de C o Basic que despus traducirn a lenguaje mquina para programar el Microcontrolador. Existen muchos fabricantes como Intel, Motorola, Texas Instruments, etc. Pero los ms conocidos son los PICs de Microchip y los AVR de Atmel. Actualmente a los microcontroladores se les puede hallar en muchsimos electrodomsticos como lavadoras, hornos de micro ondas, DVDs etc. Por su bajo precio, fcil programacin y la extensa informacin que circula en internet estos se han vuelto muy utilizados en la electrnica y ramas afines.
Como podemos apreciar en el esquema, la incorporacin del puente de diodos nos permite utilizar este dispositivo tanto con cerraduras de continua como de alterna, por lo que no debemos de tener cuidado con la polaridad. Gracias al microcontrolador pic 12f629 de tan solo 8 pines, podemos implementar el esquema en un tamao bastante reducido, y situarlo prximo a la cerradura a proteger, con objeto de poder visualizar la intermitencia del Led. Podemos descargar el archivo generado por PROTEUS y el cdigo HEX para su montaje o simulacin, as como el cdigo fuente ASM, por si deseamos realizar alguna modificacin.
Podemos descargar el archivo generado por Proteus y el codigo Hex para su montaje o simulacin
Tambin se puede utilizar este circuito acoplndolo al TDA1524 o al LM1036 para regular el volumen de una seal estreo, ya que estos integrados consiguen variar el nivel de sonido dependiendo de la tensin que exista en uno de sus pines. Para ello tan solo tendremos que conectar la resistencia de entrada a Vdd, y la tensin obtenida acoplarla a alguno de estos integrados.
La empresa Atmel ha desarrollado una gran cantidad de microcontroladores en diferentes gamas, de forma similar a lo que ha hecho la empresa Microchip con nuestros viejos amigos: los PICs . Quiz, el ms popular es el ATMEL AT90S1200, que es algo as como el 16F84 de Microchip (en cuanto a popularidad se refiere). A continuacin se realiza algunos datos comparativos entre el AT90S1200 y el PIC16F84: N de instrucciones: AVR - 89, PIC - 35 Registros RAM: AVR - 32, PIC - 68 Velocidad: AVR - 12MHz, PIC: 20MHz Memoria de Programa: AVR - 1kByte FLASH (512 lneas de programa, 16bits por inst.), PIC:1kx14 (1024 lneas de programa de 14 bit cada una). Memoria EEPROM libre: AVR - 64Bytes, PIC - 64Bytes Salidas: AVR - 15, PIC - 13 TIMER: AVR - 1 de 8bit (con prescaler desde CK hasta CK/1024), PIC - 1 de 8 bit (con prescaler desde 1:2 hasta 1:256) Comparador Analgico (NO ADC): AVR - 1 PIC - NO POSEE Watchdog: Ambos poseen Oscilador interno: Ambos poseen, en el AVR slo habilitable con programacin paralela Niveles de pila (STACK): AVR - 3, PIC - 8 Interrupciones: AVR - reset, interna, externa, timer y por comparador analgico, PIC - 5 interrupciones
Bsicamente, los AVR tienen 3 registros para cada puerto de salida a saber: DDRB Sirve para decir qu patas son de entrada o salida, 0 es entrada, 1 es salida (es inverso a los PIC). PINB Registro que sirve para entradas solamente. PORTB Registro que sirve para salidas solamente.
Esto significa que para leer una entrada se debe usar el registro PINB mientras que para escribir datos en una salida se debe emplear el registro PORTB (obviamente si hacemos referencia a las patas del puerto B). En el ATMEL AT90S1200 el PortB tiene 8 bits de datos, a diferencia del PORTD que tiene slo 7. El bit 7 del PORTD no se emplea; PORTD tambin consta de 3 registros: DDRD, PORTD y PIND.
Las principales caractersticas del dispositivo son las siguientes: * Alto desempeo, baja potencia. * Arquitectura RISC avanzada: -120 instrucciones poderosas, la mayora con ejecucin de un solo ciclo de reloj. -32x8 registros de trabajo de propsito general. -operacin totalmente esttica. * Programa y Memoria de Datos no voltiles: -2/4/8 kbytes de Memoria Flash Programable en el sistema, con duracin: 10000 ciclos de escritura/borrado. -128/256/512 bytes de EEPROM programable en el sistema, con duracin: 100000 ciclos de escritura/borrado. -128/256/512 bytes de SRAM interna. -Cerrojo de programacin para autoprogramar la Memoria Flash y Seguridad de Datos de EEPROM. * Caractersticas Perifricas: -Contador/Temporizador de 8 bits con Prescaler y dos canales PWM. -Contador/Temporizador de Alta Velocidad de 8 bits con Prescaler separado: Dos Salidas PWM de Alta Frecuencia con Registros de Comparacin de Salida separados. Generador Programable de Tiempo Muerto. -Interfaz Serie Universal con Detector de Condicin de Comienzo. -ADC de 10 bits: Cuatro Canales de Una Sola Salida. Dos Pares de Canales ADC Diferenciales con Ganancia Programable (1x, 20x). -Temporizador Programable de Vigilancia con Oscilador separado dentro del integrado. -Comparador Analgico dentro del integrado. * Caractersticas Especiales del Microcontrolador: -Sistema de Depuracin debugWIRE dentro del integrado. -Programable dentro del Sistema a travs del Puerto SPI. -Fuentes de Interrupcin Externas e Internas. -Modos de Descanso en Baja Potencia, de Reduccin de Ruido de ADC, y de Reduccin de Potencia. -Circuito Mejorado de Reinicializacin de Encendido. -Circuito Programable de Deteccin de Brown-out (estado en que la tensin es entre un 8 y un 12% inferior al valor tpico). -Oscilador Calibrado interno.
EJ.
A continuacin se muestra la lectura de un sensor de temperatura digital como es el DS1620 de Dallas Semiconductores, a travs de un microcontrolador ATMEL AT89CXX, dicho microcontrolador desplegara la lectura del sensor de temperatura a travs de 3 displays de 7 segmentes.
El circuito que ves a continuacin debe de ser modificado, se le deben de adicionar buffer o algn otro dispositivo (como veas conveniente) para poder amplificar la corriente en los displays, pues directos al micro tienen muy poca luminosidad. Este sensor de temperatura se lee serial mente a travs de su bus I2C, esto puedes verlo en el manual, u hoja de especificacin del dispositivo, adems puede ser programado como termistor, es decir darle valores de temperatura baja alta y media, de acuerdo a los niveles programados y a su lectura de temperatura se pondrn en estado alto o bajo las salidas del DS1620 asignadas para tal efecto. Puedes usar 3 displays o cuatro como ves en la figura, no existe ningn problema, adems puedes cambiar el valor del cristal, yo lo hice funcionar con uno de 4 de 12 y de 16.
Este cdigo es bastante simple nada complicado y de mucha ayuda para la realizacin de otros proyectos adems que en el mismo programa ver la utilizacin de los comandos de ajuste a decimal muy buenos.
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;* Programa: ;* ;* Descripcin: ;* ;* Se controla un ds1620 atravs de un at89c52 leyendo de el y mostrando ;* El resultado ledo en una Terminal virtual hacia el puerto serial del ;* Microcontrolador, y los resultados a 4 display ;* ;* Autor: ;* ;* Raul Alejandro Quispe Larico cel 72097633 - lapaz bolivia Control de un sensor de temperatura ds1620
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; esta es la conexin de pines entre el ds1620 y el at89c52 displays dq clk rst t auxa n_hex nh signo equ equ equ equ equ equ p0 equ p3.3 p3.4 equ 3bh 3ch equ 3eh 3dh 3ah p3.2
03h
; interrupcion externa 0
0bh
reti org reti org reti org reti org 25h ; localidad donde se inicia el resto del programa 23h ; interrupcion del puerto serial 1bh ; interrupcion del timer 1 13h ; interupcion externa 1
;---------------------------------------org start: setb acall clk configure ; pone a 1 el ck del ds1620 ; configura el ds1620 ; esperar 10 ms para configuracion de escritura 30h
ajmp loop
;---------------------------------------write1620: mov r0, #08h nextbitwrite: clr clk rrc a mov dq, c setb clk djnz r0, nextbitwrite ret ;---------------------------------------; LECTURA DEL DS1620 ; contador de bits
;---------------------------------------read1620: mov r0, #09h setb dq nextbitread: clr clk mov c, dq setb clk rrc a djnz r0, nextbitread ; contador de lectura de datos del DS1620
;---------------------------------------configure: setb rst mov a, #0ch acall write1620 mov a, #00001010b acall write1620 clr rst ret ;---------------------------------------; inicio de conversin ; cpu = 1, 1shot = 0, thf = 0, tlf = 0
;---------------------------------------start_convert: setb rst mov a, #0eeh acall write1620 clr rst ret ;---------------------------------------; LECTURA DE TEMPERATURA
;---------------------------------------read_temperature:
; final de la transferencia
;--------------------------------------; ; ; ; ; ;--------------------------------------a_dec: mov jnb es_nega: mov mov signo,#0ffh auxa,a ; guardo el negativo signo,#0 acc.7,es_posi convercion de hexadecimal a decimal ----------------------------------la convercion es de un numero hexadecimal de 1 byte en el acumulador a a un numero de datos decimales de 2 bytes en el mismo a = low y b = high
es_posi: mov mov mov mov mov lazo: mov add da jnc inc salto: inc mov mov cjne b auxa,a a,b a,n_hex,lazo a,auxa a,#1 a salto nh ; incrementando el nhigh n_hex,a a,#99h auxa,a b,#0ffh nh,#0ffh ; nl es el resultado high
; detectando el signo
con_signo: mov orl mov sin_signo: mov ret a,auxa a,b a,#040h b,a ; agregando el signo negativo
a,#0fh buscar_numero displays,a p2.3 delay p2.3 ; encuentra el numero del display en aca
a,auxa a a,#0fh
call
buscar_numero
mov
a,b
mov
auxa,a
a,#0fh buscar_numero displays,a p2.1 delay p2.1 ; encuentra el numero del display en ac a
;------------------------------------------
;-----------------------------------------delay: mov buc: nop djnz ret ;-----------------------------------------; ; ; ; esta es la secuencia de datos que genera los numeros para catodo comun tabla del display t,buc t,#0ffh
;-----------------------------------------tabla_display: ; db 0 1 2 3 4 5 6 7 8 9 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
end
;*************************** ; Descripcion: ; ; ; ; ; Esta rotacion se muestra por el puerto P1 el sentido de la rotacion lo determina el pin p3.0 si este es 1 entonces rotacion a la izquierda si es 0 rotacion a la derecha cristal de 11.0592Mhz
0050h
; inicio de programa
mostrar
a mostrar
;--------------------------------------------------------retardo: mov sal0: sal1: sal2: mov mov djnz djnz djnz ret end r3,#0aeh r4,#0aeh r5,#007h r5,sal2 r4,sal1 r3,sal0