APP下载

CAN总线使用率和故障侦测系统设计研究

2019-09-10杨炯丁常坤郑彦朴

现代信息科技 2019年15期
关键词:CAN总线

杨炯 丁常坤 郑彦朴

摘  要:本文实现了一种通过采集CAN总线物理层通信波形,不需要复杂的CAN通信协议解码过程,分析CAN总线故障和使用率的侦测系统,并输出相关故障预警信息。通过采样、识别和分析总线数据帧信息,測量总线使用率并进行一系列比较,输出总线故障预警信号,实时监测CAN总线的工作状态和故障侦测。具体内容包含系统实现原理和方案,并详细讨论CAN总线数据帧提取、使用率测量和异常监测方法。实际运行效果表明:该系统结构合理、性能稳定、准确性高,具有广阔的应用前景。

关键词:CAN总线;总线使用率(负载率);通信故障检测

中图分类号:TP27       文献标识码:A 文章编号:2096-4706(2019)15-0042-04

CAN Bus Utilization and Fault Detection System

YANG Jiong,DING Changkun,ZHENG Yanpu

(Guangzhou Zhiyuan Electronics Co.,Ltd.,Guangzhou  510660,China)

Abstract:In this paper,a detection system for CAN bus faults and usage rate is realized by collecting communication waveforms in physical layer of CAN bus,which does not need complicated decoding process of CAN communication protocol,and outputs relevant fault warning information. By sampling,identifying and analyzing the bus data frame information,the bus utilization rate is measured and a series of comparisons are made. The bus fault warning signal is output,and the working state and fault detection of CAN bus are monitored in real time. The specific content includes the principle and scheme of the system,and discusses in detail the methods of CAN bus data frame extraction,usage measurement and anomaly monitoring. The actual operation results show that the system has reasonable structure,stable performance and high accuracy,and has broad application prospects.

Keywords:CAN bus;bus utilization (load rate);communication fault detection

0  引  言

随着汽车工业的发展和电子控制技术的引入,汽车电子化程度越来越高,汽车上的电子控制单元也越来越多,汽车的动力性、稳定性、安全性、经济性都得到了大幅提升,很好地缓解了全球范围的环保、节能和交通安全等问题。但在汽车电子控制系统引入的同时,也带来一些其他的问题,如系统运行可靠性降低、故障率增大、需要共享的数据信息量增加等。因此基于增强汽车控制功能、提高汽车安全性和稳定性、降低燃油消耗等多方面的考虑,总线技术和故障侦测技术应运而生,这也使得车辆实时在线故障侦测系统的开发成为必要。

CAN总线在设计之初具有良好的安全性和可靠性,使其在汽车电子系统中得到广泛的应用。但随着网络总线负载的增加,总线通讯的数据量越来越大,总线使用率(负载率)越来越高,例如电动汽车,在电动汽车内部出现更多的辅助系统和人机交互系统,这就使得CAN总线网络的安全性和可靠性显得尤为重要,CAN总线网络的使用率(负载率)和故障检测对保证汽车CAN网络环境和品质有着重要的作用。

1  CAN系统概述

本系统实现了一种能根据CAN总线通信波形自动检测总线发生故障的方法,不需要复杂的CAN通信协议解码过程,通过对通信波形进行采样和帧数据识别,分别测量总线的平均使用率(较长测量时间T,1s以上)和瞬时使用率(较短测量时间t,1s以下),然后经过一系列的比较输出总线异常中断控制信号,实时监测CAN总线的工作状态。此系统可用于对CAN总线通信过程中出现的故障进行实时检测和分析,提高CAN总线网络的安全性和可靠性。具体测量方法如图1所示,正常通信情况下,p1(瞬时使用率)/P(平均使用率)N(比例系数),中断异常信号为高电平。

系统内部主要由配置接口模块、帧数据采集识别模块、总线使用率测量模块、比较输出异常中断模块组成,其实现的功能如图2所示。

2  CAN系统工作原理

CAN总线使用率和故障侦测系统的工作流程如图3所示。

CAN总线使用率和故障侦测系统的工作原理:(1)主机通过配置接口配置CAN总线波特率寄存器、测量时间T寄存器、测量时间t寄存器和比较参数寄存器;(2)采集CAN总线上的数据位信息,根据波特率输出数据和时钟信号,识别CAN总线上数据的帧起始和帧结束,输出有效信号;(3)将测量时间分为128份,测量每份时间段内有效信号区间CAN总线上的数据位时钟个数Num;(4)将Num写进FIFO并累加,满状态时读出之前保存的数值并减去,FIFO始终保存最近时间段内的128个Num值;(5)分别测量两个不同的时间段T(以s为单位)和t(以ms为单位)内的数据位累加值P和p,即为总线的平均使用率和瞬时使用率;(6)比较P、p、N(比例系数)三者的倍数大小关系,当p/t>(P/T)*N时输出高电平中断控制信号,否则输出低电平中断控制信号;(7)重复第(2)~(6)步操作。

3  CAN系统模块设计要点

3.1  CAN总线数据位提取方法

为了分析CAN总线的通信信息,需要采集足够的数據,由波特率寄存器的数值可以得到CAN总线通信时所使用的波特率,需设置合适的采样频率(至少数倍总线的通信波特率)对总线信号进行采样。本模块采用3倍于通信波特率的采样频率对总线信号进行采样,即总线上的每个数据位采集得到三个电平信息。

由于采样频率高于总线的通信波特率,因此采集到的数据不能直接作为CAN总线的数据位信息。在采集到数据后,需要按采样频率与CAN总线波特率的比值倍数对采集的数据取样,取样所得的数据即为采集到的CAN信号帧的数据位信息。数据采集和CAN信号帧数据位的提取通过帧数据采集识别模块完成。

该模块依据波特率信息对CAN总线上的每个数据位采集三个点的电平信息,分别在数据位波形的1/4、1/2和3/4处,取其中相同的两个采样电平作为此时CAN总线的数据位信息,具体采样方式如图4所示,其中,①、②、③分别表示波形的1/4、1/2和3/4。

3.2  CAN总线数据帧识别方法

在获得CAN总线数据位信息后,将其与CAN协议定义的标准数据帧格式进行对比,可从中分离出数据帧的相关信息,标准的数据帧格式如图5所示。

根据CAN总线规范可知,当节点检测到总线空闲时,节点才开始发送报文。因此,总线空闲状态的识别非常重要,只有识别了空闲状态才能正确识别帧的起始状态。通常,节点在发送完帧结束标志(EOF,7个连续隐性位)、错误界定符(8个连续隐性位)或过载界定符(8个连续隐性位)后,会发送间歇场(INT,3个连续隐性位),然后总线进入空闲状态。由此可知,在总线进入空闲状态前,总线上会检测到至少11个连续的隐性位(高电平)。因此,在系统运行且波特率有效的情况下,检测到11个连续的隐性位认为总线通过帧结束进入空闲状态,在空闲状态下检测到显性位(低电平)认为总线节点开始发送报文。帧起始和帧结束格式如图6所示,图中的1代表隐性位高电平,0代表显性位低电平。CAN总线采用不归零码位填充技术,发送节点只要检测到位流里有5个连续相同极性的位,便自动在接下来的位流中插入一个极性相反的填充位。

在识别到帧起始和帧结束信号后,需依据波特率信息计数这段区间内的数据位时钟个数,以便用于计算总线的使用率,该功能通过数据帧采集和识别模块实现,具体实现流程图如图7所示。

帧数据采集识别模块的工作原理:(1)根据波特率采集CAN总线数据位波形1/4、1/2、3/4处的电平,取相等的电平作为数据位信息,输出数据位和时钟信息;(2)保存12位的帧数据信息Data,若Data=12'b111111111110,则为帧起始信号,输出高电平的帧有效信号;若Data=12'b 011111111111,则为帧结束信号,输出低电平的帧无效信号;(3)计数帧有效信号期间内的数据位时钟个数。

3.3  CAN总线使用率测量方法

为了测量CAN总线的平均使用率和瞬时使用率,需不停的统计当前时刻之前测量时间段T(以s为测量单位)和测量时间段t(以ms为测量单位)内的有效数据位时钟总个数,为了测量的方便,该模块将测量时间平均分为128个相对较小的时间段,分别测量每个小时间段内有效的数据位时钟个数。

将测量结果保存到1个深度为128的FIFO里,并不断累加FIFO内数据的总和,既可以得到测量时间T和测量时间t内的有效数据时钟总个数,即总线的平均使用率P和瞬时使用率p。该部分实现方式采用流水线设计,整体实现示意图如图8所示。首先将第一次测量得到的128个测量值进行累加,得到总线使用率;接着将D1测量值丢弃后再重新加入D129测量值进行累加,得到新的总线使用率;再接着将D2测量值丢弃后再重新加入D130测量值进行累加,又得到新的总线使用率。以此类推,即累加值永远只累加最近测量时间内FIFO内的128个测量值之和。

3.4  CAN总线异常检测方法

当发现总线的瞬时使用率与平均使用率的商大于比例系数N时,说明CAN总线通信有可能出现故障,需发出异常中断控制信号。由以上测量方式可以得出,当p/t>(P/T)*N时,需发出异常中断控制信号,对公式进行转换得到:当P

4  结  论

本文实现了一种能根据CAN总线通信波形自动检测总线发生故障的方法,该方法不需要复杂的CAN通信协议解码过程,可用于对CAN总线通信过程中出现的故障进行实时检测和分析,提高CAN总线网络的安全性和可靠性。实际运行效果表明,该系统结构合理,性能稳定,准确性高,具有广阔的应用前景。

参考文献:

[1] 代寿刚,干莽,宋占伟.基于FPGA的CAN总线故障分析仪 [J].吉林大学学报(信息科学版),2012,30(5):503-509.

[2] 韩建,田博文,王春龙.基于FPGA的CAN总线网络故障检测修复系统研究 [J].化工自动化及仪表,2014,41(9):1040-1042+1068.

[3] 袁卫波.基于CAN总线的车辆在线故障诊断系统 [D].西安:长安大学,2012.

作者简介:杨炯(1991.04-),男,汉族,广东揭阳人,本科,FPGA工程师,研究方向:测量仪器。

猜你喜欢

CAN总线
论网络通信技术
基于嵌入式的汽车辅助制动系统研究
CAN总线通信技术在电梯监控系统中的应用
基于CANoe的J1939协议在ECU通信中的应用
利用MC9S12(X)单片机构建CAN总线网络的研究
基于CAN总线的智能微喷灌监控系统中下位机的硬件电路组成与设计
基于CAN总线的变电站通讯网络设计
一种航空交换机中CAN总线的自动化测试方法