domingo, 15 de febrero de 2015

TELECOMUNICACIONES

Microcontroladores PIC

Índice de contenidos


DISPOSITIVOS LÓGICOS MICROPROGRAMABLESMicrocontroladores PIC3.2

Características relevantes de los PIC

  • La arquitectura del procesador sigue el modelo Harvard.
  • Se aplica la técnica de segmentación ("pipe-line") en la ejecución de las instrucciones.
  • El formato de todas las instrucciones tiene la misma longitud.
  • Procesador RISC (Computador de Juego de Instrucciones Reducido).
  • Todas las instrucciones son ortogonales.
  • Arquitectura basada en un banco de registros.
  • Prácticamente todos los PIC se caracterizan por poseer unos mismos recursos mínimos.
  • Modelos de arquitectura cerrada y de arquitectura abierta.
  • Diversidad de modelos de microcontroladores.
  • Amplio margen de alimentación y corrientes de salida elevadas.
  • Herramientas de soporte potentes y económicas.
1ª. La arquitectura del procesador sigue el modelo Harvard.
    La repercusión más importante del empleo de la arquitectura Harvard en los microcontroladores PIC se manifiesta en la organización de la memoria del sistema. La memoria de programa o instrucciones es independiente de la de los datos, teniendo tamaños y longitudes de palabra diferentes.
    La arquitectura Harvard permite a la CPU acceder simultáneamente a las dos memorias. Además, propicia numerosas ventajas al funcionamiento del sistema.
    En los PIC, el formato de las instrucciones es de 12 bits, 14 bits o 16 bits según el modelo y, en consecuencia, la longitud de las palabras de la memoria de instrucciones o programa corresponde con esa longitud. Este tamaño permite codificar en una palabra el código de operación de la instrucción junto al operando o su dirección.
    Para adaptarse a las necesidades de las aplicaciones del usuario hay modelos con 512 posiciones para la memoria de instrucciones y otros que tienen 1 k, 2 k , y hasta 64 k posiciones de memoria.
    Existen varias versiones de memoria de instrucciones para los PIC:
  • Versión Flash. Utiliza una memoria EEPROM tipo Flash, que puede grabarse y borrarse muchas veces.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLESMicrocontroladores PIC3.3
  • Versión OTP . ("One Time Programmable") "Programable una sola vez". Sólo se puede grabar una vez por el usuario sin la posibilidad de borrar lo que se graba. Resulta mucho más económica en la implementación de prototipos y pequeñas series.
  • Versión QTP. Es el propio fabricante el que se encarga de grabar el código en todos los chips que configuran pedidos medianos y grandes.
  • Versión SQTP. El fabricante solo graba unas pocas posiciones de código para labores de identificación, numero de serie, palabra clave, checksum, etc.
    Los modelos con memoria OTP sólo pueden ser grabados una vez por el usuario.
    Puesto que los datos y operandos que manejan las instrucciones son de 8 bits, la longitud de las palabras de la memoria de datos tiene ese tamaño.
    La capacidad de la SRAM varía entre 16 y 3968 posiciones, según el modelo.
    A continuación se presenta el esquema general de adaptación de la CPU a las memorias de los PIC16X84. El bus que direcciona las posiciones de la memoria de programa tiene un tamaño de 13 líneas. El bus que direcciona la memoria de datos dispone de siete líneas para seleccionar 68 bytes.
2ª. 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 (en los PIC cada ciclo de instrucción son cuatro ciclos de reloj).
    Durante la fase de búsqueda, la dirección de la instrucción la proporciona el PC, el cual normalmente se autoincrementa en la mayoría de las instrucciones, excepto en las de salto.
Ejemplo:2 Ciclos1 Ciclo2 Ciclos1 Ciclo
1. MOVLW 55hBúsqueda 1ªEjecuta 1ª
2 .MOVWF PBBúsqueda 2ªEjecuta 2ª
3. CALL SUBBúsqueda 3ªEjecuta 3ª
4. MOVLW 03hBúsqueda 4ªNOP
Bús 1ª SUBEje 1ª SUB

DISPOSITIVOS LÓGICOS MICROPROGRAMABLESMicrocontroladores PIC3.4
    Las instrucciones de salto ocupan dos ciclos al no conocer la dirección de la siguiente instrucción.
3ª. El formato de todas las instrucciones tiene la misma longitud.
    Las instrucciones de los microcontroladores mas sencillos tienen una longitud de palabra de 12 bits. Los medianos tienen 14 bits y los de mayor complejidad tienen más longitud. 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.
4ª. Procesador RISC (Computador de Juego de Instrucciones Reducido).
    Las CPU´s atendiendo al tipo de instrucciones que utilizan pueden clasificarse en:
  • CISC: (Complex Instruction Set Computer) Computadores de juego de instrucciones complejo, que disponen de un repertorio de instrucciones elevado (80, 100 o más), algunas de ellas muy sofisticadas y potentes, pero que como contrapartida requieren muchos ciclos de máquina para ejecutar las instrucciones complejas.
  • RISC: (Reduced Instruction Set Computer) Computadores de juego de instrucciones reducido, en los que el repertorio de instrucciones es muy reducido, las instrucciones son muy simples y suelen ejecutarse en un ciclo máquina. Además los RISC deben tener una estructura pipeline y ejecutar todas las instrucciones a la misma velocidad.
  • SISC: (Specific Instriction Set Computer) Computadores de juego de instrucciones específico. En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, además de ser reducido, es "específico", es decir, las instrucciones se adaptan a las necesidades de la aplicación prevista.
    El número de instrucciones de los PIC mas simples es 33, llegando a 60 en los mas complejos. La familia PIC16X84 dispone de un repertorio de 35 instrucciones.
5ª. Todas las instrucciones son ortogonales.
    Cualquier instrucción puede manejar cualquier elemento de la arquitectura como fuente o como destino.
    En los PIC el manejo del banco de registros, que participan activamente en la ejecución de las instrucciones, es muy interesante al ser ortogonales.
6ª. Arquitectura basada en un banco de registros.
    La arquitectura basada en banco de registros implica que todos los elementos del sistema, es decir, temporizadores, puertos de entrada/salida, posiciones de memoria, etc, están implementados físicamente como registros.
    En la figura siguiente se muestra como la ALU (Unidad Aritmético-Lógica) efectúa sus operaciones con dos operandos, uno que proviene del registro W (Work), que en otras CPUs recibe el nombre de Acumulador, y el otro que se encuentra en cualquier otro registro o desde el propio código de instrucción.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLESMicrocontroladores PIC3.5

7ª. Prácticamente todos los PIC se caracterizan por poseer unos mismos recursos mínimos:
  • Sistema POR ( POWER ON RESET).
    • Todos los PIC tienen la facultad de generar una autoreinicialización o autoreset al conectarles la alimentación.
  • Perro guardián, (Watchdog)
    • Existe un temporizador que produce un reset automáticamente si no es recargado antes de que pase un tiempo prefijado. Así se evita que el sistema se quede "colgado" puesto que dada esa situación el programa no recargaría dicho temporizador y se generaría un reset.
  • Código de protección.
    • Cuando se procede a realizar la grabación del programa, puede protegerse para evitar su lectura. También disponen de posiciones reservadas para registrar números de serie, códigos de identificación, prueba, etc.
  • Modo de reposo (bajo consumo o SLEEP).
    • Ejecutando una instrucción (SLEEP), el CPU y el oscilador principal se detienen y se reduce notablemente el consumo.
  • Modo de reposo (bajo consumo o SLEEP).
8ª. Modelos de arquitectura cerrada y de arquitectura abierta.
    Entre los fabricantes de microcontroladores hay dos tendencias para resolver las demandas de los usuarios:
    1ª. Microcontroladores de arquitectura cerrada.
    Cada modelo se construye con una determinada CPU, cierta capacidad de memoria de datos, cierto tipo y capacidad de memoria de instrucciones, un número de E/S y un conjunto de recursos auxiliares muy concreto. El modelo no admite variaciones ni ampliaciones.
La aplicación a la que se destina debe encontrar en su estructura todo lo que precisa y, en caso contrario, hay que desecharlo. Microchip ha elegido principalmente este modelo de arquitectura.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLESMicrocontroladores PIC3.6
    2ª. Microcontroladores de arquitectura abierta.
    Estos microcontroladores se caracterizan porque, además de disponer de una estructura interna determinada, pueden emplear sus líneas de E/S para sacar al exterior los buses de datos, direcciones y control, con lo que se posibilita la ampliación de la memoria y las E/S con circuitos .integrados externos. Microchip dispone de modelos PIC con arquitectura abierta, sin embargo, esta alternativa se escapa de la idea de un microcontrolador incrustado y se asemeja a la solución que emplean los clásicos microprocesadores.
    Los verdaderos microcontroladores responden a la arquitectura cerrada y permiten resolver una aplicación con un solo circuito integrado y a precio muy reducido.
9ª. Diversidad de modelos de microcontroladores.
    La gran variedad de modelos de microcontroladores PIC (254 dispositivos a noviembre de 2004) permite que el usuario pueda seleccionar el más conveniente para su proyecto:
  • El número de patillas de E/S varía de 4 a 70, según el modelo.
  • Casi todos disponen de una memoria EEPROM de 16 a 1024 bytes para almacenar datos y recuperarlos después de haber eliminado la alimentación.
  • Las frecuencias más habituales de funcionamiento máximas, según el modelo, son 4 MHz y 10 MHz, llegando algunos a los 48 MHz.
  • Ademas de las entradas/salidas digitales y temporizadores y contadores, según el modelo, podemos disponer de entradas/salidas analógicas (convertidores A/D, D/A), comparadores analógicos, amplificadores operacionales, puerto serie, I2C, USB.
  • Según la versión de PIC, la Pila o "Stack" dispone de un cierto numero de niveles lo que supone poder encadenar más o menos subrutinas.
  • Los microcontroladores PIC mas sencillos no admiten interrupciones, pero el resto si.
  • Hay PIC donde el temporizador TMR1 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.
  • En algunos modelos las líneas de E/S del uno o mas puertos presentan una carga "pull-up" activada por software.
    La Pila en los PICs:
    La Pila en los PIC es una zona de memoria que se encuentra separada tanto de la memoria de programa como de la de datos. Tiene una estructura LIFO (Last In First Out), por lo que el último valor que se guarda es el primero que sale. Dispone de varios niveles de profundidad, cada uno de ellos con una longitud de n bits. Su funcionamiento es como el de un buffer circular, de manera que el valor que se obtiene al realizar tantos desplazamientos como niveles mas uno, es igual al primer desplazamiento.
    La única manera de cargar la Pila es a través de la instrucción CALL (llamada a subrutina) o por una interrupción que hacen que con cada una de ellas, se cargue el contenido del PC en el valor superior de la Pila. Para recuperar el contenido de la Pila en el PC hay que ejecutar una instrucción RETURN, RETLW o RETFIE (vuelta del programa de atención a una subrutina o interrupción).
    No se dispone de ningún flag (identificador o bandera) que indique un desbordamiento de la Pila.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLESMicrocontroladores PIC3.7
    Los dispositivos mas complejos responden a microcontroladores de arquitectura abierta que pueden expandirse en el exterior al poder sacar los buses de datos, direcciones y control. Así se pueden configurar sistemas similares a los que utilizan los microprocesadores convencionales, siendo capaces de ampliar la configuración interna del PIC añadiendo nuevos dispositivos de memoria y de E/S externas. Esta facultad obliga a estos componentes a tener un elevado numero de patillas.
    Con los PIC se dispone de gran diversidad de modelos y encapsulados, pudiendo seleccionar el que mejor se acople a las necesidades de acuerdo con el tipo y capacidad de las 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 del voltaje de alimentación.
10ª. Amplio margen de alimentación y corrientes de salida elevadas.
    La tensión típica de los PIC es de 5 v, si bien según que modelos se pueden alimentar con tensiones de 2 a 6,25 voltios, lo cual posibilita el funcionamiento mediante pilas corrientes teniendo en cuenta su bajo consumo ( menos de 2 mA a 5 V y 4 MHz ).
    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.
11ª. Herramientas de soporte potentes y económicas.

Información sobre PIC

    La información sobre PIC en libros y revistas de electrónica es grande. Prácticamente no hay un número de una revista de electrónica que no publique al menos un artículo con microcontroladores, sobre todo PIC y para hacer hasta lo mas simple. Pero la información que existe en internet es enorme. Existen multitud de páginas web, foros, grupos de noticias y sitios ftp con aspectos relacionados con los microcontroladores, pero sobre todo con los PIC.
    Libros de interés:
  • "Microcontroladores PIC diseño práctico de aplicaciones". Ed Mac Graw Gil.
    José Mª Angulo Usategui / Ignacio Angulo Martinez
    • Este libro es bastante práctico y desarrolla pequeños programas en orden de dificultad creciente. Bueno para iniciarse en el PIC. Está orientado al 16X84.
    A continuación se presentan los sitios de Internet que consideramos más interesantes sobre los PIC y el desarrollo de los circuitos que los utilizan:

DISPOSITIVOS LÓGICOS MICROPROGRAMABLESMicrocontroladores PIC3.8

Tipos de PIC

    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, 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.
    La mayoría de los sistemas de control incrustados requieren CPU, memoria de datos, memoria de instrucciones, líneas de E/S, y diversas funciones auxiliares como temporizadores, comunicación serie y otras. La capacidad y el tipo de las memorias, el número de líneas de E/S y el de temporizadores, así como circuitos auxiliares, son parámetros que dependen exclusivamente de la aplicación y varían mucho de una situación a otra. Quizás se pueda considerar la decisión más importante del proyecto la elección del modelo de microcontrolador. Para adaptarse de forma óptima a las necesidades de los usuarios, Microchip ofrece diversos tipos de microcontroladores de 8 bits.
    La mejor manera de mantenerse informado sobre los PIC es mediante la página del fabricante, www.microchip.com, en ella se mantiene la información actualizada de todos los dispositivos en producción, se pueden buscar según varios criterios y se ofrecen en formtato PDF (en inglés y chino) las hojas de características de los dispositivos. Aproximadamente, cada seis meses aparece un dispositivo nuevo.
     Pueden tomarse diversas maneras de clasificar los PIC y ninguna puede considerarse definitiva, debido a la rápida evolución de estos dispositivos. A continuación se presentan distintas formas de clasificar a los PIC, según diversos aspectos:
  • Familia de productos
    • PIC10
    • PIC12
    • PIC14
    • PIC16
    • PIC17
    • PIC18
  • Tipo de memoria
    • FLASH
    • OTP
    • ROM
  • Número de patillas E/S
    • 4 - 17 patillas
    • 18 - 27 patillas
    • 28 - 44 patillas
    • 45 - 80 patillas
  • Tamaño de memoria (bytes)
    • 0.5K - 1K
    • 2K - 4K
    • 8K - 16K
    • 24K -32K
    • 48K - 64K
    • 96K - 128K
    En la clasificación por familias, las principales diferencias radican en el número de instrucciones y su longitud, el número de puertos y funciones, lo cual se refleja en el encapsulado, la complejidad interna y de programación, y en el número de aplicaciones.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLESMicrocontroladores PIC3.9
    A continuación exponemos algunas características interesantes de algunos tipos de PIC:

PIC de 8 patillas

    Se trata de un grupo de PIC bastante difundidos en el 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 siguiente figura se muestra el diagrama de conexionado de uno de estos PIC.
    Aunque sólo tienen 8 patillas, pueden destinar hasta 6 como líneas de E/S para los periféricos al disponer de un oscilador interno R-C, lo cual es una de su principales características.
    Los modelos 12C5xx tienen instrucciones de 12 bits; mientras que los 12C6xx tienen instrucciones de 14 bits. Los modelos 12F6xx poseen memoria Flash para el programa y EEPROM para los datos.

PIC16C(R)5X con instrucciones de 12 bits

    Se trata de una serie recursos limitados, pero con una buena relación coste/prestaciones. Disponen de 18, 20 o 28 patillas 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. Poseen memoria de programa tipo OTP (16C5X) o ROM (16CR5X).

DISPOSITIVOS LÓGICOS MICROPROGRAMABLESMicrocontroladores PIC3.10

PIC16XXX con instrucciones de 14 bits

Es la gama más variada y completa de los PIC. Abarca modelos con encapsulado a partir de 18 patillas, cubriendo varias opciones que integran abundantes periféricos. Dentro de esta gama se halla el conocido PIC16X84 y sus variantes. En la siguiente figura se muestra el diagrama de conexionado de uno de estos PIC.
    En esta gama sus componentes añaden nuevas prestaciones a las que poseían los de gamas inferiores, 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 gamas inferiores. Sus distintos modelos contienen todos los recursos que se precisan en las aplicaciones de microcontroladores de 8 bits. También dispone de interrupciones y una Pila de 8 niveles que permite el anidamiento de subrutinas.
    El temporizador TMR1 que hay en algunos PIC de 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.

PIC14000

    Dentro de esta gama se encuentra el PIC14000, 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 PIC14000 admiten cualquier tecnología de las baterías como Li-Ion, NiMH, NiCd, Ph y Zinc.

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.

DISPOSITIVOS LÓGICOS MICROPROGRAMABLESMicrocontroladores PIC3.11

    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 patillas 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 número de patillas (40 y más). 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.

No hay comentarios:

Publicar un comentario