0% encontró este documento útil (0 votos)
27 vistas32 páginas

Arquitectura y Memoria del MSC51

El documento presenta un seminario sobre la familia MSC51 de microcontroladores, destacando su arquitectura, memoria y características clave. Se discuten las variantes disponibles, la interfaz eléctrica y el acceso a memoria, así como el juego de instrucciones y operaciones lógicas y aritméticas. Además, se mencionan recursos adicionales para practicar y profundizar en el tema.

Cargado por

gia01710
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas32 páginas

Arquitectura y Memoria del MSC51

El documento presenta un seminario sobre la familia MSC51 de microcontroladores, destacando su arquitectura, memoria y características clave. Se discuten las variantes disponibles, la interfaz eléctrica y el acceso a memoria, así como el juego de instrucciones y operaciones lógicas y aritméticas. Además, se mencionan recursos adicionales para practicar y profundizar en el tema.

Cargado por

gia01710
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Sistemas Electrónicos con μP

Seminario 4-a
Familia MSC51: CPU

J. Soret
DIE-UVEG
26/2/07

1
Contenido
„ Un ejemplo de mP real, orientado a aplicación
„ Repaso sobre todo lo referente a la familia
MSC51
‰ Arquitectura
‰ Memoria
‰ Juego de instrucciones
‰ Periféricos, siguiente tema
„ Se presenta la gama de ATMEL
‰ Muy recomendable: [Link]

2
Características
„ Memoria y periféricos en el mismo CI
„ Microcontrolador (mC): procesador de
aplicación específica (ASIP) orientado al
control (operaciones booleanas)
„ MSC-51: referente obligatorio en el mundo
de los mC
„ Arquitectura Harvard (memoria separada de
datos y programa)

3
Características
„ CPU de 8 bits.
„ Procesador booleano.
„ 4 puertos bidireccionales de 8 bits.
„ 128 bytes de RAM más 26 registros de funciones especiales (256
bytes en el 8052).
„ 4 KB de memoria de programa interna (8 Kbytes en el 8052).
„ 64 KB de espacio de memoria de programa externa.
„ 64 KB de espacio de memoria de datos externa.
„ 2 temporizadores/contadores de 16 bits (3 en el 8052).
„ Puerto serie full-duplex.
„ 5 fuentes de interrupción (6 en el 8052).
„ Oscilador integrado.

4
Familias
„ Muchos fabricantes, muchas variantes
8051 8031 8751 80C31 87C51 8052 8032 8752 83C152 83C51 80C537 87C57

4KB 4KB 8KB 16KB


ROM 4KB 8KB 8KB 8KB
EPROM EPROM EPROM EPROM

RAM 128 128 128 128 128 256 256 256 256 256 256 256

XROM 64KB 64KB 64KB 64KB 64KB 64KB 64KB 64KB 64KB 64KB 64KB 64KB

XRAM 64KB 64KB 64KB 64KB 64KB 64KB 64KB 64KB 64KB 64KB 64KB 64KB

FREC 12MH 12MH 12MH 16MH 12MH 12MH 12MH 12MH 16MH 16MH 16MH 16MH

4 4 4
T/C 2 2 2 2 2 3 3 3 2
PCA PCA PCA

UART
SERIE UART UART UART UART UART UART UART UART CSMA/ UART UART UART
CD

I/O 32 16 32 16 32 32 16 32 40 32 68 32

INT 5 5 5 5 5 6 6 6 11 7 7 7

5
Familias
„ Muy interesante la gama de Atmel

6
Familias
„ Otros fabricantes
‰ ST ([Link])
„ uPSD (uPSD32xx, uPSD33xx)

‰ Analog Devices ([Link])


„ Microconverters (ADUC8xx)

‰ Texas Instruments ([Link])


„ (MSC12xx)

7
Interfaz eléctrico
Pines Funciones
Puerto 0 (P0): Entrada/salida bidireccional, puede ponerse en alta impedancia.
(patillas 32 a 39) Direcciones bajas en acceso a memoria externa.
Datos en acceso a memoria externa.
Entrada/salida de código durante la programación.
Puerto 1 (P1): Entrada/salida bidireccional.
(patillas 1 a 8) Direcciones bajas durante la programación.
Puerto 2 (P2): Entrada/salida bidireccional.
(patillas 21 a 28) Direcciones altas en acceso a memoria externa.
Direcciones altas durante la programación.
Puerto 3 (P3): Entrada/salida bidireccional.
(patillas 10 a 17) P3.0 RXD entrada puerto serie.
P3.1 TXD salida puerto serie.
P3.2 INT0 interrupción externa 0.
P3.3 INT1 interrupción externa 1.
P3.4 T0 entrada temporizador 0.
P3.5 T1 entrada temporizador 1.
P3.6 WR escritura en memoria de datos externa.
P3.7 RD lectura en memoria de datos externa.
ALE/PROG: (Address Latch Enable)Enclavar direcciones bajas.
(patilla 30) Pulsos de programación de la EPROM.
PSEN: (Progam Store Enable) autoriza la lectura en memoria externa de
(patilla 29) programa.
EA/VPP: (External Access)
(patilla 31) '1' se ejecuta el programa de la EPROM para PC<0FFF.
'0' se ejecuta el programa en memoria externa (modo μP).
Tensión de programación de la EPROM.
RESET: Se inicializa el sistema si vale +5 V durante dos ciclos de máquina (24
(patilla 9) pulsos del reloj).
XTAL: Conexión del resonador del reloj.
(patillas 18 y 19) 8

8
Foto de familia: ¿quién es quién?

AT89C51 AT89C2051 AT89C52

9
Diagrama de bloques

10

10
Arquitectura

11

11
Estructura de la memoria
„ Espacios para datos y
programa, separados
„ Memoria de programa
(ROM):
‰ Modo mP: EA= 0 ⇒
64kB externa
‰ Modo mC: EA= 1 ⇒ 4kB
interna + 60kB externa
„ Memoria de datos
(RAM):
‰ 256B interna + 64kB
externa OJO!!!! Muy importante asimilar bien
la estructuración de la memoria
12

12
Estructura de la memoria
„ Reflexiones:
‰ La dirección 8EH,
¿a que área de
memoria pertenece?
‰ ¿Cómo es posible
utilizar las mismas
direcciones en
distintas memorias?

OJO!!!! Muy importante asimilar bien


la estructuración de la memoria
13

13
Memoria de programa
„ Estructura predefinida: vectores de
interrupción (ver tema siguiente)

14

14
Acceso al programa en memoria externa

„ Funcionamiento como mP
(EA=0), implementa bus de
sistema:
‰ Bus de datos: P0
‰ Bus de direcciones P0 y P2
‰ Bus de control: ALE, PSEN
„ Datos multiplexados con
parte baja del bus de
direcciones: usar latch
„ Programa en memoria
externa, normalmente
ROM: hasta 64Kb

15

15
Acceso a datos en memoria externa
„ Funcionamiento como mP,
implementa bus de sistema:
‰ Bus de datos: P0
‰ Bus de direcciones P0 y P2
‰ Bus de control: RD, WR
„ Datos multiplexados con parte
baja del bus de direcciones:
usar latch
„ Acceso memoria RAM interna
o externa compatible, gracias
a modos de direccionamiento
y juego de instrucciones
¿Cuál es el tamaño de esta RAM?

16

16
Acceso a datos en memoria interna
„ Memoria de usuario:
‰ 128 bytes bajos,
direccionamiento dir/indir
‰ Gama alta (8052, etc) 128
bytes altos,
direccionamiento sólo indir
„ Registros de funciones
especiales (SFR):
‰ 128 bytes altos,
direccionamiento sólo dir
‰ Para control y estado de
registros y periféricos

17

17
Estructura de la memoria interna
„ Banco de registros (0-1Fh):
‰ 4 bancos x 8 registros
‰ Banco activo seleccionable
en PSW
‰ Nemotécnicos: R0..R7
‰ R0 y R1, para dir. indirecto
„ Área direccionable bit a bit
(20h-2Fh)
‰ Uso: control de eventos
‰ Instrucciones de bit
‰ También instrucciones de
byte
„ Área de trabajo (30-7Fh)
18

18
128 bytes más altos de RAM
„ SFR, si se accede con
direccionamiento directo:
‰ Control de periféricos y
acceso a algunos registros
(Acc, etc.)
‰ Los de configuración,
direccionables bit a bit
„ Para μC con 256b RAM
([Link]. 8052), si se accede
con direccionamiento
indirecto, área de uso
convencional.

19

19
PSW: palabra de estado del programa
„ Palabra de estado: contiene flags que indican la
calidad en el resultado de las operaciones de la ALU:
‰ Paridad (P), Carry (CY), Aux. carry (AC), Overflow (OV)
„ Además, selección de banco de reg. activo (RB0,
RB1)
„ Resto, libres

20

20
Juego de instrucciones. Modos de
direccionamiento
„ Código CISC (69 instrucciones, 256 opcodes)
„ ¿Cómo pasar los operandos al opcode?
‰ Directo MOV A, 23h
‰ Directo a registro MOV R1, 23h
‰ Indirecto a registro MOV A, @R1
‰ Inmediato MOV A, #23h
‰ Implícito INC A
‰ Indexado (mem. prog.) MOVC A, @A+DPTR

21

21
Operaciones lógicas

22

22
Operaciones aritméticas

„ Ejemplo: convertir a MOV B, # 10


DIV A, B
BCD SWAP A
ADD A, B

23

23
Operaciones de transferencia

„ Operaciones de transferencia con memoria interna

24

24
Operaciones de transferencia
„ Operaciones de
transferencia con memoria
externa:
‰ Datos: MOVX y dir. indirecto
(8b ó 16b)
‰ Programa: MOVC y dir.
indexado
„ Útil para búsqueda en tablas:

MOV A, ENTRY__NUMBER
CALL TABLE
(…..)
TABLE: MOVC A, @A + PC
RET

(¿Qué tamaño puede tener la “TABLE”?. O,


dicho de otro modo, ¿qué valores podría
tomar “ENTRY_NUMBER”?)
25

25
Operaciones booleanas
„ Típica herramienta μC
„ RAM 128 bits + SFR 128
bits direccionables
„ Ejemplos:
‰ Mover flag a puerto:
MOV C, FLAG
MOV P1.0, C
‰ C = [Link].bit2:
MOV C, bit1
JNB bit2, OVER
CPL C
OVER: (…….)

26

26
Saltos
„ Condicionales o incondicionales
„ Tres tipos:
Bytes Rango (ref. PC)
‰ SJML 2 128,-127
‰ LJMP 3 64K
‰ AJML 2 2K sig.

27

27
Saltos
„ Ejemplos:
‰ Implementar “case_of”:
MOV DPTR, # JUMP__TABLE ;Inicializa base
MOV A,INDEX__NUMBER ;Índice
RL A ;Multiplica INDEX por 2
JMP @A+ DPTR ;Salto al “case”
JUMP__TABLE:
AJMP CASE__0
AJMP CASE__1
AJMP CASE__2

‰ Bucles autodecrementables:
MOV COUNTER,#10
LOOP: (begin loop)
(..)
(end loop)
DJNZ COUNTER, LOOP ;¿Cuántas iteraciones hace?

28

28
Temporización

„ Necesario una señal CLK que


haga evolucionar la máquina de
estados de la Unidad de Control
„ μC tiene oscilador interno,
necesita xtal de cuarzo o
resonador cerámico.
„ Puede funcionar con oscilador
externo

29

29
Ciclos máquina
„ EL fabricante define el ciclo
máquina como 6 estados
(S1..S6) de dos fases (P1,
P2)
‰ Búsqueda opcode en S1

‰ Búsqueda 2º byte en S4

‰ Ejecución termina en S6

„ Total: 12 pulsos CLK


„ Ejemplos (en la figura):
‰ INC A

‰ ADD A,#data

‰ INC DPTR

‰ MOVX

30

30
Ciclos de bus, acceso a [Link].
„ Cronogramas para acceso a programa en memoria
externa

31

31
Recapitulando
„ Hemos repasado los aspectos más
relevantes de la CPU-51: arquitectura, mapa
de memoria y, juego de instrucciones
„ Falta ver los periféricos más frecuentes
„ Sin embargo ya podemos PRACTICAR:
‰ [Link]
‰ [Link]
‰ [Link]
‰ [Link]
…y muchos sitios más.

32

32

También podría gustarte