~~ODT~~
Reserved for future use.
MIL-STD-1553 Data, Format 1 packets are used to record the MIL-STD-1553 message transactions on a bus. In general, the 1553 data packet will contain multiple 1553 messages.
The layout of the CSDW is shown below. The uMsgCnt field indicates the number of messages contained in the data packet. The uTTB field indicates the 1553 message bit to which the time tag corresponds.
struct Su1553F1_ChanSpec { uint32_t uMsgCnt : 24; // Message count uint32_t Reserved : 6; uint32_t uTTB : 2; // Time tag bits };
The individual 1553 messages follow the CSDW. Each 1553 message has an intra-packet time stamp, an intra-packet header data word, and then the actual 1553 message. The layout of the message header is shown below. The suIntPktTime field is an 8-byte value. The specific interpretation of this field is determined by packet header flags. This time is interpreted as a RTC value as depicted in Figure 6-5 if Secondary Headers are not enabled by Packet Flags, Bit 6. If Secondary Headers are enabled, then the format of the intra-packet time stamp is the same as the secondary header, determined by Packet Flags, Bits 2 and 3. These formats are depicted in Figure 6-6 and Figure 6-7. Various bit flags and values are found in the intra-packet data header.
// Intra-message header struct Su1553F1_Header { uint64_t suIntPktTime; // Reference time uint16_t Reserved1 : 3; // Reserved uint16_t bWordError : 1; uint16_t bSyncError : 1; uint16_t bWordCntError : 1; uint16_t Reserved2 : 3; uint16_t bRespTimeout : 1; uint16_t bFormatError : 1; uint16_t bRT2RT : 1; uint16_t bMsgError : 1; uint16_t iBusID : 1; uint16_t Reserved3 : 2; uint8_t uGapTime1; uint8_t uGapTime2; uint16_t uMsgLen; };
The amount of data that follows the intra-packet header is variable. The data length in bytes is given in the uMsgLen field, and is necessary to determine the amount of additional data to read to complete the message.
The layout and order of 1553 Command Word(s), Status Word(s), and Data Word(s) in the recorded 1553 message is not fixed but rather is the same is it would be found “on the wire.” It's not therefore possible to define a fixed data structure representation for the message data. The first word in the data will always be a Command Word, but it will be necessary to use the Command Word as well as the bRT2RT flag to determine the offsets of the other message structures such as the Status and Data Word(s). The layouts of the various types of 1553 messages are shown in the figures below.
When calculating data word count, be careful to take Mode Codes and word count wrap around into account. An algorithm to determine the number of data words in a message is shown in C-like pseudo-code below. This algorithm only works for a message with no errors. Otherwise, Block Status Word bits and the Length Word are used to determine data and status words actually present.
// Mode Code case if (Subaddress = 0x0000) or (Subaddress = 0x001f) if (WordCount & 0x0010) DataWordCount = 1 else DataWordCount = 0 // Non-Mode Code case else if (WordCount = 0) DataWordCount = 32 else DataWordCount = WordCount
MIL-STD-1553, Format 2 packets are used to record data from the 16PP194 data bus. The 16PP194 data bus is used as the F-16 weapons multiplex bus. It is defined in document 16PP362A Weapons MUX (WMUX) Protocol. A 16PP194 transaction consists of six 32-bit words consisting of a 16PP194
Command, Command Echo, Response, GO/NOGO, GO/NOGO Echo and Status as illustrated below. Multiple transactions may be encoded into the data portion of a single packet.
The layout of the CSDW is show below. The 16PP194 packet can contain multiple bus transactions. The uMsgCnt field indicates the number of 16PP194 messages in the packet.
struct Su1553F2_ChanSpec { uint32_t uMsgCnt; // Message count };
The 16PP194 message word is 26 bits in length and consists of 16 data bits, four address bits, four sub-address bits, a parity bit, and a sync bit. Only the 24 bits of data, address, and sub-address values are mapped into the 16PP194 recorded data word. Sync and parity bits are not recorded. The mapping of these bits is shown below.
The layout of the recorded 16PP194 word is shown in below. The uDataWord field contains the message data. The uRiuSubAddr field is the Remote Interface Unit (RIU) sub-address. The uRiuAddr field is the RIU address. The bParityError flag indicates a parity error occurred during reception of the message. The bWordError flag indicates a Manchester decoding error occurred during reception of the message. The uGap field indicates the general range of gap time. The mapping of uGap values to gap time ranges can be found in the Chapter 10 standard. The uBusID field indicates the bus on which the message occurred. Bus identification can be found in the Chapter 10 standard.
struct SuSu16PP194_Word { uint32_t uDataWord; : 16; // Data word contents uint32_t uRiuSubAddr : 4; // Parity error flag uint32_t uRiuAddr : 4; // Parity error flag uint32_t bParityError : 1; // Parity error flag uint32_t bWordError : 1; // Manchester error flag uint32_t uGap : 3; // Gap time indicator uint32_t uBusID : 3; // Bus ID indicator };
The layout of a complete 16PP194 transaction is shown below.
struct Su16PP194_Transaction { struct Su16PP194_Word suCommand; struct Su16PP194_Word suResponse; struct Su16PP194_Word suCommandEcho; struct Su16PP194_Word suNoGo; struct Su16PP194_Word suNoGoEcho; struct Su16PP194_Word suStatus; };
Reserved for future use.