Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

CAN Protocol

Solved!
Go to solution

Hi,

 

I am new to CAN protocol going through the Robert Bosch's CAN Specification ver2.0 Part B. I can't understand the following lines in page 63

 

" Note:

Start up / Wake up:

if during startup only one node is online, and if this node transmits some message, it will get no acknowledgement, detect an error and repeats the message. It can become 'error passive' but not 'bus off' due to this reason." 

 

As far as I understand when a transmitter detects an error(like Acknowledgement error) it retransmits the message and also increments the transmit error count (TEC) by 8. So if there is only one node then its TEC should increase by 8 everytime it transmits a message and should go into 'bus off' condition.

 

Can someone please explain why the specification says it can only go 'Error Passive' but not 'Bus off'?.

 

Thanks in Advance,

Jagdish.

0 Kudos
Message 1 of 17
(10,415 Views)
Solution
Accepted by topic author jagdish27

In chapter 7 of the spec where it indicates incrementing by 8 for each error, the next sentence indicates that there is an exception where a node does not increment the transmitter error counter if it is error passive (TC >= 128) and the error is a no-ack error.

 

 

Message 2 of 17
(10,387 Views)

Thanks a lot for your reply. I missed reading that exception.

0 Kudos
Message 3 of 17
(10,490 Views)

I have a doubt that what happens when DLC in message frame is specified as 0?

0 Kudos
Message 4 of 17
(8,738 Views)

@bbk1707 wrote:

I have a doubt that what happens when DLC in message frame is specified as 0?


Can you explain your comment a bit more. I am not understanding what you are asking.

0 Kudos
Message 5 of 17
(8,735 Views)

@bbk1707 wrote:

I have a doubt that what happens when DLC in message frame is specified as 0?


Are you trying to say "What happens when the DLC (payload length) is 0 bytes".  The answer is the payload has 0 bytes.  There are times when seeing the message is enough, and no payload is needed.  Lets say we have a device on the bus sending a frame letting the other devices on the bus know that piece of hardware is still awake and working.  A more robust system would have a counter that continued to increment, but for a simple system maybe just seeing that frame is enough to know the device is powered up and working.  Why waste bandwidth on sending any data in the payload?

 

Having a payload of 0 through 8 bytes is standard and has no adverse effect.  Here is some more information.

 

http://en.wikipedia.org/wiki/CAN_bus

Message 6 of 17
(8,732 Views)
In control field of any data frame if I use data length code as 0 then how would it take? What about the data field in this case?
0 Kudos
Message 7 of 17
(8,729 Views)

If you have a DLC of 0, then there is no data filed, just the Arb ID + Control + CRC + EOM. Everything else behaves essentially identically.

Message 8 of 17
(8,727 Views)
Thank you both for helping me.

Can I know what is the main use of delimiter bits in ack and CRC fields?
0 Kudos
Message 9 of 17
(8,725 Views)
Can I know what is the main use of delimiter bits in ack and CRC fields?
0 Kudos
Message 10 of 17
(8,716 Views)