The ISA standard leaves issues of system setup to you. You have to ensure that every expansion board plugged into your system gets the interrupt service, memory address range, port addresses, and DMA access that it requires. You also must ensure that the needs of each board conflict with none of the others in the system. Before you slide each expansion board into your system, you have to check jumpers or DIP switch settings to ensure that they do not conflict with those of anything else in your system. Or should you be blessed with a board that includes its own software setup procedure, you get to wade through a program written by someone intent on creating a cipher the CIA cannot understand. When the inevitable conflict arises, you are left with the limitless joy of a computer or peripheral that absolutely refuses to work and will not say why. You, as the manager of the PC are to blame, and your punishment is to devote a substantial fraction of your life to penance-that is, surrounding yourself with manuals, notepads, and a hexadecimal calculator to sort things out. Plug-and-Play ISA gives all that brainwork to the electronic entity closest to the problem, your PC itself. Using the features specified by the standard, individual expansion boards can tell your system their needs and what substitutions they will accept, and your system then can make the necessary arrangements itself. Plug-and-Play works without modification to the ISA bus, although it allows for advanced systems to streamline their configuration process by adding a single slot-specific signal to each bus connector. The main modification required by Plug-and-Play ISA is the addition of special registers to each expansion board and the capability for each card to deselect itself, essentially disconnecting itself from the bus so that it does not respond to commands and signals meant for other boards. Isolation Sequence. The key to setting up individual boards in a Plug-and-Play ISA system is the capability to isolate each board from the rest. The Plug-and-Play ISA specification standardizes the isolation sequence used. Whenever you switch on your system or give it a cold boot, all the Plug-and-Play ISA cards inside it come up in their Wait for Key state. In this condition, the expansion boards refuse to respond to any signal on the ISA bus until they receive their initiation key. When a board receives the initiation key code, it switches to its Sleep state. The card (and all the rest in the PC) then wait again for a Wake[Card Select Number] command. Upon receiving that command, all cards in the system shift to their Isolation state, which allows them to listen to bus signals. The host computer then executes a series of 72 reads of consecutive read-only registers that store a board identification number. Every Plug-and-Play ISA expansion board (not merely every model) is assigned a number during manufacture that should be unique in every PC. After the number of a card is uniquely identified, all the other boards in the system are forced back into their Sleep state, and a unique number is written to the Card Select Number register on the board. Writing this number back to the card causes the designated card to enter its Config state. The board now can be configured independently from any other board in the system (all the others will be in the Sleep state), or the system can switch the selected card back to its Sleep state by sending a Wake[0] command to it. However, the uniquely assigned CSN number can be used any time thereafter to isolate and individually command the selected board. When a board has a Card Select Number assigned to it, it drops out of the isolation sequence. The system continues to step through the process until each board in it has been assigned a unique Card Select Number. Assigning Resources. Plug-and-Play ISA allows for any board to ask for up to four non-contiguous ranges of memory base addresses; up to eight non-contiguous base addresses for input/output ports; up to two separate interrupt levels; and up to two DMA channels. The system can query a board as to its needs only when the board is in its Config state. Only one board can be in Config state at a time; this state is selected either during the isolation sequence or by sending a Wake command using the board's unique Card Select Number (which must be assigned earlier during the isolation sequence).
|
|||||||||||||
Disclaimer
1) E-articles is not responsible for the information contained by this article as well for any and all copyright infringements by authors and writers. E-articles is a free information resource. If you suspect this article for any copyright infringement, please read the terms of service and contact us or use the "Report this article" button on this page to investigate the problem.
2) E-articles is not responsible for inaccuracies, falsehoods, or any other types of misinformation this article may contain and will not be liable for any loss or damage suffered by a user through the user's reliance on the information gained here. |
|||||||||||||