Encode ARINC 429 Words for Send block

Simulink^{®} Real-Time™ Library for Arinc-429

The output port of an Encode block is a signal of type double. Because the Encode block encodes the data on this port in a nonstandard way, you must send this data to one of the following:

Condor CEI-520A Send, Condor (GE-IP) RCEI-530 Send, and Condor (GE-IP) RCEI-830A Send blocks — The ARINC Send block accepts data as a double.

MUX block — The MUX block does not interpret the data. After the MUX block, you can send it to an ARINC Send block.

**Label**Enter a three digit octal number as the label. The label field of each ARINC word sent over the output port will contain this value.

**Data type vector**Enter a vector consisting of values between 0 and 3. These values specify the data type. The length of this vector determines the widths of both the input and output ports. The data type determines how the input double value is converted to a corresponding ARINC value, as follows

Type

Interpretation

`0`

Raw — Cast the input to an unsigned 32-bit integer and output it as an ARINC word without further processing.

`1`

BNR (two's complement binary notation) — Scale the input by dividing it by the scale vector in the

**Resolution (BCD) or Scale (BNR) vector**parameter. This input value is restricted to the range`[-Scale, Scale]`

, resulting in a scaled value in the range`[-1,1]`

.The driver performs the following on the scaled value:

Multiplies the scaled value by 2^18.

Truncates the value to a 19-bit fixed-point integer, then masks it to the number of high-order bits specified by the

**Bits to send**parameter.Shifts the result up 10 bits and inserts them into the 32-bit integer along with the

**SSM**,**SDI**, and**Label**parameter values.

To place discrete bits into unused positions, construct the 32-bit word and use it with RAW mode instead of the BNR mode.

`2`

BCD (binary coded decimal) — Cast the input as a signed integer, limit it to the range representable by an ARINC five-character BCD value, and pack it into an ARINC word. and set the required

**SSM**,**SDI**, and**Label**parameter values.`3`

Discretes —- Cast the input as an unsigned 32-bit integer, pack the low order 19 bits of the result into an ARINC word, and set the required

**SSM**,**SDI**, and**Label**parameters.**Resolution (BCD) or Scale (BNR) vector**Enter a vector or scalar value as the resolution vector. This value must be a vector of the same length as the

**data type vector**. Otherwise, the scalar value is applied to the length of the**data type vector**. The interpretation of this value depends on the data type. The block works with the data types as follows.Type

Effect

`Raw`

The block ignores the resolution value. However, you must still include an associated value in the resolution vector.

`BNR`

The block uses this value as a scale factor. The block divides the input value by the scale. Doing so limits the valid input range to

`[-Scale, Scale]`

. Values outside that range will be limited to`±Scale`

.A 19-bit signed ARINC binary can represent a range from -262,144 to 262,143. If the combination of input signal and resolution produces a value outside this range, the block keeps it within the range.

`BCD`

The resolution vector specifies, in the same units as the input signal, the value of the least significant digit of the BCD data field to be encoded and sent. For example, if the associated resolution is

`.01`

and the input signal contains the value`3.1415`

, the output ARINC word will contain the number`314`

in its data field, encoded in BCD. Use the same resolution on the receive side to reconstruct 3.14. Resolution is typically a power of 10, but this is not a restriction.The range representable as an ARINC BCD value is -79,999 to 79,999. If the combination of input signal and resolution produces a value outside this range, the block limits it to be within the range.

`Discretes`

The block ignores the resolution value. However, you must still include an associated value in the resolution vector.

**Bits to send (BNR)**Specifies the number of high order bits of the 19-bit scaled input to keep when the value is inserted into the encoded word. The block uses this value for a BNR format input; other formats ignore it. You must include a place in the array of Bits values for each entry in the data type vector array; however, the block uses the value only for BNR.

**SDI vector**Enter a vector or scalar value as the SDI vector. This must be a vector of the same length as the

**data type vector**. Otherwise, the scalar value is applied to the length of the**data type vector**.This block interprets the

**SDI vector**values as follows:Type

Effect

`Raw`

The block ignores the SDI value. However, you must still include an associated value in the resolution vector.

`BNR, BCD, Discretes`

If the SDI element is in the range

`0`

to`3`

, the block sets the SDI field of the corresponding output word to that value. If an SDI element has a value of`-1`

, the block does not perform SDI processing on the corresponding output word.**SSM vector**Enter a vector or scalar value as the SSM vector. This vector must be a vector of the same length as the

**data type vector**. Otherwise, the scalar value is applied to the length of the**data type vector**.If the SSM element is in the range

`0`

to`3`

, the block sets the SSM field of the corresponding output word to that value. If an SSM element has a value of`-1`

, the block does not perform SSM processing on the corresponding output word. The meaning of a given SSM value differs depending on the data type of the ARINC word.Type

Effect

`Raw`

The block ignores the SSM value. However, you must still include an associated value in the resolution vector.

`BNR, BCD, Discretes`

If the SSM element is in the range

`0`

to`3`

, the block sets the SSM field of the corresponding output word to that value. If an SSM element has a value of`-1`

, the block does not perform SSM processing on the corresponding output word.

Was this topic helpful?