All fields are shown in bits. The variable length application data field must be an integral number of bytes for the packet error control calculation. Spare bits may be used for padding purposes at the end to ensure the packets are an even number of bytes in length.
Note: The definition of a CCSDS space packet says the maximum size of a packet can be 65542 bytes, 6 bytes for the primary header plus 65536 bytes of packet data. It also says that the maximum packet length can be less than this if desired. For JAS we have chosen to have a maximum packet length of 65536 bytes.
The only PUS field that JAS isn’t using is the packet sub-counter. The packet sub-counter is used to tell if a packet of a specific type and subtype is missing. The transaction identifier can fulfill this function so the packet sub-counter isn’t necessary.
For telemetry packets the packet fields will be used as follows:
- Version Number – Set to 000 which is the default PUS version. This field replaces the CCSDS packet version.
- Packet Type – Set to 0 meaning this is a telemetry packet.
- Data Field Header Flag – Set to 1 as PUS packets use a data field header.
- Source Application Process ID – referred to as the SAPID for telemetry packets. This is the source application identifier for the packet.
- Sequence Flags – Used if a sequence of packets is sent as part of a single telemetry message, an example would be sending a data large data file that spans multiple packets. The packet sequence counter is used in combination with the sequence flags to ensure the telemetry message is reassembled in order. If the telemetry message data fits within a single packet, the packet is a stand-alone packet. The interpretation of sequence flags shall be:
- 01 means first packet of a sequence of packets;
- 00 means continuation packet;
- 10 means last packet of a sequence of packets;
- 11 means “stand-alone” packet.
- Sequence Count – Used by the JAS Packet Service to ensure that data that is segmented into more than one packet can be received and reassembled in order. There is one sequence counter for each JAS Packet Service (i.e. each packet generator) and it will increment each time a packet is generated. Once initialized, the counter should continue to count up. It should never reset. The counter wraps around from 214-1 to zero. This field was redefined from the original CCSDS/PUS specification.
- Packet Length – Number of bytes in the packet data field, which includes the packet secondary header, time, packet data and error control bytes, minus 1. The maximum length of a JAS telemetry packet is 65536 bytes; 6 bytes are required for packet primary header, 6 bytes are required for the secondary header, 7 bytes are required for time, up to 65515 bytes for the packet data and 2 bytes are required for the error control.
Note: By CCSDS definition there must be at least one byte in the packet data field portion of a CCSDS packet which in the case of JAS would be the packet secondary header and error control fields which are required on every JAS packet.
- Spare – To maintain symmetry with the command packet data field header, this bit is set to zero.
- JAS Version Number – Set to the current JAS packet version. This field replaces the PUS packet version number.
- Service Type – One of the PUS standard, JAS standard, or project-specific packet service types (see section on JAS Packet Services).
- Service Subtype – One of the PUS standard, JAS standard, or project-specific packet service subtypes (see section on JAS Packet Services).
- Destination Application Process ID – referred to as the DAPID for telemetry packets. This is the destination application identifier for the packet.
- Transaction ID – Referred to as the TID. Used by applications to provide a unique identifier for telemetry messages (i.e. transactions) or used to respond to commands in a request/response situation. A single transaction can be partitioned into multiple JAS packets, each with a different sequence counter value. The transaction identifier will be the same for all of the packets in that transaction. The JAS Packet Service uses the sequence counter to process at the packet level and applications use the transaction identifier to process at the telemetry message level. The exact definition and use of the transaction identifier will be defined by the service types and subtypes that use it (see section on JAS Packet Sequencing for a more detailed description). If the transaction identifier is not used it can be set to zero.
- Time – Defines the time that the telemetry packet was created. Based on the Level 1 CCSDS Unsegmented Time Code (CUC) which has 4 bytes of coarse time, seconds referenced to International Atomic Time (TAI) epoch of 1958 January 1, and 3 bytes of sub-second fine time with a resolution of 2-24 seconds (about 60ns). Since payloads may use different time management and reporting strategies, this field can be redefined by the project if requirement. If a project redefines the time strategy they should fully document how time is distributed, managed, reported, and the epoch with which it is referenced.
- Application Data – The data element of the service request (see section on JAS Packet Services). This must be an integral number of bytes in length.
- Packet Error Control – CRC word (see section on JAS Packet Error Control). This is calculated over the entire packet.
"Internal Standards developed by Sandia National Laboratories". Experience Base, Sandia National Laboratories, Albuquerque, NM, 0000.