I am looking to develop a CAN Bus System employing up to 1000 nodes on a single network. I am using an existing design based on STM32F072CB that has the CAN Controller embedded along with TJA1050 as the CAN Transceiver. Below is a detailed insight:

The Master is going to be a Personal Computer which will use a RS-232 to CAN Bus Transceiver to send commands to 999 slaves. The slaves all have a STM32F072CB Processor and a TJA1050 CAN Bus Transceiver. Each slave will have a stepper motor with them and the purpose is to drive the stepper motors based on configuration parameters set. The purpose of CAN Bus is to send configuration commands to all slaves. The data rate can be very slow here as well. The master will not continuously send commands but only when needed maybe only once a day. The processors on slaves will store the configuration parameters and do all the processing / feedback comparison such as Planned Position vs Current Position or Planned Speed vs Current Speed. Slaves however will have to report back their status to master every 0.5 Seconds whether there is an error in reading or not.

The maximum length of the whole setup will be 400 meters and the nodes maybe variably placed across this length i.e not equidistant.

My queries are: What is the best approach / strategy to build a fault tolerant system having 1000 nodes? I understand that I will have to compromise on the data rate which is completely fine in my requirement but what will be maximum limit I can achieve?

Can the current design support my requirement? The TJA1050 is HIGH Speed CAN Transceiver but I believe I will need to adapt Low Speed CAN Bus design. Am I correct in this assumption?

What should be the hardware design practices in this regard? Is there a document or reference that can help set me up on the correct path? I believe I will have difficulty in achieving such high number of nodes. Is this possible?

I am open to changing the system from having a single network to multiple CAN-CAN links, is this more feasible? If so, what is the best design approach in this scheme?

  • 2
    \$\begingroup\$ Wasn't this or similar just asked within a week or two? I can't find it now, but answer is same from CAN application notes: you can't have 1000 CAN nodes on a bus, practical limit is 110. The application notes also give practical examples of data rates vs bus length. Have you tried to do any research before asking? \$\endgroup\$
    – Justme
    Aug 5, 2021 at 10:09
  • \$\begingroup\$ 1k nodes is A Lot. Are you sure you can't use Ethernet? \$\endgroup\$
    – pjc50
    Aug 5, 2021 at 10:13
  • 2
    \$\begingroup\$ You may want to track down John Dammeyer, who did much of the technical work on the Vancouver Olympic rings, which had a total of 742 nodes. There's some information here (be sure to scroll all the way to the bottom). I believe he still hangs out on CANLIST, which might be a better place for this sort of question anyway. \$\endgroup\$
    – Dave Tweed
    Aug 5, 2021 at 10:45
  • \$\begingroup\$ So your PC drives 10 separate Can Bus networks of 100 nodes. 10 kbit/s will give you 1 km. \$\endgroup\$ Aug 5, 2021 at 18:44

1 Answer 1

  • 1000 nodes can't be on single bus
  • 100 kbps is suggested for 500m bus length
  • TJA1050 is a high speed device, although intended between 60kbaud and 1Mbaud, it may be too fast for your bus and you may need a slower transceiver.
  • TJA1050 guarantees operation with at least 110 nodes. It might work with more depending on environment, but it is not guaranteed to work with 111 nodes or more.
  • Low speed CAN is fault tolerant
  • Depending on specs and standards, node count could be limited to much lower than 100

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.