Electronic – CAN Physical Layer With Different Characteristic Impedance

buscanterminationtransmission line

The company I have been working for, which is designing a new control system for forestry equipment, has encountered a number of problems with regards to the CAN bus it is using for communication. I work remotely doing design, and as such much of my information is second-hand.

I have been informed that when using a common cable type used in the industry and a data rate of 250kbps, the CAN bus often encounters errors which are frequent enough to stop communication on the bus. The cable used is approximately 15m in length, with 4 conductors for power and ground, and a pair of conductors for data that are not twisted or nor shielded.

Upon my recommendation, the company has now ordered a new cable with a shielded twisted-pair, but I was not involved with the specification of conductor sizes and insulation.

It is my hope that using this new cable will solve problems with regards to the lack of twisted-pairing, however, my concern is that the characteristic impedance of the new cable will not be near 120\$\Omega\$ , as specified for the high-speed CAN physical layer in ISO 11898-2.

When I calculated the characteristic impedance of the new cable using $$Z_o = \frac{276}{\sqrt{\epsilon_r}}*log(\frac{d}{r})$$
where \$\epsilon_r\$ is the insulation relative permittivity, \$d\$ is the distance between conductors, and \$r\$ is the conductor radius

I get a characteristic impedance of 187\$\Omega\$. This is obviously outside the recommendations of the CAN physical layer.

My question remains, to match the characteristic impedance of the transmission line, is it advisable to use a resistor value larger than 120\$\Omega\$? If not, would the difference be negligible enough that 120\$\Omega\$ would work fine or should I be advising them to look at a properly specified cable? I have never come across anything other than 120\$\Omega\$ for CAN, and would prefer that the transmission lines have the required characteristic impedance, but I'm trying to suggest a solution with the current hardware.

Thanks for any suggestions you may have.

Best Answer

15 meters is about 50 feet. round trip in air is 100 feet or almost exactly 100 nanoseconds. If the dielectric Er is 4, the velocity is C/2, making the length be 200 nanoseconds.

Your bit period is 4 uS or 4,000 nanoseconds, or 20X the round-trip cable delay.

You can experiment with Rterm higher than 120 ohm, but I think you should worry more about where to tie the cable shields. What are your plans?

[also read Lundin's answer, with upsets to GND shared with hydraulic valve coils]

Additionally, the current surges on GND and on Power may be trashing the CAN wires, even if the CAN is twisted pair. You can evaluate local-battery approaches to reduce the spikes. Use large ferrite beads in the VDD wiring, or 10 uH or 100 uF inductors that will not saturate at your current levels.

How much trash will the VDD inject into the CAN bus? Assume current spikes of 10mA in 10nanoSeconds (easily 10x larger can occur). Assume VDD is 1mm from the CAN wires. And assume the two CAN wires are 1mm apart.

Use the math Vinduce = [MU0 * MUr * Area/(2 * PI * Distance)] * di/dT

with Area = 15meter * 1mm, and Distance = 1mm.

This is not precise, given the closeness of the wires, but we'll ignore the math errors, so we get an estimate of how much VDD spikes can inject trash into the CAN differential signal.

Set MU0 to 4 * PI * 1e-7, set MUr to 1 (air, copper, FR-7)

Vinduce = 2e-7 * (15m * 1mm) / 1mm * 0.01amp/0.01 uS [ / missing in orig\

Vinduce = 2e-7 * 15 * 1e+6

Vinduce = 30e-7 * 1e+6 == 3 volts.

Thus I think your VDD needs heavy filtering at the load ends.

[ added Aug 9, 2019] Lets consider how to reduce the interference into the CAN wires.

There are THREE tasks here

1) keep the grounds, located 15 meters apart, within a volt of each other so the CAN bus remains error-free (yes, the CAN spec may permit more than 1 volt, but lets play safe)

2) reduce the current transients in the GND and VDD wires, to reduce the magnetic field interference with the CAN buss (the twisted pair CAN wires may help with this)

3) reduce the voltage transients in the GND and VDD wires, to reduce the electric field interference in the CAN buss (the shielded CAN wires may help with this)

Task #1 --- keep the GROUNDs within 1 volt: that is up to your wiring size and the DC currents (and peak transients).

Task #2 --- keep the magnetic field interference low; my approach is to heavily filter the GND and VDD at the load end, with this

schematic

simulate this circuit – Schematic created using CircuitLab

How to tie the TWO ENDS of the shield around the CAN bus wires?

For magnetic shielding, you need current flowing in the shield (at least for a single-center-conductor coax). Here we have nominally-balanced twisted wires, with the symmetry of twist determining how well the magnetic field is symmetrically coupled into the two wires, with common-mode-rejection of the CAN receiver determining the CAN bus tolerance of that trash. This requirement of symmetrically-induced trash means the symmetry of the OTHER 4 WIRES is paramount, yet is not under our control; hence my emphasis on reducing the dI/dT in GND and in VDD wires, by using PI filters.

For electric shielding (assuming the shield is somewhat optically-opaque with dense woven braid or actually fragile-in-repeated-folding foils), the folklore says to ground the shield at the load end, yet this is a bi-directional bus with no "load" end. Hence the option of capacitively-grounding the shield, avoiding DC currents. 1uF at 1MHz is about -j0.16 ohms, thus should be satisfactory. You cannot assume the various LARGE metal pieces of your machinery are electrically-continuous, so are useless as shields.