FIFOS.TXT Driver File Contents (MCCDrivers.zip)

A WORD CONCERNING FIFO USAGE WITH THE GPIB LIBRARY
--------------------------------------------------

The GPIB cards are equipped with FIFOs in order to allow
for buffering between the various GPIB devices and the
user program. They also provide the speed advantages of
DMA without the required bus contention or DMA controller
setup.

The following models of GPIB interface cards have FIFOs:
   ISA_GPIB
   PCI_GPIB
   CPCI_GPIB
   PCM_GPIB
   PC104_GPIB

These boards each contain two FIFOs where each FIFO is
1024 bytes deep, for a total of 2048 bytes. The boards
may be used with or without the FIFOs, depending on whether
their usage is enabled via the configuration program. If
the FIFOs are disabled then the boards use simple programmed
I/O. There is no DMA capability on these boards.

HARDWARE STRUCTURE
------------------
The FIFOs on these boards sit between the GPIB bus controller
(CB7210) and the ISA (or PCI) bus. Whereas the GPIB bus
controller is a byte oriented animal (as is the IEEE-488 bus
itself), the FIFOs are treated on a word (two bytes) basis.
I.e., I/O transfers to/from the board
are in two byte chunks if the FIFOs are enabled. This provides
for some of the speed advantage inherent in the FIFO logic. Of
course this also results in some additional complexity in both
the hardware and the GPIB library.

I/O CONSIDERATIONS
------------------
GPIB operation with the FIFOs - as with programmed I/O - may
be in either synchronous (non-interrupt driven) or
asynchronous (interrupt driven) mode. However there is some
additional flexibility with the FIFOs as a result of their
ability to buffer the data stream. In particular, the library
software related to the FIFOs is capable of operating in
three different modes as follows:

1. Synchronous mode without interrupts:
This mode is used if you call ibrd or ibwrt and do not have
an interrupt level specified in your configuration file. In
this mode the status of the FIFOs is "polled" and they are
emptied (or filled, depending on whether you are doing input
or output) based on half-full and empty flags read from the
GPIB board. (Note: This mode is not available with the
PCI and PCMCIA cards since the interrupt level is
automatically assigned by the operating system.)

2. Synchronous mode with interrupts:
This mode is used if you call ibrd or ibwrt and do have
an interrupt level specified in your configuration file. In
this mode the FIFOs are emptied (or filled, depending on
whether you are doing input or output) based on the
incidence of half-full or empty (or EOI) interrupts which
are generated by the board. This is essentially the same as
asynchronous mode except that there is no return to your
main program until the operation is completed.

3. Asynchronous mode:
In asynchronous mode - as obtained by calls to either ibrda
or ibwrta - the I/O operation is initiated and then return
is immediately made to your program. In this mode the
library relies on the board-generated interrupts to
indicate when the FIFOs should be emptied or filled. In
terms of total CPU overhead this is generally the most
efficient mode since your program is free to do other
operations while the I/O operation is in progress.

On top of these basic modes are several other cosiderations:
First, for very short transfers (less than six bytes) the
FIFOs are not used. The reason for this has to do with some
tricky timing requirements associated with FIFO setup.
Secondly, you may specify "AS APPROPRIATE" in your
configuration file under the "USE FIFOs?" item. If this is
specified then only transfers greater than 256 bytes use
the FIFOs. All of these issues apply to both read and
write - there is no capability to specify different
criteria for input and output. Also, note that the FIFOs
are only used for data transfer, they are never used for
transmitting or receiving command bytes.

FIFO USAGE RECOMMENDATIONS
--------------------------
Due to the additional complexity inherent in operation with
the FIFOs, it is recommended that you first get your
application running with simple programmed I/O. Once you
are satisfied that everything is functioning correctly you
can then enable the FIFOs and realize the speed advantage.

OTHER ISSUES
------------
1. End-of-String modes
The FIFOs cannot be reliably employed if you require message
termination via an EOS byte. The FIFOs require EOI for
ending an input transfer.
2. Read Buffers
For input transfers, most applications specify a read buffer
size somewhat larger than the actual number of bytes
expected. The library then relies on the EOI flag to
indicate the end of the input message. This is good. However
be aware that the Win-95 and Win-NT drivers assume that
the specified buffer actually exists - to the full length
you have indicated. Hence, it is not (in general) valid to
pass a buffer pointer to the read routine and specify a
length greater than the true size of the allocated space.
3. The above discussion generally applies to both our 16 and
32-bit libraries. However the implementation as regards
various lower-level details is different between the two
packages.
4. We sometimes refer to usage of the GPIB interface FIFOs
as "High Speed" mode. This is not to be confused with the
ongoing industry initiative to develop an "HS488" spec
which intends to augment the existing IEEE-488 protocol
to include higher speed operating modes.
Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web3, load: 4.63