A serial interface to the CIDP delivers HENA telemetry data and commands to the CIDP.

Format

The DPU sends telemetry data serially at 38400 baud with eight data bits, one stop bit, and no parity. Each package consists of a four byte header followed by zero or more data bytes. The header is a three byte synchronization pattern followed by a package identifier. Packages may be sent following the first synchronization pulse after the nadir pulse, but must conclude before the next nadir pulse. The package types used by HENA are summarized in the following tables.

Data packages are used to downlink science and housekeeping data. Each data product is placed in a package; the application id identifies the data type. The Compression bit would be set to command the CIDP to compress the data. Since the HENA DPU compresses its own data, this bit will never be set. The byte count gives the length of the data and checksum fields; the most significant byte of the length is sent first. Up to 63,980 bytes of data can be sent in one package. Following the data is a checksum, consisting of the byte-wise exclusive-or of the data.

Data Package Format
7654 3210
00xfe - Synchronization Pattern 1
10xfa - Synchronization Pattern 2
20x30 - Synchronization Pattern 3
30xdc - Data Package Id
4CmpApplication Id
5Byte Count, 7 - N (ms)
6Byte Count (ls)
7+...
Data
...
NChecksum

Each package is converted to a HENA CCSDS packet by the CIDP. The packet will have an application process id consisting of 0101XXXXXXX where XXXXXXX is the application id from the package. The CCSDS packet secondary header will have the spacecraft time at the start of the next spin. The package checksum will be included in the packet data. If the checksum is bad, the package is downlinked as if the application id were 0x7f; the application id 0x7f is reserved by the CIDP for this use.

The CIDP request package requests action of the CIDP. The request id identifies the action to take. The byte count gives the length of the checksum field and is always one.

CIDP Request Package Format
7654 3210
00xfe - Synchronization Pattern 1
10xfa - Synchronization Pattern 2
20x30 - Synchronization Pattern 3
30xd5 - CIDP Request Package Id
4Request Id
5Byte Count, 7 - N (ms) (= 0)
6Byte Count (ls) (= 1)
7Checksum (= 0)

At most one request may be sent per spin. The CIDP will act on the request within two spins. The following requests are defined:

At least one package must be sent to the CIDP every spin to allay the CIDP watchdog's suspicions of HENA's demise. The No-data package is sent if HENA has no other data to send.

No Data Package Format
7654 3210
00xfe - Synchronization Pattern 1
10xfa - Synchronization Pattern 2
20x30 - Synchronization Pattern 3
30xac - No Data Id
4Fill (= 0)
5Byte Count, 7 - N (ms) (= 0)
6Byte Count (ls) (= 1)
7Checksum (=0)

Science Products

Science data products are accumulators, PHA results, images from the HENA-M and HENA-S sensors, and various data structure dumps. Each product is accumulated and transmitted at a fixed interval or on demand as specified in the table below. Each product is sent in separate packages with a unique application id.

Product AppIDs (hex) Rate
Accumulators0x002 sectors
HENA-M PHA Results0x012 sectors
HENA-S PHA Results0x022 sectors
HENA-M Raw + PHA0x032 sectors
HENA-S Raw + PHA0x042 sectors
High Res. Image0x051 spin
Low Res. Image0x061 spin
SSD Image0x071 spin
Memory Dump0x08on demand
Memory Checksum0x09on demand
Parameters0x0aon demand
Calibration Sequences0x0bon demand
Monitor Limits0x0con demand
SSD Parameters0x0don demand
Schedule0x0e1 spin
Macro Status0x0fon demand

Each science data package has a common eight-byte header. This HENA data header contains the spacecraft time when the data was taken, and for integrated data, when the integration began. The header also has a bit indicating the instrument charge mode (0=neutral, 1=ion). The header also indicates this package's position in a multi-package data item.

7654 3210
0Spacecraft Time (ms byte)
1Spacecraft Time
2Spacecraft Time
3Spacecraft Time (ls byte)
4Spin No. (ms byte)
5Spin No. (ls byte)
6ChargeStart Sector No.
7Sequence/Fragment No.

Following the header is the science data. The format of each science data product is described below.

Accumulators

HENA accumulator packages consists of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and compressed accumulator values. Each 24-bit accumulator is log-compressed to ten bits.

7654 3210
0 Start_Fast (bits 9-2)
1 Start_Fast (bits 1-0) Start_Shaped (bits 9-4)
2 Start_Shaped (bits 3-0) Start_Coinc (bits 9-6)
3 Start_Coinc (bits 5-0) Stop_Fast (bits 9-8)
4 Stop_Fast (bits 7-0)
5 Stop_Shaped (bits 9-2)
6 Stop_Shaped (bits 1-0) Stop_Coinc (bits 9-4)
7 Stop_Coinc (bits 3-0) MCP_TOF (bits 9-6)
8 MCP_TOF (bits 5-0) Coinc (bits 9-8)
9 Coinc (bits 7-0)
10 Energy Rate (bits 9-2)
11 Energy Rate (bits 1-0) SSD_Pileup (bits 9-4)
12 SSD_Pileup (bits 3-0) TOF_SSD (bits 9-6)
13 TOF_SSD (bits 5-0) Full_MCP (bits 9-8)
14 Full_MCP (bits 7-0)
15 Full_SSDbits 9-2)
16 Full_SSD (bits 1-0) Valid_Rate (bits 9-4)
17 Valid_Rate (bits 3-0) Xfer_Event (bits 9-6)
18 Xfer_Event (bits 5-0) SSD_TOF (bits 9-8)
19 SSD_TOF (bits 7-0)

Data log-compressed to ten bits consists of a five-bit exponent and a five-bit mantissa.

7654 3210
exponentmantissa

Data is decompressed using the following pseudo-C algorithm:

if(exponent==0)
	result = mantissa
else
	result = (mantissa | 0x20) << (exponent - 1)

HENA-M PHA Results

HENA-M PHA result packages consist of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and PHA results. Each PHA result occupies four bytes. Each package holds zero to 256 events. A package with zero events would be sent if HENA-M PHA data was enabled but no events were observed.

7654 3210
0AzimuthCTOF
1CTOF
2ElevationPHf (ms)
3PHf (ls)PHb

HENA-S PHA Results

HENA-S PHA result packages consist of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and PHA results. Each PHA result occupies four bytes. Each package holds zero to 256 events. A package with zero events would be sent if HENA-S PHA data was enabled but no events were observed.

7654 3210
0AzimuthE (ms)
1E (ls)
2ElevationCTOF (ms)
3CTOF (ls)

HENA-M Raw + PHA Results

HENA-M raw + PHA result packages consist of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and event data. Each event occupies eighteen bytes: fourteen bytes for the seven raw data words and four bytes of PHA results. Each package holds zero to 56 events.

7654 3210
0spareEvent ID (ms)
1Event ID (ls)
2spareMTOF (ms)
3MTOF (ls)
4spareWft (ms)
5Wft (ls)
6spareWfb (ms)
7Wfb (ls)
8spareWb (ms)
9Wb (ls)
10spareSb (ms)
11Sb (ls)
12spareIb (ms)
13Ib (ls)
14AzimuthCTOF
15CTOF
16ElevationPHf (ms)
17PHf (ls)PHb

HENA-S Raw + PHA Results

HENA-S raw + PHA result packages consist of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and event data. Each event occupies sixteen bytes: twelve bytes for the six raw data words and four bytes of PHA results. Each package holds zero to 64 events.

7654 3210
0spareEvent ID (ms)
1Event ID (ls)
2spareSTOF (ms)
3STOF (ls)
4spareWft (ms)
5Wft (ls)
6spareWfb (ms)
7Wfb (ls)
8spareE (ms)
9E (ls)
10[m]PID (ms)
11PID (ls)
12AzimuthE (ms)
13E (ls)
14ElevationCTOF (ms)
15CTOF (ls)

HENA-M and HENA-S Images

Each HENA image is sent as a series of packages. A package consists of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, a compression subheader, and compressed pixels. Each 16-bit pixel is log-compressed to eight bits; then the entire block of pixels is Rice-compressed. Compression type and compression information appear before the first pixel. Currently, the only compression type is Rice compression; type will be zero and information will be the Rice code (the number of uncompressed bits in each pixel). This is followed by the first pixel, log-compressed, but not Rice-compressed. Then, Rice-compressed pixels follow.

7654 3210
0Image Id (see Appendix 3)
1Compression TypeCompression Information
2First Pixel
3+Remaining Rice-compressed Pixels ...

Each image is divided into fragments for the purpose of splitting the image across multiple packages. Each package is self-contained so that if one package is lost, the remaining packages can be used to reconstruct a partial image. HENA images have either high-spatial resolution (120x40), low-spatial resolution (60x20), or SSD resolution (80x24). High-spatial resolution images have eight fragments each containing 600 pixels. Low-spatial resolution images have four fragments each containing 300 pixels. SSD images have four fragments each containing 480 pixels. Image fragments are numbered starting at zero; the data header of a package will list the fragment contained in the package. Within each fragment, pixels are sent starting at the lower left pixel, moving horizontally over the first row, then starting at the left of the next row, etc.

Images are decompressed with the following pseudo-C algorithm:

if info == 8				/* if backup (i.e. no) comp */
	P0 = read(8 bits)		/* first pixel */
	for each remaining pixel
		Pi = (Pi-1 - Df) & 0xff
else
	P0 = read(8 bits)		/* first pixel */
	for each remaining pixel
		Pi = (Pi-1 - Dr) & 0xff
for each pixel				/* undo lossy comp */
	exponent = Pi >> 4; mantissa = Pi & 0x0f
	if(exponent==0)
		Pi' = mantissa
	else
		Pi' = (mantissa | 0x10) << (exponent - 1)
where Dr is computed as follows:
for(i=0; read(1 bit)==0; i++)	/* count zeroes */
	;
Dcode = (i << info) | read(info bits)
Dr = (Dcode & 0x01) ? ~(Dcode >> 1) : (Dcode >> 1)
and, where Df is computed as follows:

Dcode = read(info bits)
Df = (Dcode & 0x01) ? ~(Dcode >> 1) : (Dcode >> 1)
and, where read(n) is a function that reads next n bits from subpacket data field; read(0) returns 0.

Memory Dump

Memory dump packages consist of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, a memory dump subheader, and memory data. Up to 256 bytes can be sent in a single package; if a larger dump was requested, multiple packages will be sent with an incrementing sequence number in the data header. There is no guarantee of consistency within or between packages.

7654 3210
0Address (ms bits)
1Address (ls bits)
2sparespare Address SpacePage
3spare
4+...
Dump Bytes
...

Memory Checksum

Memory checksum packages consist of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, a memory checksum subheader, and memory checksum.

7654 3210
0Address (ms bits)
1Address (ls bits)
2Length (ms bits)
3Length (ls bits)
4sparespare Address SpacePage
5Checksum

Parameters

A parameter package consists of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and data. The data consists of HENA parameter values. The package is only sent in response to a H_MEM_STR_READ command. Note: each parameter is 16 bits.

7654 3210
0 - 11 HV slew rate for coincidence, start, and stop MCPs, positive collimators and negative collimators, and SSD bias (in steps/s)
12 - 23 Alternative HV level for coincidence, start, and stop MCPs, positive collimators and negative collimators, SSD bias
24 - 25 Earth avoidance zone (in sectors)
26 - 27 Sun avoidance zone (in sectors)
28 - 29 Motor interrupt period (in processor clocks)
30 - 31 Motor steps to open/close shutter
32 - 33 Motor power level (clock duty cycle)
34 - 35 Start top offset
36 - 37 Start bottom offset
38 - 39 Stop wedge offset
40 - 41 Stop strip offset
42 - 43 Stop interstitial offset
44 - 45 MTOF offset
46 - 47 STOF offset
48 - 49 Gain for Xf (Gf')
50 - 51 Offset of Xf (Of')
52 - 53 Gain for Xb (Gxb')
54 - 55 Offset for Xb (Oxb')
56 - 57 Gain for Yb (Gyb')
58 - 59 Offset for Yb (Oyb')
60 - 61 spare
62 - 63 spare
64 - 71 Correction factors for PHf MCP gain: f[4] indexed by Xf
72 - 103 Correction factors for Phb MCP gain: f[4,4] indexed by Xb and Yb
104 - 123 Thresholds for classifying HENA-M CTOF: T0, T1, ... T9
124 - 143 Correction factors for SSD TOF electron path: f[10] indexed by SSD Y pixel number
144 - 159 Thresholds for classifying HENA-S CTOF: T0, T1, ... T7
160 - 183 SSD mass calculation parameters: B1 - B6
184 - 191 Thresholds for classifying HENA-S mass: T0, T1, ... T3
192 - 193 TDC control register
194 - 225 spare

Calibration Sequences

A calibration sequence package consists of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and data. The data consists of three calibration sequences. The package is only sent in response to a H_MEM_STR_READ command.

7654 3210
0 - 104 ...
Calibration Sequence 1 (105 bytes)
...
105 - 209 ...
Calibration Sequence 2 (105 bytes)
...
210 - 314 ...
Calibration Sequence 3 (105 bytes)
...

Each sequence step has the following format, consisting of seven bytes, one byte for each calibrator value, time through coincidence. This is repeated for each of the fifteen sequence steps.

timeSSDtop/coin bottomwedgestripinter

Monitor Limits

A monitor limits package consists of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and data. The data consists of pairs of monitor limits, a low limit and a high limit, for each monitor. The package is only sent in response to a H_MEM_STR_READ command.

7654 3210
0Bias V Low Limit
1Bias V High Limit
2+30V Supply Voltage Low Limit
3+30V Supply Voltage High Limit
4+15V Supply Voltage Low Limit
5+15V Supply Voltage High Limit
6+5V Digital Supply Voltage Low Limit
7+5V Digital Supply Voltage High Limit
8+5V Analog Supply Voltage Low Limit
9+5V Analog Supply Voltage High Limit
10-5V Supply Voltage Low Limit
11-5V Supply Voltage High Limit
12+5V Digital Supply Current Low Limit
13+5V Digital Supply Current High Limit
14+5V Analog Supply Current Low Limit
15+5V Analog Supply Current High Limit
16-5V Supply Current Low Limit
17-5V Supply Current High Limit
18High Voltage Supply Current Low Limit
19High Voltage Supply Current High Limit
20Heater Supply Current Low Limit
21Heater Supply Current High Limit
22spare
23spare
24spare
25spare
26HENA Sensor Base Thermistor Low Limit
27HENA Sensor Base Thermistor High Limit
28Shutter Thermistor Low Limit
29Shutter Thermistor High Limit
30MEU Thermistor Low Limit
31MEU Thermistor High Limit
32Start MCP Voltage Low Limit
33Start MCP Voltage High Limit
34Stop MCP Voltage Low Limit
35Stop MCP Voltage High Limit
36Coinc MCP Voltage Low Limit
37Coinc MCP Voltage High Limit
38Positive Collimator Voltage Low Limit
39Positive Collimator Voltage High Limit
40Negative Collimator Voltage Low Limit
41Negative Collimator Voltage High Limit
42analog ground/spare Low Limit
43analog ground/spare High Limit
44digital ground/spare Low Limit
45digital ground/spare High Limit
46SSD +5V Digital Voltage Low Limit
47SSD +5V Digital Voltage High Limit
48SSD +5V Analog Voltage Low Limit
49SSD +5V Analog Voltage High Limit
50SSD +5V Amptek Voltage Low Limit
51SSD +5V Amptek Voltage High Limit
52SSD -5V Analog Voltage Low Limit
53SSD -5V Analog Voltage High Limit
54MCP +5V Voltage Low Limit
55MCP +5V Voltage High Limit
56MCP -5V Voltage Low Limit
57MCP -5V Voltage High Limit
58Shutter Status Low Limit
59Shutter Status High Limit
60Instrument Current Low Limit
61Instrument Current High Limit
62Shutter Current Low Limit
63Shutter Current High Limit
64Start Fast, Low Limit
65Start Fast, High Limit
66Stop Fast, Low Limit
67Stop Fast, High Limit
68Coincidence, Low Limit
69Coincidence, High Limit
70Energy, Low Limit
71Energy, High Limit
72Positive Collimator Discharge, Low Limit
73Positive Collimator Discharge, High Limit
74Negative Collimator Discharge, Low Limit
75Negative Collimator Discharge, High Limit

SSD Parameters

The current SSD parameters are sent on request. Each package consists of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and data. The data consists of the SSD's current PHA, Actel, I/O, and FEA register values. The package is only sent in response to a H_MEM_STR_READ command.

7654 3210
0-5 ...
PHA registers, addresses 000616 - 000b16 (6 bytes)
...
6-13 ...
Actel registers, addresses 800016 - 800716 (8 bytes)
...
14-35 ...
I/O registers, addresses 900216 - 901716 (22 bytes)
...
36-995 ...
FEA registers, addresses a00016 - a3bf16 (15*64 bytes)
...

Schedule

The current shutter and HV safing schedule is sent periodically. Each package consists of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and data. The data consists of the sector numbers at which the specified events will occur. Events that can never happen (e.g., because they are disabled) are reported as occurring in sector 120.

7654 3210
0Suppress event collection
1Resume event collection
2Start HV ramp down
3Start HV ramp up
4Close shutter to avoid sun
5Reopen shutter (sun)
6Close shutter to avoid earth
7Reopen shutter (earth)
8End integration and send MCP images
9End integration and send SSD images

Macro Status

The status of each macro definition is sent on request. Each package consists of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and data. The data consists of the address of the first block of each macro; this will be zero for an undefined macro. The package is only sent in response to a H_MEM_STR_READ command.

7654 3210
0Macro 0 (ms)
1Macro 0 (ls)
... ...
510Macro 255 (ms)
511Macro 255 (ls)

Housekeeping Products

Housekeeping data products are listed in the following table. Each product is sent in a separate package with a unique application id.

Product AppIDs (hex) Rate
Status0x40commandable
Command Echo0x41as needed
Alarm0x42as needed

Each housekeeping data package has an eight-byte header identical to the one used for science data (see above). Following the header is the data. The format of each housekeeping data product is described below.

Status

A status package is sent periodically. Each package consists of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and data. The data consists of analog status values, digital status, and the current instrument configuration. The package is sent automatically; the rate can be set by command (H_TLM_STAT_RATE).

7654 3210
0-31...
Analog Status (32 bytes)
...
32-35...
Digital Status (4 bytes)
...
36-61 ...
Hardware Configuration (26 bytes)
...
62-93 ...
Software Configuration (32 bytes)
...
94-101 ...
Software Information (8 bytes)
...

The analog status data consists of 32 one-byte values. With the exception of the shutter current, a new analog value is read from the hardware every 200 milliseconds. The shutter current is read only while the shutter power is on. Each value is an 8-bit, unsigned number. Whenever the status package is sent, the most recent analog values are sent. All of the analogs except for the thermistor values are sent as read from the hardware; the thermistor values are modified to give them a positive slope (255 - value). The analogs are listed in the following table:

 Description
0Bias V
1+30V Supply Voltage
2+15V Supply Voltage
3+5V Digital Supply Voltage
4+5V Analog Supply Voltage
5-5V Supply Voltage
6+5V Digital Supply Current
7+5V Analog Supply Current
8-5V Supply Current
9High Voltage Supply Current
10Heater Supply Current
11spare
12spare
13HENA Sensor Base Thermistor
14Shutter Thermistor
15MEU Thermistor
16Start MCP Voltage
17Stop MCP Voltage
18Coinc MCP Voltage
19Positive Collimator Voltage
20Negative Collimator Voltage
21analog ground/spare
22digital ground/spare
23SSD +5V Digital Voltage
24SSD +5V Analog Voltage
25SSD +5V Amptek Voltage
26SSD -5V Analog Voltage
27MCP +5V Voltage
28MCP -5V Voltage
29Shutter Status
30Instrument Current
31Shutter Current

The digital status consists of digital values monitored by the DPU. The digital status is defined in the following table:

Description Encoding
0/7HV Safe Power (S/W)0=normal, 1=disallow turn on
0/6HV Safe Limit (H/W)0=normal, 1=limit in hardware
0/5-3spare 
0/2HV Safing0=HV Ready, 1=Safe HV
0/1spare 
0/0Cover Status0=Open, 1=Closed
1/7-4Negative Collimator Discharges 
1/3-0Positive Collimator Discharges 
2EDAC Errors Corrected 
3spare 

The hardware configuration data describes the commanded state of the instrument's hardware control registers. The format is defined in the following table:

Description Encoding
0/7HV Power0=off, 1=on
0/6-5spare 
0/4HV Negative Collimator Mode0=disabled, 1=enabled
0/3HV Positive Collimator Mode0=disabled, 1=enabled
0/2HV Coincidence MCP Mode0=disabled, 1=enabled
0/1HV Stop MCP Mode0=disabled, 1=enabled
0/0HV Start MCP Mode0=disabled, 1=enabled
1/7spare 
1/6Decontamination Heater On Pulse100 ms high-going pulse
1/5SSD Bias Power0=off, 1=on
1/4spare 
1/3MCP Calibrator Power0=off, 1=on
1/2SSD Preamp Power0=off, 1=on
1/1Sensor SSD Analog Power0=off, 1=on
1/0Sensor MCP Analog Power0=off, 1=on
2/7spare 
2/6Wax Actuator Secondary Power0=off, 1=on
2/5Wax Actuator Primary Power0=off, 1=on
2/4Decontamination Heater Off Pulse100 ms high-going pulse
2/3Survival Heater0=off, 1=on
2/2-0Cal. TOF 
3HV Start MCP Actual Level 
4HV Stop MCP Actual Level 
5HV Coincidence MCP Actual Level 
6HV Positive Collimator Actual Level 
7HV Negative Collimator Actual Level 
8Start TOF Threshold 
9Stop TOF Threshold 
10Coincidence TOF Threshold 
11Calibrator Top/Coin Level 
12Calibrator Bottom Level 
13Calibrator Wedge Level 
14Calibrator Strip Level 
15Calibrator Interstitial Level 
16SSD Bias Actual Level 
17MCP Event Mode 
18SSD Event Mode 
19spare 
20spare 
21spare 
22/7-6spare 
22/5MCP Cal. Clock0=disabled, 1=enabled
22/4SSD Cal. Clock0=disabled, 1=enabled
22/3-0spare 
23/7-3spare 
23/2Shutter Motor Power0=off, 1=on
23/1-0Shutter Motor Phase 
24-25spare 

The software configuration data describes the commanded state of the instrument's software. The format is defined in the following table:

Description Encoding
0/7spare 
0/6Wax Actuator Operation0=disabled, 1=enabled
0/5Sensor Raw Data Collection0=disabled, 1=enabled
0/4Accumulator Data Collection0=disabled, 1=enabled
0/3HENA-M PHA Data Collection0=disabled, 1=enabled
0/2HENA-S PHA Data Collection0=disabled, 1=enabled
0/1HENA-M Image Data Collection0=disabled, 1=enabled
0/0HENA-S Image Data Collection0=disabled, 1=enabled
1/7Calibrator Cycle SSD Pixel0=off, 1=on
1/6Charge Mode0=neutral, 1=ion
1/5Earth Shutter Mode0=no-op, 1=close
1/4Sun Shutter Mode0=no-op, 1=close
1/3Sun HV Mode0=no-op, 1=ramp down
1/2Sun Data Mode0=collect, 1=reject
1/1Data Collection Mode0=normal, 1=backup
1/0Monitor Response0=disabled, 1=enabled
2HV Start MCP Limit 
3HV Stop MCP Limit 
4HV Coincidence MCP Limit 
5HV Positive Collimator Limit 
6HV Negative Collimator Limit 
7HV Start MCP Goal 
8HV Stop MCP Goal 
9HV Coincidence MCP Goal 
10HV Positive Collimator Goal 
11HV Negative Collimator Goal 
12Calibrator Sequence Number0=no sequence
13MCP PHA Mode 
14MCP PHA Priority 
15SSD PHA Mode 
16SSD PHA Priority 
17Telemetry PHA-M Percentage 
18Housekeeping Rate 
19Enabled Memory Space 
20SSD Bias Limit 
21/7Image Motion Compensation Mode0=disabled, 1=enabled
21/6Decontamination Heater Mode0=disabled, 1=enabled
2/5-2spare 
21/1-0Shutter Operations Mode0=manual, 1=auto, 2=open, 3=close
22SSD Bias Goal 
23spare 
24-25Telemetry Allocation 
26-27Enabled First Address 
28-29Enabled Last Address 
30-31spare 

The software information consists of values generated internally by the software. The software information is defined in the following table:

Description Encoding
0/7-2spare 
0/1Recalculating0=idle, 1=calculating tables
0/0Macro Learn0=idle, 1=learning
1Macro ID 
2Commands Executed 
3Commands Rejected 
4Software Version 
5Telemetry Messages Sent 
6Shutter Status0=closed, 1=open, 2=unknown
7spare 

Command Echo

Each command received by the DPU is echoed in a package. Each echo package consists of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and command data. The command's opcode and first nine arguments are included, followed by a macro bit (set to 1 if the command was executed as part of a macro) and a code summarizing the command's result. If the command has fewer than nine arguments, the unused echo bytes are filled with zeroes. The result codes are defined in Appendix 4.

7654 3210
0Opcode (ms)
1Opcode (ls)
2Arg 0
3Arg 1
4Arg 2
5Arg 3
6Arg 4
7Arg 5
8Arg 6
9Arg 7
10Arg 8
11Macro?Result Code

Alarm

Alarm packages report problems. Each package consists of a package header (replaced by a CCSDS header in the CIDP), a HENA data header, and alarm data. The alarm data consists of an 8-bit number identifying the alarm and an 8-bit value with additional information. The flag indicates transient or persistent alarms. See Appendix 2 for a list of the alarm ids.

7654 3210
0Identifier
1Value
2Flag (0=persistent 1=transient)
3spare

Allocation

The HENA telemetry allocation is 41,666 bytes per spin. The command H_TLM_ALL_ALLOC can change this for ground testing or if the total IMAGE telemetry is reassigned. The production of data is partially controlled by ground command. Many HENA data products (e.g., accumulators) can be enabled or disabled by the H_SEN_CNTRL command. The rate at which status data is generated is controlled by H_TLM_STAT_RATE. Other data is generated automatically (e.g. command echo) or in response to a ground command (e.g. memory dump).

At the start of each spin, the HENA software divides the telemetry allocation among the enabled, synchronous producers as follows. The status and accumulator data have a fixed size and are allocated first. The remaining bandwidth is divided between images and PHA data. If the actual image data exceeds this bandwidth, low priority images will be discarded until the data fits in its given bandwidth. Any bandwidth remaining is divided between the HENA-M and HENA-S PHA data according to the percentage defined by the H_TLM_PHA_ALLOC command. This algorithm assumes that no asynchronous data will be generated.

If more data is generated than can be sent, the data is queued until there is an opportunity to send it. On subsequent spins, the telemetry production bandwidth that is parceled out is reduced until the backlog is cleared. HENA will never send more telemetry in a spin than has been allocated.


home Return to HENA Software User's Guide. Report problems to John Hayes. mail