0 引言
目前,随着汽车工业的不断发展,使得汽车的功能也越来越强大,车载设备也日益增多。CAN总线已经成为解决这种发展需求的汽车电子系统的主流总线。但如何实现车辆电子装置之间实现高速数据共享是我们面临的一个问题。同时单纯事件触发的CAN 协议,在处理周期性信号和随机性信号共存的通讯方面,存在不确定性缺陷,且低优先级信息网络竞争能力差、响应时间延迟过长。
为了解决上述问题,采用分层网络协议构建汽车的网路系统。SAE J1939标准,为车辆上各传感器、执行器和控制器提供建立在CAN总线基础上的标准化的高速网络连接,实现高速数据共享。在不破坏上层协议SAE J1939和底层协议CAN2.0B标准的基础上引入时间触发机制TTCAN,满足汽车控制系统的实时性要求。
1 SAE J1939
SAE J1939是由美国SAE(Society of Automotive Engineer)组织维护和推广的在汽车中应用最广泛的应用层协议,以CAN2.0B协议为基础。物理层标准与ISO11898规范兼容并采用符合该规范的CAN控制器及收发器。采用PDU协议数据单元传送信息,每个PDU相当于CAN协议中的一帧。利用CAN2.0B扩展帧格式的29位标志符,定义协议数据单元的含义,优先级,源地址等信息。SAE J1939一个协议报文单元的29位标志符具体分配:优先级为3位,保留位为1位,数据页(DP)为1位,PDU格式(PF)为8位,特定PDU(PS)为8位,源地址(SA)为8位。PDU将被封装在一个或多个CAN数据帧中,通过物理介质传输。
SAE J1939协议主要作为汽车中应用的通讯协议,对汽车中应用到的各类参数都进行了规定,参数的规定符合ISO11992标准。下面给出了部分参数。这些信号都是周期消息,需要进行周期性刷新和发送。(1)发动机转速刷新率:2ms;(2)发动机转速刷新率:2ms;(3)前轴左轮的速度刷新率:4ms(4)前轴右轮速度刷新率:4ms;(5)后轴右轮速度刷新率:4ms;(6)后轴右轮速度刷新率:4ms;(7)液压温度刷新率:12ms;(8)发动机冷却液温度刷新率:12ms。
2 TTCAN
2.1 TTCAN原理与结构
传统CAN总线的仲裁机制会导致传输延迟甚至信息丢失,各CAN节点之间时钟不同步,其结果是网络无序、不确定。TTCAN 通信把时间划分成不同的时间片,消息按不同时间片发送,时间触发系统在不同时间片定义总线控制权限,即所有总线活动按照预先定义的时间进行调度。
TTCAN具有向下兼容,即兼容事件触发CAN 通信的所有功能。TTCAN将消息分为事件型和周期型,事件型消息可以通过仲裁在任一仲裁窗内发送;周期型消息则被分配了发送时刻,独享确定时长的独占时间窗,绝不会发生总线仲裁,准时而安全。自由窗内无消息发送,控制总线负载和升级备用。主控节点发出周期性参考消息作时间基准和引导基本循环,若干基本循环组成消息矩阵,包含所有通信信息的最小单元。因此,TTCAN系统软件的设计流程实际上就是制订消息矩阵。
2.2 静态调度算法
在TTCAN通讯网络中,静态调度是基于矩阵周期的结构,来确定网络中所有信息的起始传输时刻和信息单元的个数,设计相应的调度表为基础的调度方法。在TTCAN协议中,由于其底层CAN的非破坏性仲裁的事件触发机制可以满足非周期性消息的调度,矩阵周期中并不为非周期性消息分配时间片。所有节点的发送顺序的安排都是事先离线设计。在规划系统矩阵时,考虑到汽车控制系统信息的特征基本周期规划为同步基准、同步相与异步相三个区域。同步基准用来传递同步信息,同步相用来传递周期性信号,异步相用来传递随机性信号。
确定基本周期的个数及各个基本周期内同步相和异步相的时间窗序列即具体地构建系统矩阵,需同时确定矩阵的行和列,由于周期性信号具有确定的传输时刻和周期,可以确定基本周期个数及同步相。非周期信息不具有确定的传输时刻和周期,不能对其进行静态规划,因此把同步相之后的时间窗序列合并作为异步相,用来传递非周期信息。
3 结束语
本文针对汽车系统,采用SEA J1939协议对系统的信息进行封装,TTCAN协议并对周期性进行分时调度,避免了消息的堵塞和延时,而非周期性消息则可采用传统CAN的调度方式。对信息的通信实时性进行了测试和分析,说明这种分层网络结构提高了络系统的性能。