1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
|
Internet Engineering Task Force Phil Karn
INTERNET DRAFT
File: draft-karn-satellite-telemetry-00.1.txt November, 2000
Expires: May, 2001
The Satellite Telemetry Protocol (STP)
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet- Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Abstract
This document proposes a Spacecraft Telemetry Protocol (STP) to carry
spacecraft telemetry and operational data over the Internet. It may
also be used for archival storage. The protocol specifies a standard
header format and a set of header options that identify the
spacecraft, the telemetry format, the receiving station, etc.
This protocol was primarily motivated by the launch of the AMSAT-
Oscar-40 amateur radio satellite, but it is intended to be general
purpose in nature.
Introduction and Overview
Most modern spacecraft, including nearly all amateur (ham) radio
spacecraft, carry on-board computers that control its operation,
execute commands from ground stations and format and transmit digital
telemetry about its operating condition.
There is a growing need to exchange spacecraft telemetry data over
the Internet between ground stations, spacecraft controllers and
users. To date, several ad-hoc protocols have been used, but none
appears to have the features necessary for general purpose use. This
document proposes such a protocol, the Spacecraft Telemetry Protocol,
or STP.
Telemetry formats vary widely from one type of spacecraft to another.
For example, they lack a uniform identification scheme and an
unambiguous indication of the particular data format(s) in use. For
this reason, the primary purpose of the protocol described here is to
add a standardized header to each frame of spacecraft data to
identify the spacecraft and the particular spacecraft subsystem
generating the data and/or its format. Optional header fields may
also be added to identify and locate the receiving station, timestamp
the telemetry data, indicate the telemetry transmission frequency,
and so forth.
Port Numbers and Multicasting
STP may be used over either TCP or UDP. The Well Known Port numbers
assigned by IANA for STP are XXX for TCP and YYY for UDP. This port
number SHOULD be used in the TCP or UDP Destination Port field of all
packets carrying satellite telemetry in STP format.
When STP is used over IP Multicasting [RFC1112] [RFC2236], UDP is the
transport layer protocol. Different multicast IP destination
addresses may be assigned and used to segregate data from different
satellites so that STP recipients may select the satellite or groups
of satellites from which they wish to receive telemetry. Multicast IP
address assignments for STP are TBD.
If a host implements STP, it SHOULD implement it over both UDP and
TCP, and it SHOULD support the use of IP Multicasting.
Terminology
In this document, the term "receiving station" refers to the station
receiving telemetry directly from the spacecraft. The term "STP
sender" refers to the Internet host that relays this telemetry to the
Internet using STP.
STP Header Format
The STP header consists of one or more lines of 7-bit ASCII text,
each terminated by a two-octet cr/lf sequence. The end of the STP
header is denoted by a blank line, i.e., two consecutive cr/lf
sequences. This is followed by the spacecraft telemetry block in raw
binary. (This format is intentionally similar to the Hypertext
Transport Protocol, HTTP [RFC2616])
STP headers are not case sensitive. STP receivers MUST ignore case in
incoming headers.
STP defines the following header lines and their meanings:
Source: <name authority>.<spacecraft name>[.<subsystem
name].<format>]|null
This header line gives the name of the authority issuing spacecraft
names, the name assigned by the specified authority to the spacecraft
generating the telemetry, the name of the subsystem within the
spacecraft (if any), and the format specifier of the telemetry
contained in this packet. To ensure interoperability, standard
values of these fields will be formally assigned to each spacecraft
and subsystem.
This header line is mandatory.
Length: <length>
This header line gives the length of the telemetry frame in bits,
excluding the STP header.
This header line is mandatory.
Frequency: <frequency> [MGk]Hz [<frequency> [MGk]Hz ...]
This header line gives the carrier frequenc(ies) of the spacecraft
transmitter(s) on which the telemetry frame was received. The
receiving station need not measure the exact frequenc(ies); it is
sufficient to indicate the nominal downlink frequenc(ies), as the
intent is only to distinguish among different transmitters on the
same spacecraft.
The multiple frequency fields are provided for spacecraft that
transmit the same telemetry stream on more than one RF channel,
allowing receiving stations to use diversity reception. Receiving
stations supporting diversity SHOULD specify only the frequencies
actually used to receive the current frame; i.e., multiple
frequencies should be specified only when the receiving station has
actually combined data from more than one channel to demodulate the
current frame.
This header line is optional.
EbNo: <value> dB
This header line gives the average received Eb/No ratio in decibels
at the receiving station for the telemetry frame in the packet.
If the satellite transmission is in Morse code, Eb shall be the
received energy in a single Morse element, i.e., a dot.
This header line is optional.
Date: <date>
This header line gives the date and time at the receiving station
when the end of the telemetry frame was received. The date field
MUST be in the format specified by section 3.3.1 of RFC2616 and MUST
indicate Universal time. The date SHOULD be made as accurate as
possible, either by use of a local timing receiver (e.g., GPS) or by
use of the Network Time Protocol [RFC1305] to synchronize the
receiving station's clock to UTC.
This header line is optional.
Receiver: <station name>
This header line gives the name of the receiving station. This may
be assigned by the operator of the station. If the station is an
amateur radio station, the station name SHOULD include the amateur
radio call sign.
The intent of this field is that it uniquely identify the receiving
station, that it remain constant over the life of the station, and
that it be at least somewhat meaningful to a human. If a given
amateur operator has more than one station, they SHOULD be
distinguished with different station names. These names may take the
form of additional text appended to the callsign. Imbedded spaces are
allowed in the name.
This header line is optional.
Rx-Location: <N|S><latitude> <E|W><longitude> [<altitude>]
This header line gives the geodetic location of the receiving
station. The latitude is given in decimal degrees and is immediately
preceded by a N for north or a S for south. The longitude is given in
decimal degrees and is immediately preceded by a W for west or a E
for east. The altitude, if present, is in meters. This field may be
negative. These fields are separated by exactly one space character.
This header line is optional.
Source name authorities
This document defines one source naming authority, "amsat", the Radio
Amateur Satellite Corporation. Other source naming authorities are
TBD.
The issuance of a STP spacecraft name by a particular naming
authority does not imply any ownership or control of the spacecraft
by that authority.
Header line usage
Only two header lines, Source and Length, are mandatory; the rest are
all optional. STP senders SHOULD include any header for which
accurate information is available. STP senders MUST NOT send any
header with inaccurate information. In particular, because the time-
of-day clocks in many computers are notoriously inaccurate, STP
senders SHOULD send the Date: header only if the local clock is
externally synchronized to a reliable source, such as GPS, the NTP
hierarchy, WWVB receiver, etc.
STP header lines MAY be issued in any order.
Experimental headers
STP header names beginning with "X-" are reserved for experimental
use, and will never be assigned to new official header types.
However, because of the inconvenience and interoperability problems
that can occur when official names are assigned to formerly
experimental types, STP implementers SHOULD request an official
header name, if possible, instead of using the X- format.
Spacecraft telemetry block
After the STP header, the spacecraft telemetry block follows in
binary. If the block is not an integral number of octets, it must be
padded out to the next octet boundary. The length of this block,
excluding bit padding, MUST match the value in the Length field. This
block MUST appear just as it was received from the spacecraft,
including block synchronization and error control (e.g., CRC) fields.
Inter-block padding, if any, SHOULD be deleted.
If the spacecraft uses multiple layers of error control, only the
uppermost layer need be retained. For example, if a Reed-Solomon (RS)
code is layered on top of convolutional coding, the RS parity symbol
should be retained after Viterbi decoding. But if the satellite
generates a CRC before RS encoding, then only the CRC need be
retained.
The intent is to provide an end-to-end integrity check on the data by
passing at least some of the error checking information generated by
the spacecraft unchanged to the ultimate consumer of the telemetry
data. It is not necessary, however, to include all of the error
control information added by the spacecraft to protect the space-to-
ground radio link.
Bit order
The bit ordering within each data octet sent in STP is defined by the
appropriate Source definition. For the amsat.ao-40.ihu.standard
source, octets are filled with received bits starting with the high
order bit of each octet, as defined by the Phase 3 telemetry
standard.
Processing STP packets
STP may be used to multiplex telemetry from different satellites and
in different formats onto a single TCP/IP connection or UDP/IP
multicast stream. STP receivers therefore MUST silently ignore any
STP packets from sources they do not understand or implement, while
continuing to process STP packets from sources they do understand.
Similarly, STP receivers MUST silently ignore any unimplemented
header lines and continue to process the ones they do implement.
This language is not intended to preclude an STP receiver from
notifying the user of the reception of a packet with an unsupported
source type. If this is done, however, the receiver MUST provide the
user with a means to disable these notifications.
Header values for AMSAT-Oscar-40
When STP is used to carry housekeeping telemetry for the AMSAT-
Oscar-40 satellite (known before launch as AMSAT Phase 3D), the
following Source field shall be used:
Source: amsat.ao-40.ihu.standard
For this telemetry format, the Length field will always be 4144.
Header values for GPS navigation messages
When STP is used to carry the navigation messages broadcast by Global
Positioning System (GPS) satellites on the L1 frequency, the
following Source field shall be used:
Source: amsat.gps-prn##.navigation
where "##" represents the two-digit PRN number of the satellite being
received.
Some GPS receivers, e.g., the Motorola Oncore-VP, strip the Hamming
parity bits from the incoming message, so they are not available to
the host computer. When parity-stripped GPS messages are sent with
STP, the following header shall be used:
Source: amsat.gps-prn##.navigation-noparity
Null messages
STP senders MAY send messages without telemetry for test purposes, or
to indicate to receivers that it is functional but that no spacecraft
telemetry is being received. If such messages are sent, they MUST use
the following Source header:
Source: null
Null STP MAY include test data. If such data is included, its length
MUST be correctly indicated with the Length: field. If a null STP
packet contains no data, the Length field MUST indicate a zero
length.
Other headers MAY be present in a null STP message, but MAY be
ignored by the receiver if they are not applicable.
Examples
Here are the headers as they would appear on a block of AO-40
telemetry received at a station at my house in San Diego, CA:
Source: amsat.ao-40.ihu.standard
Frequency: 145.898 MHz
Date: Tue, 28 Nov 2000 16:58:04 UTC
Receiver: KA9Q
EbNo: 15.6 dB
Rx-Location: N32.8605 W117.1889 +113
Length: 4144
[blank line]
[518 bytes of AO-40 telemetry, starting with sync vector, ending with
2-octet CRC]
Here are the headers as they might appear on the navigation message
broadcast every 30 seconds by the PRN-02 GPS satellite:
Source: amsat.gps-prn02.navigation-noparity
Frequency: 1575.42 MHz
Date: Tue, 28 Nov 2000 16:58:04 UTC
Receiver: KA9Q
Rx-Location: N32.8605 W117.1889 +113
Length: 1200
[blank line]
[150 bytes of GPS navigation message, with parity bits removed]
References
References of the form RFCnnnn are Internet Request for Comments
(RFC) documents available online at www.rfc-editor.org.
Security Considerations
To be added - particularly when we multicast this protocol, we need
an "authenticator" header that carries a digital signature on the
block added by the ground station.
Authors' Addresses:
Phil Karn (karn@qualcomm.com)
|