1. Trang chủ
  2. » Ngoại Ngữ

Flight Software Specification - Release 3

24 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Flight Software Specification - Release 3
Tác giả Dave Beckwith
Trường học University Nanosat
Chuyên ngành Flight Software Specification
Thể loại Technical Document
Năm xuất bản 2002
Định dạng
Số trang 24
Dung lượng 713 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

Three Corner Sat

Flight Software Specification - Release 3

Trang 2

Originator/EEDS Team Lead Date Thermal Team Lead Date

Imaging Team Lead Date Configuration Manager Date

Trang 3

Revision Log

DRAFT 02-17-02 Initial DRAFT version created ALL

ALL ALL

Trang 4

Table 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 5

1 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 6

Acronym 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 7

Acronym 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 8

2.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 9

3.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 10

description 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 11

camera 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 12

description 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 "

Ngày đăng: 18/10/2022, 20:50

w