CAN总线是现场总线的一种,目前在汽车电子和船舶电子中广泛应用。针对CAN通信网络中低优先级数据传输延迟较大、存在稳定性较差的问题,提出了基于时间触发的TTCAN协议。本基于时间触发的双路CAN总线系统是由ARM工控机控制,是具有一个主节点和n个从节点的系统,并在后续作出错误率检测与现有的总线结构作比较以证明该总线结构的可行性。 CAN bus is a kind of field bus and is widely used in automotive electronics and marine electronics. For the data transmission delay of low priority number is large and the stability is poor in CAN communication network, time-triggered TTCAN protocol is proposed in this paper. The time- triggered dual CAN bus system is controlled by ARM IPC, which consists of one master node and several slave nodes. This system is compared with the existing CAN bus system on the subsequent error rate to demostrate the feasibility of this system.
刘倩文1,郑秋瑶1,金梦洁2
1杭州电子科技大学电子信息学院,浙江 杭州
2浙江大学求是学院,浙江 杭州
收稿日期:2015年11月13日;录用日期:2015年11月28日;发布日期:2015年12月8日
CAN总线是现场总线的一种,目前在汽车电子和船舶电子中广泛应用。针对CAN通信网络中低优先级数据传输延迟较大、存在稳定性较差的问题,提出了基于时间触发的TTCAN协议。本基于时间触发的双路CAN总线系统是由ARM工控机控制,是具有一个主节点和n个从节点的系统,并在后续作出错误率检测与现有的总线结构作比较以证明该总线结构的可行性。
关键词 :双CAN总线,TTCAN,传输系统
CAN总线具有稳定性好,实时性强的优点,但在挂载多个从节点的时候,它的性能会大大减弱[
图1为本控制系统的总体结构图,包括一个主控节点模块和多个从节点模块。系统选用STM 32F 105作为系统的从节点主控芯片。此单片机含有CAN0和CAN1模块,并且可以支持本系统的控制协议TTCAN (时间触发CAN协议) [
从节点的CAN控制器TJA1050是CAN的高速收发器,在本设计中,TJA1050的应用如图2所示,其中协议输出器通过一条串行输出线(TXD)和一条串行输入线(RXD)连接到收发器。而收发器则通过他们有差动接收和发送能力的总线终端传输数据。
TTCAN协议是一种在ISO 1 1898-1规定的CAN数据链路层顶部之上的高层协议,可基于标准CAN物理层协议实现。TTCAN扩展协议分为两层,第一层子协议提供基本的时间触发服务,第二层子协议是第一层的扩展,提供全局时间(global time) TTCAN网络同步服务[
图1. 控制系统总体框图
图2. TJA1050的应用
只有一个计时主机发送基准消息,当前计时主机工作发生异常时由备份计时主机发送基准消息。基准消息之后是一系列时间窗(time windows),这些时间窗为特定消息的传输提供精确定时限制[
两个连续的竞争时间窗可以结合为一个扩展的竞争时间窗,在不影响下一个时间窗定时的情况下允许在扩展竞争时间网络中可以预先定义多个消息段,消息段中定义各自的时间窗对应消息。这样就组成一个TTCAN网络的消息段矩阵(matrix cycle),如图3所示。
本系统控制设计中,为实现TTCAN的功能,在原有的CAN模块中加入触发存储单元,该单元由STM32F105内部扩展RAM的一部分来实现[
窗口周期内只有一个CAN消息在总线上传输。节点数在理论上可达到110个,本设计中实际使用到的节点数目一般在8个左右。
在界面设计中,如上图4所示,左上角周期一栏为TTCAN参考周期,(一帧报文最多有128 bit,假设传输速率为a,负载率为b)周期公式为
CAN总线的最大传输速率可达1 Mbit/s,在实际数据传输错误率检测时每小时乃至每分钟的数据量都是相当庞大的。由此,在错误率检测时,我们使用了双路USBCAN II调试器,此调试器带有2路CAN接口,使用时可以直接接入到CAN网络中,当做一个监测节点。
在测试中,作为一个标准的CAN节点,配合USBCAN的工具软件,直接进行CAN总线的配置,发送,接收和数据的储存报错,使检错工作的效率得以大大提高。数据分析仪软件界面,如图6所示。表1为测试得到的结果。
图3. TTCAN中消息段矩阵
图4. 界面设计
图5. 实物图
图6. 数据分析仪软件界面
错误率 10−6 时间 | 节点1 | 节点2 | 节点3 | 节点4 | 节点5 | 节点6 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
传输速率kb/s | 传输速率kb/s | 传输速率kb/s | 传输速率kb/s | 传输速率kb/s | 传输速率kb/s | |||||||
125 | 500 | 125 | 500 | 125 | 500 | 125 | 500 | 125 | 500 | 125 | 500 | |
1 h | 2.3 | 2.6 | 1.9 | 2.3 | 2.4 | 2.4 | 2.2 | 2.4 | 2.1 | 2.2 | 2.3 | 2.5 |
8 h | 2.2 | 2.7 | 2.2 | 2.4 | 2.5 | 2.6 | 2.1 | 2,3 | 2.1 | 2.2 | 2.3 | 2.6 |
24 h | 2.3 | 2.4 | 2.1 | 2.3 | 2.4 | 2.5 | 2.0 | 2.3 | 2.2 | 2.2 | 2.4 | 2.5 |
48 h | 2,3 | 2.6 | 2.1 | 2.3 | 2.3 | 2.5 | 2.0 | 2.4 | 2.1 | 2.3 | 2.3 | 2.5 |
120 h | 2.2 | 2.7 | 2.1 | 2.3 | 2.3 | 2.6 | 2.0 | 2.3 | 2.0 | 2.2 | 2.3 | 2.6 |
表1. 各节点错误率测试结果
随着信息技术的快速发展,现场总线技术得到了越来越多的应用。作为一种已经被广泛采用的工业控制网络,CAN具有自身的要求和特点,其中重要的就是稳定性,不仅要求传输的速度快,而且要求准确性高。由表1可得该系统不论传输速率在500 kbit/s还是125 kbit/s,错误率均在3 × 10−11以下,明显优于RS485总线10−7的错误率,同时也优于单CAN总线4.7 × 10−11的错误率,适用于我们所要求的环境条件,达到了设计要求的目标。当然,在总线不同的负载率、传输距离、节点数等情况下错误率会有所变动,这些也值得今后深入研究。
刘倩文,郑秋瑶,金梦洁. TTCAN在ARM中的应用实现TTCAN Application Implementation in the ARM[J]. 电路与系统, 2015, 04(04): 55-60. http://dx.doi.org/10.12677/OJCS.2015.44008