CAN总线仲裁机制

发布者:平安心境最新更新时间:2015-09-10 来源: eefocus关键字:CAN总线  仲裁机制 手机看文章 扫描二维码
随时随地手机看文章
    最近在学习CAN总线,原先一直不太明白,若有A,B  2个节点同一时刻一起向总线上发送数据,CAN总线是怎么仲裁的,来让A,B其中一个节点退出,保证高优先级的节点优先传输,今天又在网上查了一些资料,总算搞明白了一些。

    在CAN总线上,若同一个时刻,既有节点向总线上发送隐形电平(1),也有节点发送显性电平(0),那么此时总线上表现出来的为显性(0)。

    当总线空闲时,有多个节点同时需要发送报文,那么每个节点的发送器将会对发送位的电平和被监控的总线电平做比较,如果电平相同,那么该节点可以继续发送,如果发送的为一“隐性”电平(1),但是监控到一“显性”电平(0),那么该节点失去仲裁,必须退出发送状态,只到下一次总线空闲的时候在参与总线的仲裁竞争。

     由以上也可以看出,当有多个节点同时争夺总线的控制权,ID最小的那个节点将会胜出,所以在CAN总线上,节点的ID越小,优先级越高。

     先列举2种特殊情况,根据仲裁来判断优先级。

     1.  若在同一时刻,标准格式的报文与扩展格式的报文同时抢占总线,且它们的基础ID相同,则发标准格式的报文节点就会PK成功。这是因为扩展格式在基本ID后,紧接着是SRR位,与IDE位,且这两位都是隐性位。而在标准格式中,这两位分别对应的位为RTR与r1,其中RTR既可以为隐性位,也可以为显性位,,但是r1必须为显性位。由仲裁规则可以此时标准帧必定胜出。

    2.  同理,如果在同一时刻,具有相同格式,且具有相同ID的数据帧与远程帧争夺总线控制权,那么数据帧必定胜出。因为RTR显性表示数据帧,隐性表示远程帧。

今天又发现了一个问题,前几天也是在21IC的论坛上看见有这样一条帖子,上面说如果有2个节点具有相同的ID,同时向总线上发送不同的数据帧,那么这两个节点将会继续仲裁数据场,只到有一方退出。开始我也是这样认为的,但是下午在看到CAN-bus规范V2.0上,关于应答场(ACK)部分的时候,想到了, 如果真是如上所述,就会出现一种比较奇怪的现象:

    即如果总线上,只有A,B  2个节点,当前只有A节点发送报文,B节点再接收,按照以上的观点,那么将会发生什么呢?在应答场(ACK)应答间隙(ACK SLOT)的时候,A节点将会发送一个“隐性”位(1),但是同时,B节点却会发送一个“显性位”(0)来以示应答(这里假设B节点正确接收到有效的报文),那么此时总线上表现出来就是“显性”(0)了。但是A却是发送的是“隐性”(1)啊,那么按照上述说法,此时A节点就要退出总线了,也就不在发送应答界定符(ACK DELIMITER)(显性1),了,此时总线上就会一直保持显性(0)状态,只到位错误的发生。

因此,以上说法是不成立的,其实由CAN-bus规范V2.0的P8页上有如下语句:

Arbitration
Whenever the bus is free, any unit may start to transmit a message. If 2 or more units
start transmitting messages at the same time, the bus access conflict is resolved by
bitwise arbitration using the IDENTIFIER. The mechanism of arbitration guarantees that
neither information nor time is lost. If a DATA and a REMOTE with the
same IDENTIFIER are initiated at the same time, the DATA prevails over the
REMOTE . During arbitration every transmitter compares the level of the bit
transmitted with the level that is monitored on the bus. If these levels are equal the unit
may continue to send. When a ’recessive’ level is sent and a ’dominant’ level is
monitored (see Bus Values), the unit has lost arbitration and must withdraw without
sending one more bit.

    由以上红色部分可知,参与逐位仲裁的位只有仲裁场!!!

    那么如果有2个节点具有相同的仲裁场,但是他们的数据场不同,将会发生什么呢?我感觉可能在数据场之间可能会产生位错误(Bit Error),接收完CRC序列后,可能会发生一个应答错误,或者一个CRC错误。

关键字:CAN总线  仲裁机制 引用地址:CAN总线仲裁机制

上一篇:CAN终端电阻
下一篇:CAN总线的局限

推荐阅读最新更新时间:2024-05-02 23:57

基地式CAN总线电动执行器设计
  引言   执行器在自动控制系统中具有十分重要的作用,它直接实施控制动作,按功能可分为执行机构与调节机构。它是一种现场类仪表,精度、输出力、抗干扰、防爆以及多种环境的适应性能等都是其主要性能指标。   现场总线控制系统FCS(Field bus Control System)利用现场总线开放、具有互操作性的网络,将现场各控制器与仪表设备互连,构成控制系统,同时控制功能彻底下放到现场,这样降低了安装成本和维护费用。因此,FCS实质是一种开放、具有互操作性、彻底分散的分布式控制系统,已成为21世纪控制系统的主流。   2 CAN总线电动执行器的硬件设计   2.1 系统总体设计   CAN总线电动执行器通过SJA100
[嵌入式]
保护CAN总线收发器不受静电释放和瞬态电压影响的方法
  很多工业网络诸如控制器局域网 (CAN)、RS-485、RS-422和Profibus应该能够耐受终端应用中出现的恶劣系统级瞬态电压(来自于触摸操作、电感负载中断、继电器触点颤动和/或闪电电击期间的静电释放 [ESD])。如果没有与设计所要求标准相关的合适工具和知识,在设计中满足这些要求是困难的。在这篇博文中,我将讨论国际电工委员会 (IEC) 61000-4-2标准,IEC 61000-4-2 ESD测试设置和有助于保护CAN收发器的瞬态电压抑制器 (TVS) 二极管电路。   IEC 61000-4-2 ESD抗扰度测试是一个系统级测试,它仿真了一个带电操作人员对终端系统的放电过程。IEC ESD测试的特点不同于上升时间内其
[嵌入式]
汽车电子CAN总线发展——汽车车身网络系统
  汽车总线系统的研究重点   由于我国的车型以欧美车型为主,且欧美车型又以CAN总线为主流,目前国内使用总线技术的车型几乎全部使用CAN总线,因此汽车总线的研发应该结合国内外实际情况选用CAN总线。   CAN符合ISO/OSI的参考模型,但只规定了物理层和数据链路层的协议,其应用层的协议需要用户自己定义。支持CAN低层协议的芯片有许多,既有在片的MCU,也有片外的CAN控制器。用户自己开发的应用层协议也有很多,如AB公司定义的DEVICENET协议就是CAN协议基础上的应用层协议,Honeywell公司推出的SDS总线也是在CAN的基础上定义了自己的应用层。可见,汽车CAN总线的研究重点是:针对具体的车型开发ECU
[嵌入式]
说说如何用can总线测试工具对can设备进行一对一测试
上篇文章我们说了用USBCAN分析仪批量测试CAN设备的方案,那么在一对一测试时应如何判断待测设备CAN接口损坏呢? 因为在实际应用中,工程师可能面对的更多是一对一的测试。这样我们需要通过设备自检确定USBCAN分析仪没有损坏,物理层连线、终端电阻、通信波特率是否正确。如果排除这些因素,仍然无法通讯,那么待测设备就有可能损坏了,此时我们可以通过待测设备CAN口的CAN_L对GND、CAN_H对GND这两个电压值做进一步的判断。如电压值不正确,则说明待测设备已经损坏、或该CAN设备进入休眠状态、或待测设备不是高速CAN设备,需要工程师进行进一步的处理。 1、如何排除USBCAN分析仪的问题 当你在怀疑USBCAN分析仪发生故
[测试测量]
说说如何用<font color='red'>can总线</font>测试工具对can设备进行一对一测试
基于CAN总线的复合型火灾报警探测器设计方案
   0 引言   随着城市现代化建设进程的加快发展, 城市抗御火灾的综合实力也在不断增强。火灾自动探测与报警技术就是将传感技术、通讯技术和智能化信息处理技术应用于火灾预防的一项综合性技术, 该技术具有速度快、实时性好、可直接与城市119消防中心的计算机联网等突出优点。其中CAN总线具有高可靠性和适合远距离传输的优点。CAN总线与火灾自动报警系统相结合, 突破了传统温度监测的瓶颈, 它可在探测器内加进MCU, 从而对火灾特征信号直接进行分析和判断, 并将结果传送给控制器。这种高效、数字、开放的分布式火灾报警系统是一种很好的复合型火灾报警的尝试。    1 系统结构   图1所示为管理计算机和智能节点组成的CAN总线
[嵌入式]
基于DSP便携式数控测井系统的设计
   1 引言   国内常规的数控测井系统都是大型车载式机柜系统,功能强.硬件配置齐全,能够满足各种测井作业的需要。但是由于这类数控测井系统体积庞大、价格昂贵,不适于海洋石油的测井作业.同时由于我国测井业的实际,老式测井车服役所占比例较高,而其所提供的空间有限不能容纳机柜式数控测井系统。所以研制功能完善,体积小巧的便携式数控测井地面系统已经成为油田测井行业的急切需求。   在生产测井过程当中,为满足油田的实际生产需要,往往需要实时检测套管井的井下压力、温度、流量、含水量、自然伽马等多个参数,本文给出一种基于DSP的便携式数控测井系统设计方案。   这里介绍系统的整体结构及地面系统中数据处理模块硬件电路设计,交给出软件设计流程
[嵌入式]
STM32F103标准库开发----CAN总线通信实验----初始化/波特率
一、CAN总线通信初始化配置 1. CAN总线通信初始化配置流程 CAN总线GPIO和时钟配置 CAN总线接收中断优先级配置 CAN总线初始化配置 2. CAN总线GPIO和时钟配置 CAN引脚配置 CAN时钟配置: PA11和PA12引脚,CAN GPIO初始化,具体代码如下: /*CAN GPIO 和时钟配置 */ void CAN_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; /*GPIOA端口时钟使能*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
[单片机]
STM32F103标准库开发----<font color='red'>CAN总线</font>通信实验----初始化/波特率
基于CAN总线的配电网户外柱上型重合控制器的设计与实现
    摘要: 介绍了一种基于CAN总线的中压配电网户外柱上型智能重合控制器,以16位工业级微控制器Intel 87C196KC为核心,应用现场总线和智能化技术将保护、测量、检测、计量、远动和故障诊断等综合自动化功能就地分散到户外开关设备本体上,采用CAN总线作为系统的通信网络,实现了配电设备的户外全分布式方案。     关键词: 配电网 现场总线 智能重合器 Intel 87C196KC 我国供电部分近几年来在城乡电网建设与改造中进行了大量的技术改造和更新,选用了新形的配电设备、综合自动化和调度自动化设备、自动控制测量装置等,但这些设备目前大多数仅限于在变电站和调度室中采用。而大量的统计资料表明,配电
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved