# ARINC429 - Encoding and Decoding of BINARY DATA

In ARINC429 protocol, how to encode and decode FAN DISCHARGE STATIC PRESSURE (LABEL - 127).

Range is 1.5 to 30.0

No of Sig. Bits - 11

Resolution is 0.016

What should be the value to be loaded into the word if my pressure value is 1.5 PSIA ?

As per my calculation, value need to be loaded = 1.5/0.016 = 93.75 which is a fractional value that cannot be loaded. So the value need to be scaled by some value.

Total no of data bits = 19 (including sign bit) No of bits for representing value = 18 No of Significant bits are 11

Value need to be shifted by (18-11) which is equal to 7 bits => Max value = 128. So scaling factor will be 127 now.

Value before scaling = 93.75

Value after scaling = (93.75 x 128) = 12,000

Value to be loaded (bits-28 to 11) = 00 0010 1110 1110 0000b

But at the decoding side, the value will be decoded as 00 0010 1110 1b (i.e., Only 11 bits of data will be considered for decoding, and rest of the bits will be padding bits).

Decoded value = 00 0010 1110 1b = 93

Decoded Pressure value in PSIA = 93 x 0.016 = 1.488.

Please let me know, encoding and decoding is correct or not ?

Is it OK to take approximate value instead of actual value after decoding ?

What is the use of padding bits. Lets say in this example, i am using only 11 bits for representing a value due to which fractional part is getting discarded. So can i use these padding bits to represent fractional value ? In that case, How the value gets decoded ?

Going off of the resolution, it looks to me like the actual label range would be 0-32.0, which with 11 significant bits gives an LSB of $$\frac{32}{2048} = \frac{1}{64} = 0.015625$$.
$$1.5 * 64 = 96$$