CAN调度理论与实践分析

最新更新时间:2012-04-23来源: 互联网关键字:CAN  调度理论  实践分析 手机看文章 扫描二维码
随时随地手机看文章

CAN调度理论与实践分析

CAN总线中消息能否按时送达是事关系统安全等问题的重要指标,它要通过调度分析加以验证。本文介绍CAN调度理论的新研究成果,以及对工程应用的指导意义及其实施难点。具体分为4个部分:Tindell的分析方法和Davis的改进;笔者对Davis算法的简化;最坏响应时间分析在应用上的一些结果;调度分析在应用上的难处。

关键词  CAN  调度理论  响应时间  Davis算法  Tindell算法

  分布式嵌入式系统是当前嵌入式系统的重要发展方向,因为它能提供更强的性能,节约系统的总体成本。但是由于各单个节点必须有通信网络相连才能协调地工作,网络就成了关键部分,没有网络提供及时正确的数据和命令,就谈不上所设计的系统服务了。在汽车的分布式嵌入式系统中,目前主流的通信网络是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所示。

按此在新窗口浏览图片
图1  用于调度分析的时间参数

  Wm由2部分构成:由低于优先级m的消息(其集合写为lp(m))正在总线上传送而造成的阻塞Bm,和由高于优先级m的消息(其集合写为hp(m))在总线上抢先传送而造成的干扰Im。它们取最大值时就使Wm成为最坏等待时间。

按此在新窗口浏览图片

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

按此在新窗口浏览图片

  Wm取离散值且出现在非线性方程(4)的两边,所幸的是其求解并不难。在式(5)中,用W0m=Bm作为初值循环求解即可。

按此在新窗口浏览图片

  式(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比高优先级消息早了一点;二是本算法得到的是确切的而非保守的结果。

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

上一篇:DTU硬件电路图
下一篇:CAN总线冗余的船舶监控系统设计方案

推荐阅读最新更新时间:2023-10-12 20:39

如何准确测量CAN节点的Busoff恢复时间
当CAN通信出现故障时,CAN控制器会让故障节点从主动错误状态进入被动错误状态,甚至进入总线关闭(Busoff)状态,使故障节点脱离总线的通信,使其不影响正常节点的通信,但该控制方案将导致在系统重新上电之前,进入总线关闭状态的节点会持续无法与其他节点做数据的交互,如若节点只是暂时的故障,那让节点实现自恢复的功能,则是更为上乘的控制方法。所以CAN总线设计规范对于CAN节点的Busoff自恢复方式做了严格的规定,充分考虑了偶发故障与持续故障的处理。具体规范如表 1所示,为测试标准 GMW14242 BusOff后的恢复时间 。目前多家整车厂对其系统供应商的设备也都提出了相应的Busoff后恢复时间的控制策略要求。 表 1 Bu
[测试测量]
如何准确测量<font color='red'>CAN</font>节点的Busoff恢复时间
飞思卡尔MC9S12XEP100 CAN学习总结(三) 滤波器配置
标准帧和扩展帧 标准帧格式:具有11位标识符; 扩展帧格式:具有29位标识符; 两种帧格式可以出现在同一总线上。 标准帧 CAN 标准帧的ID结构 标准帧发送相关代码 msg.id = 0x5C; CAN0TXIDR0 = (unsigned char)(msg.id 3); CAN0TXIDR1 = (unsigned char)(msg.id 5); 标准帧接收相关代码 msg- id = (unsigned int)(CAN0RXIDR0 3) | (unsigned char)(CAN0RXIDR1 5); 后续补充 扩展帧 CAN 扩展帧的ID结构 在我们给的ID里没包含SRR与IDE与RTT,比
[单片机]
飞思卡尔MC9S12XEP100 <font color='red'>CAN</font>学习总结(三) 滤波器配置
面向汽车市场CAN/Ethernet用共模扼流圈的噪声对策事例
1.背景 近年来汽车市场的电子化日趋明显,今后随着新能源汽车的普及,ADAS等附加功能会越来越丰富,每台汽车中搭载的电子设备的数量也会相应增加,并且电子设备的种类也会越来越多样化。 在汽车的电子化进程中,为了实现车内电子设备间的通信,车载LAN的搭载变成了必不可少的存在。由于车载LAN可以进行大量的信息传输,因此它在高速通信方面不可或缺,而且由于对高可靠性的通信品质的需求,因此会使用大量的独特的车载接口。在车载LAN中,特别大范围普及使用的是CAN(控制器区域网络)。CAN的传输速度最大可达到1Mbps,它通过差分方式跟总线连接。CAN的总线上面可以连接多个节点,实现了1个对多的通信网的结构。由于CAN这种高可靠性的控
[汽车电子]
面向汽车市场<font color='red'>CAN</font>/Ethernet用共模扼流圈的噪声对策事例
基于CCP协议利用CANape进行电控单元标定
目前基于CAN(Controller Area Network)总线的分布式系统在汽车电子领域得到广泛应用,电子控制单元的标定已成为汽车电子控制装置开发的一个重要环节。CCP(CAN Calibration Protocol)是一种基于CAN总线的ECU(Electronic Control Unit)标定协议 ,已经在许多欧美汽车厂商得到应用,采用CCP协议可以快速而有效地实现对汽车电控单元的标定。 然而基于CCP协议的标定,需要在ECU内部实现支持CCP协议的驱动程序(CCP driver)。目前大多数应用都采用Vector提供的free CCP driver 。考虑到ECU底层程序与CAN驱动程序的实现各不相同,将CCP驱动
[嵌入式]
一种采用CAN总线的车灯控制系统设计
  引言   CAN(Controller Area Network) 是德国博世公司在20 世纪80 年代初为汽车业开发的一种车载专用串行数据通信总线, 满足SAE (Society of Automo bileEngineer) 对C 类高速车载网络(≤1Mb/ s) 的要求, 适合动力传动和底盘电子系统的信息传输与控制, 因此也适合一般车载电子系统的信息传输与控制。   与传统技术相比, CAN 总线有如下特点: ①采用非破坏性仲裁技术, 获得仲裁优先的节点将继续传输消息, 消息不会被另一个节点破坏或发生错误; ②CAN 总线采用短帧结构, 每一帧的有效数据为8 字节, 数据传输时间短, 受干扰的概率低, 重新发送的
[嵌入式]
CAN总线在丝网印花机上的应用
丝网印花机是一种在一块材料上整齐有序地印制多种色彩、标签、字符等标示符的设备。能印刷材料相当广泛,比如丝带、胶带、胶贴、橡筋带、棉带、 人字带、布带和织边带等等外,还包括人造皮革和胶料。其中轮转式印刷机系列还可以印制成衣、鞋帽、玩具及各种带类的商标。目前国内多色印花机基本上采用的 多PLC控制方案,系统由一个主PLC协调整体系统工作,每个工位配置(一个工位印制一种花色)一个小PLC,该PLC的作用主要是协调该色位的两个电机之间的动作,一个动作是由步进电机带动色标电眼去检测误差;另一个动作是刮刀伺服电机补偿色标电源检测到的误差并带动印刷设备开始印刷工作。图1是其中一个工位的部件指示图。 系统要求 丝网印花机是一个由印花
[嵌入式]
CAN总线位定时和同步机制的分析
引言 CAN(Controller Area Network)是有效支持分布式实时控制的串行通讯网络。从位定时的同步方式考虑,它实质上属于异步通讯协议,每传输一帧,以帧起始位开始,而以帧结束及随后的间歇场结束。这就要求收/发双方从帧起始位开始必须保持帧内信息代码中的每一位严格的同步。从位定时编码考虑,它采用的是非归零编码方式,位流传输不像差分码那样可以直接用电平的变化来代表同步信号,因此为保证同步质量,CAN协议定义了自己的位同步方式:硬同步和重同步。 目前相关文献均缺乏对CAN总线位定时与同步机制的详细分析。本文深入分析了CAN总线位周期的结构以及CAN的两种位同步方式 (硬同步和重同步),并明确给出了重同步时重同步跳转
[嵌入式]
基于ARM的CAN总线智能节点的设计
摘要:CAN总线是一种应用广泛的实时性现场总线,提出了基于具有ARM7TDMI内核的32位微控制器的CAN总线智能节点设计方案。详细介绍了ARM控制(LPC2294)的特点、智能节点的结构以及系统软件设计,同时结合现场实际使用给出了硬件抗干扰措施。 关键词:CAN总线 ARM 嵌入式控制器 CAN(Controller Area Network)即控制器局域网,CAN总线是国际上应用最广泛的现场总线之一。它最早是由德国Bosch公司推出的,CAN通信协议是一种用于汽车内部测量与执行部件之间的数据通信协议。 作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN总线已被广泛应用于各个自动化控制系统中。例如
[嵌入式]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved