Microcontroladores
Contenido
- 1 Microcontroladores1
- 2 Recursos especiales 2
- 2.1 Temporizadores 2.1
- 2.2 Perro guardián 2.2
- 2.3 Protección ante fallo de alimentación 2.3
- 2.4 Estado de reposo o de bajo consumo 2.4
- 2.5 Coversor A/D (CAD)(conv. analógivo- digital) 2.5
- 2.6 Converso D/A (CDA) (conv. digital-analógico) 2.6
- 2.7 Comparador analógico 2.7
- 2.8 Modulador de anchura de pulsos 2.8
- 2.9 Puertos de E/S digitales 2.9
- 2.10 Puertos de comunicación 2.10
- 3 Herramientas para el desarrollo de aplicaciones 3
- 4 Microcontroladores Pic 4
- 5 Bibliografìa
- 6 REGRESAR PÁGINA ANTERIOR
- 7 REGRESAR PÁGINA ANTERIOR
Microcontroladores1
Un microcontrolador es un sistema completo (microprocesador + E/ES + memoria + otros periféricos), aunque delimitadas prestaciones, que está contenido en el chip en un circuito integrado programable y se destina a gobernar una sola tarea con el programa que reside en su memoria. Sus líneas de /entrada/salida soportan el conexionado de los sensores y actuadores del dispositivo a controlar.
Si sólo se fabricara un modelo de microcontrolador, éste debería tener muy potenciados todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. Esta potencia supondría en muchos casos un gasto innecesario. En la práctica, cada fabricante de microcontroladores oferta un elevado número de modelos diferentes, desde los más sencillos hasta los más potentes. Es posible seleccionar la capacidad de las memorias, el número de líneas de E/S, la cantidad y las prestaciones de los elementos auxiliares, la velocidad de funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseño es la selección del microcontrolador a utilizar.
Aplicaciones de los microcontroladores 1.1
Cada vez existen más productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamaño y costo, mejorar su fiabilidad y disminuir el consumo energético. Los microcontroladores están siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser: juguetes, hornos de microondas, refrigeradores, televisores, computadoras, impresoras, módems, computadoras de viaje para automóviles, etc. Una aplicación típica podría emplear varios microcontroladores para controlar pequeñas partes del sistema. Estos pequeños controladores podrían comunicarse entre ellos y un procesador central, probablemente más potente, compartir la información y coordinar sus acciones, como de hecho. Ocurre ya habitualmente en cualquier computador.
El mercado de los microntroladores 1.2
Aunque en el mercado la informática la mayor parte de atención la acaparan los desarrollos de los microprocesadores, lo cierto es que se vendan cientos de microcontroladores por cada procesador.
Existe una gran diversidad de microcontroladores. Quizá la clasificación más importante sea entre microcontroladores de 4, 8, 16 ó 32 bits. Aunque las prestaciones de los microcontroladores de 16 y 32 bits son superiores a los de 4 y 8 bits, la realidad es que los microcontroladores de 8 bits dominan el mercado. La razón de esta tendencia es que los microcontroladores 4 y 8 bits son apropiados para la gran mayoría de las aplicaciones, los hace absurdo emplear micros más potentes y consecuentemente más caros.
Uno de los sectores que más se utilizan en el mercado del microcontrolador es el automovilístico. De hecho, algunas de las familias de los microcontroladores actuales se desarrollan pensando en este sector, siendo modificadas posteriormente para adaptarse a sistemas más genéricos. El mercado del automóvil es uno de los más exigentes: Los componentes eléctricos deben operar bajo condiciones de extremas vibraciones, choques, ruido, etc. y seguir siendo fiables. El fallo de cualquier componente en un automóvil puede ser el origen de un accidente.
Recursos comunes a todos los microcontroladores 1.3
Al estar rodos los microcontroladores integrados en un chip, su estructura fundamental y sus características básicas son muy parecidas. Todos deben disponer de los bloques esenciales: Procesador, memoria de datos y de instrucciones, líneas de E/S, oscilador de reloj y módulos controladores de periféricos. Sin embargo, cada fabricante intenta enfatizar los recursos más idóneos para las aplicaciones a las que se destinan preferentemente.
Arquitectura básica 1.4
Aunque inicialmente todos los microncontroladores adoptaron la arquitectura clásica de Von Neumann, en el momento presente se impone la arquitectura Harvard. La arquitectura de Von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos o instrucciones de forma distinta. A dicha memoria se accede a través de un sistema de buses únicos (direcciones, datos y control). La arquitectura Harvard dispone de dos memorias independientes, una que contiene sólo instrucciones y otra sólo los datos. Ambas disponen de sus respectivos sistemas de buses de acceso, siendo posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias.
El procesador o CPU 1.5
Es el elemento más importante del microcontrolador y determina sus principales características, tanto a nivel hardware como software. Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales.
- CISC: Un gran número de procesadores usados en los microcontroladores están basados en la filosofía CISC (Computadoras de Juego de Instrucciones Complejo).
Disponen de más de 80 instrucciones máquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecución. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actúan como macros.
- RISC: Tanto la industria de los computadores comerciales como la de los microncontroladores, están destacándose hacía la filosofía RISC (Computadores de Juegos de Instrucciones Reducido).
En estos procesadores el repertorio de instrucciones de máquina es muy reducido y simple, generalmente se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador.
- SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, además de ser reducido, es "específico", o sea, las instrucciones se adaptan a las necesidades de la aplicación prevista. Esta filosofía se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Específico).
Memoria 1.6
En los microncontroladores la memoria de las instrucciones y datos está integrada en el propio chip. Una parte debe ser no volátil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicación. Otra parte de memoria será tipo RAM, volátil, y se destina a guardar las variables y los datos. Hay dos peculiaridades que diferencian a los microncontrolados de las PCs: No existen sistemas de almacenamiento masivo como disco duro o disquetes, y como el microcontrolador sólo se destina a una tarea en la memoria ROM, sólo hay que almacenar un único programa de trabajo.
- La RAM.- En estos dispositivos es de poca capacidad, pues sólo debe contener las variables y los cambios de información que se produzcan en el transcurso del programa. Por otra parte, como sólo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadoras personales está habituados a manejar Megabytes de memoria, pero los diseñadores con microcontroladores trabajan con capacidades de RAM comprendidas entre 20 bytes y 1 Kbytes.
Según el tipo de memoria ROM que dispongan los microcontroladoes, la aplicación y utilización de los mismos es diferente. Se describen cinco versiones de memoria no volátil que se pueden encontrar en los microcontroladores del mercado.
- ROM con máscara.- Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. El elevado costo del diseño de la máscara sólo hace aconsejable el empleo de microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades.
- EPROM (memoria leída programable y borrable).- Los microcontroladores que disponen de memoria EPROM pueden borrarse y grabarse muchas veces. La grabación se realiza, como en el caso de los OTP, con un grabador gobernado desde una PC. Si posterior mente 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 cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico.
- EEPROM (memoria leída programable y borrable electrónicamente).- Se trata de memorias de sólo lectura, programables y borrables eléctricamente. Tanto la programación como el borrado, se realizan eléctricamente desde el propio grabador y bajo su control programado de una PC. Es muy cómoda y rápida la operación de grabado y de borrado. No disponen de ventana de cristal en la superficie. Los microcontroladores dotados de memoria EEPROM, una vez instalados en el circuito. Para ellos se usan "grabadores de circuito" que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El número de veces que puede grabarse y borrarse una memoria EEMPROM es finito, por lo que no es recomendable una programación continúa. Son muy idóneos para la enseñanza y la Ingeniería de diseño. Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de parámetros que adecúan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta.
- FLAS.- Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM, pero consume menos y es más pequeña. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida y mejor densidad que la EEPROM. La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no volátil. Es más veloz y tolera más ciclos de escritura/borrado.
Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados "circuito", es decir, sin tener que sacar el circuito integrado de la tarjeta. Así, un dispositivo con este tipo de memoria incorporado al control motor de un automóvil permite que pueda modificares el programa durante la rutina de mantenimiento periódico, compensando a los desgaste y otros factores tales como las pueden convertir en una labor dentro de la puesta a punto.
Puertos de entra y salida 1.7
La principal utilidad de las terminales que posee la cápsula que contiene un microcontrolador es soportar las líneas de E/S que comunican al procesador con los periféricos exteriores. Según los controladores de periféricos que posean cada modelo de microcontrolador, las líneas de E/S se destinan a proporcionar el soporte a las señales de entra, salida y control.
Reloj principal 1.8
Todos los microcntroladores necesitan un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronización de todas las
operaciones del sistema. Gemelamente, el circuito del reloj está incorporado en el microcontrolador y sólo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos compontes suelen consistir en un oscilador de cristal de cuarzo junto a elementos pasivos o bien un resonador cerámico o una red R-C.
Aumentar la frecuencia del reloj supone disminuir el tiempo que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energía; además la frecuencia de reloj tiene un límite máximo permitido.
Recursos especiales 2
Cada fabricante ofrece numerosas versiones de una arquitectura básica de microcontrolador.
En algunas amplían la capacidad de las memorias, en otras incorporan nuevos recursos, en otras reduce las prestaciones al mínimo que satisfaga todos los requerimientos de su aplicación. De esta forma, reducirá el costo, el hardware y el software.
Los principales recursos específicos que incorporan los microcontroladores son:
- Temporizadores (Timers).
- Perro guardín (Watchdog).
- Protección ante fallo de alimentación ( Brownout).
- Estado de reposo o de bajo consumo (Sleep o Idle).
- Conversor A/D.
- Conversor D/A.
- Comparador analógico.
- Modelador de anchura de pulsos (PWM).
- Puertos de E/S digitales.
- Puertos de comunicación.
Temporizadores 2.1
Se emplean para controlar periodos (temporalizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). Para la medida de tiempos se carga un registro con valor adecuado, y a continuación dicho valor se va incrementado o decrementado a la frecuencia de los impulsos de reloj o algún múltiplo hasta que se desborde y llegue a cero, momento en el que se produce un aviso. Cuando desean contar acontecimientos que se suceden por cambios de nivel o
flancos en algunas de las terminales del microcontrolador, el mencionar registro se va incrementando decrementado a la frecuencia de dichos impulsos.
Perro guardián 2.2
Cuando una computadora personal se bloquea por un fallo del software u otra causa, se pulsa el botón reset y se reinicializa el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continua las 24 horas del día. El Perro guardián consiste en un temporizador que, cuando se desborda y pasa por cero, provoca un reset automáticamente en el sistema. Se debe diseñar el programa de trabajo que controla la tarea de forma que se bloquea, no se refrescará al Perro guardián y, al completar su temporización, enviará una señal "ladrará" para provocar reset.
Protección ante fallo de alimentación 2.3
Se trata de un circuito que reinicia al microcontrolador cuando el voltaje de alimentación (VDD) es inferior a un voltaje mínimo ("brownout). Mientras el voltaje de alimentación sea inferior al de brownout el dispositivo se mantiene resetado, comenzando a funcionar normalmente cuando sobrepasa el dicho valor de voltaje.
Estado de reposo o de bajo consumo 2.4
Son abundantes las situaciones reales de trabajo en el que el microcontrlador debe esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energía, (factor clave en los aparatos portátiles), los microcontroladores disponen de una función especial (Sleep en algunos modelos), que les pasa al estado de reposo o debajo consumo, en el cual los requerimientos de potencia son mínimos. En dicho estado se detiene el reloj principal y se "congelan" sus circuitos asociados, quedando el microcontrolador en un profundo "sueño". Al activarse una interrupción ocasionada por el acontecimiento esperado, el microcontrolador se "despierta" y se reanuda su trabajo.
Coversor A/D (CAD)(conv. analógivo- digital) 2.5
Los microcontroladores que incorporan un CAD pueden procesar señales analógicas, tan abundante en las aplicaciones. Suelen disponer de multiplexor que permite aplicar a la entrada de CAD varias señales analógicas desde las terminales del circuito integrado.
Converso D/A (CDA) (conv. digital-analógico) 2.6
Transforma los datos digitales obtenidos en el procesamiento de su correspondiente señal analógica, y que saca al exterior por una de las terminales de la cápsula. Existen muchos actuadores que trabajan con señales analógicas.
Comparador analógico 2.7
Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional, que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de las terminales de la cápsula. La salida de comparador proporciona un nivel lógico de 1 ó = según una señal que sea mayor o menor que la otra. También hay modelos de microcontroladores que referencia que se pueden aplicar a los computadores.
Modulador de anchura de pulsos 2.8
Son circuitos que proporcionan en su salida pulsos de anchura variable, que se muestran al exterior a través de las terminales del en capsulado.
Puertos de E/S digitales 2.9
Todos los microcontroladores destinan algunas de sus terminales a soportar líneas de E/S digitales. Por lo general, estas líneas se agrupan de ocho en ocho formando Puertos. Las líneas digitales de los Puertos pueden configurarse como Entrara o como en Salida cargando un 1 ó 0 en el bit correspondiente de un registro destinado a su configuración.
Puertos de comunicación 2.10
Con objeto de dotar al microcontrolador de la posibilidad de comunicaciones con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocoles; algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que se destacan:
- AURT, (Universal System Receiver Transmitter, Transmisor Receptor Asíncrono Universal), adaptador de comunicación serie asíncrona.
- USART (Universal Synchronous Asynchronous Receiver Transmitter, Transmisor Receptor Sincrono y Asíncrono Universal), adaptador de comunicación serie síncrona y asíncrona.
- PUERTO paralelo esclavo, para poder conectarse con los buses de otros microprocesadores.
- USB (Universal Serial Bus, Bus serial Universal), es un moderno bus serie para las PC.
- BUS I2C (Interc-IC bus, de intercambio de circuitos integrados), es una interfaz serie de dos hilos desarrollada por Phillips.
- CAN (Controller Area Network, área de Red Controlada), permite la adaptación con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automóviles. En EE.UU.
Herramientas para el desarrollo de aplicaciones 3
Unos de los factores que más importancia tiene al momento de seleccionar un microcontrolador entre todos los demás, es el soporte tanto software como hardware del que se disponga.
Un buen conjunto de herramientas de desarrollo puede ser decisivo en la elección, ya que pueden suponer una ayuda inestimable en el desarrollo del proyecto. Las principales herramientas de soporte al desarrollo de software para sistemas basados en microcontroladores son:
Ensamblador. La programación en lengua ensamblador puede resultar un tanto ardua para el principiante, pero permite desarrollar programas muy eficientes, ya que otorga al programador el dominio absoluto del sistema. Está aplicación traduce las instrucciones en lenguaje ensamblador-en forma de mnemónicos y operandos- a código máquina. Los fabricantes suelen proporcionar el programa ensamblador de forma gratuita y en cualquier caso siempre se puede encontrar una versión gratuita para los microcontroladores más populares.
Compilador. La programación en un lenguaje de alto nivel (como el C ó el Basic) permite disminuir el tiempo de desarrollo de un producto. No obstante, si no se programa con cuidado, el código resultante puede ser mucho más ineficiente que el programado en ensamblador. Las versiones más populares pueden encontrarse en versiones demo limitadas e incluso compiladores gratuitos.
Depurador. Debido a que los microcontroladores van a controlar dispositivos físicos, los desarrolladores necesitan herramientas que les permitan comprobar el buen funcionamiento del microcontrolador cuando es conectado al resto de circuitos.
Simulador. Son capaces de ejecutar en una PC los programas realizados parta el microcontrolador. Los simuladores permiten tener un control absoluto sobre ejecución de un programa, siendo ideales para la depuración de los mismos. Su gran inconveniente radica en la dificultad para simular la entrada, pero el menos permite el paso físico de la implementación de un modo más seguro y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba in-situ.
Sistema de desarrollo. Se trata de pequeños sistemas de un microcontrolador ya montado, y que se suelen conectarse a una PC desde el que se cargan los programas que se ejecutan en el microcontrolador. Las placas suelen incluir visualizaciones LCD, teclados LEDs, fácil acceso a los pines de E/S, etc. El sistema operativo de la placa recibe el nombre de programa monitor. El programa monitor de algunos sistemas de desarrollo, aparte d permitir cargar programas y datos en la memoria del microcontrolador, puede permitir en cualquier momento realizar ejecuciones paso a paso, monitoreo del estado del microcontrolador o modificar los valores de almacenados en los registros o en la memoria.
Emuladores en circuito. Se trata de un instrumento que se coloca entre la PC anfitrión y el zócalo de la tarjeta de circuito impreso donde se alojará el microcontroladore definitivo. El programa se ejecuta desde la PC, pero para la tarjeta de aplicación es como si lo hiciese el mismo microcontrolador que luego irá en el zócalo. Presenta en pantalla toda la información tal como sucederá cuando se coloque la cápsula.
Microcontroladores Pic 4
En 1965, la empresa GL creó una división de microelectrónica, GL Microelectronics Division, que comenzó su andadura fabricando memorias EMPROM y EEPROM, conformando las familias AY3-XXXX y AY5-XXXX,. A principios de los años 70 diseñó el microprocesador en 16 bits CP1600, razonablemente bueno pero que no manejaba la eficazmente las Entradas y Salidas. Para solventar este problema, en 1975 diseñó un chip destinado a controlar E/S: el PC (Peripheral Interface Controller. Se trata de un controlador rápido pero limitado y con pocas instrucciones pues iba a trabajar en combinación con el CP1600. La arquitectura del PIC, que se comercializó en 1975, era sustancialmente la misma que la de los actuales modelos de PIC16C5X. En aquel momento se fabricaba con tecnología NMOS y el producto sólo se ofrecía con memoria ROM y con pequeño pero robusto microcódigo. La década de los 80 no fue buena para GI, que tuvo que reestructurar sus negocios, concentrando sus actividades en los semiconductores de potencia. La GI Microelectrics Division se convirtió en una empresa subsidiaria, llamada GI Microelectris Inc. Finalmente, en 1985, la empresa fue vendida a un grupo de inversores de capital en riesgo, los cuales, tras analizar la situación, rebautizaron a la empresa con el nombre de Arizona Microchip Technology, y orientaron sus negocios a los PIC, las memorias EPROM paralelo y las EEPROM serie. Se comenzó rediseñando los PIC que pasaron a fabricarse con tecnología CMOS, surgieron la familia gama baja PIC16CSX, considerada como "clásica" Una de las razones del éxito de los PIC se basa en su utilización, Cuando se aprende a manejar uno de ellos, conociendo su arquitectura y su repertorio de instrucciones, es muy fácil emplear otro modelo. Microchip cuenta con su factoría en Chandler, Arizona, en donde se fabrican y prueban los chips con los más avanzados recursos técnicos. En 1993 construyó otra factoría de similares características en Tempe, Arizona. También cuenta con centros de ensamblaje y pruebas en Taiwán y Tailandia. para tener una idea de su alta producción, hay que tener en cuenta que ha superado el millón de unidades por semana en productos CMOS de la familia PIC16CSX.
Características 4.1
La arquitectura del procesador sigue el modelo Harvard. En esta arquitectura el CPU se conecta de forma independiente con buses distintos a la memoria de instrucciones y a la de datos.
La arquitectura Harvard permite al CPU acceder simultáneamente a las dos memorias. Además, propicia numerosas ventajas al funcionamiento del sistema como se irán describiendo. Se amplia la técnica de segmentación ("pipe-line") en la ejecución de las instrucciones. La segmentación permite al procesador realizar al mismo tiempo la ejecución de una instrucción y la búsqueda del código de la siguiente. De es forma se puede ejecutar cada instrucción en un ciclo (un ciclo de instrucción equivale a cuatro pulsos de reloj).
- El formato de todas las instrucciones tiene la misma longitud. Todas las instrucciones de los microcontroladores de la gama baja tienen una longitud de 12bits. Las de la gama media tiene 14 bits y 16 bits ls de la gama alta.
- Los modelos de la gama baja disponen de un repertorio de 33 instrucciones, 35 los de la gama media y casi 60 los de la alta.
- Todas las instrucciones son ortogonales. Cualquier instrucción puede manejar cualquier elemento de la arquitectura como fuente o como destino.
- Arquitectura basada en un banco de registros. Esto significa que todos los objetos del sistema (puertos E/S, temporizadores, pariciones de memoria, etc.) están implementados físicamente como registros. Existe una gran diversidad de modelos de microcontroladores con prestaciones y recursos diferentes.
- Herramientas de soporte. La empresa Microchip y otras que utilizan los PIC, ponen a disposición de los usuarios numerosas herramientas para desarrollar hardware y software. Son muy abundantes lo programadores. simuladores por software, emuladores en tiempo real, ensambladores, compiladores C, intérpretes y compiladores BACI, etc.
Las gamas de PIC. 4.2
Para resolver aplicaciones sencillas se precisan pocos recursos; en cambio, las aplicaciones grandes requieren numerosos y potentes. Siguiendo esta filosofía, Microchip construye diversos modelos de microcontroladores orientados a cubrir necesidades de cada proyecto. Así hay disponibles microcontroladores sencillos y aratos para atender las aplicaciones simples, y otros complejos y más costosos para las de mucha envergadura. Con las gamas PIC se dispone de gran diversidad de modelos encapsulados, pudiendo seleccionar el que mejor se acople a las necesidades de acuerdo con el tipo y capacidad de memorias, el número de líneas de E/S y las funciones auxiliares precisas. Sin embargo, todas las versiones están construidas alrededor de una arquitectura común, un repertorio mínimo de instrucciones y un conjunto de opciones muy apreciadas, como el bajo consumo y el amplio margen voltaje de alimentación.
Arquitectura 4.3
La repercusión más importante de la arquitectura de Harvard en los microcontroladores PC se manifiesta en la organización de la memoria del sistema. La memoria de programa es independiente a la memoria de datos. teniendo tamaños y longitudes de palabra diferentes. Ese tamaño permite codificar en una palabra el código de operación de instrucción junto al operando o su dirección. El tamaño de los buses que direcciona la memoria datos y la de programa son diferentes. Los mismo pasa con el nus que transfiere las instrucciones y el que lo hace con los datos. La total independencia entre las dos memorias permite realizar accesos simultáneos. Puesto que os datos y operandos que manejan las instrucciones son de 8 bits, la longitud de palabra de memoria de datos tiene ese tamaño. La capacidad SRAM varía según el modelo. La memoria de programa siempre está diccionada desde el Contador de Programa (PC), mientras que la memoria de datos puede direccionarse directamente desde parte del código de operación de la instrucción o indirectamente. La memoria de datos se organiza en "bancos", pudiendo existir varios en los modelos de mayor capacidad. La memoria de datos función de forma similar al "banco de registros" de un procesador, por lo cual sus posiciones implementan registros de propósito específico y propósito general. Las primeras posiciones de los bancos contienen registros específicos. Es necesario seleccionar con cual banco vamos a trabajar mediante los bits 6 y 5 del registro FSR. La pila consta de registros que funcionan en forma de memoria LIFO (último en entrar, primero en salir). El contenido de PC se carga en el primer nivel de la Pila con la instrucción CALL y sucede lo contrario con la instrucción RETLW. La profundidad de la pila varía en cada modelo; el PIC16F876 tiene ocho registros de 13 bit.
Bibliografìa
Solorio, M. (2007)Manual Para programar PIC'S enfocado al laboratorio de microprocesadores que se imparten en la FES Aragòn. Mèxico. FES Aragòn.
Imagen.