CRC error in CAN networks

View: New views
5 Messages — Rating Filter:   Alert me  

CRC error in CAN networks

by Luca Bolognino :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

I'm analyzing different failures in a CAN network, and I have a problem with the CRC error.

What will occur if a node (in the transmission case) has a faulty check sum generator?

Is the following scenario correct?

1)The node 5 (with a faulty check sum generator) sends one message, but all other nodes will recognize a CRC error and they will send an error active frame until they will reach the error passive mode. During this phase node 5 will not increment TEC and it will continue to retransmit the message.
2)As soon as the other nodes enter in the error passive mode, no node will acknowledge the message of node 5 and it will keep retransmitting the message, by incrementing every time its TEC until the node will reach the error-passive mode.
3)The node will continue to retransmit the message, and nodes with ID>5 will not be able to transmit any message (since they will alway lose arbitration against node 5).

Thank you.
Regards,

Luca

--
Archives and useful links: http://groups.yahoo.com/group/CANbus
Subscribe and unsubscribe at www.vector-informatik.com/canlist/
Report any problems to <canlist-owner@...>

RE: CRC error in CAN networks

by John Dammeyer :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

A node that transmits a message which is damaged by an Error Flag
increments the error counter by 8 not 1.  It will retry 32 times before it
reaches bus off state.  What you do with it then is application dependant.

AFAIK without digging into the specification, a node which sees a CRC
error will issue an Error Flag which then causes the transmitting node to
resend.

Your terminology can be misleading.  There is no such thing as an Error
Frame.  An Error Flag is 6 consecutive dominant bits.  Any node that did
not see the original cause of the error but will see the 6 bit Error Flag
and then issue it's own Error Flag of 6 dominant bits.  That means an
Error Flag can be anything from 6 to 12 bits long.

An Error Passive node (with an TEC or REC > 127) will still acknowledge
messages.  It just won't send an Active Error Flag.

John Dammeyer

Automation Artisans Inc.
http://www.autoartisans.com/ELS/
Ph. 1 250 544 4950


> -----Original Message-----
> From: canlist-owner@...
> [mailto:canlist-owner@...] On
> Behalf Of luca.bolognino
> Sent: Thursday, October 01, 2009 8:01 AM
> To: canlist@...
> Subject: [CANLIST] CRC error in CAN networks
>
>
> Hello,
>
> I'm analyzing different failures in a CAN network, and I have
> a problem with the CRC error.
>
> What will occur if a node (in the transmission case) has a
> faulty check sum generator?
>
> Is the following scenario correct?
>
> 1)The node 5 (with a faulty check sum generator) sends one
> message, but all other nodes will recognize a CRC error and
> they will send an error active frame until they will reach
> the error passive mode. During this phase node 5 will not
> increment TEC and it will continue to retransmit the message.
> 2)As soon as the other nodes enter in the error passive mode,
> no node will acknowledge the message of node 5 and it will
> keep retransmitting the message, by incrementing every time
> its TEC until the node will reach the error-passive mode.
> 3)The node will continue to retransmit the message, and nodes
> with ID>5 will not be able to transmit any message (since
> they will alway lose arbitration against node 5).
>
> Thank you.
> Regards,
>
> Luca
>
> --
> Archives and useful links: http://groups.yahoo.com/group/CANbus
> Subscribe and unsubscribe at www.vector-informatik.com/canlist/
> Report any problems to <canlist-owner@...>
>
>

--
Archives and useful links: http://groups.yahoo.com/group/CANbus
Subscribe and unsubscribe at www.vector-informatik.com/canlist/
Report any problems to <canlist-owner@...>

RE: CRC error in CAN networks

by Luca Bolognino :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thank you, John, for your explanation.
Just one thing: you wrote that an Error passive state node will still acknowledge messages. But if all nodes of the network are in error passive state and the node 5 (with a faulty check sum generator) will start to transmit, will the other nodes acknowledge the message?
If not, will the node continue to retransmit the message, so nodes with ID>5 will not be able to transmit any message?
Could this scenario (although is very unlikely) block the network?
Thank you.
 
Luca


--- On Thu, 10/1/09, John Dammeyer <johnd@...> wrote:

From: John Dammeyer <johnd@...>
Subject: RE: [CANLIST] CRC error in CAN networks
To: canlist@...
Date: Thursday, October 1, 2009, 4:15 PM

A node that transmits a message which is damaged by an Error Flag
increments the error counter by 8 not 1.  It will retry 32 times before it
reaches bus off state.  What you do with it then is application dependant.

AFAIK without digging into the specification, a node which sees a CRC
error will issue an Error Flag which then causes the transmitting node to
resend.

Your terminology can be misleading.  There is no such thing as an Error
Frame.  An Error Flag is 6 consecutive dominant bits.  Any node that did
not see the original cause of the error but will see the 6 bit Error Flag
and then issue it's own Error Flag of 6 dominant bits.  That means an
Error Flag can be anything from 6 to 12 bits long.

An Error Passive node (with an TEC or REC > 127) will still acknowledge
messages.  It just won't send an Active Error Flag.

John Dammeyer

Automation Artisans Inc.
http://www.autoartisans.com/ELS/
Ph. 1 250 544 4950


> -----Original Message-----
> From: canlist-owner@...
> [mailto:canlist-owner@...] On
> Behalf Of luca.bolognino
> Sent: Thursday, October 01, 2009 8:01 AM
> To: canlist@...
> Subject: [CANLIST] CRC error in CAN networks
>
>
> Hello,
>
> I'm analyzing different failures in a CAN network, and I have
> a problem with the CRC error.
>
> What will occur if a node (in the transmission case) has a
> faulty check sum generator?
>
> Is the following scenario correct?
>
> 1)The node 5 (with a faulty check sum generator) sends one
> message, but all other nodes will recognize a CRC error and
> they will send an error active frame until they will reach
> the error passive mode. During this phase node 5 will not
> increment TEC and it will continue to retransmit the message.
> 2)As soon as the other nodes enter in the error passive mode,
> no node will acknowledge the message of node 5 and it will
> keep retransmitting the message, by incrementing every time
> its TEC until the node will reach the error-passive mode.
> 3)The node will continue to retransmit the message, and nodes
> with ID>5 will not be able to transmit any message (since
> they will alway lose arbitration against node 5).
>
> Thank you.
> Regards,
>
> Luca
>
> --
> Archives and useful links: http://groups.yahoo.com/group/CANbus
> Subscribe and unsubscribe at www.vector-informatik.com/canlist/
> Report any problems to <canlist-owner@...>
>
>

--
Archives and useful links: http://groups.yahoo.com/group/CANbus
Subscribe and unsubscribe at www.vector-informatik.com/canlist/
Report any problems to <canlist-owner@...>


RE: CRC error in CAN networks

by John Dammeyer :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Message
A node transmitting in error will go error passive and then bus off sooner than the receivers.  A node transmitting onto a bus where there is never an ACK will transmit forever.  It's up to your firmware to determine that a node which was supposed to send a message hasn't done so in a reasonable amount of time.
 
For example, one system I designed may or may not have had a CAN bus attached.  To prevent RFI (aircraft application),  if there was no response to a broadcast message after 30 seconds I shut down the sending of CAN messages from that node.  It would then have to receive one before it was allowed to transmit.  The long period was to allow other equipment to be turned on out of sequence by users.
 
If the node is defective and all other nodes go error passive then indeed it could transmit forever.  If your firmware determines that the node is still trying to send after 100mS for example, it should shut up and listen until told to talk again.
 
John Dammeyer
 

Automation Artisans Inc.
http://www.autoartisans.com/ELS/
Ph. 1 250 544 4950

-----Original Message-----
From: canlist-owner@... [mailto:canlist-owner@...] On Behalf Of Luca Bolognino
Sent: Friday, October 02, 2009 9:10 AM
To: canlist@...
Subject: RE: [CANLIST] CRC error in CAN networks

Thank you, John, for your explanation.
Just one thing: you wrote that an Error passive state node will still acknowledge messages. But if all nodes of the network are in error passive state and the node 5 (with a faulty check sum generator) will start to transmit, will the other nodes acknowledge the message?
If not, will the node continue to retransmit the message, so nodes with ID>5 will not be able to transmit any message?
Could this scenario (although is very unlikely) block the network?
Thank you.
 
Luca


--- On Thu, 10/1/09, John Dammeyer <johnd@...> wrote:

From: John Dammeyer <johnd@...>
Subject: RE: [CANLIST] CRC error in CAN networks
To: canlist@...
Date: Thursday, October 1, 2009, 4:15 PM

A node that transmits a message which is damaged by an Error Flag
increments the error counter by 8 not 1.  It will retry 32 times before it
reaches bus off state.  What you do with it then is application dependant.

AFAIK without digging into the specification, a node which sees a CRC
error will issue an Error Flag which then causes the transmitting node to
resend.

Your terminology can be misleading.  There is no such thing as an Error
Frame.  An Error Flag is 6 consecutive dominant bits.  Any node that did
not see the original cause of the error but will see the 6 bit Error Flag
and then issue it's own Error Flag of 6 dominant bits.  That means an
Error Flag can be anything from 6 to 12 bits long.

An Error Passive node (with an TEC or REC > 127) will still acknowledge
messages.  It just won't send an Active Error Flag.

John Dammeyer

Automation Artisans Inc.
http://www.autoartisans.com/ELS/
Ph. 1 250 544 4950


> -----Original Message-----
> From: canlist-owner@...
> [mailto:canlist-owner@...] On
> Behalf Of luca.bolognino
> Sent: Thursday, October 01, 2009 8:01 AM
> To: canlist@...
> Subject: [CANLIST] CRC error in CAN networks
>
>
> Hello,
>
> I'm analyzing different failures in a CAN network, and I have
> a problem with the CRC error.
>
> What will occur if a node (in the transmission case) has a
> faulty check sum generator?
>
> Is the following scenario correct?
>
> 1)The node 5 (with a faulty check sum generator) sends one
> message, but all other nodes will recognize a CRC error and
> they will send an error active frame until they will reach
> the error passive mode. During this phase node 5 will not
> increment TEC and it will continue to retransmit the message.
> 2)As soon as the other nodes enter in the error passive mode,
> no node will acknowledge the message of node 5 and it will
> keep retransmitting the message, by incrementing every time
> its TEC until the node will reach the error-passive mode.
> 3)The node will continue to retransmit the message, and nodes
> with ID>5 will not be able to transmit any message (since
> they will alway lose arbitration against node 5).
>
> Thank you.
> Regards,
>
> Luca
>
> --
> Archives and useful links: http://groups.yahoo.com/group/CANbus
> Subscribe and unsubscribe at www.vector-informatik.com/canlist/
> Report any problems to <canlist-owner@...>
>
>

--
Archives and useful links: http://groups.yahoo.com/group/CANbus
Subscribe and unsubscribe at www.vector-informatik.com/canlist/
Report any problems to <canlist-owner@...>


RE: CRC error in CAN networks

by Ulrik Hagström :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Luca,

> Could this scenario (although is very unlikely) block the network?

A ERROR FRAME consists of error flag + error delimiter. The error
delimiter is set to 8 bits (this means that it has wait a little bit
longer than the normal case).

Please read about the definition of a ERROR FRAME on page 16 (1.3.1) in
the BOSCH CAN spefifiction (free), can be downloaded here:

http://www.canopen.nu/pdf/can2spec.pdf

In the CAN (datalink layer) spec by ISO (ISO 11898-1) see section 10.4.4.


--
Best Regards,
Ulrik Hagström
http://www.canopen.nu


> A node transmitting in error will go error passive and then bus off sooner
> than the receivers.  A node transmitting onto a bus where there is never
> an ACK will transmit forever.  It's up to your firmware to determine that
> a node which was supposed to send a message hasn't done so in a reasonable
> amount of time.
>
> For example, one system I designed may or may not have had a CAN bus
> attached.  To prevent RFI (aircraft application),  if there was no
> response to a broadcast message after 30 seconds I shut down the sending
> of CAN messages from that node.  It would then have to receive one before
> it was allowed to transmit.  The long period was to allow other equipment
> to be turned on out of sequence by users.
>
> If the node is defective and all other nodes go error passive then indeed
> it could transmit forever.  If your firmware determines that the node is
> still trying to send after 100mS for example, it should shut up and listen
> until told to talk again.
>
> John Dammeyer
>
>
> Automation Artisans Inc.
> http://www.autoartisans.com/ELS/
> Ph. 1 250 544 4950
>
>
> -----Original Message-----
> From: canlist-owner@...
> [mailto:canlist-owner@...] On Behalf Of Luca
> Bolognino
> Sent: Friday, October 02, 2009 9:10 AM
> To: canlist@...
> Subject: RE: [CANLIST] CRC error in CAN networks
>
>
>
> Thank you, John, for your explanation.
> Just one thing: you wrote that an Error passive state node will still
> acknowledge messages. But if all nodes of the network are in error passive
> state and the node 5 (with a faulty check sum generator) will start to
> transmit, will the other nodes acknowledge the message?
> If not, will the node continue to retransmit the message, so nodes with
> ID>5 will not be able to transmit any message?
> Could this scenario (although is very unlikely) block the network?
> Thank you.
>
> Luca
>
>
> --- On Thu, 10/1/09, John Dammeyer <johnd@...> wrote:
>
>
>
> From: John Dammeyer <johnd@...>
> Subject: RE: [CANLIST] CRC error in CAN networks
> To: canlist@...
> Date: Thursday, October 1, 2009, 4:15 PM
>
>
> A node that transmits a message which is damaged by an Error Flag
> increments the error counter by 8 not 1.  It will retry 32 times before it
> reaches bus off state.  What you do with it then is application dependant.
>
> AFAIK without digging into the specification, a node which sees a CRC
> error will issue an Error Flag which then causes the transmitting node to
> resend.
>
> Your terminology can be misleading.  There is no such thing as an Error
> Frame.  An Error Flag is 6 consecutive dominant bits.  Any node that did
> not see the original cause of the error but will see the 6 bit Error Flag
> and then issue it's own Error Flag of 6 dominant bits.  That means an
> Error Flag can be anything from 6 to 12 bits long.
>
> An Error Passive node (with an TEC or REC > 127) will still acknowledge
> messages.  It just won't send an Active Error Flag.
>
> John Dammeyer
>
> Automation Artisans Inc.
> http://www.autoartisans.com/ELS/
> Ph. 1 250 544 4950
>
>
>> -----Original Message-----
>> From: canlist-owner@...
> <http://us.mc448.mail.yahoo.com/mc/compose?to=canlist-owner@...
> r-informatik.de>
>> [mailto:canlist-owner@...
> <http://us.mc448.mail.yahoo.com/mc/compose?to=canlist-owner@...
> r-informatik.de> ] On
>> Behalf Of luca.bolognino
>> Sent: Thursday, October 01, 2009 8:01 AM
>> To: canlist@...
> <http://us.mc448.mail.yahoo.com/mc/compose?to=canlist@...
>>
>> Subject: [CANLIST] CRC error in CAN networks
>>
>>
>> Hello,
>>
>> I'm analyzing different failures in a CAN network, and I have
>> a problem with the CRC error.
>>
>> What will occur if a node (in the transmission case) has a
>> faulty check sum generator?
>>
>> Is the following scenario correct?
>>
>> 1)The node 5 (with a faulty check sum generator) sends one
>> message, but all other nodes will recognize a CRC error and
>> they will send an error active frame until they will reach
>> the error passive mode. During this phase node 5 will not
>> increment TEC and it will continue to retransmit the message.
>> 2)As soon as the other nodes enter in the error passive mode,
>> no node will acknowledge the message of node 5 and it will
>> keep retransmitting the message, by incrementing every time
>> its TEC until the node will reach the error-passive mode.
>> 3)The node will continue to retransmit the message, and nodes
>> with ID>5 will not be able to transmit any message (since
>> they will alway lose arbitration against node 5).
>>
>> Thank you.
>> Regards,
>>
>> Luca
>>
>> --
>> Archives and useful links: http://groups.yahoo.com/group/CANbus
>> Subscribe and unsubscribe at www.vector-informatik.com/canlist/
>> Report any problems to <canlist-owner@...
> <http://us.mc448.mail.yahoo.com/mc/compose?to=canlist-owner@vector-informa
> tik.de> >
>>
>>
>
> --
> Archives and useful links: http://groups.yahoo.com/group/CANbus
> Subscribe and unsubscribe at www.vector-informatik.com/canlist/
> Report any problems to <canlist-owner@...
> <http://us.mc448.mail.yahoo.com/mc/compose?to=canlist-owner@vector-informa
> tik.de> >
>
>
>
>




--
Archives and useful links: http://groups.yahoo.com/group/CANbus
Subscribe and unsubscribe at www.vector-informatik.com/canlist/
Report any problems to <canlist-owner@...>