David Koppel

While the analog industry as a whole decided to focus on channel count, sample rate, resolution and several other very technical parameters, we chose to focus on ease of use, ability to synchronize with other digital buses and ability to reproduce previously recorded waveforms.

Digital messages are typically well formed. Serial message usually have a header and might end with a <CR><LF> or a checksum. MIL-STD 1553 messages always start with a command and have a fixed number of words described by the Command Word. Ethernet messages have headers that include length fields.

Analog signals have none of these. There is always a voltage to read. So does the user constantly need to poll for values, or is there a way to save the host processor time by only sending interesting data?

What is interesting data? Obviously, this will be application dependent, but there are guidelines we can use. When designing our A-to-D D-to-A module we decided on two parameters: time and precision.

When dealing with mechanical devices such as radar platforms, there is a limit to how fast the platforms can move. Just as ARINC 429 will transmit roll, pitch and yaw angles of the aircraft only every 20 milliseconds because jets don’t change angles appreciably in less than that, platform angles don’t move at the speed of light, and we can afford to check them periodically.

Excalibur’s A-to-D D-to-A module enables the user to set the rate of monitoring of each channel with a precision of microseconds. If checking every 20 milliseconds is appropriate, that’s what the module will do. If checking every 500 microseconds in required, that’s what it will do. The results go into a circular buffer that the user checks periodically. Every value is time tagged so that the user knows exactly when the data came in. This relieves the user of the need to process mountains of useless data to find the few bits of interesting data.

Alternatively, the user can set the delta of change that is regarded as important with a precision of microvolts. For example, if a change of less than 10 millivolts requires no action on the part of the user, no data will be returned until the changes is at least 10 millivolts different (higher or lower) from the last value returned. Again, a time tag will inform the user how much time passed between the measurements returned.

These are some of the methods we use to ease the burden on host processors by adding intelligence to our modules.