Our VIP Package gets you every single course at 80% off the individual price. For a limited time, save an additional $100 with coupon code 100VIP. Learn more

CAN Bus Communications Decoded: Electrical Signalling

Watch This Course

$199.00 USD $129.00 USD

-OR-
Or 8 weekly payments of only $16.13 Instant access. Easy checkout. No fees. Learn more
Course Access for Life
60 day money back guarantee

Electrical Signalling

06.00

00:00 - As we've already established, a CAN network is a broadcast network with all our devices connected together on a bus made out of a trunk of 2 wires, termination resistor at either end and nodes heading off to each device.
00:13 Every CAN high pin is connected together and every CAN low pin is connected together so all these devices need to agree on what particular voltage levels their CAN high pins and CAN low pins mean.
00:24 This is achieved by following the voltage signalling level specified again in the ISO high speed CAN standard.
00:31 It's easy to see our 2 communication wires, CAN high and CAN low on our devices and assume that one is for transmitting data and one is for receiving data.
00:40 In some other network setups, this is absolutely the case but not with CAN.
00:45 CAN uses a signalling voltage level setup known as a differential pair.
00:49 Often that seems a scary term but breaking it down, differential means looking at the difference and pair is because we've got 2 wires.
00:57 This means that each device on our network is looking at the difference in voltage levels on the CAN high and CAN low wires and this is how it detects data on the bus.
01:07 This seems like a subtle point but it's very important to the way our CAN network allows every device connected to communicate.
01:14 To explain this a little further, have a think about a sensor that outputs an analog voltage signal back to a measurement unit like an ECU.
01:22 The way the ECU reads the voltage level is to compare it to its internal ground voltage level and determine the difference between these 2 levels.
01:31 If we then wire this signal to another measurement unit, it will also read the voltage by comparing it to its internal ground level.
01:39 These 2 measurement units are not likely to completely agree on the voltage level the sensor is sending out.
01:46 Not because of any wiring problems but because the 2 measurement units will have different internal ground levels which they're comparing that same signal to.
01:55 This problem is known as a ground offset and is a real issue with sensor signals in automotive applications.
02:01 Careful wiring harness design and attention to grounding points can solve much of this problem but it can still occur, particularly for devices that are spaced far apart from one another in a vehicle.
02:12 A common real world example of ground offsets causing issues is seen with wideband oxygen sensor controllers.
02:18 Wideband oxygen sensors require a controller unit to correctly excite the sensor and get a valid reading of the oxygen content or lack thereof in the exhaust gas.
02:27 This isn't a trivial task and many ECUs don't include the required circuitry, instead relying on separate controller units.
02:35 It's quite common for these controller units to output an analog voltage to the ECU which they generate relative to their own internal ground.
02:44 The ECU will read this generated voltage, compare it to its internal ground and likely see a slightly different value to what was intended by the controller.
02:53 This small offset can easily be enough to throw the lambda reading off by a significant amount.
02:59 The differential pair signalling scheme used by the high speed CAN standard solves this problem though because none of the devices communicating on the CAN network compare the voltages on the CAN high and CAN low wires to their internal ground levels.
03:12 Instead, they only compare them to one another.
03:14 This means the devices can have substantial ground offsets and still communicate reliably with one another so just to recap that because it is a really important point, differential pair signalling, means each device looks at the difference in voltage levels between the CAN high and CAN low pins, not how those levels relate to their own internal ground levels.
03:35 This is actually one of the main reasons we always twist our CAN wires together.
03:39 Twisting the wires ensures they're always physically close to one another within our wiring harness and this means both wires will be exposed to similar amounts of radiative electrical noise.
03:48 High voltage signals switching on and off quickly those created by ignition systems can radiate out substantial electrical noise.
03:56 And that can cause voltage spikes on our communication wires.
03:59 But if both our CAN high and CAN low wires experience the same voltage spike, the difference in their voltage level will not be affected and the ECU will still see valid communication.
04:10 This increases the noise immunity of the system substantially and is one of the main reasons we run our CAN bus wiring as a simple twisted pair of plain wires and don't need to use specific shielded wiring.
04:21 Now that being said, in particularly noisy environments like EV applications, CAN wiring is often run in shielded wiring just to add another layer of protection from electrical noise.
04:32 So we've mentioned a couple of times that a CAN network is a digital network, meaning it transmits data as a series of 0s and 1s on and off, our we could say in binary format.
04:42 Each device on our CAN network is looking at the difference in voltage on the CAN high and the CAN low wires so there must be some level at which every device agrees this difference represents a 0 on the bus and another level every device agrees represents a 1 on the bus.
04:59 This level is defined in the ISO standard as 2 volts nominally.
05:04 However any differential voltage higher than 1.2 volts will be detected correctly.
05:09 These 2 states are known as dominant and recessive.
05:13 When the bus is being driven to the dominant state by one of the devices on it, the CAN high wire will have a voltage at least 1.2 volts higher than the CAN low wire.
05:24 And this represents a zero on the bus.
05:27 When the bus is in the recessive state, the voltage on the CAN high wire will be very close to the voltage on the CAN low wire and this represents a 1 on the bus.
05:37 A completely detailed understanding of these electrical signalling levels is not critical to using CAN in your project.