首页 > 其他分享 >CAN总线仲裁(四)

CAN总线仲裁(四)

时间:2024-06-23 14:00:20浏览次数:10  
标签:总线 电平 发送 仲裁 ID 设备

多设备同时发送遇到的问题

CAN总线只有一对差分信号线,同一时间只能有一个设备操作总线发送数据,若多个设备同时有发送需求,该如何分配总线资源?

解决问题的思路:制定资源分配规则,依次满足多个设备的发送需求,确保同一时间只有一个设备操作总线
​​
在这里插入图片描述

资源分配规则1 - 先占先得

  • 若当前已经有设备正在操作总线发送数据帧/遥控帧,则其他任何设备不能再同时发送数据帧/遥控帧(可以发送错误帧/过载帧破坏当前数据)

  • 任何设备检测到连续11个隐性电平,即认为总线空闲,只有在总线空闲时,设备才能发送数据帧/遥控帧

  • 一旦有设备正在发送数据帧/遥控帧,总线就会变为活跃状态,必然不会出现连续11个隐性电平,其他设备自然也不会破坏当前发送

  • 若总线活跃状态其他设备有发送需求,则需要等待总线变为空闲,才能执行发送需求

资源分配规则2 - 非破坏性仲裁

  • 若多个设备的发送需求同时到来或因等待而同时到来,则CAN总线协议会根据ID号(仲裁段)进行非破坏性仲裁,ID号小的(优先级高)取到总线控制权,ID号大的(优先级低)仲裁失利后将转入接收状态,等待下一次总线空闲时再尝试发送

实现非破坏性仲裁需要两个要求:

线与特性:总线上任何一个设备发送显性电平0时,总线就会呈现显性电平0状态,只有当所有设备都发送隐性电平1时,总线才呈现隐性电平1状态,即:0 & X & X = 0,1 & 1 & 1 = 1

回读机制:每个设备发出一个数据位后,都会读回总线当前的电平状态,以确认自己发出的电平是否被真实的发送出去了,根据线与特性,发出0读回必然是0,发出1读回不一定是1

回读的意思就是,某个设备作为发送方发出一个数据位后,某个设备作为发送方发出一个数据位后,发送方自己,它也会接收这个数据位,确认自己发出的电平是否被真实地发送出去了,因为,根据线与特性,我发出1,如果有别的设备也在发送数据,别的设备发送了0,那么我读回的数据,就不再是1了,因为我的数据1,被别设备的数据,损坏了,这个现象,对仲裁就很重要,我发出1,但是读回的是0,这说明总线上有别的设备,所以这时候,我就退出,不再跟别设备抢总线资源了

非破坏性仲裁过程

  • 数据位从前到后依次比较,出现差异且数据位为1的设备仲裁失利
    在这里插入图片描述

问题:为什么ID小的优先级高

从这个仲裁过程可以看出来,ID号越小,其二进制数据的1出现的就越晚,ID号越大,1出现的就越早,ID号出现差异,且发出数据1的仲裁失利。

数据帧和遥控帧的优先级

  • 数据帧的优先级高于遥控帧
    在这里插入图片描述

    11位相同ID,不能给两者分出高下,这时,就要靠仲裁段的最后一位RTR来决断了,RTR位,遥控帧定义为1,数据帧定义为0,所以单元1会仲裁失利

标准格式和扩展格式的优先级

  • 标准格式的优先级高于扩展格式(SRR必须始终为1,以保证此要求)
    在这里插入图片描述

  • 11位ID号发完,单元1和单元2都没有分出胜负,接着下一位,单元1发出的是SRR位,SRR位,在扩展数据帧中,必须始终为1,单元2,此时要发出RTR位,因为单元2是数据帧,RTR位是0,所以单元1仲裁失利。

  • 当然标准遥控帧优先级也是比扩展数据帧优先级高,因为RTR后标准遥控帧仲裁段虽然结束了,但是扩展数据帧仲裁段仍然没有结束,标准遥控帧RTR之后,跟的是IDE扩展标志位,因为它是标准帧,所以下面IDE为0,而上面,扩展数据帖SRR之后跟的也是IDE,因为它是扩展帧,所以上面IDE为1,在这一位,虽然标准遥控帧已经不再执行仲裁了,但是扩展数据帧仍然执行仲裁,并且扩展数据帧会出现“发1读0”的情况,所以,扩展数据帧仲裁失利,转入接收状态。

标签:总线,电平,发送,仲裁,ID,设备
From: https://blog.csdn.net/weixin_62476152/article/details/139772080

相关文章

  • AMBA总线笔记1-APB设计要点
    1.APB2框架    APB是一种低功耗、低速度外设总线,主要用于连接外围设备和低速外设,如定时器、GPIO(通用输入输出)、串口控制器等。因其低功耗和相对简单的设计,适合于对性能要求不高的外设连接。        在实际的SOC架构中,APB往往就以以下形式出现:    A......
  • AMBA总线笔记2-AHB协议
    1.AHB介绍和组成    AHB是针对高频率高频宽及快速系统模块设计的总线,构成包括主设备master、从设备slave、仲裁器arbiter、译码器decoder。每个AHB都需要一个仲裁器和一个译码器且只有一个。2.AHB、AXI、APB对比总线AHBAXIAPB宽度32,64,128,2568,16,32,64,128,256,512,10248,1......
  • 基于AUTBUS总线的分布式储能监控系统
     ......
  • 485总线8路4~20mA模拟量采集模块DAM3158A电压电流信号可同时采集
    阿尔泰科技485总线模拟量采集模块DAM3158A电压电流信号采集简要介绍:     阿尔泰科技DAM3158A/3158系列为8路模拟量输入,RS485通讯接口,带有标准ModbusRTU协议。可方便链接:组态王、力控、易控、MCGS等组态软件同时也可以和昆仑通态、威纶通等触摸屏及无线DTU一起使......
  • 数据采集与控制> 数字I/O卡 > PXI2371,PXI总线,离散量输入输出卡,每通道可通过跳线实现切换
    数据采集与控制 > 数字I/O卡 > PXI2371/2372/2373本章主要介绍237X的系统组成及基本特性,为用户整体了解237X的相关特性提供参考。产品简介237X板卡是本公司推出的一系列高密度离散量输入输出卡,每通道可通过跳线实现切换电源/开、电源/地、地/开三种输入状态选择,输入通......
  • 【总线】AXI4第二课时:深入AXI4总线的基础事务
                    大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁。......
  • 【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验3 总线型以太网的特性(广
    一、实验目的1.验证总线型以太网的特性;2.验证广播特性;3.验证各主机对总线的竞争使用以及可能产生的碰撞。二、实验要求1.使用CiscoPacketTracer仿真平台;2.观看B站湖科大教书匠仿真实验视频,完成对应实验。三、实验内容1.构建网络拓扑;2.配置网络设备;3.跟踪并查看......
  • STM32学习笔记(十)--I2C、IIC总线协议详解
    概述:InterIntegratedCircuit,一组多从多组多从有应答是一种同步(具有时钟线需要同步时钟SCL)、串行(一位一位的往一个方向发送)、半双工(发送接收存在一种)通信总线。(1)硬件电路所有I2C设备的SCL连接在一起,SDA连在一起            设备的SCL和SDA均要......
  • I2C 总线
    I2C总线简介I2C(Inter-IntegratedCircuit)总线是一种用于连接电子设备的串行通信协议。它由Philips公司于1986年开发,用于在主板和集成电路之间进行通信。I2C总线是一种简单、经济、可靠的双线制同步串行通信协议,因其易于使用、成本低廉、抗干扰能力强等优点而得到了广泛应用......
  • 【PXIE301-208】基于PXIE总线架构的Serial RapidIO总线通讯协议仿真卡
     板卡概述       PXIE301-208是一款基于3UPXIE总线架构的SerialRapidIO总线通讯协议仿真卡。该板卡采用Xilinx的高性能Kintex系列FPGA作为主处理器,实现各个接口之间的数据互联、处理以及实时信号处理。板卡支持4路SFP+光纤接口,支持一个PCIex8主机接口,板载1组独立的6......