| |
|
|
| Connecting
to The IBM-PC PCI Bus |
 |
The
most common computer plug-in card today is the PCI card used
in IBM-PC compatible computers. There are a number of companies
which provide dedicated general purpose controllers for connection
to the PCI bus, including PLX Technologies which offers the
PCI90xx line of chips. For most applications, these dedicated
interface chips do a good job.
|
|
Whatever circuit function your PCI card requires, it is likely
to be implemented using a Field Programmable Gate Array such
as the Xilinx Virtex LCA. Xilinx provides a completely engineered
"PCI Core" function which can be added to any of their
larger devices, resulting in a fully compliant electrical interface
to the PCI bus. The PCI Core has the advantage that it can be
configured to meet your specific needs regarding features such
as DMA controllers, DRAM interface, PCI burst length and FIFO
depth. |
Those
Pesky Device Drivers
A big problem
for clients who need to add custom circuit functions to an IBM-PC
is that operating systems such as Windows-NT and Windows 2000 do
not permit user level code to gain direct access to the new hardware.
Instead, you have to write a Windows device driver. This can be
difficult because of the many rules for interfacing to the operating
system, and the problems with debugging kernel mode programs. See
the Windows Driver
technical brief for an example of a complex (multiple device)
driver written by Presco that operates across different platforms
(Intel and Hewlett Packard) and will work properly in a multi-processor
environment.
Is
Your PCI Bus Too Slow?
People often
complain that their devices hit a "speed limit" at about
20 to 30 Mbytes per second on the PCI bus, despite the advertised
132 Mbyte/second transfer rate. The key to good transfer rates is
to remember that the PCI bus protocol is burst oriented. It can
take quite a few bus cycles to negotiate for bus ownership, contact
your intended respondent, and get the first word transferred. Bus
efficiency rises rapidly with burst length. A burst capability of
just four words will bring about a significant speed increase, but
to get high throughput you need at least 16 word transfers. You
are unlikely to get sustainable bursts if the data transfers are
program controlled, i.e. individual reads and writes via software,
so you will need a DMA controller. Don't forget that the memory
allocation scheme in the IBM-PC will often break up the logically
contiguous memory space of your application, scattering it across
physical memory in chunks of as little as 4Kbytes. You will need
to use a chaining DMA controller with scatter/gather capability
to make your transfers.
Compact-PCI For Higher Performance and Reliability
 |
Many industrial
products utilize the Compact PCI bus instead of the IBM-PC
version of the bus. Compact-PCI has a number of advantages,
including its use of a pin-and-socket bus connector which
offers better reliability, higher current ratings, and a much
larger pin count. By designating more power pins, Compact-PCI
permits higher power dissipation for each card, overcoming
a major limitation of IBM-PC cards. And ground bounce during
bus transactions is sharply reduced because of the increased
number of ground pins. It's easy to configure a Compact-PCI
chassis with dual redundant power supplies for increased reliability.
The power supply modules and the individual circuit cards
(if so designed) can be hot plugged so that the system can
remain operational despite one or more failed modules.
|
| Combining
this type of chassis with a redundant RAID disk drive produces
an exceptionally robust system. Presco has performed a number
of Compact-PCI product design cycles and we are familiar with
the requirements. |
|
|