ACIS Users Guide, Rev. A |
This section describes the various activities used to perform routine science operations using the ACIS instrument software.
The overall process of performing a science run within ACIS is as described in the ACIS Software Requirements Specification (SRS), MIT 36-01103. This section covers some of the implementation details not provided in the SRS, and recapitulates the overall process. (Although, a science run consists of the following overall steps, there are a variety of variants and details which are not addressed by this template, e.g. if and when DEA Housekeeping runs are started):
Power on DEA video boards and FEPs required for the run
Load a parameter block
Start the run
Wait for the desired observation time
Stop the run
Within ACIS, there are basically two types of science runs: Timed Exposure Science Runs, and Continuous Clocking Science Runs. In Timed Exposure runs, the CCDs are statically integrated for some period of time, and then the resulting image is "captured" and processed (NOTE: The "capture" step introduces a "smear" integration cycle). In order to avoid overloading the ACIS DEA Power Supply, the "capture" step for each CCD is staggered in time. In Continuous Clocking runs, the CCD rows are continuously shifted, and are only "statically" integrated during the pause while a row is clocked out to the DEA/DPA to be processed. There is no "staggering" in Continuous Clocking mode.
Description
In Continuous Clocking (CC) mode, the user cannot explicitly set the integration time of each row. Instead, the user can only control the time using the side-effects of the summing parameters, the output register mode, and the number of overclocks parameter within the CC Mode Parameter Block.
The rate at which summed rows are clocked in CC mode is given by:
seconds_per_row = (row_transfers * pixel_clocks_per_transfer) + underclocks + pixels + dummy_overclocks + overclocks + end_of_row_marker) / pixel_clocks_per_second = (2rowSum * 4 pixel_clocks_per_transfer) + (4 underclocks + n)/m pixels + 4 + (overclockPairsPerNode * 2) + 1 end_of_row_marker) / 100,000 pixel_clocks_per_second where: "n" is 256 if outputRegisterMode in FULL or DIAG mode and "n" is 512 if the outputRegisterMode is AC or BD mode. and: "m" is 1 if columnSum == 0, and "m" is 2 if columnSum != 0.The "static" integration time of a summed row (i.e. the time spent integrating the row while the CCDs were not moving the charge within the row) is the row rate, minus the pixel transfer time: (summed rows * 4 pixel clocks/transfer).
Parameters
The parameters which govern the row rate are contained in the Continuous Clocking Parameter Block, defined by the "loadCcBlock" command packet definition:
loadCcBlock: CMDOP_LOAD_CC { ... rowSum = Row Summation Factor - summed_rows = 2rowSum rows columnSum = Column Summing Factor - column_summing = FALSE if columnSum == 0, otherwise TRUE overclockPairsPerNode = # of overclock pairs - number_of_overclocks = overclockPairsPerNode * 2 outputRegisterMode = OR Clocking Mode - output_register_mode = FULL, DIAG, AC or BD ... }
Description
In Timed Exposure (TE) mode, the user explicitly specifies up to two static integration times, with a duty cycle parameter governing the ratio between the two times, within the TE Mode Parameter Block. Normally, the integration of one exposure overlaps, in time, the transfer of the previous exposure to the DEA/DPA for processing, which usually takes about 3.3 seconds. If, however, the integration time is less than this transfer time, TE mode does not overlap the two, and flushes the charge out of the CCDs prior to each short integration. This achieves the shorter integration time (i.e. less than 3.3 seconds), but reduces the effective exposure time by the time taken to transfer images to the DEA/DPA.
Due to the "staggered" image capture, the minimum integration time that can be specified is governed by the number of CCDs used for the run. The minimum integration time that can be specified, with flushes, is as follows:
1 CCD - 0.1 second 2 CCDs - 0.1 second 3 CCDs - 0.2 seconds 4 CCDs - 0.2 seconds 5 CCDs - 0.3 seconds 6 CCDs - 0.3 secondsIn order to avoid the flushes due to a short integration time, the integration time must be set to be greater than or equal to the time taken to capture (smear time) and transfer an image from the CCD to the DEA/DPA (transfer time). This time depends on a number of clocking parameters:
Number of configured CCDs
Subarray Start Row
Number of Subarray Rows
On-chip Summing Flag
Output Register Mode
Number of Overclock Pixels
The minimum non-short integration time that can be specified is as follows:
min_time = staggered_smear_time + transfer_time = ([(1026 rows * 4 pixel_clocks_per_parallel_transfer) * ("k" CCDs - 1)] + [(subarrayStartRow + 2 overhang_rows) * "k" CCDs * 4 pixel_clocks_per_parallel_transfer] + (2 flushes * [(4 underclocks + "n" pixels) / "m"]) + [(subarrayRowCount + 1)/"m" * (4 pixel_clocks_per_parallel_transfer + [(4 underclocks + "n" pixels) / "m"] + 4 dummy_clocks + (overclockPairsPerNode * 2) + 1 pixel_clock_per_end_of_row_marker)] ) * 1x10-5seconds_per_pixel_clock where: "k" is the number of entries in the fepCcdSelect array which are not set to CCD_DESELECT. Since the "smear" time of the current CCD is not counted against its "static" integration time, the expression computes the staggered "smear" time of the remaining CCDs. and: "n" is 256 when the outputRegisterMode is FULL or DIAG mode and "n" is 512 when the outputRegisterModeis in AC or BD mode. and: "m" is 1 if onChip2x2Summing is 0 and "m" is 2 if onChip2x2Summing is not 0For example, for a configuration with all 6 CCDs, no on-chip summing, a full image of 1024 rows, the output register mode in FULL mode, and 30 overclock pixels per node, the minimum non-short integration time that can be specified is 3.27224 seconds. Since the time must be expressed in 1/10th second increments, this becomes 3.3 seconds.
For another example, consider a configuration with a single CCD, 2x2 on-chip sum, a subarray with 100 rows, starting at row 0, with the output registers in FULL mode, and only 2 overclock pixels per node, the time would be 0.14368 seconds, becoming 0.2 seconds.
Parameters
The parameters which govern the minimum integration times are contained in the Timed Exposure Parameter Block, defined by the "loadTeBlock" command packet definition:
loadTeBlock: CMDOP_LOAD_TE { ... fepCcdSelect[6] = FEP Indexed array of CCD Ids - the number of configured CCDs is the number of entries in this array which are not set to CCD_DESELECT onChip2x2Summing = 2x2 sum flag - if 0, do not perform on-chip sumation. If not 0, perform 2x2 on-chip summation subarrayStartRow = 1st row of subarray - start_row = subarrayStartRow subarrayRowCount = # rows - # rows in subarray = subarrayRowCount + 1 overclockPairsPerNode = # of overclock pairs - overclock_pixels = overclockPairsPerNode * 2 outputRegisterMode = OR Clocking Mode - outputRegisterMode = FULL, DIAG, AC or BD ... }
Description
Upon receipt of one of the "Start Science Run" commands, the Science Manager task starts setting up for the run. This setup time varies, depending on the various parameters contained in the parameter block and the state of hardware and software in the system. This section describes the setup process, the approximate time for each step, and a summary of the parameters which affect this time. This section does not describe the time taken to perform a bias-recomputation, and the time taken to telemeter the bias maps. For bias computation and telemetry estimates, see Section 4.2.1 and Section 4.2.2.
The overall steps performed by the Science Manager task are as follows, with time estimates of each step. For simplicity, time estimates of each step are approximated to the second or minute, as appropriate:
- Copy the parameter blocks
In order to avoid parameter block integrity problems, the Science Manager makes a copy, at the start of a science run, of the parameter block that it is about to use. The time taken to perform this step is very small, and always less than 1 second.
- Dump the parameter blocks to telemetry
Once the parameter blocks have been staged, they are copied into telemetry packets and posted for transfer. The copy takes much less than 1 second, and the time to telemeter the blocks also takes less than 1 second.
- Setup data processing
Once the parameter blocks have been posted, the Science Manager sets up its internal data structures and variables to process the data for the current mode. This setup stage takes less than 1 second.
- Reset Video Boards
In accordance with recommendations from the DEA analog designer, the Science Manager task resets the DEA video boards prior to the start of each run. The reset action takes much less than 1 second.
- Load Video Board Registers and DACs from System Configuration Table
After the video boards have been reset, the Science Manager task loads the register values and Digital-to-Analog converter values into each video board. To ensure that the video boards are communicating properly, each write is followed by a read and compare. On the video boards, different register actions require different time-delays to take effect prior to issuing another command. In order to be robust to changes in the video board timing requirements, the ACIS software always inserts a 1 second time- delay after each video board register write. Although there are only 4 control registers for each video board, some of the control bits are "edge-driven". This implies that some actions require writing a 0 to a control register bit, followed by writing a `1', or visa- versa. As a result, the setup requires a total of 5 control register writes for each video board (not including starting the sequencers). The time to actually perform each write and each read after a write is no more than 100ms each, leading to a worst-case time which is on the order of 10ms for all registers on all 10 video boards. This is small compared to the 1 second delay added after each write. The time taken to load and read- back the control registers on all of the configured boards:
video board register load time = (5 * 1 second) * configured CCDsThere are 23 video board Digital-to-Analog Converter registers on each video board. Because the science run parameter blocks duplicate the video ADC offset DAC values, ACIS performs 27 DAC writes to the video boards. Since the DAC values are write- only, there are no read-backs. Each write takes no longer than 100ms. It takes less than 0.5 seconds to load the DACs into all 10 video boards. Using 1 second for all of the I/O times to and from the video boards for the register loads and DAC loads, leads to:
video board register and DAC load time = (5 * 1 second) * configured CCDs + 1 second- Load SRAM Library into Video Boards
Each video board contains 64K words of Sequencer RAM, although the current SRAM library uses only 3648 words. Once the video board registers have been loaded, the Science Manager task loads the SRAM library into each configured video board. Each word of the library is written and then read-back to ensure that the board is communicating properly. Each write and read-back takes on the order of 100ms each. The worst case time to load all of SRAM in each board is:
worst case load time per board = 65535 * 200ms * configured CCDs = 13.107 seconds/boardThe current load time per board, given the delivered size of the SRAM library, is much shorter:
current load time per board = 3648 * 200ms * configured CCDs = 0.7296 seconds/boardFor example, the load of the current SRAM library into 6 CCDs takes about 4.3776 seconds.
- Generate and Load PRAM into Video Boards
The Science Manager task then constructs a sequencer Program RAM (PRAM) load which implements a clocking sequence with the configured properties. The video boards each contain 64K words of PRAM, so the worst-case transmission of the PRAM load is on the order of that for SRAM, about 14 seconds/board. In practice, however, most PRAM loads are much smaller. The size and complexity of a PRAM load depends non-linearly on the clocking parameters chosen for the run. In general, single integration times, with no on chip summation lead to the smallest PRAM loads, on the order of 100 words. Some larger PRAM loads are on the order of 1600 words. Assuming the larger load size, the load time per board is:
example PRAM load time per board = 1600 * 200ms * configured CCDs = 0.32 seconds/boardFor example, a load of 1600 words of PRAM into 6 CCDs takes a total of about 1.92 seconds
- Re-load and re-run FEP code if necessary
The Science Manager task queries each configured FEP as to the state of its bias map. If a FEP does not respond, the Science Manager resets and re-loads software into the offending FEP, and starts the loaded code. Under most circumstances, the FEPs do not required resets. If, however, a radiation monitor alert, or aborted science run (aborts occur if a science run is already active when a subsequent science run request is received) resets the FEPs, all of the configured FEPs would be re-loaded. Each FEP takes approximately 10 seconds to reset and re-load (see Section 3.3.2). It takes about 60-70 seconds to re-start all 6 FEPs.
- Load parameters into FEP
Once the FEPs are running and responding, the Science Manager loads the parameters into the FEPs. This operation takes less than 1 second to configure all 6 FEPs.
- Acquire and telemeter standard DEA housekeeping
The Science Manager queries all of the housekeeping channels of all of the configured DEA video boards and telemeters the information in a DEA Housekeeping telemetry packet. Each analog housekeeping channel takes 0.5 seconds to read (see Section 3.4.6 Warnings), and there is a total of 20 analog channels to read on each board. Reading the video control registers from all the boards takes well under 1/10th second, and the time to pack the data into the telemetry packet takes under 1/2 second, so the total time to acquire, pack and post the DEA video board housekeeping is:
video housekeeping = (0.5 seconds * 20) * configured boards + 1- Check the safety of the DEA sequencer loads
To ensure that the loaded DEA sequence cannot overheat and subsequently damage the video board driver circuits, the Science Manager task checks the contents of the video board's PRAM and SRAM loads. The speed of the checking algorithm depends heavily on the nature of the loads. In most cases, the algorithm's buffering allows the PRAM and SRAM to be read back once. In some cases, however, the algorithm may run out of buffer space and read back a given section of PRAM or SRAM many times while checking the load.
During testing, the time taken by the checking algorithm on a large, complex load, has never exceeded 2 seconds.
- Flush charge from the CCDs (Jitter DACs)
In order to flush electrical charge built up in the CCDs while they were idle since the previous science run, the Science Manager task must adjust the video board DAC levels, and clock the CCDs for at least 1 exposure cycle. To simplify the design, the Science Manager always clocks the CCDs for 11 seconds, which is greater than the longest frame time.
Description
ACIS manages telemetry buffering using fixed numbers of fixed sized buffers for each type of application, where a telemetry packet must fit into a single buffer, and a single buffer never contains more than 1 packet. ACIS manages the average allocation of telemetry bandwidth by controlling the number and size of buffers allocated for each purpose. The effect is that, although at one moment, the peak allocation may be dominated by one particular application, on the average, each application can utilize its maximum allocation if it needs to, minus inefficiencies due to unused space in the fixed size buffers. If, however, at certain moments, an application does not require its full telemetry allocation, the unused bandwidth can be used by an application requiring more bandwidth. Although the use of fixed size buffers simplified the ACIS design and improved its reliability, it makes the job of estimating telemetry utilization more difficult.
For example, the science data processing applications are allocated 400 buffers of 512 32-bit words each, whereas memory dumps are allocated only 4 buffers of 1023 words each. Assuming that nothing else is being telemetered, that the current science mode always has data to send, filling 70% of each telemetry buffer it uses, and that a dump is in progress and is using 100% of each memory dump buffer, the science task can buffer (ignoring FEP ring-buffers and image buffers for the moment) ((0.7 * 512) * 400) 32-bit words in the ACIS telemetry buffers. The memory server can buffer 4092 words. If the telemetry stream is saturated, and the buffers fill, the science task will consume about 97.3% of the telemetry bandwidth, and the memory server will consume 2.7%.
NOTE: In prior software releases, science had been allocated 200 buffers of 1023 32-bit words. However, most science modes did not usually fill these buffers, and this led to inefficient use of the science buffer allocation.
Buffer Allocations
Table 14 lists the current buffer sizes and allocations for each type of telemetry packet (NOTE: These do not include the ring buffers on each FEP which can buffer up to 8K events each). Note that in some cases, the buffer size exceeds the fixed packet size. This allows patching of the output format without having to modify the buffer size allocation.
Table 14. Telemetry Buffer Allocations Buffer Pool Buffer Count Buffer Size (bytes) Telemetry Packet Types Packet Size (bytes) Frequency Bias Thief 20 4092 dataCcBiasMap 1564 If configured to compute and send the map, "n" per science run, where "n" is the number of configured CCDs dataTeBiasMap 44 + (4 * "n" compressed words) Bad or no compression yields 1 1024-pixel bias row per packet. Excellent compression yields about 8 rows per packet. The system sends 1 map per configured CCD. DEA House. 8 1024 deaHousekeepingData 20 + (4 * "n" queries) 1 every "sampleRate" seconds Command Echo 4 2048 commandEcho 520 1 per command Fatal 1 256 fatalMessage 20 1 per software crash Memory 1 4092 bepReadReply 28 + (4 * "n" words) vary depending on read, dump, and execute commands fepReadReply 28 + (4 * "n" words) pramReadReply 24 + (2 * "n" entries) sramReadReply 24 + (2 * "n" entries) bepExecuteReply 24 fepExecuteReply 24 Science 400 2048 dumpedTeBlock <= 820 1 per TE Science Run dumpedCcBlock <= 724 1 per CC Science Run dataTeFaint 12 + (16 * "n" events) zero or more per exposure, depending on event rate dataTeGraded 12 + (7.25 * "n" events) dataTeFaintBias 12 + (29.5 * "n" events) dataTeVeryFaint 12 + (40 * "n" events) dataCcFaint 12 + (6.875 * "n" events) dataCcGraded 12 + (4.25 * "n" events) dataTeHist 16 + (4 * "n" bins) In FULL or DIAG mode, ~ 33 packets per "histogramCount" exposures. In AC or BD mode, ~ 17 packets. dataTeRaw 24 + (4 * "n" compressed words) Bad or no compression yields 1 row per packet. Excellent compression yields about 8 rows per packet. dataCcRaw dataBiasError 20 + (4 * "n" bias errors) Zero or more per exposure, depending on corruption rate of bias map exposureCcRaw 72 "n" per exposure, where "n" is the number of configured CCDs exposureCcFaint 36 exposureTeFaint 72 exposureTeFaintBias 80 exposureTeHistogram 52 exposureTeRaw 36 scienceReport 48 1 per science run Startup 1 4092 bepStartupMessage 28 1 per BEP startup SwHouse 8 3088 swHousekeeping 16 + (12 * "n" reports) 1 every ~64 seconds
ACIS conatins a total of 25 slots to hold various types of control blocks - Te, Cc, 1d 2d and Dea. There are 5 slots reserved for each type of block. The following sections describe these parameter blocks and how they are managed.
Description
Slots
ACIS has five numbered slots in which it stores Timed Exposure Parameter blocks. The parameter blocks are loaded into a particular slot using a "Load TE Block" command packet, where the slot number (0 - 4) is specified in the teBlockSlotIndex field. When parameter block is loaded into a slot, the slot's contents are overwritten by the new block contained in the command. If the instrument is power-cycled or cold-booted (see Section 3.1.3.1, Section 3.1.3.2), the contents of the slots will be restored to their "as-launched" values. A warm- boot (see Section 3.1.3.3), however, retains the contents of the most recently loaded slots.
Checksum
Each parameter block contains a checksum field. The checksum is the bit-wise XOR of each 16-bit word in the command packet following the checksum field (i.e. starting with the lowest address 16-bit word of the parameterBlockId field).
Parameter Block Id
The Parameter Block Identifier is a 32-bit value which can be used by the ground to uniquely identify the parameter block. ACIS reports the value of the Parameter Block Id in all exposure record, bias map, bias error packets and science report packets which used that parameter block for a bias computation and/or science run. In some cases, the Parameter Block used for science run data processing may be different than the parameter block used to compute the bias map used for the run, in which case, the telemetered Bias Parameter Block Id will be different than the main data processing Parameter Block Id (these are distinct fields in the telemetry packets).
NOTE: The intent of the Parameter Block Id is to aid bookkeeping on the ground. ACIS does not use the id internally for any particular purpose, and therefore, the users are free to use the field as they wish.
CCD Selection
The Timed Exposure Parameter Block contains an array of 6 CCD identifiers which are indexed by FEP Id. The user selects which CCDs to use for the science run by assigning the CCD Id to the particular FEP. A FEP can be designated as unused by storing the CCD_DESELECT value in the CCD Id field. Data from a particular CCD may be processed by more than one FEP, but subsequent parameters may conflict (see below). In general, if more than one FEP is processing data from the same CCD, the FEP with the larger FEP Id index will overwrite the parameters used by the lower (NOTE: This is a side-effect. ACIS applies all of the parameters from all of the FEPs, in ascending FEP Id order. The last FEP wins). The affected parameters are the CCD Video Response parameters and the FEP Video Offset parameters. For example, if one configured:
fepCcdSelect[FEP_0] = CCD_I0 fepCcdSelect[FEP_1] = CCD_I1 fepCcdSelect[FEP_2] = CCD_I0 fepCcdSelect[FEP_3 .. FEP_5] = CCD_DESELECT and ccdVideoResponse[FEP_0] = 0 ccdVideoResponse[FEP_1] = 0 ccdVideoResponse[FEP_2] = 1 and fep0VideoOffset[FEP_0] = [60,60,60,60] fep0VideoOffset[FEP_1] = [60,60,60,60] fep0VideoOffset[FEP_2] = [30,30,30,30]then CCD_I0 would use the low-gain video response (Video Response = 1) and 30 for the video ADC offsets.
On the other hand, the CCD images are captured in the order they first appear in the FEP CCD selection list, so in the above example, CCD_I0 would perform its image-to-frame captures first, followed by CCD_I1.
NOTE: Since the image transfer from the CCD framestores to the DEA/DPA is performed synchronously, images captured earlier spend more time in the CCD framestore. The time taken for each capture is approximately 40ms, so images from the CCD used by FEP_0 would spend 40ms longer in the framestore than images from the CCD used by FEP_1. The user can control this by selecting which CCDs are placed in the low order FEPs. For example, if a particular CCD performs better if its images are retained longer in the framestore, then the user would probably assign it to FEP_0.
If a CCD's video board is not powered, or if its assigned FEP is not powered, or if an error is encountered while setting up for the run, the offending FEP or CCD will not be used for the run. This will not, however, affect the image capture sequence. Because the time spent in the framestore is indirectly configured by the user (i.e. the user may be counting on this behavior for some reason), ACIS attempts to preserve the specified behavior by keeping the relative time delays the same. Unfortunately, this is not true for the video response and video offset parameters. If a FEP is not powered or has encountered an error, the most recent successful FEP's parameters will be used. The user can avoid this problem by ensuring that the video response and offset parameters are the same for all FEPs processing the same CCD during a run.
Processing Modes
The user selects the ACIS processing via the fepMode and bepPackingMode parameters of the loadTeBlock command. The following indicates how the modes are selected, and what other parameters are affected (note that the ignore initial frames, clocking parameters, video offsets and special parameters are always enabled):
Table 15. Timed Exposure Processing Mode Selection Mode fepMode BEP Packing Mode Telemetry Packets Enabled Parameters Raw Raw ignored 1. (1) dumpedTeBlock
2. (1) deaHousekeepingData
3a. (1..n) dataTeRaw
3b. (1..n) exposureTeRaw
4. scienceReportrawCompressionSlotIndex
windowSlotIndexHistogram Histogram ignored 1. (1) dumpedTeBlock
2. (1) deaHousekeepingData
3a. (17 or 33) dataTeHist
3b. (1..n) exposureTeHistogram
4. (1) scienceReporthistogramCount Faint 3x3 3x3 Faint 1. (1) dumpedTeBlock
2. (1) deaHousekeepingData
3. (0..n) dataTeBiasMap
4a. (0..n) dataTeFaint
4b. (1..n) exposureTeFaint
5. (1) scienceReportall bias parameters
fepEventThreshold
fepSplitThreshold
lowerEventAmplitude
eventAmplitudeRange
gradeSelections
windowSlotIndexFaint with Bias 3x3 3x3 FaintBias 1. (1) dumpedTeBlock
2. (1) deaHousekeepingData
3. (0..n) dataTeBiasMap
4a. (0..n) dataTeFaintBias
4b. (1..n) exposureTeFaintBias
5. (1) scienceReportGraded 3x3 Graded 1. (1) dumpedTeBlock
2. (1) deaHousekeepingData
3. (0..n) dataTeBiasMap
4a. (0..n) dataTeGraded
4b. (1..n) exposureTeFaint
5. (1) scienceReportFaint 5x5 5x5 Faint 1. (1) dumpedTeBlock
2. (1) deaHousekeepingData
3. (0..n) dataTeBiasMap
4a. (0..n) dataTeVeryFaint
4b. (1..n) exposureTeFaint
5. (1) scienceReportClocking Parameters
TBD - Reference to copy of pramte.doc description of Timed Exposure Clocking
The Timed Exposure Parameter Block contains a set of parameters which controls how the CCDs are clocked, and the format of the resulting images (NOTE: some combinations of these parameters are not supported. Refer to TBD). The clocking parameters are as follows.
- On-Chip Summing Flag
If this flag is 0, then the system will not perform any charge summing on the CCD. If the flag is set to 1, then the charge from each pair of CCD rows and columns are summed on the CCD. This halves the number of rows and columns clocked out for each image, and affects the time taken to transfer the image to the DEA/DPA for processing (see Section 4.1.1).
NOTE: Because this parameter affects the image geometry, if this parameter is different than that used for last bias computation, the user must ensure that a new bias map is computed with the changed parameter.
- Subarray Start Row
This specifies the first CCD row to transfer to the DEA/DPA for processing. If 0, then the first row used for imaging (there are two dummy rows prior to the first image row) is sent. If not zero, the image is down shifted in the framestore until the specified row is reached, and the resulting image is transferred to the instrument. This parameter, coupled with the on-chip summing flag and the subarray row count, affects the resulting image geometry. This parameter also affects the time taken to transfer the image to the DEA/DPA (see Section 4.1.1). In order to avoid overheating the DEA driver circuit, this parameter must be less than 924 (i.e. for each image, at least 100 rows must be clocked from the CCD to the DEA) (NOTE: This is checked by the instrument software, and then effectively re-checked by the DEA sequence load checker. The ACIS software ensures that a bad assignment or corruption of this parameter cannot damage the hardware).
NOTE: Because this parameter affects the image geometry, if this parameter is different than that used for last bias computation, the user must ensure that a new bias map is computed with the changed parameter.
- Subarray Row Count
This specifies the number of (possibly summed) rows to clock out of the CCD minus 1. This parameter, coupled with the on-chip summing flag and the subarray row count, affects the image geometry. This parameter also affects the time taken to transfer to image to the DEA/DPA (see Section 4.1.1). In order to avoid overheating the DEA driver circuit, the subarray row count must be at least 99 (i.e. 100 rows) (NOTE: This is checked by the instrument software, and is then effectively re-checked by the DEA sequence load checker. The ACIS software ensures that a bad assignment or corruption of this parameter cannot damage the hardware).
NOTE: Because this parameter affects the image geometry, if this parameter is different than that used for last bias computation, the user must ensure that a new bias map is computed with the changed parameter.
- Overclock Pairs Per Node
This specifies the number of pairs of overclock pixels to clock out of each CCD serial register output node. For example, if a value of 15 is specified, when the Output Register Mode is in FULL mode, 30 overclocks per node per row will be produced, or a grand total of 120 overclock pixels per row.
In raw mode, this parameter affects the telemetered image geometry, and is not affected by the windowing parameters. Although, the entire image may be clipped out with a window, the overclocks will be telemetered.
This parameter affects the time taken to transfer images to the DEA/DPA for further processing (see Section 4.1.1).
NOTE: Because this parameter may affect baseline overclock levels, it is recommended that the bias map be recomputed when this parameter changes.
- Output Register Mode
This parameter specifies the configuration of the CCD output nodes. If in FULL mode, the images are clocked out of all four CCD output nodes, A, B, C, and D. If in DIAG mode, the images are clocked in a reverse direction, away from the four output nodes. This is used to measure clocking noise in the DEA electronics by clocking the CCDs, but not moving any charge into the electronics. From the instrument software's point of view, the resulting image appears as if it were clocked in FULL mode. AC and BD modes are intended for use if one of the video chains should fail. AC mode clocks the serial registers through the A and C nodes. In BD mode, only the B and D nodes are used. Since only half the video chains are used, these modes take twice as long as FULL or DIAG mode (see Section 4.1.1).
NOTE: Because this parameter changes the relationship between CCD pixel and output node, and therefore, the baseline overclock levels, it is recommended that the bias maps be re-computed whenever this parameter is changed.
- Video Responses
These parameters control the gain of the measured signal by changing the A/D integration timing on the video boards. If 0, then normal gain is used. If set to 1, then the corresponding CCD signal gain is cut by about 75%. Currently, it is not expected that this feature will ever be used. This parameter only affects the signal quality, and does not affect the image geometry or transfer time to the DEA/DPA. This parameter may require adjustments to the FEP Video Offset parameters, and the various threshold and bias parameters.
NOTE: Because these parameters dramatically affects the signal gains, the bias-maps should be recomputed whenever these parameters change.
- Primary and Secondary Integration Times and Duty Cycle
These parameters control the static integration times of the CCD images, and the ratios of integration times used. For example, if the primary integration time is 0.3 seconds, and the secondary time is 3.3 seconds, and the duty cycle is 10, the CCD will first integrate for 0.3 seconds and transfer the image, and then perform a series of 10 3.3 second integrations. It will then repeat the cycle. Refer to Section 4.1.1 for a description of the minimum integration times, and the effect of short integration times. The effect of these parameters are coupled to the time taken to transfer images to the DEA/DPA.
If the dutyCycle is non-zero, only images integrated using the secondary exposure times are used when computing the bias maps.
NOTE: Because the integration times may affect the CCD bias levels, it is recommended that the bias maps be re-computed whenever these parameters are changed.
Video ADC Offsets
Because the clocking parameters can affect the signal levels measured on the video boards, the Timed Exposure Parameter block specifies the Analog-to-Digital Converter (ADC) video offset levels, which override those stored in the System Configuration Table (see Section 3.3.4). The video offset parameters act inversely to the video chain signal level (i.e. larger values produce a lower offset). The conversion formula for these values is specified in TBD.
NOTE: Because the video offset parameters may affect the signal measurement levels and affect the CCD bias levels, it is recommended that the bias maps be re- computed whenever these parameters are changed, although, if the offsets are adjusted to compensate for changes in the other parameters in order to maintain a consistent bias level, one may not require a bias re-computation.
Bias (and related) Parameters
ACIS re-computes the bias maps whenever one or more of the following conditions are met:
A science run is started and the recomputeBias flag is set in its parameter block
A Bias-Only science run is started (see Section 4.2 )
A science run is started in an event processing mode was requested and either
The FEP's bias offsets were corrupt, or
The previous Science Run was not a Timed Exposure run, or
The radiation monitor had been asserted since the last bias computation
NOTE: Many of the CCD clocking parameters can affect the bias levels of the CCD images, and require re-computation of the map. The instrument software does NOT automatically detect these changes. It is the user's responsibility to determine when the bias maps should be re-calculated, and request computation of the bias maps when needed.
The ignoreInitialFrames parameter indicates how many exposures the FEPs are to throw away prior to computing the bias map. This is to allow for the bias-levels of the CCDs to settle. (NOTE: For data processing, 2 exposures are always discarded, hence, all reported exposure numbers start at 2).
ACIS supports a variety of bias computation algorithms, each requiring a collection of parameters. The algorithm selection and parameters are supplied independently for each FEP in the biasAlgorithmId and biasArg parameters. The details of the algorithms and the effect of the parameters are provided in TBD.
If the ignoreBadPixelMap is 0, ACIS installs the bad pixel map contained in the Bad Pixel Map into the bias maps whenever the maps are re-computed. If the ignoreBadPixelMap is 1, the pixels are not flagged. The same applies to the ignoreBadColumnMap, where the bad columns are retrieved from the Timed Exposure Bad Column Map (see Section 3.5).
If a bias is re-computed, and the trickleBias flag set to a 1, then the bias maps from each used FEP are telemetered prior to the start of data processing. If the trickleBias flag is 0, then the maps are not telemetered. If the maps are trickled, the biasCompressionSlotIndex indicates which compression table to use to pack the data. If the field is set to 255, then the maps will be bit-packed, with no compression. Refer to TBD for a description of the current Huffman compression tables.
NOTE: The maps are sent only when they are re-computed. If trickleBias is 1, but the map wasn't computed as part of the run, the map will not be telemetered at that time. In order to maintain a stable bias-level, the sequencers will continue to clock the CCDs while the maps are telemetered. The FEPs will ignore the clocked data.
Event Selection Parameters
The event selection parameters are only used when the ACIS is configured for Faint 3x3, FaintBias, Graded, or Faint 5x5 modes. The details of the event selection algorithm are provided in TBD. These parameters are:
- FEP Pixel Thresholds
The FEP pixel thresholds, fepEventThreshold, are indexed by FEP and output node. For each FEP, the BEP loads the four output node thresholds into the corresponding Front End Processor. The user supplies these values in bias-corrected Analog-to-Digital unit (ADU) values. The FEP hardware uses the thresholds to locate pixels, in incoming CCD images, whose measured pulse heights are large enough to indicate possible detected X-ray events. The FEP software and hardware effectively adjust these values to correct for drifts in the average overclock levels from the DEA video chains, and for pixel-to-pixel bias differences, using the computed pixel bias maps.
- BEP Split Thresholds
The BEP split thresholds, fepSplitThreshold, are indexed by FEP and output node. The Back End software uses these values to determine which pixels, surrounding the center of a candidate X-ray event, contain charge from the event. The values are specified in bias-corrected ADUs. The BEP use this to compute an estimate of the total amplitude of the X-ray event, and its grade code. The amplitude and grade code are then used by the BEP for subsequent event filtering, and if in Graded Mode, are telemetered.
- Event Amplitude Range
The lowerEventAmplitude and eventAmplitudeRange parameters specify the range of estimated amplitudes to accept from candidate events. If a candidate event's estimated amplitude is less than the lowerEventAmplitude or is greater than or equal to (lowerEventAmplitude + eventAmplitudeRange), the event is rejected and not sent to the ground. If the event is within the range, then its is passed on to the grade and possibly window selection filters.
- Event Grade Selection
The gradeSelections parameter is an array of 256 bits, where each bit corresponds to 1 grade code. If the user sets a bit to 1, then events whose grade code matches the corresponding entry may be telemetered. If a bit is 0, then such events are rejected, and are not telemetered. If an event matches a grade which is enabled, then the event is passed to the window filter.
TBD - Reference grade code description
- Window Processing
If the windowSlotIndex is 0xffff, then no window processing is performed on the candidate events, otherwise, the 2-D Window Parameter Block stored in the corresponding slot is used to process the candidate events. See Section 4.1.4.2 for a description of this processing.
Raw Image Processing
If the run is performing Raw Mode, then the following parameters are used to filter and telemeter the data:
- Window Processing
If the windowSlotIndex is 0xffff, then no window processing is performed on the raw image, otherwise, the 2-D Window Parameter Block stored in the corresponding slot is used to process the image. See Section 4.1.4.2 for a description of this processing.
NOTE: Window processing is not applied to the overclock data. All overclocks from all of the rows in the image are telemetered.
- Compression table
The rawCompressionSlotIndex indicates which compression table to use to pack the raw data. If the field is set to 255, then the maps will be bit-packed, with no compression. Refer to TBD for a description of the current Huffman compression tables
Special Cases
The DEA Load Override parameter is provided to allow the maintainer to specify an explicit PRAM/SRAM image to load into the sequencers.This parameter causes the software to by-pass the SRAM library, and the on-board PRAM builder, and will ignore all clocking parameters when building the load. It is the user's responsibility to place the load image somewhere in the BEPs data memory, and ensure that the clocking parameters in the parameter block are consistent with the images produced by the explicit load.
NOTE: The DEA sequence checker will still verify that the loaded PRAM/SRAM does not threaten the health of the DEA electronics.
The FEP Load Override parameter can be used by the maintainer to provide alternate software to run in the FEP hardware. It is the user's responsibility to ensure that the FEP load image is stored somewhere in the BEP's data memory, and that the loaded program is compatible with the BEP-FEP protocols expected by the BEP software.
Commands
Summary of Load Timed Exposure Parameter Block (see TBD for an example):
loadTeBlock: CMDOP_LOAD_TE { teBlockSlotIndex = 0..5 - Specify which slot to load checksum = checksum - 16-bit wide XOR of remainder of packet (illustrated in bold-type) parameterBlockId = id - Ground selected Parameter Block Id fepCcdSelect[6] = CCD_I0..CCD_S5, CCD_DESELECT - Array indexed by FEP Id of which CCD each FEP should use fepMode = Raw, Histogram, 3x3 or 5x5 bepPackingMode = Faint 3x3, FaintBias, Graded, Faint 5x5 onChip2x2Summing = 0..1 - Select 2x2 on-chip summing ignoreBadPixelMap = 0..1 - Don't load bad pixels after bias ignoreBadColumnMap = 0..1 - Don't load bad columns after bias recomputeBias = 0..1 - Force re-computation of bias trickleBias = 0..1 - Send bias maps after computation subarrayStartRow = 0..923 - First row of subarray subarrayRowcount = 100..1023 - Number of rows in subarray overclockPairsPerNode = 0..15 - Number of overclock pairs outputRegisterMode = FULL, DIAG, AC, BD - Output register configuration ccdVideoResponse[6] = 0..1 - Normal or low-gain, indexed by FEP primaryExposure = 0.1..10s - Primary static integration time secondaryExposure = 0.1..10s - Secondary static integration time dutyCycle = 0..15 - Ratio of Secondary to Primary times fep*EventThreshold[4] = -4096..4095 - FEP threshold values for each FEP. Indexed by output node. fep*SplitThreshold[4] = 0..4095 - BEP threshold values for data from each FEP. Indexed by output node. lowerEventAmplitude = 0..4095 - Minimum event amplitude eventAmplitudeRange = 0..65535 - Maximum amplitude above minimum gradeSelections[256] = 0..1 - Select accepted event grade codes windowSlotIndex = 0..4,255 - Select 2-D window slot histogramCount = 0..65535 - Number of exposures in histogram biasCompressionSlotIndex[6] = 0..255 - Compression table for bias maps, indexed by FEP rawCompressionSlotIndex = 0..255 - Compression table for raw images ignoreInitialFrames = 0..65535 - Exposures to drop prior to bias biasAlgorithmId[6] = 0..255 - Bias Algorithm to use, indexed by FEP biasArg*[6] = value - Bias Arguments, indexed by FEP fep*VideoOffset[4] = 0..255 - ADC Video Offsets for each FEP, indexed by output node. deaLoadOverride = 0,pointer - If not 0, BEP Memory pointer to DEA load image fepLoadOverride = 0,pointer - If not 0, BEP Memory pointer to FEP load image }
Science Telemetry
Command Echo on a successful load:
commandEcho: TTAG_CMD_ECHO { arrival = time command arrived (BEP 10Hz Ticks) result = CMDRESULT_OK (other values indicate an error) loadTeBlock: CMDOP_LOAD_TE { teBlockSlotIndex = 0..5 checksum = checksum parameterBlockId = id ... } }If the checksum of the packet doesn't match its contents, the block will not be loaded into the slot, and the Command echo will report the error by setting the result field to CMDRESULT_STORE_ERROR.
NOTE: If the parameter block contains fields which are out of range, or which are illegal in combination with other fields, an attempt to start a science run will abort, with the terminationReason in the Science Report set to SMTERM_PROC_PARM_INVALID, SMTERM_DEA_PARM_INVALID, SMTERM_FEP_PARM_INVALID. However, if the user specifies a set of clocking parameters which are legal, but not supported by the on-board SRAM library, it will appear as DEA error, and the terminationReason will be set to SMTERM_DEA_IO_ERROR.
Warnings
The video offset parameters in the parameter block override those specified in the System Configuration Table (see Section 3.3.4). The video offset parameters in the System Configuration Table are never used.
The science parameter blocks DO NOT apply or remove power from hardware boards. If a video board or FEP is not powered, it will not be used for the run. If none of the requested boards are powered, the run will be aborted.
Certain combinations of clocking parameters cause the software to access SRAM library components which don't exist, and will abort the run. See TBD.
Description
Slots
ACIS has five slots in which it stores 2-D Window Parameter blocks. The parameter blocks are loaded into a particular slot using a "Load 2D Block" command packet, where the slot is specified in the windowSlotIndex field. When parameter block is loaded into a slot, the slot's contents are overwritten by the new block contained in the command. If the instrument is power-cycled or cold-booted (see Section 3.1.3.1, Section 3.1.3.2), the contents of the slots will be restored to their "as-launched" values. A warm-boot (see Section 3.1.3.3), however, retains the contents of the most recently loaded blocks.
Checksum
Each parameter block contains a checksum field. The checksum is the bit-wise XOR of each 16-bit word in the command packet following the checksum field (i.e. starting with the least-significant 16-bit word of the windowBlockId field).
Window Block Id
The Window Block Identifier is a 32-bit value which can be used by the ground to uniquely identify the parameter block. ACIS sends the value of the Window Block Id in all exposure record packets and science report packets which used the windows for a science run.
NOTE: The intent of the Window Block Id is to aid bookkeeping on the ground. ACIS does not use the id internally for any particular purpose, and therefore, the users are free to use the field as they wish.
Window Definitions
The remainder of the window parameter block contains a series of zero or more window definitions. The number of windows in the block is determined using the command packet length. Each window definition specifies the CCD to which the window applies, the row and column position of the bottom left corner of the window, and the width and height of the window, all in CCD coordinates. Each window also specifies an event amplitude range, which is only used for event processing, and a sample field, which is used for both event processing, and for raw-mode data clipping. Refer to TBD for an explicit description of window processing of event data, and TBD for a description of window processing of raw mode data. ACIS is capable of supporting up to 6 windows for each CCD used for a run. The parameter block can hold up to 49 window definitions, and therefore, is capable of specifying 6 windows for 6 CCDs used for a run. The parameter block may contain windows for CCDs not used in the run, but does not have enough space, however, to specify all 6 windows for all 10 CCDs.
Commands
Summary of Load 2DWindow Block (see TBD for an example):
load2dBlock: CMDOP_LOAD_2D { windowSlotIndex = 0..5 - Specify which slot to load checksum = checksum - 16-bit wide XOR of remainder of packet (illustrated in bold-type) windowBlockId = id - Ground selected Window Block Id windows[] = - Array of window definitions { ccdId = I0..S5 - Identify CCD ccdRow = 0..1023 - Bottom row of window ccdColumn = 0..1023 - Left most column of window width = 0..1023 - Width of window - 1 height = 0..1023 - Height of window - 1 sampleCycle = 0..255 - Event sample count, or raw pixel selection lowerEventAmplitude = 0..4095 - Minimum event amplitude eventAmplitudeRange = 0..65535 - Maximum amplitude above minimum } { ccdId ... } ... }
Science Telemetry
Command Echo on a successful load:
commandEcho: TTAG_CMD_ECHO { arrival = time command arrived (BEP 10Hz Ticks) result = CMDRESULT_OK (other values indicate an error) load2dBlock: CMDOP_LOAD_2D { windowSlotIndex = 0..5 checksum = checksum windowBlockId = id windows[] = { ccdId = I0..S5 ccdRow = 0..1023 ccdColumn = 0..1023 width = 0..1023 height = 0..1023 sampleCycle = 0..255 lowerEventAmplitude = 0..4095 eventAmplitudeRange = 0..65535 } { ccdId ... } ... } }If the checksum of the packet doesn't match its contents, the block will not be loaded into the slot, and the Command echo will report the error by setting the result field to CMDRESULT_STORE_ERROR.
NOTE: If the parameter block contains fields which are out of range, or which are illegal in combination with other fields, an attempt to start a science run will abort, with the terminationReason in the Science Report set to SMTERM_PROC_PARM_INVALID.
Warnings
Contrary to how bit-mapped graphics are produced, and paste-up sheets are overlaid on a table, the windows in the parameter block overlap in a queue-like fashion, where the last window in the parameter block is the bottom most window.
The parameter block can only hold up to 49 windows.
In order to handle the event detection boundary conditions in the Front End Processors, the FEPs never produce events centered on row 0, column 0, row 1023 or column 1023.
For event processing, only the center pixel of the event must be within the window for the event to be processed by the window. In raw mode, any raw pixel which is within the window is processed by the window. The wording in the Software Requirements Specification is a little confusing on this point.
Description
Slots
ACIS has five slots in which it stores Continuous Clocking Parameter blocks. The parameter blocks are loaded into a particular slot using a "Load CC Block" command packet, where the slot is specified in the ccBlockSlotIndex field. When a parameter block is loaded into a slot, the slot's contents are overwritten by the new block contained in the command. If the instrument is power-cycled or cold- booted (see Section 3.1.3.1 , Section 3.1.3.2), the contents of the slots will be restored to their "as-launched" values. A warm-boot (see Section 3.1.3.3 ), however, retains the contents of the most recently loaded blocks.
Checksum
Each parameter block contains a checksum field. The checksum is the bit-wise XOR of each 16-bit word in the command packet following the checksum field (i.e. starting with the least-significant 16-bit word of the parameterBlockId field).
Parameter Block Id
The Parameter Block Identifier is a 32-bit value which can be used by the ground to uniquely identify the parameter block. ACIS sends the value of the Parameter Block Id in all exposure record, bias map, bias error packets and science report packets which used the parameter block for a bias computation and/or science run. In some cases, the Parameter Block used for science run data processing may be different than the parameter block used to compute the bias map used for the run, in which case, the telemetered Bias Parameter Block Id will be different than the main data processing Parameter Block Id (these are distinct fields in the telemetry packets).
NOTE: The intent of the Parameter Block Id is to aid bookkeeping on the ground. ACIS does not use the id internally for any particular purpose, and therefore, the user's are free to use the field as they wish.
CCD Selection
The Continuous Clocking Parameter Block contains an array of CCDs which are indexed by FEP Id. The user selects which CCDs to use for the science run by assigning the CCD to the particular FEP. A FEP can be designated as unused by assigning the CCD_DESELECT value for the CCD Id field. A CCD may be processed by more than 1 FEP, however, subsequent parameters may conflict (see below). In general, if a more than 1 FEP is processing data from the same CCD, the higher order FEP overwrites the parameters used by the lower (NOTE: This is a side-effect. ACIS applies all of the parameters from all of the FEPs, in FEP order. The last FEP wins). The affected parameters are the CCD Video Response parameters and the FEP Video Offset parameters. For example, if one configured:
fepCcdSelect[FEP_0] = CCD_I0 fepCcdSelect[FEP_1] = CCD_I1 fepCcdSelect[FEP_2] = CCD_I0 fepCcdSelect[FEP_3 .. FEP_5] = CCD_DESELECT and ccdVideoResponse[FEP_0] = 0 ccdVideoResponse[FEP_1] = 0 ccdVideoResponse[FEP_2] = 1 and fep0VideoOffset[FEP_0] = [60,60,60,60] fep0VideoOffset[FEP_1] = [60,60,60,60] fep0VideoOffset[FEP_2] = [30,30,30,30]then CCD_I0 would use the low-gain video response (Video Response = 1) and 30 for the video ADC offsets.
In Continuous Clocking mode, all the CCDs shift their respective rows in unison, avoiding the staggered capture complexities of Timed Exposure mode.
If a CCD's video board is not powered, or if the FEP is not powered, or if an error is encountered while setting up for the run, the offending item will not be used for the run.
Processing Modes
The user selects which ACIS processing mode to use with the fepMode and bepPackingMode parameters. The following indicates how the modes are selected, and what other parameters are affected (note the ignore initial frames, clocking parameters, video offsets and special parameters are always enabled):
Table 16. Continuous Clocking Processing Mode Selection Mode fepMode BEP Packing Mode Telemetry Packets Enabled Parameters Raw Raw ignored 1. (1) dumpedCcBlock
2. (1) deaHousekeepingData
3a. (1..n) dataCcRaw
3b. (1..n) exposureCcRaw
4. scienceReportrawCompressionSlotIndex
windowSlotIndexFaint 1x3 1x3 Faint 1. (1) dumpedCcBlock
2. (1) deaHousekeepingData
3. (0 or n) dataCcBiasMap
4a. (1..n) dataCcFaint
4b. (1..n) exposureCcFaint
5. (1) scienceReportall bias parameters
fepEventThreshold
fepSplitThreshold
lowerEventAmplitude
eventAmplitudeRange
gradeSelections
windowSlotIndexGraded 3x3 Graded 1. (1) dumpedCcBlock
2. (1) deaHousekeepingData
3. (0..n) dataCcBiasMap
4a. (1..n) dataCcGraded
4b. (1..n) exposureCcFaint
5. (1) scienceReportClocking Parameters
TBD - Reference to copy of pramcc.doc description of Continuous Clocking
Continuous Clocking always clocks a collection 512 rows from the CCD to the DEA/DPA. Although the timing relationship between sets of 512 rows is seamless, this unit is used to re-compute average overclocks and adjust the threshold levels, and is treated by the system as an image, or "exposure". The Continuous Clocking Parameter Block contains a set of parameters which control how the CCDs are clocked, and the format of the resulting images (NOTE: some combinations of these parameters are not supported. Refer to TBD). The clocking parameters are as follows:
- Row Sum and Column Sum
These parameters control the on-chip summing of rows and columns performed in Continuous Clocking mode. Their values are expressed in terms of powers of 2, so, for example, if Row Sum is 3, then 8 CCD rows are summed on the CCD and sent to the DEA/DPA. These parameters divide, by powers of 2, the number of rows and columns clocked out for each image, and affect the time taken to transfer the image to the DEA/ DPA for processing (see Section 4.1.1).
NOTE: Because this parameter affects the image geometry and measured bias level, if this parameter is different than that used for last bias computation, the user must ensure that a new bias map is computed with the changed parameter.
- Overclock Pairs Per Node
This specifies the number of overclock pixels to clock out of the CCD serial register. The parameter actually specifies the number of pairs of overclocks for each output node. For example, if a value of 15 is specified, when the Output Register Mode is in FULL mode, a total of 30 overclocks per node per row will be produced, or a grand total of 120 overclock pixels per row.
In raw mode, this parameter affects the telemetered image geometry, and is not affected by the windowing parameters. Although, the entire image may be clipped out with a window, the overclocks will be telemetered.
This parameter affects the time taken to transfer images to the DEA/DPA for further processing (see Section 4.1.1 ).
NOTE: Because this parameter may affect baseline overclock levels, it is recommended that the bias map be recomputed when this parameter changes.
- Output Register Mode
This parameter specifies the configuration of the CCD output nodes. If in FULL mode, the images are clocked out of all four CCD output nodes, A, B, C, and D. If in DIAG mode, the images are clocked ina reverse direction, away from the four output nodes. This is used to measure clocking noise in the DEA electronics by clocking the CCDs, but not moving any charge into the electronics. From the instrument software's point of view, the resulting image appears as if it were clocked in FULL mode. AC and BD modes are intended for use if one of the video chains fail. AC mode clocks the serial registers through the A and C nodes. In BD mode, only the B and D nodes are used. Since only half the video chains are used, these modes take twice as long FULL or DIAG mode (see Section 4.1.1).
NOTE: Because this parameter changes the output nodes, and therefore, the baseline overclock levels, it is recommended that the bias maps be re-computed whenever this parameter is changed.
- Video Responses
These parameters control the gain of the measured signal by changing the A/D integration timing on the video boards. If 0, then normal gain is used. If set to 1, then the corresponding CCD signal gain is cut by about 75%. Currently, it is not expected that this feature will ever be used. This parameter only affects the signal quality, and does not affect the image geometry or transfer time to the DEA/DPA. This parameter may require adjustments to the FEP Video Offset parameters, and the various threshold and bias parameters.
NOTE: Because these parameters dramatically affects the signal gains, the bias-maps should be recomputed whenever these parameters change.
Video ADC Offsets
Because the clocking parameters can affect the signal levels measured on the video boards, the Timed Exposure Parameter block specifies the Analog-to-Digital Converter (ADC) video offset levels, which override those stored in the System Configuration Table (see Section 3.3.4). The video offset parameters act inversely to the video chain signal level (i.e. larger values produce a lower offset). The conversion formula for these values is specified in TBD.
NOTE: Because the video offset parameters may affect the signal measurement levels and affect the CCD bias levels, it is recommended that the bias maps be re- computed whenever these parameters are changed, although, if the offsets are adjusted to compensate for changes in the other parameters in order to maintain a consistent bias level, one may not require a bias re-computation.
Bias (and related) Parameters
ACIS re-computes the bias maps under one or more of the following conditions:
The recomputeBias flag is set in the parameter block
A Bias-Only run was requested (see Section 4.2 )
An event processing mode and
The FEP's bias offsets were corrupt or
The previous Science Run was not a Continuous Clocking run or
The radiation monitor had been asserted since the last bias computation
NOTE: Many of the CCD clocking parameters can affect the bias levels of the CCD images, and require re-computation of the map. The instrument software does NOT automatically detect these changes. It is the user's responsibility to determine when the bias maps should be re-calculated, and request computation of the bias maps when needed.
The ignoreInitialFrames parameter indicates how many exposures the FEPs are to throw away prior to computing the bias map. This is to allow for the bias-levels of the CCDs to settle. (NOTE: For data processing, 2 exposures are always discarded, hence, all reported exposure numbers start at 2).
ACIS supports a variety of bias computation algorithms, each requiring a collection of parameters. The algorithm selection and parameters are supplied independently for each FEP in the biasAlgorithmId and biasArg parameters. The details of the algorithms and the effect of the parameters are provided in TBD.
If the ignoreBadColumnMap is 0, ACIS installs the bad columns, indicated in the Continuous Clocking bad column map, into the bias maps whenever the maps are re-computed. If the ignoreBadColumnMap is 1, the column pixels are not flagged. (see Section 3.5).
If a bias is re-computed, and the trickleBias flag set to a 1, then the bias maps from each used FEP are telemetered prior to the start of data processing. If the trickleBias flag is 0, then the maps are not telemetered.
NOTE: The maps are sent only when they are re-computed. If trickleBias is 1, but the map wasn't computed as part of the run, the map will not be telemetered at that time.
Event Selection Parameters
The event selection parameters are only used when the ACIS is configured for Faint 1x3 and Graded modes. The details of the event selection algorithm are provided in TBD. These parameters are:
- FEP Pixel Thresholds
The FEP pixel thresholds, fepEventThreshold, are indexed by FEP and output node. For each FEP, the BEP loads the four output node thresholds into the corresponding Front End Processor. The user supplies these values in bias-corrected Analog-to-Digital unit (ADU) values. The FEP hardware uses the thresholds to locate pixels, in incoming CCD images, whose measured pulse heights are large enough to indicate possible detected X-ray events. The FEP software and hardware effectively adjust these values to correct for drifts in the average overclock levels from the DEA video chains, and for pixel-to-pixel bias differences, using the computed pixel bias maps.
- BEP Split Thresholds
The BEP split thresholds, fepSplitThreshold, are indexed by FEP and output node. The Back End software uses these values to determine which pixels, surrounding the center of a candidate X-ray event, contain charge from the event. The values are specified in bias-corrected ADUs. The BEP use this to compute an estimate of the total amplitude of the X-ray event, and its grade code. The amplitude and grade code are then used by the BEP for subsequent event filtering, and if in Graded Mode, are telemetered.
- Event Amplitude Range
The lowerEventAmplitude and eventAmplitudeRange parameters specify the range of estimated amplitudes to accept from candidate events. If a candidate event's estimated amplitude is less than the lowerEventAmplitude or is greater than or equal to (lowerEventAmplitude + eventAmplitudeRange), the event is rejected and not sent to the ground. If the event is within the range, then it is passed on to the grade and possibly window selection filters.
- Event Grade Selection
The gradeSelections parameter is an array of 4 bits, where each bit corresponds to 1 grade code. If the user sets a bit to 1, then events whose grade code matches the corresponding entry may be telemetered. If a bit is 0, then such events are rejected, and are not telemetered. If an event matches a grade which is enabled, then the event is passed to the window filter.
TBD - Reference Grade Code Table
- Window Processing
If the windowSlotIndex is 0xffff, then no window processing is performed on the candidate events, otherwise, the 1-D Window Parameter Block stored in the corresponding slot is used to process the candidate events. See Section 4.1.4.2 for a description of this processing.
Raw Image Processing
If the run is performing Raw Mode, then the following parameters are used to filter and telemeter the data:
- Window Processing
If the windowSlotIndex is 0xffff, then no window processing is performed on the raw image, otherwise, the 1-D Window Parameter Block stored in the corresponding slot is used to process the image. See Section 4.1.4.2 for a description of this processing.
NOTE: Window processing is not applied to the overclock data. All overclocks from all of the rows in the image are telemetered.
- Compression table
The rawCompressionSlotIndex indicates which compression table to use to pack the raw data. If the field is set to 255, then the maps will be bit-packed, with no compression. Refer to TBD for a description of the current Huffman compression tables
Special Cases
The DEA Load Override parameter is provided to allow the maintainer to specify an explicit PRAM/SRAM image to load into the sequencers.This parameter causes the software to by-pass the SRAM library, and the on-board PRAM builder, and will ignore all clocking parameters when building the load. It is the user's responsibility to place the load image somewhere in the BEPs data memory, and ensure that the clocking parameters in the parameter block are consistent with the images produced by the explicit load.
NOTE: The DEA sequence checker will still verify that the loaded PRAM/SRAM does not threaten the health of the DEA electronics.
The FEP Load Override parameter can be used by the maintainer to provide alternate software to run in the FEP hardware. It is the user's responsibility to ensure that the FEP load image is stored somewhere in the BEP's data memory, and that the loaded program is compatible with the BEP-FEP protocols expected by the BEP software.
Commands
Summary of Load Continuous Clocking Parameter Block (see TBD for an example):
loadCcBlock: CMDOP_LOAD_CC { ccBlockSlotIndex = 0..5 - Specify which slot to load checksum = checksum - 16-bit wide XOR of remainder of packet (illustrated in bold-type) parameterBlockId = id - Ground selected Parameter Block Id fepCcdSelect[6] = CCD_I0..CCD_S5, CCD_DESELECT - Array indexed by FEP Id of which CCD each FEP should use fepMode = Raw, or 1x3 bepPackingMode = Faint, or Graded ignoreBadPixelMap = 0..1 - Don't load bad pixels after bias ignoreBadColumnMap = 0..1 - Don't load bad columns after bias recomputeBias = 0..1 - Force re-computation of bias trickleBias = 0..1 - Send bias maps after computation rowSum = 0..9 - Number of rows to sum (powers of 2) columnSum = 0..6 - Number of columns to sum (powers of 2) overclockPairsPerNode = 0..15 - Number of overclock pairs outputRegisterMode = FULL, DIAG, AC, BD - Output register configuration ccdVideoResponse[6] = 0..1 - Normal or low-gain, indexed by FEP fep*EventThreshold[4] = -4096..4095 - FEP threshold values for each FEP. Indexed by output node. fep*SplitThreshold[4] = 0..4095 - BEP threshold values for data from each FEP. Indexed by output node. lowerEventAmplitude = 0..4095 - Minimum event amplitude eventAmplitudeRange = 0..24570 - Maximum amplitude above minimum gradeSelections[4] = 0..1 - Select accepted event grade codes windowSlotIndex = 0..4,255 - Select 1-D window slot rawCompressionSlotIndex = 0..255 - Compression table for raw images ignoreInitialFrames = 0..65535 - Exposures to drop prior to bias biasAlgorithmId[6] = 0..255 - Bias Algorithm to use, indexed by FEP biasRejection[6] = value - Bias Rejection Level, per FEP fep*VideoOffset[4] = 0..255 - ADC Video Offsets for each FEP, indexed by output node. deaLoadOverride = 0,pointer - If not 0, BEP Memory pointer to DEA load image fepLoadOverride = 0,pointer - If not 0, BEP Memory pointer to FEP load image }
Science Telemetry
Command Echo on a successful load:
commandEcho: TTAG_CMD_ECHO { arrival = time command arrived (BEP 10Hz Ticks) result = CMDRESULT_OK (other values indicate an error) loadCcBlock: CMDOP_LOAD_CC { ccBlockSlotIndex = 0..5 checksum = checksum parameterBlockId = id ... } }If the checksum of the packet doesn't match its contents, the block will not be loaded into the slot, and the Command echo will report the error by setting the result field to CMDRESULT_STORE_ERROR.
NOTE: If the parameter block contains fields which are out of range, or which are illegal in combination with other fields, an attempt to start a science run will abort, with the terminationReason in the Science Report set to SMTERM_PROC_PARM_INVALID, SMTERM_DEA_PARM_INVALID, SMTERM_FEP_PARM_INVALID. However, if the user specifies a set of clocking parameters which are legal, but not supported by the on-board SRAM library, it will appear as DEA error, and the terminationReason will be set to SMTERM_DEA_IO_ERROR.
Warnings
The video offset parameters in the parameter block override those specified in the System Configuration Table (see Section 3.3.4). The video offset parameters in the System Configuration Table are never used.
The science parameter blocks DO NOT apply or remove power from hardware boards. If a video board or FEP is not powered, it will not be used for the run. If none of the requested boards are powered, the run will be aborted.
Certain combinations of clocking parameters cause the software to access SRAM library components which don't exist, and will abort the run. See TBD.
Description
Slots
ACIS has five slots in which it stores 1-D Window Parameter blocks. The parameter blocks are loaded into a particular slot using a "Load 1D Block" command packet, where the slot is specified in the windowSlotIndex field. When a parameter block is loaded into a slot, the slot's contents are overwritten by the new block contained in the command. If the instrument is power-cycled or cold- booted (see Section 3.1.3.1, Section 3.1.3.2), the contents of the slots will be restored to their "as-launched" values. A warm-boot (see Section 3.1.3.3), however, retains the contents of the most recently loaded blocks.
Checksum
Each parameter block contains a checksum field. The checksum is the bit-wise XOR of each 16-bit word in the command packet following the checksum field (i.e. starting with the least-significant 16-bit word of the windowBlockId field).
Window Block Id
The Window Block Identifier is a 32-bit value which can be used by the ground to uniquely identify the parameter block. ACIS sends the value of the Window Block Id in all exposure record packets and science report packets which used the windows for a science run.
NOTE: The intent of the Window Block Id is to aid bookkeeping on the ground. ACIS does not use the id internally for any particular purpose, and therefore, the users are free to use the field as they wish.
Window Definitions
The remainder of the window parameter block contains a series of zero or more window definitions. The number of windows in the block is determined using the command packet length. Each window definition specifies the CCD to which the window applies, the column position of the left edge of the window, and the width of the window, all in CCD coordinates. Each window also specifies an event amplitude range, which is only used for event processing, and a sample field, which is used for both event processing, and for raw-mode data clipping. Refer to TBD for an explicit description of window processing of event data, and TBD for a description of window processing of raw mode data. ACIS is capable of supporting up to 6 windows for each CCD used for a run. The parameter block can hold up to the maximum of 60 window definitions (6 windows x 10 CCDs).
Commands
Summary of Load 1DWindow Block:
load1dBlock: CMDOP_LOAD_1D { windowSlotIndex = 0..5 - Specify which slot to load checksum = checksum - 16-bit wide XOR of remainder of packet (illustrated in bold-type) windowBlockId = id - Ground selected Window Block Id windows[] = - Array of window definitions { ccdId = I0..S5 - Identify CCD ccdColumn = 0..1023 - Left most column of window width = 0..1023 - Width of window - 1 sampleCycle = 0..255 - Event sample count, or raw pixel selection lowerEventAmplitude = 0..4095 - Minimum event amplitude eventAmplitudeRange = 0..24570 - Maximum amplitude above minimum } { ccdId ... } ... }
Science Telemetry
Command Echo on a successful load:
commandEcho: TTAG_CMD_ECHO { arrival = time command arrived (BEP 10Hz Ticks) result = CMDRESULT_OK (other values indicate an error) load1dBlock: CMDOP_LOAD_1D { windowSlotIndex = 0..5 checksum = checksum windowBlockId = id windows[] = { ccdId = I0..S5 ccdColumn = 0..1023 width = 0..1023 sampleCycle = 0..255 lowerEventAmplitude = 0..4095 eventAmplitudeRange = 0..24570 } { ccdId ... } ... } }If the checksum of the packet doesn't match its contents, the block will not be loaded into the slot, and the Command echo will report the error by setting the result field to CMDRESULT_STORE_ERROR.
NOTE: If the parameter block contains fields which are out of range, or which are illegal in combination with other fields, an attempt to start a science run will abort, with the terminationReason in the Science Report set to SMTERM_PROC_PARM_INVALID.
Warnings
Contrary to how bit-mapped graphics are produced, and paste-up sheets are overlaid on a table, the windows in the parameter block overlap in a queue-like fashion, where the last window in the parameter block is the bottom most window.
In order to handle the event detection boundary conditions in the Front End Processors, the FEPs never produce events centered on column 0 or column 1023.
For event processing, only the center pixel of the event must be within the window for the event to be processed by the window. In raw mode, any raw pixel which is within the window is processed by the window. The wording in the Software Requirements Specification is a little confusing on this point.
Description
Prior to starting a science run, the user should have powered on the FEPs and Video boards needed for the run (see Section 3.3.2 and Section 3.3.3) and planned and loaded the parameter and window blocks needed for the run (see Section 4.1.1, Section 4.1.2, Section 4.1.3, Section 4.1.4 ). The user initiates a science run using the "Start Science" command packet, where the opcode of the command selects the type of science run to perform, and the blockSlotIndex parameter selects which parameter block to use to configure the run. If the opcode is CMDOP_START_TE, then a Timed Exposure run is performed, and the parameter block is read from the slots reserved for Timed Exposure runs. If the opcode is CMDOP_START_CC, the a Continuous Clocking run is performed, and the parameter block is read from the Continuous Clocking slot array.
Once started, the Science Manager will configure the processing parameters, load the CCD settings into the DEA video boards, load the sequencer memory of the video boards, configure the Front End Processor parameters. It will then "jitter" the video board DACs to clear charge out of the CCDs. If a bias computation is required, the task will command the FEPs to compute a bias, and then start the video board sequencers. Once the bias is complete, the task will stop the sequencers, and will send the bias maps to telemetry, if requested by the "trickleBias" flag. Once the bias maps have been sent, the task will command the FEPs to prepare for data, and re-start the video board sequencers. The FEPs will then ignore the first two images from the CCDs, and then start processing the data from the subsequent exposures, producing data packets and exposure records. The task will continue to do so, until either it is commanded to stop, via a "Stop Science" command, inhibited by the radiation monitor, aborted by a second "Start Science" command (in which case, a new run will be configured and started), or until the run is aborted due to errors (NOTE: The system attempts to degrade gracefully. If a FEP produces an error, it is not used for the remainder of the run. The remaining FEPs, however, will continue to be used. If all of the FEPs are in error, then the run is aborted because there's nothing to do).
Commands
Command to start a Timed Exposure Science Run:
startScience: CMDOP_START_TE { blockSlotIndex = 0..4 - Index Timed Exposure Parameter Block Slot }Command to start a Continuous Clocking Science Run:
startScience: CMDOP_START_CC { blockSlotIndex = 0..4 - Index Continuous Clocking Parameter Slot }
Engineering Telemetry
When performing a science run, the Software Housekeeping task blinks the LED values between two values, about once a minute (see Section 3.4.3.1).
If system had not watchdog-reset since the last commanded reset:
LED_RUN_SCIENCE_A LED_RUN_SCIENCE_BIf the system had watchdog-reset:
LED_WD_SCIENCE_A LED_WD_SCIENCE_B
Science Telemetry
Command Echo on a successful receipt of Timed Exposure start request:
commandEcho: TTAG_CMD_ECHO { arrival = time command arrived (BEP 10Hz Ticks) result = CMDRESULT_OK (other values indicate an error) startScience: CMDOP_START_TE { blockSlotIndex = 0..4 } }Command Echo on a successful receipt of Continuous Clocking start request:
commandEcho: TTAG_CMD_ECHO { arrival = time command arrived (BEP 10Hz Ticks) result = CMDRESULT_OK (other values indicate an error) startScience: CMDOP_START_CC { blockSlotIndex = 0..4 } }If a run had been started, and not yet stopped, when the command is received, the "result" field of the echo will contain CMDRESULT_CLOBBERED. In this case, the earlier run will be aborted (NOTE: The FEPs will be reset), and the new run will be configured and started.
If the radiation monitor had been activated, then the start of the run will be deferred until the monitor is de-activated. In this case the "result" field will contain CMDRESULT_INHIBITED.
If the selected parameter block checksum does not match its contents (i.e. has been corrupted), the system will attempt to determine if the run was configured to use the Imaging CCDs or the Spectroscopy CCDs. If any of the CCDs in the fepSelect field of the parameter block choose an Imaging CCD (I0..I3), the system will attempt to use the parameter block contained in slot 0. If not, it will try to default to the parameter block in slot 1. If the default is not corrupt, the intent was for the system to use the default parameter block, and the "result" field will be set to CMDRESULT_CORRUPT_DEFAULT. Due to a "bug" in the software, however, the system will use the most recently configured parameter block for the type of run that was chosen, either Timed Exposure or Continuous Clocking (NOTE: Some might consider this a feature).
If the original parameter block is corrupt, and the selected default parameter block is also corrupt (or they're one and the same), the run will not be started, and the "result" field will contain CMDRESULT_CORRUPT_IDLE.
Since the field ranges within the parameter block are only checked during the set- up stage of the run, after the receipt of the command has been acknowledged via the command echo, if the a parameter contained in the block is invalid or unsupported, the Command Echo will not indicate the problem, and supply a CMDRESULT_OK. Instead, the run will not be started, and a "Science Report" packet will indicate the problem within its terminationReason field.
At the start of the run, the Science Manager will fetch and telemeter the parameter blocks used for the run. In Timed Exposure Mode, the dump appears as:
dumpedTeBlock: TTAG_DUMP_TE { dumped TE Block: loadTeBlock: CMDOP_LOAD_TE [ ... } if windows were used, this is followed by: a dumped 2d Window Block, aligned to the next 32-bit word: load2dBlock: CMDOP_LOAD_2D { ... } }In Continuous Clocking Mode, the dump appears as:
dumpedCcBlock: TTAG_DUMP_CC { dumped CC Block: loadCcBlock: CMDOP_LOAD_CC [ ... } if windows were used, this is followed by: a dumped 1d Window Block, aligned to the next 32-bit word: load1dBlock: CMDOP_LOAD_1D { ... } }Once the parameter blocks have been dumped, the Science Manager acquires and telemeters the DEA Video Board housekeeping information for all CCDs used for the run (NOTE: Unless all 10 video boards are powered on, the analog values in the packet will be of marginal use. They will indicate if the given channel is completely broken, but won't really indicate the level that the DAC was set to). The content and form of this information is described in Section 3.4.6.6.
If a bias map was re-computed, and the "trickleBias" flag was set in the parameter block, the system will telemeter the contents of the computed bias maps of each FEP, in FEP order (i.e. FEP_0 first, then FEP_1, etc.). The Timed Exposure Bias Map telemetry packets are of the form:
dataTeBiasMap: TTAG_SCI_TE_BIAS { biasStartTime = 100KHz time-stamp at start of bias biasParameterId = Parameter Block Id used for bias ccdId = CCD which produced the map fepId = FEP used to produce the map dataPacketNumber = packet sequence number within this map initialOverclocks[4] = DC-offset of bias values, by quadrant pixelsPerRow = number of pixels in each bias map row rowsPerBias = number of rows in the map ccdRow = starting row of data in the packet ccdRowCount = number of rows packed into the packet compressiontTableSlotIndex = table slot value used to compress data pixelCount = total number of pixels in the packet data[] = packed or compressed data, as array of 32-bit words }The Continuous Clocking Bias Map telemetry packets are of the form:
dataCcBiasMap: TTAG_SCI_CC_BIAS { biasStartTime = 100KHz time-stamp at start of bias biasParameterId = Parameter Block Id used for bias ccdId = CCD which produced the map fepId = FEP used to produce the map data[1024] = packed 12-bit pixel bias values }Once processing data, the Science Manager task produces a series of telemetry data packets, followed by 1 exposure record, for each FEP. The data and exposure packets for the different FEPs are asynchronously interleaved into the telemetry stream. The form of the data and exposure packets vary, depending on the type of mode being run. See Table 15 and Table 16 for cross-references between the type of mode and the resulting telemetry packet types.
Warnings
Parameter block fields are only checked as they are used to setup for the run. If there is an error in one or more fields, the run may be prematurely terminated, with the Science Report's terminationReason indicating the type of error. ACIS does not explicitly call- out which parameter is in error, however.
If a run is in progress, and a subsequent "Start Science" command is received, the FEPs will be reset and the earlier run will be aborted, after which the new run will be configured and started. Sometimes this takes a long time, and may lead to confusion when a "human" is interacting with the instrument. The condition is indicated in the command echo to the "Start Science" command, and the bi-levels accurately reflect the current state of the instrument.
When a run is re-started, the earlier run is aborted. This abort forces a reset of the FEPs to ensure that nothing gets locked up. If the previous run is interacting with a FEP when the reset is issued, its Science Report may indicate that FEP errors have occured.
If a "Start Science" is received while the radiation monitor flag is asserted, the run won't start until the radiation monitor is de-asserted.
Although the software requirement states that either parameter block slot 0 or 1 will be used in the event that the requested parameter block is corrupted, the system actually re-uses the parameters from the previous run of the same type, either Timed Exposure or Continuous Clocking. The run may fail to start if no runs of the given type have been successfully started since the instrument was last powered on.
See Section 3.4.6.6 Warnings
Description
The user stops a science run by issuing a "Stop Science" command packet. Upon receipt of the command, the Science Manager task will issue a stop request to the FEPs, and poll them until they indicate that they have no more data to send from the current exposure. Once the current exposure is complete, the Science Manager task stops the sequencers and forms and posts a "Science Report" telemetry packet.
Commands
Command to stop a science run:
stopScience: CMDOP_STOP_SCIENCE { No additional parameters are required }
Engineering Telemetry
Once a science run is complete, the Software Housekeeping task will revert the LEDs to their idle blinking states (see Section 3.4.3.1).
If system had not watchdog-reset since the last commanded reset:
LED_RUN_IDLE_A LED_RUN_IDLE_BIf the system had watchdog-reset:
LED_WD_IDLE_A LED_WD_IDLE_B
Science Telemetry
Once a run terminates, either due to a stop command, a radiation monitor inhibit, or an abort, the Science Manager produces a "Science Report" telemetry packet:
scienceReport: TTAG_SCI_REPORT { runStartTime = 100KHz time-stamp when data started parameterBLockId = Parameter Block Id used for data windowBlockId = Window Block Id used to filter biasStartTime = 100KHz time-stamp when bias was computed biasParameterId = Parameter Block Id used for bias exposuresProduced = Largest Exposure Number produced by FEPs exposuresSent = Number of exposures telemetered biasErrorCount = Number of bias errors telemetered fepErrorCodes[6] = FEP Error codes, indexed by FEP ccdErrorFlags[6] = Video Board error flags, indexed by FEP deaInterfaceErrorFlag = DEA Interface board error flag terminationCode = Reason the run was stopped }The FEP Error codes are (likely user-inflicted cases are in bold):
FEP_CMD_NOERR - no errors detected, the FEP is ok FEP_CMD_ERR_NO_RUN - stop received, but it was already stopped. This may occur if many stop commands are issued to the instrument in a row. FEP_CMD_ERR_UNK_CMD - Unknown command type. SEU or bug. FEP_CMD_ERR_PARM_LEN - Parameter block too long. SEU or bug. FEP_CMD_ERR_PARM_TYPE - Unknown parameter block type. SEU or bug. FEP_CMD_ERR_QUAD_CODE - Unknown quadrant code. SEU or bug. FEP_CMD_ERR_BIAS_TYPE - Bad biasAlgorithmId in parameter block FEP_CMD_ERR_BIAS_PARM0 - Bad biasArg0 in parameter block. FEP_CMD_ERR_NROWS - Bad number of rows. SEU or bug. FEP_CMD_ERR_NCOLS - Bad number of columns. SEU or bug. FEP_CMD_ERR_NOCLK - Bad number of overclocks. SEU or bug. FEP_CMD_ERR_NHIST - histogramCount was zero in Histogram Mode FEP_CMD_ERR_NO_PARM - No parameter block loaded. SEU or bug. FEP_CMD_ERR_BAD_CMD - Illegal secondary command. SEU or bug. FEP_CMD_ERR_NO_BIAS - No bias map stored. SEU or bug FEP_ERR_LOCK_TIMEOUT - Time-out on FEP lock. SEU, bug or FEP crash FEP_ERR_NO_POWER - FEP is not powered on FEP_ERR_IS_RESET - FEP is reset, FEP probably crashed. FEP_ERR_NO_CMDRING - FEP program has no command mailbox, bad fepLoadOverride. FEP_ERR_REPLY_TIMEOUT - FEP reply timed-out. FEP probably in the process of crashing but hasn't watchdogged yet. FEP_ERR_BAD_REPLY_TYPE - FEP produced bad reply. SEU or bug FEP_ERR_BAD_MBOX_STATE - FEP mailbox in wrong state. SEU or bug.The Termination Codes are (normal and user-inflicted cases are in bold):
SMTERM_UNUSED - Unused. Should never see this one. SMTERM_STOPCMD - Commanded to Stop i.e. normal term. SMTERM_BIASDONE - Bias-only Run completed SMTERM_RADMON - Radiation Monitor was asserted SMTERM_CLOBBERED - Clobbered by another start command SMTERM_FEP_BIAS_START - FEP Bias Processing did not start SMTERM_FEP_DATA_START - FEP Data Processing did not start SMTERM_CCD_BIAS_START - Start clock failed. CCDs for bias failed SMTERM_CCD_DATA_START - Start clock failed. CCDs for data failed SMTERM_CCD_BIAS_STOP - Stop clock failed. CCDs for bias failed SMTERM_PROC_PARM_INVALID - Processing Parameter out of range SMTERM_DEA_PARM_INVALID - DEA Parameter out of range SMTERM_FEP_PARM_INVALID - FEP Parameter out of range SMTERM_FEP_CONFIG_ERROR - FEP Configuration Error SMTERM_DEA_IO_ERROR - I/O errors, or no CCD controllers on SMTERM_FEP_IO_ERROR - I/O errors, or no FEPs are on SMTERM_UNSPECIFIED - Reason is unspecified
Warnings
Science runs which terminate due to the assertion of the radiation monitor, will re-start once the monitor is de-asserted, unless a "Stop Science" is received.
Invalid parameters will cause a science run to abort during its setup stage. The report will set the termination code to either: SMTERM_PROC_PARM_INVALID , SMTERM_DEA_PARM_INVALID, SMTERM_FEP_PARM_INVALID, or SMTERM_FEP_CONFIG_ERROR.
Upon receipt of a "Stop Science" command, ACIS attempts to complete the current exposure. If the system is in "Raw" mode, or if there are a large number of events in the exposures, this may take quite a while to finish. If, during that time, another "Start Science" command is received, the stop will be aborted and the FEPs will be reset. Depending on the timing, the resulting termination code may be SMTERM_CLOBBERED, or may indicate some form of FEP error.
The exposuresProduced field is badly named. Although its name implies that its the number of exposures clocked out of all of the CCDs, it is actually 1 plus the largest exposure number produced by any of the FEPs.
The exposuresSent field indicates the sum of the number of exposures telemetered from all of the FEPs.