1

I'm trying to connect an automatic car gearbox which is using the CAN bus at 250 kbit/s to car with bus speed 500 kbit/s.

  1. Is it possible to have nodes with different speeds on the CAN bus?

  2. If it is not possible to have different speeds, is there a way to accomplish what I want to do? Anyway, a starting point would be great.

Peter Mortensen
  • 1,676
  • 3
  • 17
  • 23
sDev
  • 55
  • 2
  • 10
  • 2
    1) No. 2) Unlikely. – Eugene Sh. Jul 04 '16 at 20:13
  • Well, you could toss a MCU inbetween, with two CAN interfaces (one for each speed) that would do the bridging. – dim Jul 04 '16 at 21:00
  • @dim It will work only if the device and the overall traffic is low-bandwidth. Otherwise it will just miss packets. – Eugene Sh. Jul 04 '16 at 21:17
  • See http://electronics.stackexchange.com/questions/95900/controller-area-network-can-high-speed-and-low-speed – Dmitry Grigoryev Jul 04 '16 at 21:19
  • @EugeneSh. Of course. I assumed a gearbox doesn't send/receive commands at a high rate, wich may be wrong. Moreover, even if OP manages to make that part work, I'm not sure you can change car parts like that hoping that every node on the CAN network will still happily talk to each other, and to the new hardware. – dim Jul 04 '16 at 21:24
  • @dim, So its not possible to do that? I would happily try any commercial or open source product if you know about , the cost isn't matter here. Thank you – sDev Jul 05 '16 at 03:50
  • @Dmitry Grigoryev, I've read that post which is about connecting high speed can to low speed bus which is opposite to what I'm trying to do. – sDev Jul 05 '16 at 03:55
  • @sDev Well, I may be wrong because, although I know CAN, I don't know how they use it in a car. But CAN specifies the lower layers of the protocol, but there is no standard saying what frames are sent when, for example, the gear change occurs. So if you put a gearbox that comes from another car brand/model, that certainly won't work better than just not connecting the CAN bus to it. You would need the whole car to be open source (and the gearbox) to fix that. – dim Jul 05 '16 at 05:45

1 Answers1

4

Basic CAN protocol doesn't support nodes running at different bitrates:

The speed of CAN may be different in different systems. However, in a given system the bitrate is uniform and fixed.

The newer version of the protocol called CAN FD, provides support for flexible data rate, as its name suggests. Legacy CAN hardware is supported on CAN FD networks, however, it still has to run at a given fixed bitrate.

I think your only option is to buy a router. Here is an example of a CAN router which supports 4 channels with independent bitrate configuration.

Dmitry Grigoryev
  • 25,576
  • 5
  • 45
  • 106
  • Thank you for the information , I'm going to buy one when its available . – sDev Jul 05 '16 at 09:49
  • @sDev I advise you to look for a router on your own, you may end up finding a more suitable and/or cheaper product, available immediately. I literally typed "can router" in the search box and clicked on the first relevant link, just to show you what such routers look like. Take your time, compare, read the specs before you pay $700 for it. – Dmitry Grigoryev Jul 05 '16 at 09:53
  • I am afraid you are wasting your time. If you have a different bitrate, likely the information is not compatible, as the product is designed for a different network. Even if you put a proposed gateway correcting the speed... the messages will probably make no sense and it will not work. – EmbeddedGuy Feb 25 '17 at 23:49