CAN support in RLP - enhance RLP

Hello everybody,

is there a CAN support in RLP, or can I enhance RLP?
How?
:slight_smile:

Thanks a lot,
best regards
Andreas

Using RLP is only beneficial if you are parsing data in RLP but if you just want to read data then the driver we provide is faster than RLP.

Hi Gus,

thanks for your reply…

I want to create some sort of CAN-Monitor with a busload calculation, displayed with some sort of progress bar that
I build with moving rectangles :wink:
Do you think it is fast enough to use your driver than calculate the busload native?

How could an enhancement of RLP be done?

Best regards
Andreas

Which module/chip are trying to use for the application?

the USBizi Will not be able to handle message that are sent faster than 3ms.

so the max baudrate for get an accurate busload monitor (linear scale up too 100%) is about 100kbit/s. this is when all bits in CAN package is used DLC = 8.

you also need to have some performance left for the rending part.

one solution is to set a timer at 100ms and just look at the message counter propertie for the CAN handler and Clear the counter after each event. with this solution you would be able to get a accurate monitor even up to full CAN 2.0B speed.
but you Will need a big buffer to not get overrun error at that speed.

I am using an EMX.

“the USBizi Will not be able to handle message that are sent faster than 3ms.”
-> The .NET environment, or the native code? Where did you get this number?

That was one of my first ideas, to capture the message input for a few 100 ms and then calculate the
speed. I will try that…

I have written many CAN application for proffesional use with GHI lib and I have made tests to measure the performance of it.

…ah, okay…do you think we can increase the messages that are handled (at least counted)
by using native code? And call this function e.g. every 500ms?

if you use GHI CAN lib you can select the size of the buffert.

I dont remeber how big the actual CAN buffer is in the LPC chip.
But you could use the register class and read the internal CAN message counter register after you have set it up with the GHI lib.

this Will be the fastest way to read the counter. but I dont think the internal buffer is bigger than 8 messages.