CAN-sends its own identifier

Status
Not open for further replies.

Emb4U

Member level 3
Joined
Jan 18, 2014
Messages
56
Helped
9
Reputation
18
Reaction score
8
Trophy points
8
Location
Bangaluru
Activity points
321
If a node sends its own identifier then what happened on the bus in CAN ?

And please tell me if there is a error then which error and what is the bus effect ?
 

Dear senior members please help me on this.
 

If a node sends its own identifier then what happened on the bus in CAN ?

And please tell me if there is a error then which error and what is the bus effect ?
The identifier in CAN is not a destination identifier. There is no such thing as an ID for each node on the bus. The ID serves to describe the content of the message. For example, in an engine controller bus, one module could transmit temperature from a sensor. The ID says "this is temperature". Multiple modules could be set to receive that message.
 

Actually my question is, when a node sends its own ID then there must be a error occurs.I want to know that which error that was.

please suggest me some answar
 

Actually my question is, when a node sends its own ID then there must be a error occurs.I want to know that which error that was.
You still don't understand the role of the ID. You think that every node has a unique ID and when one nodes sends a message, that message is directed to a specific different node, and only that node is supposed to respond. This is wrong. When a node puts a message one the bus, the ID is used for arbitration, and it is also used for receiver filtering. All nodes on the bus are capable of receiving messages with any ID. But for performance reasons, since most of the messages are of no interest to many of the nodes, most nodes implement receiver ID filtering. That filtering is normally carried out at the hardware level without real-time processor intervention. The filtering determines which IDs are passed along to the processor and which IDs are ignored. In general, it is possible that one message sent from one node can be simultaneously received by several other nodes. Furthermore, it is possible for one node to transmit messages with several different IDs.

Now it is true that some protocols built on CAN do utilize the ID as a destination node identifier. But that would be an aspect of that particular higher-level protocol, and not a part of the basic CAN protocol.

The example I gave earlier bears repeating. In an automotive application, the nodes on the Engine Controller bus can include sensors. One such sensor could be a temperature sensor. That sensor could periodically send out CAN messages with an ID that means "This is the temperature". Any node interested in the temperature can be set its receiver filter to respond to that ID, and multiple nodes can receive the temperature at once.

I guess the closest I can come to your "error condition" is what will happen if a node sends a message with a certain ID and at the same time has its receiver filter set to respond to that same ID. In that case I think it depends on the CAN controller. I think most hardware CAN controllers will receive the message that they are sending if the filter is set to respond to that message ID. But some CAN controllers may be set to automatically suppress reception whenever that module is transmitting. In either case it is not an "error condition". If the the module ignores its own transmissions, then fine. If a module receives its own transmissions, then also fine, provided that the higher level processing of received messages is smart enough to do the right thing with that message. But there is no bus error or any other kind of CAN protocol error generated in these cases.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…