Aurix CAN communication performance issues

Please provide the following info (check/uncheck the boxes after creating this topic):
Software Version
DRIVE OS Linux 5.2.6
DRIVE OS Linux 5.2.6 and DriveWorks 4.0
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
[*] NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version
other

Target Operating System
[*] Linux
QNX
other

Hardware Platform
[*] NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)
other

SDK Manager Version
1.8.0.10363
other

Host Machine Version
[*] native Ubuntu 18.04
other

Hi everyone,

We are using DRIVE AGX Xavier platform and our application requires 4 CAN buses in order to communicate with the vehicle.

As mentioned on the documentation, only CAN 2 and 6 are directly accessed from the Xavier processors, while all remaining 4 channels are accessed from the MCU Aurix processor.

Since our system requires 4 CAN buses, we have opted to use the Aurix CAN configuration and we are in the middle of performing the first tests. During testing we noticed that the Aurix CAN buses present quite poor performance, since the period of the messages is not always steady at 10ms.

On the plot below you can see the performance of aurix can when running the default sample with command:

./sample_canbus_logger --driver=can.aurix --params=ip=10.42.0.146,bus=a,config-file=/usr/local/driveworks/data/samples/sensors/can/EasyCanConfigFile.conf --send_i_understand_implications=10 --send_id=150 --send_size=8

As you can see, from the 4000 recorded samples, the period is almost always maintained at 10ms but every now and then the period spikes to 20,30,40 and even 100 or 110 ms, which is not acceptable for a robust CAN communication.

For comparison, when running the exact same sample with same arguments, using socket CAN the performance is perfect.

./sample_canbus_logger --driver=can.socket --params=device=can0 --send_i_understand_implications=10 --send_id=150 --send_size=8

As you can see on the caption below, for 4000 samples the period is constantly maintained at 10ms with very little error at ~5%.

What is going wrong here? Is there an inherit problem with Aurix CAN interface that creates these delays and can we configure Aurix CAN in another more robust way?

Since our application requires 4 CAN buses this is a major issue for us, so please advise us on what to do.

Dear @aathanas1,
We will check internally and update you

Hi,

Do you have any update on the topic? We are quite stuck at this point, since we cannot establish vehicle communication. Please let me know if there is anything else I can do to support your analysis.

Dear @aathanas1,
The EasyCAN interface(in DRIVE OS 5.1) ie ethernet packet from Xavier to Aurix and then Aurix forwarding to CAN is only for demo and not for high performance usecase.

We have deprecated EasyCAN when we moved to Vector Aurix firmware(CAN Gateway in DRIVE OS 5.2)

Hi and many thanks for your answer.

Is it possible to update only the AURIX MCU Firmware without updating DRIVE OS + DW? We would like to still use DRIVE SW 10, so please let us know if it is possible.

Additionally, when updating to Vector FW, which is intended for high performance use case, will we be able to use 4 CAN buses at 500kbps baud rate? I guess that depends on the details of the Gateway solution you have used.

I had located a documentation for EasyCAN solution (DRIVE-V5.1.6-E3550-EB-Aurix), can you please point me to the corresponding documentation for Vector Aurix FW?

If you can point me to the corresponding documentation for updating DRIVE SW 10 to DRIVE OS 5.2 + DW 4.0 and downgrading again to DRIVE SW 10 (in case it is needed again) would be great.

Many thanks in advance.