La familia de microcontroladores PIC24
La familia de microcontroladores de 16 bits PIC24 es fabricada por Microchip Technology Inc.,
Microchip ha desarrollado dos familias PIC24, segun el costo y las prestaciones que se necesiten:
La familia PIC24H son la rama de alta velocidad, con una tensión de alimentación externa de 3,0 V a 3,6 V y una máxima velocidad de ejecución de 40 millones de instrucciones por segundo (MIPS).
La familia PIC24F es una variante de baja velocidad que utiliza un voltaje de alimentación externo en el intervalo de 2,0 V a 3,6 V y tiene una máxima velocidad de ejecución de 16 MIPS.
Hay muchas versiones de microcontroladores PIC24H/PIC24F disponibles que difieren en tamaño en el chip de memoria, número de pines de E/S, y cuenta con periféricos en chip.
Sin embargo, todos los miembros de la familia PIC24 utilizan la misma arquitectura del conjunto de instrucciones (ISA). De hecho, la arquitectura del conjunto de instrucciones PIC24 es un subconjunto de la ISA dsPIC33/dsPIC30, otra familia de microcontroladores de 16 bits de Microchip.
En los capítulos de hardware de este curso, el microcontrolador PIC24 particular utilizado con fines de ejemplo es el PIC24FJ32GA002. La introducción del lector a la familia PIC24 comienza con la arquitectura del conjunto de instrucciones, y un buen lugar para comenzar es con un diagrama de bloques simplificado del núcleo del procesador.
El tamaño de las rutas de datos internos de los PIC24 es de 16 bits, por lo que se refiere como un μC de 16 bits. Esto significa que el tamaño natural para los cálculos es de 16 bits; operaciones aritméticas tales como adiciones y sustracciones que operan sobre datos de 16 bits o datos de 8 bits se pueden especificar con una instrucción.
Operaciones sobre datos más grandes que 16 bits se pueden realizar, pero requieren ejecutar múltiples instrucciones. El conjunto de instrucciones de los PIC24 define 71 instrucciones distintas, de las cuales la mayoría requieren 24 bits (3 bytes) para codificar.
El término palabra (WORD) de instrucción se utiliza para referirse a un valor de código de máquina de 24 bits. Existen dos tipos de instrucciones que requieren dos palabras de instrucción (6 bytes) para codificar. El registro de instrucción contiene la palabra de instrucción que se está ejecutando actualmente. La unidad aritmética/lógica (ALU) es la lógica combinacional que realiza operaciones tales como suma, resta, operaciones logicas bit a bit tales como AND/OR/XOR, y así sucesivamente.
La entrada de la ALU a la izquierda es de un banco de registros de 16 registros de trabajo llamado W0-W15, cada uno de los cuales es de 16 bits de ancho. La entrada de la ALU de la derecha está conectado al bus de datos-X, lo que significa que este operando puede ser de muchas fuentes diferentes, con las fuentes más comunes a ser la memoria de datos o un registro de trabajo. La salida ALU está vinculada al bus de datos-X, con el destino más común puede ser la memoria de datos o un registro de trabajo.
Microchip ha desarrollado dos familias PIC24, segun el costo y las prestaciones que se necesiten:
- PIC24F, de bajo costo y una perfomance media, pudiendo trabajar a 16 MIPS
- PIC24H, de un costo mas alto, pero una perfomance muy superior, lo cual le permite operar a 40 MIPS
La familia PIC24H son la rama de alta velocidad, con una tensión de alimentación externa de 3,0 V a 3,6 V y una máxima velocidad de ejecución de 40 millones de instrucciones por segundo (MIPS).
La familia PIC24F es una variante de baja velocidad que utiliza un voltaje de alimentación externo en el intervalo de 2,0 V a 3,6 V y tiene una máxima velocidad de ejecución de 16 MIPS.
Hay muchas versiones de microcontroladores PIC24H/PIC24F disponibles que difieren en tamaño en el chip de memoria, número de pines de E/S, y cuenta con periféricos en chip.
Sin embargo, todos los miembros de la familia PIC24 utilizan la misma arquitectura del conjunto de instrucciones (ISA). De hecho, la arquitectura del conjunto de instrucciones PIC24 es un subconjunto de la ISA dsPIC33/dsPIC30, otra familia de microcontroladores de 16 bits de Microchip.
En los capítulos de hardware de este curso, el microcontrolador PIC24 particular utilizado con fines de ejemplo es el PIC24FJ32GA002. La introducción del lector a la familia PIC24 comienza con la arquitectura del conjunto de instrucciones, y un buen lugar para comenzar es con un diagrama de bloques simplificado del núcleo del procesador.
El tamaño de las rutas de datos internos de los PIC24 es de 16 bits, por lo que se refiere como un μC de 16 bits. Esto significa que el tamaño natural para los cálculos es de 16 bits; operaciones aritméticas tales como adiciones y sustracciones que operan sobre datos de 16 bits o datos de 8 bits se pueden especificar con una instrucción.
Operaciones sobre datos más grandes que 16 bits se pueden realizar, pero requieren ejecutar múltiples instrucciones. El conjunto de instrucciones de los PIC24 define 71 instrucciones distintas, de las cuales la mayoría requieren 24 bits (3 bytes) para codificar.
El término palabra (WORD) de instrucción se utiliza para referirse a un valor de código de máquina de 24 bits. Existen dos tipos de instrucciones que requieren dos palabras de instrucción (6 bytes) para codificar. El registro de instrucción contiene la palabra de instrucción que se está ejecutando actualmente. La unidad aritmética/lógica (ALU) es la lógica combinacional que realiza operaciones tales como suma, resta, operaciones logicas bit a bit tales como AND/OR/XOR, y así sucesivamente.
La entrada de la ALU a la izquierda es de un banco de registros de 16 registros de trabajo llamado W0-W15, cada uno de los cuales es de 16 bits de ancho. La entrada de la ALU de la derecha está conectado al bus de datos-X, lo que significa que este operando puede ser de muchas fuentes diferentes, con las fuentes más comunes a ser la memoria de datos o un registro de trabajo. La salida ALU está vinculada al bus de datos-X, con el destino más común puede ser la memoria de datos o un registro de trabajo.
Organización de la memoria de Programa
La figura anterior muestra como los PIC24 tienen memorias separadas para instrucciones de programas y datos.
Este tipo de disposición se conoce como arquitectura Harvard. La
mayoría de las instrucciones PIC24 sólo pueden dar acceso a la memoria de datos; unos
mecanismos especiales se proporcionan permitiendo a las instrucciones acceder a
la memoria de programa. El contador de programa (PC) es un registro de 23 bits
que proporciona la dirección de acceso a la memoria de programa donde se encuentra la siguiente instrucción.
La siguiente figura muestra cómo se utiliza el valor PC
para acceder a una palabra de instrucción en la memoria del programa.
A pesar
de que una palabra de instrucción es de 24 bits (3 bytes), en realidad es más
conveniente pensar en una palabra de instrucción como de 32 bits, que consiste
en una palabra menos significativa (LSW) y otra palabra más significativa (MSW),
cada uno de 16 bits de ancho.
La parte superior de 8 bits de la palabra más significativa son sin aplicarse y leer como ceros; este es el byte fantasma que se muestra en la Figura. En este modelo, la memoria del programa es direccionable en palabras de 16 bits, y el PC siempre apunta al inicio de una palabra de instrucción, o la menos significativa. Esto significa que el bit menos significativo del PC es siempre 0, y que los 22 bits superiores del PC contienen la dirección de una palabra de instrucción de un máximo de 222 ubicaciones = 4 millones de instrucción. En el momento de la redacción de este texto, los micros PIC24 no han implementado físicamente el espacio de instrucciones completo de 4 millones de instrucciones soportados por la definición de la arquitectura. Alrededor de 2008, nuevos micros de la familia PIC24 ofrecen una amplia gama de tamaños de memoria físicos que van desde los 6kb de memoria de programa hasta aproximadamente 85,5kb de memoria de programa, con nuevas variantes que se están introduciendo con regularidad.
La parte superior de 8 bits de la palabra más significativa son sin aplicarse y leer como ceros; este es el byte fantasma que se muestra en la Figura. En este modelo, la memoria del programa es direccionable en palabras de 16 bits, y el PC siempre apunta al inicio de una palabra de instrucción, o la menos significativa. Esto significa que el bit menos significativo del PC es siempre 0, y que los 22 bits superiores del PC contienen la dirección de una palabra de instrucción de un máximo de 222 ubicaciones = 4 millones de instrucción. En el momento de la redacción de este texto, los micros PIC24 no han implementado físicamente el espacio de instrucciones completo de 4 millones de instrucciones soportados por la definición de la arquitectura. Alrededor de 2008, nuevos micros de la familia PIC24 ofrecen una amplia gama de tamaños de memoria físicos que van desde los 6kb de memoria de programa hasta aproximadamente 85,5kb de memoria de programa, con nuevas variantes que se están introduciendo con regularidad.
La memoria de programa es no volátil, es decir, el contenido de la memoria se conserva cuando se
desconecta la alimentación. Se requiere algún tipo de memoria no volátil para
cualquier sistema informático práctico, ya que esto proporciona las
instrucciones que se ejecutan cuando se aplica energía. La memoria de programa
PIC24 es flash programable, lo que significa que se puede borrar y programar
eléctricamente. Otros tipos de memoria no volátil son una vez programable
(OTP), lo que significa que no puede ser borrado una vez programado, y la
máscara programado con memoria (ROM) de sólo lectura, lo que significa que el contenido de la memoria se determinan en el momento de fabricación de la
memoria y no se puede cambiar. Las operaciones de lectura en memoria flash son
rápidas, en decenas de nanosegundos, pero escriben operaciones requieren
más tiempo con un mínimo de 20 mS necesarios para escribir una palabra de programa.
Organización de la memoria de datos
La figura de arriba muestra que el
espacio de direcciones de memoria de datos es de 64 KB total y se organiza como
palabras de 16 bits, con los 8 bits más bajos se refiere al byte menos
significativo (LSB) y los 8 bits superiores como el byte más significativo
(MSB) . Observe que las siglas LSB y MSB se utilizan una B mayúscula en referencia
a byte; las siglas LSB y MSB se reservan para el bit menos significativo y el
bit más significativo, respectivamente. La memoria de datos es direccionable byte a byte,
lo que significa que las partes MSB y LSB de una palabra de 16 bits pueden
modificarse individualmente. Las direcciones LSB están en ubicaciones pares,
mientras que las direcciones MSB en lugares impares. La memoria de datos es
volátil, lo que significa que su contenido se pierde si se desconecta la
alimentación.
La memoria de datos se divide en las siguientes secciones:
·
Registros
de función especial. Los primeros 2.048 ubicaciones de memoria de datos
(0x0000 a 0x07FF) se reservan para los registros de funciones especiales (SFR).
Un SFR se asocia con alguna funcionalidad específica implementada en los micros PIC24. Desde un punto de vista del lenguaje ensamblador, los SFRs se tratan de la misma
manera que un SFR o ubicación de la memoria de datos, pero su implementación
física real es muy diferente y depende de la SFR particular. La mayoría de los
registros SFR sirven como datos y registros de control de periféricos on-chip,
tales como los temporizadores, los ADC, USART, etc. Los registros de trabajo W0-W15 son SFRs, así como el contador
de programa. A pesar de que cada SFR se le asigna una dirección específica, es
más común referirse a un SFR por su nombre en lugar de su ubicación.
·
Ram de
datos. las posiciones de memoria de datos que no son SFR se conocen por
varios nombres, tales como los registros de archivos, memoria RAM de datos, los datos X. RAM se utilizan para el almacenamiento de variables en los programas de usuario, pero también se utiliza como un efecto secundario de
ejecución de la instrucción en algunos casos (es decir, el almacenamiento de
una dirección de retorno por una llamada a subrutina). Al igual que con la memoria de programa, la cantidad de RAM de datos
implementado físicamente depende del micro PIC24 en particular. Sin embargo, todos
los μCs PIC24 tienen una cierta cantidad de RAM de datos, y esto comienza en la
posición 0x0800.
·
Memoria
cercana de datos: Los primeros 8192 ubicaciones en la memoria de datos se
conocen como RAM cercana, y ciertas formas de instrucción sólo pueden acceder a
posiciones de memoria de datos en RAM cercana. Muchas variantes PIC24 tienen
RAM de datos físicos que no excede los límites del espacio de datos cercano, y
por lo tanto esta distinción no es importante en esos dispositivos. Los
ejemplos de lenguaje ensamblador en este texto generalmente asumen que toda la
RAM de datos se encuentra en la RAM cercana. El PIC24FJ32GA002 utilizado en el hardware de este curso implementa 2048? bytes de RAM de datos, y
por lo tanto la totalidad de su RAM de datos está en la RAM cercana. Mientras
que 2048? bytes de RAM parece pequeño en comparación con los millones (y en
muchas implementaciones, miles de millones) de bytes de memoria RAM en un
ordenador personal que contiene un microprocesador de propósito general, es un
tamaño de memoria de datos típico para microcontroladores.
·
Visibilidad
del área de memoria de programa. La parte superior 32 K de memoria de
datos también se conoce como la zona de visibilidad de espacio de programa
(PSV), que permite a un programa de usuario acceder a los datos no
volátiles almacenados en la memoria de programa. El PCV se discutira tal ves mas adelante.
·
Ram de
acceso directo (DMA). Algunos μCs PIC24 tienen una parte de RAM de datos
implementado como acceso directo a memoria RAM (DMA). La DMA memoria RAM y el
bloque periférico DMA correspondientes, permiten algunos periféricos incorporados de serie en el micro como el ADC puede transferir datos via DMA a la RAM sin
la intervención del núcleo del CPU (es decir, sin ejecutar instrucciones en
lenguaje ensamblador para la realización de este movimiento de datos). Los tamaños de programa, memoria
de datos, y las memorias RAM DMA para algunas variantes PIC24H se enumeran en
la siguiente tabla:
No hay comentarios:
Publicar un comentario