Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

All ECU public CAN channels are on different CAN networks?

jani12

Member
Consider an Electronic Control Unit (ECU) mounted in a vehicle. Let's say this ECU has Three CAN channels as follows:

CAN 1
CAN 2
CAN 3

Do these Three CAN channels have to be on different CAN networks? Another words, for example, CAN 1 and CAN 2 are never on the same CAN network?
A
It wouldn't make sense to connect CAN 1 and CAN 2 on the same network because why would ECU want to receive what it transmits? And why ECU want to receive identical information on CAN 1 and CAN 2?
 

Diver300

Well-Known Member
Most Helpful Member
There is no particular reason why three CAN ports on one ECU would always have to be separate.

An ECU doesn't usually need to receive on one port what it transmits on another, but receiving data from itself is highly unlikely to be a problem. I made some points about that here:- https://www.electro-tech-online.com...en-j1939-extended-can-vs-j1939-can-fd.163102/

Also, any data sent on any CAN port is anyhow received by the module that sends it. There are not separate receive and transmit wires. The signal levels are monitored as the message is sent, so as to implement bus arbitration (https://en.wikipedia.org/wiki/CAN_bus, section on data transmission), to check for errors, and to check that the frame is acknowledged, so it's normal for a module to see it's own data.

Messages on CANbus rarely have a destination address. They usually just have an ID, the 11 bit address. The are transmitted whether or not there is anything listening to them, unlike on Ethernet connections.

A single ECU would normally only be made with the number of CAN ports that are needed for the application, and multiple CANports would be needed when:-
One CANbus is loaded so much that a second is needed
Data transmitted or received by the ECU has to be on a different bus, or running at a different data rate
Some security is needed so that the CANbus on the OBD port doesn't have access to some information
and probably several other reasons.

However, ECUs often get used in different applications, where the vehicle is configured differently, or some other module changes. Vehicle manufacturers don't redesign every module for every production year for every car, so there may well be changes that mean that data that was on separate CAN busses in one car, can be on a single CANbus in another car.

There are also good reasons to connect one CANbus to more than one port on a single module, such as:-
Removing the need to reprogram or reconfigure a module that is used on multiple cars.
Providing a connection to a CANport so that transmission errors don't occour, even if the transmitted signals aren't actually needed anywhere else on the car.
Providing CANbus termination.
 

jani12

Member
There are also good reasons to connect one CANbus to more than one port on a single module, such as:-
I didn't understand the reasons. What does not needing to reprogram a module that is used in multiple cars have to do with connecting one CANbus to more than one port on a single module?
 

Diver300

Well-Known Member
Most Helpful Member
I didn't understand the reasons. What does not needing to reprogram a module that is used in multiple cars have to do with connecting one CANbus to more than one port on a single module?
One possible reason would be that a module is designed with data on two separate ports. For example, I'll assume it has operational data on one port and diagnostic data on another.

Then the module is used on a second car, one that has the diagnostic data and operational data on the same CANbus.

So the manufacture has a choice. They could connect the one CANbus on the second car to both ports on the module, and everything works. There is very little cost as the module is already designed.

Alternatively, they could reprogram the module to communicate the diagnostics and operational data on the same port. So they would avoid the wires that link the two ports. Of course the module would need new software so that it could accept diagnostics on the data port. That alone would be tens of thousands of dollars to develop and test.

If the first car has the diagnostics on the second port for security reasons, then the software would have to be made in two versions, one that accepts diagnostics on the data port, and one that doesn't. Each software update that happens from then onwards would have to be different for the two versions.

Also the module for the second car would be a different part number, another item that needs to be stocked separately, and spares kept separately. If the two cars are ever going to be built in the same factory, the two modules probably need some sort of physical differentiation, such as connector keying being different, so the housing has to be changed, at extra expense.
 

Latest threads

New Articles From Microcontroller Tips

Top