|
Innovatia |
|
Huron User Manual 6MAR98 ContentsGetting
Started
|
Invoke the command: 1 0
BIT-OUT
The pin 9 wire should be
driven to a low logic level (@
0 V). Then invoke:
0
0 BIT-OUT
1 1 BIT-OUT
0 1 BIT-OUT
Cut
apart and strip off insulation from the first two wires, connected to
pins 1 and 2.
Invoke:
0
BIT-INP .
Connect a jumper wire from pin 1 to the GND test point, causing the bit 0 input to be low (or false). Invoke the above words again and the result should be 0 (false). Repeat for pin 2 using
1
BIT-INP .
Analog I/O Connections
Connect a 40-pin IDC connector to the
analog I/O connector.
Cut apart and strip off insulation from
the wires connected to pins 13 and 14. Pin 1 is at the lower-right
corner of the connector. The odd-numbered pins are along the inside
(left) row.
Connect the wires from pins 13 and 14
together.
With the terminal emulator connected to the Huron, set the default configuration by invoking:
&CONFIG &CAL SCH-GEN
Invoke the command:
SAIN1 .MEAS
The uncalibrated voltage, in millivolts, will be continually displayed and should be about 0 V. Stop the display by pressing any key. Start it again by pressing any key except Esc. Exit the .MEAS word by pressing the Esc key while stopped.
Connect a 1.5 V battery between pins 13 and 14, with the + polarity on pin 13. Invoke the measurement command line again, as before, and the displayed value should be about 1500, or 1.5 V.
Assign the SAIN1 channel the unit of millivolts (mV) by invoking:
mV SAIN1 UNIT
Assume the battery used in the previous section really is 1.5 V. To calibrate the SAIN1 channel using it as a known voltage source, invoke:
SAIN1 CAL LINEAR
Apply input: signed integer value, in mV =
Invoke:
SAIN1 .MEAS
and 1500 should be displayed.
A more accurate calibration scheme is two-point (slope and offset) calibration. To two-point calibrate the SAIN1 channel, repeat the above procedure, except when
Apply
input: signed integer value, in mV =
Sensors can be connected to the various channels and calibrated using one- or two-point calibration. Instead of applying sensor quantities (such as pressure, temperature or flows) to the actual sensors, they can usually be simulated by applying the equivalent voltage (or resistance) to their input channels instead. In this case, when calibrating, type in the corresponding quantity that would be measured, in the units previously specified for that channel using the UNIT word.
Set the time of the Huron mission clock, in tenths of a second (deciseconds, ds), to –20 seconds by invoking:
-200 SET-TIME
To display the time, invoke: .TIME
To initialize the telemetry of all channels to off, invoke: &TELEM
Turn on the telemetry for the SAIN1 channel and the on-board bridge voltage supply channel, VBRIDGE by invoking:
SAIN1 TELEMETERED VBRIDGE TELEMETERED
The recorder only records telemetered channels. To record these two channels, first erase recorder memory by invoking: ERASE
Turn on recording by invoking: RECORD ON
Monitor
the filling of recorder memory with data by invoking:
.%LOG
After a few percent of memory is filled, invoke: RECORD OFF
Play
back the recorded data by invoking: PLAYBACK
PLAYBACK
processes the acquired raw data stored by the recorder into corrected
values in the assigned units, using the assigned process word for each
telemetered channel. Because the VBRIDGE channel was not calibrated, its
value should be only approximately 4100. The playback stops where the
recording was turned off.
Displaying the Configuration
The status of all channels is displayed by invoking:
.CONFIG
Each of the 25 channels has the following parameters (settings):
number The channels numbers are fixed and given in the I/O Channels table in the I/O section.
name Channels are given default names by invoking: &CHANNELS
A channel can be renamed by invoking:
old-name RENAME new-name
sample rate The rate at which the scheduler samples a channel, in Hz (samples per second). The rate is 0 if the channel is not scheduled.
offset The other scheduler frame parameter besides sample rate.
gain The analog channel amplification of sensor inputs, which sets the full-scale input amount the Huron can acquire.
transducer The type of transducer assigned to a channel. Default transducer types are assigned by &TRANSDUCERS. A transducer type has associated with it a calibration word and a processing word.
process This is the name of the processing word that takes raw data and transforms it into an accurate value in the assigned unit.
unit This is the assigned unit of the processed measurement. Some units, when changed, cause units conversion of processed values.
telemetered? Displays whether the channel telemetry is on (yes) or not.
The Huron computer has several ways of responding to interruption of its normal computing. These "computer resets" are:
Cold start: Push WARMSTART while pushing RESET. Release WARMSTART shortly after releasing RESET. A cold start forgets any mission programming and is necessary only when a warm start or restart will not cause the Huron to recover.
Warm start: Push WARMSTART. Control resumes with the IMPEL interpreter and mission programming is retained. Use a warm start to recover from programs that do not return control to the interpreter (that is, to the user).
Restart: Push RESET. Control is returned to the mission program. A computing failure during execution of a mission allows the watchdog timer to time out. If the WDT jumper is installed, the computer is reset and it reinvokes the restart program word. The restart word is assigned by:
RESTART restart-word
The Huron data acquisition system (DAS) acquires raw data which must be processed to produce accurate values in the assigned units. For linear sensors or actuators (transducers), only slope (gain) and offset correction are needed, and the parameters generated by calibration are used to linearly correct raw data. For nonlinear sensors, such as RTDs and thermocouples, sensor tables are interpolated. This processing is built in for commonly used sensors. Correction can also be applied to outputs to actuators. To apply the correct procesing for each channel, its transducer is identified by invoking:
channel TRANSDUCER transducer
where transducer is the transducer type. The following types are provided; additional types can be uploaded from transducer text files:
LINEAR BRIDGE for non-bridge and bridge-based linear transducers
DIGITAL for digital transducers
TCK TCJ for K and J-type thermocouples
RTD100 RTD1K for 100 W and 1 kW (at 25 ° C) RTD temperature sensors
AD22100 for Analog Devices Inc. AD22100 solid-state temp. sensors
The I/O channel assignments are given in the following table. The word names are the generic default names assigned by &CHANNELS.
Channel 0 is dedicated to thermocouples (K or J types).
Channels 0-4 are single-ended (not differential) analog inputs for solid-state pressure, temperature and acceleration sensors, and variable resistance sensors such as RTDs, thermistors and photocells.
Channel 5 and 6 differential inputs can measure at elevated voltages, such as current sensing across a resistor on the 12 V (high-side) battery terminal.
Channel 7 is the on-board bridge voltage supply measurement channel. The bridge voltage can be tracked and used to compensate bridge-sensor outputs.
Channels 8-15 are general-purpose differential input channels, mainly intended for bridge-based sensors, such as pressure sensors, strain gages and load cells (force sensors). They can also be used with single-ended sensors.
Channels 16 and 17 take magnetic-vane or switch-closure flow sensor pulses, and channel 18 counts TTL-level digital logic pulses and measures pulse rate (frequency). This channel is associated with the serial I/O bus for extending the number of analog channels by converting analog quantities to frequencies.
Channels 21and 22 output PCM pulses to run "radio-controlled" servo motors, commonly used in hobby aircraft and machine automation.
I/O Channels
|
Channel Number |
Channel Description |
Word Name |
|
0 |
Thermocouple (K or J type) |
TCIN |
|
1 |
Single-ended analog input 1 |
SAIN1 |
|
2 |
Single-ended analog input 2 |
SAIN2 |
|
3 |
Single-ended analog input 3 |
SAIN3 |
|
4 |
Single-ended analog input 4 |
SAIN4 |
|
5 |
Volts 0, V0 |
VOLTS0 |
|
6 |
Volts 1, V1 |
VOLTS1 |
|
7 |
Bridge voltage = Vbr = 4.1 V |
VBRIDGE |
|
8 |
Differential analog input 0 |
AIN0 |
|
9 |
Differential analog input 1 |
AIN1 |
|
10 |
Differential analog input 2 |
AIN2 |
|
11 |
Differential analog input 3 |
AIN3 |
|
12 |
Differential analog input 4 |
AIN4 |
|
13 |
Differential analog input 5 |
AIN5 |
|
14 |
Differential analog input 6 |
AIN6 |
|
15 |
Differential analog input 7 |
AIN7 |
|
16 |
Flow 0 input |
FLOW0 |
|
17 |
Flow 1 input |
FLOW1 |
|
18 |
Frequency input; £ 500 kHz |
FREQ |
|
19 |
Digital input (DINP) DINP8 – DINP15: external serial |
DINP |
|
20 |
Digital output (DOUT7: relay) DOUT8 – DOUT15: external serial I/O bus |
DOUT |
|
21 |
PCM0 |
PCM0 |
|
22 |
PCM1 |
PCM1 |
|
23 |
PG0 |
PG0 |
|
24 |
PG1 |
PG1 |
Channels 23 and 24 output pulses of duration (width) set by the sampling rate, with a voltage amplitude of the bridge supply. These outputs directly drive the Innovatia PG2 dual pulse generator, for exciting pyrotechnic devices with controlled amounts of charge from the battery.
I/O Connectors
|
Pin # |
Digital I/O Connector |
Analog I/O Connector |
|
1 |
DINP0 |
FLOW0 |
|
2 |
DINP1 |
FLOW0 GND |
|
3 |
DINP2 |
FLOW1 |
|
4 |
DINP3 |
FLOW1 GND |
|
5 |
DINP4 |
|
|
6 |
DINP5 |
|
|
7 |
DINP6 |
V0+ |
|
8 |
DINP7 |
V0 - |
|
9 |
DOUT0 |
V1+ |
|
10 |
DOUT1 |
V1 - |
|
11 |
DOUT2 |
4.00 k W bridge R |
|
12 |
DOUT3 |
4.00 k W bridge R |
|
13 |
DOUT4 |
SAIN1 |
|
14 |
DOUT5 |
AGND |
|
15 |
DOUT6 |
PG0 |
|
16 |
Serial bus: SDOUT |
PG1 |
|
17 |
Serial bus: SCK |
AGND (analog ground) |
|
18 |
Serial bus: SDINP |
SAIN2 |
|
19 |
Serial bus: /SS |
SAIN3 |
|
20 |
Serial bus: SS |
SAIN4 |
|
21 |
Serial bus: STROBE |
AIN0+ |
|
22 |
Frequency in |
AIN0 - |
|
23 |
Serial bus digital Ground |
AIN1+ |
|
24 |
|
AIN1 - |
|
25 |
|
AIN2+ |
|
26 |
|
AIN2 - |
|
27 |
Relay COMmon |
AIN3+ |
|
28 |
Relay COMmon |
AIN3 - |
|
29 |
Relay NC |
AIN4+ |
|
30 |
Relay NC |
AIN4 - |
|
31 |
Relay NO |
AIN5+ |
|
32 |
Relay NO |
AIN5 - |
|
33 |
Serial port TXD/+ |
AIN6+ |
|
34 |
Serial port RXD/ - |
AIN6 - |
|
35 |
PCM0 |
AIN7+ |
|
36 |
PCM1 |
AIN7 - |
|
37 |
+5V |
TC+ |
|
38 |
+5V |
TC - |
|
39 |
GND |
4.1 V Bridge Voltage |
|
40 |
GND |
Bridge driver GND |
The DINP and DOUT channels input and output 16 bits each. The 8 most-significant bits (or high byte) are used by the serial I/O bus. The low bytes are available on the Huron board. Eight inputs are available, labeled DINP0 through DINP7. Each bit is associated with one pin on the connector. These bit-lines are at a logic high (true) when the pins are open.
To read in the state of switches, attach one terminal of the switch to a bit-line and the other to ground. When the switch is closed, the words
n BIT-INP .
will output a 0 (false); when open, a –1 (true). These indications can be used to make programming decisions.
Seven output bits, DOUT0-DOUT6, control connector pins with these labels, and DOUT7 controls the relay. When a DOUT bit is set true, its corresponding output pin is driven low, to ground, and can sink up to ¼ A and withstand up to 45 V when off (high). Output bit-lines are pulled up to 5 V (logic high) when open.
To drive relays, be sure to connect a diode around the relay coil, with the cathode end (marked with a band) to the positive supply, as shown:

where n is one of the bit-line numbers 0–6. To turn on the relay (that is, DOUTn), invoke
1 n BIT-OUT
and it turns on. To turn off, invoke: 0 n BIT-OUT
The entire 16 bits of DINP can be returned by invoking: DINP DATA
or alternatively, SDINPREG @
With all input bits available, groups of them can be examined simultaneously. Similarly, multiple output bits can be modified by invoking:
n SDOUTREG !
where n is a number that has the desired bit pattern. To create such a number easily, invoke:
2 BASE !
Then, starting with bit 15 (of DINP15) and working to bit 0 (DINP0), set each bit to the on (true) or off (false) state with 1 or 0. For example, to set DINP15, DINP11, DINP7, DINP3 and DINP2 on and the others off, invoke:
10001000 10001100 SDOUTREG ! DECIMAL
If you are not using the high byte (no serial I/O bus extension), then you need type only DOUT7–DOUT0 and use C!, as shown below for the same low-byte setting as above:
10001100 SDOUTREG C! DECIMAL
After either of these commands, the arithmetic base is changed from binary back to decimal by invoking DECIMAL.
The relay is a 2 A, 30 V dc or 0.6 A, 125 V ac single-pole, double-throw relay, with NO (normally open), NC (normally closed) and COM (common) terminals brought out to the digital I/O connector. It is operated by bit-line DOUT7. One use for it is in exciting loads such as igniters. The load is placed across the COM terminal and ground. While not firing, the NC terminal of the relay is also connected to ground, shorting the load and preventing spurious excitation. When the relay is driven on, the COM line is connected to the NO terminal, which is connected to the firing supply. The relay can be used for loads other than igniters, of course.

A specific command to turn the relay on for n deciseconds (0.1 s) is:
n FIRE
The relay is actuated for at least n deciseconds.
To keep track of bit-lines in configuring or programming the Huron, assign them names by defining them as follows:
bit-number CONSTANT bit-line-name
For example, if DINP3 is connected to a valve-open indicator, it can be named:
3 CONSTANT VALVE-OPEN?
Then, to check whether the valve is open, invoke:
VALVE-OPEN? BIT-INP .
and the true/false value is displayed. If you use a name that is already defined and want to "undo" all words back to and including VALVE-OPEN?, invoke:
FORGET VALVE-OPEN?
The flow channels measure the pulse frequency of their inputs over one second intervals. The FLOW0 and FLOW1 inputs can be connected directly to magnetic-vane or switched-output flow sensors, the common output of turbine sensors. These channels can measure any pulses from any source, not only flow sensors.
For magnetic-vane sensors, open the jumpers marked FLOW0 and FLOW1, 1M to 5V, and install them for contact-closure type sensors. The maximum pulse rate is 200 Hz. These channels can also be used to totalize (add) pulses merely by summing the returned values for each one-second interval.
To display flow rates for both flow channels, invoke: .FLOWS
To return the rate, invoke
n DATA
where n is the FLOW0 or FLOW1 channel. The returned value can be used in programming.
The flow channel input pulses are processed into logic waveforms and these waveforms are present at the OUT FLOW0 and FLOW1 test points. By probing with an oscilloscope for digital pulses, sensor interface compatibility can be verified.
The frequency input channel counts logic-level (TTL-compatible) pulses over 50 ms intervals. It uses a 16-bit counter, which gives it a range of 20 Hz to 500 kHz. The frequency can be displayed by invoking .FREQ. Sampling the FREQ channel faster than 20 Hz results in redundant data. To use the frequency in a program, invoke FREQUENCY and an unsigned 32-bit value (or "double number") is returned, which can be output by invoking D..
The pulse generator (PGn) channels produce a single pulse of duration equal to the sampling period (1/rate). For example, setting the rate at 2
0 Hz produces a pulse width of 50 ms. PG0 is pulsed when the command:
0 PULSE
is invoked. PG1 is fired with 1 PULSE, and both are fired within the same frame by 2 PULSE. For greatest firing synchronism, make sure that the difference in offsets of the PG0 and PG1 channels is minimized. At best, firing of the two channels will be 5 ms (1/MAXRATE) apart. PG outputs can be telemetered to record their time of occurrence.
For testing pulse output channels, a continual stream of pulses is useful and can be invoked by:
n n .PULSE .PULSE
where n is 0, 1 or 2, as before.
The two PCM channels are designed to interface directly to PCM (pulse-code modulation) servo motors, such as those commonly found in hobby aircraft or automated machinery. These position servos are commanded by pulses occurring at a frequency of 20 Hz. Position is encoded as the pulse width, as given in the following table.
|
Pulse Width |
PCM Range |
PCM Value,% |
|
1.0 ms |
- full scale |
–100 |
|
1.5 ms |
zero scale |
0 |
|
2.0 ms |
+ full scale |
100 |
PCM servomotors have three terminals: ground, +5 V and PCM input. Pins 37-40 of the Huron digital I/O connector provide the supply and ground connections and are adjacent to the PCM0 (35) and PCM1 (36) pins.
PCM channels are commanded by:
±% n PCM
where n is 0 or 1 (for channel PCMn) and the range is + or –100 %, with 0 in the middle (or neutral) position.
To test PCM channels, a full-range scan is done by: n PCM-SCAN
The flow channels introduce a small amount of jitter (± 4 m s) into the PCM channels. For most applications, this effect is negligible.
Analog channel inputs are amplified by a programmable-gain amplifier (PGA). This gain is set by the command:
n channel GAIN
where n is one of x1, x10, x100, or x1000. To choose the right gain setting, the full-scale output voltage of the sensor circuit must be less than the full-scale (fs) setting for a given gain, as given in the following table.
|
Full-Scale Input Voltage |
PGA Gain |
Typical Sensors |
|
4.1 V |
´ 1 |
battery voltage, AD22100, thermistors |
|
410 mV |
´ 10 |
battery current, pressure sensors |
|
41 mV |
´ 100 |
load cells, RTDs |
|
4.1 mV |
´ 1000 |
strain gages, load cells |
If subsequent input appears noisy or the raw data values are small, increase the gain by one decade. To display the raw data values, invoke:
channel .DATA
The zero-scale value of all data is 0 and the full-scale value is 4096. If the raw-data value is less than 410 when a full-scale quantity is applied to the sensor input, then increase the gain by ´10.
If the raw-data values appear to "clip" or "saturate" at full scale (4096), then the gain is too high; reduce it by ´10 and check again.
The calibration parameters can be initialized to the ideal values (slope of one, no offset) by invoking: &CAL
After calibration, the parameters can be viewed by invoking:
.CAL
To save these parameters by archiving them into a text file on the mission computer using Procommä :
Type .CAL but do not Enter.
Press Alt-F1 to turn on datalogging.
Press the PageDown key. Select the ASCII file protocol and type the file name:
Press Enter again. Now .CAL is invoked and the file data is displayed.
After loading, press Alt-F1 to turn datalogging off.
To upload calibration parameters to the Huron from theä :
Press the UpPage key, then 7 for the ASCII file protocol. For the file name, type
The data from the text file will be displayed as it is interpreted by the Huron. At the end of the file, press the Esc key, and it only.
The Procomm settings for use with the Huron are provided on diskette, but if the settings are ever changed, the ASCII transfer setup should be set as shown in the following table.
ASCII Transfer Setup
|
ASCII Upload Parameter |
Upload Setting |
ASCII Download Parameters |
Download Setting |
|
Echo locally |
YES |
CR translation |
ADD LF |
|
Expand blank lines |
NO |
LF translation |
NONE |
|
Pace char. |
13 (ASCII) |
|
|
|
Character pacing |
500 |
|
|
|
Line pacing |
0 |
|
|
|
CR translation |
NONE |
|
|
|
LF translation |
STRIP |
|
|
Single-Ended Analog Inputs
The SAINn channels take inputs referenced to the AGND (pin 17) ground. Typical sensors are low to medium-range solid-state pressure sensors, solid-state, RTD and thermistor temperature sensors, solid-state accelerometers and rate gyros, and amplified sources.
The input range is 0 V zero-scale and 4.1 V full-scale (at ´1 gain). Voltages far outside this range could damage the Huron. Measure sources, including amplified sensor outputs, before connection. Connect one terminal of the sensor or the negative terminal of an amplified source to AGND. Connect the positive terminal to the SAINn pin.
Set the channel gain and apply a quantity to be measured to the sensor while checking its raw-data range. (See "Range Settings.") Set the processing for the channel (see "Processing") and calibrate, if desired.

The VOLTS0 (5) and VOLTS1 (6) channels are differential-input channels capable of measuring common-mode voltages outside the range of the other channels. For example, by connecting a sense resistor to the positive terminal of a battery supply, the battery current can be measured, as shown below, with connector pin numbers.
The current measured through Rs by the VOLTS1 channel is the VOLTS1 voltage divided by Rs. For a sense resistor of 0.2 W (200 milliohms), this is calculated and output in IMPEL by:
VOLTS1 MEASURE 1000 200 */ .
where the 200 is in milliohms.
To connect RTD or thermistor sensors, a half-bridge is required, where the sensor is the lower resistance and a precision resistor is the upper resistance to the bridge supply, as shown below. The inputs can be either SAIN and AGND or AIN+ and AIN– (connected to AGND) using a differential channel.
The Huron provides two Rbr bridge resistors of 4.00 kW on pins 11 and 12. For additional half-bridges, off-board precision bridge resistors of 4.00 kW must be supplied.
User-supplied bridge resistors need not be 4.00 kW. If different (but still accurate) values are used, this value, in ohms, must be stored in the RBR variable in IMPEL by invoking:
Rbr-ohms RBR !
Resistor value tolerances of 0.1 % are suggested, though 1 % parts will work with a corresponding loss of accuracy.
RTDs should be platinum (Pt) with a DIN43760 curve (a =
0.385 %/°C). Recommended 1 kW thin-film RTDs are the Sensing
Devices, Inc. (SDI) GR2141 and the Minco S251PF12 (or as thermal ribbons,
S17624PF440B). The SDI Pt100/15P has an R0 of 100W
and S251PF12 of 1 kW.
The resistance of the lower
resistance of the half-bridge can be measured, in ohms, by invoking:
channel .RES

Bridge-based sensors, such as load cells, pressure sensors and strain gages (2) use differential analog input channels AIN0–AIN7. The simplest type of connection is the two-wire bridge, as shown below, using the Huron analog I/O connector pins.

In the circuit diagram, two opposing strain gages (+e, –e) form a half-bridge and their center-junction connects to the AINn+ pin of the analog I/O connector. The AINn– pin connects to the other half-bridge, if supplied with the sensor. Full-bridge sensors such as commercial load cells and solid-state pressure sensors provide terminals for both AIN+ and AIN–. The bridge voltage supply connects to the sensor bridge-supply connections, as shown above using the Huron bridge supply.
User-made sensors, such as strain sensors or load cells require the AIN– side of the bridge. For two-wire bridge measurements, the Huron provides the half-bridge voltage on-board for the AIN channels. The VBR/2 AIN– jumpers near the analog I/O connector are marked 0–7 for AIN0– through AIN7–. By installing a jumper, the minus-side of the bridge is supplied on-board. This voltage can be measured between the VBR/2 and AGND test points.
If long wires are run between the analog I/O connector and bridge sensor, or if greater measurement accuracy is desired, a four-wire (or Kelvin) bridge scheme can be used. This is the same as the two-wire scheme, as shown above, but instead of measuring the bridge voltage at the source (on the Huron board), a separate channel is used to measure it at the sensor bridge.
Bridge-type transducer processing uses the bridge voltage measurement to compensate the value. Consequently the bridge supply must be declared as such, and is by setting the word
BRIDGE-SUPPLY
to the channel measuring the bridge supply. The default bridge-voltage measurement channel is VBRIDGE (channel 7). BRIDGE-SUPPLY initializes to VBRIDGE by a cold start. BRIDGE-SUPPLY can be changed by invoking:
bridge-measurement-channel IS-BRIDGE-SUPPLY
This word changes the old bridge supply, with processing word VBR-PROC, to LINEAR-PROC processing and changes the new bridge measurement channel processing to VBR-PROC.
I/O channels are accessed through the
On the first 5 ms "tick" of a new clock second, the channel of the first subframe in the frame is acquired. The sequencer goes through all 200 subframes, then repeats at the beginning of the next second. The 200 subframes of the frame must be scheduled for the sequencer to work.
Initially, all subframes are set to "no channel" by &SCH. This word clears the frame of channels, readying it for a new configuration.
I
nstead of having to individually assign 200 subframes, the scheduler eases the task. It repeats channels at regular intervals in the frame, based on their sample rate. The allowed rates divide 200 and are: 200, 100, 50, 40, 25, 20, 10, 8, 5, 4, 2 and 1 Hz. So for a scheduled channel with a 100 Hz rate, every other subframe will be assigned that channel. For an 8 Hz rate, all 25 channels can be scheduled and repeat every 200/8, or 25, subframes. The scheduler word SCH-ALL does this. The challenge in frame design is to offset these repetitions of channels so that no two channels land on the same subframe.If, for example, the 200 Hz of total sample-rate is divided, or multiplexed into 10 20 Hz subdivisions, then the subdivisions can be offset from each other by 1 without interference. One or more of the subdivisions could, in turn be subdivided (multiplexed). One 20 Hz subdivision could, for example, be divided into 5 4 Hz levels, and one of them could then be multiplexed into 4 1 Hz channels - a total of three levels of multiplexing.
For most applications, a simple one- or two-level multiplexing scheme is adequate. One scheme is built in as a "general" scheduler and samples channels 0–17, 19, and 20 at 5 Hz, and 21-24 at 25 Hz. This schedule can be configured into the frame by invoking
SCH-GEN
Following from the above example, a one-level multiplexing scheme, with all channels sampled at the same rate, can be designed by the procedure in the box, "Single-Rate Schedule Design."
For a single-level multiplexer design example, pick the common sample rate, r, to be 25 Hz. Then 200 Hz/25 Hz = 8 channels. Assume that we want to program the 8 differential analog input channels. Then, from step 2, 8 commands are given:
25 0 AIN0 SCH
25 1 AIN1 SCH
25 2 AIN2 SCH
...
25 7 AIN7 SCH
Having only one rate is somewhat limiting, leading to two-level multiplexing. We start with the first level, as before, but then take one or more of the 8 25 Hz subdivisions and submultiplex them into channels of lower rate. The general procedure is given in the "Two-Rate Schedule Design" box. Each of the 8 channels are then configured into the frame with SCH. For the example, for the channel at (2, 2), invoke: 5 10 channel SCH

Configure channel processing by following these steps:
Choose a measurement unit for the channel. The built-in units are given in the units table. Assign the unit to the channel by invoking:
unit channel UNIT
Default units are assigned by invoking: &UNITS
|
Unit Word |
Unit string |
Description |
|
s |
s |
seconds |
|
ms |
ms |
milliseconds |
|
mA |
mA |
milliamperes |
|
mV |
mV |
millivolts |
|
V |
V |
volts |
|
psi |
psi |
lbf/in2 |
|
bar |
bar |
bars |
|
atm |
atm |
atmospheres |
|
kPa |
kPa |
kilopascals |
|
degF |
degF |
degrees Fahrenheit |
|
degC |
degC |
degrees Celsius |
|
m/s^2 |
m/s^2 |
meters/second2 |
|
g0 |
g0 |
9.806 m/s2 |
|
ft/s^2 |
ft/s^2 |
feet/second2 |
|
N |
N |
newtons |
|
lbf |
lbf |
pounds force |
|
Hz |
Hz |
Hertz |
|
kHz |
kHz |
kilohertz |
|
ft^3/min |
ft^3/min |
cubic feet/minute |
|
cc/s |
cc/s |
cm3/s |
|
l/min |
l/min |
liters/minute |
|
NO-UNIT |
no unit |
Assign a transducer type to the channel. Invoke:
channel TRANSDUCER transducer
where transducer is the transducer type. Built-in transducer types are given in the following table.
|
Transducers |
Transducer Type |
Process Word |
|
Linear non-bridge |
LINEAR |
LINEAR-PROC |
|
Linear bridge-based |
BRIDGE |
BRIDGE-PROC |
|
K-type thermocouple |
TCK |
TCK-PROC |
|
J-type thermocouple |
TCJ |
TCJ-PROC |
|
100 W RTD |
RTD100 |
RTD100-PROC |
|
1 kW RTD |
RTD1K |
RTD1K-PROC |
|
AD22100 solid-state temperature sensor |
AD22100 |
AD22100-PROC |
|
bit-lines |
DIGITAL |
NULL-PROC |
The default assignment of transducers to channels is invoked by:
&TRANSDUCERS
The transducer type is used for calibration and for data processing. The raw data is processed into a value in the assigned unit by the process word associated with the transducer assigned to the channel.
Additional transducer types can be added to the list by uploading their text files to the Huron. The Huron Technical Reference Manual describes how to use the word TRANSDUCER-TYPE to create new types.
Initialize channels to process words associated with their assigned
transducers by invoking:
&PROC
Assign to a channel any processing-word other than the one associated with its transducer type by invoking:
channel PROC proc-word
where proc-word proc-word is the desired process word for that channel.
If bridge-based sensors are used, their bridge supply must also be measured. Its voltage affects bridge measurement so that variations in its voltage must be compensated.
channel IS-BRIDGE-SUPPLY
The configuration of processing is now complete.
The VBR-PROC process word corrects the VBRIDGE data based on its calibration (using LINEAR-PROC) and it additionally updates the value of the variable, VBR, the bridge voltage, which can be output, in mV, by invoking:
VBR @ .
Resistance of half-bridge sensors can be measured, in ohms, by invoking:
channel .RES
This is useful for diagnosing connection problems and measuring resistance of sensors directly to verify measurement accuracy.
Telemetry sends back to the mission computer via the serial port raw or procesed data while it is being acquired. This data can be displayed or used to make decisions about the mission underway.
Telemetry for scheduled channels can be turned on or off. All channels can be reset to off by invoking
&TELEM
Then selected channels can have telemetry turned on by invoking:
channel TELEMETERED
These choices also affect data recording, for only telemetered channels are recorded. A channel can be "untelemetered" (telemetry turned off) by invoking:
channel UNTELEMETERED
To telemeter channel data in a controlled way, each time
TELEMETER
is invoked, it sends processed data for the next telemetered channel. Because processing takes computing time, not all the samples that are recorded are telemetered, but they are immediately meaningful. This word is put in the processing loop of the mission program so that telemetered data is continually sent.
The stream of telemetry data can be turned on and off by invoking:
TELEMETRY ON or TELEMETRY OFF
During testing, it can be useful to turn off telemetry so that the Huron can be commanded using a terminal emulator.
The data sent back for each subframe has the format:
CR time channel-number channel-name processed-value unit
The processed value is the same 16-bit integer that .MEAS outputs.
For speedier telemetering, the redundant text of the channel name and the unit are omitted by invoking:
FULL-SUBFRAME OFF
It is initially on and can be set back on for recorder playback by invoking:
FULL-SUBFRAME ON
Default initialization turns the full subframe format on.
The same channels that are telemetered (on) are recorded. The data recorder holds 16,384 samples and records 16-bit raw data for all telemetered channels. During playback, it processes the data and outputs it using the same subframe format as telemetry. (See "Telemetry" for format options.)
For the scheduled frame, the recording time until memory is full is output by invoking .LOGTIME, which gives the time in units of seconds.
While recording, the amount of memory filled can be monitored by invoking .%LOG. It displays the % of recording memory that is full.
Recording begins when the recording is turned on with
RECORD ON
and is turned off either when recorder memory is full or when
RECORD OFF
is invoked. Note that stopping and starting the recorder during a mission causes time lapses between data segments which, during playback, will appear contiguous, as though the recorder had never been stopped. But the data will be valid. If record is kept of when the recorder is stopped and started, discontinuities in the data can be used to reconstruct the timing.
The Huron is most easily programmed by uploading text files of mission programs provided on diskette. These programs can be used as templates and modified for particular missions with minimal programming knowledge of IMPEL, the Innovatia Microcontroller Programming Environment & Language.

The template missions provided on diskette are of the following form:
Configuration: the Huron is configured for the mission, as
before.
State Machine: the rest of the mission program is a set of states and conditions. In a dynamic system, these conditions are events that drive changes in state. Each state has its settings for output-channel values.
Transitions between states occur under programmed conditions. For example, a rocket launch countdown can be graphically expressed as a state diagram, as shown below.

The conditions for transition between states is written beside the arcs directed from a state to the next state, such as the "start countdown" condition for going from the START to the COUNT state. The states are labeled with names such as START and FIRED. Conditions for state transitions involve the clock time and values of any of the I/O channel data.
For example, during a rocket flight, a change in state can occur when the ambient pressure drops to a programmed level (indicating sufficient altitude). This condition causes transition to a new state in which one of the pulse generators is pulsed to deploy the recovery system.

The state-machine program loops through a sequence of blocks, each associated with a state. Each block has the same basic form. It first checks whether the mission state (kept in a variable called MSTATE) is the same as itself. If so, it sets outputs for its state. Then it checks conditions for transition to another state. If they are met, it changes MSTATE to the next state. An entire mission can be described in the form of a state machine.
During the mission, if the computer code execution goes out of control (or "dethreads") due to electrical noise or a programming fault, the watchdog timer (if jumpered) will pull the computer reset line, causing a restart. To restart, computation resumes by invoking the restart mission program word. To assign this word for restarting, invoke:
RESTART mission-restart
where mission-restart is the mission word for restarting. The default restart word is WARM, the warmstart word.
The scheduler , clock, and recorder are interrupt-driven. On each interrupt, the computer watchdog timer is reset. If the computation dethreads, the timer will cause a restart. However, it is possible for the interrupt thread to continue to execute while the mission program has dethreaded. To provide security against its dethreading, the mission watchdog word MWD-ENABLE enables mission programming security. Program the initialization part of the mission program to include
MWD on
MWD-ENABLE on
and disable it with
MWD-ENABLE off
When enabled, the interrupt thread will check the variable
MWD
every second, and if it is not set (and MWD enabled), it will cause a restart. Therefore, the mission program must loop through the command
MWD on
at a rate faster than one second to avoid restarting. Before leaving the program, invoke:
MWD-ENABLE off
Up to 8 Hurons can be networked using a common RS-485 twisted-pair cable. This extends the number of Hurons that can be used in larger systems or for distributed data acquisition and control.
Only one talker/listener or "node" of the cabled network can talk at a time while the others listen. For nodes to talk to each other, each node needs a unique address. This address is stored in the variable, NODE#, and can be output by invoking:
NODE# @ .
For networking, the DINP bits DINP5–DINP7 (digital I/O connector pins 6–8, in order) are reserved for setting the node address. The address is set as the table below shows. For 0 entries, connect the pin to ground; for 1 entries, leave it open.
|
Address |
DINP7 |
DINP6 |
DINP5 |
|
0 |
0 |
0 |
0 |
|
1 |
0 |
0 |
1 |
|
2 |
0 |
1 |
0 |
|
3 |
0 |
1 |
1 |
|
4 |
1 |
0 |
0 |
|
5 |
1 |
0 |
1 |
|
6 |
1 |
1 |
0 |
|
7 |
1 |
1 |
1 |
Each Huron of the network should be individually programmed so that upon restart, the word
NETWORK
is executed. NETWORK initializes the network configuration so that when the Huron is attached to the common RS-485 port, it will function as a network node. It is possible to interact with a node on the network by using the NODE command, but user-typed characters will not be echoed and tabular outputs (with multiple lines of text) such as .CONFIG will cause other nodes to attempt to interpret the new lines, causing errors. A node with an error can be recovered by sending it a null line or two; invoke: n NODE
A node sends a line of text (ended by a CR) to node n by invoking the one line,
n NODE line of text CR
where the CR is either the ASCII Enter (end-of-line) character (13) or the word CR, as shown, which, when invoked, sends an Enter character.
When the talking node sends the text line, other nodes receive and interpret it. They execute NODE and, if the preceding number is not their address, ignore the rest of the line. For the destination node, the number matches and it interprets the line and becomes the talker in order to respond to the line sent it. When responding, it begins by sending out n n NODE NODE where n is its own address. This tells other nodes to ignore the response and tells the originating node which node is responding.
![]()