C.3 generation of signature – Campbell Scientific CR7 Measurement and Control System User Manual

Page 169

Advertising
background image

APPENDIX C. BINARY TELECOMMUNICATIONS

C-5

BITS, 1ST BYTE,
1ST PAIR

DESCRIPTION

CDEF = 0111

Code designating 1st byte pair of four byte number.

B

Polarity , 0 = +, 1 = -.

G,H,A,

Decimal locator as defined below.

2nd byte

16th - 9th bit (left to right) of 17 bit binary value.

ABCDEF = 001111

Code designating 2nd byte pair of four byte number.

G

Unused bit.

H

17th and MSB of 17 bit binary value.

2nd byte

8th - 1st bit (left to right) of 17 bit binary value.

CAMPBELL SCIENTIFIC defines the largest
allowable range of a high resolution number to
be 99999.

Interpretation of the decimal locator for a 4 byte
data value is given below. The decimal
equivalent of bits GH is the negative exponent
to the base 10.

BITS

DECIMAL FORMAT

G H A

5 digits

0 0 0

XXXXX.

0 0 1

XXXX.X

0 1 0

XXX.XX

0 1 1

XX.XXX

1 0 0

X.XXXX

1 0 1

.XXXXX

C.3 GENERATION OF SIGNATURE

At the end of a binary transmission, a signature
is sent. The signature is a 2 byte integer value
which is a function of the data and the
sequence of data in the output array. It is
derived with an algorithm that assures a
99.998% probability of detecting a change in the
data or its sequence. The CR7 calculates the
signature using each transmitted byte except
the 2 byte signature itself. By calculating the
signature of the received data and comparing it
to the transmitted signature, it can be
determined whether the data was received
correctly.

SIGNATURE ALGORITHM

-

S1,S0

represent the high and low bytes

of the signature, respectively

-

M

represents a transmitted data

byte

-

n

represents the existing byte

-

n+1

represents the new byte

-

T

represents a temporary location

-

C

represents the carry bit from a
shift operation

1.

The signature is initialized with both bytes
set to hexadecimal AA.

S1(n) = S0(n) = AA

2.

When a transmitted byte, M(n+1), is
received, form a new high signature byte by
setting it equal to the existing low byte.
Save the old high byte for later use.

T1 = S1(n)

S1(n+1) = S0(n)

3.

Form a temporary byte by shifting the old
low signature byte one bit to the left and
adding any carry bit which results from the
shift operation. A "shift left" is identical to a
multiply by 2. Ignore any carry bit resulting
from the add.

T2 = shift left (S0(n)) + carry

4.

Form the new low signature byte by adding
the results of operation 3 to the old high
signature byte and the transmitted byte.
Ignore any carry bits resulting from these
add operations.

S0(n+1) = T2 + S1(n) + M(n+1)

As each new transmitted byte is received, the
procedure is repeated.

Advertising