Download as pdf
Download as pdf
You are on page 1of 30
> = P= a fitted y ore — a Ee ale IS eo] Lea MICRC FUNCIONAMIENTO, PROGRAMACION Y USOS PRACTICOS ’ CONSTRUCCION DE GRABADOR DE PICS Y PLACA EXPERIMENTAL MANEJO DE DISPLAYS LCD GRAFICOS CONTROL REMOTO POR INFRARROJOS, RF Y TCPAP CONECTIVIDAD ZIGBEE, BLUETOOTH Y WI-FI NETWORKING CON TCPAP, RABBIT Y PIC ALCANCE UN NUEVO NIVEL EN EL MUNDO DE LA ELECTRONICA ace UY Vee 0) 3) Y APRENDA LOS Una obra ideal para quienes de- eect ee neat Poleeseticnta la Riri seesta eae ca cy Met eee atari eee ened eer ee by teenies cee tertiary Pas Peo Omran Lian j oll ~ LLEGAMOS A TODO EL MUNDO VIA »0ca * ¥ S=zzz— rece e ean Rear tna Menem to) au TirraecyaTe) oi -celt eK W/m sere) oOo Oreo CAPITULO 2 MICRO- CONTROLADORES Como funcionan? Unidades de entrada y salida Historias de microprocesadores Microcomputadoras: jde qué se tratan? Las interrupciones Periféricos en microcontroladores Conversores analdgico-digitales Actividades CT COT Tay jCOMO FUNCIONAN? Comenzaremos a incursionar en los elementos que mas auge han tenido en estos ultimos tiempos, dentro de la electronica digital: los microprocesadores y microcontroladores. os microprocesadores y los mi- Fees han cambiado ja forma de pensar y diseriar los circuitos electrénicos. Desde que Intel lanz6 en 1971 el 8080, el primer microprocesador exitaso, estos dispositivos no han dejado de evolucionar, y hoy en dia es imposi- ble imaginarse la vida sin ellos. Poro a esta altura dol tema nos. surgen las primeras preguntas: ,qué son los microprocesadores? ¢Y los microcontroladores? ,Cémo pode- ‘mos diferenciar unos de los otros? {Qué es un microprocesador? Los microprocesadores son circuitos integrados que contienen millones de transistores en su interior, los cuales crean circuitos complejos encargados de realizar diferentes tareas. También se los denomina unidad de procesamiento central © CPU, ya que muchos de ellos pueden actuar como e! “cerebro” de un sistema computacional, administrando todas las tareas que este realice y llevando a cabo Jas operaciones con los datos. Los microprocesadores estén disefiados para interpretar y ejecutar las instrueciones que nosotros les indiquemos y que suelen ser opera- ciones simples, como sumar, restar, multiplicar y dividir. Pero también existen instrucciones légicas, como > Los microcontroladores PIC sonuno de los dispositives més utilizados en ‘el rea de control. Aqui podemos veruno de los encapsulados que oftece elfabricante. AND, OR, NOT, etc. Ellistado de —a instrucciones recibe el nombre de 5 programa, que as ejecuta una por = LQ microprocesadores una por medio del microprocesador. es La potencia, el tamavio y la com- son circuitos plejidad de los microprocesadores fueron incrementéndose con el correr del tiempo. Tanto es asi, ‘que hoy en dia podemos observar procesadores que integran millones de transistores en su interior y con varios niicleos para aumentar su capacidad de procesamiento. integrados complejos encargados de realizar diferentes tareas. Diagrama basico de un microprocesador En la Figura 1 podemos observar el diagrama bésico de un micropro- cesador.E! elemento principal es la ALU (unidad aritmético-l6gica), que se encarga de llevar a cabo todas las operaciones l6gicas y aritméti- cas que requieran los procesos que se ejecuten. También podemos ver los registros para almacenamiento ‘temporal de los datos; el contador de programa, que contione la diraccién de memoria de la siguiente instruc- cién por ejecutar; un registro de ins- ‘ucciones que almacena el cédigo de la instruceién en ejecucién y el bloque de control. Todo este bloque de circuitos lagicos realiza dos operaciones de manera ‘continua: la bisqueda de una ins- truccisn (fetch) y su ejecucion. La biisqueda de una instruccién en la ‘memoria de programa es la opera- cin fundamental del procesador y se efectiia de la siguiente manera: ‘= Eldato que contiene el contador de programa nos indica cual es la direccién de la préxima instruccién que se ejecutara, y es colocado en el bus de direcciones. 1» Launidad de control envia una sofal de lectura hacia la memoria de programa a través del bus de control ‘= Los datos contenidos en la direc cin de memoria de programa son cargados en el bus de datos. ‘= Estos datos son procesados para Arne Sus de datos [ae cweccones \de control que el c6digo de operacién se almacene en el registro de ins- trucciones, y los datos, en los regis tros de almacenamiento temporal. «= Finalmente, el contador de pro- rama se incrementa para volver a buscarla siguiente instrucci6n. En la operacién de ejecucién, se decodifica el cédigo de opera- cién, y la unidad de control genera las diferentes sefiales que pert ten la entrada y a salida de los ragistros internos hacia la unidad aritmético-l6gica. La AW ojecutard Ia operacién que le indique la unidad de control, y puede devolver el resultado en un registro interno, normalmente llamado acumulador, o en una posi- cin de la memoria de datos. Bus de direcciones (16 lineas) Bus de datos (8 lineas) Bus de control (6 lineas) | Unidad aritmético-logica La unidad aritmético-légica se ocupa de realizar las operaciones necesa-* ‘igs con los datos. Ellas son la suma la sustraccién de nimeros enteros, las operaciones ldgicas —como AND, OR y NOT- y las operaciones de desplazamiento de bits. La salida o el resultado de la opera- cidn se almacena, como ya diimos, en un registro interno del micropro- cesador llamado acumulador. Este registro también puede utilizarse ‘como un operando, conta ventaja de que gantamos en velocidad y eficien- cia en las operaciones complejas. La unidad posee, ademés, una entrada de control, desde donde la unidad de controle indica cudl es la operacién por realizar. Cabe aclarar que en procesadores més complejos podemos encon- trarnos con unidades aritmético- légicas que pueden calcular la multiplicacion y hasta la division de los operandos. Bniveles existentes ae/ Ly Contador de programa El contador de programa (PC) os, basicamente, un registro contador que incrementa su cuenta con cada ejecucién de una instruccién El contenido de este registro con- tador apunta a la direccién donde reside la instruccién que se desea ejecutar en la memoria de programa. Existen ALUs que calculan la multiplicacion y la division de los operandos. 1Briveles mejorados Dato Dato Control: Resultado Elvalorinicial del contador siempre esla direccién donde esté la primera instruccién del programa. Ademds, es posible modificar su contenido para crear saltos hacia rutinas que estén en lugares especificos de la memoria de programa. La cantidad de bits que posee el contador sirve para calcular cual es la cantidad maxima de instruc ciones que puede diraccionar el procesador. Con esto tenemos una idea del tamaiio de memoria de programa que podemos utilizar. Si tenemos un contador de pro- grama de 16 bits, podemos direc- cionar, como maximo, hasta una memoria de 64 KB (2416). Los programas y datos que controlan {a ejecucién de las instrucciones en un microprocesador necesitan ser almacenados on memorias de datos yde programa Para realizar una tarea espectfica, un microprocesador necesita de un programa que le indique, instruccidn por instruccién, cudles son los pasos que debe cumpiir. Este programa reside en una memoria externa al procesador llamada memoria de programa, Su caracteristica principal es que no debe perder su contenido cuando el sistema no esta energiza- do. Normalmente, se utilizan memo- rias ROM de solo lectura para grabar un programa, porque poseen esta caracteristica tan preciada, aunque tienen la desventaja de que solo pue den ser escritas una sola vez. Gracias al avance de la tecnologia, hoy podemos utilizar memorias EEPROM y Flash para almacenar cédigo, con la ventaja adicional de que es posible borrar su contenido eléctricamente La memoria de datos es también una memoria externa al microprocesador, pero que se encarga de almacenar > MAPA DE MEMORIA >Una antigua memoria EPROM cuyo contenido podia borrarse por medio de luz ultravioleta, Era muy utilizada para almacenar memoria de programa, la informacién que precisa el proce- sador para ejecutar las operaciones que le indiquemos. Eltipo de memoria que se emplea para los datos es la RAM, porque puede almacenar datos temporales que pueden ser escritos y leidos una infinidad de veces. Ademés, son de acceso répido, por lo que el sistema gana en velocidad y eficiencia También es posible querer almace- nar datos que no se pierdan luego de que el sistema se queda sin ali mentacién. En este caso, se pueden utilizar memorias no volatiles, como las EEPROM de baja capacidad, ideales para quardar contrasefias o nombres de usuarios. El mapa de memoria indica las areas de las que dispone ol procesador, su extensiény direccionamiento. Segdn la arquitactura, puede haber solo un rea general (Von Neumann), un drea de datos y otra de programa (Harvard), 0, incluso, areas especificas de entrada/salida (280, 80 x 86, AVR), El procesador puede tener registros fuera de este mapa de memoria, ee » UNIDADES DE ENTRADA Y SALIDA Para que un procesador pueda comunicarse con el mundo externo, necesita unidades de entrada y de salida que codifiquen los mensajes para interpretarlos. las unidades que funcionan como interfaz entre el mundo jexternoy el procesador se las lama periféricos. Los periféricos se comunican con el procesador mediante los buses de direccién, de datos y las sefiales de control. Existen dos formas de transmitirinfor- macién entre un periférico externoy el procesador: en paralelo yen serie. La transmision en paralelo utiliza todas las lineas de comunicacién del bus de datos, y no requiere realizar ningdin sincronismo entre el periférico yel procesador. Por su parte, la que es en serie hace la transformacion de paralelo a serie y transmite el byte, bit por bit. Este tipo de trasmision necesita de un sincronismo entre el procesador y el periférico. Los periféricos pueden clasificarse de forma general en: periféricos de entrada y de salida, Se ocupan de cotificar los mensa- jes o sefales del exterior para que el procesador pueda interpretarios. El ejemplo mas sencillo de un periférico de entrada es el teclado, con el cual un usuario puede introducir tun programa o datos. Pero esto no solo se limita al ingreso de datos por parte de un usuario, sino que también es posible recibir datos de una aplicacién de control. Los dispositivos de monitoreo, como los sensores, son periféricos de entrada, ya que pueden convertir distintas magnitudes, como el calor o la presién, en sefiales que una computadora sea capaz de leer. > Elpulsador es el ejemplo me simple de un perférico de entrada. ‘Siarmamos una matrie de pulsadores, podemos crear un sencille teclado para ingresar datos. Permiten observar los resultados arrojados por el procesador de una manera mas cémoda que si se presentaran como unos y ceros. La pantalla ya impresora son los periféricos de salida mas conocidos, pero también tenemos dispositivos actuadores que afectan de manera mecénica todolo que los rodea, como los motores y los relés. La programacién de microprocesa- dores puede realizarse entre tres tipos de niveles basicos de lengua- jes: en cédigo maquina, ensambla- dor y de alto nivel Es el lenguaje elemental del micropra- cesador, pero el mas complicado de utilizar. Cada instruccién posee eédi gos hexadecimales que son especi- ficos de ese procesador. Estohace que la programacién de las distintas familias de microprocesadores sea in- compatible. Solo se trabaja en cédigo maquina con algunos periféricos >Enmuchos procesadores se necesita hardware ficional para hacer la programacién, Algunos, como el de la imagen, pueden programar los microcontroladores sin sacarlos de la placa, > PARA TENER EN CUENTA Debido a que cada microproce- sador tiene su assembler especifico, los distintos len- guajes ensambladores de las diferentes familias de proce- sadores que existen comer- cialmente no son compatibles entre si, pese a que emplean instrucciones con idéntico cometido. En este punto de incompaiibilidad, se asemejan el lenguaje ensamblador y el lenguaje maquina. El lenguaje ensamblador utiliza Nematécnicos para las mismas instrucciones en binario. que disponen de un repertorio deter- minado de comandos. Todos los lenguajes superiores al final serén transformados a lenguaje maquina para ser introducidos en la memoria, ya que este es el tnico lenguaje que entienden los micropro: cesadores, Pero esta conversién no la realiza el programador, sino que existe un software especifico para este fin. Si se desea programar en cédigo mé- quina, hay que entender previamente a fondo al microprocesador que se va a utilizar, ya que cada bit de cada instruccién tiene un significado con- cretoy es muy facil equivocarse. También llamado ASSEMBLER, es un tipo de lenguaje intermedio entre los de alto nivel y e!lenguaje maquina. Cada microprocesador tiene su propio len- quaje assembler, que esta en relacin directa con su estructura, Este lenguaje usa las mismas instrucciones que posee el microprocesador, solo que ol programador no emplea su corres- pondencia en hexadecimal, como en el lenguaje maquina, sino que utiliza los nemotécnices de dichas instrucciones. Para el manejo del programa, el microprocesador dispone de dos registros de importancia: el contador de programa (PC} y el registro de instrucciones (IR). Para entender el proceso de interpretacién del progra- ma, veamos los pasos que se realizan para decodificar una instruccién. Ai comienzo de cada instruccién, lo primero que debe hacerse es la lec- ‘ura dol primer byte de la instruccién; ara esto, el PC tiene que direccionar ala posicién de memoria en la que se encuentra. Mediante sefiales de transferencia en el bus de control, el byte entra en el microprocesador por el bus de datos al registro de instruc- ciones. Ali esinterpretado por el de- codificador de instrucciones, miontras, el PCes incrementado en una cuenta. Sila instruccin es de mas bytes, una - Los microprocesadores realizan cuatro operaciones basicas para ejecutar una instruccion. Registro de operaciones Bus de control sia Bus de direccionos Bus de datos Se a Cédigo de operacién IMAI IAI ULL > Secuencia que lleva a cabo el procesador para buscar una instruccién on la memoria. El PC apunta se encuentra la instrucci6n y la memori vez interpretada por el decodificador, se abriré de nuevo el bus de direccio- nes y de datos para tomar el segundo byte en la posicién de memoria indica- da por el PC ya incrementado, El proceso se repetiré otra vez sila instrucciOn es de tres bytes. Asi, segiin la instruccién sea de uno, dos o tres bytes, la velocidad > EL CICLO DE MAQUINA ladiroccién donde coloca el cédigo de datos. tiempo de ejecucién ser menor o ‘mayor, respectivamente. Una vez que los bytes dela instruc- ciénhan entrado en el microproce- sador, este procede a ejecutarla; ‘tras esta operacién, vuelve a tomar el byte cuya direccién esté apuntada por el PC. Este proceso se repite hasta llegar a la citima instruccién. Los microprocesadores realizen una serie de operaciones bésicas: bisqueda de la instruccién, decodificacién, ejecucién y almacenamiento de los resultados. Estas cuatro operaciones conforman el ciclo de maquina. Todas se encuentran sincronizadas con un reloj general (clock del sistema) 8 tiempo que dura un ciclo de méquina nos da idea de cudntas instrucciones puede ejecutar un microprocesador en un segundo (MIPS). Se llaman de alto nivel porque su sistema de programacién esté a la altura misma del lenguaje concep- tual, mateméticoy de organizacion del propio hombre. El desarrollo de los lenguajes de alto nivel tue nece- sario como consecuencia de la adap- tacién de la maquina al hombre. Esto trajo muchas ventajas que hicieron que este tipo de lenguaje de progra- macién se impusiera répidamente. Por un lado, al ser un lenguaje préxi- mo al del hombre ~que, en definitiva, es quien tiene que programarlos-, permite la reduccién delos costos de software, asi como también el tiempo de desarrollo. Otras ventajas son su facilidad de aprendizaje, la posibilidad de realizar programacién estructurada y el hecho de que para usarlo no es imprescindible tener conocimiento del hardware. Entre los lenguajes de alto nivel, los mas conocidos son: » MATLAB, MATiix LABoratory labo- ratorio de matrices): es un lenguaje disefiado para hacer célculos ma- ‘tematicos, y empleado on el mundo cientifico y técnico. = COBOL, Commom Businass Oriented Language (lenguaje orientado hacia aplicaciones comerciales y de gestion): es un lenguaje para uso especifico en gestion por tener poca capacidad de célculo, pero con potencia en el manejo de datos. « BASIC, Beginners All Purpose Symbolic Instruction Code (cédigo de instruccién simbélica universal para ntes):fue desarrollado por la Universidad de Dartmonth (EE.UU,) para los estudiantes que se inician en el mundo de la programacién. = C/C++: es un lenguaje extremada- mente poderoso y eficiente, que nos da la libertad de realizar casi cual- quiertarea con una computadora Es muy popular entre los desarrolla- dores de software profesional. > PARA TENER EN CUENTA Los lenguajes de alto nivel también fueron pensados para eliminar la incompatibilidad entre los de bajo nivel y los distintos sistemas de procesa- dores. Sin embargo, esto no es del todo cierto, ya que existen algunas diferencias dentro de un mismo lenguaje de alto nivel con los distintos sistemas que no proporcionan total compa- tibilidad. Lo cierto es que un programa en lenguaje de alto nivel debe ser traducido a 66- digo maquina, pars lo cual se uilizan programas intérpretes © compiladores. > En procesadores con alto poder de calcul, como procesamiento digital de seiales), resulta muy dificil y costoso programaren assembler. los DSP (mics At t Lae | Mm iy iH Hy SS] CONTROLADORES HISTORIAS DE MICROPROCESADORES Mucho tiempo ha pasado desde el desarrollo del primer microprocesador, y atin varios de los conceptos o1 inales siguen vivos en los microcontroladores mas modernos. asta el momento hemos co- Hesstsescci iy algunos conceptos generales que comparten los microprocesado- resy microcontroladores, al menos los de 8 bits. Estos conocimientos sonla piedra fundamental sobre la que se edifica toda la estructura que contiene a los microcontroladores mas modernos. Aun con sus mayores diferencias, todos conservan una historia y ciertos puntos en comin, Comprendiéndola, podremos abordar indistintamente cualquiera de ellos para nuestro trabajo, ‘A Acumulador A B-Acumulador A X Registro indice PC: ProgramCounter ‘SP: Stack Pointer COR: Registro de estedo (Conditio Code Register) De 8080 a Rabbit 5000 Como sabemos, el primer micropro- cesador exitoso fue e! 8080 de Intel, sobre el que se basé el 280 de la ‘empresa Zilog. Con ellos, nacié uno de los primeros sistemas operativos de amplia distribucién: ol CP/M. La caracteristica distintiva de estos micros fue su gran cantidad de regis trosy un variado set de instruccio- nes orientado al procesamiento de datos. E1280, en particular, introdujo lainnovacién del set alternative de registros, para acelerar el cambio de Contexto en interrupciones, tema que desarrollaremos més adelante. Otra novedad fue un area especial para el acceso a puertos de entrada/ salida (/0) fuera del mapa de memo- ria de datos. Sobre esta plataforma se desarrollé Rabbit, que estudiare- mos en la clase 17 Del 6800 al HCSO8 El primer microprocesador exitoso de Motorola, hay Freescale, fue el 6800, contempordneo y competidor de! 8080 e, incluso, del 280, Las lineas de 8 bits de mayor éxito de Freescale enla actualidad son las HC08 y HCS08 (S08), Registro indice (HX) STACK POINTER (SP) PROGRAM COUNTER (PC) Registro de estado CONDMION.cODE Watt tur 75] REGISTER (CCR) TWO'S COMPLEMENT ‘VERRLOWFLAG (VY) HALF-CARRY FLASH) CARRY BORROW FLAG (0) ZERO FLAG @2) [NEGATIVE FLAG (N) INTERRUPT MASK) basadas en la CPUOB, que, a su vez, es descendiente de la original 6800. La ccaracteristica distintiva de estos micros es un modelo de programaciGn simple ‘ycompacto, con gran cantidad de ins- ‘rucciones cortas eficientes, orienta- das ala resolucién de tareas simples. £1 8051 En la figura de la pagina 10 se mues- tra en detalle Ia arquitectura MCS51, perteneciente al 8051, un microcon- ‘rolador disefiado por Intel que ha pasado a ser ol estandar de facto en el mundo de los microcontroladores, ‘que es modificado y producido por decenas de fabricantes. Su particu laridad distintiva es que puede procesar bits individualmente, den- ‘ro den rea de 128 bits (32 bytes}. MSP430 y AVR Dos cores de relativamente recien- te aparicién son, por un ado, el ‘MSP430, de 8/16 bits, fabricado por Texas Instruments; y, pore! otro, el AVR, de Atmel. Ambos se caracteri- zan por tener una gran cantidad de registros del procesador, fuera del mapa de memoria de datos, ademas do un poderoso sat de instrucciones. | MSP430 permite operar en 8 0 16 bits sobre los registros 0 la memoria. AVR incluye, ademas, un drea de VO. ‘Ambos niicleos permiten que cual- quiet registro 0 posicién de memoria sea fuente o destino de casi cual- ‘quier operacién. Microchip PIC Otro core de gran repercusién es 1 PIC, de Microchip, elegido porla mayoria de los aficionados en e! mun- do, cuya historia conoceremos mas adelante. €! serd el protagonista de la clase. Se distingue por la simpleza yeficiencia del core, y por tener un muy compacto set de instrucciones de rpida ejecucién, con acceso a toda la memoria de datos como uno delos operandos y posible destino de muchas de las operaciones. Estos son solo algunos de los nticleos de 8 bits de algunos de los fabricantes: de mayor repercusién. Por supuesto que existen muchas més atternativas. = CT ECU MICROCO iDE QUE SE TRATAN? Se encuentran en todos nuestros electrodomésticos, alarmas y automotores, 7 entre otros equipos, donde aplican inteligencia a todos los aparatos que nos rodean. I avance de las escalas de | eee cada vez mas transistores por unidad de superficie. El desarrollo de la tecnologia VLSI (muy alta escala de integracion), que produjo los microprocesadores, pronto permitié introducir en un solo chip todo un sistema minimo. Esto dio nacimiento ala microcomputadora, actualmente conocida como microcontrolador. Dentro de ellas encontramos una CPU, une memoria de prog memoria de datos, el circuito de reset yel circuito ascilador, ademés de los puertos de entrada/salida, ‘también conocidos como PORTS 1/0. Las microcomputadoras 0 microcon- ‘roladores nacieron a mediados de los 80 répidamente ganaron mercado, al desplazara los sistemas minimos desarrallados con microprocesadores en el campo del control industrial Los microcontrolad ores, debido a su muy bajo costo, ata inmunidad al ruido eléctrico y pequerio tamarto, produja- ron la revolucién microcontrolada, que desplazé a toda la logica cableada (utiizada en la electrénica industrial) ‘ala légica programada. Es en aste ‘campo donde se los bautiz6 con el ‘nombre de microcontroladores y se deseché el de microcomputadoras. Appartir de los 90, los microcontro- ladores invadieron la electronica de una consumo, brindando a los electro- domésticos y a todo tipo de sistema electrénico de consumo la capacidad de inteligencia y conectividad. E! mun do actual esta rodeado de microcon- woladores; desde nuestros celulares, sistemas de alarmas y lavarropas, hrasta las computadoras de a bordo de los automéviles. Sin ellos, nuestro ‘mundo actual no existiia. Arquitectura interna de los microcontroladores Los microcontroladores estan for- mados por varios bloques. Dentro de ellos existe, como elemento princi- pal, la CPU, que se interconecta con sus periféricos para formar lo que se conoce como arquitectura interna. Esta puede ser de dos tipos: Von Neumann o Harvard. La arquitectura Von Neumann fue suplantada por los microcontroladores con arquitectura Harvard. Memori de datos yde programa Direcciones Direcciones de programa de programa Ni ALE/PROG ER/Vpp RST Arquitectura Von Neumann Fue desarrollada en 1949 por el profe- sor John Von Neumann o implementa- da parala construccién de las compu- tadoras como la ENIAG (nombre de la primera computadora electrénica). Segiin esta arquitectura, oxiste un bus de datos que liga la CPU con la Pro-P17 memoria de datos y de programa, por el cual viajan datos e instrucciones. Este concepto fue muy iti en las pri- meras décadas delas computadoras, pero, al incrementarse Ia cantidad de datos por procesar, la velocidad de procesamiento se redujo. Rapidamen- te, la arquitectura se saturé, ya que el > En la figura observamos los bloques que conforman el interior de un microcontrolador basico. bus de datos debia compartirse con los datos y las instrucciones, lo que generaba un cuallo de botella Entonces, se presentaron varios problemas en la arquitectura, como mencionamos a continuacién Por un lado, el ancho del bus de datos era de Bitsy, como por él viajan los datos y las instrucciones, el ancho de los datos limitaba el ancho de las instruccionas. Como consecuenci las instrucciones con mas de Shits debian ser enviadas en varias partes, lo cual hacia que al sistema resultara lento. Otro conflicto es que nunca se sabia ‘cunta memoria de programa se usa- ba, pues esto depende del ancho en bytes que tengan las instrucciones, lo cual es muy variable Esta arquitectura caducé a finales de los 80 y fue suplantada por los microcontroladores Harvard. Fue desarrollada en 1970 para solu cionar los problemas de velocidad de procesamiento que presentaba la arquitectura Von Neumann. Los microcontroladores son una pequefia computadora inyectada en un chip. Esta erquitectura conecté le CPU hacia su memoria mediante dos bu- es distintos: uno de datos y otro de instrucciones. De este modo, el an- cho del bus de instrucciones no esta limitado por el de datos, y el procesa dor puede recibir instrucciones por caminos diferentes, aprovechando =u el tiempo del ciclo de maquina Ei concepto ynombre dela arqui- tectura deviene de la computadora MARKI, construida en la Universidad de Harvard en 1944. En 1975, una compafiia americana denominada General Instruments formé una division especial dedicada al desarrollo de memorias y micro- procesadores: GI Microelectronics. Esta tomé el concept de la arqui- tectura Harvard y lo materializo en su primer microcontrolador denominado PIC1650, ¢ introdujo mejores en el concepto de la arquitectura. Colocé dentro del chip una pila de instruc- ciones de dos niveles. Esto dio la posibilidad de buscar ejecutar una instruccién en el mismo ciclo de mé: quina. $e la denominé arquitectura Harvard modificada, 1abits Bus Memoria de programa Bbits Bus cpu Memoria de datos ‘> Ena figura observamos os buses separados de datos e instrucciones, ‘que pusieron fin al cuelio de botel que se general en la arquitectura Von Noumann. > ARQUITECTURA HARVARD Emplea dos buses de acceso, uno para datos y otro para programs. Esto optimiza ol funcionamiento a costa de duplicar la cantidad de ‘memorias, No es posible guardar constantes con el programa. La versin modificada introduc 1cceso a la memoria de programa como datos, resolviondo este inconveniente. Los compiladores para lenguajes de alto nivel, como C, deben introducir directivas para elegir area. , En 1985 Gl vendié Microelectronios ‘aun grupo inversor denominado Ventura, que refioté el proyecto del PIC1650 y rebautiz6 la compara conel nombre de Microchip. Esta desarroll6 répidamonte una serie de microcontroladores basados en la arquitectura del PIC. Con el tiempo, otras firmas adoptaron el modelo de Microchip para sus nicleos. La computadora esun circuit digital capaz de procesar informacion binaria, En este circuito encontramos un mi croprocesador, una memoria del tipo ‘no volatil (ROM, EPROM, EEPROM, Flash), una memoria RAM, un circuito oscilador, un circuito de reset y los puertos de entrada/salida La memoria no volatil es conocida como memoria de programa, ya que en ella se almacena el que hace funcionar a la computadora. La RAM es usada por la compu- tadora para guardar los resultados de procesamientos de datos internos los que provienen del exterior. Por su parte, los puertos VO (entra- da/salida) se usan para intercam biar informacién y controlar todo el entomo externo a la méquina. Todos estos elementos se encuentran en forma discreta (es decir, encap- sulados en chips individuales) y montados sobre un PCB. A este conjunto se lo denomina sistema minimo, Las computadoras miden su potencia de procesamiento en funcién dela cantidad de instrucciones que pue- den ejecutar por segundo, medida en una unidad denominada MIPS. No debemos confundir los micropro- cesadores con los microcontrolado- res. Los primeros, simplemente, son Ja unidad central de procesamiento. No incorporan puertos para control de periféricos, ni memoria de progra- ma ni tempoco memoria de datos. Estan especialmente disefiados para procesar grandes cantidades de datos y son muy susceptibles al ruido eléctrico. En cambio, los microcontroladores. son una pequefia computadora inyectada en un chip. Estén disefia- dos, principalmente, para el control industrial y no para el procesamien- to de grandes cantidades de datos. Su principal ventaja radica en la alta inmunidad al ruido, el bajo costo ya reduccién de espacio. « eae > EL MICRO 6502 El microprocesador 6502 fue desarroliado por la compania Rockwell. Este micro era una variante del 6800, fabricado por la firma Motorola, con la diferencia de que el 6502 poseia solo un registro de trabajo. A partir de este se fabricaron la TK2000 de Microdigital y el Apple 2e. Por su parte, Commodore desarrollé su Commodore 64 a partir de una variante me: jorada del 6502, denominada 6510 (el cual incluia un PORT V0 auxiliar) LAS INTERRUPCIONES Con las interrupciones podemos hacer que determinados eventos que ocurren en el hardware cambien la rutina del software. Veamos de qué se trata. ara entender qué es una tun ejemplo muy sencillo y que se presenta bastante a menudo en nuestros hogares. Cuando enviamos un archivo a la impresora, la rutina principal del programa se encarga de mandar los caracteres al butter de este equipo. Sila impresora se queda sin papel, el proceso se detiene, y se despliega un mensaje en la pantalla de la PC para advertimos al respecto. Como podemos observar, el programa principal se encarga de enviar los. caracteres del archivo ala impresora Sin embargo, si el sensor de falta de papel se activa, se interrumpa la impresién. Este evento hace que el Vector de interrupcion Rutina de interrupciones jodemos observar > INTERRUPCIONES proceso de una, rrupcion de forma grafica. procesador pase a procesar un pro- grama que atienda la interrupcién, el cual despliaga el mensaje en pantalla Una vez que recargamos el papel, el sensor se desactiva, la sefial de inte- ‘rupcién desaparece, y el procesador vuelve a ejecutar la rutina principal. La interrupcién es un sistema que provoca un salto a una subrutina, La interrupeion provoca un salto auna subrutina, pero disparada por un evento del hardware. El concepto nace de la necesidad de procesar eventos que, al ocurrir, requieren una atencion inmediata ya que noes convenionte esperarlos. Segin el procesador, se transfiare | ‘una posicién fija 0 indicada por el contenido de una posicién o tabla. Aqui se salva el procesador no lo hace), se opera y se devuelve el control, cucién | contexto pero disparada por un evento del hardware. Se diferencia de los saltos a subrutina generados por el software, como el producido por la instruccién CALL, en lo siguiente: = Lainterrupcién es atemporal; el microcontrolador nunca sabe cuando va a ocurit. = Cuando Ia interrupeién ocurre, el procesador abandona el programa que esta ejecutando y pasa a pro- ‘cesar una rutina que se encuentra a partir de una posicién de memoria fia, denominada vector de interrupcién, ‘« Enlainterrupcién se salva el con- tenido interno de los registros mas importantes del procesador, de modo que luego, al volver al programa que se estaba ejecutando, se prosiga sin alteraciones. Tipos de interrupciones Las interrupciones pueden dividirse en internas o externas, y en enmas- carables o no enmascarables. Las internas son disparadas por el hardware interno del microcontrola- dor, por ejemplo, el conversor ana~ légico/digital, los temporizadores, etc. Las exteas son disparadas externamente mediante la aplica- cin de un pulso o un estado sobre un pin del microcontrolador, deno- minado INT (interrupci6n). Pero mas allé de sila interrupcién es interna PICIaFK620 CALL, RCALL, RETURN, RETFIE, RETLW o externa, esta puede ser del tipo enmascarable 0 no enmascarable. Las primeras nacesitan tener ac- tivado un bit de habilitacién para generarse, aunque hayan sido soli- citadas; en tanto que las sequndas suceden, si si, no bien ocurre el evento de la interrupcién. El vector de interrupciones Como hemos visto, cuando la inte- rupcién se genera, el procesador pasa a procesar la rutina que se ‘encuentra a partir de una posicién Las interupcion Low-Priorty Interrupt Vector 2o0000h de memoria fija, conocida como vector de interrupciones. En los mi- crocontroladoras puede existir més de un vector de este tipo, uno para la interrupcién enmascarable y otro para la no enmascarable. En otros microcontroladores, pue- de ocurrir que cada dispositivo del hardware que interrumpe tenga su propio vector, o que haya vectores distintos segiin la prioridad que hayamos elegido para la interrup- cién, Todo depende del microcon- trolador que manejemos. » OCONTROLADORES a) PERIFERICOS EN MICROCONTROLADORES En esta infografia les mostramos los médulos de hardware internos de un PIC16F876A y una idea de conexion de algunos de los periféricos -vzmas utilizados en aplicaciones con microcontroladores. TIP | El chip #122320 de FIDI pare conectividad USB 20 FullSpeed, permite interfaces ‘con nuestro microcontrolador del tipo SP, IC 6 mismo con tun méidulo asinerénico como S232 MAX 232 | = Fraz20 = AT#SDB041B = FMZacis4 i ico Multipropésito Usivateal Symchrenoes i= (MSSP en Microchip): SPI /12C Asynchronous Receiver/Transmitter (USART/SCI en Microchip), bl NY pais scrnicas serials, encontrade en diversas erquitecuras. Permite configuar interfaces SP 2C en asinerénicasseriales como RS222 mmodos Mastery Slave Generador de Baud-rate configurable: Ejemplos; AT@50B0418 Flash Eeprom SPI de 9600 619200 baudos ote, Manejan 8 6 ‘Atmel FRAM FM2ACLBA 2C da Ramirom. Sbitsde datos, coniquacién debits de parade, fags de erores, etc Conversor A/D de 10 bits multicanal = Oscilador spl ff usar Sensor de temperatura, ‘ * 0-40 Miz ie ‘onversores analégico-digitales, Digitalizacion Pera implementacién de comunicaciones de sefiales de origen analégica coma el sensor de temperatura Crees ao 7 converter Puertos Paralelos esclavo de 8 bits. » . s Puertos parelelos de propésito general Display Alfanumérico Pueden conactarsatpicamente a os itt mismas:leds, witches, botones, displays namie Spay agnor — Ylecoaeomenbrane Coerdende [Ime aeinsbcconrse ete 50 cpa dde manejar correntes desde los 40uA 1 2MA por linea. a Periféricos en microcontroladores ‘Se necesitan chips canversores de Seen RUS, Médulos Timer/Temporizadores ‘Son utileados para diversas aplicaciones que necesiten trabajar con marcas LOS INICIOS DELOS A/D La resolucion de un conversor A/D nos indica la precision que tendra el dispositive al realizar el proceso. dispositivo al realizar la conversion. La sefial analégica que ingresa al onversor es dividida en una serie de pequefias fracciones. Cuanto mayor sea la resolucién del conversor, més pequetias serdn las fracciones ¥, por lo tanto, mas aproximada serd la conversién al valor real. Los conversores A/D que se usaron en las primeras PCs para las placas de sonido eran de 8 bts, Su resolucién limitada generaba sonidos sintéticos. Luego fueron superados por los conversores de 16 bits, que dieron vida a lastarjetas de sonido como la Sound Blaster. Sin embargo, actualmente ‘contamos con conversores muy superiores, mediante los cuales podemos Aigitalizar sefiales con alta preci Velor digital de >En Ia figura observamos la funcion de transferencia de un conversor de 10 bits. Dicha resolucién queda determinada por el nimero de bits que puede procesar el conversot Por ejemplo, en tun conversor de 8 bits, la sefial de en- trada se divide en 256 fracciones. Sin ‘embargo, en uno de 16 bits, lo hace en 65536 fracciones, ya precision para cel mismo nivel de sefial resulta mayor. La fraccién se denomina escalon de conversién o rata de cambio, Cuanto més pequeiia es, mas precisa es la conversién anal6gico-digital. Los, cconversares mas comunes son de Bbits de resolucién, pero también existen de 10 bits, 12 bits, 16 bits, 2Dbits y 24 bits. Es importante destacar {que cuanta mayor precision tiene el conversor, més lento es; por lo tanto, sila sefal de entrada varia muy rapidamente, se producirén errores. REGISTRO MMM Conversores jital-analégicos Existen varios métodos para obtener la conversisn digital-analogica. Para conseguir pasar un valor binario a un valor de tensién analégico equive- lente, se recurre a una red de resis- tencias. Esta genera una tensin en funcién de os niveles binarios que se encuentren en un momento dado en cada uno de los bits que intervienen en el proceso. La mencionada red resistiva es, por RESISTENCIAS Zé PONDERADAS WTEC SE LLU ee Lees TEPER T PRET TPD L____________i4 NIVEL ANALOGICO Y SU CORRESPONDIENTE EN BINARIO Para pasar un valor binario a uno de tension analdgica equivalente, se recurre auna red de resistores. lo tanto, la clave de la conversién. Existen dos redes perfectamente diferenciadas que cumplen este co- ‘metido: la de resistores ponderados ylared R-2R Para oxplicar este con- Cepto, supongamos que disponemos doun registro de8 bits, que puede ser cargado con cualquier valor desde 00 hasta FF. Una red ponderada de resistores consistira en conectar un resistor en cada salida del registro (de ali su nombre “ponderada”), de modo PIC18F2525/2620/4525/4620 < Ee) OSCTUNE<é> LP XT, HS, RG EC, PLL, INTOSC/PLL Peripherals OSCCONcE:4> 31 kHz (INTRC) FOsc3FOSCO OSCCON Glock Source Option Tor Other Modules WOT, PWRT, FSCM. ‘and Two-Speed Start-up que los valores de los resistores por conectar desde el bit da mayor peso hasta el de menor peso son R, 2R, AR, 8R, 16R, 32R, BAR y 128R. Siuna vez conectados estos resistores, se aplican valores binarios de 00 a FF en forma consecutiva, se generaré una rampa ascendente de 255 escalones, donde cada uno corresponde aun valor binario. La conversién D/A también puede realizarse mediante otro procedimiento denominado red de resistores R-2R En este sistema, a cada bit que sale del registro se le conecta un resistor de valor 2R y, en el extremo de este, se coloca un resistor de valor R. Por ejemplo, si Rvale 10K, 2R vale 20K. Como se puede apreciar, en esta red el valor ahmico de los resistores R determina el valor de 2R, que es el doble de R (2R = 2x R). Este sistema tiene la ventaja de que emplea solo dos valores de resistores distintos. La salida de sefial analégica se toma después del resistor en serie del bit de mayor peso. Conversores analégico-digitales (ADC) La conversién analogico-digital consiste en transformar valores analégicos en digitales. Es el proce- so inverso a la D/A. En este caso, a cada valor analégico aplicado en la entrada del conversor le correspon- do un valor digital de salida, dentro de los que puede generar el con- versor, La precision del conversor estaré dada por la cantidad de bits que formaran al resultado de la con- versidn. Para obtener la conversion ‘Dm existen varios métodos; aqui trataremos solo los mas represen- tativos: = Conversor estético o flash ‘= Conversor dinémico o de rampa = Conversor de doble rampa ‘= Conversor SARo por aproximacién sucesiva (a ayero-n |W ‘encoder > Enla figura observamos un conversor estatica de 4 hits, me Conversor estatico o flash Este tipo de conversor es el més rapido de todos. Esta formado por una cadena de comparadores que toman su voltaje de referencia desde un array de resistores. Como todos los comparadores se encuentran en paralelo, el sistema es conocido ‘como conversor paralelo. La salida de los comparadores se aplica ‘un codificador de prioridad digital, el cual genera un némero binario segin la entrada que se haya activado. De este modo, cada ‘comparador dispara una entrada, la cual, a su vez, genera un cédigo binario en ta salida del codificador. EI método de conversién es muy sencillo, ya que la tension de entrada se aplica a la entrada de comparacidn de todos los. comparadores. Como resultado, estos activan su salida cuando la tensién de comparacion supera a la de referencia. Pero, del sistema, solo sale un cédigo binario, pues el codificador de prioridad Gnicamente genera una salida equivalente a la entrada de mayor peso que esté activa, y el resto es ignorado. Si bien este método es répido y eficiente, tiene el inconveniente del tamario y dol costo del conversor, porque se necesitan 255 ‘comparadores para construir un conversor de 8 bits. Te [Ca Pion ad Bos eeveceun.| que el estitico, Lasalidade la ‘conversion s lee desde la salida del registro tipo LATCH. 13 tea Conversor de rampa simple o dinamico Este tipo de conversor es mas econémico y eficiente que el ante- riot. Se lo suele denominar conversor AND de rampa simple o dinamico, y se construye a partir de un conta- dor digital y un comparador. Cuando el conversor arranca, tanto el contador como el comparador inician en cero. Como la salida del comparador tiene un nivel légico cero, una compuerta AND inhibe et paso de la sefial de clock hacia ol contador. Al aplicarse una sefial en {a entrada del comparador, dado que la entrada de referencia de este vale cero, la salida del comparador pasa a uno. Esto habilita la compuerta AND, que deja pasar los pulsos de clock al contador. De esta forma, el comparador comienza a incrementar su estado de cuenta. La salida del contador se envia hacia un registro tipo LATCH y, al mismo tiempo, a un conversor D/A, mediante el cual se genera la tensién de referencia. De esta manera, la referencia comienza a incrementarse, y cuando llega al valor de la tensiGn de entrada, la salida del comparador pasa a cero. Esto desactiva la AND e inhibe el paso de la serial de clock. El contador se detione y se genera la sefial para que el registro tipo LATCH capture el estado de cuenta y lo presente on su salida como el valor binario de ta conversién de la sefial de entrada Eltiempo de conversin depende del nivel de la sefial de entrada: ‘cuanto mas grande sea, mayor sera el tiempo de conversion. La principal desventaja del conversor de rampa simple es su inestabilidad en la ge- neracion de la rampa. Por otra parte, ‘coma no existe una sincronizacién entre la seftal de clock y la gene- racién de la rampa, cualquier corrimiento afectaré el resultado de la conversién. Este problema se compensa en el sistema de conver- sién de doble rampa, que es més lento pero mucho mas estable. Conversor de doble rampa Este tipo de conversor subsana las deficiencias del sistema de rampa simple, pero es més lento que su antecasor.Elimina el efecto del corrimiento del voltaje de rampa 20 largo del tiempo, y también utiliza unintegrador de entrada, Este circuito esta formado por un am plificador operacional y un capacitor en el azo de realimentacién. Cuando aplicamos una tensién positva a la entrada del integrador, la salida crece, pero en sentido negativo. Dicha tensién provoca que la salida del ‘comparador pase a uno, lo que activa a AND, que permite el paso de los pulsos de clock que hacen avanzar al contador. La rampa negativa generada por el integrador tiene un tiempo fijo, determinado por el RC del integrador. Después de este tiempo, el circuito de control pone a cero el contador y, am bién, pone la entrada del integrador ‘una tensién de referencia negativa, En estas condiciones, el integr dor genera una rampa positiva. El contador iniciard su cuenta hasta que {a salida del integrador llegue a cero, lo que provocaré que el comparador entrague coro en su salida. El circuito de control detecta el fanco negativo producido por la salida del comparador y memoriza en el LATCH de salida el valor del contador. Este niimero binario es el valor digitalizado dela sefial de entrada Cuando se aplica la referencia nega- tiva ena entrada del integrador, el tiempo requerido por este para retornar a cero depende de la magnitud de la sefial de entrada, Cualquier variacién en el circuito integrador generador de la rampa se cancela autométicamente eneste retomo. El gran problema ue presenta este conversor es su er ete extrema lentitud: porlo general, eee es econ ee ‘se necesitan unos 100 ms para efec- ait eae tocets ie tuar un ciclo completo de conversién. es nee ea Este tipo de conversor se encuentra Docu GUOuO00 000CUGUCUdD en el voltimetro TC7105/7107 disefiado por Microchip y otras compariias. WU Reloj om Sefial e TA = IC2a at3 _ > Enel diagrama 4 4 a de doble rampa. W 1 14b vet Circuito de control 13 ica tomporizacion > VOLTIMETRO DE 3 % ‘Amodiados de los afios 80, la empresa Intersil, que desarrollaba soluciones embebidas para voltimetros, presenté su voltimetro de 3¥ digitos basado en tun conversor de doble rampa. Este circuito integrado, denominado ICL7106/7, fue producido, luego, por otros fabricantes como Microchip (TC7106/7). Su Uso se extendié ampliamente en la fabricaciGn de testers digitales. <> Roloj Clock | yy wmantue Comparador ica Rogistro de aproximaciones | Final de conversién (EOC) sucesivas (SAR) ier vr Royistro 3 de referencia de salida [~ | = Conversor DAC END OF CONVERSION 8 CHANNELS (MULTIPLEXING (INTERRUPT) ANALOG SWITCHES Liitiiti ADDRESS ‘AND DECODER 256 RESISTOR LOADER VeC GND REF(s) REF(-) OUTPUT ENABLE hdddddttitiidititilsdld ddl ttt = Enla figura vemos el pin out det ADCO808, de Ia firma National Semiconductors. En la actualidad, otros fabricantes: también desarrollan este tipo de conversor. TEST DE AUTOEVALUACION. 1. Mencione las caracteristicas de un microprocesador. 2. Enumere los componentes que integran un micropro- cesador. e {Qué es y qué funcién cumple la ALU? + {Para qué sirve el bus de direcciones? 5. Entregue algunos ejemplos de periféricos de entrada yssalida. 6. {Qué ventajas proporciona el uso del lenguaje en- samblador? 7. {Qué es el ciclo de maquina? = Detalle las caracteristicas de la arquitectura Von Neumann y Harvard. 2 {Cudl es la principal funcién de las interrupciones? 10, ,Qué son los conversores analégico-digiteles? EJERCICIOS PRACTICOS 1. Realice un diagrama que muestre los componentes: de un microprocesador. 2. Experimenta con algiin lenguaje de alto nivel como COBOLo BASIC. 3. Genere una linea de tiempo en la cual se identifique Ja evolucién de los microprocesadores. |. Analice el esquema de un conversor tipo SAR. E ELLIBROEN USER € usershop.redusers.com emcee Reenter Maa ae eT cy Peer sin ett ten ence c en Curent c eee ees kere gem Rute Meee ete Nae tery Pee Cee nm ete tole eau abet et uc nee ea Metro oarlaoe ae * ne He

You might also like