PCI

PCI (Peripheral Component Interconnect) local-bus add-in card edge connector: 32/64-bit, 5 V, 3.3 V and Universal keying, full pinout and signals.

PCI = Peripheral Component Interconnect

The Peripheral Component Interconnect (PCI) is a synchronous local bus developed by Intel and standardised by the PCI Special Interest Group (PCI-SIG). From the early 1990s to the mid-2000s it was the dominant PC expansion bus, displacing ISA, EISA, MCA and VESA Local Bus, before being succeeded in turn by PCI Express. A 32-bit bus running at up to 33 MHz reaches a peak transfer rate of 132 MB/s; the 64-bit and 66 MHz variants reach 264 MB/s, and a 64-bit, 66 MHz bus reaches 528 MB/s. To keep the pin count down, address and data share the same lines (the multiplexed AD bus), and the bus uses reflected-wave rather than incident-wave switching.

This page is an overview for designers and hobbyists rather than a complete account of the standard: I/O operations are described in the most detail, while memory operations — which an I/O card rarely handles — are only outlined. Because of the higher clock speeds involved, PCI cards are harder to design than ISA cards. Several vendors offer PCI prototyping cards, and FPGA suppliers such as Xilinx provide PCI-compliant cores that can serve as a starting point for a design.

    PCI Universal Card 32/64 bit 
      ---------------------------------------------------------------- 
     |    PCI         Component Side (side B)                         | 
     |                                                                | 
     |                                                                | 
     |                                                optional        | 
     |    ____     mandatory 32-bit pins            64-bit pins  _____| 
     |___|    |||||||--|||||||||||||||||--|||||||--|||||||||||||| 
              ^     ^  ^               ^  ^     ^  ^            ^ 
            b01   b11  b14           b49  b52 b62  b63          b94 

    PCI 5V Card 32/64 bit 
     |                                                optional        | 
     |    ____     mandatory 32-bit pins            64-bit pins  _____| 
     |___|    ||||||||||||||||||||||||||--|||||||--|||||||||||||| 

    PCI 3.3V Card 32/64 bit 
     |                                                optional        | 
     |    ____     mandatory 32-bit pins            64-bit pins  _____| 
     |___|    |||||||--||||||||||||||||||||||||||--|||||||||||||| 

PCI – 186-pin connector 98+22 PIN EDGE CONNECTOR at the computer.

Pin+5V+3.3VUniversalDescription
A1TRSTTest Logic Reset
A2+12V+12 VDC
A3TMSTest Mode Select
A4TDITest Data Input
A5+5V+5 VDC
A6INTAInterrupt A
A7INTCInterrupt C
A8+5V+5 VDC
A9RESV01Reserved VDC
A10+5V+3.3VSignal Rail+V I/O (+5 V or +3.3 V)
A11RESV03Reserved VDC
A12GND03(OPEN)(OPEN)Ground or Open (Key)
A13GND05(OPEN)(OPEN)Ground or Open (Key)
A14RESV05Reserved VDC
A15RESETReset
A16+5V+3.3VSignal Rail+V I/O (+5 V or +3.3 V)
A17GNTGrant PCI use
A18GND08Ground
A19RESV06Reserved VDC
A20AD30Address/Data 30
A21+3.3V01+3.3 VDC
A22AD28Address/Data 28
A23AD26Address/Data 26
A24GND10Ground
A25AD24Address/Data 24
A26IDSELInitialization Device Select
A27+3.3V03+3.3 VDC
A28AD22Address/Data 22
A29AD20Address/Data 20
A30GND12Ground
A31AD18Address/Data 18
A32AD16Address/Data 16
A33+3.3V05+3.3 VDC
A34FRAMEAddress or Data phase
A35GND14Ground
A36TRDYTarget Ready
A37GND15Ground
A38STOPStop Transfer Cycle
A39+3.3V07+3.3 VDC
A40SDONESnoop Done
A41SBOSnoop Backoff
A42GND17Ground
A43PARParity
A44AD15Address/Data 15
A45+3.3V10+3.3 VDC
A46AD13Address/Data 13
A47AD11Address/Data 11
A48GND19Ground
A49AD9Address/Data 9
A52C/BE0Command, Byte Enable 0
A53+3.3V11+3.3 VDC
A54AD6Address/Data 6
A55AD4Address/Data 4
A56GND21Ground
A57AD2Address/Data 2
A58AD0Address/Data 0
A59+5V+3.3VSignal Rail+V I/O (+5 V or +3.3 V)
A60REQ64Request 64-bit transfer
A61VCC11+5 VDC
A62VCC13+5 VDC
A63GNDGround
A64C/BE[7]#Command, Byte Enable 7
A65C/BE[5]#Command, Byte Enable 5
A66+5V+3.3VSignal Rail+V I/O (+5 V or +3.3 V)
A67PAR64Parity for AD[63:32]/C/BE[7:4]#
A68AD62Address/Data 62
A69GNDGround
A70AD60Address/Data 60
A71AD58Address/Data 58
A72GNDGround
A73AD56Address/Data 56
A74AD54Address/Data 54
A75+5V+3.3VSignal Rail+V I/O (+5 V or +3.3 V)
A76AD52Address/Data 52
A77AD50Address/Data 50
A78GNDGround
A79AD48Address/Data 48
A80AD46Address/Data 46
A81GNDGround
A82AD44Address/Data 44
A83AD42Address/Data 42
A84+5V+3.3VSignal Rail+V I/O (+5 V or +3.3 V)
A85AD40Address/Data 40
A86AD38Address/Data 38
A87GNDGround
A88AD36Address/Data 36
A89AD34Address/Data 34
A90GNDGround
A91AD32Address/Data 32
A92RESReserved
A93GNDGround
A94RESReserved
B1-12V-12 VDC
B2TCKTest Clock
B3GNDGround
B4TDOTest Data Output
B5+5V+5 VDC
B6+5V+5 VDC
B7INTBInterrupt B
B8INTDInterrupt D
B9PRSNT1Present detect 1
B10RESReserved
B11PRSNT2Present detect 2
B12GND(OPEN)(OPEN)Ground or Open (Key)
B13GND(OPEN)(OPEN)Ground or Open (Key)
B14RESReserved VDC
B15GNDReset
B16CLKClock
B17GNDGround
B18REQRequest
B19+5V+3.3VSignal Rail+V I/O (+5 V or +3.3 V)
B20AD31Address/Data 31
B21AD29Address/Data 29
B22GNDGround
B23AD27Address/Data 27
B24AD25Address/Data 25
B25+3.3V+3.3VDC
B26C/BE3Command, Byte Enable 3
B27AD23Address/Data 23
B28GNDGround
B29AD21Address/Data 21
B30AD19Address/Data 19
B31+3.3V+3.3 VDC
B32AD17Address/Data 17
B33C/BE2Command, Byte Enable 2
B34GND13Ground
B35IRDYInitiator Ready
B36+3.3V06+3.3 VDC
B37DEVSELDevice Select
B38GND16Ground
B39LOCKLock bus
B40PERRParity Error
B41+3.3V08+3.3 VDC
B42SERRSystem Error
B43+3.3V09+3.3 VDC
B44C/BE1Command, Byte Enable 1
B45AD14Address/Data 14
B46GND18Ground
B47AD12Address/Data 12
B48AD10Address/Data 10
B49M66EN66 MHz enable (Ground if 33 MHz)
B50(OPEN)GND(OPEN)Ground or Open (Key)
B51(OPEN)GND(OPEN)Ground or Open (Key)
B52AD8Address/Data 8
B53AD7Address/Data 7
B54+3.3V12+3.3 VDC
B55AD5Address/Data 5
B56AD3Address/Data 3
B57GND22Ground
B58AD1Address/Data 1
B59VCC08+5 VDC
B60ACK64Acknowledge 64-bit transfer
B61VCC10+5 VDC
B62VCC12+5 VDC
B63RESReserved
B64GNDGround
B65C/BE[6]#Command, Byte Enable 6
B66C/BE[4]#Command, Byte Enable 4
B67GNDGround
B68AD63Address/Data 63
B69AD61Address/Data 61
B70+5V+3.3VSignal Rail+V I/O (+5 V or +3.3 V)
B71AD59Address/Data 59
B72AD57Address/Data 57
B73GNDGround
B74AD55Address/Data 55
B75AD53Address/Data 53
B76GNDGround
B77AD51Address/Data 51
B78AD49Address/Data 49
B79+5V+3.3VSignal Rail+V I/O (+5 V or +3.3 V)
B80AD47Address/Data 47
B81AD45Address/Data 45
B82GNDGround
B83AD43Address/Data 43
B84AD41Address/Data 41
B85GNDGround
B86AD39Address/Data 39
B87AD37Address/Data 37
B88+5V+3.3VSignal Rail+V I/O (+5 V or +3.3 V)
B89AD35Address/Data 35
B90AD33Address/Data 33
B91GNDGround
B92RESReserved
B93RESReserved
B94GNDGround

Notes

  • Pins 63-94 exist only on 64-bit PCI implementations; the 64-bit extension carries AD[63:32], C/BE[7:4]# and PAR64. REQ64#/ACK64# sit at position 60 in the 32-bit section so 32-bit slots can leave them open.
  • +V I/O is 3.3 V on 3.3 V boards and 5 V on 5 V boards; on the Universal board these pins define the signalling rail that the board’s I/O buffers adapt to.
  • Keying and voltage. The standard defines a 5 V and a 3.3 V signalling connector, and three card types: a 5 V card (notch at positions 50/51), a 3.3 V card (notch at positions 12/13), and a Universal card with both notches, which is why it fits either slot.
  • Present detect. PRSNT1#/PRSNT2# indicate that a board is fitted and its maximum power draw: both open = no board; PRSNT1# to ground = 25 W; PRSNT2# to ground = 15 W; both to ground = 7.5 W.
  • M66EN (pin B49) signals a 66 MHz-capable board; it is treated as ground in a 33 MHz environment.
  • Boards that do not implement JTAG boundary scan must connect TDI to TDO so the scan chain is not broken.

Signal Descriptions:

  • AD(x): Address/Data Lines.
  • CLK: Clock. 33 MHz maximum.
  • C/BE(x): Command, Byte Enable.
  • FRAME: Used to indicate whether the cycle is an address phase or a data phase.
  • DEVSEL: Device Select.
  • IDSEL: Initialization Device Select
  • INT(x): Interrupt
  • IRDY: Initiator Ready
  • LOCK: Used to manage resource locks on the PCI bus.
  • REQ: Request. Requests a PCI transfer.
  • GNT: Grant. indicates that permission to use PCI is granted.
  • PAR: Parity. Used for AD0-31 and C/BE0-3.
  • PERR: Parity Error.
  • RST: Reset.
  • SBO: Snoop Backoff.
  • SDONE: Snoop Done.
  • SERR: System Error. Indicates an address parity error for special cycles or a system error.
  • STOP: Asserted by Target. Requests the master to stop the current transfer cycle.
  • TCK: Test Clock
  • TDI: Test Data Input
  • TDO: Test Data Output
  • TMS: Test Mode Select
  • TRDY: Target Ready
  • TRST: Test Logic Reset
  • M66EN: 66 MHz Enable. Indicates a 66 MHz-capable board; tied to ground for 33 MHz operation.
  • REQ64: Request 64-bit transfer (asserted by the master).
  • ACK64: Acknowledge 64-bit transfer (asserted by the target that supports it).
  • PAR64: Parity for the upper AD[63:32] and C/BE[7:4]# lines.

The PCI bus treats all transfers as a burst operation. Each cycle begins with an address phase followed by one or more data phases. Data phases may repeat indefinitely, but are limited by a timer that defines the maximum amount of time that the PCI device may control the bus. This timer is set by the CPU as part of the configuration space. Each device has its own timer (see the Latency Timer in the configuration space).

The same lines are used for address and data. The command lines are also used for byte enable lines. This is done to reduce the overall number of pins on the PCI connector.

The Command lines (C/BE3 to C/BE0) indicate the type of bus transfer during the address phase.

C/BECommand Type
0000Interrupt Acknowledge
0001Special Cycle
0010I/O Read
0011I/O Write
0100reserved
0101reserved
0110Memory Read
0111Memory Write
1000reserved
1001reserved
1010Configuration Read
1011Configuration Write
1100Multiple Memory Read
1101Dual Address Cycle
1110Memory-Read Line
1111Memory Write and Invalidate

The three basic types of transfers are I/O, Memory, and Configuration.

PCI transfers are synchronous to the rising edge of CLK. A cycle begins when the initiator asserts FRAME and drives the command and address; one or more data phases follow, and either the initiator (via IRDY) or the target (via TRDY) may insert wait states until both are ready. See the PCI Local Bus Specification for the detailed cycle timing.

References

Category:Buses Connectors