基于CAN网络的整车授时系统设计
扫描二维码
随时随地手机看文章
本授时系统采用软硬件结合的方法,克服了纯软件和纯硬件授时的不足。在不需要大量资金的条件下,可实现整车内部多控制系统的时钟同步,它的成本远比纯硬件时统系统低,也比纯软件时统系统要可靠得多。
1 引 言
特种车辆,比如消防车、救护车甚至特种作战车辆,在现代瞬息万变的社会中,对时间的统一性提出了极高的要求。比如装有战场通讯指挥系统,火力控制系统,地理信息及定位系统,驾驶员综合信息系统的特种作战车辆,需要众多的车载系统之间统一协调地工作,必须要有严格统一的时间系统。
GPS/Glonass/北斗卫星授时功能正被越来越广泛地应用于各种系统,比如指挥系统[1-2]、地震观察系统中[3]。纯硬件授时机,精度高,但是成本也高,小型化程度不够,无法满足车载多个控制系统和信息系统时间同步的要求。
2 系统设计
基于CAN网络的整车授时系统能将主时钟源事件信息,通过车载网络,发送给其他的系统,以达到整车时间的同步性,如图2-1所示。
图2-1 整车多微机控制系统授时方式
2.1主时钟源
主时钟源采用硬件时钟源,接受来自上一级的时钟源信号。上级的时钟信号包括卫星授时,长波电台授时等,本系统采用GPS卫星授时。
图2-2 主时钟源硬件设计及原理图
Garmin25LVS是Garmin公司的一款廉价且性能较好的导航型接收机。该接收机带有标准格式的NMEA导航电文输出(含有当前时间信号)和载波相位输出。同时还输出一个与GPS秒时间同步的高电平脉冲。微处理器采用飞思卡尔的8位单片机,该单片机带有1个串行通讯口,1个CAN总线通讯口,2个通道16位输入捕捉器,16K闪存。主时钟源基本框图如图2-1所示。Garmin25LVS的串口信号经过Max232芯片进行电平转换,输入单片机,解析导航电文(包括年、月、日、时、分、秒信息)。脉冲信号经过调理变成5V的脉冲信号,经过输入捕捉,在该时刻将时间信息发送到总线上,达到授时的目的。
Garmin25LVS支持3.6V-6V的宽电压输入,其TXD1/RXD1引脚是标准RS-232串口通信接口,因此必须转成TTL或CMOS兼容的电平,见图。
图2-3 串口电平转换电路原理
Garmin25LVS的PPS(Pulse Per Second)引脚为700mV的秒脉冲输出,脉冲上升沿时间300纳秒,持续时间默认为100毫秒,该脉冲的上升沿与GPS秒同步。因此GPS接收机时间精度为。由于Garmin25LVS的秒脉冲信号幅值只有0.7V,其上升沿无法被单片机捕捉到,因此必须将其调理成TTL/CMOS兼容的上升沿信号。采用LM224运算放大器,对PPS进行跟随,提高驱动能力,然后设电压滞回比较器,选取合适的电阻将正向和反向的域值电压都设在0.35V附近,电路原理见图2-4。
图2-4 脉冲信号处理原理
高速CAN总线的驱动芯片采用飞利浦的82C250,采用光栅隔离器件,抵抗CAN总线对数字信号的电磁干扰,总线通讯原理如图。
图2-5 CAN通讯接口原理
2.2时间信息的分发
时间信息通过控制器局域网总线(Local Area Network,CAN)采用广播式方式以1Hz的频率定期发送到总线。
整车授时的传输网络基本结构如图2-6所示。CAN总线物理硬件为带屏蔽的双绞铜线。时间消息以广播形式发送到总线上,各控制系统都带有相应的CAN接收控制器,获取时间消息。
图2-6 时间信息通过总线广播分发
CAN总线的信号以帧为单位进行发送[8]。时间信息是打包在数据帧里传送的。数据帧包括帧头,帧起始、仲裁域、控制域、数据域、校验域、应答域和帧尾,如图2-7。
图2-7 CAN总线的数据帧
为减少时间延时,缩短数据帧的长度,包含时间消息的CAN数据帧格式采用的摩托罗拉前向编码格式,共占用4字节,如表2-1。
表 2-1 时间信息编码
微控制器控制的整车主时钟源程序控制流程如图2-8。先初始化串口和CAN通讯口和微机的输入捕捉模块,然后循环等待接收GPS电文并解析出时间信息。秒脉冲的上升沿由输入比较器捕获,产生中断,中断程序把时间发送到总线上。
图2-8 主时钟源软件设计
3延时补偿以及授时误差分析
授时延时定义为主时钟源开始把当前时间消息发出到目标节点(各控制/信息系统)接收该消息并产生中断之间的时间差。
3.1时间延迟模型
主时钟源微控制器捕捉到秒脉冲产生中断,CPU首先把时间消息放入CAN控制器缓存,缓存取得发送权力把消息通过驱动电路发送到总线,各车载的控制系统的CAN控制器接收完毕。在这个过程中,时间消息的接收发生延迟,延迟包括3个部份,如图3-1所示。
图3-1网络授时延时模型
Jm是消息m排队的时间,即消息开始放入发送队列到可以发送的时间差;Im是指由于仲裁和消息堵塞导致的时间延迟;Cm是数据在总线上的传送时间。因此总的时间延迟Cm为:
(3.1)
本系统采用的CAN收发控制器具有多缓存结构;并且主时钟源只发送一种帧信息——时间帧信息,因此消息排队时间Jm 可以认为是一个由于指令操作产生的延时常数。
CAN是串行通讯的总线协议,即消息是按位逐位发送的,直到最后一位传送完毕,该消息才完全传送,产生中断引起CPU响应。根据CAN总线的数据帧长度,网络传输延时可由下式来计算:
(3.2)
仲裁和消息堵塞延时Im,包括两个部分:上一个正在发送的消息占用的时间和优先级比他高的消息的发送时间。可用Tindell,Audsley等人总结的模型迭代公式来求解[5-7]。如式(3.3)。
(3.3)
其中 是上个消息的发送时间,即堵塞的消息, 指优先权比该消息高的信息集合,Tj是消息j的发送周期。
3.2授时延时估算
微控制器采用16MHz频率的晶振,那么1个时钟周期为1/8微秒,Jm延时包括2字节消息标识设置,若干数据缓存设置的操作。设时间消息数据长 字节,那么共执行 次数据传送操作,每次数据传送操作花费1个时钟周期[4],那么:
(3.4)
本系统充分考虑传输的时效性,时间消息帧在总线网络中拥有最高权限,那么根据第2.2和3.1小节所述,式(3.3)中 是空集,时间消息的仲裁时间延时为零(即总能得马上到发送权限),因此Im=Bm。在最坏情况下该值为网络上具有最长数据域的消息的发送时间:
(3.5)
位传输时间 取决于波特率,本系统总线波特率500K那么位传输时间2×10-6秒。根据式(3.2),传送延迟时间Cm取决于时间消息帧自身的长度。由(3.2)(3.4)(3.5)代入(3.1)式,可得系统最大传输延时为
(3.6)
是时间消息帧的长度。
3.3延时补偿
(3.1)式中排队延时Jm是确定的,传输延时Cm当网络应用层协议设定后也是确定的,通过精确计算来补偿这两个确定的延时来改进精度。但是消息堵塞的延时仍然未知,它的最坏值见式(3.6),约为3×10-4秒。
如果该总线为授时系统单独使用,那么根据(3.5)式,消息堵塞延时为0。因此经过补偿后,未知的因素中只包括单片机捕获脉冲设置中断到中断程序执行的延时,可以精确到为控制器的指令操作时间级,即可以10-6秒级,精度大大提高。因此是否与其它控制系统共用总线,视整车的时间同步性要求。
4 结语
该系统采用微机控制和车载总线技术,整车主时钟源能自动跟踪GPS时间信号,并能给出校时信号,使得车辆内部各控制系统模块之间与主时钟源同步,实现了整车各控制系统时间的高度统一。
该系统结合了纯软件方法时统系统和纯硬件时统系统的特点,价格低廉,性能可靠。移在某特种作战车辆上得到了运用。
参 考 文 献
[1]王亭,赵轶群:GPS及其在移动指挥控制系统的开发,《计算机工程与应用》2000.8,147-150
[2]许文辉,王大维等:实时在线式GPS 授时系统原理与设计,《哈尔滨工业大学学报》1998.5,31-35
[3]王家行,王大为,胡振荣,GPS 授时技术在地震观测中的应用, 《地震工程与工程振动》1997.9, Vo l7No. 3. 124-130
[4]杨国田,白焰:《摩托罗拉68HC12系列微控制器原理、应用与开发技术》,中国电力出版社,2003年7月
[5]Tindell, K., Burns, A. and Wellings, A.J. Calculating Controller Area Network (CAN) message response times. Control Engineering Practice, Volume 3, Issue 8, August, 1995, Pages 1163-1169
[6] K. W. Tindell, H. Hansson, A. J. Wellings. Analysing Real-Time Communications : Controller Area Network(CAN). Real-Time Systems Symposium,1994
[7] N. Audsley, A. Burns, M. Richardson, et al. Applying new scheduling theory to static priority pre-emptive scheduling. Software Engineering Journal, Sep. 1993.
[8] Robert Bosch GmbH,CAN Specification V2.0, Postfach 30 02 40, D-70442 Stuttgart,1991