Descrição do funcionamento e protocolo de um teclado (PC)



Documentos relacionados
Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

Entradas/Saídas. Programação por espera activa Programação por interrupções

Dispositivos de Entrada e Saída

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.

Manual Técnico Interface Modbus

Parallel to Serial Shifting IN

Introdução. Em se tratando de computador, entendemos que memória são dispositivos que armazenam dados com os quais o processador trabalha.

Introdução aos Computadores

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Sistemas Operacionais. Prof. André Y. Kusumoto

WATCHDOG ELITE NTC OPÇÃO DE COMUNICAÇÕES SERIAIS

KVM CPU Switch 4 Portas Manual do Usuário

Arquitetura de Computadores. Tipos de Instruções

Figura 1 - O computador

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Projecto Final de Curso 2004/2005 RESPIFE. Reengenharia de Sistema Produtivo Integrado para Fins Educacionais. Guia do Robot

Sistemas Digitais Reconfiguráveis

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

Escola Secundária de Emídio Navarro

Sistema de Numeração e Códigos. CPCX UFMS Prof. Renato F. dos Santos

BARRAMENTO DO SISTEMA

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for

Serial Paralela USB FireWire(IEEE1394)

Acetatos de apoio às aulas teóricas

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Manual do instalador Box Input Rev Figura 01 Apresentação do Box Input.

Escola Secundária de Emídio Navarro

Introdução. à Estrutura e Funcionamento de um Sistema Informático

PROGRAMA DE GERENCIAMENTO DOS AMPLIFICADORES MR 4.50D-XT MR 6.50D-XT MR 6.80-XT Rev. 2.3 de 29/01/2014

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Placas Adaptadoras e montagem de Redes

Projecto de uma placa com DIP-Switches e LCD com ligação à placa DETIUA

GUIA RÁPIDO DE INSTALÇÃO

2. Introdução e Conceitos Básicos das TIC

Memória Cache. Prof. Leonardo Barreto Campos 1

Manual do Utilizador

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico Universidade Técnica de Lisboa

Uso de interrupções de BIOS/DOS

Curso EFA Técnico/a de Informática - Sistemas. Óbidos

Modelo Genérico de Módulo de E/S Grande variedade de periféricos

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE : SÃO CAETANO DO SUL - SP - CEP:

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Copyright 2013 VW Soluções

No final desta sessão o formando deverá ser capaz de aceder ao Word e iniciar um novo documento.

Guia de Cabeamento para Portas de Console e AUX

Sistemas Embedidos I

Entradas/Saídas. Programação por interrupções Conceitos gerais Programação da porta série Transmissão

Aula 04 B. Interfaces. Prof. Ricardo Palma

PROJETO. Ponte Digital. Luciano Daniel Amarante - carabina@pop.com.br Ricardo Watzko - rw@netuno.com.

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Arquitetura de Rede de Computadores

Redes de Computadores II Prova 3 13/07/2012. Nome:

Fabio Bento

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

Programação 2ºSemestre MEEC /2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Introdução à estrutura e funcionamento de um Sistema Informático

Manual de Instalação da Plataforma Scorpion. 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit

COMPUTADOR,, que máquina é essa?

COMUNICAÇÃO SERIAL ENTRE EQUIPAMENTOS

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

4. Protocolos Teóricos e Protocolos de Controlo de Ligação Protocolos ARQ; Especificação de Protocolos; Eficiência ARQ.

Arquitetura de Computadores Arquitetura de entrada e saída

Sistemas Operativos I

Redes de Computadores. Trabalho de Laboratório Nº7

ENTRADA E SAÍDA DE DADOS

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

I n f o r m á t i c a

Comunicação Serial com o AVR ATMEGA8

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1

Montagem e Manutenção. Luís Guilherme A. Pontes

Quadro de consulta (solicitação do mestre)

INTRODUÇÃO AO WINDOWS

Unidade 1 - Objectivos das Tecnologias Informáticas

Manual MifareUSB/Serial

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Matriz seletora VGA/WXGA & Controle RS x 8 TRANSCORTEC STATUS OUTPUT 2

Multimedidores Inteligentes MGE G3 Modo de uso do software IBIS_BE_cnf. ABB Automação. Hartmann & Braun

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Redes de Computadores

Adquirindo prática para manipular o Mouse e o Teclado

Conteúdo do pacote. Lista de terminologia. Powerline Adapter

Eletrônica Industria e Comércio Ltda

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

Módulo de Desenvolvimento PIC16F877A

Introdução a Informática. Prof.: Roberto Franciscatto

Universal Serial Bus USB

Transcrição:

Departamento de Engenharia Informática Faculdade de Ciência e Tecnologias Universidade de Coimbra ARQUITECTURA DE COMPUTADORES II Ano Lectivo de 2002-2003 Descrição do funcionamento e protocolo de um teclado (PC) Elaborado por: Bruno Luís bluis@student.dei.uc.pt 995011059 Carla Pacheco cpacheco@student.dei.uc.pt - 501011218

ÍNDICE INTRODUÇÃO...3 O BÁSICO DO TECLADO...4 MECÂNICA DO TECLADO...5 CONECTORES DE TECLADO...6 O TECLADO DE COMPUTADORES AMBIENTE DOS...8 O QUE ACONTECE QUANDO PRESSIONAMOS...9 UMA TECLA DE UM TECLADO DE COMPUTADOR?...9 ROTINA DE SERVIÇO DO TECLADO...10 VALORES DOS BYTES AUXILIARES PARA TECLAS ESPECIAIS...12 COMO DIFEREM AS INTERFACES DOS TECLADOS AT E XT?...14 OS DADOS SÃO ENVIADOS PELO TECLADO...15 PARA O CIRCUITO DE INTERFACE NUMA FORMA SEQUENCIAL...15 SHIFT REGISTER DE UM MICROPROCESSADOR...17 OUTRAS CONSIDERAÇÕES...18 COMANDOS DO TECLADO...19 SCAN CODES...21 ESQUEMA E HARDWARE...22 BIBLIOGRAFIA...23 Trabalho Teórico Arquitectura de Computadores II pág. 2

INTRODUÇÃO De referir que neste trabalho foram realizadas pesquisas e estudos sobre equipamento IBM. Os computadores IBM eram equipados com um teclado que tinha 84 teclas, com as teclas funcionais no lado esquerdo do teclado. O teclado conectava com o computador usando um conector de 5 pin DIN e este era ligado a uma cavidade na parte posterior da placa de sistema. A IBM AT introduziu um teclado de 101 teclas que depressa se tornou modelo de referência para a maior parte dos PC s. Este teclado tinha as teclas funcionais ao longo do topo do teclado e um teclado numérico do seu lado direito. Havia também duas teclas extra funcionais incluídas neste teclado. Trabalho Teórico Arquitectura de Computadores II pág. 3

O BÁSICO DO TECLADO Um típico teclado moderno consiste num chip de processador conectado com a matriz de teclas ordenadas num array de X e Y linhas. Os primeiros teclados usavam um chip de processador 8048 e uma matriz de 8 por 11 ou 12. A matriz consistia usualmente em oito linhas de saída e 11 ou 12 linhas de entrada. Mais tarde, os teclados passaram a usar processadores 8049 e o teclado de 101 teclas precisavam de pelo menos uma matriz de 10 por 11 para aceder a todas as teclas. O processador do teclado usa uma tabela de procura, para encontrar o código que representa a tecla que foi pressionada. Quando o processador do teclado encontra a tecla pressionada durante a sua procura na matriz, ele envia um código para representar essa tecla para um circuito de interface do teclado no computador. No passado, muitos sistemas usaram o código ASCII para representar as teclas na matriz mas os computadores de ambiente DOS usavam um complexo procedimento para os códigos de pressão e libertação das teclas. Trabalho Teórico Arquitectura de Computadores II pág. 4

MECÂNICA DO TECLADO Foram usados três tipos de contacto nos teclados. Mechanic contact Este tem um comutador de acções e usualmente proporciona bom tacto e respostas audíveis. Os melhores teclados têm uma esperança de vida de 1 ou 2 milhões de pressionamento de teclas por tecla. Conductive rubber pad Este tipo de teclado tem evoluído ao longo dos anos. Os exemplos mais antigos tinham pouca sensibilidade e eram a maior parte das vezes, informais. Hoje em dia, este tipo de teclado está disponível em ambas as formas, soft-touch e click type e é bastante formal. Capacitive contact Estes teclados de alta qualidade eram populares nos primórdios dos PC s mas eram muito caros de produzir. O original PC da IBM, PC/XT e PC/AT usavam este tipo de teclado. A matriz de teclas é uma série de muito pequenos condensadores unindo as linhas X e Y da matriz. O topo da tecla pressiona um prato condensador até junto de dois pratos condensadores na placa do circuito dentro do teclado, aumentando assim a capacitância entre as linhas X e Y da matriz. Trabalho Teórico Arquitectura de Computadores II pág. 5

CONECTORES DE TECLADO O teclado está conectado ao computador via dois tipos de conectores. Até recentemente, a maior parte dos computadores usavam conectores 5 Pin DIN nas suas placas de sistema e isto fornecia mais 5 volts e ligação à terra do teclado, e recebia dados e sinais de relógio do teclado. Os pinos no conector 5 Pin DIN estão assim definidos: Pin 1 = Clock (do teclado) Pin 2 = Data (do teclado) Pin 3 = Reset (não é usado) Pin 4 = Ligação à terra Pin 5 = suplemento de 5 volts A PS/2 IBM introduziu um pequeno conector, uma miniatura de uma conector 6 Pin DIN, e a interface desta PS/2 está a tornar-se um modelo de referência. Muitas placas de sistema das modernas, têm ambos conectores 5 Pin DIN e uma miniatura 6 Pin DIN. Adaptadores estão disponíveis para adaptar ambos os tipos de conectores entre o teclado e a placa do sistema. Os pinos de um conector de um teclado PS/2 estão definidos da seguinte forma: Pin 1 = Data (do teclado) Pin 2 = n/c Pin 3 = Ligação à terra Pin 4 = suplemento de 5 volts Pin 5 = Clock Pin 6 = n/c O teclado AT é conectado ao equipamento externo usando 4 cabos. Esses cabos estão representados abaixo pelo 5 Pin DIN Macho Plug & PS/2 Plug. Um quinto cabo pode por vezes ser encontrado. Este foi implementado no sentido de funcionar como Keyboard Reset, mas nos dias de hoje é deixado desconectado nos Trabalho Teórico Arquitectura de Computadores II pág. 6

teclados AT. Tanto o KBD Clock como o KBD Data são Open Collector bi-direccionais nas linhas de Input/Output. Se desejado, o Host pode falar com o teclado usando essas linhas. Trabalho Teórico Arquitectura de Computadores II pág. 7

O teclado de computadores ambiente DOS Quando é pressionada uma tecla num teclado, um Press Code é gerado pela acção da pressão da tecla e um Release Code é gerado quando a tecla é liberta. Os Press Code e Release Code são usados para produzir o Typematic (uma característica do teclado que faz com que uma tecla repita a sua escrita continuamente enquanto estiver pressionada). Os dados do teclado são enviados para o Circuito de Interface do Teclado na placa de sistema. Cada byte dos dados é submetido ao clock no circuito de interface por um Clock signal, proporcionado pelo próprio teclado. O circuito de interface dos teclados PX/XT (a primeira geração dos 8 bits de bus nos computadores DOS) é um pouco diferente àquele usado nos AT. A interface usada nos computadores de 8 bits era unidireccional, o teclado apenas fala com o computador e ao contrário, isso não acontece. Os computadores AT introduziram uma interface bidireccional e usam um chip de microprocessador 8042 para aceitar os dados vindos do teclado, e fornecer algum processamento destes. Os processos básicos envolvidos são os mesmos para ambos os tipos de interface. Trabalho Teórico Arquitectura de Computadores II pág. 8

O que acontece quando pressionamos uma tecla de um teclado de computador? Quando uma tecla de um teclado é pressionada, o processador do teclado determina um scan code da tecla em questão pela sua posição na matriz de teclas. O scan code para cada tecla representa a posição das teclas no teclado. Quando o teclado tem um tecla pressionada, ele acciona através do seu relógio um scan code representado aquela tecla, para o circuito de interface do teclado na placa de sistema. Quando o circuito de interface recebe os 8 bits (teclados XT) ou 11 bits (todos os outros computadores DOS) dos dados da tecla, ele gera uma interrupção de hardware no IRQ1, para dar início à rotina de serviço do teclado. Quando o processador do computador detecta o sinal de interrupção de hardware IRQ 1, via um chip controlador IRQ 8259, ele dá início à rotina de interrupção de manuseamento com o objectivo de encontrar o número de interrupção que a causou. É usado então este número para encontrar o vector, da Tabela de Vectores de Interrupções, que aponta para a rotina de serviço do teclado. O vector é o endereço do início desse serviço. Trabalho Teórico Arquitectura de Computadores II pág. 9

ROTINA DE SERVIÇO DO TECLADO O processador carrega o endereço de início desta rotina num program counter e depois continua no sentido de executar a routina de serviço do teclado. Essa rotina é que analisa o scan code que consta no circuito de interface do teclado e produz um código de 2 bytes que o coloca no Buffer do teclado e na memória RAM. Outras rotinas dentro do DOS e suas aplicações, lêem os dados vindos do Buffer do teclado passando-os para lá. Um número de teclas do teclado não produzem caracteres mas elas determinam o que um particular pressionamento numa tecla representa. Estas teclas incluem as duas teclas de Shift, o Control, o Alt, Caps Lock, Num Lock, Scroll Lock e o Insert. Estas teclas efectuam 2 bytes de status, alojados na parte mais baixa da memória RAM, e esses bytes analisam o estado dessas teclas. Quando a rotina de serviço do teclado aceita um scan code do teclado, ela então consulta os dois bytes de status em 417 e 418 (hexadecimal), para ver como o estado dessas teclas afectam os scan codes. Os bits dos bytes de status Byte 417 (hex) Byte 418 (hex) Bit 1=active, 0=inactive Bit Significado 7 Estado Insert 7 1 = Ins pressionado 6 Caps Lock 6 1 = Caps Lock pressionado 5 Num Lock 5 1 = Num Lock pressionado 4 Scroll Lock 4 1 = Scroll Lock pressionado 3 Alt 3 1 = Cont-Num lock activo 2 Control 2 1 = keyboard click active 1 Shift Esquerdo 1 Não usado 0 Shift Direito 0 Não usado Exemplo: A tecla A, tem um código de 1E (hex) e pode ser A, a ou Alt+A dependendo do status do Byte Status. Trabalho Teórico Arquitectura de Computadores II pág. 10

O estado Shift listado acima, não produz códigos no Buffer do teclado, mas eles afectam os Bytes de Status, definindo e fazendo o reset dos bits nos bytes que aquela tecla controla. A rotina de serviço do teclado gera códigos de 2 bytes, que os coloca no Buffer do teclado. O buffer do teclado tem 32 bytes de RAM, desde 41E (hex) até 43D (hex). Este é um buffer circular e o ponteiro para o endereço de início é mantido na localização 41A (hex) e 41B (hex) e o ponteiro para o endereço final está na localização 41C (hex) e 41D (hex). Os códigos de dois bytes tomam a seguinte forma. Caracteres normais Main byte (low byte) ASCII code Aux byte (high byte) SCAN code Caracteres especiais Main byte (low byte) 00(zero) Aux byte (high byte) Scan-code or special code. Exemplo: A tecla A tem um scan code de 1E (hex). Teclas pressionadas Byte auxiliar Byte principal A maiúsculo 1E (hex) 41 (hex) A minúsculo 1E (hex) 61 (hex) Alt+A 1E (hex) 00 (hex) Trabalho Teórico Arquitectura de Computadores II pág. 11

VALORES DOS BYTES AUXILIARES PARA TECLAS ESPECIAIS A tabela seguinte lista os valores do Byte Auxiliar para as teclas especiais num velho teclado de 84 teclas. As teclas extra para os modernos teclados de 101 teclas estão listadas mais à frente. É de notar que o Byte Principal será sempre 00 para as teclas especiais. Trabalho Teórico Arquitectura de Computadores II pág. 12

Trabalho Teórico Arquitectura de Computadores II pág. 13

COMO DIFEREM AS INTERFACES DOS TECLADOS AT E XT? Os computadores XT e os mais tarde, computadores DOS, lidavam com o problema da interface do teclado de forma diferente. Hoje em dia, o tipo de interface dos XT está morto e a primeira interface usada na interface dos teclados AT é a usada em todos os modernos computadores DOS. O layout de 101 teclas, primeiro introduzido com os computadores IBM AT, é muitas vezes referido como o teclado AT mas esta terminologia não é correcta. Alguns teclados têm um switch de interface XT/AT mas a maior parte dos teclados modernos conseguem detectar o tipo de interface em uso, de forma automática. Trabalho Teórico Arquitectura de Computadores II pág. 14

OS DADOS SÃO ENVIADOS PELO TECLADO PARA O CIRCUITO DE INTERFACE NUMA FORMA SEQUENCIAL Os dados são enviados do teclado para o circuito de interface na placa de sistema dos computadores de uma forma sequencial e estes dados são submetidos ao clock na interface, um bit de cada vez pelo clock signal que é também fornecido pelo teclado. Com a interface do teclado tipo AT, os dados tomam a forma de 1 word de 11 bits com 1 Star Bit (low), seguido por 8 bits de dados (o bit menos significativo primeiro), um Bit de Paridade e um Stop Bit (high). As linhas de dados e do relógio, existentes entre o teclado e o circuito de interface deste são normalmente lógicas, com resistors pull-up no final do teclado. Quando o teclado deseja enviar dados de uma tecla para a interface, ele coloca os dados, um bit de cada vez na linha dos dados e depois coloca a linha do relógio a low por curta duração enquanto mantém cada bit de dados firme. O rate dos dados é tipicamente à volta dos 10 Kb por segundo. Nos computadores modernos actuais, as linhas de interface entre o teclado e o circuito de interface são bi-direccionais e o computador pode enviar comandos para o teclado via essas mesmas linhas de dados e do relógio. O computador é que tem o controlo de tudo, e se por algum motivo, o computador não desejar receber dados do teclado, ele assere a linha do relógio a low. O teclado certifica-se do estado da linha do relógio antes de tentar enviar dados para o computador e assim verificar se o computador está pronto para receber dados. Se o teclado denotar a linha do relógio a low, ele pode guardar, nele próprio, 16 pressionamentos de teclas. Irá então posteriormente enviar esses dados para o circuito de interface aquando da libertação da linha do relógio. Quando o computador deseja enviar um comando para o teclado, ele força a linha de dados a estar a low e deixa a linha do relógio high. Quando o teclado verifica estas condições, responde com um código (hex) FA. Se o teclado detectar um erro nos dados transmitidos pelo computador, ele vai responder com um FE (hex) e este código pede a retransmissão daquele código que estava errado. Os erros são detectados via os Bits de Trabalho Teórico Arquitectura de Computadores II pág. 15

Paridade que acompanham os códigos enviados pelo teclado ou pelo computador nas linhas de interface do teclado. Trabalho Teórico Arquitectura de Computadores II pág. 16

SHIFT REGISTER DE UM MICROPROCESSADOR Nos computadores de tipo XT, o circuito de interface do teclado consiste numa Serial In Parallel Out Shift Register e alguns circuitos lógicos para gerarem um Hardware Interrupt (IRQ1) quando os dados de uma tecla pressionada são carregados para o shift register. A rotina de serviço interrupt invocada por IRQ1 lê os dados da tecla do shift register via um chip I/O programável 8255. Nos computadores de tipo AT, o circuito de interface do teclado é um chip microprocessador 8042. O processador do interface recebe os dados de forma sequencial do teclado, verifica a paridade dos dados e apresenta os dados no Buffer de saída. O controlador irá então gerar um IRQ1 para chamar a rotina de serviço do teclado para levar os dados do Buffer. O processador da interface do teclado também tem um Buffer de entrada que irá aceitar os comandos para serem transmitidos para o teclado. Trabalho Teórico Arquitectura de Computadores II pág. 17

OUTRAS CONSIDERAÇÕES A maior parte do pressionamento de teclas produz um keycode que representa a posição das teclas no teclado. Dois tipos de keycodes são enviados pelo teclado para o circuito de interface do teclado na placa de sistema dos computadores. O código do keypress (make code) é enviado quando uma tecla é pressionada e o código de Release (break code) é enviado quando a tecla é liberta. Muitos teclados de computadores DOS suportam 3 conjuntos de códigos para pressionamento ou libertação de teclas. Definir-se-á esses conjuntos como Modo um, dois e três. No modo um, o modo XT, o código de keypress é um código de 7 bits com o 8º bit sempre a 0. O código de release é um código de keypress com o bit 8 asserido a 1. O bit 8 é sempre 0 nos códigos de keypress e sempre 1 nos códigos de release. O modo dois é um conjunto de 84 códigos de teclas onde as teclas comuns ao teclado de 84 e ao de 101 teclas usam os mesmos códigos Press e Release. As novas teclas são enviadas com o prefixo E0. Neste modo, os dados são enviados do teclado para o circuito de interface do teclado do mesmo modo que no 1 e no fim da transmissão a interface do teclado não irá permitir a ligação até que o sistema aceite os dados enviados. Se os dados recebidos tiverem um erro de paridade, o circuito de interface do teclado irá enviar um comando Reset para o teclado. O modo très elimina todas as confusões do modo 2 atribuíndo a cada uma das teclas um único Press code mas muitos teclados não suportam este modo e muitos não suportam o comando Change Mode (F0). Trabalho Teórico Arquitectura de Computadores II pág. 18

COMANDOS DO TECLADO Para além dos scan codes, comandos também podem ser enviados e recebidos pelo teclado. A secção que se segue, detalha a função desses comandos. É de notar que estes comandos são apenas os de uso mais comum. Comandos de host Estes comandos são enviados pelo host para o teclado. O comando mais comum sera o de setting/resetting dos Indicatores de Status. (isto é, os LEDs do Num Lock, Caps Lock e Scroll Lock). Os comandos mais usuais e úteis são os seguintes: ED Set Status LED s Este comando pode ser usado para ligar ou desligar os LED s do Num Lock, Caps Lock e Scroll Lock. Depois de enviar ED, o teclado irá responder com um ACK (FA) e espera por outro byte que determina o Status. O bit 0 controla o Scroll Lock, bit 1 o Num Lock e o bit 2 o Caps Lock. Bits de 3 a 7 são ignorados. EE Echo depois de enviar um comando Echo para o host, o teclado deverá responder com um Echo (EE). F0 Set Scan Code Set Depois de enviar F0, o teclado irá responder com um ACK (FA) e esperar por outro byte, 01-03 que determina o scan code usado. Enviando 00 como segundo byte irá devolver o scan code set correntemente em uso. F3 Set Typematic Repeat Rate O host irá executar o comando acknowledge com FA e esperar pelo Segundo byte, que determina o Typematic Repeat Rate. F4 Host Enable limpa o buffer dos teclados output, permite o scanning do host e devolve um acknowledge. F5 Host Disable executa o reset ao teclado, e não permite ao Host o scanning e devolve acknowledge. Trabalho Teórico Arquitectura de Computadores II pág. 19

FE Reenvia Depois da recepção do comando reenviado, o teclado irá retransmitir o ultimo byte enviado. FF Reset Faz o reset do Host. Comandos Se os comandos de Host são enviados do Host para o teclado, então os comandos de teclado deverão ser enviados do teclado para o Host. Em baixo, alguns dos comandos que o teclado pode enviar. FA - Acknowledge AA Power On Self Test Passed (BAT completed) EE Comando Echo (Comandos de Host) FE Resend Depois da recepção do comando reenviado, o Host deverá retransmitir o ultimo byte enviado. 00 - Erro ou Overflow do Buffer FF Erro ou Overflow do Buffer Trabalho Teórico Arquitectura de Computadores II pág. 20

SCAN CODES O diagrama abaixo mostra o scan code atribuído a cada uma das teclas. O scan code é mostrado abaixo da tecla. Por exemplo, o scan code para a tecla Esc é o 76. Todos os scan codes estão em notação hexadecimal. Como se pode denotar, as atribuições dos scan codes são particularmente ao acaso. Na maior parte dos casos, o caminho mais fácil para converter o scan code para ASCII será o de usar uma tabela de consulta. Abaixo, os scan codes para o extended keyboard e o teclado numérico. Trabalho Teórico Arquitectura de Computadores II pág. 21

ESQUEMA E HARDWARE O esquema abaixo mostra as conexões gerais do teclado. O pino TXD, enquanto transmite num formato RS-232 não está nos níveis de voltagem RS-232. Se se quer conectá-lo em equipamentos RS-232, então será necessário juntar um conversor de nível RS-232. Outra opção é, num sistema de desenvolvimento, conectá-lo directamente ao pino RXD. O teclado requer outputs open collect/open. Isto é atigindo usando o Data Direction Register (DDR). Um 0 é escrito para a parte onde está internamente ligado. O DDR é então usado para mudar a linha de 0 lógico para alta impedância. Se o pino da porta é output, um 0 lógico está representado no pino, se a porta está configurada como input, esta terá grande impedância. O circuito está definido para executar em 4 MHz (2 MHz de Bus Speed). O timing para a transmissão RS-232 é baseado no Bus Speed, assim o seu processador (cristal) tem de ser de 4 MHz. Um teclado standard pode drenar cerca de 300 ma, no máximo, assim é recomendado que use o seu próprio regulador do que ir buscar recursos a outro lado. Trabalho Teórico Arquitectura de Computadores II pág. 22

BIBLIOGRAFIA http://h18000.www1.hp.com/athome/international/br/tutorials/keyboard/inde x.html http://www.di.uminho.pt/~amp/textos/coa/node9.html http://www.repairfaq.org/filipg/link/ports/f_keyboard_faq.html http://www.simpits.org/engineering/keyemu/key_emu.html Trabalho Teórico Arquitectura de Computadores II pág. 23