APP下载

CAN总线消息响应时间评估系统的仿真与测试

2021-06-16卢阳

电子技术与软件工程 2021年4期
关键词:信号量评测间隔

卢阳

(中国人民解放军四八〇五工厂军械修理厂 上海市 200439)

1 引言

CAN 总线是Controller Area Network 的缩写,是一种总线串行通信网络,其解决了传统通信机制与信息化发展的适应性问题,大量的数据通信线缆因CAN 总线技术的发展而取消,安全性高、舒适性好、功耗及成本低的CAN 总线在各个领域得到了推广应用,并逐渐构建起与之相适应的标准体系。目前,CAN 总线技术的应用主要集中在汽车、飞机、高铁等大数据体量的行业中[1],但在理论研究和工程实践中,通过定量评价CAN 总线的实时性和可靠性的方法进行验证,关于CAN 总线技术的安全性、稳定性、可靠性均满足了不同行业领域的相关要求,因此,CAN 总线技术在诸多通信解决方案中广泛存在。

2 系统研究背景和目的

作为一种较为常见的现象,CAN 总线消息响应时间存在着一定的规律性,而该规律的获取则是一个较为复杂的过程中,且存在技术上的难点,而这就需要开发能够测量CAN 总线响应时间的系统。原则上,CAN 总线消息响应时间的测量比较明确。只要节点之间采用相同的时间标准,在进行通信的过程中,相关报文就会被标记上时间戳,通过对时间戳的计算,则可以获得最终消息相应的时间[2]。但是,目前CAN 总线消息响应时间的测试设备(例如IXXAT 的USB to CAN 测试盒、Tektronix 的TDS5000 系列)无法直接实时测量响应时间。对于测试人员来说,则可以通过对总线通信报文中的时间戳进行解码获取对应实践的消息,同时显示相关的数据信息,并保存在名为trace 的文件中。在进行时间间隔的计算过程中,可采用离线分析法对所获取报文的时间戳进行解码。在使用示波器的过程中,也可以借助示波器的参数设定,实时获取相关消息,根据选定的时间标准,在示波器屏幕上显示为波形,并存储在示波器内置的内存中。与指定ID 相邻的两个帧的时间间隔可以通过相应的离线分析软件计算。测试人员和示波器只能从获得的数据中观察时间间隔的随机现象,但预计会观察到总线响应时间的随机现象,但到目前为止还没有发现能够直接测量CAN 总线响应时间的系统[3]。考虑到这一目的,笔者开发了一个新的CAN 总线消息响应时间评测系统,并对系统进行了仿真实验,可以准确地获得消息的发送和接收时间。

3 评价体系的总体构成

基于CAN 总线的技术特点,以及参考信息响应时间测评机制的具体实施方案,其系统构成如图1、图2 所示。

通信节点由EQ512 微控制器组成,该微控制器的在线编程功能允许下载不同的消息系统模型,实现不同的CAN 总线通信系统,而无需更改硬件电路。图1 和图2 是用于船舶综合导航的CAN 总线通信系统。

在对CAN 总线消息进行检测的过程中,需要参考数据通信的实际速率,通过图1 所示系统配置的具体情况来看,在速率为1Mb/s 的情况下,上位机所接收到响应时间数据中包括对应的ID,通过对ID 中的时间数据进行解析,则可以获得测量节点与上位机处理数据的具体时间间隔,从而为后续数据的处理提供参考。

图1:CAN 总线消息响应时间评测系统配置

图2:总线消息响应时间评测系统的单个CAN 节点配置

4 评价中使用的核心技术

为降低信息传输的误码率,则需要对不同节点的时钟信号进行管理,在该系统仿真设计中,则使用了多种同步策略,即内部时钟同步与外部时钟同步,其核心方案均使用了GPS 时钟。

4.1 内部时钟同步

作为一种较为常见的时钟同步方式,内部时钟同步是基于网络通信协议来实现的,其中主要包括NTP[4]、IEEE1588 等协议类型,由于内部时钟同步会占用一定的总线资源,因此,内部时钟同步方式对总线通信质量有着不同程度的影响,所以,在非必要的情况下,内部时钟同步方式的使用并不常见。

图3:125kb/s 下的数据对比

图4:250kb/s 下的数据对比

4.2 外部时钟同步

相比较内部时钟同步来说,外部时钟同步并未占用原本有限的总线资源,因此,外部时钟同步策略对总线通信质量没有影响。外部时钟通信是直接接收GPS 的时钟信号,而GPS 之所以能够作为时间同步的基准,其原因在于钚原子钟和钚原子钟的炒高精度。

通过对内部时钟同步策略与外部时钟同步测量的分析,以及结合CAN 总线的实际情况,在该测评系统中选择外部时钟同步策略是基于庞大数据的通信需求。并且,为能够满足CAN 总线消息响应时间测评系统仿真的相关技术要求,在方案设计中以UTC 为时钟标准,对应GPS 的接收模块选择型号为JupiterTU30,其特点是能够输出1Hz、10kHz 的方波信号,同时,其串口数据通信格式为较为常见的NMEA0183。在试验过程中,由于串口接收相应信息的时间并不固定,所以,关于1Hz 的GPRMC 格式信息则无法作为节点的时钟源,为实现UTC 的时钟同步,则可以利用方波信号的上升沿作为触发信号,触法时间与同步时钟之间时钟存在1s 的差值。

5 分析仿真结果

CAN 总线消息响应时间评测系统应成为时间测量的仪器,因此应从范围、准确性、精度等方面进行测试,以反映性能。根据CANCia102 标准,该评测系统选择10MHz 的时钟源作为基准,对应通信速率分别为125kb/s、250kb/s、500kb/s、800kb/s 和1Mb/s。根据节点上升沿触发的原则,EQ512 的技术将随着上升沿的出现而自动计数,由于该过程却少人的介入,以至于其精度值仅为0.1s。由于在此过程中忽略了总线自身所承接的负载设备,所以,从而提高了节点传输数据的可靠性。

从单个节点的信息分发机制来看,该总线消息响应时间评测系统在优先级的设定方面存在明显问题,以至于相邻ID 的时间间隔缺少规律,图3(a)显示了以125kb/s 的传输速率进行的测试结果,而图4(a)则为传输速率为250kb/s 的测试成绩。由此可以看出,在节点数据收发帧率变化的情况下,其同类型节点间隔的时间周期也存在着一定的差异,通过对数的了解,图3(b)、图4(b)中所示的相应传输时间理论值。从图中可以直观地看出,从而保证评测系统的结果更符合理论值。

其中,以125kb/s、250kb/s、500kb/s、800kb/s 和1Mb/s 的传输速率测量的单节点单帧的相对误差值分别为3.01%、4.28%、4.95%、6.07%、9.85。当比特率为1Mb/s 时,相对误差超过10%,但本文后续研究的消息模型的比特率为125kb/s 和250kb/s,这两个比特率下的相对误差不超过5%,可以满足精度要求。

单节点单帧测量误差的主要原因如下:

(1)硬件中断处理切换时间。根据EQ512 芯片手册的相关技术参数,在接收到硬件终端请求的同时,则需要一定的时间去处理整个程序,而这就导致了节点ID 的时间间隔,并且,这一间隔需要至少15 个总线时钟周期,50MHz 条件下会出现0.3s 错误,中断重叠时会进一步延长时间。

(2)停止服务子程序保护站点所需的时间。根据Code Warrio用户指南,如果在中断服务子程序设计中的关键字类型较为丰富,其中以interrupt 为代表,依托编译器的作用,则能够通过代码的优化对服务现场进行还原,但是,由于相关代码的开发需要较长的周期,在具体执行过程中应考虑到时间安排。

(3)识别和转换硬件信号量所需的时间。综合考虑信号量的作用,可参考关闭信号量的做法,由此对信号量仲裁规则产生一定的影响,双核心的架构设计依然需要根据优先级的设计定执行相关进程,如S12X 的优先级要明显高于XGATE 的优先级,并且,在识别和转换硬件信号量的过程中,额外时间开销也较为明显。

6 结语

本文所述CAN 总线消息响应时间评测系统是能够实时准确测量消息响应时间的新设备,弥补了传统测试设备无法准确测量ID间的时间间隔。所以,GPS 所提供的时钟源,可以作为节点之间响应时间测评的重要参考,其节点之间的时钟误差将稳定在210ns 以内。并且,锁相环技术可以有效提高时钟基准的稳定性,从而保证时钟源的精度。同时,依托双核心的架构设计,则能够提高进程并发处理效率,优化软件运算时间,使基于优先级的共享时钟源在时钟冲突方面的问题得到了解决。

猜你喜欢

信号量评测间隔
基于STM32的mbedOS信号量调度机制剖析
次时代主机微软XSX全方位评测(下)
次时代主机微软XSX全方位评测(上)
间隔问题
间隔之谜
攻坡新利器,TOKEN VENTOUS评测
Nucleus PLUS操作系统信号量机制的研究与测试
Canyon Ultimate CF SLX 8.0 DI2评测
上楼梯的学问
μC/OS- -III对信号量的改进