我是SocketCan的新手。我正在使用虚拟罐,我想知道如果SocketCAN根据CAN ID进行优先级排序。我的问题是,因为我正在使用虚拟罐,我正在发送数据,然后我立即收到发送的数据。我将尝试创建一个负载,我期望CAN ID较低的CAN帧在队列中等待更长时间,并且它们将在高优先级帧之后被接收。那么,SocketCAN管理这个优先级吗?
答案 0 :(得分:1)
SocketCAN确实处理实际CAN接口的仲裁,这些接口是时间触发的并且具有比特率。仲裁是必要的,允许优先级较高的消息在传输过程中中断优先级较低的消息,并强制优先级较低的消息等待。
vcan接口不是时间触发的,没有实时硬件,没有比特率,在多任务系统上没有消息冲突的机会,因此不需要仲裁。 vcan消息以处理器的速度“发送”和“接收”,可以计算位数。