Está en la página 1de 45

INSTITUTO TECNOLGICO SUPERIOR DE JESS CARRANZA

ARQUITECTURA DE COMPUTADORAS
UNIDAD IV MICROCONTROLADORES
HERNNDEZ BRUNO FABIOLA

11

INSTITUTO TECNOLGICO SUPERIOR DE JESS CARRANZA

Unidad 4 MICROCONTROLADORES

Ing. Omartn Prez Jurez Fabiola Hernndez Bruno


JESS CARRANZA, VER. A 20 DE OCTUBRE DEL 2011

Arquitectura de computadoras

Pgina 1

NDICE
Contenido INTRODUCCIN ............................................................................................................................. 2 4.1 ARQUITECTURA ....................................................................................................................... 5 4.1.1 TERMINALES. ........................................................................................................................ 7 4.1.2 CPU. ...................................................................................................................................... 9 4.1.3 ESPACIO DE MEMORIA ....................................................................................................... 16 4.1.4 ENTRADA/ SALIDA. ............................................................................................................. 19 4.1.5 CARACTERSTICAS ESPECIALES. .......................................................................................... 21 4.2 PROGRAMACIN. .................................................................................................................. 25 4.2.1 Modelo de programacin............................................................................................... 31 4.2.2 Conjunto de instrucciones ............................................................................................. 34 4.2.3 Modos de direccionamiento. ......................................................................................... 36 4.2.4 Lenguaje ensamblador. ................................................................................................. 39 4.3.1 COMO SISTEMA INDEPENDIENTE. ..................................................................................... 42 4.3.2 COMO SUBSISTEMA DE UNA COMPUTADORA. .................................................. 42 CONCLUSIN ............................................................................................................................... 43 BIBLIOGRAFA .............................................................................................................................. 44

Arquitectura de computadoras

Pgina 2

INTRODUCCIN
Hablaremos de Los microcontroladores sabemos que un microcontrolador es un circuito integrado capaz de programarse la cual incluye en su interior las tres unidades funcionales de una computadora: unidad central de

procesamiento, memoria y perifricos de entrada y salida. Estas cuentan con dos tipos de arquitecturas la de Von Neumann y la Harvard, aunque sabemos que la ms tradicional o la ms usada es la arquitectura de von Neumann en la cual la unidad central de proceso est conectada a una memoria nica donde se guardan las instrucciones del programa y los datos. Esta es una de sus caractersticas La limitacin de la longitud de las instrucciones por el bus de datos, que hace que el microprocesador tenga que realizar varios accesos a memoria para buscar instrucciones complejas. Y la arquitectura Harvard tiene la unidad central de proceso conectada a dos memorias la cual sera: una con las instrucciones y otra con los datos, por medio de dos buses diferentes, estas es una de las ventajas de la arquitectura Harvard que el tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad en cada operacin. Los terminales es un dispositivo electromecnico de hardware, usado para introducir o mostrar datos de una computadora o de un sistema de computacin. La funcin principal de este es la exhibicin y entrada de datos, Las puertas de Entrada y Salida permiten comunicar al procesador con el mundo exterior, a travs de interfaces, o con otros dispositivos. Estas puertas, tambin llamadas puertos, son la principal utilidad de los pines de un microprocesador. Este se puede programar en diferentes aplicaciones como el MPLAB y elegir el modelo de PIC para el que se haga la simulacin y as compilarlo. Este cuenta con instrucciones y modos de direccionamiento, la aplicacin de este puede ser en aparatos

electrodomsticos y computo, como tambin en automviles sistema de alarma entre muchas otras ms.

Arquitectura de computadoras

Pgina 3

OBJETIVO

EL OBJETIVO ES QUE EL ALUMNOS APRENDER LA IMPORTANCIA DEL MICROCONTROLADOR AS COMO DE SUS ARQUITECTURAS, SUS TERMINALES Y SOBRE TODO SUS APLICACIONES.

Microcontroladores

Arquitectura de computadoras

Pgina 4

Un microcontrolador es un circuito integrado que incluye en su interior las tres unidades funcionales de una computadora: unidad central de procesamiento, memoria y perifricos de entrada y salida.

4.1 ARQUITECTURA

Arquitectura Von Neumann La arquitectura tradicional de computadoras y microprocesadores est basada en la arquitectura Von Neumann, en la cual la unidad central de proceso (CPU), est conectada a una memoria nica donde se guardan las instrucciones del programa y los datos. El tamao de la unidad de datos o instrucciones est dado por el ancho del bus que comunica la memoria con la CPU. As un microprocesador de 8 bits con un bus de 8 bits, tendr que manejar datos e instrucciones de una o ms unidades de 8 bits (bytes) de longitud. Si tiene que acceder a una instruccin o dato de ms de un byte de longitud, tendr que realizar ms de un acceso a la memoria. Y el tener un nico bus hace que el microprocesador sea ms lento en su respuesta, ya que no puede buscar en memoria una nueva instruccin mientras no analicen las transferencias de datos de la instruccin anterior. Resumiendo todo lo anterior, Las principales limitaciones que nos encontramos con la arquitectura Von Neumann son: 1. La limitacin de la longitud de las instrucciones por el bus de datos, que hace que el microprocesador tenga que realizar varios accesos a memoria para buscar instrucciones complejas. 2. La limitacin de la velocidad de operacin a causa del bus nico para datos e instrucciones que no deja acceder simultneamente a unos y otras, lo cual impide superponer ambos tiempos de acceso.

Arquitectura de computadoras

Pgina 5

Arquitectura Harvard La arquitectura Harvard tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes. Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa), y los otros slo almacenos datos (Memoria de Datos). Ambos buses son totalmente independientes y pueden ser de distintos anchos. Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instruccin Set Computer), el set de instrucciones y el bus de memoria de programa pueden disearse de tal manera que todas las instrucciones tengan una sola posicin de memoria de programa de longitud. Adems, al ser los buses independientes, la CPU puede acceder a los datos para completar la ejecucin de una instruccin, y al mismo tiempo leer la siguiente instruccin a ejecutar. Ventajas de esta arquitectura: 1. El tamao de las instrucciones no esta relacionado con el de los datos, y por lo tanto puede ser optimizado para que cualquier instruccin ocupe una sola posicin de memoria de programa, logrando as mayor velocidad y menor longitud de programa. 2. El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad en cada operacin. Una pequea desventaja de los procesadores con arquitectura Harvard, es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas, ya que estas tablas se encontraran fsicamente en la memoria de programa (por ejemplo en la EPROM de un microprocesador).

Arquitectura de computadoras

Pgina 6

El microcontrolador PIC 16F84 posee arquitectura Harvard, con una memoria de datos de 8 bits, y una memoria de programa de 14 bits. En la Figura 5 vemos la arquitectura interna organizada en bloques interconectados, en donde se incluye la memoria RAM, la memoria EEPROM, los puertos de entrada y salida (I/O), etc.

4.1.1 TERMINALES.
Un terminal, conocido tambin como consola es un dispositivo electrnico o electromecnico de hardware, usado para introducir o mostrar datos de una computadora o de un sistema de computacin. La funcin de un terminal est confinada a la exhibicin y entrada de datos; un dispositivo con una significativa capacidad local programable de procesamiento de datos puede ser llamado un "terminal inteligente" o cliente pesado. Un terminal que depende del computador husped para su capacidad de procesamiento es llamado cliente ligero. Un computador personal puede correr un software que emule la funcin de un terminal, permitiendo a veces el uso concurrente de programas locales y el acceso a un distante sistema husped de terminal. Las puertas de Entrada y Salida (E/S) permiten comunicar al procesador con el mundo exterior, a travs de interfaces, o con otros dispositivos. Estas puertas, tambin llamadas puertos, son la principal utilidad de las patas o pines de un microprocesador. Segn los controladores de perifricos que posea cada modelo de microcontrolador, las lneas de E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control.

Arquitectura de computadoras

Pgina 7

Microchip Technology Inc. fabrica estos microcontroladores en encapsulados PDIP y SPDIP, SOIC, SSOP, PLCC, QFP y QFN. Los dispositivos PIC16F870, PIC16F872, PIC16F873A y PIC16F876A se fabrican en encapsulados de 28 patitas en formatos PDIP, SOIC, SSOP y QFN, mientras que los dispositivos PIC16F871, PIC16F874A y PIC16F877A se fabrican en encapsulados de 40 patitas para formato PDIP, y en encapsulados de 44 patitas para formatos PLCC, QFP y QFN. En los encapsulados de 28 patitas no est implementado el Puerto Paralelo Esclavo (PSP). Muchas de las patitas o terminales de estos dispositivos, como suele ocurrir en la mayora de microcontroladores, tienen ms de una funcin (multiplexacin), dependiendo de cmo se configuren internamente por software. Los terminales VDD (tensin) y VSS (masa) sirven nicamente para alimentar al dispositivo. Tambin conocidos como puertos de E/S, generalmente agrupadas en puertos de 8 bits de longitud, permiten leer datos del exterior o escribir en ellos desde el interior del microcontrolador, el destino habitual es el trabajo con dispositivos simples como rels, LED, o cualquier otra cosa que se le ocurra al programador. Algunos puertos de E/S tienen caractersticas especiales que le permiten manejar salidas con determinados requerimientos de corriente, o incorporan mecanismos especiales de interrupcin para el procesador. Tpicamente cualquier pin de E/S puede ser considerada E/S de propsito general, pero como los microcontroladores no pueden tener infinitos pines, ni siquiera todos los pines que queramos, las E/S de propsito general comparten los pines con otros perifricos. Para usar un pin con cualquiera de las caractersticas a l asignadas debemos configurarlo mediante los registros destinados a ellos.

Arquitectura de computadoras

Pgina 8

Reloj principal Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronizacin de todas las operaciones del sistema. Esta seal del reloj es el motor del sistema y la que hace que el programa y los contadores avancen. Generalmente, el circuito de reloj est incorporado en el microcontrolador y slo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cermico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energa y de calor generado

4.1.2 CPU.
La unidad central de procesamiento, UCP o CPU (por el acrnimo en ingls de central processing unit), o simplemente el procesador o microprocesador, es el componente del computador y otros dispositivos programables, que interpreta las instrucciones contenidas en los programas y procesa los datos. Los CPU proporcionan la caracterstica fundamental de la computadora digital (la programabilidad) y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo, junto con el almacenamiento primario y los dispositivos de entrada/salida. Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los aos 1970, los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU, y hoy en da, el trmino "CPU" es aplicado usualmente a todos los microprocesadores.

Arquitectura de computadoras

Pgina 9

La expresin "unidad central de proceso" es, en trminos generales, una descripcin de una cierta clase de mquinas de lgica que pueden ejecutar complejos programas de computadora. Esta amplia definicin puede fcilmente ser aplicada a muchos de los primeros computadores que existieron mucho antes que el trmino "CPU" estuviera en amplio uso. Sin embargo, el trmino en s mismo y su acrnimo han estado en uso en la industria de la informtica por lo menos desde el principio de los aos 1960. La forma, el diseo y la implementacin de los CPU ha cambiado drsticamente desde los primeros ejemplos, pero su operacin fundamental ha permanecido bastante similar. Los primeros CPU fueron diseados a la medida como parte de una computadora ms grande, generalmente una computadora nica en su especie. Sin embargo, este costoso mtodo de disear los CPU a la medida, para una aplicacin particular, ha desaparecido en gran parte y se ha sustituido por el desarrollo de clases de procesadores baratos y estandarizados adaptados para uno o muchos propsitos. Tanto la miniaturizacin como la estandarizacin de los CPU han aumentado la presencia de estos dispositivos digitales en la vida moderna mucho ms all de las aplicaciones limitadas de mquinas de computacin dedicadas. Los microprocesadores modernos aparecen en todo, desde automviles,

televisores, neveras, calculadoras, aviones, hasta telfonos mviles o celulares, juguetes, entre otros

Casi todos los CPU tratan con estados discretos, y por lo tanto requieren una cierta clase de elementos de conmutacin para diferenciar y cambiar estos estados. Antes de la aceptacin comercial del transistor, los rels elctricos y los tubos de vaco (vlvulas termoinicas) eran usados comnmente como elementos de conmutacin. Aunque stos tenan distintas ventajas de velocidad sobre los anteriores diseos puramente mecnicos, no eran fiables por varias razones. Por ejemplo, hacer circuitos de lgica secuencial de corriente directa requera hardware adicional para hacer frente al problema del rebote de contacto. Por otro lado, mientras que los tubos de vaco no sufren del

Arquitectura de computadoras

Pgina 10

rebote de contacto, stos deben calentarse antes de llegar a estar completamente operacionales y eventualmente fallan y dejan de funcionar por completo.1 Generalmente, cuando un tubo ha fallado, la CPU tendra que ser diagnosticada para localizar el componente que falla para que pueda ser reemplazado. Por lo tanto, los primeros computadores electrnicos, (basados en tubos de vaco), generalmente eran ms rpidos pero menos confiables que las computadoras electromecnicas, (basadas en rels). Las computadoras de tubo, como el EDVAC, tendieron en tener un promedio de ocho horas entre fallas, mientras que las computadoras de rels, (anteriores y ms lentas), como el Harvard Mark I, fallaban muy raramente. Al final, los CPU basados en tubo llegaron a ser dominantes porque las significativas ventajas de velocidad producidas generalmente pesaban ms que los problemas de confiabilidad. La mayor parte de estos tempranos CPU sncronos corran en frecuencias de reloj bajas comparadas con los modernos diseos microelectrnicos, (ver ms abajo para una exposicin sobre la frecuencia de reloj). Eran muy comunes en este tiempo las frecuencias de la seal del reloj con un rango desde 100 kHz hasta 4 MHz, limitado en gran parte por la velocidad de los dispositivos de conmutacin con los que fueron construidos.

Desde la introduccin del primer microprocesador, el Intel 4004, en 1971, y del primer microprocesador ampliamente usado, el Intel 8080, en 1974, esta clase de CPUs ha desplazado casi totalmente el resto de los mtodos de implementacin de la Unidad Central de Proceso. Los fabricantes de mainframes y minicomputadores de ese tiempo lanzaron programas de desarrollo de IC propietarios para actualizar sus ms viejas arquitecturas de computador, y eventualmente produjeron microprocesadores con conjuntos de instrucciones que eran compatibles hacia atrs con sus ms viejos hardwares y softwares... Las generaciones previas de CPUs fueron implementadas como componentes discretos y numerosos circuitos integrados de pequea escala de integracin en una o ms tarjetas de circuitos. Por otro lado, los microprocesadores son CPUs fabricados con un nmero muy pequeo de IC; usualmente solo uno. El
Arquitectura de computadoras Pgina 11

tamao ms pequeo del CPU, como resultado de estar implementado en una simple pastilla, significa tiempos de conmutacin ms rpidos debido a factores fsicos como el decrecimiento de la capacitancia parsita de las puertas. Esto ha permitido que los microprocesadores sncronos tengan tiempos de reloj con un rango de decenas de megahercios a varios gigahercios. Adicionalmente, como ha aumentado la capacidad de construir transistores excesivamente pequeos en un IC, la complejidad y el nmero de transistores en un simple CPU tambin se han incrementado dramticamente. Esta tendencia

ampliamente observada es descrita por la ley de Moore, que ha demostrado hasta la fecha, ser una prediccin bastante exacta del crecimiento de la complejidad de los CPUs y otros IC. Mientras que, en los pasados sesenta aos han cambiado drsticamente, la complejidad, el tamao, la construccin, y la forma general del CPU, es notable que el diseo y el funcionamiento bsico no hayan cambiado demasiado. Casi todos los CPU comunes de hoy se pueden describir con precisin como mquinas de programa almacenado de von Neumann. A medida que la ya mencionada ley del Moore contina mantenindose verdadera, se han presentado preocupaciones sobre los lmites de la tecnologa de transistor del circuito integrado. La miniaturizacin extrema de puertas electrnicas est causando los efectos de fenmenos que se vuelven mucho ms significativos, como la electromigracin, y el subumbral de prdida. Estas ms nuevas preocupaciones estn entre los muchos factores que hacen a investigadores estudiar nuevos mtodos de computacin como la computadora cuntica, as como ampliar el uso de paralelismo, y otros mtodos que extienden la utilidad del modelo clsico de von Neumann.

Arquitectura de computadoras

Pgina 12

Operacin del CPU La operacin fundamental de la mayora de los CPU, es ejecutar una secuencia de instrucciones almacenadas llamadas "programa". El programa es

representado por una serie de nmeros que se mantienen en una cierta clase de memoria de computador. Hay cuatro pasos que casi todos los CPU de arquitectura de von Neumann usan en su operacin: fetch, decode, execute, y writeback, (leer, decodificar, ejecutar, y escribir).

Diagrama mostrando como es decodificada una instruccin del MIPS32. (MIPS Technologies 2005) El primer paso, leer (fetch), implica el recuperar una instruccin, (que es representada por un nmero o una secuencia de nmeros), de la memoria de programa. La localizacin en la memoria del programa es determinada por un contador de programa (PC), que almacena un nmero que identifica la posicin actual en el programa. En otras palabras, el contador de programa indica al CPU, el lugar de la instruccin en el programa actual. Despus de que se lee una instruccin, el Contador de Programa es incrementado por la longitud de la palabra de instruccin en trminos de unidades de memoria. 2 Frecuentemente la instruccin a ser leda debe ser recuperada de memoria relativamente lenta, haciendo detener al CPU mientras espera que la instruccin sea retornada. Este problema es tratado en procesadores modernos en gran parte por los cachs y las arquitecturas pipeline (ver abajo). La instruccin que el CPU lee desde la memoria es usada para determinar qu deber hacer el CPU. En el paso de decodificacin, la instruccin es dividida en partes que tienen significado para otras unidades del CPU. La manera en que el valor de la instruccin numrica es interpretado est definida por la arquitectura del conjunto de instrucciones (el ISA) del CPU.3 A menudo, un
Arquitectura de computadoras Pgina 13

grupo de nmeros en la instruccin, llamados opcode, indica qu operacin realizar. Las partes restantes del nmero usualmente proporcionan informacin requerida para esa instruccin, como por ejemplo, operandos para una operacin de adicin. Tales operandos se pueden dar como un valor constante (llamado valor inmediato), o como un lugar para localizar un valor, que segn lo determinado por algn modo de direccin, puede ser un registro o una direccin de memoria. En diseos ms viejos las unidades del CPU responsables de decodificar la instruccin eran dispositivos de hardware fijos. Sin embargo, en CPUs e ISAs ms abstractos y complicados, es frecuentemente usado un microprograma para ayudar a traducir instrucciones en varias seales de configuracin para el CPU. Este microprograma es a veces reescribible de tal manera que puede ser modificado para cambiar la manera en que el CPU decodifica instrucciones incluso despus de que haya sido fabricado.

Diagrama de bloques de un CPU simple Despus de los pasos de lectura y decodificacin, es llevado a cabo el paso de la ejecucin de la instruccin. Durante este paso, varias unidades del CPU son conectadas de tal manera que ellas pueden realizar la operacin deseada. Si, por ejemplo, una operacin de adicin fue solicitada, una unidad aritmtico lgica (ALU) ser conectada a un conjunto de entradas y un conjunto de

Arquitectura de computadoras

Pgina 14

salidas. Las entradas proporcionan los nmeros a ser sumados, y las salidas contendrn la suma final. La ALU contiene la circuitera para realizar operaciones simples de aritmtica y lgica en las entradas, como adicin y operaciones de bits (bitwise). Si la operacin de adicin produce un resultado demasiado grande para poder ser manejado por el CPU, tambin puede ser ajustada una bandera (flag) de desbordamiento aritmtico localizada en un registro de banderas (ver abajo la seccin sobre rango de nmeros enteros). El paso final, la escritura (writeback), simplemente "escribe" los resultados del paso de ejecucin a una cierta forma de memoria. Muy a menudo, los resultados son escritos a algn registro interno del CPU para acceso rpido por subsecuentes instrucciones. En otros casos los resultados pueden ser escritos a una memoria principal ms lenta pero ms barata y ms grande. Algunos tipos de instrucciones manipulan el contador de programa en lugar de directamente producir datos de resultado. stas son llamadas generalmente "saltos" (jumps) y facilitan comportamientos como |bucles (loops), la ejecucin condicional de programas (con el uso de saltos condicionales), y funciones en programas.4 Muchas instrucciones tambin cambiarn el estado de dgitos en un registro de "banderas". Estas banderas pueden ser usadas para influenciar cmo se comporta un programa, puesto que a menudo indican el resultado de varias operaciones. Por ejemplo, un tipo de instruccin de "comparacin" considera dos valores y fija un nmero, en el registro de banderas, de acuerdo a cul es el mayor. Entonces, esta bandera puede ser usada por una posterior instruccin de salto para determinar el flujo de programa. Despus de la ejecucin de la instruccin y la escritura de los datos resultantes, el proceso entero se repite con el siguiente ciclo de instruccin, normalmente leyendo la siguiente instruccin en secuencia debido al valor incrementado en el contador de programa. Si la instruccin completada era un salto, el contador de programa ser modificado para contener la direccin de la instruccin a la cual se salt, y la ejecucin del programa contina normalmente. En CPUs ms complejos que el descrito aqu, mltiples instrucciones pueden ser ledas, decodificadas, y ejecutadas simultneamente. Esta seccin describe lo que es referido generalmente como el "entubado RISC

Arquitectura de computadoras

Pgina 15

clsico" (Classic RISC pipeline), que de hecho es bastante comn entre los CPU simples usados en muchos dispositivos electrnicos, a menudo llamados microcontroladores.

4.1.3 ESPACIO DE MEMORIA

En los microcontroladores la memoria de instrucciones y datos est integrada en el propio chip. Una parte debe ser no voltil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicacin. Otra parte de memoria ser tipo RAM, voltil, y se destina a guardar las variables y los datos. Hay dos peculiaridades que diferencian a los microcontroladores de los computadores personales: No existen sistemas de almacenamiento masivo como disco duro o disquetes. Como el microcontrolador slo se destina a una tarea en la memoria ROM, slo hay que almacenar un nico programa de trabajo. La RAM en estos dispositivos es de poca capacidad pues slo debe contener las variables y los cambios de informacin que se produzcan en el transcurso del programa. Por otra parte, como slo existe un programa activo, no se requiere guarda r una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadores personales estn habituados a manejar Megabytes de memoria, pero, los diseadores con microcontroladores trabajan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes. Segn el tipo de memoria ROM que dispongan los microcontroladores, la aplicacin y utilizacin de los mismos es diferente. Se describen las cinco versiones de memoria no voltil que se pueden encontrar en los microcontroladores del mercado.

ROM con mscara Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. Si tenemos idea de cmo se fabrican los circuitos integrados, sabremos de donde viene el nombre. Estos se fabrican en obleas
Arquitectura de computadoras Pgina 16

que contienen varias decenas de chips. Estas obleas se fabrican a partir de procesos fotoqumicos, donde se impregnan capas de silicio y oxido de silicio, y segn convenga, se erosionan al exponerlos a la luz. Como no todos los puntos han de ser erosionados, se sita entre la luz y la oblea una mscara con agujeros, de manera que donde deba incidir la luz, esta pasar. Con varios procesos similares pero ms complicados se consigue fabricar los transistores y diodos micromtricos que componen un chip. Ahora ya sabes de donde viene la mscara y no te acostars sin saber una cosa ms. El elevado coste del diseo de la mscara slo hace aconsejable el empleo de los

microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades.

OTP El microcontrolador contiene una memoria no voltil de slo lectura programable una sola vez por el usuario. OTP (One Time Programable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la construccin de prototipos y series muy pequeas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacin mediante fusibles para proteger el cdigo contenido.

EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cpsulas son de

Arquitectura de computadoras

Pgina 17

material cermico y son ms caros que los microcontroladores con memoria OTP que estn hechos con material plstico.

EEPROM, E2PROM o E2PROM Se trata de memorias de slo lectura, programables y borrables elctricamente EEPROM (Elctrica Erasable Programmable Read OnIy Memory). Tanto la programacin como el borrado, se realizan elctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. No disponen de ventana de cristal en la superficie. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan "grabadores en circuito que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El nmero de veces que puede grabarse y borrarse una memoria EEPROM es _nito, por lo que no es recomendable una reprogramacin contina. Son muy idneos para la enseanza y la Ingeniera de diseo. Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables para guardar y modificar cmodamente una serie de parmetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta, como ya veremos ms adelante.

FLASH Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores que las incorporan puedan ser

reprogramados en circuito, es decir, sin tener que sacar el circuito integrado de


Arquitectura de computadoras Pgina 18

la tarjeta. As, un dispositivo con este tipo de memoria incorporado al control del motor de un automvil permite que pueda modificarse el programa durante la rutina de mantenimiento peridico, compensando los desgastes y otros factores tales como la compresin, la instalacin de nuevas piezas, etc. La reprogramacin del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto.

4.1.4 ENTRADA/ SALIDA.


Cualquier aplicacin de un sistema digital basado en un microprocesador o microcontrolador requiere la transferencia de datos entre circuitos externos al microprocesador y l mismo. Estas transferencias constituyen las operaciones llamadas ENTRADA y SALIDA, (input /output) o ES (I/O). Los puertos de entrada/salida son bsicamente registros externos o internos. Algunos microprocesadores proporcionan seales de control que permiten que los registros externos que forman los puertos de E/S ocupen un espacio de direcciones separada, es decir, distinto del espacio de direcciones de los registros externos que componen la memoria.

Cuando los puertos tienen asignado un espacio de direcciones separado, se dice que estn en modo de ENTRADA/SALIDA AISLADA o E/S ESTNDAR. Por el contrario, cuando se ubican dentro del mismo espacio que la memoria, se dice que estn en modo de ENTRADA/SALIDA MAPEADA A MEMORIA o PROYECTADA EN MEMORIA. En su forma ms elemental, un puerto de entrada est compuesto slo por un buffer de tercer estado y con ms frecuencia por un buffer de tercer estado junto con un registro de almacenamiento (latch). El buffer de tercer estado tiene la funcin de controlar, es decir, aislar o permitir el flujo de informacin del puerto al bus de datos del microprocesador. El registro tiene la funcin de almacenar temporalmente la informacin generada por el dispositivo perifrico de entrada hasta que pueda ser leda por el microprocesador.

ENTRADA/SALIDA

AISLADA.-

Para

que

un

microprocesador

pueda

implementar el modo E/S aislada (isolated I/O) son indispensables las siguientes condiciones:

Arquitectura de computadoras

Pgina 19

1.- El microprocesador debe proporcionar seales de control que permitan distinguir entre una operacin con un puerto y una referencia a memoria. 2.- El cdigo de instrucciones debe tener instrucciones especiales con las que se pueda leer (entrada) o escribir (salida) en los puertos.

ENTRADA/SALIDA MAPEADA.- El modo de E/S mapeada a memoria (Memory mapped I/O) se basa en que tanto las localidades de memoria como los puertos de E/S se consideran como registros externos desde el punto de vista del microprocesador. Entonces, las instrucciones que hacen referencia a la memoria tambin pueden transferir datos entre un dispositivo perifrico y el microprocesador, siempre y cuando el puerto de E/S que los interconecta se encuentre dentro del espacio de direccionamiento de memoria, es decir, controlado por las seales de control para memoria. De esta forma, el registro asociado con el puerto de E/S es tratado simplemente como una localidad de memoria ms. Una caracterstica importante es que las operaciones de entrada y salida usando E/S mapeada a memoria no estn limitadas a los registros internos. COMPARACIN ENTRE E/S AISLADA y E/S MAPEADA A MEMORIA El modo de E/S aislada presenta las siguientes ventajas: - Como se usan instrucciones especiales para E/S en un programa stas pueden distinguirse fcilmente de las instrucciones que hagan referencia a memoria. - Como slo se utilizan ocho lneas en el direccionamiento de un puerto, se necesitan menos circuitos para su decodificacin. - Como el nmero de puerto se puede representar en un byte, las instrucciones son ms cortas. - Como los puertos estn asignados a un espacio separado de la memoria, se tiene disponible la capacidad total de direccionamiento del microprocesador para circuitos de memoria. Las desventajas de este mtodo son: - La capacidad de procesamiento y flexibilidad de las instrucciones de E/S es en general muy restringida.

Arquitectura de computadoras

Pgina 20

- Se debe dedicar al menos una terminal del circuito integrado del microprocesador para la seal de control que distingue las operaciones con puertos de las operaciones con memoria. Por otra parte, el modo de E/S mapeada a memoria tiene como ventaja: - Permite la utilizacin de la gran variedad de instrucciones que hacen referencia a la memoria, para la transferencia de informacin y la ejecucin de operaciones aritmticas o lgicas directamente en los puertos, sin necesidad de transferir los datos a los registros internos del microprocesador. - Reduce el nmero de lneas de control que debe tener el microprocesador. Sus desventajas son las siguientes: - Cada puerto implantado de este modo disminuye en uno las direcciones disponibles para memoria. - Es necesario decodificar las 16 lneas de direcciones para seleccionar el puerto. - Las instrucciones que hacen referencia a la memoria requieren dos bytes para representar la direccin, por lo tanto son ms largas y tambin puede ser ms lentas.

4.1.5 CARACTERSTICAS ESPECIALES.


Son diseados para reducir el costo econmico y el consumo de energa de un sistema en particular. Por eso el tamao de la unidad central de procesamiento, 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 bits) porque sustituir a un autmata finito. En cambio, un reproductor de msica y/o vdeo digital (mp3 o mp4) requerir de un procesador de 32 bits o de 64 bits y de uno o ms Cdecs 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 bits, al igual que el sistema de control electrnico del motor en un automvil.

Arquitectura de computadoras

Pgina 21

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 (Ud. 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 unidad central de procesamiento normal, debido a que es ms fcil convertirla en una computadora en funcionamiento, con un mnimo de circuitos integrados externos de apoyo. La idea es que el circuito integrado 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 mdulos de entrada y 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 de acceso aleatorio y/o

Arquitectura de computadoras

Pgina 22

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 lenguaje de programacin 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 Diferencias entre microprocesador y microcontrolador Si has tenido la oportunidad de realizar un diseo con un microprocesador pudiste observar que dependiendo del circuito se requeran algunos circuitos integrados adicionales adems del microprocesador como por ejemplo: memorias RAM para almacenar los datos temporalmente y memorias ROM para almacenar el programa que se encargara del proceso del equipo, un circuito integrado para los puertos de entrada y salida y finalmente un decodificador de direcciones. Un microcontrolador es un solo circuito integrado que contiene todos los elementos electrnicos que se utilizaban para hacer funcionar un sistema basado con un microprocesador; es decir contiene en un solo integrado la Unidad de Proceso, la memoria RAM, memoria ROM , puertos de entrada, salidas y otros perifricos, con la consiguiente reduccin de espacio. El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamao es posible montar el controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado o embebido (embedded controller).

Arquitectura de computadoras

Pgina 23

Ventajas de un microcontrolador frente a un microprocesador Estas ventajas son reconocidas inmediatamente para aquellas personas que han trabajado con los microprocesadores y despus pasaron a trabajar con los microcontroladores. Estas son las diferencias ms importantes: Por ejemplo la configuracin mnima bsica de un microprocesador estaba constituida por un Micro de 40 Pines, Una memoria RAM de 28 Pines, una memoria ROM de 28 Pines y un decodificador de direcciones de 18 pines; pero un microcontrolador incluye todo estos elementos en un solo Circuito Integrado por lo que implica una gran ventaja en varios factores: En el circuito impreso por su amplia simplificacin de circuitera, el costo para un sistema basado

Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los buses en el exterior permite que se configure a la medida de la aplicacin

Arquitectura de computadoras

Pgina 24

El microcontrolador es un sistema cerrado. Todas las partes del procesador estn contenidas en su interior y slo salen al exterior las lneas que gobiernan los perifricos. En microcontrolador es mucho menor y, lo mejor de todo, el tiempo de desarrollo de su proyecto electrnico se disminuye

considerablemente

4.2 PROGRAMACIN.
Includes #include <pic.h> Cuando se programa utilizando el MPLAB, al elegir el modelo de PIC para el que se va a compilar, el IDE genera la lnea de compilacin incluyendo este modelo. Con esta bandera seteada y la inclusin de la biblioteca <pic.h> es suficiente para que a su vez se incluya la biblioteca picXX.h (siendo XX el modelo del PIC).

Cdigo ejemplo: #include <pic.h> Colocar este include permite manejar el conjunto de nombres de registros y bits, haciendo mucho ms intuitiva la programacin, y sobre todo ms entendible la posterior lectura de cdigo (en las secciones siguientes se mencionaran registros segn sus nombres en estas bibliotecas), por ejemplo: a partir de la inclusin de estas bibliotecas se puede usar el nombre PORTA en lugar de la direccin de memoria 05h, y el TRISA en lugar de 85h (esta biblioteca es en realidad un gran conjunto de defines). #include <p16F628.inc> Utilizando el MPASM Assembler tambin es posible incluir bibliotecas que permiten nombrar registros, aunque no existe la facilidad de incluir una sola, por lo que es necesario incluir la que corresponde al microcontrolador en cuestin.
Arquitectura de computadoras Pgina 25

Cdigo ejemplo: #include <p16F628.inc> Existen muchas bibliotecas disponibles para incluir, aunque hay que considerar que tanto el lenguaje C como el assembler son exclusivos para estos microcontroladores, por lo tanto no se puede incluir cualquier biblioteca. Por otro lado el C sigue el estndar de ANSI casi completamente, a menos de algunas macros y el tipo de dato bit (en PICC existe el tipo de dato bit), as como el tratamiento de la rutina de interrupcin (en PICC existe una sola rutina de interrupcin). Algunas bibliotecas disponibles para ser incluidas se encuentran en los directorios c:\ PICCLITE\include y en c:\PICCLITE\samples\ en una instalacin estndar del compilador PICC Lite, y en el directorio C:\Program Files\MPLAB IDE\MCHIP_Tools en una instalacin estndar del MPLAB (este incluye el ensamblador y el linkeditor). Configuracin de algunos PIC La configuracin de un microcontrolador refiere a como se setean algunas de sus caractersticas al momento en que el microcontrolador inicia su ejecucin, por ejemplo: el tipo de reloj y frecuencia con que va a trabajar, la habilitacin del watchdog (timer que resetea el microcontrolador) y la proteccin del cdigo entre otras. 9Esta configuracin no tiene que ver con el lenguaje en el que se programe aunque si con el modelo de microcontrolador (por ejemplo: la palabra en memoria de configuracin del PIC 16F628 tiene poco en comn con la del PIC 16F877).

Configurar un PIC significa establecer la palabra de configuracin en tiempo de carga del programa, nico momento en que se puede acceder a la direccin 2007h (direccin donde se guarda la configuracin). Esta palabra determina el funcionamiento del PIC.

Arquitectura de computadoras

Pgina 26

Ejemplos de configuracin para el PIC 16F877A Configuracin de un microcontrolador PIC 16F877A programado con el lenguaje PICC versin Lite que incluye la librera pic.h.

Cdigo ejemplo:

__CONFIG( HS & WDTDIS & PWRTEN & BORDIS & LVPDIS & DUNPROT & UNPROTECT ); Ejemplos de configuracin para el PIC 16F628 Configuracin de un microcontrolador PIC 16F628 programado en Assembler que incluye la librera p16F628.inc Cdigo ejemplo:

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF &

_LVP_OFF & _PWRTE_ON

USART Universal Synchronous Asynchronous Receiver Transmitter. Tambin se conoce como SCI (Serial Communications Interface).

El mdulo USART de los microcontroladores PIC permite la comunicacin con otros microcontroladores, memorias eeproms, PC, etc., utilizando tanto un modo asincrnico (pudiendo ser full duplex) o sincrnico (master o Slave, half duplex).
Arquitectura de computadoras Pgina 27

Permite enviar 8 o 9 bits por transmisin y tiene posibilidad de alcanzar varias velocidades de transmisin, siendo lo ms importante, que por ser una funcionalidad integrada al PIC, el programador logra desentenderse de toda la complejidad del protocolo a nivel de capa 1 y es suficiente con poner un dato en un registro del microcontrolador para enviar y leer otro registro para recibir.

Si bien existen varios protocolos relacionados con la sincronizacin de la comunicacin USART como el RTS/CTS o el XON/XOFF, los

microcontroladores PIC de gama media no los implementan, para utilizarlos hay que programarlos utilizando algn par de pines disponibles.

En un PIC 16F87XA los pines que son utilizados por la funcionalidad integrada USART son el RC6/TX y el RC7/RX. En un PIC 16F62X los pines que son utilizados por la funcionalidad integrada USART son el RB1/RX y el RB2/TX.

Estos pines tienen que estar configurados como entrada (puestos en 1 en los registros TRIS correspondientes). En las siguientes secciones se describir como se utiliza el USART en modo asincrnico con transmisiones de 8 bits. Cuando se utiliza el lenguaje PICC en su versin Lite, existen rutinas para el uso y gestin del USART que se encuentran en el archivo sci.h, ubicado en el directorio C:\PICCLITE \samples\USART en una instalacin estndar. Para

utilizar el mdulo en Assembler se deben utilizar los registros de la misma forma en que se usan en C a bajo nivel. A pesar de que se cuenta con la biblioteca sci.h, se describir el funcionamiento y uso del mdulo USART a ms bajo nivel, dado que puede ser necesario cambiar esta biblioteca. En particular para el proyecto se hicieron cambios para integrar controles de tiempos (se

Arquitectura de computadoras

Pgina 28

agregaron timer para controlar que si pasado cierto tiempo no llega un dato se devuelva error), es decir se hicieron rutinas bloqueantes con timeout.

Registros que intervienen Registro TXSTA Transmit Status and Control Register (Registro de estado y control de transmisin) . Incluye: CSRC selecciona la fuente de reloj (interna, externa). TX9 TXEN SYNC BRGH TRMT TX9D habilita transmisiones de 8 o 9 bits. habilita transmisin. seleccin de modo (sincrnico, asincrnico). complementa el control en la generacin de baudios. bit de estado del Transmit Shift Register noveno bit de transmisin de datos.

Registro RCSTA Receive Status and Control Register (Registro de estado y control de recepcin) .

Incluye: SPEN RX9 SREN bit de habilitacin del puerto serial. setea recepcin de 8 o 9 bits. bit de habilitacin de recepcin simple.

Arquitectura de computadoras

Pgina 29

CREN ADDEN FERR OERR RX9D

bit de habilitacin de recepcin continua. bit de habilitacin de deteccin de direccin. bit bandera de error de framing. bit de error por sobreescritura. noveno bit de recepcin de datos.

Registro SPBRG Genera los pulsos, el reloj de la transmisin. Existe un timer independiente de 8 bits que Decrementa hasta 0 a partir del valor de este registro. Dependiendo de la velocidad de transmisin que se quiera conviene setear en 0 o 1 el BRGH, y dependiendo de este es el valor que se setea en el SPBRG (ver figura 10-3 y 10-4 de la hoja de datos del pic16F87X).

Registro PIE1 Incluye: TXIE habilita interrupciones por transmisin de USART RCIE habilita interrupciones por recepcin de USART

Registro PIR1 Incluye: TXIF bandera que indica que se enviado por USART RCIF bandera que indica que se ha recibido por USART

Arquitectura de computadoras

Pgina 30

Registro TXREG Registro que se debe escribir con el dato a enviar por USART.

Registro RCREG Registro que se debe leer al recibir un dato por USART.

Modo de uso Inicializacin Inicialmente es necesario hacer una serie de seteos para que pueda usarse el modo USART, esto incluye definir a qu velocidad se va a transmitir, el modo (sincrnico / asincrnico), con interrupciones, etc. 4.2.1 Modelo de programacin. El microcontrolador ejecuta el programa cargado en la memoria Flash. Esto se denomina el cdigo ejecutable y est compuesto por una serie de ceros y unos, aparentemente sin significado. Dependiendo de la arquitectura del

microcontrolador, el cdigo binario est compuesto por palabras de 12, 14 o 16 bits de anchura. Cada palabra se interpreta por la CPU como una instruccin a ser ejecutada durante el funcionamiento del microcontrolador. Todas las instrucciones que el microcontrolador puede reconocer y ejecutar se les denominan colectivamente Conjunto de instrucciones. Como es ms fcil trabajar con el sistema de numeracin hexadecimal, el cdigo ejecutable se representa con frecuencia como una serie de los nmeros hexadecimales denominada cdigo Hex. En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35 instrucciones diferentes.

Arquitectura de computadoras

Pgina 31

Como el proceso de escribir un cdigo ejecutable era considerablemente arduo, en consecuencia fue creado el primer lenguaje de programacin denominado ensamblador (ASM). Siguiendo la sintaxis bsica del

ensamblador, era ms fcil escribir y comprender el cdigo. Las instrucciones en ensamblador consisten en las abreviaturas con significado y a cada instruccin corresponde una localidad de memoria. Un programa denominado ensamblador compila (traduce) las instrucciones del lenguaje ensamblador a cdigo mquina (cdigo binario). HEste programa compila instruccin a instruccin sin optimizacin. Como permite controlar en detalle todos los procesos puestos en marcha dentro del chip, este lenguaje de programacin todava sigue siendo popular.

Ventajas de lenguajes de programacin de alto nivel A pesar de todos los lados buenos, el lenguaje ensamblador tiene algunas desventajas:
Arquitectura de computadoras Pgina 32

Incluso una sola operacin en el programa escrito en ensamblador consiste en muchas instrucciones, hacindolo muy largo y difcil de manejar.

Cada tipo de microcontrolador tiene su propio conjunto de instrucciones que un programador tiene que conocer para escribir un programa

Un programador tiene que conocer el hardware del microcontrolador para escribir un programa

Programa escrito en C (El mismo programa compilado al cdigo ensamblador):

Arquitectura de computadoras

Pgina 33

Los lenguajes de programacin de alto nivel (Basic, Pascal, C etc.) fueron creados con el propsito de superar las desventajas del ensamblador. En lenguajes de programacin de alto nivel varias instrucciones en ensamblador se sustituyen por una sentencia. El programador ya no tiene que conocer el conjunto de instrucciones o caractersticas del hardware del microcontrolador utilizado. Ya no es posible conocer exactamente cmo se ejecuta cada sentencia, de todas formas ya no importa. Aunque siempre se puede insertar en el programa una secuencia escrita en ensamblador. Si alguna vez ha escrito un programa para un microcontrolador PIC en lenguaje ensamblador, probablemente sepa que la arquitectura RISC carece de algunas instrucciones. Por ejemplo, no hay instruccin apropiada para multiplicar dos nmeros. Por supuesto, para cada problema hay una solucin y ste no es una excepcin gracias a la aritmtica que permite realizar las operaciones complejas al descomponerlas en un gran nmero operaciones ms simples. En este caso, la multiplicacin se puede sustituir con facilidad por adicin sucesiva (a x b = a + a + a + ... + a). Ya estamos en el comienzo de una historia muy larga... No hay que preocuparse al utilizar uno de estos lenguajes de programacin de alto nivel como es C, porque el compilador encontrar automticamente la solucin a ste problema y otros similares. Para multiplicar los nmeros a y b, basta con escribir a*b.

4.2.2 Conjunto de instrucciones. Aunque no aparezca en el esquema, no podamos dejar al conjunto o repertorio de instrucciones fuera de esta fiesta, porque este elemento determina lo que puede hacer el procesador. Define las operaciones bsicas que puede realizar el procesador, que conjugadas y organizadas forman lo que conocemos como software. El conjunto de instrucciones vienen siendo como las letras del alfabeto, el elemento bsico del lenguaje, que organizadas adecuadamente permiten escribir palabras, oraciones y cuanto programa se le ocurra.

Arquitectura de computadoras

Pgina 34

Existen dos tipos bsicos de repertorios de instrucciones, que determinan la arquitectura del procesador: CISC y RISC. CISC, del ingls Complex Instruction Set Computer, Computadora de Conjunto de Instrucciones Complejo. Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y que permiten realizar operaciones complejas 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 mayora de los sistemas CISC de alto rendimiento, convierten las instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones. Dentro de los microcontroladores CISC podemos encontrar a la popular familia INTEL -51 y la Z80, aunque actualmente existen versiones CISC-RISC de estos microcontroladores, que pretenden aprovechar las ventajas de los procesadores RISC a la vez que se mantiene la compatibilidad hacia atrs con las instrucciones de tipo CISC. RISC, del ingls Reduced Instruction Set Computer, Computadora con Conjunto de Instrucciones Reducido. Se centra en la obtencin de procesadores con las siguientes caractersticas fundamentales:

Instrucciones de tamao fijo. Pocas instrucciones. Slo las instrucciones de carga y almacenamiento acceden a la memoria de datos.

Nmero relativamente elevado de registros de propsito general.

Una de las caractersticas ms destacables de este tipo de procesadores es que posibilitan el paralelismo en la ejecucin, y reducen los accesos a memoria. Es por eso que los procesadores ms modernos, tradicionalmente basados en arquitecturas CISC implementan mecanismos de traduccin de instrucciones CISC a RISC, para aprovechar las ventajas de este tipo de procesadores. Los procesadores de los microcontroladores PIC son de tipo RISC.
Arquitectura de computadoras Pgina 35

4.2.3 Modos de direccionamiento.

Una instruccin es un cdigo binario con un significado ya establecido de antemano. Para no tener que memorizar estos cdigos y facilitar de esta manera la tarea del programador, a cada instruccin se le asigna una abreviatura que d una idea de la accin que realiza. As por ejemplo si se pretende cargar un dato en el acumulador se emplea una instruccin cuyo nemnico es LDA abreviatura de LoaD Accumulator. Pero adems hay que indicar en la instruccin cual es el dato o donde se encuentra el dato con el que hay que operar. As por ejemplo la instruccin LDA (Cargar el acumulador) da lugar a los nueve cdigos de operacin que se indican en la tabla siguiente, que tienen como denominador comn que todas las instrucciones cargan en el acumulador un dato, pero difieren en la forma de obtener ese dato.

Instruccin LDA LDA LDA Instruccin LDA LDA LDA

Modo de Direccionamiento Inmediato Absoluto Absoluto Indexado X Modo de direccionamiento Absoluto Indexado Y Preindexado Postindexado

Cdigo de Operacin A9 AD BD Cdigo de operacin B9 A1 B1

Arquitectura de computadoras

Pgina 36

LDA LDA LDA

Absoluto Pgina 0 Indexado Pgina 0 X Indirecto

A5 B5 B2

Esta gran variedad de modos de direccionamiento facilita la labor del programador que deber de recordar un grupo de nemnicos ms reducido que en otros microprocesadores. El 65C02 dispone de 68 nemnicos, que expandidos en los 15 modos de direccionamiento posibles dan un total de 210 cdigos de operacin. En la siguiente tabla se muestran los modos de direccionamiento del 65C02; en la columna de la derecha se representa el formato de escritura para cada uno de ellos en un lenguaje emsamblador. Esta gran variedad de modos de direccionamiento facilita la labor del programador que deber de recordar un grupo de nemnicos ms reducido que en otros microprocesadores. El 65C02 dispone de 68 nemnicos, que expandidos en los 15 modos de direccionamiento posibles dan un total de 210 cdigos de operacin. En la siguiente tabla se muestran los modos de direccionamiento del 65C02; en la columna de la derecha se representa el formato de escritura para cada uno de ellos en un lenguaje emsamblador.

Arquitectura de computadoras

Pgina 37

Modos de Direccionamiento Implcito Inmediato Absoluto Pgina Cero Indirecto absoluto Absoluto,X (indexado) Absoluto,Y (indexado) Pgina Cero,X (Indexado) Pre-indexado (Indexado indirecto) Indirecto absoluto indexado Post-indexado (indirecto indexado) Relativo Acumulador Indirecto Mejorado

Formato del Operando (No hay operando) #nn nnnn nn [nnnn] nnnn,X nnnn,Y nn,X [nn,X] [nnnn],X [nn],Y nn A [nn]

Arquitectura de computadoras

Pgina 38

4.2.4 Lenguaje ensamblador. El lenguaje ensamblador, o assembler (assembly language en ingls) es un lenguaje de programacin de bajo nivel y para otros los computadores, integrados

microprocesadores,

microcontroladores,

circuitos

programables. Implementa una representacin simblica de los cdigos de mquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura legible por un programador. Esta representacin es usualmente definida por el fabricante de hardware, y est basada en los mnemnicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria, y otras caractersticas del lenguaje. Un lenguaje ensamblador es por lo tanto especfico a cierta arquitectura de computador fsica (o virtual). Esto est en contraste con la mayora de los lenguajes de programacin de alto nivel, que, idealmente son portables. Un programa utilitario llamado ensamblador es usado para traducir sentencias del lenguaje ensamblador al cdigo de mquina del computador objetivo. El ensamblador realiza una traduccin ms o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemnicas a las instrucciones y datos de mquina. Esto est en contraste con los lenguajes de alto nivel, en los cuales una sola declaracin generalmente da lugar a muchas instrucciones de mquina. Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda de depuracin. Particularmente, la mayora de los ensambladores modernos incluyen una facilidad de macro (descrita ms abajo), y son llamados macro ensambladores. Fue usado principalmente en los inicios del desarrollo de software, cuando an no se contaba con potentes lenguajes de alto nivel y los recursos eran
Arquitectura de computadoras Pgina 39

limitados. Actualmente se utiliza con frecuencia en ambientes acadmicos y de investigacin, especialmente cuando se requiere la manipulacin directa de hardware, altos rendimientos, o un uso de recursos controlado y reducido. Muchos dispositivos programables (como los microcontroladores) an cuentan con el ensamblador como la nica manera de ser manipulados.

Caractersticas

El cdigo escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje mquina, es decir, es un lenguaje de bajo nivel.

El lenguaje ensamblador es difcilmente portable, es decir, un cdigo escrito para un microprocesador, puede necesitar ser modificado, para poder ser usado en otra mquina distinta. Al cambiar a una mquina con arquitectura diferente, generalmente es necesario reescribirlo

completamente.

Los programas hechos por un programador experto en lenguaje ensamblador son generalmente mucho ms rpidos y consumen menos recursos del sistema (memoria RAM y ROM) que el programa equivalente compilado desde un lenguaje de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan ms rpidamente y ocupan menos espacio que con lenguajes de alto nivel.

Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de cdigo difciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no estn disponibles en los lenguajes de alto nivel.

Tambin se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante su ejecucin.

Arquitectura de computadoras

Pgina 40

Programa ensamblador Artculo principal: Ensamblador Tpicamente, un programa ensamblador (assembler en ingls) moderno crea cdigo objeto traduciendo instrucciones mnemnicas de lenguaje ensamblador en opcodes, y resolviendo los nombres simblicos para las localizaciones de memoria y otras entidades.1 El uso de referencias simblicas es una caracterstica clave del lenguaje ensamblador, evitando tediosos clculos y actualizaciones manuales de las direcciones despus de cada modificacin del programa. La mayora de los ensambladores tambin incluyen facilidades de macros para realizar sustitucin textual - ej. Generar cortas secuencias de instrucciones como expansin en lnea en vez de llamar a subrutinas. Los ensambladores son generalmente ms simples de escribir que los compiladores para los lenguajes de alto nivel, y han estado disponibles desde los aos 1950. Los ensambladores modernos, especialmente para las arquitecturas basadas en RISC, tales como MIPS, Sun SPARC, y HP PA-RISC, as como tambin para el x86 (-64), optimizan la planificacin de instrucciones para explotar la segmentacin del CPU eficientemente. En los compiladores para lenguajes de alto nivel, son el ltimo paso antes de generar el cdigo ejecutable. Aparatos electrodos ticos: microondas, refrigeradores, hornos, TV,

reproductores y grabadores de CD y DVD, equipos de sonido, telfonos,... Equipo de Cmputo impresoras, mdems, unidades de disco, ratones,

teclados, Automviles: mando de sistemas del automvil (ABS, inyeccin, encendido, climatizador...) Domtica sistemas antirrobo, climatizadores,. los sistemas de supervisin, vigilancia y alarma en los edificios utilizan estos chips para optimizar el rendimiento de ascensores, calefaccin, alarmas de incendio, robo, etc. 1. Perifricos y dispositivos auxiliares de los computadores. 2. Electrodomsticos. 3. Aparatos porttiles y de bolsillo (tarjetas, monederos, telfonos, etc.)

Arquitectura de computadoras

Pgina 41

4. Mquinas expendedoras y juguetera. 5. Instrumentacin. 6. Industria de automocin . 7. Control industrial y robtica. 8. Electro medicina. 9. Sistema de navegacin espacial. 10. Sistemas de seguridad y alarma. Domtica en general.

4.3.1 COMO SISTEMA INDEPENDIENTE.


Modificarse, un sistema complete, con unas prestaciones limitadas que no pueden modificarse y que no pueden llevar a cabo las tareas para las que ha sido programado de forma autnoma.

4.3.2 COMO SUBSISTEMA DE UNA COMPUTADORA. El rendimiento de los sistemas no depende nicamente del microprocesador, sino que tambin afecta a los resultados de los componentes de hardware y software como el sistema operativo, el subsistema de grficos y el subsistema de E/S, el software de aplicaciones y la memoria. Por esta razn, es que se muestra el rendimiento del procesador.

Arquitectura de computadoras

Pgina 42

CONCLUSIN

EN

ESTA

UNIDAD

HABLAMOS

ACERCA

DE

LOS

MICROCONTROLADORES, PRINCIPALES ARQUITECTURAS COMO LA ARQUITECTURA VON NEUMANN Y HARVARD,

Arquitectura de computadoras

Pgina 43

BIBLIOGRAFA

http://www.angelfire.com/electronic2/jhueso/Entradas.PDF http://es.wikipedia.org/wiki/Microcontrolador http://ocw.upm.es/tecnologiaelectronica/microprocesadores/contenidos/Archivos_Semana_1/introduccion_a_los_microco ntroladores.pdf http://www.mikroe.com/eng/chapters/view/80/capitulo-2-programacion-de-losmicrocontroladores/

Arquitectura de computadoras

Pgina 44

También podría gustarte