Hi,
I am wondering where we can find CAN_PAL program throughput test data (in bps) with 1Mbps CAN bus?
Test program shall use CAN_PAL api on S32K14x device.
- Loopback throughput: one S32K14x in loopback mode.
- Two S32K14x devices (1 sender and 1 receiver) on a CAN bus.
Regards,
Yanfeng
Robin,
Thanks for the information.
Here we did a simple test on S32K146EVB, using loop back mode with FreeRTOS.
The initializer sets up CAN_PAL device in loopback mode, and sets speed as 1Mbps, installs our ISR callback. Then it starts two test tasks, which contain the following loops:
- Sender loop: 1) call CAN_Send() API, 2) wait for txSemaphore;
- Receiver loop: 1) call CAN_Receive() API, 2) wait for rxSemaphore;
In our CAN_PAL callback, we notify the txSemaphore or the rxSemaphore accordingly.
However, the throughput we got is about 1000mps for both sender and receiver tasks. Given we are using 8 byte standard CAN message, this is about 110kbps, far from the 1Mbps value.
Can you please share what was missed here?
Regards,
Yanfeng
Thanks a lot, @Robin_Shen and @Brunner35 for your comments.
We've achieved about 600Kbps in loopback mode now after tweaking task synchronisations. If there is a way to achieve higher throughput, please teach.