Sorry, I avoided diving too deep into the background to make it less confusing, but ironically this information would've helped.
BACKGROUND INFO:
I've been working on repairing a surplus Laser Doppler Velocimetry (LDV) system, which measures flow speed by crossing laser beams, and the velocity of a traveling particle could be measured based on the reflection of light off the particle.
There's several components to this LDV, but basically the end portion of the LDV is a signal processor, which connects to a desktop via a ribbon cable to an ISA board (installed on the motherboard) and a RS-232 cable. The ribbon cable carries raw velocity data and signal lines that manage the timings of readings, and the RS-232 is just a way to manage the signal processor's settings. The desktop has a software called FIND (Flow Intelligent Display) that allows the user to manage the LDV settings (tethered by RS-232 cable) and process collected data (data sent by ribbon cable to the ISA board).
This ISA board is missing (the LDV system was purchased from a surplus supplier). Luckily, the system came with just enough instructions to describe how to take the data from the ribbon cable and (through a series of equations) produce velocity data.
On the ribbon cable, the signal processor puts out a string of 16 bits (on 16 pins), a set of which is also known as a "word" (16 bits string). A pair of words (word A and word B, both different formats) contain velocity data (binary components into velocity equations = velocity data) that respond to a single particle passing in front of the laser intersection. In the flow of data, it sends the words in A/B/A/B/etc sequence. I need to capture this data, and break down the binary components, convert it to decimal value, and plug it into the velocity equations. Sadly, I don't have a way to identify which word is A or B, so I need to capture ALL the data, otherwise a missing word will throw off the equations.
Additionally, the ribbon cable also contain three signal lines: CPU_READY, CYCLE_REQUEST, and DATA_HOLD, which serve as communication between the signal processor and the original ISA board to let it know when to collect the 16 bit words. CPU_READY when active just means it's ready to begin ingest. CYCLE_REQ when active by the signal processor, means there's a word ready for collection. The ISA board activates DATA_HOLD, so that the signal processor holds the data in the register to give the ISA board time to read the data. When it finishes reading the data, the ISA board deactivates DATA_HOLD, and the signal processor clears the registers. This process repeats for each word.
The tricky part is that I don't know what the actual data rate really is.. all I know is that the original ISA interface board is spec'd up to 287,000 words/sec. Hence that's what I'm aiming for. Speed is an issue because the word A/B/A/B/etc sequence means if I lost a word here and there, it shifts the entire sequence (so I need the speed to be fast enough to catch every word).
I'm using an arduino because I know it's fast, and also it's a heck of a lot less expensive than traditional DAQ systems out there. But I don't really "need" to use an arduino, honestly I just want something that works at this data rate and can get all of the words.
What do you mean by using a parallel port on the PC, is there a potential solution there?
Also, any thoughts anyone, on my previous questions?