Pinos
O módulo PEPE tem os seguintes pinos:
Designação |
Nº de bits |
Descrição |
Reset |
1 |
Inicialização (activo a 1) |
Int0 |
1 |
Interrupção 0 (activa a 1) |
Int1 |
1 |
Interrupção 1 (activa a 1) |
Int2 |
1 |
Interrupção 2 (activa a 1) |
Int3 |
1 |
Interrupção 3 (activa a 1) |
IntAck |
1 |
Atendimento da Interrupção (InterruptAcknowledge) (activo a 1; só para a interrupção 3 |
Clock |
1 |
Entrada de relógio |
DataHigh |
8 |
D(15..8) - Byte de maior peso do barramento de dados |
DataLow |
8 |
D(7..0) - Byte de menor peso do barramento de dados |
A1-A15 |
15 |
A(15..1) - Barramento de endereços, com excepção de A0 |
A0 |
1 |
A0 - Bit de menor peso do barramento de endereços |
ByteAdd |
1 |
(Byte Addressing) Endereçamento de byte BA=1 – acessos à memória em byte BA=0 – acessos à memória em palavra |
nRead |
1 |
Activo a 0 nos ciclos de leitura à memória |
nWrite |
1 |
Activo a 0 nos ciclos de escrita na memória |
Wait |
1 |
Wait=1 – prolonga o ciclo de acesso à memória Wait=0 – ciclo de acesso à memória com duração mínima |
BusRequest |
1 |
Pedido de DMA, activo a 1 |
BusGrant |
1 |
Autorização para DMA, activo a 1 |
Os pinos Int0 a Int3 permitem gerar interrupções externas. Estes pinos são activos no flanco de 0 para 1. Os pinos estão ordenados por prioridade, sendo Int0 o mais prioritário e o Int3 o menos prioritário. É possível inibir todas as interrupções externas e cada interrupção em particular de forma independente das restantes.
A interrupção correspondente ao pino Int3 é vectorizada e exige um controlador de interrupções (PIC – Programmable Interrupt Controller) adequado (não descrito neste documento). Quando atende esta interrupção, o processador leva o pino IntAck (Interrupt Acknowledge) a 1. Esse pino deve ligar ao PIC, que nessa altura é suposto colocar no byte de menor peso do barramento de dados um número (0 a 255) que a rotina de atendimento desta excepção pode usar para identificar a fonte da interrupção.
Os restantes pinos implementam duas interfaces com funcionalidades específicas:
· Interface de DMA:
o BusRequest – Pedido de autorização para operação de DMA;
o BusGrant –Concessão de autorização para operação de DMA.
O pino ByteAdd destina-se a suportar o endereçamento de byte, juntamente com o bit A0 do barramento de endereços. Os bits A15 a A1 definem qual a palavra de memória endereçada, ficando o acesso a cada um dos bytes dessa palavra dependente dos valores de A0 e ByteAdd, de acordo com a seguinte tabela.
Tipo de acesso |
ByteAdd |
A0 |
Byte da palavra acedido |
Palavra (16 bits) |
0 |
0 |
Os dois (acesso a toda a palavra) |
1 |
Ilegal. Acesso de palavra desalinhado. Gera excepção. |
||
Byte (8 bits) |
1 |
0 |
Acede só ao byte no endereço par |
1 |
Acede só ao byte no endereço ímpar |
O pinos nRead e nWrite são usados no ciclo de acesso à memória para leitura e escrita, respectivamente, e são activos a 0. Num dado ciclo, apenas um deles estará activo. A transferência de dados está completa quando estes pinos transitam de 0 para 1.