Trabalho Prático Nº3 Porta Paralela 1. OBJECTIVOS - Utilização da porta paralela como porto genérico de Entrada e Saída. 2. INTRODUÇÃO A porta paralela é um meio frequentemente utilizado para efectuar interface entre o PC e o exterior. Este porto permite 9 bits como entrada e 12 bits como saída, sendo mínimos os circuitos externos necessários para efectuar a interligação. O porto é composto por 4 linhas de controlo, 5 linhas de estado e 8 linhas de dados. A ficha é facilmente identificável na parte de trás do PC, conector DB 25 pinos fêmea. Há a ter em conta que poderá existir uma ficha de 25 pinos macho, que é da porta série, totalmente incompatível. Em 1994 foi definida uma nova porta paralela standard que define 5 modos de operação: 1. Modo Compatível Standard Parallel Port 2. Modo Nibble Standard Parallel Port 3. Modo Byte - Standard Parallel Port 4. Modo EPP Enhanced Parallel Port 5. Modo ECP Extended Capabilities Port Em que o objectivo foi definir novos drivers e dispositivos compatíveis uns com os outros e que mantivesse a compatibilidade com a porta paralela standard (SPP). Os modos compatíveis, nibble e byte usam o hardware standard disponibilizado pelas originais placas da porta paralela, enquanto os modos EPP e ECP requerem hardware adicional que permite trabalhar a velocidades mais rápidas mantendo no entanto a compatibilidade com o SPP. Microprocessadores III ano lectivo 2004/2005 Página 1 Trabalho Prático Nº3
L P T Porto Saída Display 7 Segmentos Porto Entrada Dip-switch Figura 3.1: Diagrama de blocos de trabalho prático. O porto de saída é efectuada por meio do porto de Dados, é utilizado uma latch 74LS373, para efectuar interface eléctrico. As linhas de controlo da latch estão sempre activas pelo que uma escrita na latch faz com seja actualizada directamente nas saídas. As linhas do porto de entrada são multiplexadas por meio de uma Multiplexer, sendo lidas nas quatro linhas mais significativas do porto de estado (a linha BUSY, a mais significativa do porto de estado é negada por hardware) Porta LPT 74LS373 D0..7 Porto Saída (8 bits) DISPLAY 7 SEGMENTOS Figura 3.2: Implementação do porto de saída. Microprocessadores III ano lectivo 2004/2005 Página 2 Trabalho Prático Nº3
O porto de entrada é implementado por pelas linhas do porto de estado de S4 a S7 que são multiplexadas por meio de um buffer 74LS244, cujo controlo é efectuado por /C0 (bit 0 do porto controlo). Porta LPT 74LS257 S4 S5 S6 S7 Porto Entrada /1G /2G /C0 Figura 3.3: Implementação do porto de entrada. 3. TRABALHO 3.1 Leitura de Dip-Switch Escreva o programa para efectuar a a leitura dos interruptores (dip-switch) do porto de entrada e escreva o valor correspondente no porto de saída no visor de 7 segmentos. Considere apenas 4 linhas de entrada, assim deve ser lido um valor BCD, de 0 a 9 e no visor deverá ser escrito o seu correspondente de 7 segmentos. Microprocessadores III ano lectivo 2004/2005 Página 3 Trabalho Prático Nº3
3.2 Escrita no Módulo de 4 visores de 7 segmentos Pretende-se ligar um módulo de 4 visores com controlador incluído na porta paralela. A ligação é representada na figura 3.6. O controlador utilizado (BM0804), efectua interface série. Os dados correspondentes aos segmentos são enviados empacotados numa trama de 36 bits, em que o nível lógico 1 corresponde ao segmento activo. O protocolo de envio está representado na figura 3.4. Figura 3.4: Trama de 36 bits a ser enviada para o controlador para activar os diversos visores Escreva um programa que permita a escrita de dígitos no módulo do visor. 3.3 Interface com sensor de temperatura DS1620 O DS1620 pode funcionar como um termómetro digital ou ainda como um termóstato em modo de funcionamento stand-alone, com uma precisão de ±0,5ºC num intervalo entre 0ºC a + 70ºC. Os dados do termómetro são lidos numa interface série sobre 3 fios em formato de complemento de 2, com uma resolução de 9 bits. O DS1620 disponibiliza ainda funcionalidades de termóstato em funcionamento stand-alone em que fornece indicação de quando são ultrapassadas temperatura máximas (T H ) e temperaturas mínimas (T L ). Os valores para as temperaturas máximas e mínimas são programados na E2PROM do DS1620. Existem três linhas T HIGH, T LOW e T COM, que são activas quando: a temperatura medida é superior a T H, quando a temperatura medida é inferior a T L e quando a temperatura medida ultrapassou T H e ainda não desceu abaixo de T L. Neste modo de utilização as temperaturas T H e T L podem ser pré programadas e o DS1620 pode ser configurado para começar a automaticamente a efectuar a medida da temperatura quando se liga a alimentação do dispositivo. Microprocessadores III ano lectivo 2004/2005 Página 4 Trabalho Prático Nº3
Figura 3.5: Descrição do registo de configuração/estado do DS1620. O barramento a três fios é compreendido por 3 linhas, o RST (reset), CLK (relógio) e DQ (linha de dados). Todas as transferências de dados são inicializadas colocando a linha RST a nível lógico alto. O colocar da linha RST a nível baixo, finaliza a comunicação. Um ciclo de relógio é constituído pela sequência de pulso descendente seguido por um pulso ascendente (101). Na leitura de dados, estes devem estar válidos durante o pulso ascendente do ciclo de relógio. Os bits de dados são transmitidos (escritos na linha) no pulso descendente da linha de relógio e mantêm-se válidos durante o pulso ascendente da linha de relógio. Na leitura de dados do DS1620 o pino DQ é colocado em alta-impedância quanto a linha de CLOCK permanece em nível alto. A linha de RST a nível baixo durante um ciclo de comunicação faz com que DQ seja colocado em alta impedância, terminando assim a comunicação. A transferência de dados neste interface é efectuada enviando o LSB em primeiro lugar. Um registo de configuração e de estado determina o método de operação que o DS1620 deve utilizar numa aplicação em particular e indica o estado de uma operação de conversão de temperatura. Sequência a implementar: 1. Configurar o DS1620 como modo CPU (0x02), ver registo de configuração na tabela 2 a. Escreve comando 0x0C b. Escreve comando 0x02 2. Inicia a conversão Microprocessadores III ano lectivo 2004/2005 Página 5 Trabalho Prático Nº3
a. Escreve comando 0xEE 3. Lê a temperatura a. Escreve comando 0xAA 4. Para a conversão a. Escreve comando 0x22 Escreva um programa que efectue a leitura da temperatura e a afixe no visor de 7 segmentos. Tabela 1- Descrição do protocolo para as diversas instruções e comandos do DS1620. Porta LPT D0 D1 D2 /CE DATA 4 Displays de 7 t /STROBE D6 D7 DATA CLK RST DS1620 Figura 3.6: Implementação de sensor de temperatura (DS1620) e de um módulo de 4 visores com controlador incluído. Microprocessadores III ano lectivo 2004/2005 Página 6 Trabalho Prático Nº3
Bit Designação Função 7 6 5 4 DONE Bit que indica o fim da conversão (1), ou que ainda se encontra em conversão (0). THF Flag de temperatura alta, é colocado a 1, quando a temperatura é maior ou igual que T H. THL Flag de temperatura baixa, é colocado a 1, quando a temperatura é menor ou igual que T L. NVB 3 1 2 0 1 0 CPU 1SHOT Novolatile Memory Busy Flag, indica que está em progresso escrita na memória não-volátil (1). Quando a 0, a linha CLK/CONV, funciona como controlo para inicio da conversão se RST estiver a 0. Quando o CPU está a 1 o DS1620 é usado como comunicação a 3 fios com um CPU e neste caso a linha CLK/CONV é a linha de relógio em consonância com as linhas DQ e RST. Modo One-Shot, se estiver a 1, o DS1620 efectua uma conversão de temperatura após a recepção da condição de início de conversão. Se 1SHOT estiver a 0 efectua continuamente a conversão de temperatura. Tabela 2- Descrição do registo de configuração/estado do DS1620. Microprocessadores III ano lectivo 2004/2005 Página 7 Trabalho Prático Nº3
4. ANEXO Tabela da correspondência entre os pinos da ficha de 25 pinos e os registos da porta paralela: Nº do Pino (DB 25) Nº do pino Centronics Sinal SPP Direcção Entrada/Saída Registo Lógica Negativa 1 1 /STROBE Entrada/Saída Controlo Sim 2 2 Dados 0 Saída Dados 3 3 Dados 1 Saída Dados 4 4 Dados 2 Saída Dados 5 5 Dados 3 Saída Dados 6 6 Dados 4 Saída Dados 7 7 Dados 5 Saída Dados 8 8 Dados 6 Saída Dados 9 9 Dados 7 Saída Dados 10 10 /ACK Entrada Status 11 11 BUSY Entrada Status Sim 12 12 Paper-out PaperEnd Entrada Status 13 13 Select Entrada Status 14 14 /Auto-Linefead Entrada/Saída Controlo Sim 15 32 /Error Entrada Status 16 31 /initialize Entrada/Saída Controlo 17 36 /Select-Printer /Select-in 18-25 19-30 Terra GND Entrada/Saída Controlo Sim Microprocessadores III ano lectivo 2004/2005 Página 8 Trabalho Prático Nº3