Friday, May 2, 2008

Feel the Power

I'm feeling very powerful these days. It has to be the PowerPC, the ARM processor, Embedded Linux, M-Modules, ANSI-C drivers, APIS, PXI Modules, PMC Modules, the VX406C, the VX407C, the VX411C, and the EM405-8 or, in other words, C&H's Intelligent Carriers. The marriage of an embedded processor with the power of open source Linux and the countless number of instruments in the M-module, PMC and PXI formats creates a very powerful product line with limitless possibilities.

I recently wrote a simple demo application for a customer utilizing the VX406C running Embedded Linux and the M395 16-Channel DAC M-Module. This embedded application creates 4 custom VXI Word Serial Commands: “volt” – sets the DAC output, “volt?” – queries the DAC output, “sweep” – sweeps the voltage from 0 to 5 volts, and “clearirq” – clears a pending interrupt. The commands “volt” and “volt?” are self explanatory. The command “sweep” starts a sweep of the DAC output from 0 to 5 volts in 1-bit increments dwelling for 1ms at each point. When the sweep completes, the application generates a VXI interrupt. The command “clearirq” clears the generated VXI interrupt. The host software consists of a small GUI allowing the user to interactively send the commands. When the “sweep” command is sent, the host software starts a counter and continuously updates the counter illustrating that the sweep, indeed, runs asynchronously on the PowerPC residing on the VX406C. When VX406C completes the sweep and generates the VXI interrupt, the host software receives the interrupt and handles it appropriately stopping the counter and going back to normal.

Yes this is a very simple example, but it illustrates the power of the intelligent carriers and opens the mind to the possibilities available with this architecture. Even more important is that the application, utilizing the M395 ANSI-C driver, the VX406C Linux APIS Platform Support Module, and the standard Linux toolset, took less than half an hour to write (the source code can be viewed here). It goes to show that it is extremely simple to create a basic application that can be expanded upon to add features and functionality.

A more complex example is an antenna tuner utilizing the VX407C, a PXI Arbitrary Waveform Generator (ARB) and a PXI digitizer. In this application, the ARB output and the digitizer inputs were connected to a separate device that performed attenuation, amplification and coupling to/from the antenna. The digitizer received a reference signal from the ARB and a reflected signal from the antenna. As in the above example, a sweep command was created. When the sweep command was received, the embedded application would step the ARB through a range of frequencies. At each frequency, the embedded application would digitize both the reference and reflected waveforms, would perform an FFT on each digitized waveform and would use the FFT results to calculate a Voltage Standing Wave Ratio (VSWR). The host software would only retrieve an array of VSWR measurements. Imagine the VXI or PXI traffic and the processing power required to perform this in a standard setup. By dedicating an embedded processor to this task the host is free to manage its other responsibilities.

The above examples are just a taste of what can be created with C&H's intelligent carrier architecture. With well over 100 different M-modules and countless PMC and PXI modules, you can just envision the possibilities. With the addition of Linux and the vast array of open source tools that come along with it, this platform becomes very, very powerful.

m395_demo.c