MX Foundation 4
|
ASCB Major Frame Message Structure. More...
#include <mxf_class_ascb.h>
Data Fields | |
HMXF_BUFFER | buffer |
uint32 | busSelect |
uint32 | address |
uint32 | type |
uint32 | totalBusTime |
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.
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG::buffer |
Specifies the buffer to use for data or error injection for this message.
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 |
MXF_ASCB_TXPERIODIC_MJRFRAME_MSG::address |
Request address (0x80-0xFF).
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. |
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.