Microcontroladores
Microcontrolador Motorola Motorola 68HC11 68HC11 y chips de soporte microcontrolador es es un circuito integrado o integrado o chip que incluye en su interior las tres unidades funcionales de una computadora:: unidad central de procesamiento, computadora procesamiento , memoria memoria y y unidades de E/S entrada/salida!" Características Son dise#ados para reducir el costo econ$mico y el consumo de energ%a de un sistema en particular" &or eso el tama#o de la unidad central de procesamiento, procesamiento , la cantidad de memoria y los perif'ricos incluidos depender(n de la aplicaci$n" El control de un electrodom'stico sencillo como una )atidora, utili*ar( un procesador muy peque#o + u 8 )it! por que sustituir( a un aut$mata finito" En cam)io un reproductor de msica y/o -%deo digital mp. mp. o o mp+ mp+!! requerir( de un procesador de . )it o de 6+ )it y de uno o m(s C$dec C$dec de de se#al digital audio digital audio y/o -%de -%deo! o!"" El cont contro roll de un siste sistema ma de freno frenos s 0S 0ntiloc2 0ntiloc2 ra2e System System!! se )asa )asa norm normal alme ment nte e en un microcontrolador microcontrolador de 16 )it, al igual que el sistema de control electr$nico del motor en un autom$-il autom$-il""
Esquema de un microcontrolador" 3os microcontroladores microcontroladores representan la inmensa mayor%a de los chips de computadoras -endidos, so)re un 45 son controladores 7simples7 y el restante corresponde a S&s m(s especiali*ados" Mientras se pueden tener uno o dos microprocesadores de prop$sito general en casa -d" est( usando uno para esto!, usted tiene distri)uidos seguramente entre los electrodom'sticos de su hogar una o dos docenas de microcontroladores" &ueden encontrarse en casi cualquier dispositi-o electr$nico como autom$-iles autom$-iles,, la-adoras la-adoras,, hornos microondas, microondas , tel'fonos,, etc" tel'fonos 9n microcontrolador difiere de una C&9 C&9 normal, normal, de)ido a que es m(s f(cil con-ertirla en una computadora en funcionamiento, funcionamiento, con un m%nimo de chips eternos de apoyo" apoyo " 3a idea es que el chip se coloque en el dispositi-o, engan engancha chado do a la fuent fuente e de energ% energ%a a y de inform informaci aci$n $n que necesit necesite, e, y eso es todo" todo" 9n micro micropro proces cesado ador r tradicional no le permitir( hacer esto, ya que espera que todas estas tareas sean mane;adas por otros chips" Hay que agregarle los modulos de entrada/salida puertos! y la memoria para almacenamiento de informaci$n"
1
&or e;emplo, un microcontrolador t%pico tendr( un generador de relo; integrado y una peque#a cantidad de memoria <0M y <=M/E&<=M/EE&<=M/>30SH, significando que para hacerlo funcionar, todo lo que se necesita son unos pocos programas de control y un cristal de sincroni*aci$n" 3os microcontroladores disponen generalmente tam)i'n de una gran -ariedad de dispositi-os de entrada/salida, como con-ertidores de anal$gico a digital, tempori*adores, 90recuentemente, estos dispositi-os integrados pueden ser controlados por instrucciones de procesadores especiali*ados" 3os modernos microcontroladores frecuentemente incluyen un lengua;e de programaci$n integrado, como el 0S@C que se utili*a )astante con este prop$sito" 3os microcontroladores negocian la -elocidad y la flei)ilidad para facilitar su uso" e)ido a que se utili*a )astante sitio en el chip para incluir funcionalidad, como los dispositi-os de entrada/salida o la memoria que incluye el microcontrolador, se ha de prescindir de cualquier otra circuiter%a" Estructura básica de un microcontrolador En esta figura, -emos al microcontrolador metido dentro de un encapsulado de circuito integrado, con su procesador C&9!, )uses, memoria, perif'ricos y puertos de entrada salida" >uera del encapsulado se u)ican otros circuitos para completar perif'ricos internos y dispositi-os que pueden conectarse a los pines de entrada/salida" ?am)i'n se conectar(n a los pines del encapsulado la alimentaci$n, masa, circuito de completamiento del oscilador y otros circuitos necesarios para que el microcontrolador pueda tra)a;ar" Núcleo de un microcontrolador 0un cuando el microcontrolador es una computadora em)e)ida dentro de un circuito integrado, se compone de un ncleo y un con;unto de circuitos adicionales" entro del ncleo se encuentran el procesador y la memoria, todo ello estructurado de forma tal que conforme una arquitectura de computadora" Arquitecturas de computadora (sicamente eisten dos arquitecturas de computadoras, y por supuesto, est(n presentes en el mundo de los microcontroladores: Bon Aeumann y Har-ard" 0m)as se diferencian en la forma de conei$n de la memoria al procesador y en los )uses que cada una necesita" 3a arquitectura Bon Aeumann es la que se utili*a en las computadoras personales, para ella eiste una sola memoria, donde coeisten las instrucciones de programa y los datos, accedidos con un )us de direcci$n, uno de datos y uno de control" e)emos comprender que en una &C, cuando se carga un programa en memoria, a 'ste se le asigna un espacio de direcciones de la memoria que se di-ide en segmentos, de los cuales t%picamente tenderemos los siguientes: c$digo programa!, datos y pila" Es por ello que podemos ha)lar de la memoria como un todo, aunque eistan distintos dispositi-os f%sicos en el sistema H, <0M, C, >30SH!" En el caso de los microcontroladores, eisten dos tipos de memoria )ien definidas: memoria de datos t%picamente algn tipo de S<0M! y memoria de programas <=M, &<=M, EE&<=M, >30SH u de otro tipo no -ol(til!" En este caso la organi*aci$n es distinta a las de las &C, porque hay circuitos distintos para cada memoria y normalmente no se utili*an los registros de segmentos, sino que la memoria est( segregada y el acceso a cada tipo de memoria depende de las instrucciones del procesador" 0 pesar de que en los sistemas integrados con arquitectura Bon Aeumann la memoria est' segregada, y eistan diferencias con respecto a la definici$n tradicional de esta arquitectura los )uses para acceder a am)os tipos de memoria son los mismos, del procesador solamente salen el )us de datos, el de direcciones, y el de control" Como conclusi$n, la arquitectura no ha sido alterada, porque la forma en que se conecta la memoria al procesador sigue el mismo principio definido en la arquitectura )(sica" Esta arquitectura es la -ariante adecuada para las &C, porque permite ahorrar una )uena cantidad de l%neas de E/S, que son )astante costosas, so)re todo para aquellos sistemas como las &C, donde el procesador se monta en algn tipo de soc2et alo;ado en una placa madre mother)oard!" ?am)i'n esta organi*aci$n les ahorra a los dise#adores de mother)oards una )uena cantidad de pro)lemas y reduce el costo de este tipo de sistemas"
2
0lgunas familias de microcontroladores como la @A?E3D41 y la 85 implementan este tipo de arquitectura, fundamentalmente porque era la utili*ada cuando aparecieron los primeros microcontroladores" 3a otra -ariante es la arquitectura Har-ard, y por ecelencia la utili*ada en supercomputadoras, en los microcontroladores, y sistemas integrados en general" En este caso, adem(s de la memoria, el procesador tiene los )uses segregados, de modo que cada tipo de memoria tiene un )us de datos, uno de direcciones y uno de control" 3a -enta;a fundamental de esta arquitectura es que permite adecuar el tama#o de los )uses a las caracter%sticas de cada tipo de memoria adem(s, el procesador puede acceder a cada una de ellas de forma simult(nea, lo que se traduce en un aumento significati-o de la -elocidad de procesamiento, t%picamente los sistemas con esta arquitectura pueden ser dos -eces m(s r(pidos que sistemas similares con arquitectura Bon Aeumann" 3a des-enta;a est( en que consume muchas l%neas de E/S del procesador por lo que en sistemas donde el procesador est( u)icado en su propio encapsulado, solo se utili*a en supercomputadoras" Sin em)argo, en los microcontroladores y otros sistemas integrados, donde usualmente la memoria de datos y programas comparten el mismo encapsulado que el procesador, este incon-eniente de;a de ser un pro)lema serio y es por ello que encontramos la arquitectura Har-ard en la mayor%a de los microcontroladores" Procesador en detalle En los a#os F5 del siglo GG, la electr$nica digital no esta)a suficientemente desarrollada, pero dentro de la electr$nica ya era una especialidad consagrada" En aquel entonces las computadoras se dise#a)an para que reali*aran algunas operaciones muy simples, y si se quer%a que estas m(quinas pudiesen hacer cosas diferentes, era necesario reali*ar cam)ios )astante significati-os al hardare" 0 principios de los a#os F5, una empresa ;aponesa le encarg$ a una ;o-en compa#%a norteamericana que desarrollara un con;unto de circuitos para producir una calculadora de )a;o costo" @A?E3 se dedic$ de lleno a la tarea y entre los circuitos encargados desarroll$ uno muy especial, algo no creado hasta la fecha: el primer microprocesador integrado" El +55+ sali$ al mercado en 1IF1, es una m(quina digital sincr$nica comple;a, como cualquier otro circuito l$gico secuencial sincr$nico" Sin em)argo, la -enta;a de este componente est( en que alo;a internamente un con;unto de circuitos digitales que pueden hacer operaciones corrientes para el c(lculo y procesamiento de datos, pero desde una $ptica diferente: sus entradas son una serie de c$digos )ien definidos, que permiten hacer operaciones de car(cter espec%fico cuyo resultado est( determinado por el tipo de operaci$n y los operandos in-olucrados" Bisto as%, no hay nada de especial en un microprocesador la mara-illa est( en que la com)inaci$n adecuada de los c$digos de entrada, su e;ecuci$n secuencial, el poder saltar hacia atr(s o adelante en la secuencia de c$digos en )ase a decisiones l$gicas u $rdenes espec%ficas, permite que la m(quina realice un mont$n de operaciones comple;as, no contempladas en los simples c$digos )(sicos" Hoy estamos acostum)rados a los sistemas con microprocesadores, pero en el Jle;anoK 1IF1 esta era una forma de pensar un poco diferente y hasta escandalosa, a tal punto que usicom, la empresa que encarg$ los chips a @A?E3, no se mostr$ interesada en el in-ento, as% que @A?E3 puso manos a la o)ra y lo comerciali*$ para otros que mostraron inter's y )ueno, el resto de la historia: una re-oluci$n sin precedentes en el a-ance tecnol$gico de la humanidad" Es l$gico pensar que el in-ento del microprocesador integrado no fue una re-elaci$n di-ina para sus creadores, sino que se sustent$ en los a-ances, eistentes hasta el momento, en el campo de la electr$nica digital y las teor%as so)re computaci$n" &ero sin lugar a dudas fue la gota que colm$ la copa de la re-oluci$n cient%ficoD t'cnica, porque permiti$ desarrollar aplicaciones impensadas o acelerar algunas ya encaminadas" 3a conclusi$n es simple, el mundo era uno antes del microprocesador y otro despu's de su in-enci$n, piense en un mundo sin microprocesadores y se encontrar( remontado a los a#os F5 del siglo GG" 0hora comen*aremos a -er c$mo es que est( hecho un procesador, no ser( una eplicaci$n demasiado detallada porque desde su in-enci$n 'ste ha tenido importantes re-oluciones propias, pero hay aspectos )(sicos que no han cam)iado y que constituyen la )ase de cualquier microprocesador" En la >igura LEsquema 3
de un microcontroladorL podemos -er la estructura t%pica de un microprocesador, con sus componentes fundamentales, claro est( que ningn procesador real se a;usta eactamente a esta estructura, pero aun as% nos permite conocer cada uno de sus elementos )(sicos y sus interrelaciones" Registros Son un espacio de memoria muy reducido pero necesario para cualquier microprocesador, de aqu% se toman los datos para -arias operaciones que de)e reali*ar el resto de los circuitos del procesador" 3os registros sir-en para almacenar los resultados de la e;ecuci$n de instrucciones, cargar datos desde la memoria eterna o almacenarlos en ella" 0unque la importancia de los registros pare*ca tri-ial, no lo es en a)soluto" e hecho una parte de los registros, la destinada a los datos, es la que determina uno de los par(metros m(s importantes de cualquier microprocesador" Cuando escuchamos que un procesador es de +, 8, 16, . $ 6+ )its, nos estamos refiriendo a procesadores que reali*an sus operaciones con registros de datos de ese tama#o, y por supuesto, esto determina muchas de las potencialidades de estas m(quinas" Mientras mayor sea el nmero de )its de los registros de datos del procesador, mayores ser(n sus prestaciones, en cuanto a poder de c$mputo y -elocidad de e;ecuci$n, ya que este par(metro determina la potencia que se puede incorporar al resto de los componentes del sistema, por e;emplo, no tiene sentido tener una 039 de 16 )its en un procesador de 8 )its" &or otro lado un procesador de 16 )its, puede que haga una suma de 16 )its en un solo ciclo de m(quina, mientras que uno de 8 )its de)er( e;ecutar -arias instrucciones antes de tener el resultado, aun cuando am)os procesadores tengan la misma -elocidad de e;ecuci$n para sus instrucciones" El procesador de 16 )its ser( m(s r(pido porque puede hacer el mismo tipo de tareas que uno de 8 )its, en menos tiempo" Unidad de control Esta unidad es de las m(s importantes en el procesador, en ella recae la l$gica necesaria para la decodificaci$n y e;ecuci$n de las instrucciones, el control de los registros, la 039, los )uses y cuanta cosa m(s se quiera meter dentro del procesador" 3a unidad de control es uno de los elementos fundamentales que determinan las prestaciones del procesador, ya que su tipo y estructura, determina par(metros tales como el tipo de con;unto de instrucciones, -elocidad de e;ecuci$n, tiempo del ciclo de m(quina, tipo de )uses que puede tener el sistema, mane;o de interrupciones y un )uen nmero de cosas m(s que en cualquier procesador -an a para a este )loque" &or supuesto, las unidades de control, son el elemento m(s comple;o de un procesador y normalmente est(n di-ididas en unidades m(s peque#as tra)a;ando de con;unto" 3a unidad de control agrupa componentes tales como la unidad de decodificaci$n, unidad de e;ecuci$n, controladores de memoria cache, controladores de )uses, controladores de interrupci$n, pipelines, entre otros elementos, dependiendo siempre del tipo de procesador" Unidad aritmético-lgica Como los procesadores son circuitos que hacen )(sicamente operaciones l$gicas y matem(ticas, se le dedica a este proceso una unidad completa, con cierta independencia" 0qu% es donde se reali*an las sumas, restas, y operaciones l$gicas t%picas del (lge)ra de oole" 0ctualmente este tipo de unidades ha e-olucionado mucho y los procesadores m(s modernos tienen -arias 039, especiali*adas en la reali*aci$n de operaciones comple;as como las operaciones en coma flotante" e hecho en muchos casos le han cam)iado su nom)re por el de Jcoprocesador matem(ticoK, aunque este es un t'rmino que surgi$ para dar nom)re a un tipo especial de procesador que se conecta directamente al procesador m(s tradicional" Su impacto en las prestaciones del procesador es tam)i'n importante porque, dependiendo de su potencia, tareas m(s o menos comple;as, pueden hacerse en tiempos muy cortos, como por e;emplo, los c(lculos en coma flotante" uses
4
Son el medio de comunicaci$n que utili*an los diferentes componentes del procesador para intercam)iar informaci$n entre s%, e-entualmente los )uses o una parte de ellos estar(n refle;ados en los pines del encapsulado del procesador" En el caso de los microcontroladores, no es comn que los )uses est'n refle;ados en el encapsulado del circuito, ya que estos se destinan )(sicamente a las E/S de prop$sito general y perif'ricos del sistema" Eisten tres tipos de )uses: •
• •
irecci$n: Se utili*a para seleccionar al dispositi-o con el cual se quiere tra)a;ar o en el caso de las memorias, seleccionar el dato que se desea leer o escri)ir" atos" Control: Se utili*a para gestionar los distintos procesos de escritura lectura y controlar la operaci$n de los dispositi-os del sistema"
Con!unto de instrucciones 0unque no apare*ca en el esquema, no pod%amos de;ar al con;unto o repertorio de instrucciones fuera de esta fiesta, porque este elemento determina lo que puede hacer el procesador" efine las operaciones )(sicas que puede reali*ar el procesador, que con;ugadas y organi*adas forman lo que conocemos como softare" El con;unto de instrucciones -ienen siendo como las letras del alfa)eto, el elemento )(sico del lengua;e, que organi*adas adecuadamente permiten escri)ir pala)ras, oraciones y cuanto programa se le ocurra" Eisten dos tipos )(sicos de repertorios de instrucciones, que determinan la arquitectura del procesador: C@SC y <@SC" C@SC, del ingl's Comple @nstruction Set Computer, Computadora de Con;unto de @nstrucciones Comple;o" 3os microprocesadores C@SC tienen un con;unto de instrucciones que se caracteri*a por ser muy amplio y que permiten reali*ar operaciones comple;as entre operandos situados en la memoria o en los registros internos" Este tipo de repertorio dificulta el paralelismo entre instrucciones, por lo que en la actualidad, la mayor%a de los sistemas C@SC de alto rendimiento, con-ierten las instrucciones comple;as en -arias instrucciones simples del tipo <@SC, llamadas generalmente microinstrucciones" entro de los microcontroladores C@SC podemos encontrar a la popular familia @A?E3 D41 y la 85, aunque actualmente eisten -ersiones C@SCD<@SC de estos microcontroladores, que pretenden apro-echar las -enta;as de los procesadores <@SC a la -e* que se mantiene la compati)ilidad hacia atr(s con las instrucciones de tipo C@SC" <@SC, del ingl's
@nstrucciones de tama#o fi;o &ocas instrucciones S$lo las instrucciones de carga y almacenamiento acceden a la memoria de datos Amero relati-amente ele-ado de registros de prop$sito general
9na de las caracter%sticas m(s destaca)les de este tipo de procesadores es que posi)ilitan el paralelismo en la e;ecuci$n, y reducen los accesos a memoria" Es por eso que los procesadores m(s modernos, tradicionalmente )asados en arquitecturas C@SC implementan mecanismos de traducci$n de instrucciones C@SC a <@SC, para apro-echar las -enta;as de este tipo de procesadores" 3os procesadores de los microcontroladores &@C son de tipo <@SC" Memoria
5
0nteriormente ha)%amos -isto que la memoria en los microcontroladores de)e estar u)icada dentro del mismo encapsulado, esto es as% la mayor%a de las -eces, porque la idea fundamental es mantener el grueso de los circuitos del sistema dentro de un solo integrado" En los microcontroladores la memoria no es a)undante, aqu% no encontrar( iga)ytes de memoria como en las computadoras personales" ?%picamente la memoria de programas no eceder( de 16 NDlocali*aciones de memoria no -ol(til para instrucciones y la memoria <0M ni siquiera llegar( a eceder los 4 Nilo)ytes" 3a memoria <0M est( destinada al almacenamiento de informaci$n temporal que ser( utili*ada por el procesador para reali*ar c(lculos u otro tipo de operaciones l$gicas" En el espacio de direcciones de memoria <0M se u)ican adem(s los registros de tra)a;o del procesador y los de configuraci$n y tra)a;o de los distintos perif'ricos del microcontrolador" Es por ello que en la mayor%a de los casos, aunque se tenga un espacio de direcciones de un tama#o determinado, la cantidad de memoria <0M de que dispone el programador para almacenar sus datos es menor que la que puede direccionar el procesador" El tipo de memoria utili*ada en las memorias <0M de los microcontroladores es S<0M, lo que e-ita tener que implementar sistemas de refrescamiento como en el caso de las computadoras personales, que utili*an gran cantidad de memoria, t%picamente alguna tecnolog%a <0M" 0 pesar de que la memoria S<0M es m(s costosa que la <0M, es el tipo adecuado para los microcontroladores porque 'stos poseen peque#as cantidades de memoria <0M" En el caso de la memoria de programas se utili*an diferentes tecnolog%as, y el uso de una u otra depende de las caracter%sticas de la aplicaci$n a desarrollar, a continuaci$n se descri)en las cinco tecnolog%as eistentes, que mayor utili*aci$n tienen o han tenido, hasta el momento de escri)ir este li)ro: •
<=M de m(scara" En este caso no se Jgra)aK el programa en memoria sino que el microcontrolador se fa)rica con el programa, es un proceso similar al de producci$n de los C comerciales mediante masteri*aci$n"
El costo inicial de producir un circuito de este tipo es alto, porque el dise#o y producci$n de la m(scara es un proceso costoso, sin em)argo, cuando se necesitan -arios miles o incluso cientos de miles de microcontroladores para una aplicaci$n determinada, como por e;emplo, algn electrodom'stico, el costo inicial de producci$n de la m(scara y el de fa)ricaci$n del circuito se distri)uye entre todos los circuitos de la serie y, el costo final de 'sta, es )astante menor que el de sus seme;antes con otro tipo de memoria" •
?& =ne ?ime &rogramma)le" Este tipo de memoria, tam)i'n es conocida como &<=M o simplemente <=M"
3os microcontroladores con memoria =?& se pueden programar una sola -e*, con algn tipo de programador" Se utili*an en sistemas donde el programa no requiera futuras actuali*aciones y para series relati-amente peque#as, donde la -ariante de m(scara sea muy costosa, tam)i'n para sistemas que requieren seriali*aci$n de datos, almacenados como constantes en la memoria de programas" •
E&<=M Erasa)le &rogramma)le
Se fa)rican as% porque la memoria E&<=M es reprograma)le, pero antes de)e )orrase, y para ello hay que eponerla a una fuente de lu* ultra-ioleta, el proceso de gra)aci$n es similar al empleado para las memorias =?&" 0l aparecer tecnolog%as menos costosas y m(s flei)les, como las memorias EE&<=M y >30SH, este tipo de memoria han ca%do en desuso, se utili*a)an en sistemas que requieren actuali*aciones del programa y para los procesos de desarrollo y puesta a punto" •
EE&<=M Electrical Erasa)le &rogramma)le
ueron el sustituto natural de las memorias E&<=M, la diferencia fundamental es que pueden ser )orradas el'ctricamente, por lo que la -entanilla de cristal de cuar*o y los encapsulados cer(micos no son necesarios"
0l disminuir los costos de los encapsulados, los microcontroladores con este tipo de memoria se hicieron m(s )aratos y c$modos para tra)a;ar que sus equi-alentes con memoria E&<=M" =tra caracter%stica destaca)le de 6
este tipo de microcontrolador es que fue en ellos donde comen*aron a utili*arse los sistemas de programaci$n en circuito o @CS& @n Circuit Serial &rogamming! que e-itan tener que sacar el microcontrolador de la tar;eta que lo alo;a para hacer actuali*aciones al programa" •
>lash" En el campo de las memorias reprograma)les para microcontroladores, son el ltimo a-ance tecnol$gico en uso a gran escala, y han sustituido a los microcontroladores con memoria EE&<=M"
0 las -enta;as de las memorias >30SH se le adicionan su gran densidad respecto a sus predecesoras lo que permite incrementar la cantidad de memoria de programas a un costo muy )a;o" &ueden adem(s ser programadas con las mismas tensiones de alimentaci$n del microcontrolador, el acceso en lectura y la -elocidad de programaci$n es superior, disminuci$n de los costos de producci$n, entre otras" 3o m(s ha)itual es encontrar que la memoria de programas y datos est( u)icada toda dentro del microcontrolador, de hecho, actualmente son pocos los microcontroladores que permiten conectar memoria de programas en el eterior del encapsulado" 3as ra*ones para estas JlimitacionesK est(n dadas porque el o);eti-o fundamental es o)tener la mayor integraci$n posi)le y conectar memorias eternas consume l%neas de E/S que son uno de los recursos m(s preciados de los microcontroladores" 0 pesar de lo anterior eisten familias como la @A?E3 41 cuyos microcontroladores tienen la capacidad de ser epandidos en una -ariada gama de configuraciones para el uso de memoria de programas eterna" En el caso de los &@C, estas posi)ilidades est(n limitadas s$lo a algunos microcontroladores de la gama alta, la >igura 4 muestra algunas de las configuraciones para memoria de programa que podemos encontrar en los microcontroladores" 3a configuraci$n a! es la t%pica y podemos encontrarla casi en el 155 de los microcontroladores" 3a configuraci$n )! es poco frecuente y generalmente se logra configurando al microcontrolador para sacrificar la memoria de programas interna, sin em)argo el 85.1 de @A?E3 es un microcontrolador sin memoria de programas interna" 3a configuraci$n c! es la que se encuentra ha)itualmente en los microcontroladores que tienen posi)ilidades de epandir su memoria de programas como algunos &@C de gama alta" Cuando se requiere aumentar la cantidad de memoria de datos, lo m(s frecuente es colocar dispositi-os de memoria eterna en forma de perif'ricos, de esta forma se pueden utili*ar memorias <0M, >30SH o incluso discos duros como los de las &C, mientras que para los c(lculos y dem(s operaciones que requieran almacenamiento temporal de datos se utili*a la memoria <0M interna del microcontrolador" Esta forma de epandir la memoria de datos est( determinada, en la mayor%a de lo casos, por el tipo de repertorio de instrucciones del procesador y porque permite un ele-ado nmero de configuraciones distintas, adem(s del consiguiente ahorro de l%neas de E/S que se logra con el uso de memorias con )uses de comunicaci$n serie" "nterrupciones Imagine que está esperando la visita de un amigo, al que llamaremos Juan. Usted y Juan han acordado que cuando él llegue a su casa esperará pacientemente a que le abra la puerta. Juan no debe tocar a la puerta porque alguien en la casa duerme y no quiere que le despierten. Ahora usted ha decidido leer un libro mientras espera a que Juan llegue a la casa, y para comprobar si ha llegado, cada cierto tiempo detiene la lectura, marca la página donde se quedó, se levanta y va hasta la puerta, abre y comprueba si Juan ha llegado, si éste todavía no está en la puerta, esperará unos minutos, cerrará la puerta y regresará a su lectura durante algn tiempo.
Como -er( este es un m'todo poco eficiente para esperar a Ouan porque requiere que de;e la lectura cada cierto tiempo y -aya hasta la puerta a compro)ar si 'l ha llegado, adem(s de)e esperar un rato si toda-%a no llega" P por si fuera poco, imagine que Ouan no llega nunca porque se le present$ un pro)lema, tu-o que cancelar la cita y no pudo a-isarle a tiempo, o peor, que Ouan ha llegado a la puerta un instante despu's que usted la cerra)a" Ouan, respetando lo acordado, espera un tiempo, pero se cansa de esperar a que le a)ran y decide marcharse porque cree que ya usted no est( en la casa o no puede atenderlo" 0 este m'todo de atender la llegada de Ouan lo llamaremos encuesta" Beamos ahora otro m'todo" En esta ocasi$n simplemente se recuesta en el sof( de la sala y comien*a a leer su li)ro, cuando Ouan llegue de)e tocar el tim)re de la puerta y esperar unos momentos a que le atiendan" Cuando usted oye sonar el tim)re, interrumpe la lectura, marca la p(gina donde se qued$ y -a hasta la puerta para atender a la persona que toca el tim)re" 9na -e* que Ouan o la persona que ha tocado el tim)re, se marcha, usted regresa a su asiento y retoma la lectura ;usto donde la de;$" Este ltimo es un m'todo m(s eficiente que el anterior porque le de;a m(s tiempo para leer y elimina algunos incon-enientes como el de que Ouan nunca 7
llegue o se marche antes de que usted a)ra la puerta" Es, en principio, un m'todo simple pero muy efica* y eficiente, lo llamaremos atenci$n por interrupci$n" El primero de ellos, la encuesta, es un m'todo efica*, pero poco eficiente porque requiere reali*ar lecturas constantes y muchas -eces innecesarias del estado del proceso que queremos atender" Sin em)argo, es muy utili*ado en la programaci$n de microcontroladores porque resulta f(cil de aprender, la implementaci$n de c$digo con este m'todo es menos comple;a y no requiere de hardare especial para lle-arla adelante" &or otra parte, la encuesta, tiene muchas deficiencias que con frecuencia o)ligan al dise#ador a mo-erse hacia otros hori*ontes El mundo est( lleno de situaciones de las cuales no podemos determinar ni cuando, ni como ni por qu' se producen, en la mayor%a de los casos lo nico que podemos hacer es enterarnos de que determinada situaci$n, asociada a un proceso, ha ocurrido" &ara ello seleccionamos alguna condici$n o grupo de condiciones que nos indican que el proceso que nos interesa de)e ser atendido, a este fen$meno, en el cual se dan las condiciones que nos interesa conocer, lo llamaremos e-ento" En el segundo e;emplo -emos que para atender a Ouan, 'ste de)e tocar el tim)re, por tanto, la llegada de Ouan es el proceso que de)emos atender y el sonido del tim)re es el e-ento que nos indica que Ouan ha llegado" El m'todo de atenci$n a procesos por interrupci$n, -isto desde la $ptica del e;emplo que utilic' para mostrarlo, es m(s simple que el de la encuesta, pero no es cierto, el m'todo se complica porque requiere que el microprocesador incorpore circuitos adicionales para registrar los e-entos que le indican que de)e atender al proceso asociado y comprender estos circuitos y su din(mica no es una tarea sencilla" 3os circuitos para la atenci$n a las interrupciones y todas las tareas que de)e reali*ar el procesador para atender al proceso que lo interrumpe son )astante comple;os y requieren una -isi$n diferente de la que estamos acostum)rados a tener de nuestro mundo" 3os seres humanos no estamos conscientes de las interrupciones, en nuestro organismo eisten mecanismos que nos interrumpen constantemente, para ello tenemos a nuestro sistema sensorial, pero no somos conscientes del proceso de interrupci$n, aunque s% de la atenci$n a las interrupciones" Eso es porque incorporamos mecanismos que nos sacan r(pidamente de la tarea que estemos haciendo para atender una situaci$n que no puede o no de)e esperar mucho tiempo" ien, esa misma es la idea que se incorpora en los microprocesadores para atender procesos que no pueden esperar o que no sa)emos cuando de)en ser atendidos porque ello depende de determinadas condiciones" 3a cosa se complica en la secuencia de acciones a reali*ar desde el momento en que se desencadena el proceso de interrupci$n, hasta que se e;ecuta el programa que lo atiende, y en la secuencia de acciones posteriores a la atenci$n" &iense en cuantas cosas de)e hacer su organismo ante una interrupci$n, utilicemos el segundo e;emplo para atender la llegada de Ouan" &iense en cuantas cosas su cere)ro hace a espaldas de su conciencia, desde el momento en que suena el tim)re hasta que usted se encuentra listo consciente de que es pro)a)le que Ouan ha llegado! para a)rir la puerta, y todo lo que su cere)ro de)e tra)a;ar para retomar la lectura despu's que Ouan se ha marchado" ?odo eso, ecepto a)rir la puerta y atender a Ouan, lo hacemos de forma JinconscienteK porque para ello tenemos sistemas dedicados en nuestro organismo, pero en el mundo de los microcontroladores de)emos conocer todos esos detalles para poder utili*ar los mecanismos de interrupci$n" 3os procesos de atenci$n a interrupciones tienen la -enta;a de que se implementan por hardare u)icado en el procesador, as% que es un m'todo r(pido de hacer que el procesador se dedique a e;ecutar un programa especial para atender e-entos que no pueden esperar por mecanismos lentos como el de encuesta" En t'rminos generales, un proceso de interrupci$n y su atenci$n por parte del procesador, tiene la siguiente secuencia de acciones: 1" En el mundo real se produce el e-ento para el cual queremos que el procesador e;ecute un programa especial, este proceso tiene la caracter%stica de que no puede esperar mucho tiempo antes de ser atendido o no sa)emos en que momento de)e ser atendido" " El circuito encargado de detectar la ocurrencia del e-ento se acti-a, y como consecuencia, acti-a la entrada de interrupci$n del procesador" ." 3a unidad de control detecta que se ha producido una interrupci$n y Jle-antaK una )andera para registrar esta situaci$n de esta forma si las condiciones que pro-ocaron el e-ento desaparecen y el circuito 8
+" 4"
6"
F"
encargado de detectarlo desacti-a la entrada de interrupci$n del procesador, 'sta se producir( de cualquier modo, porque ha sido registrada" 3a unidad de e;ecuci$n termina con la instrucci$n en curso y ;usto antes de comen*ar a e;ecutar la siguiente comprue)a que se ha registrado una interrupci$n Se desencadena un proceso que permite guardar el estado actual del programa en e;ecuci$n y saltar a una direcci$n especial de memoria de programas, donde est( la primera instrucci$n de la su)rutina de atenci$n a interrupci$n" Se e;ecuta el c$digo de atenci$n a interrupci$n, esta es la parte JconscienteK de todo el proceso porque es donde se reali*an las acciones propias de la atenci$n a la interrupci$n y el programador ;uega su papel" Cuando en la su)rutina de atenci$n a interrupci$n se e;ecuta la instrucci$n de retorno, se desencadena el proceso de restauraci$n del procesador al estado en que esta)a antes de la atenci$n a la interrupci$n"
Como podemos o)ser-ar, el mecanismo de interrupci$n es )astante complicado, sin em)argo tiene dos -enta;as que o)ligan a su implementaci$n: la -elocidad y su capacidad de ser asincr$nico" 0m)as de con;unto permiten que apro-echemos al m(imo las capacidades de tra)a;o de nuestro procesador" 3os mecanismos de interrupci$n no solo se utili*an para atender e-entos ligados a procesos que requieren atenci$n inmediata sino que se utili*an adem(s para atender e-entos de procesos asincr$nicos" 3as interrupciones son tan eficaces que permiten que el procesador acte como si estu-iese haciendo -arias cosas a la -e* cuando en realidad se dedica a la misma rutina de siempre, e;ecutar instrucciones una detr(s de la otra" Peri#éricos Cuando -imos la organi*aci$n )(sica de un microcontrolador, se#alamos que dentro de este se u)ican un con;unto de perif'ricos, cuyas salidas est(n refle;adas en los pines del microcontrolador" 0 continuaci$n descri)iremos algunos de los perif'ricos que con mayor frecuencia encontraremos en los microcontroladores" Entradas $ salidas de propsito general ?am)i'n conocidos como puertos de E/S, generalmente agrupadas en puertos de 8 )its de longitud, permiten leer datos del eterior o escri)ir en ellos desde el interior del microcontrolador, el destino ha)itual es el tra)a;o con dispositi-os simples como rel's, 3E, o cualquier otra cosa que se le ocurra al programador" 0lgunos puertos de E/S tienen caracter%sticas especiales que le permiten mane;ar salidas con determinados requerimientos de corriente, o incorporan mecanismos especiales de interrupci$n para el procesador" ?%picamente cualquier pin de E/S puede ser considerada E/S de prop$sito general, pero como los microcontroladores no pueden tener infinitos pines, ni siquiera todos los pines que queramos, las E/S de prop$sito general comparten los pines con otros perif'ricos" &ara usar un pin con cualquiera de las caracter%sticas a 'l asignadas de)emos configurarlo mediante los registros destinados a ello" %empori&adores $ contadores Son circuitos sincr$nicos para el conteo de los pulsos que llegan a su entrada de relo;" Si la fuente de conteo es el oscilador interno del microcontrolador es comn que no tengan un pin asociado, y en este caso tra)a;an como tempori*adores" &or otra parte, cuando la fuente de conteo es eterna, entonces tienen asociado un pin configurado como entrada, este es el modo contador" 3os tempori*adores son uno de los perif'ricos m(s ha)ituales en los microcontroladores y se utili*an para muchas tareas, como por e;emplo, la medici$n de frecuencia, implementaci$n de relo;es, para el tra)a;o de con;unto con otros perif'ricos que requieren una )ase esta)le de tiempo entre otras funcionalidades" Es frecuente que un microcontrolador t%pico incorpore m(s de un tempori*ador/contador e incluso algunos tienen arreglos de contadores" Como -eremos m(s adelante este perif'rico es un elemento casi imprescindi)le y es ha)itual que tengan asociada alguna interrupci$n" 3os tama#os t%picos de los registros de conteo son 8 y 16 )its, pudiendo encontrar dispositi-os que solo tienen tempori*adores de un tama#o o con m(s frecuencia con am)os tipos de registro de conteo" 9
Con'ersor analgico(digital Como es muy frecuente el tra)a;o con se#ales anal$gicas, 'stas de)en ser con-ertidas a digital y por ello muchos microcontroladores incorporan un con-ersor 0/, el cual se utili*a para tomar datos de -arias entradas diferentes que se seleccionan mediante un multipleor" 3as resoluciones m(s frecuentes son 8 y 15)its, aunque hay microcontroladores con con-ersores de 11 y 1 )its, para resoluciones mayores es preciso utili*ar con-ersores 0/ eternos" 3os con-ersores 0/ son uno de los perif'ricos m(s codiciados en el mundo de los microcontroladores y es por ello que much%simos &@C los incorporan, siendo esta una de las caracter%sticas m(s destaca)les de los dispositi-os que fa)rica Microchip" Puerto serie Este perif'rico est( presente en casi cualquier microcontrolador, normalmente en forma de 90 9ni-ersal 0synchronous
10
Muchos microcontroladores han incorporado este tipo de memoria como un perif'rico m(s, para el almacenamiento de datos de configuraci$n o de los procesos que se controlan" Esta memoria es independiente de la memoria de datos tipo <0M o la memoria de programas, en la que se almacena el c$digo del programa a e;ecutar por el procesador del microcontrolador" Muchos de los microcontroladores &@C, incluyen este tipo de memoria, t%picamente en forma de memoria EE&<=M, incluso algunos de ellos permiten utili*ar parte de la memoria de programas como memoria de datos no -ol(til, por lo que el procesador tiene la capacidad de escri)ir en la memoria de programas como si 'sta fuese un perif'rico m(s" +amilias de microcontroladores 3os microcontroladores m(s comunes en uso son:
Empresa
, bits
. / bit bit 0 bits s s
0B< mega y 0tmel tiny!,8IS familia similar 8541 68HC54, >reescale 68HC58, antes Motorola! 68HC11, HCS58 Holte2 H?8 MCSD+8 familia 85+8! @ntel MCS41 familia 8541! 8C41 Aational C=&8 Semiconductor >amilia 15f >amilia 1C >amilia Microchip 1>, 16C y 16> 18C y 18> AG& 85C41 antes &hilips! &aralla
?MS.F5, MS&+.5
ilog Sila)s
8, 86E5 C8541
1. bits
0/ )bser'acione bit s s
S0MF 0
68., &oer&C 68HC1, 68HCS1, 68HCSG1, 0rchitecture,Cold>ir 68HC16 e
MCSI6, MGSI6
&@C+>, &@C+H y [email protected]>GG,ds&@C..> con motor dsp integrado
&@C.
G0
CorteDM., CorteD M5, 0
H8S,F8N5<,<8C,<.C/M.C/M
C555, CorteDM. 0
11
)bser'acin: 0lgunas arquitecturas de microcontrolador est(n disponi)les por tal cantidad de -endedores y en tantas -ariedades, que podr%an tener, con total correcci$n, su propia categor%a" Entre ellos encontramos, principalmente, las -ariantes de 8541 y 85"
12