• Nenhum resultado encontrado

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 7

N/A
N/A
Protected

Academic year: 2021

Share "Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 7"

Copied!
6
0
0

Texto

(1)

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa

Aula Teórica 7

Sumário:

A memória CMOS e o relógio de tempo real. Leitura Recomendada:

Capítulo 18 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Capítulo 7 - Peter Norton, Peter Aitken e Richard Wilton, PC Programmer´s Bible, Microsoft Press.

CMOS

Todos os PC´s com CPU 80286 ou superior têm 64 bytes de memória especial que é mantida por uma bateria, de forma a que a informação lá guardada não desapareça quando o PC está desligado. Esta memória é chamada CMOS (Complementary Metal Oxide Semiconductor) ou NVR (non-volatile RAM). Este espaço de armazenamento permanente é usado para manter um relógio de tempo real e alguma informação sobre a configuração do sistema e seus periféricos (tipo de disco rígido, quantidade de memória RAM, etc.). Durante o arranque da máquina a BIOS lê a informação da memória CMOS e utiliza-a para determinar a configuração actual, a data e a hora do sistema.

Figura nº 1 – Estrutura física da CMOS.

A CMOS-RAM e o relógio de tempo real estão ambos integrados num chip, originalmente o MC146818. Os 64 bytes da CMOS podem ser acedidos individualmente. Os primeiros 14 bytes (endereços 00H a 0DH) são reservados para a data e hora, e para os registos de estado e controlo do relógio de tempo real. Os restantes 50 bytes contêm informação sobre a configuração do PC.

Os 64 bytes da CMOS não são mapeados no espaço de endereçamento normal. Eles são acedidos através de dois portos, nos endereços 70H e 71H. É preciso indicar o byte que se pretende aceder no porto 70H e depois ler/escrever nessa posição através do porto 71H.

• Relógio de tempo real

O relógio de tempo real é independente do processador e de todos os outros chips e mantém a hora e data actualizadas em background (mesmo quando o PC está desligado da corrente).

(2)

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa

Figura nº 2 – Parte da CMOS dedicada ao relógio de tempo real.

Quando se faz o boot do sistema, a BIOS lê os dados do relógio de tempo real da CMOS e converte-os no correspondente número de ticks, valor que é usado para inicializar o contador armazenado no endereço 0040H:006CH, que é depois mantido pela interrupção 08H.

Os registos de estados do relógio de tempo real permitem saber o estado do relógio e da bateria e realizar configurações no relógio.

Registo A – Bit UIP se a actualização do relógio estiver em curso, os registos do relógio de tempo real ficam inacessíveis. Bit Rate altera a taxa do relógio, em Hz.

Registo B – Bit SET desactiva a actualização do relógio (registos 0, 2, 4, 7, 8, 9, e 50 da CMOS). Bit DM, por defeito os dados são guardados no formato BCD, se se alterar o valor deste bit, passam a ficar em binário. Todas as funções DOS e BIOS assumem o formato BCD, portanto é preciso ter cuidado ao mudar este bit. Bit 24h, selecciona o modo de apresentação das horas: de 12 ou 24 horas. No caso de estar no formato 12 horas, para distinguir entre p.m. e a.m. é preciso consultar o bit mais alto do registo que guarda as horas (04H), se o valor do bit for 1 é p.m..

Registo C – Os bits PI, AI e UI activam vários pedidos de interrupções.

Registo D – O relógio tem uma função que monitoriza permanentemente o estado da bateria. Se a voltagem cair abaixo de um determinado valor, a função coloca o bit VAL a 0 para indicar que os dados armazenados poderão não ser válidos. A BIOS verifica o estado do registo D durante o processo de boot,

(3)

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa

Figura nº 3 – Os registos de estados do relógio de tempo real.

• Bytes relativos à configuração do sistema Vamos ver apenas os mais importantes.

(4)

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa

Figura nº 4 – Parte da CMOS dedicada à configuração do sistema.

O byte de diagnóstico (0EH) – Os seus bits são activados dependendo de certos erros que podem ocorrer durante o arranque da máquina, no POST (Power On Self Test).

O byte de configuração (14H) – Especifica alguma informação sobre o hardware do sistema.

O byte do endereço 10H indica os tipos de duas drives de disquetes. Quatro bits para cada drive: Os bits 4 a 7 para a drive 0 e os bits 0 a 3 para a drive 1.

(5)

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa

Figura nº 5 – Bytes de diagnóstico (0EH) e de configuração (14H) na CMOS.

Figura nº 6 – Byte do tipo de drives de disquete.

Curiosidade: O relógio de tempo real tem um alarme que pode ser usado para gerar uma interrupção a uma hora específica do dia. Para isso é necessário criar uma interrupt handler que execute uma acção quando a interrupção do alarme ocorrer. A BIOS fornece um conjunto de serviços para aceder ao alarme

(6)

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa

do relógio de tempo real através da interrupção 1AH (ver página 391 do livro PC Bible para mais informações).

• Exemplo de programação da CMOS

/* Exercício para saber qual o dia da semana e hora actual e depois alterar o dia da semana para Domingo e a hora para 12h00, directamente na CMOS */

#include <dos.h> #include <stdio.h> void main(void) {

unsigned char v;

/* para ver os valores originais */

outportb (0x70, 0x06); /* aceder ao byte do dia da semana */ v = inportb (0x71);

switch (v) {

case 0: printf("Hoje é Domindo\n”); break; case 1: printf("Hoje é Segunda\n”); break; case 2: printf("Hoje é Terça\n”); break; case 3: printf("Hoje é Quarta\n”); break; //…

}

outportb (0x70, 0x04); /* aceder ao byte da hora actual */ v = inportb (0x71);

printf("São %d horas\n",v); /* para alterar os valores */

outportb (0x70, 0x06); /* aceder ao byte do dia da semana */ outportb (0x71, 0x00); /* 0 = Domingo */

outportb (0x70, 0x04); /* aceder ao byte da hora actual */ outportb (0x71, 0x0C); /* 0CH = 12 horas */

Referências

Documentos relacionados

Although RINR shares a number of features with classical neuroretinitis (e.g., optic nerve edema, macular exudate in star-shaped pattern, relatively young age at onset, and

Aos sete dias do mês de janeiro do ano 2002, o Perito Dr. OSCAR LUIZ DE LIMA E CIRNE NETO, designado pelo MM Juiz de Direito da x.ª Vara Cível da Comarca do São Gonçalo, para proceder

Foi realizada uma revista da literatura onde se procurou discutir parâmetros para indicações, melhor área doadora e técnicas cirúrgicas para remoção do enxerto de calota

Os estudos iniciais em escala de bancada foram realizados com um minério de ferro de baixo teor e mostraram que é possível obter um concentrado com 66% Fe e uma

Tendo como parâmetros para análise dos dados, a comparação entre monta natural (MN) e inseminação artificial (IA) em relação ao número de concepções e

Quando contratados, conforme valores dispostos no Anexo I, converter dados para uso pelos aplicativos, instalar os aplicativos objeto deste contrato, treinar os servidores

Quadro 5-8 – Custo incremental em função da energia em períodos de ponta (troços comuns) ...50 Quadro 5-9 – Custo incremental em função da energia ...52 Quadro 5-10

1.. Ambos são predicados bi-valenciais, que abrem casa a sua volta para serem preenchidas por um argumento externo, experienciador, com traço [+ animado], o que não se observa