: I need to acquire a 2million bit per second serial data
: stream continuously into an Intel based platform. My
: engineers have found at least one card which is a FIFO which
: takes clock and data, but the only drivers the company
: sells with the card are for Win95 and NT. All of our
: products use UNIX or os/2, so it would be desirable for this
: one to do it also.
: Is there a card we have overlooked which has a Solaris x86
: driver, or if not, how hard is it to write a Solaris driver
: if one has access to the source code of an MT driver? After
: all, the device is very simple. The only problem is that
: we have to not drop any bits, and the FIFO only holds 2 milliseconds
: worth of data, so dispatching latency of the application
: could become very important.
Hi -- well first off I'd like to suggest that any solution that
provides less than ten seconds of buffering should probably not
be considered favorably.
For less than $300 you can buy a VRAM based SVGA card which
outputs > 2.4 gigabits per second (24 bits / pixel at > 100 MHz)
synchronously, and has 16 megabits ( eight seconds for your rate )
of data buffering, and a fast PCI interface. :-)
The reason I bring this up is just to make the point that the
technology is out there to solve your problem in a much
nicer manner than a small FIFO card.
As others have pointed out, time sharing latencies and storage
medium latencies will be a serious risk to your data integrity
with less than a couple of seconds of buffering.
Another consideration might well be that the acquisition / storage
system might be a lot more reliable if it didn't have a PC
involved. The more components (hardware and software) that are
involved in a system, the more likely it is to fail.
I know there are data recorders on the market that can acquire at those
speeds directly to their own storage medium (tape / disk / RAM / etc.),
and can be used for retrieval once the event is over.
(When you say "continuously" I'm presume that you mean for a finite
amount of time, but long in duration to the bit rate).
I believe that you may be able to find devices which can interface the
incoming data to a high performance interface such as a SCSI bus,
ATM network, P1394 "Fire Wire" bus, etc. If you did have to customize
a driver for your data acquisition needs you'd probably be much better
off starting with such an ordinary type of interface.
Another option (which might be the least expensive and least
complex to configure) would be to use ordinary high performance
serial interface adapters with built in buffering. (When
you say "serial data" I presume you mean one-bit serial + clock)
I'm not an expert on the various manufacturers' products, but
between MAGMA, CHASE RESEARCH, COMPUTONE, DIGI-BOARD, and other serial
interface manufacturers you should be ablt to find a solution.
Better still -- they should already have SOLARIS X86 drivers!
Look for a board with synchronous serial support that'll handle
your 2 Mb/s data rate capability, a megabyte or two of buffering,
and a fast host interface (SCSI, PCI, ISA/DMA, etc.).
Then presumably all you'll need to do is convert the logic level
of your input / clock signals to the appropriate serial interface
standard (RS422, RS423, V.35, whatever) and you'll be set.
I suppose you may need to switch the clock polarity too if you're
particularly unlucky. But none if this is complicated, and should
be something your engineers can do -- or you could have customized
for you quickly / inexpensively.
Two megabits per second is well within the reception rate of most of
the serial data communications chips out there (8530, 2661, 2400 series,
68302, 68360) that these manufacturers are using in their products.
A common "T1" frame relay link to the internet runs one of these
boards at 1.544 Mb/s on a V.35 type interface. RS422 communication
is specified to to operable for over 10 Mb/s synchronously, and
there are lots of RS422 interface adapters out there.