Electronic – Physical wiring architecture for a CAN Bus

cancommunicationmotorserial-buswiring

I want to wire a CAN bus for multiple motors(BLDC) in robotic arm. I am building out my motor such that they have a controller and a CAN transciever built in. There will be upto 6 motors with the total length of the bus bieng around 1 to 1.5 meter.

What kind of physical architecture is best suited for this kind of application?

Should I daisy chain them or should I use a T connector and drop off a connection for every motor or is there an option better than both? Considering I will have around 6 drop off points.

My main requirements are reliability of data, atleast 256kbps of speed on the CAN Bus, and also, the whole system with the motors will be moving and could be exposed to noise from the motor power line.

Best Answer

You would have a CAN backbone of the typical layout, as shown in this Wikipedia-provided image: enter image description here

You'll want to define how this backbone will be routed in your robot. The resistors will go at each end of the backbone. "T" or "Y" connectors and/or splices are commonly done. CAN "Y" connectors are a reliable way to do it but will be expensive and consume space. Splices are cheap and small but make sure they are reliable.

Given your dimensions, you are well within tolerances for backbone total length and stub lengths.

If each controller drop on the bus has an optional 120 ohm CAN resistor, make sure it is taken off in the drops in the middle and left on in the nodes at the end, such that there are only two 120 ohm resistors in the circuit. As per some CAN specs (J1939) you aren't supposed to put the resistors inside a node, but many (most?) products put them into nodes because it is far cheaper that way. To make sure you did a good job, put a multimeter between CAN High and Low and you should see close to 60 ohms (which is what you get with two 120 ohm resistors in parallel).

For your robot, try to twist the CAN High and Low wires together as they make their run through the robot. For your application I wouldn't worry too much about the number of twists per inch, and frankly it would probably work without twisting, but it gives it some EMI resistance which is probably why you are using CAN.

If you are making your own harness, try to use yellow wire for CAN High and green wire for CAN Low. Those are the standard colors.

Bonus if you get a UTP or STP (unshielded/shielded twisted pair) cable to do your install. If you use shielded, you will need to connect the shield to negative battery. For your application, I suspect you won't need shielded cable and can get away with unshielded cable or unshielded wires twisted together.

You may also check out the DB9 CAN standard - might be useful, or maybe not.

enter image description here