Campbell Scientific FP2 data

The FP2 data format uses 16 bits to represent a variable-precision floating point number. FP2 has a total range of -7999 to 7999 and variable precision of 0.001 to 1. It also has the ability to signal +/– INF and NAN, most commonly used to indicate a computational or measurement error. FP2 range and maximum precision shows the numeric ranges and precision; Bit description describes the bits, and Calculation of finished value provides bit usage in calculating a finished value.

FP2 range and maximum precision

Range Maximum
precision

b15 and b14
bit pattern

–7.999 to 7.999 0.001 11
–79.99 to 79.99 0.01 10
–799.9 to 799.9 0.1 01
–7,999 to 7,999 1 00

 

Bit description

Name Bit Description
Sign (S) 16 (MSB)

Specifies the sign of the value.

0 = positive, 1 = negative.

Exponent (E) 15 and 14 Specifies the magnitude of the negative decimal exponent.
Mantissa (M) 13 to 0 (LSB) Specifies the magnitude of the 13-bit mantissa, 0 to 8191

 

Calculation of finished value

Sign (S) Exponent (E) Mantissa (M) FP2 value equals
0 00 8191 + INF
1 00 8191 – INF
1 00 8190 NAN
0 or 1 00 or 01 or 10 0 to 7999 (–1 ^ S) × (10 ^ –E) × M

When transmitted in a pseudobinary format, the 16 bits are encoded as follows. Bits 16 through 13 are the least significant four bits of the first byte, bits 12 through 7 are the least significant six bits of the second byte, and the last six bits are the least significant bits of the last byte. The following tables are examples of encoding values.

Encoding of 1234

Character 1 = @

Character 2 = S

Character 3 = R

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

0

0

0

0

0

1

0

1

0

0

1

1

0

1

0

1

0

0

1

0

 

Encoding of 1.234

Character 1 = F

Character 2 = S

Character 3 = R

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

1

0

1

0

0

1

0

 

Encoding of 12.34

Character 1 = D Character 2 = S Character 3 = R

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0

 

Encoding of 123.4

Character 1 = B

Character 2 = S

Character 3 = R

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

0

0

1

0

0

1

0

1

0

0

1

1

0

1

0

1

0

0

1

0

 

Encoding of 0.123

Character 1 = F

Character 2 = A

Character 3 = {

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

0

1

1

0

0

1

0

0

0

0

0

1

0

1

1

1

1

0

1

1

 

Encoding of -1234

Character 1 = H

Character 2 = S

Character 3 = R

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

1

0

0

0

0

1

0

1

0

0

1

1

0

1

0

1

0

0

1

0

 

Encoding of -1.234

Character 1 = N

Character 2 = S

Character 3 = R

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

1

1

1

0

0

1

0

1

0

0

1

1

0

1

0

1

0

0

1

0

 

Encoding of -12.34

Character 1 = L

Character 2 = S

Character 3 = R

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

1

1

0

0

0

1

0

1

0

0

1

1

0

1

0

1

0

0

1

0

 

Encoding of -123.4

Character 1 = J

Character 2 = S

Character 3 = R

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

1

0

1

0

0

1

0

1

0

0

1

1

0

1

0

1

0

0

1

0

 

Encoding of -0.123

Character 1 = N

Character 2 = A

Character 3 = {

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

1

1

1

0

0

1

0

0

0

0

0

1

0

1

1

1

1

0

1

1

 

Encoding of INF

Character 1 = A

Character 2 = ?

Character 3 = ?

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

0

0

0

1

0

0

1

1

1

1

1

1

0

0

1

1

1

1

1

1

 

Encoding of -INF

Character 1 = I

Character 2 = ?

Character 3 = ?

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

1

0

0

1

0

0

1

1

1

1

1

1

0

0

1

1

1

1

1

1

 

Encoding of NAN

Character 1 = I

Character 2 = ?

Character 3 = ~

 

 

 

 

Sign

Exponent

Mantissa

 

 

Mantissa

 

 

Mantissa

p

1

0

0

b16

b15

b14

b13

p

1

b12

b11

b10

b9

b8

b7

p

1

b6

b5

b4

b3

b2

b1

0

1

0

0

1

0

0

1

0

0

1

1

1

1

1

1

0

0

1

1

1

1

1

0