I am new to SocketCan. I am using virtual can and I want to know that if SocketCAN does prioritization based of CAN ID's. My question is, since I am using virtual can, I am sending the data and then I receive the sent data immediately. I will try to create a load and I will expect the CAN frames with lower CAN ID'S wait longer in the queue and they will be received after high priority frames. So, does SocketCAN manage this prioritization?
Asked
Active
Viewed 518 times
0
-
I used socketCan before but for RawCAN interface (not virtual). According to my knowledge there is a possibility to send one CAN frame at a time but not a bunch of frames (stored in a buffer). Are you sure this feature is supported? – Aymen Jan 13 '15 at 20:37
-
I dont know if it stores the frames in buffer.But it has to do that to arrange the frames according to priorities. Do you mean the real can interface or virtual can interface by saying that it doesnt store frames? – neavyseal Jan 15 '15 at 08:22
1 Answers
2
SocketCAN does handle arbitration on actual CAN interfaces, which are time-triggered and have a bitrate. Arbitration is necessary to allow a message of higher priority to interrupt messages with lower priority in the middle of transfer, and to force messages with lower priority to wait.
The vcan interface is not a time-triggered, has no real-time hardware, no bit rate, no chance of message collision on a multitasking system, thus has no need for arbitration. vcan messages are "sent" and "received" at the speed of your processor can count bits.

brirus
- 81
- 6