Professional Documents
Culture Documents
1
ARQUITECTURA DE LOS
MICROCONTROLADORES PIC
Ing. Junior Figueroa Olmedo
Arquie!ura
30/03/2014
2
Arquie!ura
UNIDAD CENTRAL DE
PROCESAMIENTO CPU
Es el cerebro del microcontrolador y acta bajo el control del programa
almacenado en la memoria.
Esta unidad trae las instrucciones del programa (una a una) desde la memoria, las
interpreta (descodifica) y hace que se ejecuten.
Incluye los circuitos para realizar operaciones aritmticas y lgicas elementales con
los datos binarios, en la Unidad Aritmtica Lgica.
El Registro de Trabajo (W), es un registro de bits utilizado para almacenar
todos los datos sobre los que se debe realizar alguna operacin (sumar, mo!er, etc.).
"ambin almacena los resultados preparados para el procesamiento futuro.
30/03/2014
3
UNIDAD CENTRAL DE
PROCESAMIENTO CPU
#a principal diferencia entre ambos se encuentra en la ubicacin del registro de trabajo,
que para los $I%&s se denomina ' ('or(ing )egister), y para los sistemas tradicionales es
el *cumulador.
UNIDAD CENTRAL DE
PROCESAMIENTO CPU
En las arquitecturas tradicionales el acumulador (*%%) est+ a la salida de la *#,, de
modo que el resultado de cualquier operacin aritmtica o lgica siempre es
depositado en el *%%.
En los $I%s, en cambio, el resultado de una operacin aritmtica o lgica puede
depositarse en el registro de trabajo (') o puede lle!arse directamente a cualquier
registro de la memoria de datos, y esto proporciona una gran fle-ibilidad y potencia.
E# registro de Estado o .tatus ($.'), est+ estrechamente relacionado con el
registro de trabajo ('). %uenta con algunos bits que indican determinadas
caracter/sticas del resultado de la operacin realizada en la *#, (si el resultado es
cero, si se ha producido acarreo o prstamo, si el resultado es positi!o o negati!o,
etc.)
30/03/2014
4
LA MEMORIA EN LOS
MICROCONTROLADORES
#a memoria es un conjunto de celdas o localizaciones que se identifican por su
direccin. En cada celda se almacena una palabra.
,na palabra es la unidad lgica de informacin almacenada en un celda de memoria.
.e utilizan palabras de 0, , 01, 02 o 03 bits de longitud. ,na palabra de bits es un
octeto o byte.
#a cantidad de celdas de la memoria define su capacidad. #a capacidad o tama4o de
la memoria se mide en palabras, ya sean en bits, bytes o palabras de 01, 02 o m+s
bits.
LA MEMORIA EN LOS
MICROCONTROLADORES
#a direccin de una celda es el ente que identifica la celda en la memoria. #a forma
m+s simple de identificar las celdas es asignar a cada una un nmero entero
consecuti!o.
#a direccin es el nmero binario (o he-adecimal) que denota la posicin de la
celda en la memoria.
= u, 1, 2, , (N -1) donde 67 nmero de celdas
#gicamente, la cantidad n de bits necesarios para formar la direccin de una celda
es funcin directa de la capacidad de la memoria y est+ dada por8
N = 2
n
30/03/2014
5
LA MEMORIA EN LOS
MICROCONTROLADORES
E"em#lo$
.e tiene una memoria donde para formar la direccin de una celda de bits (0
byte) cualquiera se necesitan 09 bits (n = 1u), as/ pues la cantidad de celdas que
componen la memoria est+ dada por N = 2
10
= 1u24.
#a direcciones posibles son = u, 1, 2, , 1u2S (nmeros enteros). E-presando
estos nmeros en el sistema de numeracin he-adecimal, tal como es costumbre, se
tiene = ub, 1b, 2b, , SFFb.
Entonces la capacidad de la memoria es de 0912 bytes o 0(:
OR%ANO&ACI'N L'%ICA DE LAS
MEMORIAS
#a memoria se organiza normalmente como un todo nico (organizacin lineal) o
por bloques llamados p+ginas.
#as direcciones de las celdas son nmeros binarios consecuti!os.
,na p+gina es una porcin de memoria de tama4o fijo. #as p+ginas est+n una a
continuacin de la otra sin solaparse. %ada p+gina se puede identificar por un
nmero consecuti!o denominado nmero de p+gina.
30/03/2014
6
OR%ANO&ACI'N L'%ICA DE LAS
MEMORIAS
;entro de una p+gina cualquiera, las celdas se identifican por su posicin respecto al
comienzo de la p+gina, llamada desplazamiento.
#a direccin de una celda se compone de dos elementos8 el nmero de la p+gina y el
desplazamiento.
$or ejemplo, en una memoria organizada en p+ginas de 1<3 bytes, una celda que se
encuentra en la p+gina 1 con desplazamiento*<h, tienen una direccin lineal 1*<h.
TIPOS DE MEMORIA
Memoria de Programa$ es no !ol+til y b+sicamente de slo lectura. $ueden ser
de tipo )=> (Read-Only Memory), E$)=> (Erasable Programmable ROM), ="$ (One
Time Programmable) y ?#*.@.
Memoria de Dao($ es fundamentalmente de lectura y escritura y no hace falta
que la informacin permanezca en ella al interrumpir el suministro de energ/a al
microcontrolador, es decir, la memoria es !ol+til. .e utilizan memorias )*> (Random
Access Memory) est+ticas.
Memoria EEPROM )Electrically Erasable Programmable Read-Only
Memory*$ >uchos microcontroladores $I% utilizan cierta de cantidad adicional de
memoria (e-terna) de lectura y escritura, no !ol+til, como parte de la memoria de
datos. El objeti!o de esta memoria es permitir el almacenamiento de datos fijos o
poco !ariables.
Memoria RAM$ Es una memoria de lectura y escritura. @ay dos !ariantes8 la
est+tica y la din+mica. Esttica! la informacin permanece estable indefinidamente
mientras no se suprima la tensin de alimentacin. "inmica! requieren un
refrescamiento peridico de la informacin almacenada.
30/03/2014
7
FAMILIA DE MICROCONTROLADORES PIC
Aama baja8 microcontroladores con instrucciones (palabras) de 01 bits.
Aama media8 microcontroladores con instrucciones (palabras) de 02 bits.
Aama alta8 microcontroladores con instrucciones (palabras) de 01 bits.
CARACTER+STICAS %ENERALES DE LOS PIC
*rquitectura @ar!ard, con memorias de programa y datos separadas.
En la mayor/a de los pC, la memoria de programa es mucho mayor que la de datos.
#a memoria )=> de programa est+ organizada en palabras de 01, 02 03 bits.
#a memoria )*> de datos est+ compuesta por registros de bits.
*rquitectura )I.% (entre BB y CC instrucciones)
"odas las instrucciones son del mismo tama4o8 una palabra de 01, 02 03 bits.
Darios cuentan con cierta cantidad de memoria EE$)=6 para almacenamiento no !ol+til
de datos.
E# acceso a los dispositi!os de EE. se realiza a tra!s de algunos registros de la memoria
de datos ()egistro de ?unciones Especiales F .?)).
.e puede proteger a la memoria de programa frente a copias no autorizadas.
30/03/2014
8
MICROCONTROLADOR PIC,-F../A
)epertorio de B< instrucciones de 02 bits cada una.
#a memoria ?#*.@ de programa tiene una capacidad de ( (0G1) palabras de 02
bits y se organiza en p+ginas de 1( (192) palabras cada una.
#a memoria de datos (.)*> est+tica) est+ formada por registros de bits, tiene
una capacidad de B3 bytes y est+ organizada en 2 bancos.
$osee una memoria EE$)=6 de datos de 1<3 bytes.
"iene una pila de ni!eles, donde se almacenan direcciones de la memoria de
programa.
$osee un sistema de interrupciones para atender interrupciones internas y
e-ternas.
%uenta con < puertos paralelos (*, :, %, ; y E) para la comunicacin paralela con
dispositi!os e-ternos.
$osee tres temporizadores ("imer9, "imer0 y "imer1), dos mdulos de capturaF
comparacinFmodulacin de ancho de pulso (%$$0,1).
$osee puertos serie para comunicacin serie asincrnica y sincrnica, un
con!ertidor *E; de 09 bits asociado a un multiple-or con !arias entradas
analgicas.
30/03/2014
9
MEMORIA RAM DE DATOS
Esta organizada en palabras de bits.
#os registros de funciones especiales (#$R! #%ecial $&nction Registers) son los
registros a tra!s de los cuales se controla al microcontrolador y se accede a sus
diferentes perifricos (con!ertidor *E;, mdulo de comunicacin serial), se
programan sus funciones, etc.
#os registros de propsito general ('PR! 'eneral P&r%ose Registers) constituyen
la memoria de datos propiamente dicha, disponible para el libre uso del usuario en
sus programas.
MEMORIA RAM DE DATOS
Est+ paginada, aunque a las p+ginas de la memoria de datos se le llama bancos.
%ada banco contiene hasta 01 localizaciones de memoria o registros, cuyas
direcciones !an desde 99h a C?h dentro de cada banco.
"odos los microcontroladores de gama media tienen al menos 1 bancos de
registros, es decir, hasta 1<3 registros con las direcciones absolutas 99h a ??h.
El $I%03?CC* posee cuatro bancos de registros con un total de <01 posibles
registros, con las direcciones absolutas 999h a 0??h.
30/03/2014
10
MEMORIA DE DATOS PIC,-F.//A
RE%ISTROS DE FUNCIONES ESPECIALES
30/03/2014
11
MEMORIA DE PRO%RAMA
#a memoria de programa est+ organizada en p+ginas.
El $I%03?CC* posee 2 p+ginas de 1999 palabras cada una. $or tanto la capacidad
de memoria puede llegar a se de 999 palabras. #as palabras de este $I% son de 02
bits.
DIRECCIONAMIENTO DE LA MEMORIA DE
PRO%RAMA
El contador de programa $% (Program Counter) es el registro del microcontrolador
cuya funcin es direccionar la memoria de programa.
El $% almacena direcciones de instrucciones, m+s precisamente, en el $% est+ la
direccin de la siguiente instruccin que hay que ejecutar.
En los microcontroladores de gama media, el $% es de 0B bits, de modo que puede
direccionar el espacio de 999 palabras de la memoria de programa.
%omo la memoria de programa est+ paginada, los bits 01 y 00 del $% dan el nmero
de la p+gina, mientras que los bits del 09 al 9 dan la direccin dentro de la p+gina o
desplazamiento.
30/03/2014
12
LA PILA )STAC0*
LA PILA )STAC0*
%orresponde a una parte de la )*>. %onsiste en un conjunto de ocho registros de
0B bits cada uno y en donde se almacenan direcciones de la memoria de programa.
Es un tipo de estructura de datos con organizacin #I?= (Last In First Out)8 lo ltimo
que entra en la pila es lo primero que sale de ella.
*ntes de que el microcontrolador se ponga a ejecutar una s&br&tina o al ocurrir
una interr&%cin, la direccin de la siguiente instruccin en ser ejecutada
(almacenada en el $%) se coloca en la pila (se apila), o sea, en uno de los registros.
Aracias a eso, despus de ejecutarse una subrutina o una interrupcin, el
microcontrolador sabe dnde continuar con la ejecucin del programa. Esta
direccin se borra (se desapila) despus de !ol!er al programa, ya que no es
necesario guardarla, disponiendo autom+ticamente esas localidades de la pila para
un uso futuro.
30/03/2014
13
LA PILA )STAC0*
;ado el tama4o de la pila, se pueden anidar hasta subrutinasH es decir, desde el
programa principal se puede llamar a una primera subrutina y desde sta a una
segunda subrutina, y de sta a una tercera, y as/ sucesi!amente hasta completar un
total de llamadas.
#a no!ena !ez se sobrescribe el !alor que se almacen al apilar el dato por primera
!ez. #a dcima !ez que se apile, se sobrescribe el !alor que se almacen al apilar el
dato por segunda !ez, etc. ;atos sobrescritos de esta manera no se pueden
recuperar.
6o hay ningn bit de estado para indicar el estado de desbordamiento o
subdesbordamiento de pila. $or esta razn hay que tener un especial cuidado al
escribir un programa.
1ITS DE CONFI%URACI'N
$ermiten que el usuario programe ciertas caracter/sticas del microcontrolador para
adaptarlo mejor a las necesidades de la aplicacin.
%uando se pone en marcha el dispositi!o, el estado de estos bits determina la forma
en que operar+ el microcontrolador.
*unque estos bits normalmente forman parte de la memoria de programa, ocupan
una direccin que no es accesible durante el funcionamiento normal del
microcontrolador. .lo se puede acceder a ellos durante la programacin del
microcontrolador.
#as caracter/sticas que se programan en los bits de configuracin son las siguientes8
El tipo de oscilador
#a habilitacin o no del pero guardi+n.
#a proteccin de la memoria de programa.
#a proteccin de la memoria EE$)=> de datos.
#as caracter/sticas del reset y la alimentacin del dispositi!o.
#os bits de configuracin del $I%03?CC* se agrupan en una IpalabraJ de
configuracin que ocupa la direccin 199Ch de la memoria de programa.
30/03/2014
14
1ITS DE CONFI%URACI'N PIC ,-F.//A
OSCILADOR O RELOJ
"odo microcontrolador requiere de un circuito que le indique la !elocidad de
trabajo, es el llamado oscilador o reloj.
El oscilador genera una onda cuadrada de alta frecuencia (se4al de reloj) que se
utiliza como se4al para sincronizar todas las operaciones del sistema.
Aeneralmente todos los componentes del reloj se encuentran integrados en
propio microcontrolador y tan solo se requieren unos pocos componentes
e-ternos, como un cristal de cuarzo o una red )%, para definir la frecuencia de
trabajo.
E-isten microcontroladores $I% que tienen un oscilador interno ()%) y no
requieren de componentes e-ternos. #a frecuencia de reloj m+-ima depender+ del
tipo de microcontrolador elegido.
#a eleccin de la frecuencia de la se4al de reloj depender+ de la precisin y
!elocidad que la aplicacin a controlar requiera.
30/03/2014
15
OSCILADOR O RELOJ
El modo de funcionamiento del oscilador (fuente de la se4al de reloj, oscilador
interno o e-terno) se selecciona por medio de los bits de la $alabra de
%onfiguracin, cargados en el microcontrolador durante la programacin.
#a eleccin de utilizar un oscilador e-terno o interno depender+ de la aplicacin. .i
se esta dise4ando un cronometro de precisin, un frecuenc/metro o un equipo que
maneje comunicaciones sincron/as de alta frecuencia, se necesitar+ un oscilador
e-terno de cristal, en caso de no necesitar precisin, el interno funcionar+.
OSCILADOR E2TERNO EN MODO LP3
2T 4 5S
El oscilador en los modos #$, K" y @. utilizan un oscilador e-terno dentro del microcontrolador
como una fuente de reloj. #a frecuencia de reloj est+ determinada por un cristal de cuarzo o por
resonadores cer+micos conectados a los pines =.%0 y =.%1.
Modo LP$ $ara aplicaciones de baja potencia. .e utiliza slo para trabajar con cristales de
cuarzo de baja frecuencia (B1 (@z a 199 (@z). *l utilizar este modo el consumo de corriente
ser+ menor que en los dem+s modos.
Modo 2T$ .e utiliza para cristales de cuarzo de frecuencias intermedias (099 (@z a 2 >@z).
El consumo de corriente es media en comparacin con los dem+s modos.
Modo 5S8 $ara aplicaciones de alta !elocidad. .e utiliza para cristales de reloj de frecuencia
m+s alta (2 >@z a 19 >@z). *l utilizar este modo el consumo de corriente ser+ mayor que
en los dem+s modos.
30/03/2014
16
OSCILADOR E2TERNO EN MODO LP3
2T 4 5S
OSCILADOR E2TERNO EN MODO RC 4
RCIO
En la mayor/a de casos el oscilador del microcontrolador puede funcionar a
frecuencias que no son precisamente definidas, as/ que ser/a una prdida de dinero
embeber tales componentes.
#a solucin m+s simple y m+s barata es estas situaciones es utilizar una resistencia y
un capacitor para el funcionamiento del oscilador.
Modo RC$ el pin =.%0 debe estar conectado al circuito )%. #a se4al de frecuencia
del oscilador )% di!idida por 2 est+ disponible en el pin =.%1. Esta se4al se puede
utilizar para la calibracin, sincronizacin o para otros propsitos.
30/03/2014
17
OSCILADOR E2TERNO EN MODO RC 4
RCIO
Modo RCIO$ ;e manera similar, el circuito )% est+ conectado al pin =.%0. Esta
!ez, el pin =.%1 est+ disponible para ser utilizado como pin de EE. de propsito
general.
#a frecuencia de este oscilador se calcula por medio de la frmula f 7 0E" segn la
que8
f 7 frecuencia L@zMH
" 7 )N% 7 constante de tiempo LsMH
) 7 resistencia elctrica L'MH y
% 7 capacitancia del condensador L?M.
OSCILADOR E2TERNO EN MODO EC
El oscliador de reloj e-terno en el modo E% (e-ternal cloc() utiliza un oscilador
e-terno independiente como una fuente de se4al de reloj.
#a m+-ima frecuencia de se4al de reloj est+ limitada a 19 >@z.
30/03/2014
18
OSCILADOR E2TERNO EN MODO EC
#as !entajas del funcionamiento del oscilador e-terno en modo E% son las
siguientes8
#a fuente de reloj e-terna independiente est+ conectada al pin de entrada =.%0.
El pin =.%1 est+ disponible como pin de EE. de propsito general.
Es posible sincronizar el funcionamiento del microcontrolador con los dem+s
componentes incorporados en el dispositi!o.
En este modo el microcontrolador se pone a funcionar inmediatamente despus
de encenderlo. 6o se requiere esperar para estabilizar la frecuencia.
*l deshabilitar temporalmente la fuente de reloj e-terna, se detiene el
funcionamiento del dispositi!o, dejando todos los datos intactos. ;espus de
reiniciar el reloj e-terno, el dispositi!o sigue funcionando como si no hubiera
pasado nada
OSCILADOR INTERNO
El circuito del oscilador interno consiste en dos osciladores separados que se
pueden seleccionar como la fuente del reloj del microcontrolador.
El oscilador ($)*TO#+ est+ calibrado de f+brica y funciona a >hz. #a frecuencia
de este oscilador se puede configurar por el usuario por medio de softOare
utilizando los bits del registro =.%",6E.
), pro!ocando con ello un reset que garantiza el correcto inicio de trabajo del
microcontrolador.
.i la fuente de alimentacin tiene un tiempo de establecimiento ele!ado, hay que
garantizar que la tensin en el terminal >%#) permanezca por debajo del umbral
hasta que I