Extensión de BIOS

Anuncio
Hardware de la PC
Autor: Alejandro Furfaro
1
Origen de los Componentes de una PC:
La primer IBM PC
Autor: Alejandro Furfaro
2
0009FFFF
000A0000
000BFFFF
000C0000
000FFFFF
00100000
Vector de Int
Modo Real
BIOS Data
Area
Area de datos
y programas
640 Kbytes
00000000
1 Kbyte
Mapa de Memoria
FFFFFFFF
Autor: Alejandro Furfaro
3
Mapa de Memoria
0009FFFF
000A0000
000BFFFF
000C0000
Buffers de
Video Modos
Texto y
Gráfico
128 Kbytes
00000000
000FFFFF
00100000
FFFFFFFF
Autor: Alejandro Furfaro
4
Mapa de Memoria
0009FFFF
000A0000
Zona de
Extensión de
BIOS
000BFFFF
000C0000
000FFFFF
00100000
000EFFFF
000F0000
000FFFFF
POST
BIOS
192 Kbytes
000C0000
64 Kbytes
00000000
FFFFFFFF
Autor: Alejandro Furfaro
5
Mapa de E/S en una PC
Autor: Alejandro Furfaro
6
Hardware de Soporte de E/S
1
Programmable Interval Timer 8253 / 8254:
2
2
2
2
Timer 0: Dirección 40h. Base de tiempos del sistema. A la entrada
CLK0 se conecta un cristal de 1,193,180 MHz. Se programa para
generar por OUT0 un pulso cada 55 mseg. Este pin se conecta a la
línea IRQ0 del PIC 8259: así se genera una interrupción a dicho
intervalo, o como se refiere en la jerga, “genera 18,2 (¿?)
interrupciones por segundo”.
Timer 1: Dirección 41h. Se programa del mismo modo que Timer 0,
pero se lo utiliza para activar el sistema de refresco de memoria
DRAM. Para ello, OUT1 va conectado a la entrada DREQ0 del
8237. A partir del modelo AT 286 se utilizará un hardware dedicado
al refresco de memoria.
Timer 2: Dirección 42h. Se programa para generar a su salida una
señal cuadrada de 50% de duty cycle y OUT2 se conecta al
parlante del sistema.
Registro de comando y status. Dirección 43h.
Autor: Alejandro Furfaro
7
Hardware de Soporte de E/S
1Programable
Parallel Interface: 8255:
Fue inmediatamente reemplazado en el modelo siguiente (AT
286). Sin embargo los ports A y B, siguen presentes
2
2
2
Port A: Dirección 60h. La lógica de control de teclado al recibir los
códigos de las teclas los almacena en este port.
Port B: Dirección 61h. Sus líneas trabajan como salidas de control
individuales.
2 Envío de la salida del Timer0 al parlante de la PC
2 Envío de un pulso a la línea IRQ1 del PIC 8259 cada vez que se
recibe un código de tecla desde el teclado.
Port C: Dirección 62h. Cuatro de estas líneas se utilizan como
información de configuración del sistema. El sistema de
configuración en los modelos originales PC y PC-XT era sumamente
rudimentario (trabajaba con dip switches).
Autor: Alejandro Furfaro
8
Interrupciones en los procesadores
x86
Notas:
1 La instrucción
UD2 fue
introducida con el
procesador
Pentium Pro.
1 Los procesadores
IA-32 posteriores
al Intel386 no
generan esta
excepción.
1 Esta excepción
fue introducida en
el procesador
Intel486.
1 Esta excepción
fue introducida en
el procesador
Pentium y
mejorada en la
familia de
procesadores P6.
1 Esta excepción
fue introducida en
el procesador
Pentium III.
Autor: Alejandro Furfaro
9
Interrupciones en la PC
Autor: Alejandro Furfaro
10
Controlador de Interrupciones de
Hardware: el PIC 8259
INTA
D0 - D7
DATA
BUS
BUFFER
INT
LOGICA DE CONTROL
BUS
DE
DATOS
INTERNO
RD
IRQ0
WR
READ
WRITE
LOGIC
A0
IRQ1
IN
SERVICE
REGISTER
(ISR)
PRIORITY
RESOLVER
CS
INTERRUPT
IRQ2
REQUEST
REGISTER
(IRR)
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
CAS0
CAS1
CAS2
CASCADE
BUFFER
COMPARATOR
INTERRUPT MASK
REGISTER (IMR)
SP/EN
Autor: Alejandro Furfaro
11
Configuración del PIC 8259 en la PC
Timer
Timer Tick
Tick
Data Bus
Autor: Alejandro Furfaro
CAS2
CAS1
CAS0
SP/EN
0
Disponibles en los
buses de expansión
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
IRQ8
IRQ9
IRQ10
IRQ0
IRQ1
INT
IRQ2
IRQ3
INTA
IRQ4
IRQ5
8259
Slave IRQ6
A0h-A1h IRQ7
SP/EN
CAS2
Procesador
80x86
8042
Keyb Cont
CAS1
INTA
OUT
CAS0
INTR
8259
Master
IRQ0
20h-21h
IRQ1
INT
IRQ2
IRQ3
INTA
IRQ4
IRQ5
IRQ6
IRQ7
8254
40h-43h
Este 2do. 8259 fue
agregado a partir de
la PC-AT286
IRQ11
IRQ12
IRQ13
IRQ14
IRQ15
Vcc
Nombre de las líneas
del Sub-sistema de
Interrupciones de la PC
12
Asignación y Tipo de las IRQ’s
Autor: Alejandro Furfaro
13
Interrupción No Enmascarable (NMI)
80x86
Error de paridad en Memoria
Error de paridad en el Bus
Error del Coprocesador 8087
NMI
7 6 5 4 3 2 1 0
Port de E/S 0A0h
80x86
Error de paridad en Memoria
Error de paridad en el Bus
NMI
7 6 5 4 3 2 1 0
Port de E/S 070h
Autor: Alejandro Furfaro
14
Programación del PIC 8259
1
El 8259, presenta al procesador una interfaz de programación a través
de dos direcciones de E/S.
2
2
2
1
La primer PC tenía un solo PIC en las direcciones de port 20h y 21h.
La PC AT 286, incluyó un segundo PIC, ya que la PC original ya había
agotado la asignación de IRQ’s, y seguían apareciendo nuevos dispositivos:
Placas de red, placas de sonido, etc.
Este PIC es accesible en las direcciones de port A0h y A1h.
Palabras de Comando de Inicialización:
2
2
2
Son una secuencia de entre dos y cuatro bytes que envía el procesador al
8259A antes de comenzar la operación normal, a fin de configurarlo.
A los efectos del PIC 8259, la secuencia de Inicialización es una operación
atómica, es decir, que no puede dividirse
El 8259 detecta la secuencia de inicialización cuando recibe en la dirección
de port par (A0 = 0), una palabra con el bit D4=1. Palabras de Comando de
Operación: Una vez inicializado el 8259A, estas palabras le definen diversas
operaciones a realizar. Luego de la inicialización, se pueden enviar en
cualquier momento.
Autor: Alejandro Furfaro
15
Programación del PIC 8259
;;Inicialización
InicializaciónPIC
PIC#1
#1
mov
mov al,11h
al,11h ;ICW1:
;ICW1:IRQs
IRQsactivas
activaspor
porflanco,
flanco,Modo
Modocascada,
cascada,ICW4
ICW4Si.
Si.
out
20h,al
out 20h,al
mov
;ICW2:
mov al,8
al,8
;ICW2:INT
INTbase
basepara
parael
elPIC
PICN#1
N#1Tipo
Tipo8.
8.
out
out 21h,al
21h,al
mov
mov al,04h
al,04h ;ICW3:
;ICW3:PIC
PICN#1
N#1Master,
Master,tiene
tieneun
unSlave
Slaveconectado
conectadoaaIRQ2
IRQ2(0000
(00000100b)
0100b)
out
out 21h,al
21h,al
mov
al,01h
mov al,01h ;ICW4:
;ICW4:Modo
ModoNo
NoBuffered,
Buffered,Fin
Finde
deInterrupción
InterrupciónNormal,
Normal,procesador
procesador8086
8086
out
21h,al
out 21h,al
;;Antes
Antesde
deinicializar
inicializarel
elPIC
PICN#2,
N#2,deshabilitamos
deshabilitamoslas
lasInterrupciones
Interrupcionesdel
delPIC
PICN#1
N#1
mov
mov al,0FFh
al,0FFh:OCW1:
:OCW1:Set
SetooClear
Clearel
elIMR
IMR
out
out 21h,al
21h,al
;;Inicialización
InicializaciónPIC
PICNN#2
#2
mov
al,11h
;ICW1:
mov al,11h ;ICW1:IRQs
IRQsactivas
activaspor
porflanco,
flanco,Modo
Modocascada,
cascada,ICW4
ICW4Si.
Si.
out
0A0h,al
out 0A0h,al
mov
mov al,070h
al,070h;ICW2:
;ICW2:INT
INTbase
basepara
parael
elPIC
PICN#1
N#1Tipo
Tipo070h.
070h.
out
out 0A1h,al
0A1h,al
mov
mov al,02h
al,02h ;ICW3:
;ICW3:PIC
PICN#2
N#2Slave,
Slave,IRQ2
IRQ2es
esla
lalínea
líneaque
queenvía
envíaal
alMaster
Master(010b)
(010b)
out
0A1h,al
out 0A1h,al
mov
mov al,01h
al,01h ;ICW4:
;ICW4:Modo
ModoNo
NoBuffered,
Buffered,Fin
Finde
deInterrupción
InterrupciónNormal,
Normal,procesador
procesador8086
8086
out
out 0A1h,al
0A1h,al
Autor: Alejandro Furfaro
16
Power On Self Test
1
1
1
1
1
Antes de iniciar su operación el sistema verificará el correcto
funcionamiento de la CPU
Chequea si el contenido de la ROM es el correcto (realiza un
checksum del contenido de la ROM completa que en fábrica se
ajusta de modo que el resultado del check sea cero).
Detecta el tipo de adaptador de video instalado. Lo inicializa en
modo texto 80x25. Escribe en la BIOS DATA AREA los
principales datos de interés para el sistema que proporciona
este controlador.
Comprueba la correcta interacción con el 8042 y setea el modo
de trabajo con los diferentes ports de E/S que proporciona este
chip.
Si el Timer 1 funciona correctamente se lo programa para
generar un pulso al final de la cuenta, cuenta cíclica, y duración
de la misma 15 mseg.
Autor: Alejandro Furfaro
17
Power On Self Test
Comprueba el correcto funcionamiento para el canal de DMA 0.
7. Si los test descriptos indican que el Timer 1 y el canal 0 de
DMA funcionan correctamente, entonces se dispara el refresco
de memoria.
8. Comprueba el 8259 y lo inicializa con los valores default de los
vectores de Interrupción. A los que usa, los apunta a las
rutinas de la ROM correspondientes.
9. Cuenta la memoria RAM y comprueba su funcionamiento
10. Una vez finalizada la cuenta de memoria, chequea los restantes
timers y canales de DMA. Si funcionan correctamente los
inicializa de acuerdo a la forma en la que van a trabajar cada
uno de ellos.
11. Funcionando correctamente el teclado y el timer tick, habilita
sus interrupciones en el 8259
6.
Autor: Alejandro Furfaro
18
Power On Self Test
12.
13.
14.
15.
16.
Testea el funcionamiento de las unidades de disco flexible y
rígido. Una vez comprobado las inicializa, y escribe los
resultados y principales parámetros en la BIOS DATA AREA.
Chequea si existen ports serie. Inicializa a los que encuentra y
guarda resultados en BIOS DATA AREA.
Chequea si existen ports paralelo. Inicializa a los que
encuentra y guarda resultados en BIOS DATA AREA.
Establece si existen extensiones BIOS. Esto es: La ROM BIOS
de las PC provee un camino para integrar adaptadores de E/S
con su propia ROM on-board.
Llama a la rutina Bootstrap loader para la carga del sistema
operativo
Autor: Alejandro Furfaro
19
Detección de extensiones BIOS
1
1
1
1
1
1
1
1
El POST busca extensiones de BIOS.
El rango de direcciones de memoria en las que se pueden
mapear estas ROMs va desde la C0000h hasta la EFFFFh.
Se busca dentro de este rango cada 2K una firma fija e igual
a 55AAh. Si la encuentra asume que en esa página de 2k
comienza una extensión de BIOS.
Si el POST detecta alguna ROM adicional, le transfiere
temporariamente el control. La extensión de BIOS:
Inicializará el hardware para el que fue diseñada
Realizará, del mismo modo que el POST de la ROM del
sistema) un checksum, cuyo resultado debe ser 0 para que la
ROM se considere de contenido válido.
Interceptará las interrupciones que necesite, enganchándose
a sí misma en el sistema.
Devolverá al POST el control del sistema (RET) dejando al
hardware asociado a la extensión BIOS, listo para su uso.
Autor: Alejandro Furfaro
20
Extensiones BIOS: Mapa de Memoria
00000000
0009FFFF
000A0000
000BFFFF
000C0000
000FFFFF
00100000
000C0000
2Kbytes
2Kbytes
Extensión de
BIOS
000EFFFF
000F0000
POST
000FFFFF
BIOS
Encabezado
Código y
datos de la
extensión
Formato del encabezado de la de extensión BIOS:
FFFFFFFF
Autor: Alejandro Furfaro
21
Arranque del sistema operativo
1 La
rutina Boostrap Loader del BIOS solo se limita a
2 Leer
el primer sector físico del disco.
2 Cargar los 512 bytes en memoria RAM (0000h:7C00h)
2 Saltar al primer byte (debe haber allí una instrucción
válida)
1 La
unidad de disco que lee es la que tiene
configurada el equipo en la secuencia de arranque.
1 En ese sector debe residir un programa que sepa
cargar al Sistema Operativo.
2 Debe
leer del disco los archivos necesarios para bajar a
la memoria. Para ello deben conocer la forma en que
está organizada la información en el disco
2 Debe descargarlos en memoria y en algún momento
transferirles la ejecución.
Autor: Alejandro Furfaro
22
Acceso Directo a Memoria (DMA)
CPU
DREQ0
HRQ
HLDA
HLDA
Address
Bus
HOLD
DACK0
DREQ1
DACK1
Controlador
de DMA
(8237A)DREQ
DRAM
2
DACK2
Address
Bus
DREQ3
DACK3
Device
Device 1
1
Device
Device 2
2
Device
Device 3
3
Device
Device 4
4
Data Bus
Autor: Alejandro Furfaro
23
Subsistema de DMA en la PC y PCXT
5Vcc
RAS
OUT 1
CL
A0
A1
A2
A3
A4
A5
A6
A7
DREQ0
Q
74LS74
DREQ1
DREQ2
DREQ3
DREQ 1
DREQ2
DREQ3
HRQ
HLD
A
RDY TO DMA
CLK
RES
Y4
RAS
3
NC
DACK0
DACK1
DACK2
DACK3
EOP
AEN
XIOR
XIO W
XMEM R
XMEMW
IOR
IOW
MEMR
MEMW
D0
Q0
D1
Q1
D2
Q2
Q3
D3
WA
WB74LS670
RB
RA
ADSTB
A16
A17
A18
A19
Bus
74LS243
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
de
Bus de Control
8288
RD W
GND
DMA AEN
WRT DMA PG RG
74LS32
Fig. 6. Circuito de Control de DMA en una IBM PC XT
Autor: Alejandro Furfaro
2
74S08
“ Buffereado”
IO
IOW
R
MEMR
MEMW
AEN
RAS
74S08
Datos
Señales de Status
del 8088
74LS138
S2
8237A
1
2G
EOP
G2A
G2B
S0
S1
CS
Y0
A
B
C
1G
DACK0
DACK1
DACK2
DACK3
de
XA9
HLDA
RDY
CL
K
RES
Bus
AEN
XA5
XA6
XA7
XA8
HRQ
74LS24
4
RAS
RAS
A0
A1
A2
A3
A4
A5
A6
A7
Direcciones
8253
0
Al Slot ISA del Sistema
CL
Bus de Direcciones “ Buffereado”
D S
XD0
XD1
XD2
XD3
XD4
XD5
XD6
XD7
OE
74LS37
3
A8
A9
A10
A11
A12
A13
A14
A15
LE
24
Subsistema de DMA: Direcciones de
E/S
DMA Page Registers:
El 8237 solo direcciona 64
Kbytes (bus de address de 16
bits)
En la XT, se agregan estos
Registros para llegar al Mbyte de
espacio de direccionamiento. Por
lo tanto son registros de 4 bits.
En las AT286 se extendieron a 8
bits, ya que el 80286 agrega al
bus de direcciones las líneas
A20 a A23
Autor: Alejandro Furfaro
25
Subsistema de DMA a partir de la PC
AT286
Autor: Alejandro Furfaro
26
Subsistema de DMA a partir de la PC
AT286
Autor: Alejandro Furfaro
27
Subsistema de DMA PC AT286:
Limitaciones
Este subsistema introdujo mejoras en la performance de
una PC XT con un disco rígido de 10 Mbytes.
1 En las máquinas modernas con discos de 100 Gbytes, la
combinación 8237 mas Bus ISA, se transformaría en un
cuello de botella.
1 Los chipsets que acompañan a los procesadores Pentium,
aún los mas modernos siguen incluyendo la lógica
equivalente a este subsistema (8237 like). La única razón:
COMPATIBILIDAD. A este montaje se lo denomina DMA de
terceras partes.
1 las PCs modernas utilizan DMA de primera parte. Se refiere
a controladores de dispositivos de E/S (como disco por
ejemplo) capaces de requerir por si solos el DMA y
manejarlo. Este concepto se conoce como Bus Mastering y
en él se basa la tecnología Ultra DMA (UDMA) de los
controladores
IDE para discos rígidos.
Autor:
Alejandro Furfaro
28
1
Alternativas al Subsistema de DMA
legacy
E/S Programada (PIO)
‰
‰
‰
Esquema de acceso a la E/S mediante instrucciones de E/S del procesador (IN,
OUT, INS, y OUTS) y algún hardware adicional. Arranca para Bus ISA.
De acuerdo a la implementación se consiguieron diferentes velocidades de
acceso. Estas se conocen como Modos de E/S Programada o PIO Modes.
La solución resultó mas que aceptable para los primeros discos rígidos de
tecnología IDE/ATA, de modo que estos PIO modes fueron incluidos en las
respectivas especificaciones de los estándares ATA-1 y ATA-2.
Cantidad de nano segundos para
que se lleve a cabo la transferencia
Autor: Alejandro Furfaro
1/Tiempo de Ciclo
29
Subsistemas de DMA modernos
1
Bus Mastering
2
2
2
1
Para los discos rígidos el método PIO, demanda demasiada CPU.
El Bus PCI aumenta las velocidades de transferencia, y permite acceder al
bus del sistema de manera transparente al procesador. Por este motivo se
desarrollo el método de Bus Mastering para reemplazar al PIO en
transferencias masivas de datos de modo de liberar al procesador
Para habilitar Bus Mastering en un sistema, se requiere que el hardware del
chipset, y el BIOS, lo soporten, que el dispositivo periférico soporte Bus
Mastering, y trabajar con un sistema operativo de 32 bits: Windows 2000,
Windows XP, Linux, etc. En algunas ocasiones se requiere la instalación de
un driver.
Ultra DMA
2
2
Esta tecnología corresponde al concepto de DMA de primera parte, y se
implementó en los discos rígidos en reemplazo de la PIO.
Nos referiremos en mas detalle al abordar el tema de Discos Rígidos, ya que
no es un control de DMA abierto a cualquier periférico que lo requiera sino
que se encuentra embebido en el hardware del controlador de disco y es
exclusivo para éste.
Autor: Alejandro Furfaro
30
Teclado
Un Microcontrolador
se encarga del barrido
de la matriz de teclas
con la implementación
del control de
antirrebote.
Una vez detectada la
pulsación o liberación
de una tecla se
transmite por línea
serie a la PC el código
de la misma.
¿Qué código?
Cada tecla se identifica con un código de acuerdo con su posición dentro
del layout del teclado. En el caso de la tecla ESC su código es 1.
Este valor se denomina SCAN CODE (o código de rastreo en algunas
traducciones)
Autor: Alejandro Furfaro
31
Teclado
MAKE
BREAK
Autor: Alejandro Furfaro
El SCAN CODE se transmite
cada vez que se pulsa una tecla
acción conocida como MAKE,
razón por la cual se denomina
MAKE CODE
Cuando se libera la tecla pulsada
(acción conocida como BREAK),
se vuelve a transmitir el SCAN
CODE de la tecla a la PC para
generar una segunda
interrupción por IRQ1.
La PC detecta tanto la pulsación
como la liberación de cada tecla.
De otro modo no se podría por
ejemplo actuar ante
CTRL+ALT+DEL
Para diferenciar la acción de
BREAK de un MAKE el código
que se transmite es el mismo
SCAN CODE pero con el MSB
en 1. Este código se denomina
BREAK CODE
32
Controlador de Teclado
A partir de la AT 286 del lado PC un microcontrolador 8042 es quien se
encarga de recibir el Make o el Break code. Es un miembro especial de la
familia MCS- 51, denominado Universal Peripheral Interface:
Dispone de una interfaz para que sus propios ports integrados sean
accesibles desde el exterior por otro microprocesador. En este caso ese
microprocesador es el de la PC.
Recibe los datos desde el teclado por una interfaz serie, chequea paridad,
traduce los scan codes y los deja disponibles en un port interno que visto
desde el exterior se accede en la dirección 60h del mapa de E/S de la
PC.
Registros accesibles desde la PC
1 Registro de status (Read) o comandos (Write). Se accede en la
dirección 64h de E/S de la PC
1 Output Buffer (Read only), para leer el código de la tecla pulsada o
liberada. Se accede en la dirección 60h de E/S
1 Input Buffer (Write only). En la dirección 64h se escribe un comando al
controlador (Command Register, visto anteriormente). En la dirección
60h se escribe un dato, que será enviado al teclado.
Autor: Alejandro Furfaro
33
Controlador de Teclado
Autor: Alejandro Furfaro
34
BIOS Data Area: Bytes de Estado de
teclas modificadoras
Address 0040:0017
Address 0040:0018
Autor: Alejandro Furfaro
35
Rutina de Atención de Int. de Teclado
Detección
Detección de
de SCAN
SCAN
SI
Actualiza
Actualiza Bytes
Bytes de
de
Estados
Estados en
en BIOS
BIOS Data
Data
Area
Area
NO
Analiza
Analiza estado
estado de
de Teclas
Teclas
Modificadoras
Modificadoras
Es
Es una
una Tecla
Tecla
Modificadora?
Modificadora?
NO
Es
Es un
un
Break
Break Code?
Code?
SI
Es
Es un
un
Break
Break
Code?
Code?
SI
SI
Es
Es la
la Tecla
Tecla
INS?
INS?
Traduce
Traduce el
el Scan
Scan Code
Code aa
ASCII
ASCII desde
desde una
una Tabla
Tabla
Es
Es un
un ASCII
ASCII
Extendido?
Extendido?
NO
NO
SI
Escribe
Escribe ASCII
ASCII
Extendido
Extendido en
en el
el buffer
buffer
de
de teclado
teclado
NO
Escribe
Escribe Scan
Scan Code
Code yy ASCII
ASCII
en
en el
el Buffer
Buffer de
de Teclado
Teclado
Autor: Alejandro Furfaro
FIN
FIN
36
BIOS Data Area: Buffer circular de
teclado
Autor: Alejandro Furfaro
37
Reloj en Tiempo Real
A partir de la AT 286, se incluyó en el diseño un chip de Motorola con un
Real Time Clock y una RAM CMOS de 64 bytes: El MC146818.
Los registros internos de la RAM CMOS, se detallan a continuación:
Registros del MC 146818
00
01
Segundos
Segundos de alarma
10
11
Byte de tipo de drive de disquete (A y B)
Reservado
02
03
04
05
Minutos
Minutos de alarma
Horas
Horas de alarma
12
13
14
15
Byte de tipo de hard disk (C y D)
Reservado
Byte de equipo
Byte bajo de memoria base
06
07
08
09
Día de la semana
Fecha del Mes
Mes
Año
16
17
18
19-2D
Byte alto de memoria base
Byte bajo de expansión de memoria
Byte alto de expansión de memoria
Reservado
0A
0B
0C
0D
Status Register A
Status Register B
Status Register C
Status Register D
2E-2F
30
31
32
Checksum del CMOS (registros 10h a 2Fh)
Byte bajo de expansión de memoria
Byte alto de expansión de memoria
Byte de siglo de fecha
0E
0F
Byte de estados de diagnóstico
Byte de estado de Shutdown
33
34-3F
Flag de información (seteado durante power on)
Reservado
Autor: Alejandro Furfaro
38
Reloj en Tiempo Real
1
1
1
1
Al tener 64 registros internos, utiliza el modo de direccionamiento
indirecto para evitar consumir demasiadas direcciones de E/S.
Se muestra al procesador como dos ports:
Uno de direcciones (en donde escribimos el número del registro interno
con el cual queremos transaccionar),
y otro de datos (en donde realizamos la transacción).
READ:
mov al,Memory_location
out 70h, al
in al,71h
Autor: Alejandro Furfaro
WRITE:
mov
out
mov
out
al,Memory_location
70h,al
al,New_contents
71h,al
39
Reloj en Tiempo Real
Status Register A
7
6
UIP
UIP
5
4
3
DV
DV0-2
0-2
Update
Update in
in progress.
progress.
2
RS
RS3-0
3-0
‰
‰1:
1: Indica
Indica ciclo
ciclo de
de
actualización
actualización del
del reloj
reloj en
en
proceso.
proceso.
‰
‰0:
0: Indica
Indica fecha
fecha yy hora
hora listas
listas
para
para su
su lectura
lectura
Autor: Alejandro Furfaro
1
0
RS
: Rate Selection bits.
RS3-0
3-0: Rate Selection bits.
Seleccionan
Seleccionan el
el divisor
divisor de
de
frecuencia
frecuencia de
de salida.
salida. El
El sistema
sistema
inicializa
inicializa este
este valor
valor en
en 0110.
0110.
Esto
Esto selecciona
selecciona una
una señal
señal
cuadrada
cuadrada de
de salida
salida de
de 1024
1024 Hz,
Hz,
oo lo
lo que
que es
es igual
igual un
un período
período de
de
0,976562
0,976562 mseg.
mseg.
DV
:
DV2-0
2-0:
Divisor
Divisor de
de 22
22 etapas
etapas que
que permite
permite
setear
setear la
la frecuencia
frecuencia de
de la
la base
base de
de
tiempos
tiempos del
del sistema.
sistema. El
El power
power on
on self
self
test
test lo
lo coloca
coloca en
en 010
010 de
de modo
modo de
de
establecer
establecer 32,768
32,768 Khz.
Khz.
40
Reloj en Tiempo Real
Status Register B
7
6
5
4
3
2
1
0
SQWE DM
Set
24/12DSE
Set PIE
DM 24/12
DSE
PIE AIE
AIE UIE
UIESQWE
Update-Ended
Update-Ended Interrupt
Interrupt Enable.
Enable. Habilita
Habilita (activo
(activo alto)
alto) el
el
envío
envío de
de interrupción
interrupción cada
cada vez
vez que
que actualiza
actualiza fecha
fecha yy hora.
hora.
Alarm
Alarm Interrupt
Interrupt Enable.
Enable. Activo
Activo alto.
alto. Habilita
Habilita el
el envío
envío de
de una
una
interrupción
interrupción en
en la
la fecha
fecha yy hora
hora de
de alarma
alarma programada.
programada.
Periodic
Periodic Interrupt
Interrupt Enable.
Enable. Activo
Activo alto.
alto. Habilita
Habilita el
el envío
envío de
de una
una
señal
del
señal de
de interrupción
interrupción aa períodos
períodos establecidos
establecidos en
en los
los bits
bits RS
RS3-0
3-0 del
Status
Status Register
Register A.
A.
0:
0: Se
Se actualiza
actualiza el
el reloj
reloj aa razón
razón de
de una
una cuenta
cuenta por
por segundo.
segundo. 1:
1: Se
Se detiene
detiene la
la
actualización
actualización permitiendo
permitiendo inicializar
inicializar los
los 14
14 registros
registros sin
sin interrupción
interrupción hasta
hasta
que
que vuelva
vuelva aa ponerse
ponerse en
en ‘0’.
‘0’.
Autor: Alejandro Furfaro
41
Reloj en Tiempo Real
7
Status Register B
6
5
4
3
2
1
0
SQWE DM
Set
24/12DSE
Set PIE
DM 24/12
DSE
PIE AIE
AIE UIE
UIESQWE
Daylight
Daylight Saving
Saving Enable.
Enable. El
El POST
POST lo
lo inicializa
inicializa en
en 0,
0,
indicando
indicando que
que no
no está
está habilitado
habilitado
0:
0: Modo
Modo 12
12 hs.
hs. 1:
1: Modo
Modo 24hs.
24hs. (El
(El POST
POST lo
lo inicializa
inicializa de
de este
este
modo)
modo)
Date
Date Mode.
Mode. 0:
0: Fecha
Fecha yy hora
hora se
se actualizan
actualizan en
en BCD
BCD (El
(El POST
POST lo
lo
inicializa
inicializa de
de este
este modo).
modo). 1:
1: Fecha
Fecha yy hora
hora se
se actualizan
actualizan en
en Binario.
Binario.
Square
Square Wave
Wave Enable.
Enable. Activo
Activo alto.
alto. Habilita
Habilita la
la generación
generación de
de una
una onda
onda
cuadrada
cuadrada aa intervalos
intervalos establecidos
establecidos en
en el
el Status
Status Register
Register A.
A.
Autor: Alejandro Furfaro
42
Reloj en Tiempo Real
7
6
Status Register C
5
4
3
2
1
0
PF
PF AF
AF UF
UF
Bits
Bits Read
Read only,
only, que
que reflejan
reflejan el
el
estado
estado de
de los
los bits
bits PIE,
PIE, AIE,
AIE, yy
UIE
UIE del
del Status
Status Register
Register BB
Status Register D
Valid
Valid RAM
RAM and
and Time.
Time.
Indica
Indica con
con un
un 00 que
que el
el
sistema
sistema no
no tiene
tiene
alimentación
alimentación suficiente
suficiente
(batería
(batería de
de Litio
Litio baja)
baja)
Autor: Alejandro Furfaro
7
6
5
4
3
2
1
0
VRT
VRT
43
Descargar