Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

How to Demultiplex signal?

I am fairly new to LabView and I have a few questions.  I seem to have most of my needs figured out, but I can' seem to figure out how to handle the demultiplexing.

I have designed a sensor interface board that connects to 64 sensors and does some minor signal conditioning.  The board then multiplexes the signals down to a single analog channel using TDM (Time division multiplexing).  I can't seem to figure out how to interface the board unfortunately.  I need to send out 8 digital outputs, 1 analog output (sensor excitation), and then read the input.  I have not been able to figure out the best way to demultiplex the incoming signals though.  I have an NI 6281 series DAQ board.

Any pointers/guidance would be greatly appreciated.

Thanks,
Drew

0 Kudos
Message 1 of 19
(7,175 Views)

Hi Drew,

With decoding and demultiplexing it is always very important that there is a save and robust way to synchronize. You have to know where to start.

If I understand you correctly you designed the interface board for the 64 sensors.  Can you tell a bit more about this interface.

 

Message Edited by K C on 06-18-2007 08:27 AM

0 Kudos
Message 2 of 19
(7,148 Views)

The interface board consists generally of this kind of signal path:

Amplifier -> Differential Multiplexer (ADG726) -> Instrumentation Amplifier (AD8224)

So I need to output the digital signals to the multiplexer to select a channel and then sample usisng the ADC.  I have two replicas of this on the board.  Each replica handles 32 sensors.  So I would need to pingpong between each of these replicas.  Once the data is collected I need to run an FFT on it and pull out a few of the frequencies and display them.
0 Kudos
Message 3 of 19
(7,134 Views)

Hi Drew,

Could you clarify what exactly it is that you need help with?  Are you having difficulties with the actual acquisition of data, or are you just unsure of how to interpret this data in LabVIEW?  I would like to help you but right now the specific question really isn't clear to me.  Thanks!

0 Kudos
Message 4 of 19
(7,117 Views)
Well I am fairly new to LabView so maybe I am just missing something and this is a very easy task.  I am trying to figure out how to acquire the data.  How to actually send the channel select (digital outputs) and then sample the analog input.  Once the input is sampled to direct it to the proper channel for further signal processing.  I looked all through the examples but was unable to find anything remotely close.
0 Kudos
Message 5 of 19
(7,106 Views)

Hi Drew,

 

Your question made think differently. You need someone to build (a part of) the application for you.  Smiley Wink

 

The general idea is to control the multiplexer’s with the digital outputs and read the data from the Amplifier with a analog input.

I do not see where the analog output is used.  Smiley Surprised

 

Do you already have something build in LV or is it a start from scratch ?

0 Kudos
Message 6 of 19
(7,099 Views)
The analog output is connected to all of the sensors in parallel as an excitation.  I do not expect that to be that difficult.  I do have a labview working for a single channel.  The old design featured 4 channels (without a mux) but the new design has been expanded to handle more channels by adding a mux.
0 Kudos
Message 7 of 19
(7,088 Views)

Hello Drew,

You mention that you have looked at the examples and don't see anything similar to your application.  From my understanding, you need to be able to change the state of your digital output lines and then read an analog input.  There are example programs in LabVIEW showing how to do both of these tasks.  You should be able to base your application on a combination of two different example VIs.  Open the LabVIEW Example Finder and take a look at the following examples:

Hardware Input and Output >> DAQmx >> Digital Generation >> Write Dig Port.vi

Hardware Input and Output >> DAQmx >> Analog Measurements >> Voltage >> Acq&Graph Voltage-Int Clk.vi

These examples seem to be along the lines of what you are trying to do.  If I have misunderstood your application then please let me know.  I hope this helps.

0 Kudos
Message 8 of 19
(7,080 Views)
The difficulty is not in the analog output or the digital outputs, it is in demultiplexing the analog input signal.  IE: I need to take sample 1, 65, (N*64+1) and then run an FFT on the samples.  I need to do this for each of the 64 channels.  I think that something like Decimate 1D Array may be the way to do this but that seems like a lot of work to replicate for each of the 64 channels and I'm not sure that this will work.
0 Kudos
Message 9 of 19
(7,078 Views)

If you had a simple 64 channel mux, the code could be as simple as what is below. The first DAQ Assistant writes a digital value to the mux to select a channel and the second DAQ Assistant reads the output of the mux. The for loop will automatically create a waveform array with 64 elements. You would then index the array to operate on each channel. Since you are using two different muxes, you might want to have two separate for loops. You don't mention how you select between the two different muxes. The actual implementation will depend on which bit you are using for the mux selection. For example, if you were using DO0 through DO4 for channel selection and DO5 for mux selection, you would simply have to add an offset of 32 to the second loop.

 

Message Edited by Dennis Knutson on 06-19-2007 12:42 PM

Message 10 of 19
(7,073 Views)