
Space engineering
SpaceWire protocol identification
Foreword
This Standard is one of the series of ECSS Standards intended to be applied together for the management, engineering and product assurance in space projects and applications. ECSS is a cooperative effort of the European Space Agency, national space agencies and European industry associations for the purpose of developing and maintaining common standards. Requirements in this Standard are defined in terms of what shall be accomplished, rather than in terms of how to organize and perform the necessary work. This allows existing organizational structures and methods to be applied where they are effective, and for the structures and methods to evolve as necessary without rewriting the standards.
This Standard has been prepared by the ECSS-E-ST-50-51 Working Group, reviewed by the ECSS Executive Secretariat and approved by the ECSS Technical Authority.
Disclaimer
ECSS does not provide any warranty whatsoever, whether expressed, implied, or statutory, including, but not limited to, any warranty of merchantability or fitness for a particular purpose or any warranty that the contents of the item are error-free. In no respect shall ECSS incur any liability for any damages, including, but not limited to, direct, indirect, special, or consequential damages arising out of, resulting from, or in any way connected to the use of this Standard, whether or not based upon warranty, contract, tort, or otherwise; whether or not injury was sustained by persons or property or otherwise; and whether or not loss was sustained from, or arose out of, the results of, the item, or any services that may be provided by ECSS.
Published by: ESA Requirements and Standards Division
ESTEC, P.O. Box 299,
2200 AG Noordwijk
The
Copyright: 2010 © by the European Space Agency for the members of ECSS
Change log
|
ECSS-E-ST-50-51A
|
Never issued
|
|
ECSS-E-ST-50-51B
|
Never issued
|
|
ECSS-E-ST-50-51C
|
First issue
|
Scope
There is a number of communication protocols that can be used in conjunction with the SpaceWire Standard (ECSS-E-ST-50-12), to provide a comprehensive set of services for onboard user applications. These protocols are covered by the ECSS-E-ST-50-5x series.
To distinguish between the various protocols a protocol identifier is used. This Standard specifies this protocol identifier.
This standard may be tailored for the specific characteristic and constrains of a space project in conformance with ECSS-S-ST-00.
Normative references
The following normative documents contain provisions which, through reference in this text, constitute provisions of this ECSS Standard. For dated references, subsequent amendments to, or revision of any of these publications do not apply. However, parties to agreements based on this ECSS Standard are encouraged to investigate the possibility of applying the more recent editions of the normative documents indicated below. For undated references, the latest edition of the publication referred to applies.
|
ECSS-S-ST-00-01
|
ECSS system - Glossary of terms
|
|
ECSS-E-ST-50-12
|
Space engineering - SpaceWire - Links, nodes, routers and networks
|
|
ECSS-E-ST-50-52
|
Space engineering - SpaceWire - Remote memory access protocol
|
|
ECSS-E-ST-50-53
|
Space engineering - SpaceWire - CCSDS packet transfer protocol
|
|
CCSDS 133.0-B-1
|
Space Packet Protocol, Blue Book
|
|
SMCS-ASTD-PS-001 Issue 1.1, 24 July 2009
|
STUP SpaceWire Protocol - Protocol Specification, EADS Astrium ASE4
|
|
417-R-RTP-0050 Version 2.1, 16 January 2008
|
Geostationary Operational Environmental Satellites (GOES), GOES-R Series, GOES-R Reliable Data Delivery Protocol (GRDDP), NASA Goddard Spaceflight Centre
|
Terms, definitions and abbreviated terms
Terms defined in other standards
For the purpose of this Standard, the terms and definitions from ECSS-S-ST-00-01 apply.
Terms specific to the present standard
byte
8-bits where bit 7 is the most-significant bit
command
instruction to a SpaceWire node (target) to perform some action
For example, write data to memory.
command packet
packet that contains a command
confirmation
primitive passed from a service provider to a service user to indicate the success or otherwise of a previous service request
data character
SpaceWire symbol containing 8-bits of user information
Error End of Packet marker (EEP)
control character indicating that the Packet was terminated prematurely
End of Packet marker (EOP)
control character indicating the end of a packet
extender protocol identifier
two data characters following a protocol identifier which has value 0x00 that identify a particular protocol being used for communication
indication
primitive passed from a service provider to a service user to provide information or status to the service user
initiator
SpaceWire node that starts a transaction by sending a command to a SpaceWire node
initiator user application
application in an initiator that is using the SpaceWire protocol services
logical address
identifier of a initiator or target which can be used to route a Packet to the target or, if path addressing is being used, to confirm that the final target is the correct one i.e. that the logical address of the target matches the logical address in the packet
memory
addressable storage element including random access memory, registers, FIFO, mailboxes
packet
SpaceWire packet
path address
sequence of one or more SpaceWire data characters that defines the route to a target by specifying, for each router encountered on the way to the target, the output port that a Packet is forwarded through
protocol identifier
data character that identifies a particular protocol being used for communication
reply
response sent by a target to the initiator or some other node expecting the reply to provide the required information or to indicate that some commanded action has been completed by the target
reply packet
packet containing a reply
request
primitive passed from a service user to a service provider to request a service
response
primitive passed from a service user to a service provider in response to an indication from the service provider
target
SpaceWire node that responds to a command sent by an initiator
target user application
application in a target that is using the SpaceWire protocol services
transaction
interaction between an initiator and a target
word
multiple bytes held in a single memory location
Abbreviated terms
The following abbreviations are defined and used within this standard:
|
Abbreviation
|
Meaning
|
|
CCSDS
|
Consultative Committee for Space Data Systems
|
|
EEP
|
error end of packet
|
|
EOP
|
end of packet
|
|
FIFO
|
first in first out
|
|
ID
|
identifier
|
|
RMAP
|
remote memory access protocol
|
|
VHSIC
|
very high speed integrated circuit
|
Conventions
In this document hexadecimal numbers are written with the prefix 0x, for example 0x34 and 0xDF15.
Binary numbers are written with the prefix 0b, for example 0b01001100 and 0b01.
Decimal numbers have no prefix.
Principles
To distinguish between the various protocols that can be used in conjunction with the SpaceWire protocol defined in ECSS-E-ST-50-12, a protocol identifier is used. This standard specifies such a protocol identifier. The protocols that operate over SpaceWire are then specified in the ECSS-E-ST-50-5x series of standards.
Examples of these protocols are:
Remote Memory Access Protocol (RMAP)
The aim of RMAP is to support reading from and writing to memory in a remote SpaceWire node. RMAP can be used to configure a SpaceWire network, control SpaceWire nodes, and to transfer data to and from SpaceWire nodes. RMAP is specified in ECSS-E-ST-50-52.
CCSDS Packet Transfer Protocol
The aim of the CCSDS Packet Transfer Protocol is to transfer CCSDS Packets across a SpaceWire network. It does this by encapsulating the CCSDS Packet in a SpaceWire packet, transferring it across the SpaceWire network and then extracting the CCSDS Packet at the target. The CCSDS Packet Transfer Protocol is specified in ECSS-E-ST-50-53.
Requirements
Overview
The protocol identification scheme enables many different protocols to operate concurrently over a SpaceWire network without them interfering with each other. To achieve this, an identifier is given to each protocol. Nodes receiving packets process and respond to them according to the protocol specified by the Protocol Identifier in the packet. If a packet arrives with a particular Protocol Identifier that is not supported by a node then it is ignored.
Protocol identification
Addressing
A packet containing a Protocol Identifier shall start with a single byte logical address when it arrives at the target.
- 1 See Figure 51.
- 2 When sent by the initiator the packet can have one or more leading path or logical address bytes which are stripped off (SpaceWire Address) on the way through the SpaceWire network leaving the single logical address byte when it arrives at the target.
The logical address 254 (0xFE) shall be used as a default value when the target does not have another value specified for its logical address.
When the initiator does not know the logical address of the target the default logical address 254 (0xFE) can be used.
A target may choose to ignore packets with logical address 254 (0xFE).
If a packet with a logical address is ignored then the target can record and make available a count of the number of packets it received and ignored with logical address 254 (0xFE).
A target may accept packets with one or more different logical address values.
For example, a node accepting packets with logical addresses 60, 61 or 254.
Protocol Identifier
A Protocol Identifier shall comprise a single byte immediately following the logical address.
See Figure 51.
A value of zero shall be used to identify an Extended Protocol Identifier.
The value of zero in the Protocol Identifier byte is reserved for extension of the Protocol Identifier, as specified in clause 5.2.3.
A Protocol Identifier with a value of 255 (0xFF) shall not be used.
It is reserved for future use.
Figure 51: Protocol Identifier position
Extended Protocol Identifier
If an Extended Protocol Identifier is supported, the following shall apply:
- Protocol Identifier has the value zero (0x00).
- The two bytes following the reserved Protocol Identifier (zero) form a 16-bit Extended Protocol Identifier.
- 1 This allows up to 65535 protocols to be carried over a SpaceWire network.
- 2 An Extended Protocol Identifier need not be implemented.
- 3 See Figure 52.
If an Extended Protocol Identifier is not supported, then a packet with a Protocol Identifier with the value zero (reserved Protocol Identifier) shall be discarded when received.
If a target ignores the Extended Protocol Identifier then it can record and make available a count of the number of packets it received with an Extended Protocol Identifier.
Extended Protocol Identifiers with values in the range 0x0000 to 0x00FF are reserved and shall not be used.
A packet with an Extended Protocol Identifier with a value in the range 0x0000 to 0x00FF shall be discarded when received.
These values are reserved for future use.
Figure 52: Extended Protocol Identifier
Ignoring unknown protocols
If a packet arrives with a Protocol Identifier or Extended Protocol Identifier that is not supported (unknown) by that target then the packet shall be discarded.
The target can count the number of packets that arrive at a target with unknown Protocol Identifier or Extended Protocol Identifier can be kept and made available by the target.
Protocol Identifier and Extended Protocol Identifier Allocation
Protocol Identifiers in the range 1 to 239 (0x01 to 0xEF) that shall be used are those listed in Table 51.
- 1 The identifiers in Table 51 have been assigned by the SpaceWire working group. The protocols starting at number 1 and working upwards as defined in this standard document define the current set of approved SpaceWire protocols and their Protocol Identifiers. The protocols starting at 239 and working downwards are legacy protocols and are not covered by this standard document.
- 2 The reader is advised to consult the SpaceWire website (http://www.spacewire.esa.int) for the latest Table defining the Protocol Identifiers and Extended Protocol Identifier allocation.
Protocol Identifiers in the range 240 to 254 (0xF0 to 0xFE) shall be assigned by the project. - 1 Developers can use these Protocol Identifiers but it is important to note that they can clash with protocols being developed by other users. Concurrent operation of different protocols is only assured for Protocol Identifiers in the range 1 to 239 (0x01 to 0xEF).
- 2 Proven protocols can be recommended for adoption by the SpaceWire working group and then be included in future revisions or extensions to this SpaceWire Protocols standard. Once adopted they are given a unique Protocol Identifier in the range 1 to 239.
- 3 No Extended Protocol Identifiers have been allocated.
Table 51: Protocol identifier allocation
|
Protocol Identifier
|
Protocol
|
Specified in
|
|
0
|
Extended Protocol Identifier
|
Clause 5
|
|
1
|
Remote Memory Access Protocol
|
ECSS-E-ST-50-52
|
|
2
|
CCSDS Packet Transfer Protocol
|
ECSS-E-ST-50-53
|
|
238
|
GOES-R Reliable Data Delivery Protocol
|
417-R-RTP-0050 Version 2.1, 16 January 2008
|
|
239
|
Serial Transfer Universal Protocol
|
SMCS-ASTD-PS-001 Issue 1.1, 24 July 2009
|
Bibliography
|
ECSS-ST-S-00
|
ECSS system - Description, implementation and general requirements
|
|
http://www.spacewire.esa.int
|
SpaceWire website
|