02-01-2007 04:54 AM
02-01-2007 09:20 AM
Well, you've got some trade-offs. 96 channels is a fairly high channel count to deal with. Couple options:
1. Use the 6509 board with "change detection" feature. From a DAQ standpoint, this will be the simplest and cheapest. However, you'll need 96 instances of interface circuitry that will transform the analog "pulses" into DIO-compatible signals such as TTL. I'm not familiar with whether there are any multi-channel off-the-shelf modules to help you out there. You'll also need to do some processing on the DIO bits in order to count transitions on each one individually, though it'll be fairly straightforward.
2. Use high-channel-count Analog DAQ board(s) to continuously sample the analog signals directly. The DAQ part of the cost will be higher than going with DIO, but you won't need any interface circuitry. You will, however, need significantly more sophisticated algorithms to interpret the analog "pulses" in terms of counts-per-channel. Not crazy hard, but you'll probably get into lots of little hard-to-anticipate exceptions to the norm. Some bubbles are smaller and may make pulses of shorter duration and less voltage drop. Sometimes two bubbles connect and make a long pulse -- should you count once or twice? And so on.
3. The 7811R is not something I can comment about usefully, except that it appears there's a non-trivial learning curve to become decent at programming for the FPGA's. Unless I already had the board or had familiarity with the programming, I'd personally opt for one of the other approaches.
-Kevin P.
02-02-2007 08:22 AM
02-02-2007 11:13 AM
I don't have all the answers, but here's a best shot:
1. The 6509 DIO board appears to be divided up into 12 separate 8-bit ports. I suspect that the DAQmx driver will allow you to address all 96 bits simultaneously in your application software by specifying something like "Dev1/port0:11" or maybe "Dev1/line0:95". So if you use a DIO approach, you'd be monitoring all bits simultaneously and would have some means to capture those bits whenever there was a falling edge on any of them. I don't know what rate of DIO transitions the board will support though.
I just followed the link to the bubble counter for the first time. Looks like a pretty small outfit since the website mentions a support person by name. You should talk with them and see whether they would be willing to make you 96 "special" bubble counters that produce TTL output instead of the analog pulse. I'm no circuitry expert, but it seems like something in the neighborhood of a simple comparator with hysteresis. With a quantity of ~100, they may be willing to do it -- there are probably other potential customers who'd like such an option.
If you were to build the circuit yourself, I don't think I have the expertise to give you specific details. You really want to have a good understanding of the range of variation you can expect in the analog pulse and how you want to interpret the borderline cases. The basic idea is a comparator where the output is a TTL High or Low depending on whether the input voltage is above or below a pre-set reference voltage. You'd want some hysteresis / filtering in there so that you don't toggle multiple times during the voltage fall and rise if there's a lot of noise riding on that signal. There's a good chance that the people who already made the special-purpose bubble detector have some good experience to draw from in designing the right type of conversion to TTL.
2. Multiple AI cards would be expensive. Yes, the multiplexing ones will divide the max sample rate down according the the #channels. It will also mean you have to process a *lot* of data. There could be some tricky issues to make your memory handling efficient as you process 96 separate data channels.
3. You're going to use some software either way. If you start by conditioning the bubble signal then capturing with DIO, you'll still need to search out and count each channel's individual transitions. There are functions that can makes this fairly simple to program. If you acquire AI however, you'll first have to design your own software algorithm to detect the transitions and then you'll count them.
The key advantages to HW-counting would be CPU & memory efficiency, and avoiding all the work needed to design, test, and fix a software signal processing algorithm.
-Kevin P.
02-04-2007 07:18 PM
I've just started learning about the 6509, and there are programmable input filters that can eliminate glitches/spikes and provide debouncing for digital switches/relays through a software-selectable digital filter. This might simplify the circuit if you can use the 6509 to provide filtering. Change detection for a channel can be on the rising edge, falling edge, or both.
I've been using the 6509 to trigger a LabVIEW timed loop and send TCP messages on a P4 3 GHz pc. I've used the rising edge of a TTL sync pulse input from a waveform generator to a single 6509 DIO line at 2.4 kHz with no problems. Bubble arrival rate would need to be "reasonable"