250 likes | 359 Views
CIRS FLIGHT SOFTWARE. COMPOSITE INFRARED SPECTROMETER. Marcia Segura Paul Romani Shane Albright Virgil Kunde Ray Ferrer. OVERVIEW. Flight software consists of two parts Command executive (version builds if major, point builds for patches) Instrument operation Signal and data processing
E N D
CIRS FLIGHT SOFTWARE COMPOSITE INFRARED SPECTROMETER Marcia Segura Paul Romani Shane Albright Virgil Kunde Ray Ferrer
OVERVIEW • Flight software consists of two parts • Command executive (version builds if major, point builds for patches) • Instrument operation • Signal and data processing • Packetization • Command sequence tables (point builds) • Two types of tables: functional and look–up table • A functional table is a set of instrument commands, • Each functional table performs a specific task, e.g. • Perform a calibration • Set instrument observing mode: spectral resolution, pixel selection, data rate, etc. • Diagnostic memory dumps • Etc. • Look–up table: table of memory addresses of functional tables
WHERE WE ARE – 1 • Last time we met: • We were flying version 1.2/2.0.1 • Needed to be upgraded before tour • Executive: Important features needed for ease of use in tour operations • Tables: Loading of “Lego” tables (310!) • Version 3.0.0 required changes to project software • This in turn required much • Screaming • Yelling • Loss of vacation time • Version 3.0.0 officially delivered in October of 2003
WHERE WE ARE – 2 • Version 3.0.0 status • Tested on the spacecraft 15–17 December 2003 • Passed all tests • Has been used during approach science • Will be used in tour until probe release • So far have discovered two “undocumented features” • One required an immediate fix (done last week) • The other we are waiting to fix with 4.0.0
WHERE WE ARE GOING – 1 • Version 4.0.0 new features of interest to science: • Timed Table CommandThe command would start a table executing but terminate it after a specified time. • Blink CommandUpon receipt of this command CIRS would start the scan mechanism and take alternate interferograms of (FP3EVEN,FP4ODD), (FP3ODD,FP4EVEN) of the desired scan length co–adding or not as requested. • Flush Time Tagged Command Buffer CommandA command to flush all commands from one or both of the time tagged buffers. Optional table termination as well (all or part of the table nesting). • Ability to recycle tablesAdd the ability to save tables currently located in memory to an internal library or to copy data from 1 table number to another. An alternative would be to create a separate internal command used to point table x to the location of table y so that there would be no need to even have the duplicate data in memory.
WHERE WE ARE GOING – 2 • All of these changes will be done to CIRS internal commands • Why? • Does not require changes to project software or: • Screaming • Yelling • Loss of vacation time
CHANGES TO EXECUTIVE FOR 2.0 – 1 • Added nested loop capability to tables • Learned from Jupiter that loops within loops are a very efficient way to construct science sequences • Previous version of flight software did not permit this • Focal plane 1 bias adjusted • Offset bias is subtracted from the FP1 signal onboard • Improves effect of onboard data compression algorithm • We are currently patching this every time the flight software is loaded • New software removes need for patch • Allow CIRS to be muted and un–muted via BIU • Needed for CIRS to be on and in sleep mode for probe checkouts • Previous version CIRS would not respond after being un–muted
CHANGES TO EXECUTIVE FOR 2.0 – 2 • Added unique flight software version identifier • In response to request from project • Aids CDS in verifying successful upload of flight software to the SSR • Increased limit for number of tables • Old limit was 256 (includes look–up table) • Scoping for tour operations indicated needed more tables • New limit is 512 (includes look–up table) • Added capability to independently read–out focal planes • CIRS has three focal planes to span the IR: • Single detector in the far IR • Two 1×10 arrays in the near IR • Previous flight software got data from either all focal planes or none • Not reading out one of the mid IR arrays, when scientifically justified, helps to reduce SSR data overload and DSN downlink bottleneck
CHANGES TO EXECUTIVE FOR 2.0 – 3 • Modified CIRS load command sequence table command • Two goals: • Make flight software more resilient to errors in table load process • Gain insight into table load process • Flight software now buffers incoming tables and performs the following integrity checks: • Table does not fit in allotted space • Too many words received • More than one table load at a time • Table checksum does not match • Packet sequence is incorrect • If the table passes these checks it is loaded into CIRS memory • If not, a dummy table is loaded in place of the failed table • When CIRS table load commands are sent as direct packets simple resending of dropped packet will not work
CHANGES TO EXECUTIVE FOR 2.0 – 4 • Modified CIRS load command sequence table (cont.) • Send status bits down in existing spare HK telemetry channels: • Table number • Calculated checksum • Received words. • Flight software buffers table load status/error bits so that they come down one per HK packet in case of multiple errors • Increased upper limit of software watchdog timer • The software watchdog timer verifies that the flight software is operating within its boundaries • The new flight software build larger than previous build • Therefore the upper limit of the software watchdog timer was increased
CHANGES TO EXECUTIVE FOR 2.0 – 5 • Increased size of CIRS instrument memory allocated to command sequence tables • Flight software executive controls how much of CIRS instrument memory is allocated to tables • We are currently patching (increasing) this number every time the flight software is loaded • Added this patch to the new build so patches are no longer necessary
SUMMARY OF CHANGES TO TABLES FOR 2.0 • Changes to SCI_SCAN command in new software required changes to all tables that used this command • Last major update to tables was for version 1.2.0 • Used this to critically review and scrub tables based upon Jupiter experience • New flight software loads 51 tables (table numbers 0–50) along with the executive
SUMMARY OF CHANGES TO EXECUTIVE FOR 3.0 • Increase number of table numbers to 1024 • Increase time delay for relative time tagged commands • Changes to table load command • Increase number of hex data words allowed • Identify source of CIRS table load command (from SSR or SASF) • Correct bad table rejection procedure • Decrease loop count value • Definition/redefinition of some telemetry channels • Added number of pending absolute time tagged commands into housekeeping • Allow looping over tables • Allow absolute time tagged commands in a trigger sequence list
CHANGES TO EXECUTIVE FOR 3.0 – 1 • Increase number of tables from 0 – 511 to 0 – 1023 • Reason for change • It has been determined that on average for tour operations CIRS needs 600 table numbers on board the spacecraft at all times • Tables 0 – 100 Engineering and calibration tables • Tables 101 – 450 Set instrument observing mode • Tables 451 – end Trigger tables (call tables 101 – 450) • Trigger tables • CIRS needs a unique trigger table for each observation • there are on the average 150 CIRS observations per tour sequence • Must have valid trigger tables for sequence n and n+1 to handle sequence boundary properly • Therefore need 300 trigger tables • Therefore need table numbers 0 – 750 (average) • Going to 1024 (next power of 2) allows for margin and deviations from average
CHANGES TO EXECUTIVE FOR 3.0 – 2 • Increase relative time delay from 2 hours 16 minutes 32 seconds to 72 hours 49 minutes 4 seconds • Reason for change • CIRS trigger command operations • Single trigger from spacecraft sequence sent to CIRS • This trigger command populates a relative time tagged command buffer with other trigger commands (can hold 256 pending commands) • Relative execution time of the trigger commands in the command buffer comes from the relative time delay within the trigger command • Execution of trigger commands synched to the pointing design • With version 2.0.1 cannot command CIRS past 2 hours with a single trigger command • Most observations/requests last longer than 2 hours • Maximum possible time for observation is 48 hours(Require DSN pass to empty SSR) • Therefore new design is robust
CHANGES TO EXECUTIVE FOR 3.0 – 3 • Increase maximum number of hex data words in a table load command from 24 words to 113 words • Reason for change • CDS created library region on the SSR for instruments to store IEBs • Memory is segmented into 128 word chunks • CIRS has been allocated 96 128–word segments • Only one load command can be stored per segment • More efficient use of SSR library segment (25% vs. 100%)
CHANGES TO EXECUTIVE FOR 3.0 – 4 • Version 3.0 adds a source parameter field to the table load command where: • Value = GND means table load command is from ground (SASF) • Value = SSR means table load command is from the SSR • Reason for change • Two goals: • Desire to increase number of hex data words in load command to better use SSR library region • Desire to minimize changes to F S/W code that performs error checking of load commands • Goals met by addition of this parameter to the load command
CHANGES TO EXECUTIVE FOR 3.0 – 5 • CIRS performs error checking of table (IEB) load commands • IEB fits within allocated memory • Received words matches expected words • Packet continuity • Etc. • If a table (IEB) fails any one of these tests then • Error bits are set in housekeeping • Dummy table loaded in place • Version 3.0 corrects two problems in this function in 2.0.1 • No dummy table loaded if START packet missing • If table being loaded was the look–up table, it would be overwritten with a dummy table
CHANGES TO EXECUTIVE FOR 3.0 – 6 • Decrease maximum number of times a table may be “looped over” from 65,635 to 32,767 • Reason for change • CIRS F S/W documentation states that one 16–bit word is allocated for loop count • CIRS operations assumed that full word was available or maximum loop count is 65635 • Testing for tour operations showed that if all 16 bits were used F S/W treated loop count as a negative number
CHANGES TO EXECUTIVE FOR 3.0 – 7 • In version 2.0.1 when a table calls a table, commanding terminates in the table that is called • In version 3.0 when a table calls a table, commanding returns to the calling table once table called has completed • Reason for change • Allows for looping over tables • Useful in constructing CIRS mapping sequences
CHANGES TO EXECUTIVE FOR 3.0 – 8 • Version 2.0.1 only allows for absolute time tagged trigger commands to be placed in the absolute time tagged command buffer via individual commands • Version 3.0 allows for absolute time tagged trigger commands to be placed in the absolute time tagged command buffer via trigger sequence lists (table of table calls that places the tables into a command buffer). • Reason for change • Allows for a single trigger command to populate the absolute time tagged command buffer • Reduce number of CIRS trigger commands in background sequence
CHANGES TO EXECUTIVE FOR 3.0 – 9 • CIRS has two pending command buffers • Number of relative time tagged pending commands, maximum 256 • Number of absolute time tagged pending commands, maximum 64 • Currently number of all pending time tagged commands is returned in housekeeping word 30 and displayed as one channel • Split word into two channels: • Number of relative time tagged pending commands • Number of absolute time tagged pending commands • Improved insight into status of CIRS command execution • Improved anomaly diagnosis and response
SUMMARY OF CHANGES TO TABLES FOR 3.0 • Cleaned up version 2.0.1 tables and modified as needed to work with 3.0 • Added 310 basic CIRS tour operational tables