Contents :
A. EXPANSION SLOTS CONNECTORS
B. 8-BIT & 16-BIT (ISA) EXPANSION SLOTS
C. I/O MAP
D. MEMORY MAP
E. HARDWARE INTERRUPT
F. INTERRUPT VECTOR TABLE (IVT)
G. DECODING
H. EXPANDING I/O MAP
What are the important things to build a PC prototype card ?
Building a PC prototype card has a state of the art of its own. Many important things must be known before somebody build their own card. Here I try to simplified more aspects about PC and the related field.
Until this day, there are many expansion cards design. What are the differences between this expansion cards ?
- 8-Bit Expansion Card
- With this card, data is transmitted among expansion slots and other components on the bus only along 8 parallel data lines. The data lines used only a fraction of the 31 pairs of connectors that fit into the expansion slot. As remains the same with newer boards, the other connectors supply the board with power, instructions, and addresses for data locations either on the expansion boards or in memory.
- 16-Bit or ISA Card With 18 more pairs of connectors, the ISA (Industry Standard Architecture) cards transmits data over 16 parallel data lines, doubling the amount of data it moves compared to an 8-Bit card. This is the most prevalent type of expansion card, and even PC's with faster and newer local bus slots still have ISA expansion slots. A 16-Bit card is powerful enough for components, such as keyboards, serial and parallel ports, and internal modems that don't handle the extreme amounts of data transmitted by video, network, and disk controller cards.
- 32-Bit MCA Card The IBM MCA (Micro Channel Architecture) card uses 32 of its 93 lines to send and receive data. It also includes special circuitry that, like Plug and Play technology, makes the card easier to install. The MCA expansion slot, whitch IBM refused to let others clone for a long time, will not accept 8-Bit or ISA adapter cards.
- 32-Bit EISA Card The design of EISA (Extended Industry Standard Architecture) can use expansions cards designed specifically to work with the slot's 97 connectors that are divided between two levels. These EISA specific cards transmit 32-Bits of data at a time, and like MCA and Plug and Play, are easier to set up. But EISA slots also accept 8-Bit and 16-Bit cards. Plastic tabs allow the older cards to fit only far enough into the slots to make contact with the first level of connectors, which work the same as ISA connections. But boards designed specifically for the EISA slot can enter farther and align their connectors with the lower row of connectors that handle signals based on EISA specifications.
- 32-Bits VESA Local-Bus (VL-Bus) Card Cards designed fgor the VESA (Video Electronics Standards Association) local-bus slots are divided into a set of connectors based on the ISA slot and a separate set of 36 more pairs of smaller connectors that carry the local bus information. The VL-Bus cards work with 32-Bit data.
- 32-Bit PCI Local-Bus Card The PCI (Peripheral Component Interconnect) local-bus adapters have connectors similiar to those on MCA and EISA cards. All handle 32-bits of data at a time, and aresmaller and more tightly packed than ISA connections. But PCI slots won't accept ISA or 8-Bit cards.
Fig. A-1. shows all of these expansion connectors as we can see the difference between them.
Fig. A-1. The differences between many expansion slots
B. 8-BIT & 16-BIT (ISA) EXPANSION SLOTS
Among all the expansion connectors above, 8-Bit and 16-Bit (ISA) slots are the most widely used and implemented to any computers design. Even for the new ones, usually always have 1 or 2 this ISA slot. The others are implemented only for the IBM series computers and clones and the new design architecture which used new controller designs and new controller IC's.
Here we only discuss about 8-Bit & 16-Bit (ISA) expansion slots, because these slots usually always there in many computers and its quiet enough for our purpose (make an add-on card by ourselves for our own purpose). Besides that any others expansion slots design are quiet hard to build a card. This is what makes the PC's such an attractive proposition for the home constructed add-on enthusiast that is their expansion slots. IBM PC has 5 I/O slots, IBM XT has 8 I/O slots, an AT has varies design of I/O slots. Some of these slots are already used for essensial cards such as disk controllers, display adapter card, serial and parallel cards. But at least 1 is left for our purpose. Fig. B-1. shows the detail view and the description of the pins for this slot.
Fig. B-1. 8-Bit & 16-Bit (ISA) slots and their description pins. |
The expansion slots on the motherboard are ordinary 0.1 inch pitch female edge connectors. The basic 8-Bit slot has a 2 by 31 way connector, with the two rows numbered from A1 to A31, and B1 to B31. The 16-Bit expansion slot additionally has a two by 18 way female edge connector, with the two rows numbered from C1 to C18, and D1 to D18. This additional connector is mounted in front of and in-line with the 8-Bit expansion bus connector. Do not confuse long and short expansion cards with 16 and 8 bit types. Either type of card can be the maximum length available, or some shorter length (usually about one third to half full size). With some computers the disk drives obstruct some of the expansion slots, and short card are all that these can take. Most home constructed cards will probably only need to be of the short variety.
From fig. B-1. the minus (-) sign indicates that a line is a negative active signal. These signal are the functions of the AT expansion bus. PC or XT expansion bus doesn't have the additional 16-Bit expansion bus. A few of ther terminals on the 8-Bit bus have slightly different functions on the PC and XT machines(-REFRESH is DACK0 on the PC bus for example). In general these few differences are of no importance as they are little used by expansion cards, and are unlikely to be needed for user constructed cards.
The input/output lines break down into the usual address, data, and control buses, plus power supply lines, clock signals, interrupt, and DMA lines. We will concentrate here on the basic 8-Bit bus, since this is all most users will be interested in initially, and is probably all most users will need for the foreseeable future.
Here are the descriptions of each lines :
- Data Bus & Address Bus D0 ~ D7 from the standard bidirectional data bus, while A0 ~ A19 are the addressbus outputs. These provide a one megabyte address bus range. The 16-Bit bus has extra address lines which give a 16 megabytes even when run on 80286/80386 based machines. This is due to the microprocessors running in an 8088 emulation mode in order to run MS-DOS software. The extended memory can only be used indirectly via disk cache and ram disk programs, or with the aid of special DOS Extender programs. The 8088 series of microprocessors do not have input/output devices memory mapped, but have a separate I/O map. This used 16 of the ordinary address lines, giving a 64 k address range. However, in the PC's only the lower ten address lines are used, giving some 1024 ports addresses. Of these the lower 512 are reserved for internal circuits, leaving the upper 512 addresses for cards fitted to the expansion bus. Many of these addresses are reserved for specific functions such as display adapters and disk controllers. This is a subject we will consider in more detail later.
- ALE (Address Latch Enable) This is an output which provides timing information that can be used for synchronisation purposes for events that must be synchronised to bus cycles. This is not needed by most home constructor add-ons.
- AEN (Address ENable) Another output, and one which indicates whether processor or DMA bus cycles are in progress. It goes low during normal (i.e.: processor not DMA), bus cycles. It is a line that must normally be taken into account by the address decoder circuit of any add-on card.
- Control Bus There are four lines making up the control bus, MEMR, MEMW, IOR, and IOW; these are forms or read and write lines. The first two are the read/write lines for memory accesses, while the second pair perform the same function during input/output accesses. They are all active low. Thus, for example, during a write operation to memory, MEMR goes low while the other three all remain in the high state. IOR and IOW are obviously important lines which would normally need to be decoded by any user add-on.
- DMA Lines These are the four input lines, DRQ1 to DRQ4, outputs DACK0 to DACK3, and TC (Terminal Count) output. Since it is unlikely that user add-ons will make use of the advanced DMA facility, we will not consider these lines further here.DMA channel 0 - used for memory refresh cycle DMA channel 1 - reserved DMA channel 2 - used for disk drive adapter controller DMA channel 3 - reserved
- Interrupts IRQ2 to IRQ7 are standard active high interrupt request lines. IRQ0 and IRQ1 are not available on the expansion bus as they are used for the time of day clock and the keyboard. Some of these lines are likely to be used by standard expansion cards such as the serial and parallel ports.
- Clocks There are two clock signals on the expansion bus. These are OSC - a 14.31818 MHz buffered crystal controlled oscillator signal, and CLK - the 4.77 MHz processor clock signal which has a 2 to 1 duty cycle. The OSC signal is primarily intended to act as the clock signal for the colour graphics adapter board. Although the original IBM PC and XT machines (plus some early clones) use a 4.77 MHZ clock frequency, most of the more recent compatibles can operate at higher speed of between 8 and 15 MHz. AT style computers operate with clock signals of between 6 MHz and 33 MHz, and may be more for the advanced computer architecture. This clock signal will be at whatever clock rate the computer is using, and in most cases will not be 4.77 MHz. This makes it a non-standard signal which is of limited usefulness as a result.
- Power Supply Supply of +/- 5 Volts and +/- 12 Volts are available on the expansion bus. The maximum current from the + 5 volt supply rail is 4 Amps for the original PC's, but is upwards of 11 Amps for more recent PC's and clones. This is the total available to all the expansion cards, including essential ones such as disk controllers and display boards. However, in any reasonably recent PC there should be several Amps to spare, which should be substantially more than any user add-on or set of user add-ons will require. The + 12 volt output has a rating of 2 Amps on early machines, or about 4 Amps or more on recent ones. The negative supplies have much lower current ratings of 0.3 and 0.5 Amps for the - 5 volt and - 12 volt outputs respectively.
- IO CH RDY (I/O CHannel ReaDY) This is an input which can be used to insert wait states if a slow device is used on the expansion bus. Some user add-ons might need this facility, but it obviously makes things easier if it can be left unused.
- IO CHCK (I/O CHannel CheCK) This is another active low input line, and it is pulled low in order to indicate a memory or input/output parity error. This generates a non maskable interrupt. This feature is not normally required for user add-ons.
No comments:
Post a Comment