SonixDAQ Software

Main Window
The SonixDAQ software is separated from the Sonix system software. This section will only focus on the DAQ software which is used to:
 * Program the DAQ by pressing "Create Sequence ..."
 * Load the collected channel data from the Sonix system (PC) and display the results.

The following figure shows the main user interface of the SonixDAQ software. The menu section of this window contains:
 * Directory: is the path of the collected data and can be used to load acquired channel data
 * Sequence (the same as the Create Sequence push button): programs the DAQ and opens another window "Sequence Control" which provides data acquisition options to the user. More detail is given below.
 * View: to show/hide the frame control in the main window
 * Help: shows the information about the software version.

 

This window enables the user to view:
 * The channel-by-channel waveform of the collected data (e.g. decrease/increase the time scale),
 * The FFT or FFT average of the data, and
 * One or more channels (up to 32) on the screen.

A sample screen shot of the window when displaying the results is shown below:

 

Sequence Control
After pushing the "Create Sequence" button, the DAQ software will program the DAQ hardware. Once DAQ is programmed, the "Sequence Control" window will appear. The Sequence Control window, which is shown below, allows the user to monitor data acquisition in the SonixDAQ.

 

Note that some combination of the parameters are not supported by the DAQ. The flowchart of the supported sequence control is depicted in a figure below and will be explained in detail in the following sections.

 

Choose the TGC Curve
The user can obtain the desired TGC curve in the top section of the window. Both adjustable TGC (as a function of depth) and fixed TGC can be used.

Imaging Parameters
This window allows you to adjust the imaging parameters such as
 * Number of Samples: number of samples that will be acquired at 40MHz,
 * Receive Delay: the delay (in micro seconds) after the sync signal and before starting to collect the data,
 * Line Duration: same as Number of Samples except in micron (setting one sets the other parameter as well)
 * Gain Delay
 * Gain Offset

The parameters either has to be entered manually, or loaded from a file. In case "Load From File" option is selected. The first three parameters will be loaded from the file. It should be noted that for this option to work properly, the Sonix system has to write these information to the same file. For this purpose parameter "write DAQ" has to be set to 1 on the mouse over menu. For further information refer to Sonix system setup.

In case the "external" synchronization pulse is selected, the user can enter all the imaging parameters except for the Line Duration and Number of Samples, which will be determined by the sync pulse coming from the Sonix system. Also, it is up to the user to ensure that the Sonix system line duration is long enough for the total duration of the Receive Delay and the Number of samples. If "internal" synchronization pulse is selected, the DAQ software checks the feasibility of the selected combination of Number of samples, Line Duration and Receive Delay.

Start Configuration
In this section you select synchronization pulse source: internal or external. The synchronization pulse is a pulse which indicates the beginning of each acquisition. The user can choose the source of this pulse based on the purpose of the data collection. If the purpose is to test the DAQ, it is not required to connect the synchronization BNC to the Sonix system’s BNC. The DAQ is capable of generating this pulse internally.

In this scenario, the source of the synchronization pulse must be selected as internal. Also, it is not required to connect the DAQ to the probe slot. Instead, the DAQ's probe connector can be connected to a signal generator, which generates a wave form with a frequency less than 20MHz and amplitude less than 50mV.

However, if the goal is to capture synchronized ultrasound data from the Sonix system, the DAQ has to be connected to the Sonix system's probe connector and DAQ's BNC input signal has to be connected to Sonix's BNC output signal. In this scenario, the source of the synchronization pulse must be selected as external.

Channel Mapping
The next step is to select the active channels. These can be any combination of channels from 1 to 128. Next figure shows the active channel selection window.

 

Select/Deselect HPF
The SonixDAQ contains a High Pass Filter to suppress the low frequency noises. The user can bypass this HPF by selecting the Bypass HPF option.

Operating Mode
The SonixDAQ can work in two different operating modes:
 * Normal mode: the data is written to the memory (i.e. DDR2) until it gets full. In this mode, the user can choose the max capacity of the memory.
 * Free-Run mode: the memory is treated as a ring buffer. In this mode, the user has to press the stop button in order to stop writing the data into memory before downloading the stored data.

Download data
The write procedure to memory can be terminated by either pressing the stop button or when memory is filled to capacity (only in Normal mode). The user can download the captured data from DAQ. The following figure shows the download window.

 

Format of the stored data
In the output directory, the ultrasound data is stored in binary files CHZZZ-YYYY.daq, where ZZZ is the channel number from 0 to 127 and YYYY is the file number. For example, CH000-0000.daq is the first set of data for channel 0, while CH000-0001.daq is the second set of data for channel 0. At the beginning of each file is a header consisting of two unsigned integers (32 bits each) which contain the number of lines and the number of samples per line, respectively. The ultrasound samples are 16-bit signed integers, stored in lines after the header.

For example, if the integers are 10 and 1024, respectively, the file contains ten lines of 1024 samples per line, for a total of 10,240 samples. Since the ultrasound samples are stored in lines, to read the first line of samples one would simply read 1024 * (2 bytes/sample) = 2048 bytes from the file beyond the header. Each line would be the next 2048 bytes beyond that.