Wire-AND Bus Logic:只有节点发送的全是隐性,总线电平才表现为隐性;Arbitration Logic:所有发送节点在发送数据的同时,也检测总线上的电平状态。如果总线电平状态与它发送的电平状态一致,则继续发送(Next);如果发送为显性,总线电平状态为隐性,则传输出现故障(Fault);如果发送为隐性,总线电平状态为显性,则该节点退出对总线占用权的竞争(Stop);节点A和节点C同时向总线上发送数据,在仲裁阶段,逐位对比总线上电平与自身发送的电平,在标识符的第四位(ID7),节点C检测到总线上电平与其自身发送电平不一致,它自动退出对总线的竞争,节点A则继续发送数据。具有相同ID的数据帧和远程帧在总线竞争时,仲裁段最后一位(RTR)为显性位的数据帧具有优先权,可继续发送。标准格式ID与具有相同ID的远程帧或者扩展格式的数据帧进行总线竞争时,标准格式的RTR位为显性位的具有优先权,可继续发送。
CAN总线上的逐位仲裁机制与I2C总线的仲裁都应用到线与逻辑的电路基础,不同的是I2C的仲裁只是在主机间进行,而CAN总线没有主从机的概念。另外I2C的消息本身是不分优先级的,而CAN消息则是带优先级,有的消息出身高贵(标识符值越小),在仲裁中总会取胜。为消息划分优先级比较适合于实时控制系统,这样可以确保重要的信息优先发送,相对次要的消息延迟发送,系统设计师应该根据应用的特点为不同消息确定不同的优先级(标识符),在类似DeviceNet这些规范组织的定义中,对于同样类型的消息,比如温度传感器,即使它们可能来自不同的供应商,但消息标识符是一致的。对于车身控制CAN网络(舒适+信息娱乐),其特点是消息标识符种类多,而且消息发送没有固定频率或规律,在此类应用的CAN控制器,例如 Freescale 的 MSCAN(Motorola Scalable Controller Area Network)的设计中,控制器内部包括FIFO寄存器,它将具有相同标识符的消息按顺序保存,从而避免接收缓冲器溢出。而对于动力系统控制的CAN网络,总线上的消息特点是速度快,但是存在一定规律,此类应用的CAN控制器,例如Freescale的FlexCAN(CAN 2.0B-Compliant),它包括16~64个称为“mailbox”的接收缓冲器,运行时根据特定的过滤规则,将不同标识符的消息送到各自对应的mailbox。