Monografias.com > Computación > General
Descargar Imprimir Comentar Ver trabajos relacionados

Microcontroladores genéricos



    1. Introducción a los
      microcontroladores.
    2. Breve introducción a la
      programación de los µcontroladores
      PIC
    3. La familia de los
      PIC.
    4. Microcontrolador PIC
      16c711

    1. INTRODUCCION A LOS MICROCONTROLADORES.

    Los microcontroladores están conquistando el
    mundo. Están presentes en nuestro trabajo, en
    nuestra casa y en nuestra vida, en general. Se pueden encontrar
    controlando el funcionamiento de los ratones y teclados de los
    computadores, en los teléfonos, en los hornos microondas y
    los televisores de nuestro hogar. Pero la invasión acaba
    de comenzar y el nacimiento del siglo XXI es testigo de la
    conquista masiva de estos diminutos computadores, que
    gobernarán la mayor parte de los aparatos que fabricaremos
    y usamos los humanos.

    1.1 Controlador y
    microcontrolador.

    Recibe el nombre de controlador el dispositivo que se
    emplea para el gobierno de uno o
    varios procesos. Por
    ejemplo, el controlador que regula el funcionamiento de un horno
    dispone de un sensor que mide constantemente su temperatura
    interna y, cuando traspasa los límites
    prefijados, genera las señales
    adecuadas que accionan los efectores que intentan llevar el
    valor de la
    temperatura dentro del rango estipulado.

    Aunque el concepto de
    controlador ha permanecido invariable a través del
    tiempo, su
    implementación física ha variado
    frecuentemente. Hace tres décadas, los controladores se
    construían exclusivamente con componentes de lógica
    discreta, posteriormente se emplearon los microprocesadores, que se rodeaban con chips de
    memoria y E/S
    sobre una tarjeta de circuito impreso. En la actualidad, todos
    los elementos del controlador se han podido incluir en un chip,
    el cual recibe el nombre de microcontrolador. Realmente consiste
    en un sencillo pero completo computador
    contenido en el corazón
    (chip) de un circuito integrado.

    Un microcontrolador es un circuito integrado de alta
    escala de
    integración que incorpora la mayor parte de
    los elementos que configuran un controlador.

    Un microcontrolador dispone normalmente de los
    siguientes componentes:

    • Procesador o UCP (Unidad Central de Proceso).
    • Memoria RAM para
      Contener los datos.
    • Memoria para el programa tipo
      ROM/PROM/EPROM.
    • Líneas de E/S para comunicarse con el
      exterior.
    • Diversos módulos para el control de
      periféricos (temporizadores, Puertas
      Serie y Paralelo, CAD: Conversores Analógico/Digital,
      CDA: Conversores Digital/Analógico, etc.).
    • Generador de impulsos de reloj que sincronizan el
      funcionamiento de todo el sistema.

    Los productos que
    para su regulación incorporan un microcontrolador disponen
    de las siguientes ventajas:

    • Aumento de prestaciones: un mayor control sobre un
      determinado elemento representa una mejora considerable en el
      mismo.
    • Aumento de la fiabilidad: al reemplazar un elevado
      número de elementos por el microcontrolador disminuye el
      riesgo de
      averías y se precisan menos ajustes.
    • Reducción del tamaño en el producto
      acabado: La integración del microcontrolador en un chip
      disminuye el volumen, la
      mano de obra y los stocks.
    • Mayor flexibilidad: las características de
      control están programadas por lo que su
      modificación sólo necesita cambios en el programa
      de instrucciones.

    El microcontrolador es en definitiva un circuito
    integrado que incluye todos los componentes de un computador.
    Debido a su reducido tamaño es posible montar el
    controlador en el propio dispositivo al que gobierna. En este
    caso el controlador recibe el nombre de controlador empotrado
    (embedded controller).

    1.2 Diferencia entre
    microprocesador y
    microcontrolador.

    El microprocesador es un circuito integrado que contiene
    la Unidad Central de Proceso (UCP), también llamada
    procesador, de un
    computador. La UCP está formada por la Unidad de Control,
    que interpreta las instrucciones, y el Camino de Datos, que las
    ejecuta.

    Las patitas de un microprocesador sacan al exterior las
    líneas de sus buses de direcciones, datos y control, para
    permitir conectarle con la Memoria y
    los Módulos de E/S y configurar un computador implementado
    por varios circuitos
    integrados. Se dice que un microprocesador es un sistema
    abierto porque su configuración es variable de acuerdo con
    la aplicación a la que se destine. (Figura
    1.1.)

    Figura 1.1. 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
    aplicación.

    Si sólo se dispusiese de un modelo de
    microcontrolador, éste debería tener muy
    potenciados todos sus recursos para
    poderse adaptar a las exigencias de las diferentes aplicaciones.
    Esta potenciación supondría en muchos casos un
    despilfarro. 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
    poderosos. Es posible seleccionar la capacidad de las memorias, el
    número de líneas de E/S, la cantidad y potencia 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.

    Figura 1.2. El microcontrolador es un sistema
    cerrado. Todas las partes del computador están contenidas
    en su interior y sólo salen al exterior las líneas
    que gobiernan los periféricos.

    1.3 Aplicaciones de los
    microcontroladores.

    Cada vez existen más productos que incorporan un
    microcontrolador con el fin de aumentar sustancialmente sus
    prestaciones, reducir su tamaño y coste, mejorar su
    fiabilidad y disminuir el consumo.

    Algunos fabricantes de microcontroladores superan el
    millón de unidades de un modelo determinado producidas en
    una semana. Este dato puede dar una idea de la masiva
    utilización de estos componentes.

    Los microcontroladores están siendo empleados en
    multitud de sistemas
    presentes en nuestra vida diaria, como pueden ser juguetes,
    horno microondas, frigoríficos, televisores, computadoras,
    impresoras,
    módems, sistemas de arranque de automóviles, etc. y
    otras aplicaciones con las que seguramente no estaremos tan
    familiarizados como instrumentación electrónica, control de sistemas en una
    nave espacial, 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 con un
    procesador central, probablemente más potente, para
    compartir la información y coordinar sus acciones,
    como, de hecho, ocurre ya habitualmente en cualquier
    PC.

    1.4 El mercado de los
    microcontroladores.

    Aunque en el mercado de la microinformática la
    mayor atención la acaparan los desarrollos de los
    microprocesadores, lo cierto es que se venden cientos de
    microcontroladores por cada uno de aquéllos.

    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 y los de 4 bits
    se resisten a desaparecer. La razón de esta tendencia es
    que los microcontroladores de 4 y 8 bits son apropiados para la
    gran mayoría de las aplicaciones, lo que hace absurdo
    emplear micros más potentes y consecuentemente más
    caros. Uno de los sectores que más tira del mercado del
    microcontrolador es el mercado automovilístico. De hecho,
    algunas de las familias de microcontroladores actuales se
    desarrollaron pensando en este sector, siendo modificadas
    posteriormente para adaptarse a sistemas más
    genéricos. El mercado del automóvil es
    además uno de los más exigentes: los componentes
    electrónicos deben operar bajo condiciones extremas de
    vibraciones, choques, ruido, etc. y
    seguir siendo fiables. El fallo de cualquier componente en un
    automóvil puede ser el origen de un accidente.

    En cuanto a las técnicas
    de fabricación, cabe decir que prácticamente la
    totalidad de los microcontroladores actuales se fabrican con
    tecnología
    CMOS 4 (Complementary Metal Oxide Semiconductor). Esta
    tecnología supera a las técnicas anteriores por su
    bajo consumo y alta inmunidad al ruido.

    La distribución de las ventas
    según su aplicación es la siguiente:

    • Una tercera parte se absorbe en las aplicaciones
      relacionadas con los computadores y sus
      periféricos.
    • La cuarta parte se utiliza en las aplicaciones de
      consumo (electrodomésticos, juegos, TV,
      vídeo, etc.)
    • El 16% de las ventas mundiales se destinó al
      área de las comunicaciones.
    • Otro 16% fue empleado en aplicaciones
      industriales.
    • El resto de los microcontroladores vendidos en el
      mundo, aproximadamente un 10% fueron adquiridos por las
      industrias
      de automoción.

    También los modernos microcontroladores de 32
    bits van afianzando sus posiciones en el mercado, siendo las
    áreas de más interés el
    procesamiento de imágenes,
    las comunicaciones, las aplicaciones militares, los procesos
    industriales y el control de los dispositivos de
    almacenamiento masivo de datos.

    1.5 Variantes en los
    microcontroladores

    A la hora de escoger el microcontrolador a emplear en un
    diseño concreto hay
    que tener en cuenta multitud de factores, como la documentación y herramientas
    de desarrollo
    disponibles y su precio, la
    cantidad de fabricantes que lo producen y por supuesto las
    características del microcontrolador (tipo de memoria de
    programa, número de temporizadores, interrupciones,
    etc.):

    Costos. Como es lógico, los fabricantes de
    microcontroladores compiten duramente para vender sus productos.
    Y no les va demasiado mal ya que sin hacer demasiado ruido venden
    10 veces más microcontroladores que
    microprocesadores.

    Para que nos hagamos una idea, para el fabricante que
    usa el microcontrolador en su producto una diferencia de precio
    en el microcontrolador de algunos pesos es importante (el
    consumidor
    deberá pagar además el costo del
    empaquetado, el de los otros componentes, el diseño del
    hardware y el
    desarrollo del software). Si el fabricante
    desea reducir costos debe tener
    en cuenta las herramientas de apoyo con que va a contar:
    emuladores, simuladores, ensambladores, compiladores,
    etc. Es habitual que muchos de ellos siempre se decanten por
    microcontroladores pertenecientes a una única familia.

    Aplicación. Antes de seleccionar un
    microcontrolador es imprescindible analizar los requisitos de la
    aplicación:

    • Procesamiento de datos: puede ser necesario que el
      microcontrolador realice cálculos críticos en un
      tiempo limitado. En ese caso debemos asegurarnos de seleccionar
      un dispositivo suficientemente rápido para ello. Por
      otro lado, habrá que tener en cuenta la precisión
      de los datos a manejar: si no es suficiente con un
      microcontrolador de 8 bits, puede ser necesario acudir a
      microcontroladores de 16 ó 32 bits, o incluso a hardware
      de coma flotante. Una alternativa más barata y
      quizá suficiente es usar librerías para manejar
      los datos de alta precisión. –
    • Entrada Salida: para determinar las necesidades de
      Entrada/Salida del sistema es conveniente dibujar un diagrama de
      bloques del mismo, de tal forma que sea sencillo identificar la
      cantidad y tipo de señales a controlar. Una vez
      realizado este análisis puede ser necesario
      añadir periféricos hardware externos o cambiar a
      otro microcontrolador más adecuado a ese
      sistema.
    • Consumo: algunos productos que incorporan
      microcontroladores están alimentados con baterías
      y su funcionamiento puede ser tan vital como activar una alarma
      antirrobo. Lo más conveniente en un caso como
      éste puede ser que el microcontrolador esté en
      estado de
      bajo consumo pero que despierte ante la activación de
      una señal (una interrupción) y ejecute el
      programa adecuado para procesarla.
    • Memoria: para detectar las necesidades de memoria de
      nuestra aplicación debemos separarla en memoria
      volátil (RAM), memoria no volátil (ROM, EPROM,
      etc.) y memoria no volátil modificable (EEPROM). Este
      último tipo de memoria puede ser útil para
      incluir información específica de la
      aplicación como un número de serie o
      parámetros de calibración.

    El tipo de memoria a emplear vendrá determinado
    por el volumen de ventas previsto del producto: de menor a mayor
    volumen será conveniente emplear EPROM, OTP y ROM. En
    cuanto a la cantidad de memoria necesaria puede ser
    imprescindible realizar una versión preliminar, aunque sea
    en pseudo-código,
    de la aplicación y a partir de ella hacer una
    estimación de cuánta memoria volátil y no
    volátil es necesaria y si es conveniente disponer de
    memoria no volátil modificable

    • Ancho de palabra: el criterio de diseño debe
      ser seleccionar el microcontrolador de menor ancho de palabra
      que satisfaga los requerimientos de la aplicación. Usar
      un microcontrolador de 4 bits supondrá una
      reducción en los costes importante, mientras que uno de
      8 bits puede ser el más adecuado si el ancho de los
      datos es de un byte. Los microcontroladores de 16 y 32 bits,
      debido a su elevado coste, deben reservarse para aplicaciones
      que requieran sus altas prestaciones (Entrada/Salida potente o
      espacio de direccionamiento muy elevado).
    • Diseño de la placa: la selección de un
      microcontrolador concreto condicionará el diseño
      de la placa de circuitos.
      Debe tenerse en cuenta que quizá usar un
      microcontrolador barato encarezca el resto de componentes del
      diseño.

    Los microcontroladores más populares se
    encuentran, sin duda, entre las mejores elecciones:

    8048 (Intel). Es el padre de los microcontroladores
    actuales, el primero de todos. Su precio, disponibilidad y
    herramientas de desarrollo hacen que todavía sea muy
    popular.

    8051 (Intel y otros). Es sin duda el microcontrolador
    más popular. Fácil de programar, pero potente.
    Está bien documentado y posee cientos de variantes e
    incontables herramientas de desarrollo.

    80186, 80188 y 80386 EX (Intel). Versiones en
    microcontrolador de los populares microprocesadores 8086 y 8088.
    Su principal ventaja es que permiten aprovechar las herramientas
    de desarrollo para PC.

    68HC11 (Motorola y Toshiba). Es un microcontrolador de 8
    bits potente y popular con gran cantidad de variantes.

    683xx (Motorola). Surgido a partir de la popular familia
    68k, a la que se incorporan algunos periféricos. Son
    microcontroladores de altísimas prestaciones.

    PIC (MicroChip). Familia de microcontroladores que gana
    popularidad día a día.

    Fueron los primeros microcontroladores RISC.

    Es preciso resaltar en este punto que existen
    innumerables familias de microcontroladores, cada una de las
    cuales posee un gran número de variantes.

    1.6 Recursos comunes a todos
    los microcontroladores.

    Al estar todos 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.

    En este apartado se hace un recorrido de todos los
    recursos que se hallan en todos los microcontroladores, y por
    ende en el PIC 16C711, describiendo las diversas alternativas y
    opciones que pueden encontrarse según el modelo
    seleccionado.

    1.6.1 Arquitectura
    básica

    Aunque inicialmente todos los microcontroladores
    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 e instrucciones
    de forma indistinta. A dicha memoria se accede a través
    de un sistema de buses único (direcciones, datos y
    control).

    La arquitectura Harvard dispone de dos memorias
    independientes una, que contiene sólo instrucciones y
    otra, sólo datos. Ambas disponen de sus respectivos
    sistemas de buses de acceso y es posible realizar operaciones de
    acceso (lectura o
    escritura)
    simultáneamente en ambas memorias. Figura
    1.3.

    Figura 1.3. La arquitectura Harvard dispone de dos
    memorias independientes para datos y para instrucciones,
    permitiendo accesos simultáneos.

    Los microcontroladores PIC responden a
    la arquitectura Harvard.

    1.6.2 El procesador o UCP

    Es el elemento más importante del
    microcontrolador y determina sus principales
    características, tanto a nivel hardware como
    software.

    Se encarga de direccionar la memoria de instrucciones,
    recibir el código OP de la instrucción en curso,
    su decodificación y la ejecución de la
    operación que implica la instrucción, así
    como la búsqueda de los operandos y el almacenamiento del resultado.

    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 (Computadores 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 microcontroladores
    están decantándose hacia la filosofía RISC
    (Computadores de Juego de Instrucciones Reducido). En estos
    procesadores el repertorio de instrucciones máquina es
    muy reducido y las instrucciones son simples y, 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).

    1.6.3 Memoria

    En los microcontroladores la memoria de 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
    microcontroladores de los computadores personales:

    1. No existen sistemas de almacenamiento masivo como
    disco duro
    o disquetes.

    1. 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 computadores personales están
    habituados a manejar Megabytes de memoria, pero, los
    diseñadores con microcontroladores trabajan con
    capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y
    de RAM comprendidas entre 20 y 512 bytes.

    Según el tipo de memoria ROM que dispongan los
    microcontroladores, la aplicación y utilización
    de los mismos es diferente. Se describen las cinco versiones de
    memoria no volátil que se pueden encontrar en los
    microcontroladores del mercado.

    1º. 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
    los microcontroladores con este tipo de memoria cuando se
    precisan cantidades superiores a varios miles de
    unidades.

    2ª. OTP

    El microcontrolador contiene una memoria no
    volátil de sólo lectura "programable una sola
    vez" por el usuario. OTP (One Time Programmable). Es el usuario
    quien puede escribir el programa en el chip mediante un
    sencillo grabador controlado por un programa desde un
    PC.

    La versión OTP es recomendable cuando es muy
    corto el ciclo de diseño del producto, o bien, en la
    construcción de prototipos y series muy
    pequeñas. Tanto en este tipo de memoria como en la
    EPROM, se suele usar la encriptación mediante fusibles
    para proteger el código contenido.

    3ª EPROM

    Los microcontroladores que disponen de memoria EPROM
    (Erasable Programmable Read OnIy Memory) pueden borrarse y
    grabarse muchas veces. La grabación 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
    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.

    4ª EEPROM

    Se trata de memorias de sólo lectura,
    programables y borrables eléctricamente EEPROM
    (Electrical Erasable Programmable Read OnIy Memory). Tanto la
    programación como el borrado, se realizan
    eléctricamente desde el propio grabador y bajo el
    control programado de un PC. Es muy cómoda y
    rápida la operación 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 número de veces que puede grabarse y
    borrarse una memoria EEPROM es finito, por lo que no es
    recomendable una reprogramación continua. 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 adecuan
    el dispositivo a las condiciones del entorno.

    Este tipo de memoria es relativamente
    lenta.

    5ª FLASH

    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 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 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 "en circuito", es decir, sin tener que sacar
    el circuito integrado de la tarjeta. Así, un dispositivo
    con este tipo de memoria incorporado al control del motor de un
    automóvil permite que pueda modificarse el programa
    durante la rutina de mantenimiento periódico, compensando los desgastes y
    otros factores tales como la compresión, la
    instalación de nuevas piezas, etc. La
    reprogramación del microcontrolador puede convertirse en
    una labor rutinaria dentro de la puesta a punto.

    1.6.4 Puertas de Entrada y Salida

    La principal utilidad de las
    patitas que posee la cápsula que contiene un
    microcontrolador es soportar las líneas de E/S que
    comunican al computador interno con los periféricos
    exteriores.

    Según los controladores de periféricos
    que posea cada modelo de microcontrolador, las líneas de
    E/S se destinan a proporcionar el soporte a las señales
    de entrada, salida y control.

    1.6.5 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
    sincronización de todas las operaciones del
    sistema.

    Generalmente, el circuito de reloj está
    incorporado en el microcontrolador y sólo 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 cerámico 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
    energía.

    1.7 RECURSOS
    ESPECIALES

    Cada fabricante oferta numerosas versiones de una
    arquitectura básica de microcontrolador. En algunas
    amplía las capacidades de las memorias, en otras incorpora
    nuevos recursos, en otras reduce las prestaciones al
    mínimo para aplicaciones muy simples, etc. La labor del
    diseñador es encontrar el modelo mínimo que
    satisfaga todos los requerimientos de su aplicación. De
    esta forma, minimizará el costo, el hardware y el
    software.

    Los principales recursos específicos que
    incorporan los microcontroladores son:

    • Temporizadores o "Timers".
    • Perro guardián o "Watchdog".
    • Protección ante fallo de alimentación o
      "Brownout".
    • Estado de reposo o de bajo consumo.
    • Conversor A/D.
    • Conversor D/A.
    • Comparador analógico.
    • Modulador de anchura de impulsos o PWM.
    • Puertas de E/S digitales.
    • Puertas de comunicación.

    1.7.1 Temporizadores o "Timers"

    Se emplean para controlar periodos de tiempo
    (temporizadores) y para llevar la cuenta de acontecimientos que
    suceden en el exterior (contadores).

    Para la medida de tiempos se carga un registro con el
    valor adecuado y a continuación dicho valor se va
    incrementando o decrementando al ritmo de los impulsos de reloj
    o algún múltiplo hasta que se desborde y llegue a
    0, momento en el que se produce un aviso.

    Cuando se desean contar acontecimientos que se
    materializan por cambios de nivel o flancos en alguna de las
    patitas del microcontrolador, el mencionado registro se va
    incrementando o decrementando al ritmo de dichos
    impulsos.

    1.7.2 Perro guardián o "Watchdog"

    Cuando el computador personal se
    bloquea por un fallo del software u otra causa, se pulsa el
    botón del reset y se reinicializa el sistema. Pero un
    microcontrolador funciona sin el control de un supervisor y de
    forma continuada las 24 horas del día. El Perro
    guardián consiste en un temporizador que, cuando se
    desborda y pasa por 0, provoca un reset automáticamente
    en el sistema.

    Se debe diseñar el programa de trabajo que
    controla la tarea de forma que refresque o inicialice al Perro
    guardián antes de que provoque el reset. Si falla el
    programa o se bloquea, no se refrescará al Perro
    guardián y, al completar su temporización,
    "ladrará y ladrará" hasta provocar el
    reset.

    1.7.3 Protección ante fallo de
    alimentación o "Brownout"

    Se trata de un circuito que resetea 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 reseteado, comenzando a funcionar
    normalmente cuando sobrepasa dicho valor.

    1.7.4 Estado de reposo ó de bajo
    consumo

    Son abundantes las situaciones reales de trabajo en
    que el microcontrolador 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 instrucción especial
    (SLEEP en los PIC), que les pasa al estado de reposo o de bajo
    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 sumido en un
    profundo "sueño" el microcontrolador. Al activarse una
    interrupción ocasionada por el acontecimiento esperado,
    el microcontrolador se despierta y reanuda su
    trabajo.

    1.7.5 Conversor A/D (CAD)

    Los microcontroladores que incorporan un Conversor A/D
    (Analógico/Digital) pueden procesar señales
    analógicas, tan abundantes en las aplicaciones. Suelen
    disponer de un multiplexor que permite aplicar a la entrada del
    CAD diversas señales analógicas desde las patitas
    del circuito integrado.

    1.7.6 Conversor D/A (CDA)

    Transforma los datos digitales obtenidos del
    procesamiento del computador en su correspondiente señal
    analógica que saca al exterior por una de las patitas de
    la cápsula.

    Existen muchos efectores que trabajan con
    señales analógicas.

    1.7.7 Comparador analógico

    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 patitas de la
    cápsula. La salida del comparador proporciona un nivel
    lógico 1 ó 0 según una señal sea
    mayor o menor que la otra.

    También hay modelos de microcontroladores con
    un módulo de tensión de referencia que
    proporciona diversas tensiones de referencia que se pueden
    aplicar en los comparadores.

    1.7.8 Modulador de anchura de impulsos o
    PWM

    Son circuitos que proporcionan en su salida impulsos
    de anchura variable, que se ofrecen al exterior a través
    de las patitas del encapsulado.

    1.7.9 Puertas de E/S digitales

    Todos los microcontroladores destinan algunas de sus
    patitas a soportar líneas de E/S digitales. Por lo
    general, estas líneas se agrupan de ocho en ocho
    formando Puertas.

    Las líneas digitales de las Puertas pueden
    configurarse como Entrada o como Salida cargando un 1 ó
    un 0 en el bit correspondiente de un registro destinado a su
    configuración.

    1.7.10 Puertas de comunicación

    Con objeto de dotar al microcontrolador de la
    posibilidad de comunicarse con otros dispositivos externos,
    otros buses de microprocesadores, buses de sistemas, buses de
    redes y
    poder
    adaptarlos con otros elementos bajo otras normas y
    protocolos.

    Algunos modelos disponen de recursos que permiten
    directamente esta tarea, entre los que destacan:

    • UART, adaptador de comunicación serie
      asíncrona.
    • USART, adaptador de comunicación serie
      síncrona y asíncrona
    • Puerta paralela esclava para poder conectarse con los
      buses de otros microprocesadores.
    • USB (Universal Serial Bus), que es un
      moderno bus serie para los PC.
    • Bus I2C, que es un interfaz serie de dos hilos
      desarrollado por Philips.
    • CAN (Controller Area Network), para permitir 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. se usa el
      J185O.

    1.8 Herramientas para el
    desarrollo de aplicaciones.

    Uno de los factores que más importancia tiene a
    la hora de seleccionar un microcontrolador entre todos los
    demás es el soporte tanto software como hardware de que
    dispone. 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 ayuda al desarrollo de
    sistemas basados en microcontroladores son:

    • Desarrollo del software:

    Ensamblador. La programación en lenguaje
    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. 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) 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
    potentes suelen ser muy caras, aunque para los

    microcontroladores más populares pueden
    encontrarse versiones demo limitadas e incluso compiladores
    gratuitos.

    • Depuración: 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 un PC programas
    realizados para el microcontrolador. Los simuladores permiten
    tener un control absoluto sobre la ejecución de un
    programa, siendo ideales para la depuración de los mismos.
    Su gran inconveniente es que es difícil simular la entrada
    y salida de datos del microcontrolador.

    Tampoco cuentan con los posibles ruidos en las entradas,
    pero, al menos, permiten 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.

    Placas de evaluación. Se trata de pequeños
    sistemas con un microcontrolador ya montado y que suelen
    conectarse a un PC desde el que se cargan los programas que se
    ejecutan en el microcontrolador. Las placas suelen incluir
    visualizadores 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 algunas placas de evaluación, aparte
    de permitir cargar programas y datos en la memoria del
    microcontrolador, puede permitir en cualquier momento realizar
    ejecución paso a paso, monitorizar el estado del
    microcontrolador o modificar los valores
    almacenados los registros o en la
    memoria.

    Emuladores en circuito. Se trata de un instrumento que
    se coloca entre el PC anfitrión y el zócalo de la
    tarjeta de circuito impreso donde se alojará el
    microcontrolador definitivo. El programa es ejecutado desde el
    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 y como luego sucederá cuando se coloque la
    cápsula.

    2. BREVE INTRODUCCIÓN A LA PROGRAMACIÓN DE
    LOS µCONTROLADORES PIC

    2.1
    Reseña

    Trataremos de brindar una breve descripción del método
    para programar estos microcontroladores sin entrar en
    técnicas avanzadas, nos centraremos directamente en la
    programación de los µcontroladores que nos ocupan,
    los PIC, es decir, no explicaremos en sí las estrategias
    asociadas al diseño, ya que en este caso no nos
    conciernen.

    No obstante acompañamos nuestro trabajo con un
    organigrama con
    las distintas fases de implementación, en las que, de
    hecho, suponemos, tras una fase de estudio del problema, elegido
    ya el mejor µcontrolador, así como decidido el
    sistema de conexión de patillas de E/S
    correcto.

    Las herramientas MPLAB, MPASM y MPSIM se utilizan para
    los microcontroladores PIC y se pueden encontrar y bajar
    gratuitamente de internet en la dirección www.microchip.com.

    3. LA FAMILIA DE
    LOS PIC.

    Dado que las características de los
    microcontroladores PIC en su mayoría se agrupan por
    familias es muy importante para describir el modelo PIC 16C711
    dar una idea de las características de su familia o gama.
    El PIC 16C711 pertenece a la gama media.

    Por otro lado hemos notado que Microchip ha hecho un
    upgrade de casi todos sus microcontroladores incluyendo el 16C711
    el cual ya tiene un sustituto (esto se informa en su sitio
    web), dado que
    la mayoría de la bibliografía que hemos
    consultado no contemplan estos cambios, nosotros hemos decidido
    realizar este análisis de la misma forma.

    Hemos buscado en multitud de bibliografía y
    realmente nadie da una respuesta concreta de porque la
    popularidad del PIC, pero una aproximación a la realidad
    puede ser esta:

    Los PIC tienen varias cualidades interesantes, puede ser
    la velocidad, el precio, la facilidad de uso, la
    información, las herramientas de apoyo… .

    Quizás un poco de todo eso es lo que produce esa
    imagen de
    sencillez y utilidad. Es probable que en un futuro próximo
    otra familia de microcontroladores le arrebate ese
    "algo".

    Queremos constatar que para las aplicaciones más
    habituales (casi un 90%) la elección de una versión
    adecuada de PIC es la mejor solución; sin embargo, dado su
    carácter general, otras familias de
    microcontroladores son más eficaces en aplicaciones
    específicas, especialmente si en ellas predomina una
    característica concreta, que puede estar muy desarrollada
    en otra familia.

    Los detalles más importantes que vuelven "locos"
    a los profesionales de la microelectrónica y
    microinformática y las razones de la excelente acogida que
    tienen los PIC son los siguientes:

    • Sencillez de manejo: Tienen un juego de instrucciones
      reducido; 35 en la gama media.
    • Buena información, fácil de conseguir y
      económica.
    • Precio: Su costo es comparativamente inferior al de
      sus competidores.
    • Poseen una elevada velocidad de funcionamiento. Buen
      promedio de parámetros: velocidad, consumo,
      tamaño, alimentación, código compacto,
      etc.
    • Herramientas de desarrollo fáciles y baratas.
      Muchas herramientas software se pueden recoger libremente a
      través de Internet desde Microchip ( http://www.microchip.com
      )
    • Existe una gran variedad de herramientas hardware que
      permiten grabar, depurar, borrar y comprobar el comportamiento de los PIC.
    • Diseño rápido.
    • La gran variedad de modelos de PIC permite elegir el
      que mejor responde a los requerimientos de la
      aplicación.

    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.

    3.1 Características
    relevantes.

    Descripción de las características
    más representativas de los PIC:

    3.1.1 Arquitectura.

    La arquitectura del procesador sigue el modelo
    Harvard. En esta arquitectura, la CPU se
    conecta de forma independiente y con buses distintos con la
    memoria de instrucciones y con la de datos.

    La arquitectura Harvard permite a la CPU acceder
    simultáneamente a las dos memorias. Además,
    propicia numerosas ventajas al funcionamiento del sistema
    como se irán describiendo.

    3.1.2 Segmentación.

    Se aplica 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 esta forma se puede ejecutar cada
    instrucción en un ciclo (un ciclo de
    instrucción equivale a cuatro ciclos de
    reloj).

    Las instrucciones de salto ocupan dos ciclos al no
    conocer la dirección de la siguiente
    instrucción hasta que no se haya completado la de
    bifurcación.

    3.1.3 Formato de las
    instrucciones.

    El formato de todas las instrucciones es de la misma
    longitud Todas las instrucciones de los microcontroladores de
    la gama baja tienen una longitud de 12 bits. Las de la gama
    media tienen 14 bits y más las de la gama alta. Esta
    característica es muy ventajosa en la
    optimización de la memoria de instrucciones y facilita
    enormemente la construcción de ensambladores y
    compiladores.

    3.1.4 Juego de instrucciones.

    Procesador RISC (Computador de Juego de
    Instrucciones Reducido). 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.

    3.1.5 Instrucciones Ortogonales.

    Cualquier instrucción puede manejar cualquier
    elemento de la arquitectura como fuente o como
    destino.

    3.1.6 Arquitectura basada en un "banco de
    registros"

    Esto significa que todos los objetos del sistema
    (puertas de E/S, temporizadores, posiciones de memoria, etc.)
    están implementados físicamente como
    registros.

    3.1.7 Diversidad de modelos de microcontroladores
    con prestaciones y recursos diferentes

    La gran variedad de modelos de microcontroladores
    PIC permite que el usuario pueda seleccionar el más
    conveniente para su proyecto.

    1. Herramientas de soporte potentes y
      económicas.

    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 los
    programadores, los simuladores software, los emuladores en
    tiempo real, Ensambladores, Compiladores C,
    Intérpretes y Compiladores BASIC, etc.

    La arquitectura Harvard y la técnica de
    segmentación son los principales recursos en los que
    se apoya el elevado rendimiento que caracteriza estos
    dispositivos programables, mejorando dos
    características esenciales:

    1. Velocidad de ejecución.

    2. Eficiencia en
    la compactación del código.

    3.2 Las gamas de PIC

    Una de las labores más importantes del
    ingeniero de diseño es la elección del
    microcontrolador que mejor satisfaga las necesidades del
    proyecto con el mínimo presupuesto.

    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, de forma óptima,
    las necesidades de cada proyecto. Así, hay disponibles
    microcontroladores sencillos y baratos para atender las
    aplicaciones simples y otros complejos y más costosos
    para las de mucha envergadura. Microchip dispone de cuatro
    familias de microcontroladores de 8 bits para adaptarse a las
    necesidades de la mayoría de los clientes
    potenciales.

    En la mayor parte de la bibliografía
    encontremos tan solo tres familias de microcontroladores, con
    lo que habrán despreciado la llamada gama enana, que es
    en realidad una subfamilia formada por componentes
    pertenecientes a las otras gamas. En nuestro caso hemos
    preferido comentarla dado que los PIC enanos son muy apreciados
    en las aplicaciones de control de personal, en sistemas de
    seguridad y
    en dispositivos de bajo consumo que gestionan receptores y
    transmisores de señales. Su pequeño tamaño
    los hace ideales en muchos proyectos donde
    esta cualidad es fundamental.

    Describiremos brevemente las familias enana, baja y
    alta y nos concentraremos en la gama media a la cual pertenece
    el 16C711 describiendo sus registros en el próximo
    apartado.

    3.2.1 La gama enana: PIC12C(F)XXX de 8
    patitas

    Se trata de un grupo de
    PIC de reciente aparición que ha acaparado la
    atención del mercado. Su principal
    característica es su reducido tamaño, al
    disponer todos sus componentes de 8 patitas. Se alimentan con
    un voltaje de corriente continua comprendido entre 2,5 V y
    5,5 V, y consumen menos de 2 mA cuando trabajan a 5 V y 4
    MHz. El formato de sus instrucciones puede ser de 12 o de 14
    bits y su repertorio es de 33 o 35 instrucciones,
    respectivamente. En la Figura 3.1 se muestra el
    diagrama de conexionado de uno de estos PIC.

    Figura 3.1. Diagrama de conexiones de los PIC12Cxxx
    de la gama enana.

    Aunque los PIC enanos sólo tienen 8 patitas,
    pueden destinar hasta 6 como líneas de E/S para los
    periféricos porque disponen de un oscilador interno
    R-C.

    En la Tabla 3.1 se presentan las principales
    características de los modelos de esta subfamilia, que
    el fabricante tiene la intención de potenciar en un
    futuro próximo. Los modelos 12C5xx pertenecen a la
    gama baja, siendo el tamaño de las instrucciones de 12
    bits; mientras que los 12C6xx son de la gama media y sus
    instrucciones tienen 14 bits.

    Los modelos 12F6xx poseen memoria Flash para el
    programa y EEPROM para los datos.

    Tabla 3.1. Características de los modelos
    PIC12C(F)XXX de la gama enana.

    3.2.2 Gama baja o básica: PIC16C5X con
    instrucciones de 12 bits.

    Se trata de una serie de PIC de recursos limitados,
    pero con una de la mejores relaciones costo/prestaciones. Sus
    versiones están encapsuladas con 18 y 28 patitas y
    pueden alimentarse a partir de una tensión de 2,5 V, lo
    que les hace ideales en las aplicaciones que funcionan con
    pilas
    teniendo en cuenta su bajo consumo (menos de 2 mA a 5 V y 4
    MHz). Tienen un repertorio de 33 instrucciones cuyo formato
    consta de 12 bits. No admiten ningún tipo de
    interrupción y la Pila sólo dispone de dos
    niveles. En la Figura 3.2 se muestra el diagrama de conexionado
    de uno de estos PIC.

    Figura 3.2: Diagrama de patitas de los PIC de la
    gama baja que responden a la nomenclatura

    PIC16C54/56.

    Al igual que todos los miembros de la familia
    PIC16/17, los componentes de la gama baja se caracterizan por
    poseer los siguientes recursos: (en la Tabla 3.2 se presentan
    las principales características de los modelos de esta
    familia).

    1. Sistema POR ("Power On Reset") Todos los PIC
    tienen la facultad de generar una autoreinicialización
    o autoreset al conectarles la alimentación.

    2. Perro guardián (Watchdog o WDT) Existe un
    temporizador que produce un reset automáticamente si
    no es recargado antes que pase un tiempo prefijado.
    Así se evita que el sistema quede "colgado" dado en
    esa situación el programa no recarga dicho
    temporizador y se genera un reset.

    3. Código de protección. Cuando se
    procede a realizar la grabación del programa, puede
    protegerse para evitar su lectura. También disponen
    los PIC de posiciones reservadas para registrar
    números de serie, códigos de
    identificación, prueba, etc.

    Tabla 3.2. Características de los modelos
    PIC16C®5X de la gama baja

    4. Líneas de E/S de alta corriente. Las
    líneas de E/S de los PIC pueden proporcionar o absorber
    una corriente de salida comprendida entre 20 y 25 mA, capaz de
    excitar directamente ciertos periféricos.

    5. Modo de reposo (Bajo consumo o "sleep") Ejecutando
    una instrucción (SLEEP), la CPU y el oscilador principal
    se detienen y se reduce notablemente el consumo.

    Para terminar el comentario introductorio sobre los
    componentes de la gama baja conviene nombrar dos restricciones
    importantes:

    • La pila o "stack" sólo dispone de dos niveles
      lo que supone no poder encadenar más de dos
      subrutinas.
    • Los microcontroladores de la gama baja no admiten
      interrupciones.

    3.2.3 Gama media. PIC16CXXX con instrucciones de 14
    bits

    Es la gama más variada y completa de los PIC.
    Abarca modelos con encapsulado desde 18 patitas hasta 68,
    cubriendo varias opciones que integran abundantes
    periféricos. Dentro de esta gama se halla el
    «fabuloso PIC16X84» y sus variantes. En la Figura
    3.3 se muestra el diagrama de conexionado de uno de estos
    PIC.

    Figura 3.3. Diagrama de patitas del PIC16C74, uno
    de los modelos más representativos de la gama
    media.

    En esta gama sus componentes añaden nuevas
    prestaciones a las que poseían los de la gama baja,
    haciéndoles más adecuados en las aplicaciones
    complejas. Admiten interrupciones, poseen comparadores de
    magnitudes analógicas, convertidores A/D, puertos
    serie y diversos temporizadores.

    El repertorio de instrucciones es de 35, de 14 bits
    cada una y compatible con el de la gama baja. Sus distintos
    modelos contienen todos los recursos que se precisan en las
    aplicaciones de los microcontroladores de 8 bits.
    También dispone de interrupciones y una Pila de 8
    niveles que permite el anidamiento de subrutinas. En la Tabla
    3.3 se presentan las principales características de
    los modelos de esta familia.

    Tabla 3.3. Características relevantes de los
    modelos PIC16X8X de la gama media.

    Encuadrado en la gama media también se halla
    la versión PIC14C000, que soporta el diseño de
    controladores inteligentes para cargadores de
    baterías, pilas pequeñas, fuentes de
    alimentación ininterrumpibles y cualquier sistema de
    adquisición y procesamiento de señales que
    requiera gestión de la energía de
    alimentación. Los PIC 14C000 admiten cualquier
    tecnología de las baterías como Li-Ion, NiMH,
    NiCd, Ph y
    Zinc.

    El temporizador TMR1 que hay en esta gama tiene un
    circuito oscilador que puede trabajar asíncronamente y
    que puede incrementarse aunque el microcontrolador se halle
    en el modo de reposo ("sleep"), posibilitando la
    implementación de un reloj en tiempo real.

    Las líneas de E/S presentan una carga
    "pull-up" activada por software.

    3.2.4 Gama alta: PIC17CXXX con instrucciones de 16
    bits.

    Se alcanzan las 58 instrucciones de 16 bits en el
    repertorio y sus modelos disponen de un sistema de
    gestión de interrupciones vectorizadas muy potente.
    También incluyen variados controladores de
    periféricos, puertas de comunicación serie y
    paralelo con elementos externos, un multiplicador hardware de
    gran velocidad y mayores capacidades de memoria, que alcanza
    los 8 k palabras en la memoria de instrucciones y 454 bytes
    en la memoria de datos.

    Quizás la característica más
    destacable de los componentes de esta gama es su arquitectura
    abierta, que consiste en la posibilidad de ampliación
    del microcontrolador con elementos externos. Para este fin,
    las patitas sacan al exterior las líneas de los buses
    de datos, direcciones y control, a las que se conectan
    memorias o controladores de

    periféricos. Esta facultad obliga a estos
    componentes a tener un elevado numero de patitas comprendido
    entre 40 y 44. Esta filosofía de construcción
    del sistema es la que se empleaba en los microprocesadores y
    no suele ser una práctica habitual cuando se emplean
    microcontroladores. En la tabla 3.4 se muestran las
    características más relevantes de los modelos
    de esta gama, que sólo se utilizan en aplicaciones muy
    especiales con grandes requerimientos.

    Tabla 3.4. Características más
    destacadas de los modelos PIC17CXXX de la gama
    alta.

    Con vistas al siglo XXI, Microchip lanzó la
    gama "mejorada" PIC18CXXX.

    4. MICROCONTROLADOR PIC 16C711

    4.1 Introducción a su
    arquitectura

    La alta performance de los PIC 16CXXX puede ser
    atribuida a su arquitectura RISC la cuál ya hemos
    comentado y a su modelo Harvard referente a la implementacion
    de la memoria.

    Buses separados de datos y programa posibilita alojar
    instrucciones de tamaños diferentes, 8 bits para las
    palabras de datos.

    Lo códigos de operación (OPCODE) son de
    14 bits haciendo esto posible tener todas las palabras de
    instrucciones sencillas. Los 14 bits de ancho del bus de acceso
    a la memoria de programa nos permite hacer un fetch a una
    instrucción de 14 bits en un solo ciclo.

    El "twostage pipeline" nos permite hacer el fetch de
    una instrucción y la ejecución de otra al mismo
    tiempo, consecuentemente todas las instrucciones (35) en un
    único ciclo (200 ns. @ 20 Mhz.) con la excepción
    de los saltos de programa.

    La siguiente tabla muestra los tamaños de las
    memorias de datos y programa de este PIC.

    Dispositivo

    Memoria de Programa

    Memoria de Datos

    PIC 16C711

    1K x 14

    68 x 8

    Tabla 4.1: Tamaño de las
    memorias del PIC 16C711.

    Los PIC 16CXX contienen la UAL de 8 bits y el registro
    de trabajo de 8 bits, la UAL es la unidad aritmética de
    propósito general, realiza operaciones booleanas y
    aritméticas entre los datos del registro de trabajo (W
    register) y otros registros. El W register es un registro no
    direccionable utilizado por las operaciones de la
    UAL.

    En las operaciones de 2 operandos tipicas, un operando
    esta en el W register y el otro o es una constante inmediata o
    esta en otro registro; en las operaciones de 1 operando este
    generalmente se encuentra en el W register pero esto no es
    excluyente.

    Dependiendo de las instrucciones ejecutadas en la UAL,
    los valores de
    los bits Carry ( C ), Digit Carry (DC) y cero (Z), en el STATUS
    Register serán afectados.

    Figura 4.2: Diagrama de boque de los PIC
    16C71X

    Figura 4.3: PIC16C710/71/711/715 PINOUT
    DESCRIPTION

    4.1.1 Clocking Scheme/Ciclo de
    Instrucción:

    La entrada de clock (OSC1) es internamente dividida
    en 4 para generar 4 non-overlaping señales de clock
    cuadradas llamadas Q1, Q2, Q3, Q4. Internamente el PC
    (Program counter) es incrementado cada Q1, la
    instrucción es traída (fetch) desde la memoria
    de programa al registro de instrucción en Q4. La
    instrucción en decodificada y ejecutada en el
    intervalo entre Q1 y Q4 como lo muestra la siguiente
    figura.

    Figura 4.4: Clock / Instruction
    Cycle.

    4.1.2 Instruction Flow / Pipelining

    El cilclo de instrucción consiste en 4 ciclos
    Q ( Q1, Q2, Q3 y Q4) . Las instrucciones Fetch y Execute se
    realizan bajo un método llamado Pipelined. Estas dos
    instrucciones necesitan un ciclo de instrucción cada
    una para llevarse a cabo, pero bajo este método en
    casi todos los casos se pueden llevar a cabo en un ciclo de
    instrucción ejecutando la instrucción que
    está en el PC y haciendo el Fetch de la
    instrucción PC+1, los casos en los que esta
    operación dual no puede llevarse a cabo es en los
    saltos de programa (ej. GOTO) en los cuales es necesario 2
    ciclos de instrucción separados para cada una de estas
    instrucciones (siguiente figura).

    El ciclo Fetch comienza cuando el PC incrementa en
    Q1.

    En el ciclo de ejecución, la
    instrucción que está en el IR es decodificada y
    ejecutada mientras duran Q2, Q3 y Q4. La memoria de datos es
    leida durante Q2 (operación read) y es escrita durante
    Q4 (operación write).

    Figura 4.5: Instrucción Pipeline
    Flow.

    4.2 Organización de su memoria

    4.2.1 Organización de la memoria de
    programa

    Los PIC de la familia 16C71X tienen un program
    counter (PC) de 13 bits, pudiendo direccionar una memoria de
    programa de 8Kx14 de espacio.

    Figura 4.6: rango de direccionamiento de esta
    familia.

    El Reset vector está en la dirección
    0000h y el Interrupt Vector está en la
    dirección 0004h.

    Figura 4.7: Mapa de la memoria de programa y el
    stack de los PIC 16C71 y 16C711.

    Dado que estos chips pueden direccionar hasta 8K,
    los accesos a direcciones superiores a la dirección
    03FFh ocasionan un wraparround.

    4.2.2 Organización de la memoria de
    datos

    La ampliación de recursos en los PIC
    forzó en los catalogados como de gama media una nueva
    estructura y la modificación de algunas instrucciones
    (partiendo, claro está, de la gama baja). Una de las
    diferencias fundamentales es, precisamente, la
    ampliación de memoria de registros, a los que se
    unieron algunos nuevos de sistema, y la accesibilidad a parte
    de los mismos que antes quedaban ocultos, como OPTION o TRIS,
    de los que hablaremos a continuación.

    De este modo se optó por dos bancos de
    registros de 128 posiciones cada uno, la mayoría de
    los cuales son de propósito general. En el siguiente
    esquema, que muestra esta organización, las
    direcciones con casillas blancas muestran posiciones de
    registros específicos, y las grises
    generales.

    Están implementadas en memoria estática.

    El bit RP0 es el selector de banco:

    RP0 (STATUS<5>) = 1 Bank
    1

    RP0 (STATUS<5>) = 0 Bank
    0

    Figura 4.8: Mapa de registros del PIC
    16C711.

    4.2.2.1 Registros de Funciones
    especiales

    Estos registros son utilizados por el CPU y los
    periféricos para controlar la operación del
    dispositivo.

    Los registros de funciones especiales se pueden
    clasificar en 2 conjuntos,
    (core y peripheral).

    No daremos una descripción muy pormenorizada
    del tema poruqe deberíamos profundizar demasiado en
    este tema, si el lector desea hacerlo, puede encontrar esta
    información en la hoja de datos del chip 16C711 la
    cuál se encuentra en www.microchip.com.

    Figura 4.9: Sumario del registro de funciones
    especiales (16C711).

    4.3 Registros específicos

    El PC. Direccionamiento del programa: El PC consta de
    13 bits, con lo que es posible direccionar hasta 8K palabras,
    separadas en bancos de 2K. El byte de menos peso de la
    dirección se guarda en el registro PCL, sito en la
    posición 0x02 del banco 0, mientras los 5 bits de
    más peso se guardan en los 5 bits de menos peso del
    registro PCLATH (dirección 0x08). Puesto que las
    instrucciones CALL y GOTO sólo cuentan con 11 bits, sus
    saltos serán relativos a la página en la que
    estemos. El cambio real de página se hará
    cambiando los bits PCLATH.4 y PCLATH.3.

    El OPTION. Registro de opciones

    Los siguientes registros no serán
    explicados:

    Los registros PIE1 y PIR1 están relacionados
    con el comparador, así como CMCON y VRCON, y no
    serán explicados. El registro FSR es utilizado en la
    gama baja, por lo que tampoco nos ocuparemos de
    él.

    Los registros TMR0, PORTA, PORTB, TRISA Y TRISB,
    están mas afines a la programación del Pic por lo
    que los obviaremos.

    R/W R/W R/W R/W R/W R/W R/W R/W

    GIE PEIE T0IE INTE RBIE T0IF INTF
    RBIF

    GIE: Activación global de
    interrupciones..

    1 = Interrupciones activadas. 0 = Interrupciones
    desactivadas.

    PEIE. Activación de la interrupción de
    periféricos (comparador)

    1 = Activada. 0 = Desactivada.

    T0IE: Activación de la interrupción del
    TMR0.

    1 = Activada. 0 = Desactivada.

    INTE: Activación de la interrupción
    externa.

    1 = Activada. 0 = Desactivada.

    RBIE: Activación de la interrupción de
    la puerta B.

    1 = Activada. 0 = Desactivada.

    T0IF: Indicador de TMR0 se ha desbordado.

    1 = TMR0 desbordado. Borrar por software. 0 = No se ha
    desbordado.

    INTF: Software de estado de la interrupción
    externa

    R/W R/W

    /POR /BO

    /POR: Señalizador de Power On Reset (reset por
    activación del micro).

    1 = No hubo Power On Reset. 0 = Ha habido Power On
    reset.

    /BO: Señalizador de Brown-Out (Caída de
    tensión).

    1 = No hubo Brown Out. 0 = Hubo Brown-Out

    4.4 Repertorio de Instrucciones

    4.4.1 Características generales y
    direccionamiento

    Habiendo escogido los diseñadores de PIC la
    filosofía RISC, su juego de instrucciones es reducido
    (33 instrucciones en la gama baja), siendo éstas,
    además, sencillas y rápidas, puesto que casi
    todas se ejecutan en un único ciclo de máquina
    (equivalente a 4 del reloj principal). Sus operandos son de
    gran flexibilidad, pudiendo actuar cualquier objeto como
    fuente y como destino.

    Posee tres tipos bien diferenciados de
    direccionamiento, estos son:

    • 1º Inmediato: El valor del dato está
      incluido en el propio código OP, junto a la
      instrucción.
    • 2º Directo: La dirección del dato
      está incluido en el propio código OP, junto a la
      instrucción.
    • 3º Indirecto: La dirección de la memoria
      de datos que guarda el operando está contenida en un
      registro.

    Nosotros nos centraremos en la gama media, que tiene
    35 instrucciones. La mayoría son idénticas a
    las de la gama baja, si bien las diferencias serán
    convenientemente explicadas.

    4.4.2 Repertorio de instrucciones de la gama media
    (Incluido el 16C711).

    Set de instrucciones por
    categorías:

    Descripción del set de
    instrucciones:

    5. Bibliografía

    5.1 Bibliografía en Internet

    Microchip. http://www.microchip.com

    Parallax. http://www.parallaxinc.com

    El Rincón del Pic. http://members.es.tripod.de/~InfoE/infop.htm

    Microsystems Engineering: Los autores de los libros de Pics
    en castellano. http://www.arrakis.es/~msyseng

    Links sobre Pics de David Tait. http://www.man.ac.uk/~mbhstdj/piclinks.html

    Rei Project: Mod Chip: Algunos proyectos.
    http://chip.aeug.org

    NewFound Electronics: Programador de Pics.
    http://www.new-elect.com

    Dontronics. http://www.dontronics.com

    The Picmicro Ring. http://members.tripod.com/~mdileo/pmring.html

    Microcontoladores: Información, Herramientas y
    Programador. http://www.geocities.com/TheTropics/2174/micro.html

    Microcontrollers: Enlaces. http://www.us-epanorama.net/microprocessor.html

    Microcontroladores, automatas, electrónica,
    etc. http://www.jmengual.com/

    Parallel Port PIC16C5X/XX Programmer. http://www.labyrinth.net.au/~donmck/dtait/upp.html

    Microchip Net resources. http://www.geocities.com/SiliconValley/Way/5807

    PIC16/17 Microcontroller & Basic Stamp: Con algunos
    proyectos. http://www.doc.ic.ac.uk/~ih/doc/pic

    La página del autor de Programming and
    Customizing the Pic Microcontroller: Con algunos
    circuitos. http://www.myke.com/PICMicro

    Pic Programming. Getting Started: 4 pasos para empezar
    con los Pic. http://www.pp.clinet.fi/~newmedia/pic/index.html

    Pic Programmer 2. http://www.jdm.homepage.dk/newpic.htm

    GNUPic "Free Microcontroller Software Tools
    http://huizen.dds.nl/~gnupic/index.html

    Propic2: Programador de Pics. http://www.propic2.com

    PicProg Home Page: Programador de Pics. http://virtuaweb.com/picprog

    The Electronic Projects Page: Algunos proyectos.
    http://www.blichfeldt.dk

    Bengt Lindgrens HomePage: Programador y archivos.
    http://home5.swipnet.se/~w-53783

    The ultimate source for Pic and SX Tools http://www.adv-transdata.com

    P16PRO & PICALL PIC programmers: Otro
    programador http://www.geocities.com/SiliconValley/Peaks/9620

    Diseño de sistemas con microcontroladores:
    Enlaces. http://www.info-ab.uclm.es/~amartine

    Free PIC 16×84 programmer with margining support.
    http://www.ise.pw.edu.pl/~wzab/picprog/picprog.html

    FlashPIC Developer for PIC16F84 and PIC16F87x Series PIC
    Microcontrollers. http://www.cybermedix.co.nz/flashpic

    Sagitron: Distribuidor de Microchip en España. http://www.sagitron.es

    EDU-PIC: PIC Microcontrollers in education.
    http://pages.hotbot.com/edu/edu-pic

    Programmer for PIC-processors. http://www.qsl.net/lz2rr/pic.html

    5.2 Bibliografía electrónica o
    impresa

    Microcontroladores PIC. La Solución en un
    Chip.

    Microcontroladores PIC. Diseño práctico de
    aplicaciones.

    Microcontroladores.

    Programming and Customizing the Pic
    Microcontroller

    Electrónica. Microcontroladores y
    Microprocesadores.

    PIC16/17 Microcontroller Data Book.

    July 1999 Technical Library CD-ROM

    Manual de Microcontroladores

    Microchip Technical CD-ROM First
    Edition 2000

    MPSIM Simulator Quick Reference Guide

    MPASM Assembler Quick Reference Guide

    MPSIM Simulator User’s guide

    MPASM Assembler User’s Guide

     

    Referencias del Autor:

    Luis E. Sánchez Toledo

    Soy estudiante de la facultad de Ingeniería y
    Tecnologías de la Universidad
    Católica del Uruguay.

    Este trabajo fue realizado en el 2005 como trabajo de
    fin de curso de la asignatura "Arquitectura de computadores
    1"

    Ante cualquier duda o consulta realizarla a

    Espero les sirva.

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter