1 / 20

Low level telemetry software

Marty Olevitch Washington U. in St Louis April 8, 2005. Low level telemetry software. Flight software big picture. WU SIP software goes here. WU LOS software goes here. Data flow big picture. Data high-rate TDRSS low-rate TDRSS low-rate Iridium. TDRSS Iridium. ANITA. SIP.

brady-key
Télécharger la présentation

Low level telemetry software

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. Marty Olevitch Washington U. in St Louis April 8, 2005 Low level telemetry software

  2. Flight software big picture WU SIP software goes here WU LOS software goes here

  3. Data flow big picture Data high-rate TDRSS low-rate TDRSS low-rate Iridium TDRSS Iridium ANITA SIP NSBF Palestine Commands data requests altitude/pressure GPS commands data LOS ANITA GSE McMurdo GSE

  4. Data flow big picture Data high-rate TDRSS low-rate TDRSS low-rate Iridium TDRSS Iridium ANITA SIP NSBF Palestine Commands data requests altitude/pressure GPS commands data LOS ANITA GSE McMurdo GSE

  5. LOS interface Board currently being designed by Paul D. Uses the ANITA standard PX cPCI 9030 board Tested basic write function with raw board. Wrote from program buffer to board buffer. Write rate was 24 Mb/sec. Don’t know how fast actual end-to-end rate will be. Plan to transfer up to ~8,000 bytes at a shot.

  6. LOS interface Programming interface for our driver: 3 simple functions int los_init(void); Initialize the driver. Returns 0 if all went well, else a negative value. char *los_sterror(void); Returns a hopefully informative error message. int los_write(unsigned char *buf, short nbytes); buf – data to transfer nbytes – number of bytes to transfer (max 8000) Returns 0 if all went well -1 if no buffer available (try again) other negative values for errors.

  7. Data flow big picture Data high-rate TDRSS low-rate TDRSS low-rate Iridium TDRSS Iridium ANITA SIP NSBF Palestine Commands data requests altitude/pressure GPS commands data LOS ANITA GSE McMurdo GSE

  8. SIP overview SIP is more complex than LOS Send high-rate TDRSS data to ground • (6,000 bits/sec max) Receive commands from ground. Send low-rate TDRSS data (255 bytes every 30 seconds) The SIP will also provide: Receive MKS pressure/altitude Receive GPS time and position

  9. SIP high rate TDRSS data 6,000 bits/second max. We must throttle the rate at which we write! Annoying, but no alternative. SIP provides no handshaking. SIP has limited buffering. Write too fast and SIP loses entire buffers of data! Maintain moving average of our SIP write rate: If too high, don’t write. Either pause or return an error code. until average rate goes back down.

  10. SIP high-rate TDRSS interface int write_fast_tdrss(unsigned char* buf, int nbytes); buf – data to be transferred nbytes – number of bytes to transfer pseudo-code: Add header to start of data. Add ender to end of data. while (data remaining) { Check moving average; get no. of bytes N to write. Write N bytes. if (fatal error) return error code. } return OK

  11. Handling SIP COMM1 and COMM2 SIP has 2 bidirectional serial lines Input to ANITA Commands from ground Request for up to 255 bytes of low-rate data. MKS pressure/altitude GPS time and position Output from ANITA Slow TDRSS Slow Iridium

  12. Parsing COMM1 and COMM2 input Threads for reading each of COMM1 and COMM2 Thread code will be written by WU, but must be launched by Jim & Ryan's code (WU supplies launch function) Will recognize all of the various input items After each command, data request, etc is recognized, appropriate callback function is executed. Callback must be supplied by client code and registered. Client code should call these functions at start-up: int start_comm1_thread(); int start_comm2_thread();

  13. Handling ground commands (part 1) Command is identified by single ID byte followed by any number of data bytes data ....... ID byte data data data Initialization For each command, tell system: ID byte total number of bytes int set_cmd_length(unsigned char id, unsigned char length);

  14. Handling ground commands (part 2) Callback function Supplied by Jim & Ryan. Callback function signature void cbf(unsigned char *cmdbuf); typedef void (*cmdcb)(unsigned char *); Using the function: int set_cmd_callback(cmdcb f); Every time a command is parsed f will be executed passing it pointer to command bytes.

  15. Handling data requests (part 1) SIP issues data request For low-rate data. For each of COMM1 (TDRSS) and COMM2 (Iridium) Every 30 seconds. Not applicable to high-rate data. After request can send up to 255 bytes of data. Upon parsing request, thread will: Execute client-supplied callback Which should in turn run write_slow_data_comm1() or write_slow_data_comm2()

  16. Handling data requests (part 2) Slow data request callback signature: void f(void) typedef void (*slow_data_cb)(void); Callback registration function: int set_slow_data_callback(slow_data_cb f); GPS position and time, and MKS pressure/altitude will also be handled with a similar callback method.

  17. Data flow big picture Data high-rate TDRSS low-rate TDRSS low-rate Iridium TDRSS Iridium ANITA SIP NSBF Palestine Commands data requests altitude/pressure GPS commands data LOS ANITA GSE McMurdo GSE

  18. Receiving TDRSS data on the ground All data comes into the same serial line datad parses the incoming data Sorts out high-rate TDRSS, low-rate TDRSS and Iridium Stores data in files on local disk Other software (not necessarily written by WU) can then further process these files. Semi-realtime housekeeping updates. Monitoring various problem situations. Checksums Event counts Etc. Transfer to collaborators (WU) Very similar to TIGER code.

  19. Sending commands In a nutshell, just like TIGER Simple text-based interface on our Palestine GSE Used by ANITA operators on the Ice on the Slush on the Surf Batch command system email notification

  20. Data high-rate TDRSS low-rate TDRSS low-rate Iridium TDRSS Iridium ANITA SIP NSBF Palestine Commands data requests altitude/pressure GPS commands data LOS ANITA GSE McMurdo GSE Status summary LOS -- new code, not yet written, waiting on hardware design SIP –-- not yet written, based on TIGER software & experience GSE -- data -- modified TIGER code commands -- TIGER code with new command definitions

More Related