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.

How to gain deep knowledge of Vector CANoe to solve missed CAN messages problem ?

Status
Not open for further replies.

jani12

Member
Our Electronic Control Unit (ECU) is based on Renesas RH850F1L Microcontroller. We basically have closed loop control system.

Outputs of this ECU power DC Motors to move Third-Row Minivan Seats.

ECU inputs are coming from DC Motor. This feedback signal is hall pulses indicating whether motor is turning or not or whether seat is moving or not.

The software running in the ECU talks to PC Based CAN tool. They talk over simple proprietary protocol. They basically talk over 11-bit CAN.

When the seat is moving, every 10ms, software running in the ECU sends seat position message to PC Based CAN Tool. When seat is at position 1, position 1 message is sent to the tool. After 10ms, position 2 message is sent to the tool. After next 10ms, position 3 message is sent to the tool, and so on.

If everything is working correctly, over 1000 consecutive position messages will be sent to the tool. Time between these messages will be about 10ms.

The problem is that from time to time messages are getting missed. The message that don't make it to the tool also don't show up in the CAN log.

First 80 position CAN messages are correctly sent by ECU and correctly received by the tool.
Position messages 81 through 84 don't show up in the tool. Also, they don't show up in the CAN log.
Position messages 85 to 122 are correctly sent by ECU and correctly received by the tool.
Position message 123 doesn't show up in the tool. Also, it's missing from the CAN log.
Position messages 124 to 177 will be correctly sent by ECU and correctly received by the tool.
Position message 178 to 181 don't show up in the tool. Also, they don't show up in the CAN log.

And so on.

I'm using very complex CANoe Configuration File that was created by someone else. It's overwhelming. There are so many nodes, so many message in CAN Trace.

From where do I begin to debug this problem.

11-bit proprietary protocol messages are exchanged between ECU and tool. Also, CANoe is sending so many messages. I don't even know what all these messages are. I have a hint as follows:

Hint: CANoe sends messages to ECU in bursts. Instead, it needs to send them at slower rate. This might be the reason low priority position messages are missed from ECu. Turn off some nodes in CANoe.
This shouldn't be ECU software problem because it's not sending messages in bursts.

This is challenging problem for me because I don't have sufficient CANoe knowledge. Please help debug this problem.
 
Are you able to post a CAN log? You give an example of missing messages where one or four messages are missing. Are those the same each time you run it?

Is the data the seat position? If that is being sent every 10 ms, then the value may not go up by 1 each time.

The CANoe tool is a simulation tool, and wouldn't be used on a vehicle in normal running. What are you trying to do with this?
 
I can't post a CAN log because the position CAN messages are sent using a proprietary protocol. However, I can provide some details about CAN logs.

can log 1:
Position messages 1 to 19 received
Position message 20 not received
Position messages 21 to 24 received
Position messages 25 to 27 not received
Position messages 28 to 76 received
Position message 77 not received
....


can log 2:
Position messages 0 to 2 received
Position message 3 to 4 not received
Position messages 5 to 99 received
Position message 1000 not received
Position messages 101 to 193 received
Position messages 194 to 195 not received
....


Same messages aren't missing each time I run the seat.

Yes, data is the seat position. Typical time between messages position messages in CAN log is around 10ms. ECU Software is designed to send every position message to PC based CAN tool.

CANoe tool basically simulates real vehicle environment. There are number of nodes in CANoe that simulate real vehicle nodes. These nodes transmit up to 8-bit CAN messages to ECU. Messages such as AJAR Tailgate. Messages needed to operate the seat in real vehicle. So, CANoe is need to run the seat. Therefore, CANoe is transmitting messages to ECU. On the other hand, ECU is transmitting position messages to PC based CAN tool using proprietary protocol.
 
Is it CAN contention that is stopping the messages? How heavily loaded is the the CANbus? Does the seat ECU have a suitable message stack so that it can work out when a message that it is trying to send is being stopped by a higher priority message, and does it have a protocol for retrying the message transmission?

I don't know why you are worried about posting a CAN log. Without the database to say what the messages mean, the raw dat for the messages will mean little.
 
@Driver300 - Thank you for the reply.

So far I know when I turn OFF various CAN messages transmitted by CANoe to ECU, problem is fixed. I see all motor positions in my CAN based tool. Things seem to work fine when CAnoe is only sending Three periodic messages to ECU. All other messages sent from CANoe to ECU are turned OFF.

Bus load about 30%
Peak load about 32%
Std. Data 334 fr/s

I don't know if seat ECU has a suitable message stack. I also don't know if it has a protocol for retrying the message transmission. Could you please guide me how I can learn the source code to figure this out.

Attached is CAN log.
 

Attachments

  • CANOE_LtSSM_Missing_Speed_Event.asc
    1 MB · Views: 346
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top