MICROPCI V1.2
INTERFACE PCI - MANUAL DE UTILIZA¸
C˜
AO
Oct´avio C´esar Martins Pinto
octavio.pinto@fe.up.pt
Conte´
udo
1 Introdu¸c˜ao ao MICROPCI 1
2 Constitui¸c˜ao e caracter´ısticas 2
2.1 Conectores da interface . . . 2
2.1.1 Alimenta¸c˜ao . . . 2
2.1.2 Conector de liga¸c˜ao a CORE51 . . . 3
2.1.3 Conector gen´erico . . . 4
2.1.4 Conector PCI . . . 4
2.2 Configura¸c˜ao dos jumpers . . . 6
2.3 Cabos de liga¸c˜oes . . . 6
2.3.1 Flat Cable de 40 pinos . . . 6
2.3.2 Flat Cable de 20 pinos . . . 6
2.3.3 Power Cable . . . 8
3 Modo de funcionamento 9 3.1 Escrita s´erie e directa . . . 11
3.2 Leitura s´erie e directa . . . 12
4 Modifica¸c˜oes do MICROPCIv1.1 13 A Hardware da interface MICROPCI 14 A.1 PCB . . . 14
A.2 Lista de Componentes . . . 15
A.3 Esquema El´ectrico . . . 16
B Caracter´ısticas gerais do shift register 74xxx299 18
Cap´ıtulo 1
Introdu¸
c˜
ao ao MICROPCI
A interface MICROPCI ´e resultado de um projecto de fim de curso de Engenharia Electrot´ecnica,
desenvolvido pelo aluno Oct´avio C´esar Martins Pinto. A interface MICROPCI ´e uma interface PCI
de 32 bits para microcontroladores de 8bits.
Este documento ´e um manual de utiliza¸c˜ao da interface MICROPCI, descrevendo a suas
caracter´ıs-ticas, e o modo de utiliza¸c˜ao da mesma.
Figura 1.1: MicroPCI v1.2
O objectivo desta interface ´e, de poder controlar um dispositivo PCI de 32bits a partir de
micro-controladores de 8 bits, e outros. Ou seja o utilizador n˜ao precisa de se preocupar com os sinais PCI
necess´arios, ou como efectuar transac¸c˜oes, s´o necessita desta interface e da livraria de fun¸c˜oes que
permite directamente escrever/ler para uma posi¸c˜ao de mem´oria do dispositivo PCI, permitindo o seu
Cap´ıtulo 2
Constitui¸
c˜
ao e caracter´ısticas
O MICROPCI ´e uma interface geral para acesso e controlo do barramento PCI com alimenta¸c˜ao
pr´opria, atrav´es de um sistema microcontrolado ou outro. Para isso existe dois conectores principais
para liga¸c˜ao destes sistemas que est˜ao descritos nas sec¸c˜oes seguintes.
2.1
Conectores da interface
Figura 2.1: Conectores da interface
2.1.1 Alimenta¸c˜ao
O conector da alimenta¸c˜ao permite a liga¸c˜ao de uma Fonte DC entre 6.5V e 18V. Este conector
tem protec¸c˜ao contra invers˜ao de polaridade, mas s´o funciona tendo a polaridade correctamente ligada!
´
E recomendado utilizar uma tens˜ao de alimenta¸c˜ao da ordem dos 9V, para evitar sobreaquecimento
dos reguladores de tens˜ao.
Existe um LED (Vermelho) que quando ligado indica que a interface est´a correctamente ligada.
2.1.2 Conector de liga¸c˜ao a CORE51
A interface disponibiliza um conector de liga¸c˜ao directa `a CORE51, facilitando o desenvolvimento
de software para microcontrolador de 8 bits. Este ´e um conector de 40 pinos, mas s´o alguns dos sinais
s˜ao utilizados.
Figura 2.3: Conector de liga¸c˜ao a CORE51 (40 pinos)
Tabela 2.1: Defini¸c˜ao dos sinais do conector de liga¸c˜ao `a CORE51 de 40 pinos
Pino 8051 Sinal Sinal Descri¸c˜ao Pino 8051 Sinal Sinal Descri¸c˜ao 1 P1.0 PCI CLK CLOCK do barramento PCI 40 VCC -
-2 P1.1 S IN Serial INPUT - shifts registers 39 P0.0(AD0) - -3 P1.2 DEVSEL# Sinal PCI - Device Select 38 P0.1(AD1) - -4 P1.3 TRDY# Sinal PCI - Target Ready 37 P0.2(AD2) - -5 P1.4 STOP# Sinal PCI - Stop transaction 36 P0.3(AD3) - -6 P1.5 OE Output Enable - shifts registersa 35 P0.4(AD4) - -7 P1.6 GNT/OE Sinal PCI - Grant e OEb 34 P0.5(AD5) - -8 P1.7 S1 Mode Select 1 - shifts registers 33 P0.6(AD6) - -9 RESET RST Reset - do barramento PCI 32 P0.7(AD7) -
-10 P3.0(RxD) - - 31 EA/VPP -
-11 P3.1(TxD) - - 30 ALE/PROG -
-12 P3.2(INT0) REQ# Sinal PCI - Request 29 PSEN - -13 P3.3(INT1) INTA# Sinal PCI - Interrupt A (e C)c 28 P2.7(A15) - -14 P3.4(T0) CLK CLOCK - shifts registers 27 P2.6(A14) - -15 P3.5(T1) S OUT Serial OUTPUT - shifts registers 26 P2.5(A13) -
-16 P3.6(WR) - - 25 P2.4(A12) - -17 P3.7(RD) - - 24 P2.3(A11) - -18 - - - 23 P2.2(A10) - -19 - - - 22 P2.1(A9) - -20 GND GND Ground 21 P2.0(A8) - -a
OE comum aos 4 shifts registers que cont´em AD[31:0]
b
OE do shift register dos sinais de controlo(FRAME#,IRDY#,...)
2.1.3 Conector gen´erico
Existe um outro conector de 20 pinos que disponibiliza a maior parte dos sinais do barramento PCI e todos os sinais de controlo da interface. Este conector permite aceder a sinais que possam ter
relevˆancia em algumas aplica¸c˜oes.
Figura 2.4: Conector gen´erico (20 pinos)
Tabela 2.2: Defini¸c˜ao dos sinais do conector geral de 20 pinos
Pino Sinal Descri¸c˜ao Liga¸c˜ao
1 REQ# Sinal PCI - Request PCI bus, com R=2k7 pull-up 2 INTA# Sinal PCI - Interrupt A (e C) PCI bus, com R=10k pull-up 3 S OUT Serial OUTPUT - shifts registers shift register
4 GNT#/OE Sinal PCI - Grant/Output Enable PCI bus, com R=2k7 pull-up/shift register via inversor 5 CLR Clear - shifts registers shift register, com R=2k7 pull-up
6 STOP# Sinal PCI - Stop transaction PCI bus 7 PERR# Sinal PCI - Parity Error PCI bus 8 S IN Serial INPUT - shifts registers shift register 9 PCI CLK CLOCK do barramento PCI PCI bus
10 PRSNT2# Sinal PCI - Device Present 2 PCI bus com R=10k pull-up 11 PRSNT1# Sinal PCI - Device Present 1 PCI bus com R=10k pull-up 12 GNT#/OE Sinal PCI - Grant PCI bus, com R=2k7 pull-up 13 REQ# Sinal PCI - Request PCI bus, com R=2k7 pull-up 14 DEVSEL# Sinal PCI - Device Select PCI bus, com R=2k7 pull-up 15 TRDY# Sinal PCI - Target Ready PCI bus, com R=2k7 pull-up 16 SERR# Sinal PCI - System Error PCI bus, com R=2k7 pull-up 17 OE Output Enable - shifts registers shifts registers
18 S1 Mode Select 1 - shifts registers shifts registers 19 CLK CLOCK - shifts registers shifts registers
20 RST Reset - do barramento PCI via inversor para o PCI bus
Nota: Existe sinais repetidos, devido `as modifica¸c˜oes efectuadas na nova vers˜ao 1.2 da interface
que ser˜ao explicadas mais `a frente.
2.1.4 Conector PCI
A interface foi desenvolvida em torno do conector PCI de 32bits/5V.
Figura 2.6: Descri¸c˜ao dos pinos do conector PCI
Nota: Sinais do conector PCI que n˜ao foram usados na interface:
• Sinais JTAG : A1-TRST#, A3-TMS, A4-TDI, B2-TCK, B4-TDO. • Sinais de POWER Management : A14-3.3Vaux, A19-PME#. • Todos os sinais “reserved”: A9, A11, A40, A41, B10, B14.
• Sinais de expans˜ao de 64bits : A60-REQ64#, B60-ACK64#.
2.2
Configura¸
c˜
ao dos jumpers
No MICROPCI existe apenas 2 jumpers, que permite aceder `as interrup¸c˜oes INTC# e INTD# do
barramento PCI.
Figura 2.7: Configura¸c˜ao dos Jumpers
Tabela 2.3: Defini¸c˜ao dos Jumpers
Jumper OFF ON
JP1 INTA# INTA# e INTC#
JP2 INTB# INTB# e INTD#
Sendo as sa´ıdas INTA#, INTB#, INTC# e INTD# open-drain, a liga¸c˜ao deste sinais foram
agru-pados dois a dois para diminuir o n´umero de sinais necess´arios. O circuito de liga¸c˜oes pode ser visto
no esquema el´ectrico da p´agina 17 na figura A.5.
Nota: Caso os jumpers estejam ON, para saber qual a interrup¸c˜ao que foi gerada ´e necess´ario
consultar os registos internos de cada fun¸c˜ao do dispositivo PCI.
Na nova vers˜ao 1.2 foi retirado o sinal INTB# n˜ao estando portanto acess´ıvel INTB# e INTD#.
Devido a maior parte dos dispositivos PCI usar apenas INTA# n˜ao foi efectuado adapta¸c˜oes nesta
vers˜ao, deixando para futuras vers˜oes a possibilidade de juntar por exemplo todos os INTx# num s´o
e portanto deixando de ser necess´ario os jumpers. Nesta situa¸c˜ao, o driver ter´a a responsabilidade de
verificar qual a fun¸c˜ao que gerou a interrup¸c˜ao!
2.3
Cabos de liga¸
c˜
oes
2.3.1 Flat Cable de 40 pinos
O cabo de 40 pinos permite a liga¸c˜ao directa `a placa de desenvolvimento CORE51 (ver figura 2.8).
Na figura 2.9 mostra-se a forma correcta da liga¸c˜ao do MicroPCI `a CORE51.
2.3.2 Flat Cable de 20 pinos
Figura 2.8: Flat cable de liga¸c˜ao do MICROPCI `a CORE51
Figura 2.9: Liga¸c˜ao entre MICROPCI e CORE51
2.3.3 Power Cable
O cabo de alimenta¸c˜ao permite alimentar a microPCI. Como j´a foi referido este poder´a ligar a uma
fonte de alimenta¸c˜ao DC externa de 6.5V - 18V.
Figura 2.11: Cabo de Alimenta¸c˜ao do MicroPCI
Como est´a representado na figura 2.11 o conector preto ´e a massa, e o vermelho o conector positivo!
Cap´ıtulo 3
Modo de funcionamento
Sendo o barramento PCI constitu´ıdo por muitos sinais (32 de endere¸cos/dados e 21 principais de
controlo), seria dif´ıcil ligar e controlar directamente atrav´es de pequenos microcontroladores,
nomea-damente os de 8 bits. Esta interface foi, portanto, desenvolvida de modo a poder aceder `a maior parte
dos sinais em modo s´erie recorrendo a shifts registers universais de 8bits ligados em cadeia, ou seja
permitindo ler e escrever n vezes 8bits com apenas 6 sinais (Excluindo o ’clear’). Neste caso foram utilizado 5 shifts registers disponibilizando um total de 40bits.
Figura 3.1: Representa¸c˜ao l´ogica da cadeia dos 5 shifts registers usados na interface.
Nota: As caracter´ısticas principais dos shifts register podem ser encontradas nos anexos B p´agina
18. Os sinais do barramento PCI, ao qual liga cada registo dos shifts registers, encontra-se na tabela
3.1 na p´agina 10.
Na vers˜ao 1.2 da interface MICROPCI, o sinal S0, j´a n˜ao est´a dispon´ıvel nos conectores (Substitu´ıdo
por GNT#/OE). Sendo que a cadeia de shifts registers s´o tˆem dois modos de funcionamento:
1. Shift Right - A cada impulso de Clock, os 40 registos s˜ao deslocados no sentido de S IN para
S OUT.
2. Parallel Load - A cada impulso de Clock, os 40 sinais s˜ao carregados para os registos.
Na vers˜ao 1.2 da interface j´a ´e poss´ıvel controlar o shift register U2 como input ou output usando o
sinal GNT#/OE. Sendo que, quando GNT#=0 ⇒ OE=1 e GNT#=1 ⇒ OE=0.
Nas sec¸c˜oes seguintes, mostra-se como utilizar a cadeia de shifts registers, para escrever e ler sinais
Tabela 3.1: Defini¸c˜ao das liga¸c˜oes dos shifts registers ao barramento PCI
Shift N´umero Sinal N´umero Sinal Register do pino na cadeia PCI
U1 7 A/QA ou I/O0 1 AD[31]
U1 13 B/QB ou I/O1 2 AD[16]
U1 6 C/QC ou I/O2 3 AD[29]
U1 14 D/QD ou I/O3 4 AD[23]
U1 5 E/QE ou I/O4 5 AD[25]
U1 15 F/QF ou I/O5 6 AD[21]
U1 4 G/QG ou I/O6 7 AD[27]
U1 16 H/QH ou I/O7 8 AD[19]
U2 7 A/QA ou I/O0 9 IDSEL
U2 13 B/QB ou I/O1 10 FRAME#
U2 6 C/QC ou I/O2 11
-U2 14 D/QD ou I/O3 12 IRDY#
U2 5 E/QE ou I/O4 13 C/BE[3]#
U2 15 F/QF ou I/O5 14 C/BE[2]#
U2 4 G/QG ou I/O6 15 C/BE[1]#
U2 16 H/QH ou I/O7 16 C/BE[0]#
U3 7 A/QA ou I/O0 17 AD[30]
U3 13 B/QB ou I/O1 18 AD[28]
U3 6 C/QC ou I/O2 19 AD[26]
U3 14 D/QD ou I/O3 20 AD[24]
U3 5 E/QE ou I/O4 21 AD[15]
U3 15 F/QF ou I/O5 22 AD[22]
U3 4 G/QG ou I/O6 23 AD[20]
U3 16 H/QH ou I/O7 24 AD[18]
U4 7 A/QA ou I/O0 25 AD[17]
U4 13 B/QB ou I/O1 26 AD[8]
U4 6 C/QC ou I/O2 27 AD[13]
U4 14 D/QD ou I/O3 28 AD[10]
U4 5 E/QE ou I/O4 29 AD[11]
U4 15 F/QF ou I/O5 30 AD[12]
U4 4 G/QG ou I/O6 31 AD[9]
U4 16 H/QH ou I/O7 32 AD[14]
U5 7 A/QA ou I/O0 33 AD[7]
U5 13 B/QB ou I/O1 34 AD[6]
U5 6 C/QC ou I/O2 35 AD[5]
U5 14 D/QD ou I/O3 36 AD[4]
U5 5 E/QE ou I/O4 37 AD[3]
U5 15 F/QF ou I/O5 38 AD[2]
U5 4 G/QG ou I/O6 39 AD[1]
3.1
Escrita s´
erie e directa
Existe sinais na interface que s˜ao acess´ıveis directamente para escrita, ou seja, sem passar pela
cadeia de shifts registers, nomeadamente:
Para o barramento PCI: Para o controlo da cadeia de shifts registers:
• PCI CLK • RST • GNT#/OE • S1 • CLR • S IN • OE • CLK ou CP
Este sinais podem ser escritos directamente atrav´es do respectivo pino dos conectores de 20 ou 40
pinos! Por outro lado existe sinais que s´o est˜ao acess´ıveis via os shifts registers.(ver tabela 3.1
na p´agina 10)
M´etodo para escrever na cadeia de shifts registers:
• Configurar a cadeia de shifts registers:
1. Por no modo “Shift Right”: S1=0(S0=1 por hardware).
2. O sinal GNT#/OE deve estar activo em modo MASTER, e desactivo em modo SLAVE. 3. O sinal Output Enable (OE) pode estar activo ou inactivo conforme o desejado.
Nota: J´a n˜ao ´e necess´ario desactivar o master reset/clear pois este sinal tˆem uma
re-sistˆencia de pull-up que garante que este sinal est´a sempre desactivo (=1) (CLR=1 por
hardware).
• Preparar os 40 bits a introduzir na cadeia dos shifts registers.
• Introduzir na cadeia o bit 40 em primeiro, 39 em seguida e assim sucessivamente at´e ao bit 1 de
forma a ficarem ordenados correctamente. 1. Escrever o bit em S IN
2. Efectuar um impulso ascendente em CLK (ou CP conforme datasheet)
Ap´os o impulso os 40 bits s˜ao deslocados ficando o bit de S IN no registo 1
3. Voltar ao ponto 1 at´e ter introduzidos os 40 bits.
Nota: Ao introduzir os 40 bits, os dados anteriores s˜ao substitu´ıdos pelos novos! Para optimizar o
processo, pode-se ler os bits que v˜ao saindo em S OUT `a medida que se vai escrevendo para os shifts
registers, desta forma s´o num ciclo escrevemos 40 bits nesses e podemos ler os 40 bits anteriores!(Este
procedimento s´o ´e valido se os bits que se introduz na cadeia de shifts registers n˜ao depende do valor
3.2
Leitura s´
erie e directa
Existe sinais na interface que s˜ao acess´ıveis directamente para leitura, ou seja, sem passar pela
cadeia de shifts registers,nomeadamente:
Para o barramento PCI: Para o controlo da cadeia de shifts registers:
• INTA# • PERR# • SERR# • PRSNT1# • PRSNT2# • REQ# • PAR • DEVSEL# • TRDY# • STOP# • S OUT
Este sinais podem ser lidos directamente atrav´es do respectivo pino dos conectores de 20 ou 40
pinos! Por outro lado existe sinais que s´o est˜ao acess´ıveis via os shifts registers.(ver tabela 3.1
na p´agina 10)
M´etodo para ler da cadeia de shifts registers:
• Configurar a cadeia de shifts registers:
1. Por no modo “Shift Right”: S1=0(S0=1 por hardware).
2. O sinal GNT#/OE deve estar activo em modo MASTER, e desactivo em modo SLAVE. 3. O sinal Output Enable (OE) pode estar activo ou inactivo conforme o desejado.
Nota: J´a n˜ao ´e necess´ario desactivar o master reset/clear pois este sinal tˆem uma
re-sistˆencia de pull-up que garante que este sinal est´a sempre desactivo (=1) (CLR=1 por
hardware).
• Preparar os 40 bits que ir˜ao receber os dados lidos.
• Ler na cadeia o bit 40 em primeiro, 39 em seguida e assim sucessivamente at´e ao bit 1 de forma a ficarem ordenados correctamente.
1. Ler o bit em S OUT
2. Efectuar um impulso ascendente em CLK (ou CP conforme datasheet)
Ap´os o impulso os 40 bits s˜ao deslocados, o registo 40 passa agora a ter o valor do registo
39.
3. Voltar ao ponto 1 at´e ter lido os 40 bits.
Nota: Ao ler os 40 bits, ser´a introduzido nos shifts registers o que estiver em S IN em cada impulso!
Para optimizar o processo, pode-se escrever os bits seguintes `a leitura desta forma s´o num ciclo lemos
40 bits e escrevemos 40 novos bits na cadeia!( Este procedimento s´o ´e valido se os bits que se introduz
Cap´ıtulo 4
Modifica¸
c˜
oes do MICROPCIv1.1
Na fase de desenvolvimento do software da interface foram encontradas algumas caracter´ısticas que seriam interessantes incluir na interface para aumentar a sua flexibilidade:
V´arios dispositivos PCI necessitam de efectuar transac¸c˜oes PCI para funcionar correctamente, isto
´
e serem MASTER. Nem todos os dispositivos podem ser controlados em modo SLAVE que era o
pressuposto nas vers˜oes anteriores da interface. Este facto deve-se a que, esta caracter´ıstica torna o
sistema mais eficiente isto ´e retira carga de processamento ao processador. Por exemplo, na placa de
rede baseada no RTL8139D, esta recorre ao modo master para armazenar e ir buscar os pacotes de
dados `a mem´oria principal, evitando que seja o processador a efectuar esta tarefa.
Foi necess´ario alterar a interface de modo a suportar o modo master de um dispositivo PCI.
• Ligar os sinais GNT# e REQ# ao microcontrolador que permite controlar a possibilidade de
um dispositivos iniciar transa¸c˜oes (modo MASTER).
• Por outro lado foram colocadas as resistˆencia de pull-up directamente na interface, em vez de
usar uma breadboard.
• Ligar o sinal OE do shift register dos sinais de controlo (FRAME#,IRDY#,IDSEL,C/BE#[3:0])
ao microcontrolador de modo a poder colocar estes sinais em alta-impedˆancias quando a interface
est´a em modo slave!
A liga¸c˜ao de REQ# foi efectuada directamente ao pino onde estava o sinal INTB#, visto podermos
agrupar todos os sinais de interrup¸c˜ao num s´o.
A liga¸c˜ao das resistˆencia de pull-up foi efectuada directamente na interface utilizando arrays de
resistˆencias de 2k7Ω com pino comum.
Devido a ter poucos sinais de controlo, foi necess´ario substituir o sinal PAR pelo sinal GNT#/OE.
Este sinal liga directamente ao pino GNT# do barramento PCI e tamb´em liga a entrada de um inversor
l´ogico cuja sa´ıda est´a ligada ao OE do shift register dos sinais de controlo. Pois, verificou-se como j´a
foi referido anteriormente, o sinal GNT# e OE s˜ao sim´etricos da´ı a necessidade do inversor.
Com estas modifica¸c˜oes ´e poss´ıvel monitorizar o sinal REQ# para saber quando um dispositivo
necessita de iniciar uma transac¸c˜ao, e actuar GNT# (colocando automaticamente o shift register
dos sinais de controlo em alta-impedˆancia) de forma a indicar que o dispositivo pode efectuar uma
Apˆ
endice A
Hardware da interface MICROPCI
A.1
PCB
Figura A.3: PCB - Componentes
A.2
Lista de Componentes
Conectores:
• CON1 - Conector 12V fˆemea
• CON2 - Conector 20 pinos para flat cable • CON3 - Conector 40 pinos para flat cable • JP1, JP2 - Jumper
• PCI1 - Conector PCI 32bits/5V Condensadores: • C1,C2,C3 - 10µF (Tˆantalo, 25V) • C4,C7 - 100µF (Electrol´ıtico, 25V) • C5 - 560pF (Cerˆamico) • C6 - 1500pF (Cerˆamico) • C8 - 1000µF (Electrol´ıtico, 16V) Bobinas:
• L1 - 56µH (Tipo choke, Imin=200mA)
• L1 - 100µH (Tipo choke, Imin=100mA)
Diodos:
• D1,D2 - 1N5819 • D4 - (3A)
Trans´ıstores: • Q1 - BC547 Resistˆencias: • R1,R2,R3,R4 - 47KΩ 1/4W • R5 - 68Ω 1/4W • R6,R9 - 0.25Ω 1/4W • R7,R11,R12 - 3K9Ω 1/4W • R8,R10 - 33KΩ 1/4W • R13 - 1KΩ 1/4W • R14 - 10KΩ 1/4W Circuitos Integrados: • U1,U2,U3,U4,U5 - 74HCT299 • U7 - LM1086-3.3 • U8 - LM1086-5 • U9,U10 - MC34063A
A.3
Esquema El´
ectrico
MicroPCI v1.2 : Ver p´agina 17.
Nota:O esquema el´ectrico da v1.2 da interface representa o resultado final depois das modifica¸c˜oes
relativas a vers˜ao 1.1 que foram efectuadas directamente no mesmo PCB recorrendo a fios, e cortes de
pistas para ligar os sinais como especificado nas sec¸c˜oes anteriores anteriormente.
5 5 4 4 3 3 2 2 1 1 D D C C B B A A +5V/1.5A MA X +3.3V/1.5A MA X
+12V/0.2A MAX -12V/0.1A MAX
<Doc> 1.2 MicroPCI - Interface C 11 Sunday, May 21, 2006 Title Siz e Document Number Rev Date: Sheet of S_IN S1 S1 S1 INTB# INTC# PCI_CLK INTA# S_OUT RST /OE GNT# STOP# PRSNT1# TRDY# /OE CLK CLK DEVSEL# CLK /CLR /CLR /CLR CLK CLK REQ# CLK S_IN RST S1 S1 REQ# /OE TRDY# AD[0..31] INTD# RST C/BE3# SERR# PRSNT1# C/BE0# PAR PERR# TRDY# IRDY# INTB# GNT# FRAME# PCI_CLK STOP # INTC# DEVSEL# C/BE2# INTD# RST# INTA# REQ# PRSNT2# PRSNT2# C/BE1# IDSEL /CLR AD9 FRAME# C/BE0# AD11 AD15 CLK /OE /OE /OE /OE_U2 S1 /CLR AD23 STOP# PCI_CLK INTA# /CLR S_OUT PRSNT1# INTA# REQ# S_IN AD19 AD16 AD10 AD4 AD18 AD8 AD26 IDSEL AD25 AD10 AD29 AD15 AD2 AD20 AD0 AD31 AD25 AD21 AD31 S_OUT C/BE1# C/BE3#
AD17 AD14 AD5
AD27 AD18 AD3 AD12 AD17 AD28 AD28 IRDY# AD30 AD24 AD14 AD13 AD6 C/BE2# AD30 AD20 AD21 AD19 AD29 AD7
AD26 AD16 AD13AD11
AD27 AD8 AD1 AD22 AD22 AD23 AD9 AD24
AD6AD5 AD3AD2AD1
AD7 AD4 AD0
AD12 SERR# GNT# PRSNT2# DEVSEL# PERR# S1 PAR FRAME# IRDY# GNT# REQ# /CLR SERR# STOP# TRDY# PERR# DEVSEL# /OE_U2 RST# GNT# D1 1N5819 L1 56uH D2 1N5819 R1033K R131K U8 LM1086 -5 3 2 1 VIN VOUTGND U2 74HCT299 20 10 12 1811 923119 817 713614515416 VCC GND CLK SLSR CLROE1OE2S0S1 QLQR A/QAB/QBC/QCD/QDE/QEF/QFG/QGH/QH R347K U9 MC34063A 5 3 6 4 87 12 COMP TCAP VCC GND DCPK SWCSWE R5 68R + C3 10uF PCI1
A1A2A3A4A5A6A7A8A9A10A11A12A13A14A15A16A17A18A19A20A21A22A23A24A25A26A27A28A29A30A31A32A33A34A35A36A37A38A39A40A41A42A43A44A45A46A47A48A49 A52A53A54A55A56A57A58A59A60A61A62
B1B2B3B4B5B6B7B8B9B10B11B12B13B14B15B16B17B18B19B20B21B22B23B24B25B26B27B28B29B30B31B32B33B34B35B36B37B38B39B40B41B42B43B44B45B46B47B48B49 B52B53B54B55B56B57B58B59B60B61B62 R9 R25 D4 DIODE C5 560pF R11 3K9 R14 10K U4 74HCT299 20 10 12 1811 923119 817 713614515416 VCC GND CLK SLSR CLROE1OE2S0S1 QLQR A/QAB/QBC/QCD/QDE/QEF/QFG/QGH/QH R19 10K R447K CON1 POWER 123 U3 74HCT299 20 10 12 1811 923119 817 713614515416 VCC GND CLK SLSR CLROE1OE2S0S1 QLQR A/QAB/QBC/QCD/QDE/QEF/QFG/QGH/QH U7 LM1086-3.3 1 3 2 GND VIN VOUT JP1 L2100uH + C81000uF R833K R7 3K9 CON3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2122 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 R17 RESISTOR SIP 9 - 2K7 1 2 3 4 5 7 6 8 9 R201K U1 74HCT299 20 10 12 1811 923119 817 713614515416 VCC GND CLK SLSR CLROE1OE2S0S1 QLQR A/QAB/QBC/QCD/QDE/QEF/QFG/QGH/QH U10 MC34063A 5 3 6 4 87 12 COMP TCAP VCC GND DCPK SWCSWE R123K9 CON2 1 2 3 4 5 6 7 8 9 10 1112 13 14 15 16 17 18 19 20 R147K + C7100uF R18 RESISTOR SIP 9 - 2K7 1 23 4 5 7 6 8 9 U5 74HCT299 20 10 12 1811 923119 817 713614515416 VCC GND CLK SLSR CLROE1OE2S0S1 QLQR A/QAB/QBC/QCD/QDE/QEF/QFG/QGH/QH + C4100uF + C2 10uF R6R25 Q1BC547 C6 1500pF D5 1.8V/2.5mA + C1 10uF JP2 Q2BC547 R247K
Apˆ
endice B
Caracter´ısticas gerais do shift register
74xxx299
O 74xxx299 ´e um shift register universal de 8 bits com armazenamento, sa´ıdas “3-State”, e reset
as-s´ıncrono. Existe diversos fabricantes deste integrado (Ex: Philips-74HC/HCT299, Texas
Instruments-CD74AC/ACT/ALS299, STMicroelectronics-M74HC299, e outros). Para uma informa¸c˜ao mais
de-talhadas consultar os datasheets dos fabricantes. Nesta sec¸c˜ao foi seleccionado o fundamental para
compreender o funcionamento deste circuito integrado.
Figura B.1: Pinos do circuito integrado
Nota: Relativamente aos modos de funcionamento,o shift left n˜ao est´a acess´ıvel na interface,
Apˆ
endice C
Aspectos sobre futuros melhoramento
da interface
Esta interface sendo uma vers˜ao original, possui alguns problemas, e aspectos que podem ser
me-lhorados nomeadamente:
• Corrigir o pinout dos reguladores de tens˜ao LM1086-3.3 e LM1086-5.
• Ter a possibilidade atrav´es de interruptores ligar/desligar qualquer tens˜ao de alimenta¸c˜ao (+5V,
+3.3V, +12V e -12V) de modo a economizar energia quando a placa PCI s´o usa algumas dessas
alimenta¸c˜oes, e diminuir o ru´ıdo provocado pelas fontes comutadas.
• Tentar encontrar suportes para circuitos integrados (20 e 8 pinos) que permitisse soldar na camada superior e inferior do PCB, o que permitiria trocar circuitos danificados com facilidade.
• Colocar 4 leds nas sa´ıdas reguladas para saber quais as tens˜oes activas.
• Tentar colocar os jumpers em locais mais acess´ıveis.
• Estudar o problema de alimenta¸c˜oes (+5V e GND) separadas para CORE51 e MICROPCI que
gera ru´ıdo nos sinais.
• Verificar se as 4 interrup¸c˜oes podem ser todas agrupadas numa s´o (Sendo Open-Drain), para
diminuir n´umero de sinais necess´arios (4 para 1) analisando por software qual a interrup¸c˜ao que
foi gerada, consultando os registos internos do dispositivo PCI.
• Colocar um Jumper(ou resistˆencia de pull-up) que permite activar/desactivar o sinal de /CLR
(por a n´ıvel l´ogico 0) devido a s´o est´a dispon´ıvel no conector de 20 pinos, e ´e necess´ario estar
desactivo para escrever para a cadeia de shifts registers quando se trabalha com o conector de 40 pinos.
• Por resistˆencia de pull-up nos sinais de controlo PCI (Mesmo nos n˜ao usados) para garantir
valores est´aveis na inicializa¸c˜ao do sistema e quando nenhum agente est´a a escrever para esses
sinais.(Usar arrays de resistˆencias de 2K7Ω, valor das especifica¸c˜oes PCI).
• Colocar conector PCI com todos os pinos, mesmo os n˜ao usados.(Necess´ario usar pistas 12 e
espa¸camento de 8 no m´aximo, o que ´e realiz´avel na FEUP).
• Ter um conector para as alimenta¸c˜oes +12V,-12V,+5V,+3.3V, e GND que permite visualizar os
• Redimensionar a fonte de alimenta¸c˜ao, para corrente m´axima mais baixa (1A parece ser mais
que suficiente para a maioria das placas), e colocar as fontes comutada a entrada de modo a n˜ao
sobrecargar o regulador de 5V, tendo mais dois reguladores de tens˜ao +12V e -12V na sa´ıda da
fonte comutada.
• Espalhar condensador pelas alimenta¸c˜oes dos circuitos integrados, e do barramento PCI, para
diminuir o ru´ıdo.
Experiˆencia adquirida na montagem da interface:
• Antes de colocar os componentes para soldar, por o verniz, e deixar tempo suficiente para este
secar! Conv´em ser num s´ıtio com poucas poeiras, e evitar colocar os dedos em cima dessa at´e
estar completamente seco.
• Na fase de projecto n˜ao esquecer de alargar os “Pads” suficientemente para poder furar e ainda
sobrar cobre a volta do pino para este poder ser soldado.
• Na fase de projecto, ter o cuidado na disposi¸c˜ao dos componentes, no aspecto em que estes
dever˜ao ser soldados com um ferro de soldar, e o espa¸co entre estes pode dificultar esta tarefa.
• Com componentes SMD, verificar sempre o espa¸co ocupado pelo componente e se pode ou n˜ao