Controller Area Network (CAN) bit stuffing

Click For Summary
SUMMARY

The discussion focuses on the concept of bit stuffing in the Controller Area Network (CAN) protocol, specifically in the context of Non-Return-to-Zero (NRZ) encoding. NRZ encoding lacks transitions when transmitting long sequences of identical bits, leading to synchronization issues at the receiver. To mitigate this, bit stuffing is employed, which inserts a bit after five consecutive bits of the same polarity to ensure that the receiver can maintain clock synchronization. This mechanism is crucial for the reliable transmission of messages over the CAN bus.

PREREQUISITES
  • Understanding of Controller Area Network (CAN) protocol
  • Knowledge of Non-Return-to-Zero (NRZ) encoding
  • Familiarity with bit stuffing techniques
  • Basic concepts of digital signal synchronization
NEXT STEPS
  • Research the implementation of bit stuffing in CAN protocols
  • Explore the differences between NRZ and Return-to-Zero (RZ) encoding
  • Study the effects of synchronization loss in digital communication systems
  • Learn about other encoding techniques used in CAN bus systems
USEFUL FOR

Engineers, embedded systems developers, and students studying digital communication protocols, particularly those interested in the technical workings of CAN bus systems and data transmission reliability.

gomathi.c
Messages
2
Reaction score
0
I was going through an article on CAN bus in Wikipedia & was stuck at the point where bit stuffing is explained. CAN is an asynchronous bus. They implement NRZ (Non-Return-To-Zero) encoding. To enable the receiver to correctly read the messages, continuous resynchronization is required.

Generally, in NRZ, a problem arises when there is a long sequence of 0s or 1s and the voltage level is maintained at the same value for a long time. This creates a problem on the receiving end because now, the clock synchronization is lost due to lack of any transitions and hence, it is difficult to determine the exact number of 0s or 1s in this sequence.

As per, http://www.softing.com/home/en/indu...re-can-bus/bit-encoding/bit-stuffing-rule.php
One characteristic of Non-Return-to-Zero code is that the signal provides no edges that can be used for resynchronization if transmitting a large number of consecutive bits with the same polarity. Therefore bit-stuffing is used to ensure synchronization of all bus nodes.
This means that during the transmission of a message, a maximum of five consecutive bits may have the same polarity. Then a bit is stuffed.

What I don’t understand is, why in NRZ, a consecutive 0’s & 1’s don’t provide edge? I assume edge means a transition. Am I right? Kindly explain me. Thanks in advance.
 
Last edited:
Engineering news on Phys.org
In the following website, it is given that there won't be any transitions if there is large number of consecutive 0's or 1's. The bit boundaries can't be distinguished. So, the receiver clocks can't synchronise. But, what actually happens in receiver with each bit transition? And what happens if there is no transition? What happens when the bit boundaries can't be distinguished?

http://www.erg.abdn.ac.uk/~gorry/eg3567/phy-pages/nrz.html
 
Last edited by a moderator:

Similar threads

  • · Replies 15 ·
Replies
15
Views
4K
  • · Replies 15 ·
Replies
15
Views
2K
  • Sticky
  • · Replies 13 ·
Replies
13
Views
8K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 2 ·
Replies
2
Views
4K
Replies
3
Views
2K
Replies
3
Views
5K
Replies
7
Views
3K
  • · Replies 12 ·
Replies
12
Views
4K
  • · Replies 9 ·
Replies
9
Views
9K