《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 时间触发CAN网络节点设计

时间触发CAN网络节点设计

《电子技术应用》2007年第2期
2008-01-04
作者:韩晓东, 吴临政, 吴 波

摘 要:介绍了依照时间触发" title="时间触发">时间触发现场总线的标准,研制应用于道路车辆的TTCAN网络节点通信卡,实现时间触发通信功能的开发过程。
关键词:道路车辆   总线  TTCAN  时间触发

 

    CAN总线是一种有效支持分布式控制的串行通信网络,具有突出的可靠性、实时性" title="实时性">实时性和灵活性等优点,在汽车、机械、机器人、数控机床及医疗器械等领域得到广泛应用[1]。但由于CAN网络没有统一的全局时钟,因此常采用事件触发的方式组织报文发送,这种方法在实际应用中存在一些弊端:
   (1)由于没有全局同步时钟,而是依靠各MCU进行独立的软件延时,因此相邻两次数据发送的时间间隔不可能严格按照预定时序进行,必然会出现一定超前或滞后。当这种超前、滞后较严重时,就会引起总线时序的混乱。
    (2)当CAN网络总线负载较高时,发送失败的报文在其尝试重发的过程中会严重影响网络的运行稳定,造成其他报文发送的延迟。
    (3)由于没有全局同步时钟,网络上各MCU的软件计时会出现离散。尤其在周期时间较长时,节点间的时间离散会影响原定报文的发送时序。
  要解决这些问题,提高系统的实时性、稳定性,就必须引入全局统一的同步时钟,并采用严格守时的时间触发、硬件定时的TTCAN网络传输系统。
1 TTCAN简介[2]
  TTCAN(时间触发现场总线)是为了适应第一代电控驾驶系统的需要而开发的。通信网络中纯粹的时间触发操作由系统中统一的同步时间决定。信息的传递依赖于一个预先定义好的时间进度表。
  其主要特征是总线访问受控于称为“基本周期”的时间循环。基本周期被分割成确定数量的时间窗,类型包括:参考报文、独占窗、仲裁窗和空闲窗。基本周期的构成如图1所示。

 


  在一个基本周期内,“独占”、“仲裁”和“自由”三种时间窗的个数以及排放位置可以自由定义。其功能如下:

    (1)参考报文:由时间主控单元发送,用于控制基本周期的计时,并标志着一个基本周期的开始。一个基本周期仅包含一个参考报文。
    (2)独占窗:用于报文的传送,要求有足够长的时间来保证传送的完成。每个独占窗为一个特定的CAN报文而保留,此时其他报文不会竞争总线。这是TTCAN最主要的特点,也是优点。在排外窗中,如果一个报文发送失败,则不允许重新发送,这与标准CAN协议不同。
  (3)仲裁窗:当总线空闲时,仲裁窗对所有报文都开放,并根据报文优先级进行仲裁。因此可以专门设计给对实时性要求很高的节点,为事件触发留出一定的数据传输时间。
  (4)空闲窗:是为将来系统的扩展而保留的时间段。因此,将来可以向系统加入更多的节点。
  总体来看,TTCAN比目前的CAN有着时序准确、带宽利用率高、实时性好等明显的优点,对于道路车辆数控系统来说,可以提高其稳定性、实时性和安全性。另外,因采用TTCAN而节省下来的总线负载,可以留给将来更多节点的加入,使其成为一辆全数字化的新型车辆。
2 TTCAN通信卡硬件设计[3-4]
  作为完整的系统,TTCAN通信卡要具有以下功能:
    (1)连接CAN总线,以TTCAN标准收发CAN报文,实现时间触发通信;
    (2)通过双口" title="双口">双口RAM与其他设备进行数据交换;
    (3)有较强的抗干扰能力。
    根据以上功能模块的要求,选择硬件设计所需的主要部件有:
    (1)MCU:选用ATMEL公司 T89C51CC01单片机;自带CAN控制器,集成度高,编程简单,且支持TTCAN功能;
    (2)双口RAM:要求至少1KB容量,快速读写,有忙仲裁机制,故选择了IDT7130;
    (3)CAN收发器:选Philips公司的成熟产品 PCA82C250。
    为了避免外界对通信板卡的干扰,使CAN总线通信板工作更加可靠,将CAN收发器与MCU之间的信号和电源进行隔离。另外,为了对CAN总线上的高频噪声进行滤波处理,还要增加抗高频噪声EMC电路。通信卡各主要功能之间的关系如图2所示。

 


3 TTCAN通信软件" title="通信软件">通信软件设计
  为实现基于双口RAM的TTCAN通信板卡的功能,其通信软件应该具有双口RAM操作、TTCAN 通信及一些辅助功能。每项功能再细分,通信软件主要功能框架如图3所示。

 


    TTCAN通信部分主要包括CAN报文收发、时间同步和定时、错误处理三大功能。其中,CAN报文的收发是将CAN总线传来的报文有选择地接收并存储下来,并将已打包好的报文发送出去。而TTCAN的时间同步和定时发送操作则是此项设计的主要内容,也是TTCAN通信卡的关键技术,它的优劣直接影响到整个TTCAN网络系统的实时性和稳定性。
3.1 TTCAN时序设计[5-6]
  笔者针对本课题组负责的燃料电池城市客车的整车网络进行了TTCAN改造。将整车控制器" title="整车控制器">整车控制器发来的第一帧报文VCC#1看作是TTCAN基本周期的参考报文。这一帧的起始时刻(SOF)就是基本周期的起始时刻。在成功接收整车控制器发来的两帧报文后,TTCAN节点要将报文数据解包并存入双口RAM的指定地址,供其他设备读取;之后各节点依次向总线发报文。目前网络内除整车控制器外,还有6个节点,共12个报文要发送。
  由此可以得出整个TTCAN网络的时序:基本周期开始后,先是3毫秒的时间窗用于各节点接收整车控制器数据并存进双口RAM,然后是14个连续的“排外”时间窗,每个窗的长度为0.5毫秒,用于发送各个报文。报文只能在指定的“独占窗”内发送,即使发生错误也不能重发,这样才能保证不会影响后续报文的发送。最后留出3毫秒的时间,给最后一个节点读双口RAM以及其他外围操作。整个TTCAN网络的工作时序安排如图4所示。
    因此,时序控制程序的任务就是使报文能精确地在基本周期内的对应时刻开始发送,其中与时间触发操作密切相关的关键技术如下:
    (1) 俘获VCC#1的帧起始时刻
  T89C51CC01有一个可编程的16位计时器(CANTIMH和CANTIML),它在CAN控制器启动后就自动运行。另有一个寄存器(CANTTCH和CANTTCL),在TTCAN模式中,它可以根据设定,自动俘获CAN总线上每一个报文的起始(SOF)时刻或是结束(EOF)时刻。可以用这套硬件机构俘获VCC#1的起始时刻(图4中的时刻点0),作为基本周期的开始时刻值。
    (2) 计算各报文延时长度,精确延时
  如图4所示,为保证第n个报文的发送时刻在基本周期内的时刻值为T=3+0.5×(n-1)毫秒,可以利用MCU的计时器Timer1来实现整个延时功能。先延时基本时间3毫秒,然后循环判断是否轮到发送(即n=1?),如果未到,则n=n-1并让Timer1再延时0.5毫秒;如果到了则启动报文发送,然后停止Timer1工作。对于某些要发送多个报文的节点,例如蓄电池节点要发送6个报文,它还要继续让Timer1再延时0.5毫秒,然后发送下一个报文,一直到发送完所有报文为止。整个延时发送过程如图5所示。

 

 

 


3.2 TTCAN通信软件特性
    将上述的双口RAM读写、延时、报文发送这三个主要操作与系统初始化、状态显示、容错处理等附属功能结合起来,就构成了完整的TTCAN通信软件系统。TTCAN通信软件相对于原有CAN通信软件具有优良的特性:
   (1)报文发送间隔更紧密,缩短了报文发送周期;
   (2)对实时性要求高的报文可在一个基本周期内发送3次,其平均周期约为4毫秒,能满足实时性的要求;
   (3)报文发送时序准确,出错概率低,减轻整车控制器的容错运算负担;
   (4)双口RAM两端的读写也由同一时序控制,可免去繁琐的双口RAM判忙机制。
4 TTCAN网络多节点联调测试
  实验室内构建出由5个节点组成的TTCAN网络,并制定出理想的报文发送时序,如图6所示。TTCAN网络多节点联调测试的主要任务是检验各节点能否与整车控制器实现同步,并按照既定时序发送报文。

 


4.1 时序准确性测试
    为了测试5节点TTCAN网络的时序准确性,测量CAN物理总线的差分电压信号,记录下波形图,显示了TTCAN基本周期中最重要的延时量。
    (1)图7显示了连续的两个基本周期。测量两个基本周期开始时刻的时间间隔为13.04毫秒,符合既定时序13毫秒的要求。

    (2)图8是图7中后4个节点发送报文部分的放大图。

 

 


    可见相邻两帧报文之间的间隔都基本为0.5毫秒,而且误差都很小。各节点严格按照既定时序图发送报文,说明已经成功实现了TTCAN功能。
4.2 测试数据统计
    利用NI公司的高性能CAN卡,对TTCAN网络进行持续测量,记录连续400个周期的数据,并将多组数据进行统计分析,结果如表1所示。


    由统计结果可见所有测量的关键时间量都基本等于理想值,且最大绝对误差只有0.034毫秒,最大相对误差也只有0.97%,不会影响时序的稳定性,说明TTCAN节点的时间控制算法是成功的。
    在整个TTCAN板卡软、硬件系统的开发过程中,都是围绕着求快、求准和保障稳定的思想来设计的。硬件设计上采用更高的MCU及CAN控制器处理速度;对信号部分使用光耦隔离,减小了外界对板卡内数字电路的干扰;在电路板布置上将数字电路与模拟电路分开,并且对两部分电源进行了电源隔离,避免了两部分电路间的相互干扰。软件设计上则以TTCAN协议为基础,将TTCAN的报文收发与读写双口RAM的操作有机结合起来,统一编制在一个有序而且紧密的时间序列中,实现了TTCAN网络的时间触发通信功能。
    本文构建的5节点TTCAN网络在测试中体现了完美的时序准确性、快速性及系统稳定性,由此说明新开发的TTCAN通信板卡是成功的。
参考文献
[1]  BOSCH. CAN Specification Version 2.0. BOSCH.1991-09.
[2]  ISO11898-4. Road vehicles-Controller Area Network (CAN) Part4:Time triggered communication.International  Standard Organization,2001-6.
[3]  邬宽明.CAN总线原理和应用系统设计.北京航空航天大学出版社,1996.
[4]  阳宪惠.现场总线技术及其应用.北京:清华大学出版社,1999.
[5]  SAE J1939. Recommended practice for a serial control and communications vehicle network. Society of Auto-
 motive Engineers,1994.
[6]  Armel Corporation. T89C51CC01 Enhanced8-bit microcontroller with CAN controller and Flash memory.2003.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。