7. CAN总线优先级及同步
7.1 优先级的决定
在总线空闲态,最先开始发送消息的单元获得发送权。
多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。
仲裁的过程如图 29 所示: 前面的单元1和单元电平都一样,到后面单元1是隐性电平,单元2是显性电平,显性优先级更高,则单元2的优先级更高,获得发送权,而单元1则变为接收状态。
7.1.1 数据帧和遥控帧的优先级
具有相同 ID 的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性位的数据帧具有优先权,可继续发送。
数据帧和遥控帧的仲裁过程如图 30 所示:
7.1.2 标准格式和扩展格式的优先级
标准格式 ID 与具有相同 ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的 RTR 位为显性位的具有优先权,可继续发送。
标准格式和扩展格式的仲裁过程如图 31 所示。
7.1.3 优先级法则
数据帧和遥控帧的仲裁段用于多个节点竞争总线时进行仲裁,优先级高的帧获得再总线上发送数据的权利。优先级的确认总结为以下几条法则:
在总线空闲时,最先开始发送消息的节点获得发送权;
多个节点同时开始发送时,从仲裁段的第一位开始进行仲裁,第一次出现各节点的位电平互异时,输出显性电平的节点获得发送权;
相同ID和格式的数据帧和遥控帧,数据帧具有更高优先级,因为数据中的RTR位时显性电平,而遥控帧的RTR位时显性电平;
对于11位标准ID相同的标志数据帧和扩展数据帧,标准数据帧具有更高的优先级,因为标志数据帧的IDE位时显性电平,而扩展数据帧的IDE位时隐性电平。