ARINC Data Encoding Assignment With Solution
ARINC Data Encoding Assignment With Solution
Information for the encoding / decoding of ARINC 429 data can be found in the following reference document:
ARINC SPECIFICATION 429 PART 1-17 published 2004/05/17
Part 1 - Attachment 1-1 LABEL CODES
Part 1 - Attachment 1-2 Equipment ID
Part 1 - Attachment 2 Table 2 BNR DATA
Part 1 - Attachment 6 Table 6-27 Encoding examples
The following data may be transmitted on an ARINC line in accordance with the ARINC 429 standard (refer to Part 1
Attachment 1-1 and Attachment 1-2).
1. Question 1:
Based on the information from Attachment 2 – Table 2, what is the format specification applicable to each parameter. Label
076 is provided as an example.
Note: Beware that 0.0055 and 0.000172 listed in the ARINC specification are approximations, not good enough for accurate
calculations. When using 0.000172 the error at full scale is > 2000 bits.
Notes:
a. For unsigned parameters the Range indicated in Table 2 is indicated without prefix, and the sign bit (bit 29) is
always 0. For signed parameters, the Range is prefixed with ± and the sign bit (bit 29) is set to 1 for negative values.
b. The number of significant bits is specified under “Sig Bits” in Attachment 2 - Table 2. In accordance with ARINC 429
convention, the sign bit (bit 29) is not counted. When the number of significant bits exceed 18 (as in the case of
Label 076, 110 and 111), the data field extends into the SDI field over bits 10 and 9.
c. Refer to Attachment 6 Table 6-27 for examples of binary encoding:
i. The number of significant bits N is listed in Attachment 2 -Table 2. The sign bit (bit 29) is not counted in
the significant bits.
𝑅𝑎𝑛𝑔𝑒
ii. Weight assigned to the most significant bit (bit 28): 𝑤1 =
2
𝑅𝑎𝑛𝑔𝑒
Weight assigned to the mth significant bit (bit 29 - m): 𝑤𝑚 =
2𝑚
𝑅𝑎𝑛𝑔𝑒
Resolution (weight of the least significant bit): 𝑤𝑁 =
2𝑁
𝑅𝑎𝑛𝑔𝑒 𝑅𝑎𝑛𝑔𝑒
Largest positive value represented: 𝑉𝑀𝑎𝑥 = ∗ (2𝑁 − 1) = 𝑅𝑎𝑛𝑔𝑒 −
2𝑁 2𝑁
Note that the full positive range cannot be represented, the largest positive value 𝑉𝑀𝑎𝑥 that can be
represented is always smaller than 𝑅𝑎𝑛𝑔𝑒 by 1 LSB.
for negative signed parameters, the sign bit is set to 1 and assigned a weight of (−𝑅𝑎𝑛𝑔𝑒). The value of the
significant bits is still counted positive as above. Thus, the range of negative value that can be represented is from
(−𝑅𝑎𝑛𝑔𝑒) when the sign bit is set to 1 and all other bits are 0
to
−𝑅𝑎𝑛𝑔𝑒
( = −1 𝐿𝑆𝐵) when all the bits are set to 1.
2𝑁
The example below shows the encoding of label 103 (Selected Airspeed) for 268 Kt.
This label is unsigned so the sign bit (bit 29) is 0
The specified range is 512 Kt. The bits in the data field are given by the coefficients of the successive power of 2 as
shown below:
512 512 512 512 512 512 512 512 512 512 512
268 = 1 ∗ +0∗ +0∗ +0∗ +0∗ +1∗ +1∗ +0∗ +0∗ +0∗ +0∗
2 4 8 16 32 64 128 256 512 1024 4096
d. The resolution indicated in Table 2 is truncated and must not be used for exact calculations. For example, the
resolution indicated in Table 2 for the GNSS Track Angle (label 103) is 0.0055°, but the correct value is
𝑅𝑎𝑛𝑔𝑒 180
= = 0.0054931640625.
215 32768
This truncation would cause an error of 0.225° at full scale! For conversions between engineering units and binary
values always use the exact value derived from the Range and the number of significant bits as indicated in (c. ii.)
above.
e. Warning: For GNSS Track Angle (label 103) the correct range value is ±180°. The range indicated in Attachment 2 -
Table 2, is incorrect.
2. Question 2:
Based on the information from Attachment 2 – Table 2, what is the value of the sign bit and data fields (in binary,
decimal or hexadecimal format) corresponding to the engineering values in the following table:
To convert an engineering value to ARINC binary value
• Convert the engineering value to the specified ARINC units.
• Divide the value in ARINC units by the Range and multiply by 2N, where N is the number of significant bits
specified by ARINC.
• Round the result to the lower integer value, this yields an integer number A.
• If the input value is positive:
o set the sign bit (bit 29) to 0.
o The binary value encoded in the data field is A, aligned to the LSB position obtained in question 1.
• If the result is negative:
o set bit 29 to 1.
o The binary value encoded in the data field is the two’s complement of A, aligned to the LSB position
obtained in question 1. The two’s complement of A is 2N – A. For more details on 2’s complement
representation refer to https://en.wikipedia.org/wiki/Two%27s_complement.
• Note 1: it is sometimes convenient to compute the binary value aligned to bit 9: In this case the data consists
of 5 groups of 4 bits, and each group can be represented by its hexadecimal value. For this, multiply the
encoded value by 2(20-N) where N is the number of significant bits specified by ARINC.
• Note 2: the above calculation must be done with an accuracy consistent with the ARINC resolution, so that the
encoding error is < 1 LSB. Beware of truncation and rounding errors when computing the resolution.