当前位置:首页 > 通信技术 > 通信技术
[导读]摘要:由于CAN总线的独特优势,CAN已成为工业数据通信的主流技术之一,这就要求它具有良好的实时性和可靠性。但是随着CAN总线控制网络复杂化,控制节点的增多,带宽分配不均问题也随之凸显,使得总线上低优先级的站点

摘要:由于CAN总线的独特优势,CAN已成为工业数据通信的主流技术之一,这就要求它具有良好的实时性和可靠性。但是随着CAN总线控制网络复杂化,控制节点的增多,带宽分配不均问题也随之凸显,使得总线上低优先级的站点数据传输延时增加。提出了动态优先级算法,它能够动态改变站点优先级,解决带宽分配不均问题,实现数据实时传输;简要介绍时间触发CAN(TTCAN)协议,并通过实验与动态优先级算法和标准CAN协议进行比较,得出网络延时特征。
关键词:实时性;动态优先级;TTCAN;网络延时

0 引言
    控制局域网(Controner Aera Net,CAN)是德国Boasch公司于1983年为汽车应用而开发的一种有效支持分布式控制的串行控制网络。尽管CAN最初是为汽车电子系统设计的,但由于它在开放性和技术方面的独特优势,在航天、电力、石化等领域都得到了广泛应用。在火车、轮船、楼宇自动化、过程自动化仪表中,都有CAN技术的身影。CAN已成为工业数据通信的主流技术之一。
    CAN总线具有多主发送、采用确定性的优先级仲裁机制等特点,保证了CAN总线数据通信的可靠性、实时性和灵活性。在数据通信过程中,如果出现碰撞,低优先级的节点会主动退出,而最高优先级的节点可以不受影响继续传输数据,从而大大节省了总线冲突仲裁时间,保证了传输数据的实时性。但是这种静态优先级机制的一个缺点就是不能均等地为高优先级和低优先级站点分配带宽,在网络负载很大时,低优先级站点会在多次竞争总线使用权时失败,从而导致低优先级站点消息传输产生不确定的延时,甚至无法发送。本文针对CAN的这个问题,在参考文献的基础上,结合消息型和事件型消息,提出了动态优先级算法和基于时间触发的TTCAN静态调度算法。通过仿真实验,将动态优先级算法、静态优先级调度算法和标准CAN进行比较,得到网络延时特性。

1 CAN协议帧及仲裁机制
    为了提高CAN总线传输数据的可靠性和传输距离,CAN采用差分方式输出。双绞线的一根为CANH,另外一根为CANL。CAN总线具有两种逻辑电平:显性电平和隐性电平。在传输一个显性位时,总线呈现显性状态;在传输一个隐性位时,总线呈现隐性状态。隐性状态时,CANH和CANL两条线之间的差分电压Vdiff近似为0;显性状态时,CANH和CANL两条线之间的差分电压Vdiff的幅值一般为2~3 V,明显高于隐性状态时的差分电压值。CAN总线上的位电平如图1所示。


    在CAN总线上,显性位可以改写隐性位。当总线上2个不同节点在同一位时间分别强加显性和隐性时,总线上呈现显性位,即显性位可以覆盖修改隐性位。显性位一般表示逻辑0,隐性位一般表示逻辑。
    CAN采用载波监听多路访问、逐位仲裁的非破坏性总线仲裁技术。按CAN总线上节点对实时性要求的紧急程度,可预先将节点分成不同的优先级。优先级编号越大,其站点的优先级越低。优先级编号作为标识符的组成部分被置于报文仲裁场。在总线仲裁期间,优先级较低的节点会主动退出发送,而优先级可不受影响继续传输数据,简化了总线的冲突仲裁过程,在一定程度上提高了通信的确定性和实时性。其仲裁规则为:
    (1)预发帧的字节,当总线在空闲时同时发送帧且同步于SOF的上升沿;
    (2)各帧的标识符字段在总线同时相遇,借助总线使标识字段逐位“线与”,根据其结果进行冲突仲裁;
    (3)如果发送节点没有检测到冲突,则继续发送下一位;
    (4)如果发送节点检测到冲突,则立即中断,不再继续后面位的发送;
    (5)各标识字段逐位“线与”结束后,未监测到冲突的字节便获得优先发送权,可以发送数据帧后边的字段;如检测到冲突的节点,则不能发送后边的数据字段,而等待下一次发送。
    CAN数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧尾。数据帧中数据场的长度可以为0。数据帧的位场排列如图2所示。数据帧的结构有两种格式,即标准格式和扩展格式。这两种帧格式的主要区别在于标识符的长度,标准格式数据帧具有11位标识符,扩展格式数据帧具有29位标识符。本文以扩展格式为例进行论述。帧的开始有起始标志位表示,它仅由一个显位组成;接下来是仲裁场,当发生冲突时,两个不同优先级站点同时竞争总线的使用权,并且由高位开始,逐位比较下去,当出现优先级不同位时,标识符位为0的胜出,获得总线使用权,所以标识符数值越小,优先级越高。


    目前有很多文献关于CAN协议的改进,基本都是局限于周期型消息的处理,但是在实际工业现场有很多诸如报警、故障等突发型消息,这些都是事件型消息,都未能有效处理。基于此,本文兼顾周期型和事件型消息,以CAN 2.0B扩展帧格式为例,通过重新定义ID字段的含义来解决带宽分配不均的问题。这种重新定义的帧并未改变扩展帧的格式,所以能与其他CAN系统兼容,如图3所示。扩展格式帧的ID字段被重新定义为3个部分:类间优先级域(1b)、类内优先级域(8b)、内容标示域(20b)。


    图3中,类间优先级域为1 b,在实际应用中将0分给事件型消息,使其具有最高优先级,将1分给周期型消息;类内优先级域为8 b,用于标示同种类型消息的优先级大小,数值越小,优先级越高;内容标识符域为20 b,可以根据实际的需要对其进行定义,在类间优先级和类内优先级大小都一样的情况少,也可进一步起到辅助仲裁的作用。

2 动态优先级调度算法
    CAN总线的特点之一就是多主发送,各个站点在任何时候都可以随机发送数据,如果在某一个时刻有2个或都2个以上的站点要发送数据,就要通过非破坏性仲裁机制进行仲裁来竞争总线的使用权,标识符数值小的站点即优先级较高的站点可以获得总线使用权,竞争失败的站点则需等待下次重新竞争,当网络负载较大时,优先级较低的站点很可能在多次竞争中失败,从而数据不能及时发送,或有时发送产生冲突有时顺利发送,造成发送延时的不确定性,这就是带宽分配不均所造成的。为了解决随着网络负载增加所造成的带宽分配不均,本文提出了动态优先级算法。动态优先级算法是一种随着时间推移动态改变各个站点优先级的算法,与原有的静态分配优先级算法相比,该算法可使每个站点均等地竞争总线的使用权,即能够均等地分配带宽,从而保证消息的实时传输。方法如下:初始情况下各个站点均有事先分配好的优先级,在不发生冲突的情况下,按原有优先级来完成数据的传送。当发生冲突之后,高优先级站点可以顺利完成数据发送,为了能让竞争失败的站点在下次竞争中成功的概率变大,可以将竞争失败的站点提高一个优先等级参加下次竞争,即使失败了若干次,这时该站点的优先级也很高了,竞争胜出的概率会很大。但是需要注意的是优先级较低的站点在提高优先级的情况下获得总线使用权并顺利完成数据发送之后,需要将优先级降低为初始优先级,以保证网络的正常运行。
    如果把CAN总线上要发送数据的站点看成一个队列,某个节点j在队列的位置可表示为:
    Pj=P0-f(n)
    式中:Pj为节点j某时刻在队列中的位置,即节点在此时刻的优先级;P0为节点j在队列中的初始位置,即初始优先级。图3中类内优先级分配了8位,当优先级最低时,P0=28-1=255;f(n)为优先级晋升项,为关于竞争失败次数n的函数,可取正比例函数、指数函数等。在本文中取的为正比例函数,即f(n)=kn,k为系数项,决定着晋升优先级的快慢程度,一般取为CAN系统中节点的个数。由此可得:
    Pj=28-1-kn=255-kn
    采用该算法还可以避免当节点优先级提高之后出现2个或2个以上优先级相同的情况,例如,在某个网络中节点个数为5,即k=5,所以Pj=255-5n,则各站点初始及晋升之后优先级如表1所示。


    可见,在竞争失败提升优先级的情况下,不会出现优先级相同的情况,因此不会产生相应的错误。该算法的实现流程图如图4所示。


    CAN网络已经有很多控制芯片。控制芯片可以完成CAN协议转换。要想通过动态优先级来改进CAN实时性,就要针对不同芯片的应用特性来实现。本文的仿真是利用Philips公司的SJA1000来实现的。

3 TTCAN协议
    TTCAN(时间触发CAN)是CAN协议的另外一种扩展,它依赖一个静态的TDMA时间表来保证确定的响应时间。将系统中所有发送周期型数据的节点至少发送1次的时间称为系统周期,系统周期又由n个基本周期组成。TTCAN中一个特殊的节点即时间主控节点周期性地发送使各个节点同步的消息,并且将CAN的通信分割在基本周期内。每个基本周期开始于一个参考消息,并且由下一个参考消息的开始作为结束。在每个基本周期内,主定时器又将每个基本周期的信道使用时间分为一个个的时间窗口,分给不同的信号,特定的信号只能在特定的时间窗口内进行传输,避免了信号之间的干扰,其结构如图5所示。参考信息是由主定时器发送的,控制基本周期的时态,它的发送表明一个基本周期的开始;独占窗口是为特定信号预留的特定时问窗口,只有特定的信号才能在该时间窗口内传输,为了使系统具有一定的灵活性,独占窗口在一个基本周期内可以重复出现,但是为了保证数据传输的确定性,CAN帧的自动重发功能在独占窗口内被禁止。分配给随机发送信息的时间窗口叫竞争窗口,一个竞争时窗可以分配给多个信息帧,竞争时窗的数据碰撞采用CAN的位仲裁机制,在这里发送的每个信息帧都具有固定的优先级,位仲裁机制决定网络中哪个信息帧取得总线的访问权。基于和独占窗口相同的原因,CAN的自动重发机制也被禁止。自由窗口是为网络的进一步扩展预留的窗口。

4 仿真实验及结果分析
    为了验证动态优先级算法和TTCAN算法在提高CAN总线实时性方面的性能,设计了如图6所示的实验平台。分析网络延时时间,并进行两种算法的性能分析。仿真系统设计8个节点,每个节点由AT89S52单片机、SJA1000和PCA82C250组成,通过向每个节点发送消息型和时间型消息,在改变网络负载率的情况下,分别在标准CAN,TTCAN、动态优先级算法3种调度算法下进行实验,比较节点的延迟时间。


    向各个节点发送消息型和事件型信息帧各200帧,得到各帧的延迟时间,以其中一个节点为例,统计结果如表2所示。


    通过实验数据可以看出,随着负载率的升高,动态优先级下周期型消息的延时时间也随之增加,TTCAN下周期型消息的延迟时间很稳定;随着负载率的升高,动态优先级下事件型消息的延迟时间增加较小,TTCAN下事件型消息的延迟时间明显增加。动态优先级调度算法相对于标准CAN调度算法,在网络实时性方面有了一定的提高,随着网络负载率的增加,低优先级节点获得总线使用权的几率增加。TTCAN调度算法能明显降低周期型信息的延迟时间。

5 结语
    本文通过分析CAN协议、分析CAN总裁机制,提出了动态优先级调度算法和TTCAN调度算法。通过搭建仿真平台,比较数据帧在标准CAN、动态优先级调度算法、TTCAN调度算法3种算法下的传输延迟时间得出如下结论:相同负载率下,TTCAN调度算法下周期型消息的传输延迟时间要比动态优先级调度算法下周期型消息的延迟时间小;相同负载率下,动态优先级调度算法下事件型消息的传输延迟时间要比TTCAN调度算法下事件型消息的传输延迟时间小。TTCAN调度算法适合于确定性硬实时系统的消息调度;动态优先级算法可以灵活适应系统的变化,提高CAN网络实时性的要求,减小优先级较低站点的数据传输延迟。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭