beautypg.com

11 break-in-data, 12 checksum – Rainbow Electronics ATmega64M1 User Manual

Page 215

background image

215

8209A–AVR–08/09

ATmega16M1/32M1/64M1

Figure 21-12. LIN timing and frame time-out

21.5.11

Break-in-data

According to the LIN protocol, the LIN/UART controller can detect the BREAK/SYNC field
sequence even if the break is partially superimposed with a byte of the response. When a
BREAK/SYNC field sequence happens, the transfer in progress is aborted and the processing of
the new frame starts.

• On slave node(s), an error is generated (i.e. LBERR in case of Tx Response or LFERR in

case of Rx Response). Information on data error is also available, refer to the

Section

21.5.7.5

.

• On master node, the user (code) is responsible for this aborting of frame. To do this, the

master task has first to abort the on-going communication (clearing LCMD bits - LIN Abort
command) and then to apply the Tx Header command. In this case, the abort error flag -
LABORT - is set.

On the slave node, the BREAK detection is processed with the synchronization setting available
when the LIN/UART controller processed the (aborted) response. But the re-synchronization
restarts as usual. Due to a possible difference of timing reference between the BREAK field and
the rest of the frame, the time-out values can be slightly inaccurate.

21.5.12

Checksum

The last field of a frame is the checksum.

In LIN 2.1, the checksum contains the inverted eight bit sum with carry over all data bytes and
the protected identifier. This calculation is called enhanced checksum.

In LIN 1.3, the checksum contains the inverted eight bit sum with carry over all data bytes. This
calculation is called classic checksum.

Frame identifiers 60 (0x3C) to 61 (0x3D) shall always use classic checksum

BREAK

Field

SYNC

Field

CHECKSUM

Field

DATA-0

Field

Field

IDENTIFIER

PROTECTED

DATA-n

Field

T

Response

T

Header

T

Frame

T

Header_Maximum

T

Header_Maximum +

T

Response_Maximum

1.4 x

T

Header_Nominal

1.4 x

T

Response_Nominal

T

Response_Maximum

T

Frame_Maximum

=

=

=

Maximun

before Time-out

T

Header_Nominal

T

Header_Nominal +

T

Response_Nominal

34 x

T

Bit

10 ( Number_of_Data + 1 ) x

T

Bit

T

Response_Nominal

T

Frame_Nominal

=

=

=

Nominal

CHECKSUM

255

unsigned char

DATA

n

0

n

PROTECTED ID.

+

unsigned char

DATA

n

0

n

PROTECTED ID.

+

8

»

+

=

CHECKSUM

255

unsigned char

DATA

n

0

n

unsigned char

DATA

n

0

n

8

»

+

=