Electronic – Controller Area Network (CAN), high speed and low speed

baudratecan

  1. Is the difference between high- and low-speed CAN only with respect to baud rate values?

  2. Is the CAN transceiver programmable for a range of speeds or is it fixed for a specific value? For example, can a high-speed transceiver can be programmed for 500 kbit/s or 1 Mbit/s?

  3. What happens when a high-speed node is connected to a low speed node in the same network? Is it possible to get the data? Does it cause error frames?

Best Answer

High Speed CAN and Low Speed CAN has difference in Physical Layer implementation. Bosch's CAN standard talks about Data link layer and Network layer but it left out "Physical Layer". (IMO)Reason being, it could be optimizied in Future.

Coming to question, High Speed CAN is defined in standard ISO11898-2 while ISO11898-3 talks about Low Speed CAN.

  1. High Speed and Low Speed does have differences in Baud Rate. High Speed works from 10kbit to 1Mbits/sec and Low Speed restricts to 125kbps. Another major difference is Termination Resistance. High Speed CAN requires 120 Ohm termination on the bus while Low Speed CAN devices are self terminated (Every Device has Termination). Termination Resistors are to avoid Standing waves which would be significant in case of High Speed and Longer Bus lengths which is not significant in case of Low Speed CAN. Another Difference is High Speed CAN won't work if there is problem in Wiring but Low Speed CAN can work on Asynchronous network as it is terminated/grounded at every node. That's why Low Speed CAN is called as "Fault Tolerant CAN".

  2. CAN transcievers can be programmed to ANY value provided ALL devices on the bus are on same baud rate. (See this Question for details)

  3. If you connect High Speed Device on Low Speed Device network and if All nodes on bus have same baud rate, This High speed device will generate error frames until you connect a 120ohm terminator. Otherwise there would not be any issue as both have same voltage levels.