MX Foundation 4
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG Struct Reference

ASCB Major Frame Message Structure. More...

#include <mxf_class_ascb.h>

Data Fields

HMXF_BUFFER buffer
 
uint32 busSelect
 
uint32 address
 
uint32 type
 
uint32 totalBusTime
 

Detailed Description

An ASCB major frame is composed of eight frames. Each frame starts with a frame start sequence. In MX Foundation, the major frame is an assembly of major frame records, which are instances of the ASCB major frame structure described below. Each record describes a message slot in the frame. Each allocated message slot has a total bus time that must encompass the BC message, the user response (when applicable) and the required time gap before the next message slot.

Examples:
ascb_bc.c.

Field Documentation

MXF_ASCB_TXPERIODIC_MJRFRAME_MSG::buffer

Specifies the buffer to use for data or error injection for this message.

Examples:
ascb_bc.c.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG::busSelect

This is a bit field that enables the caller to specify which of the ports are used in transmission (can be ‘ored’ together).

The bits are defined as follows:

Bit constant Description
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_BUS_P1 Transmit on Primary bus 1
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_BUS_B1 Transmit on Backup bus 1
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_BUS_P2 Transmit on Primary bus 2
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_BUS_B2 Transmit on Backup bus 2
Examples:
ascb_bc.c.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG::address

Request address (0x80-0xFF).

Examples:
ascb_bc.c.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG::type

The value of type enables the caller to specify the message slot type.

The follows types are supported:

Bit constant Description
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_FRAME_START Sets a frame start sequence in transmission. Data size = 3.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_FRAME_CTRL Sets a Frame control sequence in transmission for ASCB version B and C. Data size = 4.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_FRAME_CTRL_A Sets a Frame control sequence in transmission for ASCB version A. Data size = 5.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_USER_REQ Sets a user request in transmission. Data size = 3.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_C1_STATUS_TX Sets a BCSTAT-C1 message in transmission. Data size = 12.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_C2_STATUS_TX Sets a BCSTAT-C2 message in transmission. Data size = 16.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_C1_STATUS_RX Sets a BCSTAT-C1 message in receive, which has the same effect as setting a variable pad.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_C2_STATUS_RX Sets a BCSTAT-C2 message in receive, which has the same effect as setting a variable pad.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_XFER_TX Sets an XFER CONTROL message in transmit. It is normally used in ASCB Version A to share control between EFIS and AFCS.Data size = 3.
Note: The Minor Frame continues after the XFER CONTROL and executes the commands, so the user should not put anything else than a pad to fill up the remaining time of the Minor Frame.
Note: Do not use a TX XFER CONTROL with a RX XFER CONTROL on the same module. Doing so will lead to incorrect behavior of the Major Frame. To simulate a transfer of control with one module, use a normal User Request and a Pad.
Note: Be careful when using this feature because an incorrectly programmed Major Frame can lead to unknown behavior.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_XFER_RX Sets an XFER CONTROL message in receive. It is normally used in ASCB Version A to share control between EFIS and AFCS. The Bus Controller will wait on this XFER CONTROL until it sees the address (address field) on the bus (busSelect field), then it will perform the remaining of the Minor Frame.
Note: The XFER CONTROL should be the first command of the Minor Frame to make it wait until the other Bus Controller transfers it the control. The time it takes to perform the Minor Frame should not be greater than the time remaining before the start of the Minor Frame of the other Bus Controller.
Note: The totalBusTime field can be used to specify a delay between the reception of the control and the time it starts performing the Minor Frame. This is useful to get a fixed rate for the Minor Frame. This time should be 150 us or more to be precise with a 5 us precision.
Note: Do not use a TX XFER CONTROL with a RX XFER CONTROL on the same module. Doing so will lead to incorrect behavior of the Major Frame. To simulate a transfer of control with one module, use a normal User Request and a Pad.
Note: Be careful when using this feature because an incorrectly programmed Major Frame can lead to unknown behavior.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_PAD_FIXED Sets a “fixed” pad, or idle time, in receive.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG_TYPE_PAD_VARIABLE Sets a “variable” pad, or idle time, in receive. The pad obtained is variable because it tends to absorb any accumulated delay in the transmission. Adding a variable pad helps ensure that the following message slot will not be delayed.
Examples:
ascb_bc.c.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG::totalBusTime

Fixed duration allocated to the message slot (1 μsec resolution). It is an absolute time expressed on the timebase set for the device. It must encompass the BC transmission, the user response (when applicable) and the required pad time before the next message slot. The total bus time is normally set to the value specified by the ASCB application timing table.

Examples:
ascb_bc.c.
Updated 10/23/2023