A Very Brief Introduction To Active/Switchable CANbus Termination Resistors
Termination resistors within a CANbus network are old news to most of us. Per ISO standards and transmission line theory (a topic for another time), CANbus requires two termination resistors wired in parallel, each with a value of 120Ω for a nominal bus resistance of 60Ω. We know that CANbus is a differential bus and that each twisted (differential) wire pair operates as a network transmission line. The terminating resistors used on the ends of the network should match with the characteristic impedance of the wire pairs to help avoid signal reflections. CANbus utilizes a nominal impedance of 120Ω, which is why we use a 120Ω resistor on each end.
The resistors are rather critical in a CANbus network. The 60Ω of network acts as a passive pull-up/pull-down (depending on which line) of the bus. During times when a message is not being sent, the two lines revert to their rest voltage of 2.5V thanks to the 60 Ω between them. When a message needs to be transmitted the bus is driven to a dominant state, a module (node) pulls the lines apart resulting in a differential signal of 1.8V-2.0V. CANbus is never actively driven to the recessive state (resting state) when the module ceases driving the signal high, the resistors pull the line voltage to rest. The low resistance of the lines allows the signal to return to its passive state in a short period of time, thus reducing errors within messages.
The advancement of technology, increasing numbers of modules within vehicles, and varying network topologies have all contributed to the need to make networks more flexible. Automotive CANbus can support up to 50 modules within its design restraints, and termination is required at either end of the network. Modern topology often runs into the issue of no definitive end of a network (think of star, tree, or mesh network topologies) and so makes placing a termination resistor in the proper location rather difficult at times. Couple that with the varying trim packages of any given platform, and the increased number of modules the higher trim packages require, and more flexibility within the network is needed.
Active/programmable termination is one solution for this problem; through a combination of hardware and software, modules are able to terminate the bus or just act as a standard module depending on the required state of the network.
Active termination, in my research so far, works in one of two ways. The first uses a highly precise voltage regulation chip in conjunction with the passive resistors in the system to maintain perfect network impedance (though this doesn't make it any easier to determine the actual beginning or end of a network). The second method utilizes a 120Ω resistor contained within each of multiple modules and switched on or off via software commands/operating parameters as needed to minimize reflection of signal and increase bus efficiency. At times of high bus traffic, multiple modules can switch their terminators on/of via internal transistors in order to maintain optimal network operation. The same is true as additional modules are added to the bus, such as going from a Chevy WT to a High Country, assuming same base network topology. Refer to the two patents linked above to get a more in-depth operational idea, I'm just here to introduce the subject to those who have not heard of it yet.
It will definitely make things interesting in the future. More information will be coming as soon as SAE releases the newest paper, which I don't have the number for in front of me.
Additionally, if anyone has not seen them already, I recommend the last 2 videos PicoAuto posted on YouTube for some interesting aspects of CANbus diagnostics that some of us in the field have been experimenting with, as well as a brief mention of transistor style termination resistors in networks.
Just wanted to throw this together and get everyone thinking. Hope I didn't butcher it too badly; it's meant to be an incentive to research more.
I have a question for you. I have a SKIM module that communicates on a 1 wire PCI bus. Does this require a termination resistor to ground? If so what value? Vehicle was a 2005 ram 1500 5.7L I do lots of bench programming and this was the first time I ran into a module on a PCI bus. I ended up just programming what I needed through jtag as in the SKIM module was a hc08 MCU.
Chrysler is not a strong point of mine, and PCI is not fresh in my mind but this is a brief excerpt from my notes: Each module on a PCI bus has bias and termination capabilities within the module. The master modules use somewhere between a 1.2KΩ to 3.3KΩ (specific per module, it's in SI) resistor for termination and a large capacitor to drive the comm line to the 7.5v or so it uses for dominant
Hi Sheldon: All modules on a PCI bus are single wire. All of them have a transceiver. So, the answer is yes on the termination resistor. Here's a screen capture from an MPC video. Take what you read in the following link with a grain of salt. As body styles change, so can network configurations. searchautoparts.com/motorage/train… I've only recall ever seeing module priority
Thanks for sharing. I had seen the videos have taken time to watch them, I will make it a point to do so now
Steve Smith recently posted answers to some of the questions brought up in these webinars over at the Pico Forum. May be worth a read if your interested.