TERMINAIS

CONJUNTO DE VÍDEO E TECLADO

O COMPONENTE VÍDEO É UM DISPOSITIVO DE SAÍDA

O COMPONENTE TECLADO É UM DISPOSITIVO DE ENTRADA

CONSIDERA-SE TERMINAL AO CONJUNTO VÍDEO & TECLADO QUE ESTÁ FISICAMENTE DISTANTE DA CPU E DE SEU GABINETE, SENDO CONECTADO A ESTE ATRAVÉS DE UMA LINHA DE COMUNICAÇÃO DE DADOS VIA UMA INTERFACE SERIAL (UM BIT POR VEZ)

EXISTE UMA CONTROLADORA CUIDANDO DO CONJUNTO VÍDEO & TECLADO

EXISTEM DOIS DRIVERS, CADA QUAL CUIDANDO DE UM DISPOSITIVO

A CONTROLADORA CONTÉM REGISTRADORES USADOS NA COMUNICAÇÃO COM A CPU, EM ALGUNS SISTEMAS ESSES REGISTRADORES FAZEM PARTE DO ESPAÇO DE ENDEREÇAMENTO DA MEMÓRIA

TODO VÍDEO TEM ASSOCIADO UMA MEMÓRIA, A PARTIR DA QUAL UM CONTROLADOR DE VÍDEO GERA OS SINAIS PARA MODULAR O TUBO E CAUSAR A ESCRITA NA TELA OU CRIAR OS CARACTERES NO CRISTAL LÍQUIDO

NO CASO DE VÍDEO COM TUBO, HÁ NECESSIDADE DE GERAR SINAIS PARA UM TIPO DE "REFRESH"

RS232 É UM EXEMPLO DE INTERFACE SERIAL (PADRÃO), GERALMENTE PRESENTE EM TODOS OS COMPUTADORES

•	UTILIZA UM CONECTOR DE 25 PINOS, UM PARA TRANSMISSÃO DE DADOS, UM PARA RECEPÇÃO DE DADOS E UM TERRA; OS OUTROS 22 PINOS SERVEM PARA CONTROLE E NORMALMENTE NÃO SÃO USADOS

•	CADA CARACTER É ENVIADO COM UM BIT DE INÍCIO E 1 OU 2 BITS DE FIM

•	VELOCIDADES ENTRE 300 E 19200 BPS

•	PARA A TRANSFORMAÇÃO DO CARACTERE EM BITS E VICE-VERSA UTILIZA-SE UM CHIP UART (UNIVERSAL ASYNCHRONOUS RECEIVER TRANSMITER)

NÃO CONFUNDIR UART COM MODEM

UM TERMINAL PODE SER:

INTELIGENTE  

PODE SER CONSIDERADO UM VERDADEIRO MICRO COMPUTADOR COM CPU E MEMÓRIA, CONSEGUE RECONHECER SEQÜÊNCIAS DE CARACTERES DE CONTROLE (SEQUÊNCIAS DE ESCAPE)

PODE SER UM COMPUTADOR (PC OU ESTAÇÃO DE TRABALHO) EMULANDO UM TERMINAL - NÃO HÁ COMUNICAÇÃO ENTRE O COMPUTADOR-TERMINAL E O COMPUTADOR CENTRAL

GERALMENTE PERMITE TRABALHAR COM TODA A TELA, POSSIVELMENTE DE MANEIRA GRÁFICA - SEMELHANTE A UM VÍDEO MAPEADO EM MEMÓRIA

BURRO

NÃO APRESENTA NENHUM TIPO DE RECURSO, ALÉM DE BUFFERS

DEVIDO AOS POUCOS RECURSOS PERMITE APENAS TRABALHAR A NÍVEL DE LINHA (COMANDO)

CONSEGUE RECONHECER ALGUNS CARACTERES DE CONTROLE

DRIVER DE ENTRADA

O TRABALHO BÁSICO DO DRIVER DE TECLADO É COLETAR ENTRADA DO TECLADO E PASSÁ-LA AO PROGRAMA, QUANDO ESTE LÊ DO TERMINAL

FILOSOFIAS QUE PODEM SER ADOTADAS :

•	O DRIVER ACEITA A ENTRADA E A PASSA SEM MODIFICÁ-LA      (ORIENTADA A CARACTERE OU RAW MODE - MODO CRÚ)
 	
P.E O USUÁRIO DIGITA DSTE E CORRIGE DIGITANDO 3 VEZES <BACKSPACE> E DEPOIS ATE SEGUIDO DE <ENTER>, O PROGRAMA RECEBE 11 CÓDIGOS ASCII

•	O DRIVER MANIPULA TODA A EDIÇÃO INTRA-LINHA E SÓ PASSA LINHAS CORRIGIDAS AO PROGRAMA (ORIENTADO A LINHA OU COOKED MODE - MODO COZIDO)

<BACKSPACE> EQUIVALE A 3 CARACTERES: VOLTAR UM CARACTERE, CARACTERE BRANCO, VOLTAR UM CARACTERES

COMO TRATAR UM <TAB> E UM <BACKSPACE> SOBRE UM <TAB> ?

AS LETRAS TECLADAS SÃO ECOADAS NA TELA (O SEU APARECIMENTO NÃO É AUTOMÁTICO)

•	ECOAR PODE SER DIFÍCIL NO CASO DO USUÁRIO PODER TECLAR AO MESMO TEMPO QUE ESTÁ AGUARDANDO - ONDE COLOCAR OS CARACTERES ECOADOS

O DRIVER DEVE PERMITIR A ENTRADA DE DADOS, MESMO QUE ESTES AINDA NÃO TENHAM SIDO SOLICITADOS POR UM PROCESSO - PARA ISSO É NECESSÁRIO O USO DE BUFFERS

DRIVER DE SAÍDA

HÁ BUFFERS ASSOCIADOS

•	A 19200 BPS LEVA-SE 0,5 MSEG PARA ENVIAR UM CARACTERE

•	O DRIVER ENVIA O CARACTERE E SE BLOQUEIA AGUARDANDO UMA INTERRUPÇÃO DO UART PARA ENVIO DE MAIS UM CARACTERE

VÍDEOS MAPEADOS EM MEMÓRIA

•	SÃO PARTE DO COMPUTADOR

•	SUA INTERFACE É UMA MEMÓRIA ESPECIAL CHAMADA VIDEO RAM, QUE FAZ PARTE DO ESPAÇO DE ENDEREÇAMENTO DO COMPUTADOR

MONITOR

VÍDEO
CONTROLLER

BUS

CPU

LOCAL BUS

MEMÓRIA

VÍDEO RAM

PODE-SE TRABALHAR COM O VÍDEO:

•	ORIENTADO A BITS OU NO MODO GRÁFICO

•	ORIENTADO A CARACTERES OU NO MODO TEXTO

•	PODENDO PASSAR DE UM MODO PARA OUTRO

A VÍDEO RAM CONTERÁ BITS PARA O CONTROLE DE CADA PIXEL (1 PONTO NA TELA) OU BYTES PARA O CONTROLE DE CADA CARACTERE NA TELA

CADA PIXEL OU CARACTERE QUE APARECE NA TELA OCUPA DOIS OU MAIS BITS OU CARACTERES NA VIDEO RAM: O 1 COM O DADO, O(S) OUTRO(S) COM ATRIBUTOS (COR, VIDEO REVERSO, BLINKING, ETC.)

A CPU PODE CARREGAR 4KBYTES NA VIDEO RAM EM ms, ENQUANTO QUE ESSES MESMOS 4 KBYTES EM UM TERMINAL A 19200 BPS, EM UMA LINHA RS232, SERIAM TRANSMITIDOS EM MILHARES DE ms - UMA PROPORÇÃO DE 1 PARA 2000

•	UM CHIP CHAMADO VIDEO CONTROLLER É RESPONSÁVEL PELA GERAÇÃO DOS SINAIS NECESSÁRIOS PARA CONVERTER OS BYTES DA VIDEO RAM EM CARACTERES VISÍVEIS NO VÍDEO

CADA CARACTERE EM UM VIDEO MONOCROMÁTICO OCUPA 14 x 9 PIXELS, INCLUINDO O ESPAÇO ENTRE CARACTERES

CARACTERES NO MODO GRÁFICO TAMBÉM SEGUEM ESTILOS, FONTES E TAMANHOS, QUE INDICAM QUANTOS PIXELS SÃO NECESSÁRIOS PARA O SEU DESENHO

OS PADRÕES DE BITS, CORRESPONDENTES AOS DESENHOS DOS CARACTERES, SÃO MANTIDOS EM ARQUIVOS OU ROM, MANIPULADOS PELO DRIVER

•	O VÍDEO TRABALHA COMO UMA TELEVISÃO COM TUBO - TODA A EXTENSÃO DA TELA É CRIADA POR CANHÕES DE ELETRÓNS (TRÊS - VERDE, VERMELHO E AZUL)

O VIDEO CONTROLLER PODE MANIPULAR UMA LINHA DE PIXELS OU CARACTERES POR VEZ

AS LINHAS NECESSITAM SER REDESENHADAS A CADA INTERVALO DE TEMPO (DEZENAS DE VEZES POR SEGUNDO), NO SENTIDO ESQUERDA - DIREITA DE CIMA PARA BAIXO

A MAIORIA DOS VÍDEOS ATUALMENTE SÃO CONECTADOS A UM BARRAMENTO LOCAL PCI OU VESA E SÃO CARACTERIZADOS POR:

•	RESOLUÇÃO
•	PROFUNDIDADE DE COR
•	TAXA DE REFRESH
•	ACELERADOR

A RESOLUÇÃO SE REFERE AO NÚMERO DE PONTOS NA TELA (PIXELS)

•	640 x 480 (VGA) 
•	800 x 600 (SVGA)
•	1024 x 768
•	1280 x 1024

A PROFUNDIDADE DE COR É DETERMINADA PELO NÚMERO DE BITS ESTABELECIDO PARA CONTER O VALOR DA COR, ISTO SIGNIFICA QUE HÁ NECESSIDADE DE UM DETERMINADO NÚMERO DE BITS PARA CADA PONTO NA TELA

•	4 BITS - 16 CORES 
COM 640 x 480 => 256 KBYTES DE MEMÓRIA DE VÍDEO
COM 1280 x 1024 => 1 MBYTE DE MEMÓRIA DE VÍDEO

•	8 BITS - 256 CORES
COM 1024 x 768 => 1 MBYTE DE MEMÓRIA DE VÍDEO

•	16 BITS - 64 K CORES
COM 800 x 600 => 1 MBYTE DE MEMÓRIA DE VÍDEO

•	24 BITS - 16 M CORES

A TAXA DE REFRESH DETERMINA A VELOCIDADE EM QUE OS PONTOS NA TELA NECESSITAM SER DESENHADOS

ORIGINALMENTE VGA REQUERIA 60 Hz

ATUALMENTE EXISTEM TAXAS ENTRE 60 E 75 Hz

UM ACELERADOR PODE DESENHAR LINHAS E JANELAS, PREENCHER O FUNDO COM COR, PERMITIR SCROLL E GERENCIAR O MOUSE

COM ACELERADOR, A CPU TEM APENAS QUE ENVIAR À CONTROLADORA DE VÍDEO UM COMANDO PARA DESENHAR UMA LINHA (MANDANDO O PONTO INCIAL, O PONTO FINAL, A LARGURA E A COR), SEM A NECESSIDADE DE CALCULAR OS BITS DA LINHA, REDUZINDO A QUANTIDADE DE DADOS NO BARRAMENTO E PARA A CONTROLADORA

O DRIVER SABE QUAIS COMANDOS O ACELERADOR SUPORTA E QUAIS DEVEM SER TRATADOS BIT A BIT

TECLADOS EM TERMINAIS MAPEADOS EM MEMÓRIA

•	PARA OS TERMINAIS MAPEADOS EM MEMÓRIA O TECLADO É INDEPENDENTE DO VÍDEO

•	O TECLADO NORMALMENTE É LIGADO VIA UMA PORTA PARALELA

•	CADA TECLA PRESSIONADA INTERROMPE A CPU E O DRIVE DO TECLADO EXTRAI O CARACTERE DIGITADO ATRAVÉS DA LEITURA DA PORTA PARALELA

•	O TECLADO ENVIA O NÚMERO DA TECLA, NÃO UM CARACTERE ASCII

•	O DRIVER É RESPONSÁVEL POR SABER SE A LETRA É MAIÚSCULA, MINÚSCULA, CTRL-A, ETC.

•	O DRIVER MAPEIA OS NÚMEROS DAS TECLAS EM CARACTERES VIA TABELAS

•	OS CARACTERES, UMA VEZ RECONHECIDOS, SÃO COLOCADOS NA VÍDEO RAM (ECO)

•	ALGUMAS SEQÜÊNCIAS DE ESCAPE EXIGEM QUE O DRIVER MANTENHA A POSIÇÃO DO CURSOR NA VÍDEO RAM PARA ASSIM PODER REPRESENTAR CORRETAMENTE ESSES CARACTERES :

•	BACKSPACE, CARRIAGE RETURN, LINE FEED OU DEL

•	 MOVER O CURSOR PARA CIMA, BAIXO, ESQUERDA OU DIREITA

•	MOVER O CURSOR PARA (X,Y)

•	INSERIR UM CARACTERE OU LINHA NO CURSOR

•	REMOVER OU CARACTERE OU LINHA NO CURSOR

•	SCROLL DA TELA N LINHAS

•	LIMPAR A TELA DO CURSOR ATÉ O FIM DA LINHA OU TELA

•	VÍDEO REVERSO, SUBLINHADO, BLINKING E MODO STANDARD

•	CRIAR, DESTRUIR, MOVER E GERENCIAR JANELAS

•	EXISTE UM APONTADOR PARA A PRIMEIRA LINHA DA TELA, QUE PODE MUDAR CONFORME OCORREM SCROLLS

Exercícios

1.	Porque terminais RS232 utilizam interrupção e os mapeados em memória não?
2.	O que é uma UART? Qual a diferença com um modem ?
3.	Considere como um terminal trabalha: o driver manda um caractere e então se bloqueia. Após a impressão do caractere, ocorre uma interrupção e uma mensagem é enviada ao driver desbloqueando-o, o que faz o mesmo mandar mais uma caractere e bloquear-se. Se o tempo para a passagem da mensagem, envio do caractere e bloqueio é de 4 mseg, o que ocorre com uma linha de transmissão de 110 bauds (bits por segundo)? e uma de 1800 bauds ?
4.	Porque há necessidade de ecoar os caracteres reconhecidos pelo driver que cuida de uma controladora de teclado ? Onde ocorre o eco ? 
5.	Dê dois exemplos de caracteres de escape que ativem o acelerador gráfico de um vídeo, indicando o processamento realizado na controladora do vídeo.
6.	Suponha uma video-RAM de 1 Mbyte de memória. Suponha também que deseja-se usar uma profundidade de cor de 16 Mega cores (16 x 1024 x 1024). Quantos pixels poderão ser manipulados nessa memória ? O que poderia ser feito se fosse desejada uma resolução de 800 x 600 ? Não esquecer de considerar um bit para dado em cada pixel.
7.	Como ficaria o exercício anterior caso existissem mais três atributos por pixel: blinking, vídeo-reverso e sublinhado.