Innovatia

Huron User Manual

6MAR98

Contents

Getting Started

Installation 
Computer Connection 
Digital I/O Connections
Analog I/O Connections 
Calibration 
Clock
Telemetry and Data Recorder 
Displaying the Configuration

Computer Resets

Processing

Input/Output

I/O Channels
I/O Connectors
Digital I/O
Analog I/O

Scheduler

Processing

Configuring Processes
Ohmmeter

Telemetry

Data Recorder

Mission Programming

Mission Restart
Network

This User Manual is intended to provide operating instructions for the most often-used functions of the Huron. For explanation of how the Huron works, advanced operation and programming details, consult the Huron Reference Manual.

Procommä is a trademark of Datastorm Technologies, Inc., Columbia, MO.

Ó Innovatia Laboratories, 1998. All rights reserved.

Getting Started

Remove the Huron from its package and orient as shown below.

Installation

Power Supply 
Connect the Huron to a 5 V supply (if DC/DC converter is installed), or triple-output supply (5V @ ½ A; ± 12 V @ 50 mA) to the Huron power connector. When connecting a generic supply, Incorrect connection could damage the Huron. Pin 1 is to the left, as shown above. The supply connections, pins 1-4, are: –12 V, ground, 5 V, +12 V.

Startup Pushbuttons  
The Huron uses 2 startup pushbuttons: reset and warmstart. Connect the two pushbuttons supplied to the RESET and WARMSTART connectors, as shown above. The connectors can be put on either direction.

Serial Communications Port  
Connect the serial-port cable to its connector and the 9-pin connector to a serial port of your computer.

Computer Connection

To communicate with the Huron IMPEL operating system through the serial port of the mission computer:

  1. Use a terminal emulator program already on your computer, such as the Windows/Programs/Accessories/HyperTerminal. Set the line settings to:

9600 baud, 8 bits, no parity, one stop bit

  1. Power on the Huron.
  1. While pressing the WARMSTART pushbutton, press and release the RESET pushbutton, and release WARMSTART very shortly thereafter. The terminal emulator screen should display:

IMPEL
Huron Controller
Innovatia

The Huron has done a cold start and is ready to interpret command words from the terminal emulator. To invoke words, type them in and press the Enter key.

  1. The Huron operating settings can be configured manually by typing in words, but it is easier to upload (send to Huron) a text file containing these commands. Upload the config1.hrn file from the Huron diskette.

Digital I/O Connections

  1. Connect a 40-pin IDC connector to the digital I/O connector.
  2. Cut apart and strip off insulation from the wires connected to pins 9 and 10. Pin 1 is at the upper-left corner of the connector. The odd-numbered pins are along the inside (left) row. Pin 9 is fifth pin from the end.
  3. Connect a voltmeter or logic probe to the pin 9 wire.
  4. With the terminal emulator connected to the Huron, set the default configuration by invoking: &CONFIG SCH-GEN
  5. Invoke the command: 1 0 BIT-OUT

  6. The pin 9 wire should be driven to a low logic level (@  0 V). Then invoke:

0 0 BIT-OUT

and the line should go high again (@  5 V). Repeat with pin 10 using

1 1 BIT-OUT 

and 

0 1 BIT-OUT

  1. Cut apart and strip off insulation from the first two wires, connected to pins 1 and 2.

  2. Invoke:

0 BIT-INP .

The result should be –1, or "true." The input is at a logic high state.

  1. 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

  1. Connect a 40-pin IDC connector to the analog I/O connector.

  2. 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.

  3. Connect the wires from pins 13 and 14 together.

  4. With the terminal emulator connected to the Huron, set the default configuration by invoking: 

&CONFIG &CAL SCH-GEN

  1. 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.

  1. 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.

Calibration

  1. Assign the SAIN1 channel the unit of millivolts (mV) by invoking:

mV SAIN1 UNIT

  1. 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

The display should show:

Apply input: signed integer value, in mV =

Apply the battery as a 1.5 V input. Enter a value of 1500. Upon pressing enter, the message is repeated. Repeat entry of 1500. The SAIN1 channel is now calibrated for gain (slope) correction, or "one-point calibration."

  1. Invoke:

SAIN1 .MEAS

and 1500 should be displayed.

  1. 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 =

is displayed the second time, disconnect the battery and connect the wires together (0 V input). Then type 0 (and Enter). Calibration is completed, and by measuring the channel (SAIN1 .MEAS), the result should be 0. Reconnect the battery and the value output by .MEAS should be close to 1500.

  1. 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.

Clock

  1. Set the time of the Huron mission clock, in tenths of a second (deciseconds, ds), to –20 seconds by invoking:

-200 SET-TIME

Imagine a decimal point to the left of the least-significant (rightmost) digit when entering the value of the time.

  1. To display the time, invoke: .TIME

All continual displays are controlled the same way. Press Esc twice to escape from .TIME.

Telemetry and Data Recorder

  1. To initialize the telemetry of all channels to off, invoke: &TELEM

  2.  

  3. Turn on the telemetry for the SAIN1 channel and the on-board bridge voltage supply channel, VBRIDGE by invoking:

 

SAIN1 TELEMETERED VBRIDGE TELEMETERED

     

  1. The recorder only records telemetered channels. To record these two channels, first erase recorder memory by invoking: ERASE

  2.  

  3. Turn on recording by invoking: RECORD ON

  4.  

  5. Monitor the filling of recorder memory with data by invoking:

.%LOG

     

  1. After a few percent of memory is filled, invoke: RECORD OFF

  2.  

  3. 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.

Computer Resets

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

Processing

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

Input/Output

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 kW bridge R

12

DOUT3

4.00 kW 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

Digital I/O

Input and Output Bit-Lines

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.

Relay

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.

Bit-Line Labels

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?

Flow or Pulse-Rate Inputs

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.

Frequency Input

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..

Pulse Generators

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.

PCM Outputs

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 I/O

Range Settings

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.

Saving and Loading Calibration Parameters

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ä :

     

  1. Type .CAL but do not Enter.

  2.  

  3. Press Alt-F1 to turn on datalogging.

  4.  

  5. Press the PageDown key. Select the ASCII file protocol and type the file name:

  6.  

  7. Press Enter again. Now .CAL is invoked and the file data is displayed.

  8.  

  9. After loading, press Alt-F1 to turn datalogging off.

To upload calibration parameters to the Huron from theä :

     

  1. Press the UpPage key, then 7 for the ASCII file protocol. For the file name, type

  2.  

  3. 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.

Voltage and Current Connection

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.

RTD and Thermistor Connection

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 Sensor Connection

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.

Scheduler

Frame Sequencer

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.

Simple Schedules

Instead 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

Two-Rate Schedule

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

Processing

Configuring Processes

Configure channel processing by following these steps:

     

  1. 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:

  2. 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

 
  1. Assign a transducer type to the channel. Invoke:

  2. 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
    VBR-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.

  3. Initialize channels to process words associated with their assigned transducers by invoking: &PROC

  4. Assign to a channel any processing-word other than the one associated with its transducer type by invoking:

  5. channel PROC proc-word

    where proc-word proc-word is the desired process word for that channel.

  6. 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.

The Huron on-board bridge supply is the default supply, set by &TRANSDUCERS. It outputs about 4.1 V and is measured as a dedicated analog input on channel 7, VBRIDGE. The bridge-supply default processing word is VBR-PROC. VBRIDGE is measured on-board the Huron and not at the bridge. This allows two-wire bridge connections.

For more accurate measurements, the voltage across the bridge must be measured at the bridge by another (preferably differential) analog input channel. This channel must then be assigned as the bridge-supply channel. This is done by invoking:

channel IS-BRIDGE-SUPPLY

The channel name, BRIDGE-SUPPLY, is set to whichever channel is measuring the bridge-supply voltage.

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 @ .

Ohmmeter

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

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.

Data Recorder

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.

Mission Programming

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:

  1. Configuration: the Huron is configured for the mission, as before.

  2. 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.

Mission Restart

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

Network

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.

Home Up