CAN调度理论与实践分析

发布者:等风来88888最新更新时间:2016-04-12 来源: eefocus关键字:CAN  调度理论  实践分析 手机看文章 扫描二维码
随时随地手机看文章
  分布式嵌入式系统是当前嵌入式系统的重要发展方向,因为它能提供更强的性能,节约系统的总体成本。但是由于各单个节点必须有通信网络相连才能协调地工作,网络就成了关键部分,没有网络提供及时正确的数据和命令,就谈不上所设计的系统服务了。在汽车的分布式嵌入式系统中,目前主流的通信网络是CAN总线。CAN是事件触发的通信协议,它根据消息的优先等级和节点的状态自动地调度消息的传送。低优先级的消息会因同时发生的高优先级消息太多而不能及时发送,高优先级消息也有可能由于节点状态等的影响而丢失。关于CAN的局限问题可见参考文献[1]。本文主要从调度理论方面讨论CAN系统的问题,这些问题与工程应用有非常大的关系,实践意义很强。

1  Tindell的分析方法和Davis的改进

  1994年,Tindell [23]首先将分析单处理器任务调度方法改造成适用于CAN总线的调度方法,求取消息的最坏响应时间。对于与安全相关的应用,只有对最坏响应时间有确切的掌握,才是合理的。CAN通信在网络上的实现经过2个阶段:通信任务将消息发到发送的通信控制器(CC),发送的通信控制器将消息发到接收的通信控制器。广义地讲,响应时间是从需产生通信的事件发生到消息到达目标节点的时间,包括发送节点host内的处理时间,host到CC的时间,总线上消息仲裁传送时间,接收CC到host的处理时间。仲裁获胜的消息开始传送后,便不能被中止,所以CAN调度是固定优先级非抢先式任务调度。消息m用到的参数定义如下:

  Tm ——启动通信的事件间隔,即周期;
  Jm——由事件发生到消息开始送CC的时间之最大变化,即抖动;
  Cm—— 在总线上传送消息m所需时间(要考虑位填充形成的最大值);
  Dm——由应用决定的传送消息m允许的时限;
  Rm——实际的最坏传送时间;
  Wm——传送消息m时最坏等待时间。

  它们之间的关系如图1所示。

  为了印刷的方便和易于理解,这里用了不同的写法,其中顶函数Ceiling返回的是最接近(大于等于)变量的上限整数, τ是1位时间。Ceiling( (Wm+Jk+τ)/Tk)表示在Wm时段内高优先级消息k会出现的最多次数。于是有:

  式(7)代表最坏等待时间已超时限,消息m不可调度。

  按优先级降低的次序逐条校验消息是否可调度,就可验证整个通信系统是否可调度。

  在2006年实时网络会议上,Bril、Davis等人发表了有关Tindell算法有漏洞的文章,后来他们又提出了完整的改进算法[4]。作为反例,表1中消息C用Tindell算法是可调度的,最坏响应时间为3 ms;但第2次消息C的传送已超时限,如图2所示。Tindell算法仅考虑了消息C的第1次传送。

表1  Tindell算法的反例

图2  消息C的最坏响应时间为3.5 ms

  另外,如将消息B和C的周期缩短为3.25 ms,按照Tindell算法,系统由于未求得最大的最坏响应时间,故仍是可调度的,但实际上总线的利用率已超过100%。Davis的方法核心是引入忙周期的概念,再对忙周期内各次传送的响应时间求最坏值,详见附录1。(见本刊网站www.mesnet.com.cn——编者注。)

  Tindell的开创性工作对后续的研究与应用有巨大的影响,Volcano通信技术公司(现在的Mentor Graphics)以此理论为基础开发了商用的CAN调度分析软件。由于漏洞的发现,用户应检验软件是否有了新的补丁以及用它完成的应用是否受影响。

2  笔者对Davis算法的简化

  Davis算法要先算出忙周期,再在忙周期中消息m多次传送中寻找最坏等待最大的那次。基于以下考虑,计算可以简化:

  在忙周期中,消息m传送时有高优先级消息进入队列,使m的后续消息发送前可能插入更多的高优先级消息,代表仍有一个对总线需求的高峰,从而有可能使后面的消息m有更大的最坏响应时间。

  最坏的情形是消息m刚发送,所有高优先级消息就进入队列,即领先于发完消息m后的第一个发送空隙的相位达到最大。

  因此求消息m的最坏响应时间就有两种可能: 用Bm产生阻塞,像Tindell那样求消息m的最坏响应时间;由Cm产生阻塞,求下一个消息m的最坏响应时间,下一个消息m的排队时间为Tm-Jm。

  简化方法的优点是减少了计算的次数,从而减少工作量。

  这种算法与Davis算法中的保守算法有两点不同:一是用Cm来产生阻塞是真实可能发生的,例如从休眠到上电时消息m比高优先级消息早了一点;二是本算法得到的是确切的而非保守的结果。

  计算方法:

  第1次,用公式(5)~(7)计算Wm,得到Wm(0);

  第2次,用公式

  就本例而言,在Ch=Cx=55位(0字节数据)、Ci=135位(8字节数据)、Cl=0时,总线利用率与可调度性的关系如表3所列。

表3  总线利用率与可调度性的关系

3.3  硬件选用对可调度性的影响

  Tindell [2]比较了两种通信控制器,认为像82C200一类的通信控制器只有一个发送缓冲器,从而会引起很大的滞后或抖动。例如一个节点有3个消息要传送,它们的优先级分别为H、 M、 L1,其他节点的消息优先级为L2、 L3、L4。对82C200来说,当要发送H而M已在发送缓冲器里时,就要中止M的发送,而将H写入,H发完后再将M写入,由于这些动作都需占用一定时间,而在这些时间里总线可能为其他节点的消息所占用。一次H的抢先,会造成M多次延迟而引起问题(详见附录2)。SJA1000与82C200是兼容的通信控制器,国内很多用户都用它。如果只用于发一种消息,则没有什么问题;如多个消息共用一个通信控制器,就必须考虑这个问题了。

4  调度分析在应用上的难处

  上述分析方法是十分简化的,对出错重发情形已有的扩展处理方法,以错误的概率模型为基础,并未考虑节点的状态。处于bus-off状态的节点是无法调度的了。因而这种分析总是不完整的,还有待完善。

  更为困难的是,如果系统不能通过可调度性,那么提供的补救措施极为有限。因为T、C均为实现应用功能所必需的,并可能是产品的现成的特性。此时可能要尝试修改优先级的分配,包括利用软件工具自动分配ID,但这与优先级(消息ID)的标准化又背道而驰。同一部件在不同系统应用中要装入不同的ID,容易混淆,对诊断与维修来说也比较困难。


图5  优先级为A—C—B时可调度

  即使进行可调度性分析,必须有所有消息的T、C、J三个参数。其中T、C是供应商会提供的,但J不一定会或不一定能提供。由OEM指定T、C、J,然后由供应商去满足订货要求。虽然有时可行,但随着专业分工的细化,供应商对控制对象的研究更深刻,所以主动权不全在OEM手里。

  为了在干扰严重的环境下可靠地工作,host一般会起用Watchdog功能来防止程序因走飞而失效。J与Watchdog的正常周期有关,也与Reset后的处理时间有关。如果程序抗干扰设计对数据没有足够的保护,则启动消息发送的本地时钟和某些与传送相关的状态标志会失控,使J也失控。一般的说,设计者现在还无法遍历所有的走飞状态从而提供有干扰下的J。如果通过测试确定,与软件有关的J测试集也是没保证的。不考虑走飞的J,对CAN调度分析结果可信度有所降低。

  从上述分析可知,像CAN这种事件触发的通信协议,为保证消息不错过时限,必须进行可调度分析;分析后要使不可调度的系统变为可调度,在实践上比较困难。如果要解决host走飞形成的抖动造成通信失常的后果,只能在控制算法上花力气了,这在时间触发协议中也是一样的。

关键字:CAN  调度理论  实践分析 引用地址:CAN调度理论与实践分析

上一篇:CAN总线典型特征
下一篇:如何一步一步建立CAN通讯

推荐阅读最新更新时间:2024-05-03 00:18

基于PIC单片机的CAN总线扩展技术
  引 言   CAN总线是一种串行多主站局域网总线,被广泛应用于汽车控制系统、自动控制、楼宇自动化、医学设备等各个领域。其传输距离远,最远可达10 km,传输速率高,最高可达1 Mb/s,容错性能好,可靠性能高。但是由于CAN驱动器的驱动能力有限,CAN总线能够驱动的节点数有限,一般在100个左右,同时会随着传输距离的增加,最高传输速率会下降,如果距离过长会引起信号丢失、反射等故障。在实验室条件下测得在5 Kb/s的通信速率下最远通信距离能达到10 km;在18 Kb/s的通信速率下最远通信距离只能达到2 km;而在42 b/s的通信速率下,最远通信距离只能达到1 km。测试条件:线缆采用线径为0.75 mm2的屏蔽双绞线,线缆为
[嵌入式]
基于ADSP2181的CAN总线通讯设计
  1 CAN与DSP的接口电路   以ADSP2181和SJA1000芯片设计的接口电路如图1所示。图1中,用1片GAL16V8作为逻辑转换电路。为突出接口电路,其他部分从略。   用FM书写的设计文件如下:   2 波特率的设定   BTR0和BTR1是总线定时寄存器,通过对这2个寄存器的设置可以惟一地确定波特率和同步跳转宽度。BTR0各位功能如图2所示。BTR1各位功能如图3所示。   总线长度在40 m以内(满足这里的设计需求),CAN总线的位速率可达到1 Mb/s,这里需要的波特率为1 Mb/s,晶体震荡频率为24 MHz,设BTR0=00H,BTR1=18H,计算总线传输速率。由给定的BTR0和BTR
[嵌入式]
基于CAN总线的雷达网络测控系统设计
  1 引言        随着测控技术的快速发展,现代雷达系统对于多雷达高精度协同测控跟踪能力的需求越来越高。然而,现役的大多数雷达并不具有这样的功能。基于某型号雷达,我们开发了基于CAN总线的雷达网络测控系统。经过对雷达加装该系统,我们构建了雷达局域测控网络,实现了基于CAN总线网络的雷达间目标,状态等相关信息的共享。利用这些信息,网络中各雷达可以进行相互配合工作,极大地提高了雷达的探测与协同能力。 2 雷达网络测控测控系统的基本结构与原理    2.1 CAN总线测控网络的结构与特点    从本质上看,我们设计的雷达网络测控系统,属于主从式网络测试控制系统。与数据网络相比, 控制网络具有数据帧短、数据
[嵌入式]
基于CAN总线的监控系统智能节点设计
1引言      现场总线控制系统(FCS)是继直接数字控制(DDC)、集散控制系统(DCS)之后的一种新型的控制系统,是一种全开放、全数字、多点通信的底层控制网络,具有全分散性控的体系结构 。其显著特点是通过开放性总线把现场设备连接成网络,各智能设备能够完成自动控制和运行状态的自行诊断,并且能够通过总线实现设备之间的通信,从而简化了系统结构,提高了可靠性。CAN(ControllerAreaNetwork)总线,又称控制器局域网,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性、及独特的设计和适宜的价格而广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,并已被公认为几种最有前途的现场总
[嵌入式]
基于无线传感器网络的CAN总线互联
1 引言 装甲车辆状态信息采集系统的信息采集单元通常采用CAN总线连接,某些情况下,车辆上装和下装之间的旋转连接器由于没有连线空间,需要无线通信模块为上装和下装的CAN总线提供一个透明的无线通道。本文基于无线传感器网络给出一种无线通道的设计,主要包括CAN总线无线接入控制模块电路设计以及无线传感器节点的通信协议设计等内容。 2 电路设计 以无线传感器网络为基础的CAN总线扩展系统总体结构如图1所示,其主要由两块CAN总线无线接入控制模块构成,每个模块的组成及各部分的作用是:无线传感器节点的微控制器及存储器模块,接收对端无线接人控制模块传来的数据并存储,然后将数据交CAN控制器待发,同时接收CAN控制器传来的数据并通
[工业控制]
STM32 can 实例代码
#include sysdef.h #define MAX_MAIL_NUM 3 //CAN总线调试:0=运行 1=自环调试 #define CAN_DEBUG 0 //CAN总线波特率:0=250kbps,1=500kbps,2=1Mbps #define CAN1_BPS 0 unsigned char can1_addr = 0; unsigned short Can1_Tx_Count =0; unsigned short Can1_Rx_Count =0; unsigned short Can1_Send_Delay =0; unsigned char Can1_Send_Buf ={0xe
[单片机]
自主研发车载网络产业化分析
随着国内汽车消费市场的飞速发展,与汽车相关的高新技术伴随着世界汽车巨头推崇的全球新车同步上市的浪潮不断地涌向中国市场,作为现代汽车关键技术的车载网络在合资品牌的轿车中已由过去仅服务中、高级轿车,逐渐渗透到数万人民币的家用轿车之中。这标志着车载网络不仅在技术上己成熟,而且在价格上己被家用轿车接受。  面对国外车载网络的冲击,我国在车载网络技术方面取得了地突破性的进展,自主研发车载网络产业化己提上议事日程。作者在从事车载网络研究的同时十分关注自主研发车载网络产业化的进程,以下是作者对自主研发车载网络产业化的分析。 1.自主研发车载网络在技术上走向成熟  2005年9月18日国家“十五”重大科技成就展在北京海淀展览馆向社会公众展示。在
[嵌入式]
日本电产伺服新推搭载Can-Bus通信功能的自动售货机专用电机
  日本电产伺服株式会社正式推出搭载有Can-Bus通信功能的无刷直流电机。该电机主要用于自动售货机的推货机构。        “搭载有Can-Bus通信功能的无刷直流电机”   Can-Bus (Controller Area Network-Bus:控制器局域网总线技术) 是一种被称之为车用总线标准的、使汽车、火车内部的组件相互连接的内部通信网络。其特点是微控制器和设备无需主机即可相互通信。Can-Bus最初是为汽车内部的多路复用电气配线设计的,被要求具有抗噪音性,现在被广泛用于传输设备中的控制信息,也用于运输设备、机床等机器人技术领域。   日本电产伺服研发的搭载Can-Bus通信功能的无刷直流电机作为推货机构用马达
[嵌入式]
日本电产伺服新推搭载<font color='red'>Can</font>-Bus通信功能的自动售货机专用电机
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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