1 / 14

HIFI - ICU - OBS Development Status Lorenzo Piazzo INFOCOM dept.

HIFI - ICU - OBS Development Status Lorenzo Piazzo INFOCOM dept. University of Rome “La Sapienza”. HIFI Development Team. IFSI SRON INFOCOM. OBS 3 History. The last DRB was relative to OBS3.4. This presentation reports the main changes introduced in versions 3.5 and 3.6. OBS 3.6.

penney
Download Presentation

HIFI - ICU - OBS Development Status Lorenzo Piazzo INFOCOM dept.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HIFI - ICU - OBS Development Status Lorenzo Piazzo INFOCOM dept. University of Rome “La Sapienza”

  2. HIFI Development Team IFSI SRON INFOCOM

  3. OBS 3 History The last DRB was relative to OBS3.4. This presentation reports the main changes introduced in versions 3.5 and 3.6.

  4. OBS 3.6 • OBS 3.6 released May 17 2006. • Main changes since OBS3.4: • Files and directory organization revised. Libraries introduced. • EEPROM handling revised and homogenised with PACS. • Check PM and DM implemented. • OBS patching implemented and homogenised with PACS. • Error handling finalised. • Engineering routine implemented. • Exact Time Stamp attached to science data packets. • Follow up of SPRs: many errors/modifications corrected/implemented.

  5. OBS 3.6 - Directory and library organisation • The HIFI OBS source code is organised in the following directories • cmp: makefile, VPF etc • dox: documentation (.dox) • src: the OBS source code (.c, .h) • mem_lib: memory managment library (common to PACS and HIFI) • EEPROM_lib: eeprom managment library (common to PACS and HIFI) • 1553_lib: 1553 managment library (common to the three instruments) • VM_lib: Virtual machine and interface routines. (HIFI specific)

  6. OBS 3.6 - Directory and library organisation • Organisation in libraries increases program modularity thereby simplifying: • modification • debugging • documentation • The mem_lib and the EEPROM_lib are proper libraries: • can be compiled separately • interface is realised by means of function calls only • The VM_lib and the 1553_lib are less structured: • they access OBS globals and viceversa

  7. OBS 3.6 - Modules and main data/ctrl flows

  8. OBS 3.6 - EEPROM write The EEPROM_write command core is in the EEPROM library which is common to PACS and HIFI The command is implemented as a long HS command (i.e. within the hs_hdl task) since it needs to block all HS activities before execution can start The command is not interruptible and runs at the highest priority Two copies of the OBS can now be stored in the EEPROM

  9. OBS 3.6 - Check PM and DM The Check_PM command core is implemented in the Mem_lib library It is implemented as a long HS command (i.e. within the hs_hdl task) since it needs to block all HS activities before execution can start It is implemented as a multistep command in order to make it interruptible The first step is realised by function start_check_PM(). All successive steps by function mkstep_check_PM(). These functions call appropriate Mem library functions. The DM check is implemented as a background OBS activity executed within task res_chk At every res_chk loop a single memory cell is saved, written (with the complement of its previous contents), read and restored It takes a few minutes to scan the whole data memory (when the OBS is not performing any HS activity)

  10. OBS 3.6 - Errors and checks Check of the incoming TC length implemented Error codes reorganised Runtime errors added to track the SPRs Error handling strategy implemented in most of the OBS

  11. OBS 3.6 - OBS patching The Copy_OBS is implemented in order to modify the OBS while it is running The command core is implemented in the Mem_lib library The command is implemented as a long HS command (i.e. within the hs_hdl task) since it needs to block all HS activities before execution can start When the command is issued with parameter Direction set to 1 the LOW PM is copied into the HIGH PM When the command is issued with parameter Direction set to 2 the HIGH PM is copied into the LOW PM and a reset is issued Between these two steps the OBS can be patched using normal mem_load command

  12. OBS 3.6 - Engineering routine 1. The TC packet is passed to cmd_seq which dispatches it towards hs_hdl 2.hs_hdl calls the start_eng_scan function which stops any HS activity, performs data init, sets AID_spectroscopy to ENG_SCAN_ROUTINE (this stops HK reqs) and posts a message requiring feedback into the LS input queue 3. When LS detects the message all pending HK requests have been executed. It posts a feedback message in the HS_HDL queue 4. When the feedback message is received HS_HDL executes perform_eng_scan function: this posts a sequence of timed HK reqs into the LS queue followed by a message requiring feedback 5. LS executes the HK reqs, saves the results and posts feedback into the HS_HDL queue 6. HS_HDL executes send_eng_scan_report

  13. OBS 3.6 - Exact Time Stamp • - When the OBS is running the mechanism to attach the exact time stamp is as follows: • A OBS (not Virtuoso) queue for each HW fifo has been implemented to hold the TS • When a start integration command is issued the corresponding TS is pushed into the TS queue • When a frame is extracted by HS also a TS is popped from the corresponding TS queue and passed to DATA_HDL with the science data • When the VM is running the mechanism is similar: • Upon every integration or transfer request from a FIFO the VM increases a corresponding counter and rise the event VM_REQ • The event triggers task vm_mon which checks the counters. When counter=1 it decreases the counter, reads the TS and push it in the TS queue. It also updates the OBS pending frames counters

  14. OBS status The OBS is stable and robust File naming and organisation is (almost) stable There are surely minor errors to be fixed (e.g. report formats, codes etc.) The only critical SPR still to be solved is the HK_POOL overflow OBS missing steps Comments need improvement DDD is being written Code consolidation can go on for ever but can be stopped when ever

More Related