Process Tasks ProcessTaskThis is a C++ class defined in "ProcessTask.h" and implemented in "ProcessTask.C" which provides a pure virtual base class upon which a processing task class can
Trang 1Three Corner Sat
Flight Software Specification - Release 3
Trang 2Originator/EEDS Team Lead Date Thermal Team Lead Date
Imaging Team Lead Date Configuration Manager Date
Trang 3Revision Log
DRAFT 02-17-02 Initial DRAFT version created ALL
ALL ALL
Trang 4Table of Contents
1 SCOPE 5
1.1 IDENTIFICATION 5
1.2 DOCUMENT MAINTENANCE 5
1.3 SYSTEM OVERVIEW 5
1.4 DOCUMENT OVERVIEW 5
1.5 DEFINITIONS, ACRONYMS, AND ABBREVIATIONS 5
2 LOW LEVEL FLIGHT SOFTWARE 7
2.1 HANDLERS 7
2.1.1 I/O Blocks (IOBLK) 7
2.1.2 I/O Manager (IOMGR) 8
2.1.3 Serial manager (SERIALMGR) 8
3 PROCESSING TASKS 8
3.1 COMMAND BLOCKS (CMDBLK) 8
3.2 PROCESS TASKS (PROCESSTASK) 9
3.3 SOFTWARE MANAGER (SWM) 9
3.4 SCIENCE MODULE (SCI) 10
3.5 ELECTRICAL POWER MANAGER (EPM) 11
3.6 BROADCAST PACKET MANAGER (BPGEN) 11
3.7 TRANSMIT COMMUNICATIONS (TX_COMM) 11
3.8 RECEIVE COMMUNICATIONS (RX_COMM) 11
4 SPACECRAFT COMMAND LANGUAGE (SCL) 11
4.1 DESCRIPTION 11
4.1.1 Core product 11
4.1.2 Software Bus 12
4.2 SCL MODEL 12
4.2.1 Scripts 12
4.2.2 Rules 13
4.2.3 Constraints 13
4.2.4 Database 13
4.3 USER INTERFACE 14
4.3.1 Application Specific Module (ASPCFC) 14
4.3.2 Packet Generator (PKTGEN) 14
4.3.3 Data IO for Special Sensors (DIOUSER) 14
4.3.4 Real Time Engine Services (RTESVC) 14
4.3.5 Access generated code 14
4.3.6 SCL setup files 14
5 CONTINUOUS ACTIVITY SCHEDULING PLANNING EXECUTION AND REPLANNING (CASPER) 15
5.1 DESCRIPTION 15
5.1.1 Planning 15
5.1.2 Resources 15
5.2 MODEL 15
5.3 SCL Interface 16
Trang 51 Scope
1.1 Identification
This document applies to the Three Corner Sat (3CS) project, a joint project undertaken by Arizona State University,University of Colorado at Boulder, and New Mexico State University This project is part of the UniversityNanosatellite Program sponsored by the Air Force Office of Scientific Research (AFOSR) and the Defense AdvancedResearch Projects Agency (DARPA)
1.2 Document Maintenance
This document falls under the 3CS document control requirements as specified under the 3CS ConfigurationManagement plan The end-to-end subsystem is being developed at the University of Colorado and the team membersthere are to be part of any changes or updates All changes and updates must be made in accordance with the 3CS CMplan
- Distributed & Automated Operations
- Modular, Generic Nanosatellite Design
- Micropropulsion Experiment – Validate MEMS Heater Chip for FMMR
3CS Three Corner Sat
ADC Analog to Digital Converter
AFRL Air Force Research Laboratory
AOCS Attitude and Orbit Control Subsystem
AODC Attitude/Orbit Determinations and Control
APRS Automatic Position Reporting System
ASU Arizona State University
C&DH Command and Data Handling
Trang 6Acronym Name
CDR Critical Design Review
CMOS Complimentary Metal Oxide Semiconductor
COMM Communications Subsystem
COTS Commercial off the Shelf
CPR Customer Payload Requirements
CPU Central Processing Unit
CU University of Colorado at Boulder
DSES Deep Space Exploration Society
DSP Digital Signal Processor
EEPROM Electrically Erasable Programmable Read Only Memory
EEDS End to End Data Subsystem (C&DH)
EPS Electric Power Subsystem
ESD Electrostatic Discharge
FCP Fracture Control Plan
FEA Finite Element Analysis
FEM Finite Element Method
FM Frequency Modulation
FMMR Free Molecule Micro Resistojet
FSDP Flight Safety Data Package
FSW Flight Software (software onboard satellite)
GaAs Gallium Arsenide
GMSK Gaussian Minimum Shift Key
GPS Global Positioning System
GSFC Goddard Space Flight Center
HH Hitchhiker
I/O Input / Output (to and from a computer)
ICB Imaging Control Board
JSC Johnson Space Center
JPL Jet Propulsion Laboratory
KSC Kennedy Space Center
LR Latching Relay
MCDL Master Control Document List
MDP Maximum Design Pressure
MEMS Micro-Electro-Mechanical Systems
MOP Maximum Operating Pressure
MSDS Multiple Satellite Deployment System
MUX Multiplexer
NASA National Aeronautics and Space Administration
NiCd Nickel Cadmium
NMEA National Marine Electronics Association
NMSU New Mexico State University
NSTS National Space Transportation System
Trang 7Acronym Name
OEM Original Equipment Manufacturer
O/S Operating System
PIC Programmable Integrated Controller
PLB Payload Bay
PPF Payload Processing Facility
PROP Propulsion Subsystem
PSDU Propellant Storage and Delivery Unit
PSRP Payload Safety Review Panel
PWM Pulse Width Modulation
REA Responsible Engineering Authority
RFDW Request For Deviation
RTD Resistance Temperature Device
RTE Realtime Engine
RF Radio Frequency
SA Solar Arrays
SCC Stress Corrosion Cracking
S/C Space Craft
SCL System Control Language (ground & onboard)
SHCS Socket Head Cap Screw
SHELS Shuttle Hitchhiker Ejection Launch System
SMA Shape Memory Alloy
SMTR Structures, Mechanisms, Thermal and Radiation
SPAM Size Power And Mass
STK Satellite Tool Kit
SVP Structural Verification Plan
SSS Stack Separation System
STRUCMEC
H
Structures and Mechanisms Subsystem
WDT Watch Dog Timer
2 Low Level Flight Software
The low level flight software performs services for the processing tasks at the next level up
2.1 Handlers
Handlers perform I/O services that make it easier for the processing tasks to communicate with the physical equipment
of the satellites
2.1.1 I/O Blocks (IOBLK)
This is a C++ class defined in "iomgr.h" and implemented in "iomgr.C" which provides the structure needed to send anI/O request to a handler These blocks contain data elements that allow passing information to a handler to send outputand receiving information back from the handler to receive input
Trang 82.1.2 I/O Manager (IOMGR)
This is a C++ class defined in "iomgr.h" and implemented in "iomgr.C" which provides a pure virtual base class upon which a handler class can be built The IOMGR class must be inherited into a new class that is a specialized handler for a specific type of I/O
This class provides the following facilities for derived handler classes:
1) A request queue for incoming IOBLK objects which request input from, and/or output to a physical device.2) A start-up member function that spawns the handler as a separate VxWorks task
3) A task body which waits for requests to be entered into the request queue, and the calls the pure virtual
"process_request()" function to perform the requested I/O
4) Utility member functions which can get information about the request queue and the requests pending
2.1.3 Serial manager (SERIALMGR)
Since most of the I/O on the satellites is performed through serial (RS-232 format) digital transmission, a C++ handler class (SERIALMGR) is provided which performs serial I/O This class is defined in "serialmgr.h" and is implemented
2) Timeout - the input request is terminated when a specified number of milliseconds have elapsed since the request was started An input status of 1 is returned in this case Specify zero milliseconds
to disable this type of termination
3) String Match - the request is terminated if a string of characters specified in the IOBLK is found in the serial input stream The match string can be from 1-7 characters An input status of 3 is returned
in this case Specify a null string to disable this type of termination
Two or more serial handlers can share a single serial hardware port Each handler can have a different baud rate and special switching code to select a different external multiplexer port Each handler can specify whether it needs to perform input, output, or both This will be taken into account in preventing conflicts
Trang 93.2 Process Tasks (ProcessTask)
This is a C++ class defined in "ProcessTask.h" and implemented in "ProcessTask.C" which provides a pure virtual base class upon which a processing task class can be built The ProcessTask class must be inherited into a new class that is a specialized task to perform a special type of processing
This class provides many capabilities that are commonly needed by processing tasks:
Each process task is assigned a range of numbers that will be the SCL record ID's (recid's) that it will service
A static routing function, "Route_Cmd()", is provided to route each command (CMDBLK) to the appropriate processing task
A command queue (CmdQueue) is provided to allow SCL or other processing tasks to queue commands to be executed This queue holds objects of the CMDBLK class
A reply queue (ReplyQueue) is provided to receive I/O replies (IOBLK objects) back from handlers in response to I/O requests that have been performed
A virtual "KeepAlive()" member function is provided which can be called periodically while the processing task is waiting for a command to be queued This can be used to pet a watchdog timer or check the status of a hardware device, for instance
Several utility functions are provided to assist in parsing command parameters and other common needs
3.3 Software Manager (SWM)
This is a processing task class (SW_MGR) derived from the "ProcessTask" class This task executes a collection of commands that are unique or don't fit in with any of the other processing tasks
SCMD
description name recID nparm example manual call
initializes software runlevel 1 cmd_init_runlevel1 2000 1 mcmd 2000
initializes software runlevel 2 cmd_init_runlevel2 2001 1 mcmd 2001
initializes software runlevel 3 cmd_init_runlevel3 2002 1 mcmd 2002
runs the new software in test mode cmd_test_sw_update 2005 1 mcmd 2005
loads the new software into the baseline cmd_load_sw_update 2006 1 mcmd 2006
loads the new schedule into the baseline cmd_load_schedule_update 2007 1 mcmd 2007
gets current time from another satellite (unused,
done automatically by COMM)
sets the system time in vxWorks and in the SCL
database (real UTC time) cmd_set_mission_time 2010 2 mcmd 2010,"979 "sets the satellite ID number (1=petey, 2=ralphie,
3=sparky) and into SCL dbase 0 cmd_set_satellite_num 2011 2 mcmd 2011,"2"sets the actual time (real Boulder time) that the
mission is deemed to have started cmd_set_mission_start 2012 2 mcmd 2012,"97 "starts the SWB ProcessMessage loop cmd_start_swb 2013 1 mcmd 2013
reboots vxworks (warm reboot) cmd_reboot_eeds 2014 2 mcmd
2014,"80309"gets the satellite number from the fsw's
persistant storage into SCL database 0 cmd_get_satellite_num 2015 1 mcmd 2015
sets the master number in the fsw's persistant
storage and into SCL database 0 cmd_set_master_num 2016 2 mcmd 2016, "1"gets the master number from the fsw's persistant cmd_get_master_num 2017 1 mcmd 2017
Trang 10description name recID nparm example manual call
storage into SCL database 0
sends a cmd_ping_return cmd to the current
sends a cmd_ping_reply cmd to the current
target station (parameter is "this" station) cmd_ping_return 2019 2 mcmd 2019,""displays a "ping OK" message (param is the stn#
replying to the ping) cmd_ping_reply 2020 2 mcmd 2020,""called during boot-up to init some system
params from persistent variables
cmd_reboot_reinit 2021 1 mcmd 2021
generates software H&S data and DCOM it into
sets the verbosity for the SWM module(0= none,
1=errors, 2=comments, 3=all)(default=1) cmd_swm_verbosity 2023 2 mcmd 2023,"2"initializes blank databases with values specific to
each satellite Done in FSW so SCL doesn't
have to switch databases to do it
set/get the deployment_sv in persistant storage,
0 for false, 1 true Negative for get cmd_deploy_done 2025 2 mcmd 2025, "1"set/get the isl_mode_sv in persistant storage
Use a negative argument to get, or a 0 "off", 1
Get, >0 to Set) cmd_batt_charge 2029 2 mcmd 2029,"32878"Copy/move a file from one place to another (P1:
0=copy, 1=move)(P2: src)(P3: dest) cmd_copy_file 2030 2 mcmd 2030,"0 /tffs1/xxx /tffs3/yyy"deletes a file (P1: file to delete) cmd_delete_file 2031 2 mcmd 2031, "/tffs1/
xxx"
lists the files in a directory or partition to a file
(P1: dir/partition)(P2: output file name)
cmd_list_dir 2032 2 mcmd 2032, "/tffs1 /
tffs1/dir1.txt"
3.4 Science Module (SCI)
This is a processing task class (science_task) derived from the "ProcessTask" class On 3CS, the science task takes care of all things related to imaging
SCMD
description name recID nparm example manual call
clears camera memory of pictures (required before
transfer image from camera to image buffer (takes
takes a picture using a serial command (avoid using cmd_take_picture 6004 1 mcmd 6004
Trang 11camera circuits on (800 msec) cmd_power_camera 6011 1 mcmd 6011presses shutter button on the camera to take a
drops the camera enable line for one second (this
cuts power to the selected camera)
cmd_drop_enable 6013 1 mcmd 6013
shows the contents of image catalog and writes the
same text to "/tffs3/pic_cat.txt" cmd_get_image_cat 6014 1 mcmd 6014sets "High Priority" flag for the next picture taken on
delete all images from the image catalog and the disk cmd_del_all_pics 6016 1 mcmd
6016,"80309"select level of verbosity for imaging (0=none,
1=errors, 2=commentary, 3=all)(default=2)
cmd_sci_verbosity 6017 2 mcmd 6017,"1"
returns the number of images currently in the image
clears camera serial port input buffer test_camera_clear_buffer 6900 1 mcmd 6900loopback test of camera serial port (requires
3.5 Electrical Power Manager (EPM)
This is a processing task class (EPM) derived from the "ProcessTask" class
SCMD
description name recID nparm manual call example
clears EPS serial port input buffer cmd_clear_buffer 4000 1 mcmd 4000samples a single EPS telemetry channel mon_eps_chan 4001 2 mcmd 4001,"17"sets the EPS automatic telemetry gathering time interval
(in 10 sec intervals) cmd_eps_auto_telem 4002 2 mcmd 4002,"3"gets one record of the EPS telemetry log cmd_eps_telem_dump 4003 2 mcmd 4003,"24"
switches a single EPS device on or off ( ) cmd_switch_eps 4005 3 mcmd 4005,"10
1"
samples entire EPS health and status telemetry (49
Trang 12description name recID nparm manual call example
samples FMMR health and status from EPS (5 variables) mon_fmmr_hs 4007 1 mcmd 4007select level of verbosity for EPS (0=none, 1=errors,
2=commentary, 3=all)(default=2) cmd_epm_verbosity 4008 2 mcmd 4008,"1"clears EPS serial port input buffer test_eps_clear_buffer 4900 1 mcmd 4900loopback test of EPS serial port (requires loopback
3.6 Broadcast Packet Manager (BPGEN)
This is a processing task class (BPGEN) derived from the "ProcessTask" class
SCMD
description name recID nparm example manual call
prepares image and H&S for transmission cmd_prepare_file 3002 2 mcmd
3002,"filename"sends H&S to target station (SCL parameter
contains two FSW parameters)
cmd_send_hs 3003 2 mcmd 3003," "
sends just the software H&S to target station
(SCL parameter contains two FSW params) cmd_send_sw_hs 3004 2 mcmd 3004," "sends specified image to target station cmd_send_image 3005 2 mcmd 3005,""sends a software update to target station cmd_send_sw_update 3006 2 mcmd 3006sends a schedule update to target station cmd_send_schedule_update 3007 2 mcmd 3007sends a string to execute a command on the
target station (1st item in string is recid) cmd_send_cmd 3008 2 mcmd 3008, "10071"send the highest ranked image in the catalog to
select level of verbosity for BPGEN (0=none,
1=errors, 2=commentary, 3=all)(default=2)
cmd_bpgen_verbosity 3017 1 mcmd 3017,"1"
3.7 Communications (TX_COMM and RX_COMM)
This is a processing task class (TX_COMM) derived from the "ProcessTask" class
SCMD
description name recID nparm example manual call
Clear the lists of files partially received/sent
(accepted only when COMM is stopped)
cmd_clear_partial_file 7101 1 mcmd 7101
sends packets that are in a temp file generated
by bpgen (called only by BPGEN) cmd_TX_send 7500 2 ***the user should never call this cmd***sets the call sign for a particular station in the
station table ( ) cmd_set_call 7501 3 mcmd 7501, "5 KB0LEX"
sets the frequency for a particular station in the
station table ( ) cmd_set_freq 7502 4 mcmd 7502, "5 "