Documente Academic
Documente Profesional
Documente Cultură
T2.1
ndice
1. Introduccin
2. Familia MSP430
5. CPU
2.1. Comparativa de
microcontroladores
2.2. Subfamilia G2xx
3. Arquitectura
3.1. Diagrama de bloques
3.2. Perifricos
4. Mapa de memoria
4.1. Zonas de memoria
4.2. Organizacin de la
memoria
5.1. Registros
5.1.1. Especficos
5.1.2. Propsito general
5.2. Modos de
direccionamiento
5.3. Instrucciones
5.3.1. Formato
5.3.2. Tamao y tiempo de
ejecucin
5.3.3. Codificacin
a) Formato I
b) Formato II
c) Formato III
d) Ejemplo
5.3.4. Descripcin
a) Aritmticas
b) Lgicas
c) Bit
d) Datos
e) Control de flujo
f) Sistema
T2.2
ndice
1. Introduccin
2. Familia MSP430
5. CPU
2.1. Comparativa de
microcontroladores
2.2. Subfamilia G2xx
3. Arquitectura
3.1. Diagrama de bloques
3.2. Perifricos
4. Mapa de memoria
4.1. Zonas de memoria
4.2. Organizacin de la
memoria
5.1. Registros
5.1.1. Especficos
5.1.2. Propsito general
5.2. Modos de
direccionamiento
5.3. Instrucciones
5.3.1. Formato
5.3.2. Tamao y tiempo de
ejecucin
5.3.3. Codificacin
a) Formato I
b) Formato II
c) Formato III
d) Ejemplo
5.3.4. Descripcin
a) Aritmticas
b) Lgicas
c) Bit
d) Datos
e) Control de flujo
f) Sistema
T2.3
1. Introduccin
1. Introduccin
Microcontroladores comerciales: amplio abanico de posibilidades:
Elevado nmero de fabricantes
Cada fabricante proporciona distintas familias (sistemas que comparten la
misma filosofa de diseo: bajo consumo, alto rendimiento, bajo coste)
Cada familia ofrece distintas subfamilias (dispositivos que comparten la misma
arquitectura de diseo: tensiones de alimentacin, frecuencias de operacin,
tipos de memoria)
Cada subfamilia contiene distintos dispositivos (cada uno con unas
caractersticas propias: tamao de la memoria, perifricos disponibles, tipos de
encapsulados)
Eleccin: es fundamental elegir adecuadamente el microcontrolador a utilizar:
Consumo (sistemas portables)
Tamao de la memoria (cantidad de cdigo y/o datos)
Perifricos disponibles (funcionalidades de E/S necesarias)
Capacidad de proceso (instrucciones por segundo)
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.4
1. Introduccin
Fabricante
Familia
Dispositivo
Subfamilia
T2.5
ndice
1. Introduccin
2. Familia MSP430
5. CPU
2.1. Comparativa de
microcontroladores
2.2. Subfamilia G2xx
3. Arquitectura
3.1. Diagrama de bloques
3.2. Perifricos
4. Mapa de memoria
4.1. Zonas de memoria
4.2. Organizacin de la
memoria
5.1. Registros
5.1.1. Especficos
5.1.2. Propsito general
5.2. Modos de
direccionamiento
5.3. Instrucciones
5.3.1. Formato
5.3.2. Tamao y tiempo de
ejecucin
5.3.3. Codificacin
a) Formato I
b) Formato II
c) Formato III
d) Ejemplo
5.3.4. Descripcin
a) Aritmticas
b) Lgicas
c) Bit
d) Datos
e) Control de flujo
f) Sistema
T2.6
2. Familia MSP430
2. Familia MSP430
MSP430 Texas Instruments (http://www.ti.com)
Caractersticas:
Diseo optimizado para ultra bajo consumo: bajas tensiones de alimentacin
(0.9 V 3.6 V), distintos modos de bajo consumo y perifricos inteligentes
capaces de operar autnomamente idneo para sistemas portables
CPU con arquitectura Von Neumann y RISC de 16 bits: pocas instrucciones
pequeas y rpidas de ejecutar buena capacidad de proceso
Gran cantidad de perifricos de altas prestaciones: temporizadores,
comunicaciones, convertidores, controladores de LCDs amplio abanico de
aplicaciones
Facilidad de uso: sistema de depuracin integrado(1) y potentes entornos de
desarrollo IDE gratuitos reducido tiempo de diseo
Bajo coste: kits de desarrollo completos y numerosos microcontroladores a muy
bajo coste sistemas econmicos
(1) Sistema de depuracin basado en el interfaz de comunicacin JTAG, que permite el acceso a la CPU en tiempo real
para realizar la depuracin de cualquier aplicacin (detencin del programa, ejecucin paso a paso, puntos de ruptura,
exploracin de la memoria, visualizacin de los registros de la CPU y de los perifricos)
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.7
2. Familia MSP430
Aplicaciones:
Instrumentacin porttil
Instrumentacin mdica
Instrumentacin de medida
Redes de sensores inalmbricos
Monitorizacin de seales
Recoleccin de datos
Dispositivos tctiles
Electrnica de consumo
T2.8
Subfamilia
Perifricos
T2.9
Dispositivos
T2.10
ndice
1. Introduccin
2. Familia MSP430
5. CPU
2.1. Comparativa de
microcontroladores
2.2. Subfamilia G2xx
3. Arquitectura
3.1. Diagrama de bloques
3.2. Perifricos
4. Mapa de memoria
4.1. Zonas de memoria
4.2. Organizacin de la
memoria
5.1. Registros
5.1.1. Especficos
5.1.2. Propsito general
5.2. Modos de
direccionamiento
5.3. Instrucciones
5.3.1. Formato
5.3.2. Tamao y tiempo de
ejecucin
5.3.3. Codificacin
a) Formato I
b) Formato II
c) Formato III
d) Ejemplo
5.3.4. Descripcin
a) Aritmticas
b) Lgicas
c) Bit
d) Datos
e) Control de flujo
f) Sistema
T2.11
3. Arquitectura
3. Arquitectura
MSP430G2533:
Von Neumann: utiliza la memoria para almacenar tanto el programa como los
datos
RISC de 16 bits: buses de datos y de direcciones de 16 bits:
Bus de datos de 16 bits longitud de palabra de 16 bits
Bus de direcciones de 16 bits capacidad de direccionamiento de 216
posiciones (216 = 65.536 = 64 KB)
Memoria
16 bits = 64 KB
Direcciones
Programa
Instrucciones Datos
Datos
CPU
16 bits
T2.12
Mdulo auxiliar
de gestin
Perifricos
E/S
CPU
Buses
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.13
3.2. Perifricos
MSP430G2533:
Convertidor
Analgico/Digital
Puertos E/S
Comunicaciones
Supervisor de
Alimentacin
Watchdog
Temporizadores
T2.14
ndice
1. Introduccin
2. Familia MSP430
5. CPU
2.1. Comparativa de
microcontroladores
2.2. Subfamilia G2xx
3. Arquitectura
3.1. Diagrama de bloques
3.2. Perifricos
4. Mapa de memoria
4.1. Zonas de memoria
4.2. Organizacin de la
memoria
5.1. Registros
5.1.1. Especficos
5.1.2. Propsito general
5.2. Modos de
direccionamiento
5.3. Instrucciones
5.3.1. Formato
5.3.2. Tamao y tiempo de
ejecucin
5.3.3. Codificacin
a) Formato I
b) Formato II
c) Formato III
d) Ejemplo
5.3.4. Descripcin
a) Aritmticas
b) Lgicas
c) Bit
d) Datos
e) Control de flujo
f) Sistema
T2.15
4. Mapa de memoria
4. Mapa de memoria
Definicin: esquema que representa la distribucin de las direcciones que
permiten seleccionar los distintos elementos del sistema:
Registros especiales de la CPU
Registros de configuracin de los perifricos E/S (Perifricos Mapeados en
Memoria se accede a ellos como a posiciones de memoria)
Memoria del sistema
Exclusividad: cada direccin se corresponde con un nico elemento del
sistema, y cada elemento del sistema posee una nica direccin
Niveles de descripcin: el mapa de memoria se puede representar en dos
niveles distintos:
Funcional: uso o funcionalidad que le asigna el sistema a cada direccin
(programa, datos, vectores de interrupcin)
Fsico: tipo de elemento que se encuentra ubicado en cada direccin
(Flash, RAM, perifricos E/S, registros especiales de la CPU)
Tamao: el mapa de memoria no tiene por qu cubrir la capacidad de
direccionamiento completa de la CPU (depende del tamao de la memoria
utilizada)
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.16
4. Mapa de memoria
0xFFFF
0xFFC0
Fsico
Funcional
Flash
Vectores
Interrupcin
Flash
Cdigo
64 B
0xFFBF
16 KB
0xC000
NO UTILIZADA
0x10FF
0x1000
Flash
Informacin
Calibracin
256 B
64 KB
NO UTILIZADA
0x03FF
0x0200
RAM
Datos
512 B
0x01FF
0x0100
Perifricos 16 bits
256 B
0x00FF
0x0010
Perifricos 8 bits
240 B
0x000F
0x0000
Registros especiales
16 B
MSP430G2533
MSP430G2533 Datasheet
T2.17
Flash
Vectores
Interrupcin
Flash
Cdigo
64 B
0xFFBF
16 KB
0xC000
NO UTILIZADA
0x10FF
0x1000
Flash
Informacin
Calibracin
256 B
NO UTILIZADA
0x03FF
0x0200
RAM
Datos
512 B
0x01FF
0x0100
Perifricos 16 bits
256 B
0x00FF
0x0010
Perifricos 8 bits
240 B
0x000F
0x0000
Registros especiales
16 B
64 KB
T2.18
1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0
LSB
0 0 0 1 1 0 1 0
LSb
(1) Esta definicin no es correcta, pues se utiliza el trmino LSB para denotar tanto al byte menos significativo como al bit
menos significativo indistintamente, y se utiliza el trmino MSB para denotar tanto al byte ms significativo como al bit
ms significativo indistintamente. No obstante, se emplear esta notacin para evitar ambigedades
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.19
1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0
LSB
0xB81A
0x0005
0x0005
0x0004
0x0004
0x0003
0xB8
MSB
0x0003
0x1A
LSB
0x0002
0x1A
LSB
0x0002
0xB8
MSB
0x0001
0x0001
0x0000
0x0000
Little endian
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
Big endian
T2.20
LSb
Little endian
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.21
LSb
MSB
LSB
MSB
LSB
MSB
LSB
Little endian
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.22
ndice
1. Introduccin
2. Familia MSP430
5. CPU
2.1. Comparativa de
microcontroladores
2.2. Subfamilia G2xx
3. Arquitectura
3.1. Diagrama de bloques
3.2. Perifricos
4. Mapa de memoria
4.1. Zonas de memoria
4.2. Organizacin de la
memoria
5.1. Registros
5.1.1. Especficos
5.1.2. Propsito general
5.2. Modos de
direccionamiento
5.3. Instrucciones
5.3.1. Formato
5.3.2. Tamao y tiempo de
ejecucin
5.3.3. Codificacin
a) Formato I
b) Formato II
c) Formato III
d) Ejemplo
5.3.4. Descripcin
a) Aritmticas
b) Lgicas
c) Bit
d) Datos
e) Control de flujo
f) Sistema
T2.23
5. CPU
5. CPU
Caractersticas:
Registros: dispone de 16 registros de 16 bits
Modos de direccionamiento: posee 7 modos de direccionamiento para
acceder a los datos
Instrucciones: arquitectura RISC con 27 instrucciones bsicas y 24
instrucciones emuladas:
Bsicas: son ejecutadas directamente por la CPU
Emuladas: son instrucciones ficticias que simplifican el desarrollo del
cdigo, y son sustituidas por instrucciones bsicas equivalentes
T2.24
5.1. Registros
T2.25
5.1.1. Especficos
R0: Contador de programa (PC: Program Counter)
Funcionalidad: apunta a la direccin de la siguiente instruccin a ejecutar
Caractersticas: como todas las instrucciones tienen un tamao par en bytes
(2, 4 6 bytes), siempre contiene una direccin par
Operacin: la CPU se encarga de actualizar automticamente el contador de
programa en funcin de la instruccin ejecutada
Direccin par
T2.26
PUSH
POP
SP
SP
T2.27
Direccin par
T2.28
PUSH
Predecremento
POP
Postincremento
Datos
almacenados
Base de
la pila
1
2
1
Parte superior
de la pila (TOS)
T2.29
T2.30
Desbordamiento:
resultado
invlido
en
operaciones
aritmticas (V=1)
Bajo consumo: controlan los
relojes activos en el sistema
Interrupciones: habilita las
interrupciones enmascarables
(GIE=1)
Negativo: resultado negativo
en operaciones aritmticas
(N=1)
Cero: resultado nulo en
operaciones aritmticas (Z=1)
Acarreo: acarreo generado en
operaciones aritmticas (C=1)
T2.31
Constante
T2.32
T2.33
Destino
Origen
T2.34
Registro:
Operacin: el operando se encuentra en un registro (Rn) se puede utilizar
para mover datos desde/hasta registros
T2.35
Localizacin Origen
T2.36
Localizacin Destino
T2.37
Copia Dato
Origen
modificado
Destino
modificado
Dato
copiado
PC
modificado
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.38
Indexado:
Operacin: el operando se encuentra en la direccin a la que apunta un registro
(Rn) ms un determinado desplazamiento (X) se puede utilizar para mover
datos desde/hasta arrays en memoria
T2.39
Cdigo Instruccin
Localizacin Origen
T2.40
Cdigo Instruccin
Localizacin Destino
T2.41
Cdigo Instruccin
Copia Dato
Origen
modificado
Destino
modificado
Dato
copiado
PC
modificado
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.42
Simblico:
Operacin: el operando se encuentra en la direccin identificada por una
etiqueta se puede utilizar para mover datos desde/hasta posiciones de
memoria identificadas mediante etiquetas (es el modo de direccionamiento
utilizado para referenciar variables)
T2.43
Cdigo Instruccin
Localizacin Origen
T2.44
Cdigo Instruccin
Localizacin Destino
T2.45
Cdigo Instruccin
Copia Dato
Origen
modificado
Destino
modificado
Dato
copiado
PC
modificado
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.46
Absoluto:
Operacin: el operando se encuentra en la direccin identificada por una
determinada posicin se puede utilizar para mover datos desde/hasta
determinadas posiciones de memoria (es el modo de direccionamiento utilizado
para referenciar perifricos)
T2.47
Cdigo Instruccin
Localizacin Origen
T2.48
Cdigo Instruccin
Localizacin Destino
T2.49
Cdigo Instruccin
Copia Dato
Origen
modificado
Destino
modificado
Dato
copiado
PC
modificado
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.50
Indirecto:
Operacin: el operando se encuentra en la direccin a la que apunta un registro
(Rn) se puede utilizar para mover datos desde posiciones de memoria
identificadas mediante punteros
T2.51
Cdigo Instruccin
Localizacin Origen
T2.52
Cdigo Instruccin
Localizacin Destino
T2.53
Cdigo Instruccin
Copia Dato
Origen
modificado
Destino
modificado
Dato
copiado
PC
modificado
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.54
T2.55
Cdigo Instruccin
Localizacin Origen
T2.56
Cdigo Instruccin
Localizacin Destino
T2.57
Cdigo Instruccin
Copia Dato
Origen
modificado
Destino
modificado
Dato
copiado
PC
modificado
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.58
Inmediato:
Operacin: el operando se encuentra en la propia instruccin se puede
utilizar para introducir constantes en memoria/registros (es el modo de
direccionamiento utilizado para configurar perifricos)
T2.59
Cdigo Instruccin
Localizacin Origen
T2.60
Cdigo Instruccin
Localizacin Destino
T2.61
Cdigo Instruccin
Copia Dato
Origen
modificado
Destino
modificado
Dato
copiado
PC
modificado
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.62
Resumen
Ubicacin
Dato
Acceso
Dato
Modo
Direccionamiento
Sintaxis
Valor
Dato
Registro
Registro
Registro
Rn
Rn
Indexado
X(Rn)
MEM[Rn+X]
Indirecto
@Rn
MEM[Rn]
Indirecto +
@Rn+
MEM[Rn] ; Rn +
(1/2)
Simblico
label
MEM[label]
Absoluto
&label
MEM[label]
Inmediato
#value
value
Puntero
Memoria
Direccin
Instruccin
Instruccin
T2.63
5.3. Instrucciones
Caractersticas:
Instrucciones bsicas: 27 instrucciones bsicas con 3 formatos distintos:
Formato I: instrucciones con 2 operandos
Formato II: instrucciones con 1 operando
T2.64
Nemnico
Descripcin
T2.65
Formato III
(Saltos)
Formato II
(1 operando)
Formato I
(2 operandos)
5.3.1. Formato
T2.66
N = {0,+1,+2,+4,+8,-1} generador
de constantes: menor tamao (1
palabra menos) y menor tiempo de
ejecucin (1 ciclo menos)
Formato I
(2 operandos)
T2.67
N = {+4,+8} no generador de
constantes: igual tamao e igual
tiempo de ejecucin (ERRATA
DISEO CPU)
Formato III
(Saltos)
Formato II
(1 operando)
N = {0,+1,+2,-1} generador de
constantes: menor tamao (1
palabra menos) y menor tiempo de
ejecucin (1 ciclo menos)
Instrucciones ms
largas y ms lentas
Conclusiones:
Los modos de direccionamiento tienen una gran influencia en el tamao y
tiempo de ejecucin de las instrucciones. Si hay que optimizar el cdigo en
tamao y/o velocidad, es necesario elegir el modo de direccionamiento ms
eficiente segn cada caso (el modo de direccionamiento ms eficiente es el
direccionamiento a registro)
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.68
Formato III
(Saltos)
Formato II
(1 operando)
Formato I
(2 operandos)
5.3.3. Codificacin
T2.69
a) Formato I
T2.70
Cdigo de operacin:
T2.71
Modo de direccionamiento:
T2.72
Tamao:
T2.73
b) Formato II
T2.74
Cdigo de operacin:
T2.75
Modo de direccionamiento:
NOTA: Todos los modos de direccionamiento son vlidos para las instrucciones PUSH y CALL, y todos los modos de
direccionamiento excepto el inmediato son vlidos para el resto de instrucciones
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.76
Tamao:
T2.77
c) Formato III
T2.78
Cdigo de operacin:
T2.79
001
000 JNE/JNZ
001 JEQ/JZ
010 JNC
011 JC
100 JN
101 JGE
110 JL
111 JMP
T2.80
T2.81
d) Ejemplo
Loop
cont
0xC000
0x0200
Loop
SWPB
CMP.B
JNE
R10
@R10+,cont
Loop
0xC000
0xC001
0xC002
0xC003
0xC004
0xC005
0xC006
0xC007
0xC008
0xC009
Little endian
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.82
Loop
SWPB
CMP.B
JNE
Formato II
R10
@R10+,cont
Loop
T2.83
Loop
SWPB
CMP.B
JNE
R10
@R10+,cont
Loop
Formato II
T2.84
Loop
SWPB
CMP.B
JNE
R10
@R10+,cont
Loop
Formato II
T2.85
Loop
SWPB
CMP.B
JNE
Formato II
R10
@R10+,cont
Loop
0x108A
T2.86
Loop
SWPB
CMP.B
JNE
R10
@R10+,cont
Loop
Formato I
T2.87
Loop
SWPB
CMP.B
JNE
R10
@R10+,cont
Loop
Formato I
X = cont
PC
= 0x0200 0xC004
= 0x41FC
T2.88
Loop
SWPB
CMP.B
JNE
R10
@R10+,cont
Loop
Formato I
T2.89
Loop
SWPB
CMP.B
JNE
R10
@R10+,cont
Loop
Formato I
0x9AF0
0x41FC
T2.90
Loop
SWPB
CMP.B
JNE
R10
@R10+,cont
Loop
Formato III
T2.91
Loop
SWPB
CMP.B
JNE
R10
@R10+,cont
Loop
Formato III
T2.92
Loop
SWPB
CMP.B
JNE
R10
@R10+,cont
Loop
Formato III
0x23FC
T2.93
Loop
cont
0xC000
0x0200
Loop
SWPB
CMP.B
JNE
R10
@R10+,cont
Loop
0xC000
0x8A
0xC001
0x10
0xF0
0xC002
0xC003
0x108A
0x9AF0
0x41FC
0x23FC
0xC004
0xC005
0x9A
0xFC
0xC006
0x41
0xFC
0xC007
0x23
0xC008
0xC009
Little endian
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.94
5.3.4. Descripcin
Tipos de instrucciones:
Aritmticas
Lgicas
Bit
Datos
Control de flujo
Sistema
T2.95
a) Aritmticas
Realizan operaciones de clculo con los datos
T2.96
T2.97
T2.98
T2.99
T2.100
b) Lgicas
Realizan operaciones booleanas con los datos (a nivel de bit)
NOTA: Aunque la instruccin OR no est implementada, la instruccin BIS es equivalente (salvo en los bits de estado)
Microcontroladores - Grado en Tecnologas de Telecomunicacin - Curso 2013/2014
T2.101
T2.102
c) Bit
Realizan operaciones a nivel de bit con los datos
T2.103
T2.104
T2.105
T2.106
d) Datos
Realizan operaciones de modificacin de datos
T2.107
T2.108
T2.109
e) Control de flujo
Controlan el orden de ejecucin del cdigo
T2.110
T2.111
MUY IMPORTANTE
T2.112
T2.113
f) Sistema
Realizan operaciones especiales para controlar el sistema
T2.114
T2.115
T2.116
T2.117
T2.118