2003/04 ©Helena Sarmento 1
• GPIB
• JTAG
2003/04 ©Helena Sarmento 2
• Interface que surgiu para obter uma ligação mais rápida que a ligação série.
• Foi inicialment utilizada para ligar impressoras. Actualmente, permite ligar vários tipos de periféricos (impressoras, scanners, discos rígidos, CDROMs,, etc)
• O porto paralelo inicial SPP (Standard Parallel Port) é unidirecional. Tem débito máximo de 150 kbytes/s e o comprimento máximo dos cabos é de 2m.
• O SPP utiliza uma ficha DB25 e as impressoras uma ficha de 36 pinos (ficha Centronics).
2003/04 ©Helena Sarmento 3
Porto paralelo
• Apareceram posteriormente definições bidireccionais: PS/2 (IBM), EPP-Enhanced Parallel Port (Intel, Zentith e Xircom) e ECP-Extended Parallel Port (HP e Microsoft).
2003/04 ©Helena Sarmento 4
Porto paralelo
2003/04 ©Helena Sarmento 5
Porto paralelo
• A norma IEEE 1284, aprovada em 1994, que permite comunicação bidireccional, define:
• A interface eléctrica • A interface mecânica
• A interface operacional: transferência de dados em modo de compatibilidade, nibble, byte, EPP e ECP.
2003/04 ©Helena Sarmento 6
Porto paralelo
• A norma define a comunicação no nível físico2003/04 ©Helena Sarmento 7 Interface mecânica
– Fichas :
• DB25 (IEEE 1284-A)
geralmente utilizada do lado do computador (host) • centronics (IEEE 1284-B)
geralmente utilizada do lado do periférico • ficha recomendada de 36 pinos (IEEE 1284-C)
para ser utilizada dos dois lados
– Equipamentos para serem ligados directamente devem ter fichas macho
– Equipamentos para serem ligados por cabos devem ter fichas fêmea, as fichas macho estão nos cabos nos cabos
2003/04 ©Helena Sarmento 8
Interface mecânica
– Especificação dos sinais nas fichas para os vários modos de funcionamento (sinais)
– Especificação das ligações dos cabos Host periférico
• DB25 para DB25 • DB25 para centronics • DB25 para ficha recomendada • Ficha recomendada para centronics • Ficha recomendada para ficha recomendada
(ligações)
2003/04 ©Helena Sarmento 9
Porto paralelo
Interface eléctrica
• Níveis eléctricos TTL (5V). Valores máximos +5,5V –0,5V. • Especificação do cabo de 18 pares entrançados
2003/04 ©Helena Sarmento 10
Porto paralelo
Interface eléctrica
• Especificação de tensões e correntes, capacidades e resistências de
pull up nos emissores (drivers) e receptores:
– Nível 1: compatibilidade com equipamentos anteriores à norma
Interface assimétrica
– Linhas de dados (74LS374 - totem pole) fornece 2,6mA e absorve 24mA
– Linhas de controlo (7405- open collector com 4,5 kΩde pull-up)
2003/04 ©Helena Sarmento 11
Porto paralelo
• Nível 2: Interface siimétrica (14 mA)
» driver » receptor VO =(VOH –VOL )/2 IO=14mA IO=14mA circuito aberto circuito aberto Condição 0,05 – 0,4 V/ns Slew rate 50±5 Ω RO < 0,4 V VOL > 2,4 V VOH > -0,5 V VOL < 5,5 V VOH valor Parâmetro
Deve duportar picos de tensão entre –2V e 7 V VO = 0,8 V VO = 2 V IL=14mA Condição < 50 pF Ci < 20 µA IIL < 20 µA IIH 0,2- 1,2 V histerese 0,8 V – 2 V VIlimiar valor Parâmetro 2003/04 ©Helena Sarmento 12
Porto paralelo
-saída do emissor adaptada à impedância característica do cabo
- entrada do receptor com impedância infinita
cabo RS
RD
RO 1,2 k
5V
RS para adaptar impedâncias
RO 1,2 k 5V 1,2 k 5V ZO RS1 RD RS2 RD cabo RO RS + RD < Ro
2003/04 ©Helena Sarmento 13 Interface operacional
! Iniciada em modo de compatibilidade (unidireccional) ! Depois, por negociação com o periférico:
! Transmite em mode de compatibilidade ! Transita para outro modo (bidireccional) ! Ao ligar a alimentação (fichas recomendadas):
! Host Logic High e Peripheral Logic High activados para indicar que podem comunicar
! A interface pode ser reiniciada: ! Volta ao modo de compatibilidade ! nInit (L) e nSelection (L) no host
2003/04 ©Helena Sarmento 14
Modo de compatibilidade (compatível com o SPP)
• Define o protocolo utilizado pela maioria dos PCs para transferirem dados para uma impressora.
• Corresponde ao funcionamento do SPP e é muitas vezes designado por modo Centronics (devido à ficha Centronics da impressora). • Neste modo:
– as linhas de controlo e de status definem o handshaking com o PC
– as linhas de dados transportam a informação do PC para o periférico.
• Neste modo: 150 kbytes/s, cabo de 2 m
2003/04 ©Helena Sarmento 15
Porto paralelo
Modo de compatibilidade Dados Status Control 2003/04 ©Helena Sarmento 16Porto paralelo
• Sinais no modo de compatibilidade
8 linhas de saída Out
D0 a D7 Dados
Activo a “0”.Indica condição de erro In
ERROR Status
Activo a “1”. Indica impressora ligada In
SELECT Status
Ausência de papel (Paper Empty) In
PE Status
Activo a “1”.Indica que a impressora está ocupada a receber dados In BUSY Status Activo a “0”. In ACK Status Activo a “0”. Out INIT Controlo
Activo a “0”. Indica á impressora que foi seleccionada Out
SELECTIN Controlo
Activo a “0”. Indica à impressora para incluir um LF depois de cada CR Out
AUTOFEED Controlo
Activo a “0”. Indica dados válidos em D0-D7 Out STROBE Controlo Descrição In/Out Sinal Tipo 2003/04 ©Helena Sarmento 17
Porto paralelo
• Registos*Offset face ao endereço base do porto
Usado para definir sinais de controlo W
Controlo 2
Contém bits de status R
Status 1
Porto para ler ou escrever dados R/W Dados 0 Descrição R/W Nome Offset= 2003/04 ©Helena Sarmento 18
Porto paralelo
• Ciclo de transferência de dados
– O programa escreve os dados no registo de dados
– O programa lê o registo de status para verificar se o periférico não está ocupado (BUSY = 0)
– Se BUSY = 0 o programa põe no registo de controlo STROBE = 0 – O periférico activa a linha BUSY, lê os dados e indica que pde receber
2003/04 ©Helena Sarmento 19 Modo nibble
• Este modo permite criar um canal bidireccional com transferência de dados do periférico para o PC
• Utiliza 4 das 5 linhas de Status (do periférico para o PC) para os dados e a quinta para gerar uma interrupção ao PC (nibble válido).
Ni
bbl
e
2003/04 ©Helena Sarmento 20
• Com dois ciclos de transferência obtém-se um byte. Os bits do registo de status têm de ser manipulados por software para obter o nibble. • Neste modo, a comunicação do periférico para o PC envolve dois
ciclos e execução de software, ficando o ritmo de transmissão limitado a 50 kbytes/s.
• As limitações não são críticas se os requisitos de transferência do periférico para o PC forem reduzidos.
Sinais envolvidos na transferência de dados do periférico para o PC
2003/04 ©Helena Sarmento 21
Porto paralelo
• Sinais no modo nibble
Não são utilizados na transferência inversa Out D0 a D7 D0 a D7 D0, depois D4 In nDataAvail ERROR D1, depois D5 In Xflag SELECT D2, depois D6 In AchDataRe q PE D3, depois D7 In PtrBusy BUSY
PtrClk =“0”, indica nibble válido. PtrClk =“1”, como resposta a HostBusy = “1” In
PtrClk ACK
Não é utilizado na transferência inversa Out
INIT INIT
A “1”, indica que o PC está no num modo de transferência 1284 Out
1284Active SELECTIN
HostBusy = “0”, indica que o PC está pronto para receber o nibble. HostBusy = “1” indica
que o nibble foi recebido. Out
HostBusy AUTOFEED
Não é utilizado na transferência inversa Out STROBE STROBE Descrição In/Out Sinal Sinal SPP 2003/04 ©Helena Sarmento 22
Porto paralelo
• Ciclo de transferência de dados
1. O PC assinala que pode receber dados (HostBusy = 0) 2. O periférico responde pondo os dados (nibble) nas linhas de Status 3. O periférico assinala que o nibble é válido (PtrClk = 0) 4. O PC indica que recebeu um nibble e ainda não pode receber o
seguinte
5. O periférico responde que tomou conhecimento. 6. Repetem-se os cinco passos anteriores
2003/04 ©Helena Sarmento 23
Porto paralelo
Modo byte
• Este modo permite criar um canal bidireccional.
• Modo em que as linhas de dados podem ser utilizadas também para leitura de dados do perférico.
• Modo utilizado pela IBM no porto PS/2.
• Necessita de apenas um ciclo e não dois como o modo nibble, permitindo ritmos semelhantes ao modo de compatibilidade.
2003/04 ©Helena Sarmento 24
Porto paralelo
• Modo byte
Dados do perférico para o host e em sentido contrário
In/Out D0 a D7 D0 a D7
Dados estão disponíveis no canal inverso In DataAvail ERROR Não é utilizado In Xflag SELECT
Segue o sinal DataAvail In
AchDataRe q PE
Indica canal directo ocupado In
PtrBusy BUSY
PtrClk =“0”, indica nivbble válido. PtrClk =“1”, como resposta a HostBusy = “1” In
PtrClk ACK
Não é utilizado na transferência inversa Out
INIT INIT
A “1”, indica modo de transferência 1284 Out
1284Active SELECTIN
HostBusy = “0”, indica que o PC está pronto para receber o byte. HostBusy = “1” indica que o byte
foi recebido. Out
HostBusy AUTOFEED
Levado a “0” no fim da transferência de um byte (indica que o byte foi recebido) Out HostClk STROBE Descrição In/Out Sinal Sinal SPP
2003/04 ©Helena Sarmento 25
• Modo byte
1. PC indica que está pronto para receber dados (HostBusy =0) 2. O periférico coloca o byte nas linhas de dados
3. O periférico indica que os dados são válidos com PtrClk = 0 4. O PC lê os dados e indica que os leu com (HostBusy =1) 5. O periférico responde com PtrClk = 1 e o PC gera em resposta um
impulso em HostClk
Os passos repetem-se para ler novos bytes.
2003/04 ©Helena Sarmento 26
Modo ECP (Extented Capability Port)
• Modo bidireccional com alto desempenho, inicialmente desenvolvido pela HP e Microsoft (a norma não inclui todas as características). • Permite dois tipos de ciclos nas direcções directa e inversa:
– Ciclo de dados (HostAck = 1) – Ciclo de comandos (HostAck = 0) • Permite transferências com compressão:
• RLE – Run-Lenght (cadeias de caracteres com bytes seguidos repetidos )
• O bit 7 num ciclo de comandos indica se há compressão • Permite acesso a múltiplos (até 128) dispositivos lógicos num
dispositivo físico (ex: fax/impressora/modem).A impressora pode estar a imprimir e simultaneamente aceder-se ao modem.
2003/04 ©Helena Sarmento 27
Porto paralelo
• Sinais no modo de ECP
O periférico indica se são dados (“1”) ou comandos (“0”) a transferir para PC. Utilizado com HostClk para transferir informação do PC
para o periférico. In
PeriphAck BUSY
Utilizado com HostAck para transferir dados ou comandos do periférico para o PC. In
PeriphClk ACK
“0” indica transferência do periférico para o PC Out
ReverseReque st INIT
A “1”, indica modo de transferência 1284 Out
1284Active SELECTIN
PC indica se são dados (“1”) ou comandos (“0”) a transferir para o periférico. Utilizado com PeriphClk para transferir informação do
periférico para o PC. Out
HostAck AUTOFEED
Utilizado com PeriphAck para transferir dados ou comandos do PC para o periférico. Out HostClk STROBE Descrição In/Out Sinal Sinal SPP 2003/04 ©Helena Sarmento 28
Porto paralelo
• Sinais no modo de ECP (cont)
Dados para transferência bidireccional In/Out
D0 a D7 D0 a D7
O periférico indica que tem dados para transferir In PeriphRequest ERROR Flag de extensibilidade In Xflag SELECT
O periférico indica recepção de ReverseRequest In AckReverse PE 2003/04 ©Helena Sarmento 29
Porto paralelo
• Transferência de informação do PC para o periférico
1. O PC põe os dados em D0-D7 e indica que é ciclo de dados (HostAck =“1”) 2. O PC põe HostClk = “0” para indicar dados válidos
3. O periférico acusa a recepção (PeriphAck =“1”)
4. O PC muda HostClk (HostClk = “1”) para enviar os dados para o periférico 5. O periférico indica que está pronto para novo byte (PeriphAck =“0”) 6. O ciclo repete-se com HostAck =“0” para indicar ciclo de transferência de
comandos 2003/04 ©Helena Sarmento 30
Porto paralelo
• Transferência de informação do periférico para o PC1. O PC pede uma transferência do periférico para o PC (ReverseRequest = 0) 2. O periférico acusa a recepção do pedido (AckReverse = “0”)
3. O periférico põe os dados em D0-D7 e indica que são dados com PheriphAck = “1”.
4. O periférico indica que são dados válidos (PheriphClk =“0”). 5. O PC acusa a recepção com HostAck =“1”
6. O periférico põe PheriphClk =“1” para transferir comandos
2003/04 ©Helena Sarmento 31 • Registos no modo ECP:
Registo de controlo estendido Conf. R/W ecr 1026 Registo de configuração Conf. R/W cnfgB 1025 Registo de configuração Test R cnfgA 1024 FIFO de test ECP R/W Tfifo 1024 Fast Centr. EPP todos todos ECP SPP, byte Modo
FIFO de dados do ECP R/W
ecpDfifo 1024
FIFO de dados do porto paralelo R/W cFifo 1024 registo de controlo R/W dcr 2 registo de status R/W dsr 1
FIFO de endereços no modo ECP R/W ecpAfifo 0 Porto de dados R/W Data 0 Descrição R/W Nome Offset 2003/04 ©Helena Sarmento 32
Modo EPP (Enhanced Parallel Port)
• Modo bidireccional com alto desempenho, inicialmente desenvolvido pela Intel (cicuito integrado 82360), Xircom e Zenith.
• Permite transferência de dados e de endereços (multiplexados nas linhas D0-D7).
• A sinalização do tipo de um microprocessador.
• A identificação de um dispositivo deste tipo passa por uma negociação inicial num dos outros modos bidireccionais
2003/04 ©Helena Sarmento 33
Porto paralelo
Modo EPP (Enhanced Parallel Port)
• Define 4 tipos de ciclos de transferência iniciados pelo PC: 1. Leitura de dados
2. Escrita de dados 3. Leitura de endereços 4. Escrita de endereços
• Nos ciclos de leitura e escrita de endereços são passados endereços, informação de controlo e comandos.
• A taxa de transmissão pode ir de 500k a 2M bytes por segundo (aproxima-se do desempenho do barramento ISA ).
2003/04 ©Helena Sarmento 34
Porto paralelo
• Sinais no modo de EPP
Dados/endereços bidireccionais In/Out
D0 a D7 D0 a D7
Pode ser utilizado de diferentes formas In
ERROR
Pode ser utilizado de diferentes formas In
SELECT
Pode ser utilizado de diferentes formas In
PE
A “0”,indica que pode ser iniciado um ciclo de transferência de dados e a “1” que pode ser
terminado In
WAIT BUSY
Usado para o perférico gerar uma interrupção no PC
In INTR ACK
A “0”, faz reset do periférico Out
RESET INIT
A “0”, indica que uma operação de leitura ou escrita de endereços está a decorrer Out
ADDRSTB SELECTIN
A “0”, indica que uma operação de leitura ou escrita de dados está a decorrer Out
DATASTB AUTOFEED
A “0”, indica escrita e a “1” leitura Out WRITE STROBE Descrição In/Out Sinal Sinal SPP 2003/04 ©Helena Sarmento 35
Porto paralelo
• Registos no modo EPP
EPP EPP EPP SPP/EPP SPP/EPP SPP/EPP Modo
Pode ser utilizado ou não. Pode servir, por exemplo, para operações de I/O de 16 ou 32 bits 5-7
Para gerar ciclos de leitura e escrita de dados R/W
Dados EPP 4
Para gerar ciclos de leitura e escrita de endereços R/W
Endereços EPP 3
Usado para definir sinais de controlo W
Controlo (SPP) 2
Contém bits de status R Status (SPP) 1 Porto de dados do SPP W Dados (SPP) 0 Descrição R/W Nome Offset 2003/04 ©Helena Sarmento 36
Porto paralelo
• Ciclo de escrita de dados (EPP)1. O PC escreve no registo de dados EPP (IOW = 0)
2. A linha de WRITE é actuada e os dados são disponibilizados em D0-D7 3. DataStrobe é activado pois o periférico tem WAIT = 0
4. O porto espera a indicação de dados lidos pelo periférico ( WAIT = 1) 5. DataStrobe é desactivado e o ciclo termina
6. O ciclo de I/O termina (IOW = 1) 7. Pode começar novo ciclo