Serial Data Network Can
Serial Data Network Can
Now we have 5V is divided between the 2 lines, and at idle when there is no communication happening the 2 lines are equal and both share 2.5V each which adds up to our 5V. That is fairly straight forward stuff and no different to our earlier model of a 5V recessive command except Now this 5V or 7 volt or whatever voltage is required for this bus toggling takes on a different levels and dimension between different protocols, so let’s look at the Can protocol. It is toggling from 2.5V with the Can high line going to 3.5V and the Can low going down to 1.5V. What’s the go here?
Originally I was not going to go into this until my next video, but a good friend and colleague of mine recommended that I should expend on this, as different protocols can use different rules, it is important to know the system.
Now first and foremost I do not want anyone being confused when we talk about the high can line (that being the line that goes up to 3.5V) and the low can line (that being the line that pulls down to 1.5V). We are simply talking about one line having a higher voltage and one line having a lower voltage, we are not talking High Can protocol and Low Can protocol. I know many people have been confused thinking these lines run 2 different protocols but this is not the case, as high speed Can has a high Can line and a Low Can line, the 2 lines are part and parcel of the one and the same protocol.
Why does Can use 2 twisted wires of the same length and why the different voltages? Well let’s start with the twisted wires. The wires are twisted to cancel out EMI (Electro Magnetic Interference) Due to many circuits such as ignition coils and injectors a high level of electromagnetic radiation is present. This electromagnetic noise will be introduced into both the twisted wires, but due to the twisted wires being an equally balanced pair the noise is cancelled out by the balanced pair.
In other words since the noise is equal in both twisted pair of wires, means being equal there is no difference. The fact that each circuit receives the sane noise level, the different circuits cancel the effect that the noise has on them.
Now getting back to the Can protocol voltage, we have 2 wires on this protocol for another reason other than just EMI, and that is to increase fault tolerances. What happens if we have an open circuit or a faulty module, the CAN can operate on just one line if necessary. I will explain this more as we go on, but for now let’s just explain a little more why we have 2 wires and centre our concentrate more on the 2 different voltages.
If I was to tell you that this protocol uses 2.5V as a 5V recessive command and that the protocol only looks at the different voltage in the high can line and the low can line, being 2V, as a dominate 0V, Have I confused you? I suspect I have, so do not turn off just yet, because I will do over this and I will make sure you understand this.
we now have 2 wires sharing this 5V recessive command.
Now the complicated part, but it is not really that complicated when you understand the reasoning. I said initially that the Bus system of the Can protocol only looks at the difference in the voltage of the 2 lines. So if the cam is in a recessive command both lines are on 2.5V and there is no difference of voltage.
Now let’s imagine we used equal voltages for both lines to move for a dominate command, let’s say 5v. So both lines go to 5V what is the difference on the line voltage? The answer is 0V. But if we differ the voltage as is the case, we see the high can line pulling up to 3.5V and the low can line pulling down to 1.5V we now have a 2V voltage difference.
So instead of toggling between 0V and 5V we simply toggle between no voltage difference as being an idle recessive command and a differing voltage as a dominant command. It is that simple, on and off or no difference in voltage to a difference in voltage, ons and offs, dots and dashes, voltage difference or no voltage difference. It is that simple.
But why do this? Simple one line goes down the other keeps working and we continue to have no voltage difference to having a voltage difference, on and off we still have a binary message.