Documentation Home Page ◇ RT-LAB Home Page
Pour la documentation en FRANÇAIS, utilisez l'outil de traduction de votre navigateur Chrome, Edge ou Safari. Voir un exemple.
Abaco ARINC429
Section Content
Page Content
Description
This document explains how to use the Data Interchange Layer (DIL) system to instantiate an ARINC-429 driver to communicate with other ARINC-429 capable equipment.
The ARINC-429 Specification, also known as Mark 33 Digital Information Transfer System (DITS) Specification, defines the standard requirements for the transfer of digital data between avionics systems on commercial aircraft.
This allows for cross-manufacturer interoperability between Line Replacement Units (LRUs). The bus is composed of a single transmitter connected to up to 20 receivers on one twisted wire pair.
Data can be transmitted in one direction only; due to this point-to-point wiring, two separate buses are needed to achieve bi-directional communication. Great flexibility can be achieved with each LRU containing multiple transmitters and receivers each making use of different buses in either 'bus-drop' or 'star' topologies.
Supported Features
- Multiple board configuration is supported.
- The number of active channels is configurable.
- The baud rate of each channel is configurable independently.
- Internal and IRIG-B synchronization sources are supported.
- Message transmission can be enabled/disabled dynamically (cyclical transmitted messages are also supported).
- Raw-data or field definition (Label, SSM, SDI, Parity) available on transmission and reception.
- Field-specific (Label, SSM, SDI) filtering on reception messages.
- Two error injection modes per channel.
- BNR, BCD, Discrete data types supported.
- Different signal types can be packaged on a single message.
- Signals are configurable with 1-bit granularity precision.
- A gain and an offset can be applied to each signal within a message both in transmission and reception.
- Status information for each channel can be monitored independently.
- Reception intervals can be monitored on reception messages and set timeout triggering is available.
- The timestamp of each received message can be monitored.
- Python scripted configuration file creation is available.
- Configuration creation, modification and importing fully supported in GUI.
The driver is entirely configurable via the RT-LAB interface. Users can select the ARINC-429 board type to add, delete and duplicate channels, messages, and signals in order to quickly obtain the desired configuration.
General Configuration
The first parameters to be configured are found below:
- Verbose: If set to true, the entire configuration is displayed during the loading of the model.
- Reverse gain/offset computation: If selected, the gain and offset computation will be reversed. This behavior is detailed in the section below and it corresponds to implementations found in older RT-LAB versions.
Gain and Offset Specification
The way the gain and offset are applied is shown in the blue boxes. The OpOutput and OpInput (Transmission, Reception) represent the standard data points coming from and going to the model.
The ARINC429 subsystems (Tx and Rx Channels) are a representation of the real ARINC 429 network.
Reverse gain/offset computation option disabled
If Reverse gain/offset computation option is disabled, the operations are as follows.
Reverse gain/offset computation option enabled
If Reverse gain/offset computation option is enabled the operations are as follows.
Board Configuration
- Card type: Used to determine the number of channels available to configure.
- Device ID: ARINC-429 system-wide board identifier. May vary depending on the platform where the card is installed, i.e., Windows/Linux.
- Clock type: Synchronization source to be selected (Internal or IRIG-B).
Channel Configuration
The initial number of channels available in the configuration pane is determined by the card type that is selected. Regardless of the card type, channels can always be added or removed from the current configuration as required.
- Channel number: Allows configuration of the identified channel in the ARINC-429 board. When adding a new channel to the list, its channel number field is set to 0 by default. Make sure to change it to the desired value for your application.
- Baudrate: Supported baud rates go from 12.5Kbps (low-speed) to 100kbps (high-speed) 'Custom' can be selected to specify a value between 12.5 and 100kbps.
- Record channel data: Enables the recording of all information related to the data exchange on the current channel. The recorded data is saved in files with the *.csv format; these files can be found on the host after each execution of the simulation, in the data folder under the project directory. For more information, please check the Recorders' documentation.
- Mode: If manual mode is selected, the start and the stop of the recording need to be done using the API. A simple example of how to use the Python API is shown in the example project under the scripts directory.
- Decimation Factor: The step factor at which the data will be recorded. This factor must be an integer greater than 0.
- Maximum file length (MB): The recording will stop when the logging file reaches this size. The file length is in megabytes (MB).
- Parity: Selects the desired parity for the channel:
- Transmission: Odd/Even/None
- Reception: On/Off
- Enable gap error injection: Reduces the inter-message gap to 3-bit time.
- Inject bit error: Affects the number of bits to be transmitted.
- Low bit error: 31-bit transmission.
- High bit error: 33-bit transmission.
- Enable external transmission: Selects between enabled external transmission and tri-stated output for the board's channel transmitter.
- Internal Loopback: Reception only: true/false. If set to true creates an internal connection from the selected reception channel to its transmission counterpart.
- Merged buffer storage: Reception only: true/false. If set to "true", messages will be stored in the merged buffer that could be shared by multiple channels and can store up to 16384 messages before overflowing. If set to "false", messages will be stored in an individual buffer that can hold up to 2048 messages before overflowing.
Message Configuration
The following parameters are common to any type of message:
- Board: Assign this message to an available board
- Direction: Selects between transmission and reception message types.
- Channel: Assign this message to an available channel on the selected board.
- Label: Label value in octal for the current message.
- Transmission: Set the label value to be transmitted
- Reception: Allows to filter messages at reception based on their label.
- SDI: Source Destination Identifier (SDI) value in binary for the current message.
- Transmission: A fixed SDI value can be configured. If it is set to 'Unused', the SDI bits will be available to be controlled from the payload of the message. This is used in case where a specific application requires more bits than what is defined into the standard.
- Reception: A fixed SDI value will apply a filter to only receive a message with this specific SDI. If it is set to 'Unused', no filter on the SDI will be applied and the message will be received without filtering on a specific SDI value. In this case, a new connection point is available and will provide the SDI value to the model.
- SSM: Status Sign Matrix (SSM) value in binary for the current message.
- Transmission: A fixed SSM value can be configured. If it is set to 'Unused', the SSM bits will be available to be controlled from the payload of the message. This is used in case where a specific application requires more bits than what is defined into the standard.
- Reception: A fixed SSM value will apply a filter to only receive a message with this specific SSM. If it is set to 'Unused', no filter on the SSM will be applied and the message will be received without filtering on a specific SSM value. In this case, a new connection point is available and will provide the SSM value to the model.
- Enable raw data: Creates a 'Raw ARINC Word' connectable, which allows the user to take control of the contents of the 32-bit word outside of the driver. (31 bits when parity is not set as: 'None'/'Off' for that channel).
If a message is to be transmitted, here are the additional parameters to be set:
- Enable dynamic SSM: Allows the user to control the value of the SSM for this message by means of a connectable (i.e. through a model or LabVIEW panel).
- Enable dynamic SDI: Allows the user to control the value of the SDI for this message by means of a connectable (i.e. through a model or LabVIEW panel).
- Enable cyclic transmission: Allows the user to specify a fixed time in milliseconds between consecutive message transmissions.
- Transmit rate (ms): The rate at which the message should be transmitted. Rate is given in milliseconds.
Notes:
- For a payload greater than 20 bits "Unused" needs to be set for at least the SDI or SSM field.
- Permitted values for SSM and SDI are 0 (00), 1 (01), 2 (10) and 3 (11). If a value greater than the acceptable ones is provided through the dynamic SDI/SSM connection points, then the maximum value 3 (11) will be applied.
If a message is to be received, here are the additional parameters to be set:
- Enable label filtering: If set to "true", filtering options will be available for the 'Label' field.
- Enable timeout monitoring: Allows the user to specify a fixed time in milliseconds between consecutive message receptions and flag a timeout if exceeded.
- Buffer count: Sets a reception buffer for messages of this type to allow processing more than one message per time-step.
Signals configuration
Each message contains a list of one or more signals that can be configured as desired.
Each signal has these parameters:
- Name: This parameter uniquely identifies each signal in order for RT-LAB to create a connectable for it in the connection tree.
- Encoding: BNR, BCD and DIS encodings are available.
- Start bit: The start bit of the signal in the ARINC-429 word (for BNR, the sign bit is excluded).
- Size: The number of bits of the signal ranging from 1 to 23.
- Initial value: The initial value of the signal.
- Min: The minimum value the signal can hold. Dependent on the signal type and size in bits.
- Max: The maximum value the signal can hold. Also dependent on the signal type and size in bits.
- Gain: Gain to be applied to the original received or transmitted value.
- Value offset: Offset to be applied to the original received or transmitted value.
The table below lists the signal types that can be inserted in each message:
Encoding | Description | Special considerations |
---|---|---|
BNR | Two's complement fractional binary encoding | |
BCD | Binary Coded Decimals encoding | |
DIS | Discrete signals (1 to 23 bits unsigned) | none |
Each frame can contain up to 32 bits of data, and certain combinations of signal types are not possible:
- Discrete signals can be used to fill in the space left by BNR or BCD signals.
Python API
Alternatively to the Graphical User Interface, an API has been developed to allow the creation of ARINC-429 configuration files that can be loaded to the driver. The API documentation can be found in ARINC-429 Python API documentation.
ARINC-429 Configuration Importer
Clicking on the ARINC429 Importer button brings up the importer wizard. This wizard allows loading a JSON format ARINC-429 configuration file.
Follow the steps below to successfully import a JSON config file:
- Select a configuration file: Browse to the JSON configuration file that you want to load
2. Select JSON file: Select the JSON file you want to import by clicking on the file explorer button. The JSON file name should appear in the text box as shown below. A pop-up window will let you know that the current configuration will be overwritten.
3. Select Finish: Clicking Finish closes the wizard and returns you to the configuration. A pop-up message might appear if errors were found while parsing the JSON file. It is highly advised to fix all errors found before starting the simulation. In the configuration, you should see all of the loaded boards, channels, messages, and signals.
Frame Viewer
The Frame Viewer is a visual representation of the signals in an ARINC-429 word. It is displayed when you select a message item. It a row with 32 columns (given that a word is 32 bits). Each box represents a possible bit position in memory. Clicking a signal item results in a bit or set of bits to be highlighted in the Frame Viewer.
Hovering over the Frame Viewer shows the name of the signal at that position. The Frame Viewer indicates when signals overlap (they share part or all of a memory range). In the figure below: signals 1 and 2 overlap from bits 18 to 14.
The size of the second signal needs to be modified. The figure below shows the Frame Viewer after correcting the previously overlapping bits.
Note: Running a simulation with a configuration containing overlapping signals could lead to incorrect results.
Connections
Once the driver has been configured as desired, the user has to connect points in the model to points in the driver by using the designated RT-LAB GUI. This connection panel shows all the driver's and model's connectable points, once the model has been compiled. It is also possible to make connections to LabVIEW panels.
The driver's connectable points depend on the driver's configuration (number of channels, number of messages in each channel, if a message is to be transmitted or received, etc.).
The following table lists the driver connectable points for channels, transmission messages, and reception messages.
Channel connectable points
Connectable Name | Description | Direction |
---|---|---|
Tx Errors | Number of errors flagged by this particular channel at any moment in time (Valid only for non-cyclic messages) | To model |
Buffer Count | Number of buffered items available in the board's physical buffer for this particular channel (Valid only for non-cyclic messages) | To model |
Buffer Overflow | Overflow flag for this particular channel's buffer (Valid only for non-cyclic messages) | To model |
Reception channel-specific connectable points
Bad Message Count | Counter for badly formed messages received in this particular channel | To model |
Transmission message connectable points
Connectable Name | Description | Direction |
---|---|---|
Enable Message | The transmission of the message is enabled if set to '1' | From model |
Total Sent | The number of messages of this type that have been sent. Only available for non-cyclical messages. | To model |
SSM | SSM value for the message to transmit. Only available if the message is configured with a dynamic SSM. | From model |
SDI | SDI value for the message to transmit. Only available if the message is configured with a dynamic SDI. | From model |
Data
The number and names of signal connectable points of a message to be transmitted depend on the message configuration.
Reception message connectable points:
Connectable Name | Description | Direction |
---|---|---|
Total Received | The number of messages of this type that have been received. | To model |
Timestamp | Message timestamp | To model |
Latency | The time between two consecutive messages of this type | To model |
Message Timeout | Set to '1' if the timeout rate has been exceeded between two consecutive messages of this type | To model |
Data
The number and names of signal connectable points of a message to be received depending on the message configuration.
Limitations
The current version of the ARINC-429 driver has the following limitations:
- Limitations will be listed here as they are found.
OPAL-RT TECHNOLOGIES, Inc. | 1751, rue Richardson, bureau 1060 | Montréal, Québec Canada H3K 1G6 | opal-rt.com | +1 514-935-2323
Follow OPAL-RT: LinkedIn | Facebook | YouTube | X/Twitter