
AN07-00200-03E
104
Figure 5-17
Receive determination processing
void
l_ifc_rx(l_ifc_handle rx_data){
switch(ucLinStatus){
case
LIN_TRANSMIT:
(Omitted)
case
LIN_DATA_RECEPTION:
(Omitted)
case
LIN_ID_RECEPTION:
ucCurrentId.byte = rx_data;
if( ucCurrentId.fields.parity != ucRightParity[ucCurrentId.fields.id] ) {
(Omitted)
else if( LinRxDataPtr[ucCurrentId.fields.id] != 0 ) {
ucLinStatus = LIN_DATA_RECEPTION;
(Omitted)
vSetLinFreerunTimersCompare(ucRxCount);
} else if ( LinTxDataPtr[ucCurrentId.fields.id] != 0 ) {
ucLinStatus = LIN_PRETRANSMIT;
(Omitted)
vLinWordCopy(ucUartTxBuffer, LinTxDataPtr[ucCurrentId.fields.id], ucTxCount);
vSetLinFreerunTimersCompare(hTINFRAME_SPACE_IND);
}
(Omitted)
case
LIN_WAKEUP_TRANSMIT:
(Omitted)
}
}
DATA FIELD send status
DATA FIELD receive status
ID FIELD reception wait status
Store received ID
Parity check
Error processing
If ID received
State transition: DATA reception
wait status
WAKEUP send status
8/16bit complex timer set
↓
Copy send data to buffer
8/16bitcomplex
timer set