Learn the inner workings of a CAN bus driver and how to debug your system


Welcome to the third post in this series about the controller area network (CAN). In my last post, I focused on what CAN bus signals look like in terms of voltage levels on the bus pins. In this post, I’ll focus on the typical topology of the CAN driver output stage to drive those bus voltages. For anyone that has ever had emissions problems or output differential voltage problems in a CAN network, this blog describes how the driver works and what electrical parameters you can look at in a datasheet to identify a good transceiver. I believe a basic understanding of the CAN driver can also help aid with debugging CAN issues if they arise.

CAN transceivers like the TCAN332 usually have an equivalent two-output structure, as shown in Figure 1. The high-side output structure consists of a series diode and a P-channel transistor, while the low-side output structure consists of a series diode and an N-channel transistor. On the high-side, the series diode blocks current from flowing into VCC net if the CANH bus voltage exceeds VCC during any transients or common-mode disturbances. The series diode on the low-side blocks current from flowing out of ground to the CAN bus if the bus voltage drops below the transceiver’s local ground during transients and common-mode disturbances.

Figure 1: Equivalent output schematic of a CAN transceiver

According to the ISO 11898 CAN standard, the two valid states for a CAN bus are the:

  • Dominant state – a minimum 1.5V output differential voltage (VOD) into a 50-65Ω differential load (TXD = low).
  • Recessive state – a maximum 50mV VOD into a 50-65Ω differential load (TXD = high).

As shown in Figure 2, the driver is recessive when both the high- and low-side transistors are off and in a high impedance state. The driver is dominant when both the high- and low-side transistors are on and in a low impedance state.

Figure 2: Recessive and dominant states

Since both transistors are off in the recessive state (see the left side of Figure 2), negligible current will flow from VCC to ground. The VOD across the load resistance (RL) is very close to 0V. In the dominant state (the right side of Figure 2), both transistors are on and in a low impedance state. Therefore, current will flow from VCC to ground through the RL and create a VOD.

As I said in my previous blog, CANH and CANL are weakly biased to VCC/2 in the recessive state. To avoid creating common-mode disturbances when the device switches between recessive and dominant states, it is important to match the drive strength of CANH to VCC and CANL to ground. Looking at Figure 3, you can see that a well-matched drain-to-source on-state resistance (RDSON) of the P-channel and N-channel transistors centers the voltage drop across RL between VCC and GND at VCC/2.

If one half of the driver had a considerably lower on-state resistance than the other half, then the bus common-mode voltage would be pulled away from VCC/2 for the dominant state and back to VCC/2 for the recessive state. This would result in a shift of common-mode for every transition of bus states and therefore higher levels of conducted and radiated emissions.

Figure 3: Equivalent schematic using RDSON resistor values

When looking at driver electrical specifications, the two most important things to look for are the guaranteed output voltages for dominant and recessive states with a given load resistance (stronger drivers will guarantee output voltages with a lower resistance) and the driver symmetry between dominant and recessive states.

Now that you know what the output driver of a CAN transceiver looks like, stay tuned for my next post, which will describe a typical input-receiver topology. As always, feel free to post any comments or questions below.

Additional resources:

  • Great blog! I had a few questions while reading this:

    1) In reality, how much can the Vcc value vary between different transmitters/transceivers?

    2) What makes them vary that much?

    3) Although variant between each other, would the Vcc value be fixed for a given transmitter? (e.g., 4.8V for node1 and 5.2V for node2)

  • Hi,

    Thank you for your comments! I am glad you liked the blog, and sorry I wasn't able to respond yesterday. See my responses below and please let me know if you have any other questions:

    1) In reality, how much can the VCC value vary between different transmitters/transceivers?

        - It is impossible to say how much the supply voltages of different transceivers on a bus can vary from each other. There are times when nodes are powered by independent supplies. Where one node is powered by an AC to DC supply off of a line voltage, with an additional node powered off a battery supplied DC/DC converter. So if the building never lost power, and the battery pack slowly dropped in voltage over time, the difference between supplies would get larger and larger. So to help designers, our devices operate over a range of voltages. For example with the TCAN1042, the device will meet all electrical characteristics from 4.5V to 5.5V on VCC. Therefore, even if the supply the device is powered from has a dip of a few hundred millivolts, the device will continue to send and receive messages without any issues.

    2) What makes them vary that much?

       - Usually supply voltages vary when load currents vary. To better explain this, let’s use an example of an air conditioning unit that is communicated to via CAN. There is a large fan motor that is on the same node as this CAN transceiver. When the fan kicks on and draws a large amount of current, the supply voltage can dip with it as well. Depending on the power supply’s power supply rejection ratio (PSRR); the output can pass some of this voltage dip from the input to the output. The worst rejection the power supply has, the more the output will vary with respect to input voltage. By using transceivers that can support a wider range of input voltage ±10 percent instead of ±5 percent, you can use power supplies that may regulate the output a little less tightly, possibly saving system costs.

    3) Although variant between each other, would the VCC value be fixed for a given transmitter? (e.g., 4.8V for node1 and 5.2V for node2)

      - Usually all the nodes on the network have a 5V (or becoming more common a 3.3V) nominal voltage. Therefore the power supply is trying to regulate to 5V at all times, but as the load changes or the input voltage varies it has to continuously re-compensate the output to get it back to the nominal voltage. Each node can vary independently of other nodes, since it might have a different load and supply characteristics. You need not worry about supply voltage variation as long as the supply voltage stays within the recommended range. CAN transceivers can handle large common mode differences and set their input thresholds to much less than the output thresholds, so there is plenty of margin built into the communication physical layer.

    Thanks,

    John

  • In your answer to Q2, when you say "The worst rejection the power supply has, the more the output will vary with respect to input voltage", can I assume that the outputs and inputs are referring to those going into and coming out from the voltage regulator? (As the output of the voltage regulator would be used as the Vcc for CAN transceivers)

  • Hi,

    Yes, you are correct! If a regulator has poor CMRR, when its input voltage varies, the output voltage will vary as well. Where, for this example, the output voltage of the regulator is the VCC rail that the CAN transceiver is powered off of.

    John

  • Hi John,

    Excellent post. Appreciate it. Thank you.

    Q1: In recessive state, how would they be biased to 2.5V ? What does weak bias mean ?

    Q2: When using 3.3V transceivers with 5V transceivers, if both transceivers produce a dominant bit, would that cause damage to 3.3V transceiver ?

    Thanks,

    AQ

  • Hi, Thanks!

    Please see my comments below:

    Q1: In recessive state, how would they be biased to 2.5V ? What does weak bias mean ?

    By weak bias I am describing a bus that takes on a steady state voltage that is weakly driven. All CAN transceivers have what is known as a recessive state where the bus is weakly driven to VCC/2. Since it is weakly driven, even one transceiver that is trying to drive a dominant state can over-drive all other nodes that are weakly driving recessive states. This is what enables CAN to have non-destructive bit-wise arbitration. The bias voltage (i.e. 2.5V) is generated through a resistor divider network that divides VCC by two and feeds into a voltage follower that is designed to not  drive much current.

    Q2: When using 3.3V transceivers with 5V transceivers, if both transceivers produce a dominant bit, would that cause damage to 3.3V transceiver ?

    Good question! The good news is no, this situation does not cause damage to 3.3V CAN transceivers. All CAN transceivers will have an absolute maximum ratings table in the datasheet and you will be able to see what voltage the CAN pins can handle in both dominant and recessive states. All of the transceivers at TI can handle more than 5V on the CAN bus pins. If you want to learn more about the interoperability of 3.3V and 5V CAN transceivers I encourage you to take a look at the following two resources:

    An application note two of my colleagues wrote: www.ti.com/.../slla337.pdf  

    And an article I wrote last year: www.planetanalog.com/author.asp

    These will have much more information on the topic. Please let us know if you have any other questions!

    Thanks,

    John