一种车联网CAN数据采集方法与流程

文档序号:11960499阅读:5652来源:国知局
一种车联网CAN数据采集方法与流程

本发明涉及汽车CAN数据采集领域,特别是涉及车联网CAN数据采集方法。



背景技术:

现有车身信息采集主要是应用于汽车性能监测。汽车在使用过程中,随着行驶里程增加,出现可靠性降低,经济性变差和故障率增加等现象。汽车的这一变化过程是必然的,是符合发展规律的,但是如果检测不及时,则汽车在行驶过程中就会出现问题。故而,现有技术需对CAN总线中的数据进行采集获得车身信息,以便分析汽车性能。

现有技术是针对汽车性能分析领域对CAN总线上的车身信息进行采集,采集的车身信息是固定的,不需要反复变更配置文件,故而现有技术是将配置文件直接固化在车载终端上。现有技术通过固定式的采集配置文件,一次性对车身数据采集并上传平台。

然而,随着汽车技术和车联网技术的发展,汽车整车网络构成也越来越复杂,汽车整车网络将汽车上的各个部件、控制器、传感器有机地结合并形成功能强大的现代化汽车。车身信息采集和整合不再只是应用于分析汽车性能以及故障,同时也演变为基于车联网的联网车辆信息管理。车身信息变成多样性、易变性,车身信息采集不能只是固定地、一次性地采集车身信息,而应该实时配置采集文件,并对采集的车身数据进行处理,然而现有技术并没有出现多样化、易变性的车身信息采集方案。

综上,现有技术存在如下缺点:1)配置文件中当次采集的数据种类较多,当服务器请求车身信息时,需一次性采集多种车身信息,耗费传输网络带宽;2)固定配置文件采集车身信息,不能灵活变更采集项目,而实际上随着车联网的发展,车身信息采集项目将呈现更多的项目和变化,固定配置文件采集方式无法满足经常变动的真实需求;3)需人工存储配置文件,操作不便。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种车联网CAN数据采集方法,旨在解决现有技术配置文件为固定式,不能灵活变更采集项目;同时,根据采集车身信息项目的实际需求,定制配置文件,节约网络带宽;此外,本发明通过服务器直接变更配置文件,无需人工现场操作,简单、高效且不易出错。

为实现上述目的,本发明提供了一种车联网CAN数据采集方法,包括如下步骤:

步骤S1、根据车身信息的采集项目,生成车身信息采集的DBC文件和配置文件;

步骤S2、服务器将配置文件通过无线网络发送给车载终端;

步骤S3、车载终端根据配置文件采集总线上的车身信息数据;

步骤S4、依据组包协议,将车身信息数据进行组包生成数据包;

步骤S5、将数据包回传到服务器;

步骤S6、根据DBC文件解析数据包,并获得车身信息。

在该技术方案中,终端适应性强,对终端的依赖小,提高数据的安全性,具有快速、高效获取车身信息的优点,无需人工现场操作,简单、高效且不易出错。其中,配置文件在不知道数据定义情况下,配置文件及数据包具有保密能力,避免泄密;DBC文件既用于生成配置文件,也同时用于做为解析文件解析数据包。

进一步而言,步骤S1还包括:

根据厂商提供的整车CAN总线协议,通过Vector软件生成DBC文件;

服务器存储DBC文件,并根据DBC文件生成配置文件;配置文件用于车载终端采集CAN总线的车身信息,配置文件依次包括波特率配置、帧ID配置和帧数据配置。

由于不同的厂商生产的车型不一样,CAN总线协议也不一样,包括帧ID设定、数据类型及字节数等等均不一样。在该技术方案中,根据厂商提供的整车CAN总线协议,并通过Vector软件生成DBC文件,其优点在于可以快速生成DBC文件,提高服务器获得车身信息的整体速度,为复杂的车联网应用节约时间;同时,存储DBC文件作为解析文件,设定波特率配置、帧ID配置、帧数据配置基本信息,生成用于提取车身信息的配置文件,精简配置文件,节约传输带宽,提高采集速度。

进一步而言,步骤S3还包括:提取波特率配置,设定数据传输速度;处理配置文件,提取帧ID、数据起始位和位长度,获得CAN总线上帧ID上的数据;重复执行,直至完成配置文件所有帧数据的提取,完成车身信息数据的提取。

在该技术方案中,根据配置文件对CAN总线上的数据进行提取,提取的方法只需根据帧ID、数据起始位以及位长度提取数据即可,提高采集的整体速度。

进一步而言,在步骤S4中,组包协议,包括帧头和数据项,帧头为一个字节,帧头最高位为更新位,帧头低七位用于存储数据项的字节数,数据项字节数最大为127字节,更新位用于标识数据是否更新。

在该技术方案中,设置有更新位,用于标识数据是否提取,当数据提取完成即可以执行下一步回传。设置更新位,有益之处在于提醒车载终端数据采集进展,提高采集速度;同时,帧头还设置该帧数据字节数,可避免数据提取出错。

进一步而言,步骤S4还包括:生成数据包的MD5值;MD5值用于服务器匹配上数据对应的平台保存的哪一个DBC文件,然后选用对应好的DBC文件进行数据解析,有益之处在于避免数据提取时出错。

在该技术方案中,对数据包还设置MD5校验值,避免数据包上传出错。

进一步而言,步骤S6还包括:

提取DBC文件中的一个帧ID,并同时提取数据包中的一帧的帧头,获取数据字节长度,并根据数据字节长度提取该帧数据,获得一个车身信息;

重复执行,直至提取完所有DBC文件对应的车身信息。

在该技术方案中,依次提取各个帧头以及各个帧数据,帧头中还设置有帧数据字节数,可以避免提取出错。

进一步而言,车联网CAN数据采集方法还包括步骤SA:服务器监测是否存在车身信息的采集请求;若存在采集请求,则根据请求项目生成DBC文件,并生成配置文件发送至车载终端;若不存在采集请求,则等待下一次巡检。

在该技术方案中,服务器根据采集请求去生成配置文件,采集请求的数量是根据需要进行请求的,避免请求数量过多耗费系统资源。

进一步而言,车联网CAN数据采集方法还包括步骤SA:服务器监测第三方是否发出采集请求,服务器验证第三方的权限;若第三方具有获取请求项目的权限,则根据请求项目生成配置文件发送至车载终端;若第三方无获取请求项目的权限,则不采集车身信息。

在该技术方案中,服务器还对第三方请求验证其权限,避免车身信息被恶意获取,保护车主必要的隐私。

本发明的有益效果是:本发明的终端适应性强,对终端的依赖小,提高数据的安全性,具有快速、高效获取车身信息的优点,无需人工现场操作,简单、高效且不易出错。同时,配置文件在不知道数据定义情况下,配置文件及数据包具有保密能力,避免泄密。

附图说明

图1是本发明一具体实施方式的车身信息采集流程示意图;

图2是本发明一具体实施方式的生成配置文件的示意图;

图3是本发明一具体实施方式的车身信息采集权限管理示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明:

本发明提供了一种车联网CAN数据采集方法,包括如下步骤:

步骤S1、根据车身信息的采集项目,生成车身信息采集的DBC文件和配置文件;

步骤S2、服务器将配置文件通过无线网络发送给车载终端;

步骤S3、车载终端根据配置文件采集总线上的车身信息数据;

步骤S4、依据组包协议,将车身信息数据进行组包生成数据包;

步骤S5、将数据包回传到服务器;

步骤S6、根据DBC文件解析数据包,并获得车身信息。

如图1、图2所示,在本实施例中,以服务器采集车辆里程、车速、手刹状态、脚刹状态信息为例,详细论述。

步骤一、首先根据厂商提供的整车CAN总线协议,通过Vector软件配置DBC文件。CAN总线的DBC文件如下所示:

BO_2566909442累计里程:8整车系统

SG_累计里程:0|32@1+(1,0)[0|0]"km"Vector_XXX

BO_2566844695整车系统2:8整车系统

SG_车速:8|16@1+(0.00390625,0)[0|0]"km/h"Vector_XXX

SG_手刹状态:2|2@1+(1,0)[0|0]""Vector_XXX

SG_脚刹状态:4|2@1+(1,0)[0|0]""Vector_XXX

步骤二、服务器存储DBC文件,并根据DBC文件生成TBC配置文件,TBC配置文件将用于车载终端采集CAN总线的车身信息。

TBC配置文件的生成就是提取波特率配置,设定数据传输速度;处理配置文件,提取帧ID、数据起始位和位长度,获得CAN总线上帧ID上的数据;重复执行,直至完成配置文件所有帧数据的提取,完成车身信息数据的提取。

TBC配置文件配置内容主要包括三大项目:波特率配置、帧ID配置和帧数据配置。

1)波特率配置

波特率配置包括配置高速波特率、中速波特率和低速波特率,波特率根据实际整车系统CAN总线信号传输速率进行设定。如下给出本实施例中波特率设定。

hsbaudrate 250000

msbaudrate 250000

lsbaudrate 250000

2)帧ID配置

帧ID配置实际上就是Message对象配置,Message对象在DBC文件中以"BO_"作为关键字,它包含有帧ID、帧类型(标准帧或扩展帧)等信息。在本实施例中,扩展帧ID为32位二进制,最高位用来区分扩展帧与标准帧,扩展帧ID最高位为1,标准帧ID最高位为0。

以DBC文件中Message对象"BO_2566909442累计里程:8整车系统"为例,帧ID为"2566909442",即"10011000111111111110111000000010",它的32位二进制最高位为1,该帧为扩展帧,去掉二进制的首位1,得到"419425794",即"0011000111111111110111000000010",由于该路为1路CAN,生成Message对象配置"BO_419425794|1|1",其中中间数"1"代表扩展帧,末尾数"1"代表1路CAN。

3)帧数据配置

帧数据配置实际上就是Signal对象配置,Signal对象在DBC文件中以"SG_"作为关键字,由数据名称,起始位,位长度,类型(Intel或Motorola),分辨率,偏移量,最大值,最小值,单位等组成;如DBC文件中“SG_累计里程:0|32@1+(1,0)[0|0]"km"Vector_XXX”。在配置Signal对象提取时,只需起始位和位长度即可,即"SG_0|32"。

值得一提的是,若多个数据项如连起,则需合并;在本实施例中,手刹状态和脚刹状态数据项是相连的,需合并为:"SG_2|4"。

4)由DBC文件生成的TBC配置文件如下所示。

hsbaudrate 250000

msbaudrate 250000

lsbaudrate 250000

BO_419425794|1|1

SG_0|32

BO_419361047|1|1

SG_2|4

SG_8|16

在本实施例中,服务器实时对各个车辆的信息采集配置文件进行创建或变更,网络带宽总量也较大,一般而言,为了节约网络带宽,在本实施中,依据服务器需求进行设定配置文件,配置文件中的项目应该精简,避免占用网络带宽。

步骤三、服务器通过无线网络将TBC配置文件传输至车载终端。

服务器通过网络将TBC配置文件传输至车载终端,网络传输的方式多种多样,包括GPRS、wifi、3G网络等等,在本实施中车载终端设置有GPRS模块用于与服务器通信。

步骤四、车载终端通过TBC配置文件采集CAN总线上的车身信息

1)车载终端解析TBC配置文件,由波特率设定数据传输速度;

2)根据"BO_419425794|1|1"获得帧ID"BO_2566909442";

根据"SG_0|32"提取帧ID"BO_2566909442"中的第0-31位的数据;

3)根据"BO_419361047|1|1"获得帧ID"BO_2566844695";

根据"SG_2|4"提取帧ID"BO_2566844695"中的第2-5位的数据;

根据"SG_8|16"帧ID"BO_2566844695"中8-23位的数据。

值得一提的是,在此过程中,车载终端只知道采集哪些位上的数据,而并不知道所采集的数据所指向的意义。

步骤五、依据组包协议,将所述车身信息数据进行组包生成数据包;组包协议,包括帧头和数据项,帧头为一个字节,帧头最高位为更新位,帧头低七位用于存储数据项的字节数,数据项字节数最大为127字节,更新位用于标识数据是否更新。

采集终端根据配置文件采集CAN总线上的数据,并对数据进行组包,数据组包中的数据顺序与配置文件中帧ID顺序对应。一个组包对应一个配置文件,并包含多帧数据,最多可传送255帧数据。

如表1为一帧数据表,在一帧数据中包括帧头和数据项,帧头包括更新位和帧字节长度,帧数据长度最大为127字节;当帧总线上有数据返回时传0,否则传1;一帧数据越多,数据项也越多。如表1中总共包含8帧数据项。

表1组包一帧数据格式

如表2中给出组包实例,在该组包数据中包含两帧,帧ID分别为2566909442和2566844695;其中,帧2566909442为里程帧包括4Byte(32bit)的里程数据,帧2566844695里包含有车速数据2Byte(16bit)和刹车数据1Byte(4bit),其中在回传数据组包中,无数据的位需要以0补位。

表2组包数据格式

值得一提的是,在本实施例中,为防止数据丢包,还需要生成回传数据包的MD5值,以便校验是哪个DBC文件的数据包。此外,在数据包在TBC配置文件并没有对数据指代的内容进行备注和注释,单单从组包数据和TBC配置文件上不容易直接获得数据信息的实际意义,具有保密性。

该实施例仅是较优实施例,在实际操作中,组包数据格式与本组包数据格式略有不同,但不超过本发明思想,应该认定为落入本发明保护范围。

值得一提的是,在本实施例中,数据回传是定时回传,优选地2秒回传一次,若2秒内未收到该帧数据,那么更新位设成未更新,当2秒内该帧数据出现了更新,那么就设置更新位为已更新。

步骤六、将数据包回传到所述服务器;

将数据包和MD5值发送给服务器,MD5值用于服务器匹配上数据对应的平台保存的哪一个DBC文件,然后选用对应好的DBC文件进行数据解析。

显然在本步骤中,涉及行驶安全的回传数据组包相对于行政监测类的回传数据组包具有优先上传服务器的权利。

步骤七、服务器基于DBC文件解析数据包,并获得车身信息。

数据包和DBC文件相对应,通过数据包对应的DBC文件对数据包进行解析,获得车身信息。提取DBC文件中的一个帧ID,并同时提取数据包中的一帧的帧头,获取数据字节长度,并根据数据字节长度提取该帧数据,根据厂商提供的整车CAN协议,获得该帧数据所代表的含义。依次提取每一帧数据,获得车身信息。

在本实施例中,首先提取DBC文件第一帧ID"BO_2566844695",提取数据包第一帧数据字节长度0X04,即第一帧字节长度为4个字节,提取第一帧数据[BYTE1,BYTE2,BYTE3,BYET4],由DBC文件或厂商提供的CAN总线协议可知,该数据代表里程。再次提取DBC文件第二帧ID"BO_2566844695",提取数据报第二帧字节长度0X03,即第二帧字节长度为3个字节,提取第二帧数据[BYTE6,BYTE7,BYTE8],由DBC文件或厂商提供的CAN总线协议可知,字节[BYTE6,BYTE7]代表车速,字节[BYTE8]中的[D3,D2]代表脚刹数据,字节[BYTE8]中的[D1,D0]代表手刹速度。综上,服务器获得车身信息。

值得一提的是,服务器可自己主动提取车身信息,如用于车辆性能检测;也可以有车辆自身请求车身信息;也可以第三方向服务器请求本车的车身信息。有益效果在于满足车联网多种多样的车身信息提取和应用需求。在本实施例中,服务器监测是否存在车身信息的采集请求;若存在采集请求,则根据请求项目生成配置文件发送至车载终端;若不存在采集请求,则等待下一次巡检。

如图3所示,在本实施例中,车联网CAN数据采集方法还包括步骤SA:服务器监测第三方是否发出采集请求,服务器验证第三方的权限;若第三方具有获取请求项目的权限,则根据请求项目生成配置文件发送至车载终端;若第三方无获取请求项目的权限,则不采集车身信息。值得一提的是,在本实施例中,DBC文件是由Vector软件生成的,同时服务器还对DBC文件进行保存。

在本实施例中,第三方可以向服务器申请获得车身信息;例如,在道路上行驶,后车为了避免碰撞,可以获得前车速度、前车刹车情况、前车紧急变道等车身信息,及时获得该方面信息有助于减少车祸发生。又例如,交警可以获得车辆超速、超重信息,以备行政需要。又例如,环保部门可以采集车辆尾气排放信息。当然,对于不同的第三方,对车身信息采集具有不同权限,服务器需对权限进行验证。

值得一提的是,本发明是基于车联网的CAN数据采集,应用领域不局限于现有技术提取车身信息并应用于分析汽车性能,检测因车辆使用年限造成车辆系统故障。本发明的应用领域为未来车联网技术,在车联网技术中,每一辆汽车都是可以进行通信、信息交互。现有车联网防撞技术是通过判断车辆之间距离或预测车辆距离进行防撞,而在本发明中,可通过检测车身信息,如车速、刹车状态等,当发生紧急刹车时,车辆CAN总线中的车速、刹车信息通过服务器,服务器通知或控制后方汽车车速或转向,避免因前车紧急刹车造成追尾事故。而实际上车辆CAN信息采集在车联网领域还可以用于场景。场景1,如汽车上安装有车载称重传感器并与CAN总线连接,交警即可以向服务器申请调用汽车的称重信息,查看汽车是否超重。场景2,环保部门对汽车尾气进行采集,环保部门向服务器申请配置汽车尾气检测配置文件,并将该配置文件发送至待检测的汽车上,获取汽车尾气检测报告,环保部门可以根据该报告对相关车辆进行处罚或要求整改。有益效果在于,及时获取道路上同行车辆的车身信息,避免车祸;行政监管部门监控车辆运行状态、超重状态、尾气污染情况,进行相关项目监管,有利于维护个人和公众利益。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1