一种兼容DBC的汽车通信方法及系统与流程

文档序号:35922005发布日期:2023-11-04 07:43阅读:40来源:国知局
一种兼容DBC的汽车通信方法及系统与流程

本发明涉及汽车通信,特别指一种兼容dbc的汽车通信方法及系统。


背景技术:

1、dbc(databasecan)是vector公司定义的can网络通信文件格式,其代表的是can的数据库文件,dbc把can通信的信息定义的非常完整,而can网络的通信就是依据dbc的描述进行的,正是因为有了dbc才可以使得整个can网路的节点控制器进行无差错的协同开发。

2、但是,传统的dbc存在如下问题:1、不支持uds(unifieddiagnostic services,统一的诊断服务)的解析;2、仅支持对上传值做简单计算,如:v(上传值)*f(系数)+o(偏移量);3、不支持例如acsii码转字符等编码转换功能;4、只能实时解析can或者canfd回来的数据,无法保存变量测试过程中的最大值、最小值、平均值等信号;5、只能按照协议比较死板的进行数据解析,无法进行一些逻辑判断;6、解析时是对文件内所有的数据都进行解析导致效率不高,因为有些数据是可以不需要解析的,例如心跳数据;7、dbc文件以明文形式保存,安全性低。

3、由于dbc存在的上述问题,导致其在汽车通信时无法完全适用,因为汽车通信不仅存在简单数据的传输,还存在如uds的传输,一些数据上传后需要二次计算或解析,例如ntc温度值,acsii码等,而在上传数据的基础上做二次解析开发相当耗费时间,并且存在高度的重复劳动。

4、因此,如何提供一种兼容dbc的汽车通信方法及系统,实现提升汽车通信的灵活性、扩展性、效率以及安全性,成为一个亟待解决的技术问题。


技术实现思路

1、本发明要解决的技术问题,在于提供一种兼容dbc的汽车通信方法及系统,实现提升汽车通信的灵活性、扩展性、效率以及安全性。

2、第一方面,本发明提供了一种兼容dbc的汽车通信方法,包括如下步骤:

3、步骤s10、基于dbc格式定义dbce格式;

4、步骤s20、汽车通信时,发送端基于所述dbce格式以及待传输的can报文生成dbce文件,利用base64算法对所述dbce文件进行加密后发送给接收端;

5、步骤s30、接收端利用base64算法对接收的所述dbce文件进行解密后,基于所述dbce格式对dbce文件进行实时解析,进而完成汽车通信。

6、进一步地,所述步骤s10具体为:

7、定义dbce格式为在dbc格式的基础上,增加信号类型、逻辑脚本以及特征值。

8、进一步地,所述信号类型的取值为0、1、2、3、4;0表示心跳数据,不需要进行解析;1表示普通数据,需要进行解析;2表示需要更新特征值;3表示需要进行逻辑处理;4表示需要进行acsii数据解码;

9、所述逻辑脚本携带对uds进行处理的脚本;

10、所述特征值包括特征最大值、特征最小值以及特征平均值。

11、进一步地,所述步骤s30中,所述基于所述dbce格式对dbce文件进行实时解析具体为:

12、从所述dbce文件中提取信号类型、逻辑脚本、特征值以及can报文,判断所述信号类型的取值;

13、当所述信号类型的取值为0时,不解析所述can报文;

14、当所述信号类型的取值为1时,将所述can报文的n个字节数据按顺序组合,将各字节数据从最低字节到最高字节依次向右移动n*字节序号位,然后相加得到字节序,当所述字节序的取值为0时,表示can报文的格式为motorola格式,让低字节在前,高字节在后;当所述字节序的取值为1时,表示can报文的格式为intel格式,让高字节在前,低字节在后;

15、基于所述can报文携带的起始位和位长度计算终止位,利用所述起始位和终止位提取有效数据,基于所述位长度计算右移位数,将所述有效数据基于右移位数进行右移后屏蔽高位,得到原始数据;

16、将所述原始数据转换为十进制数后,乘以比例因子并加上偏移量得到报文数据;

17、当所述信号类型的取值为2时,先对所述can报文进行解析得到报文数据,基于所述报文数据更新特征值中的特征最大值和特征最小值,更新过程中对所述特征值的更新次数进行累加,对所述特征最大值和特征最小值的取值进行累加得到特征总值,基于所述特征总值除以更新次数的值更新特征平均值。

18、当所述信号类型的取值为3时,基于所述逻辑脚本对can报文执行逻辑处理;

19、当所述信号类型的取值为4时,基于acsii码表将所述can报文的各字节数据依次转换为字符并进行拼接。

20、进一步地,对所述can报文进行解析得到报文数据后,基于dbc格式携带的报文最大值和报文最小值对所述报文数据进行更新。

21、第二方面,本发明提供了一种兼容dbc的汽车通信系统,包括如下模块:

22、dbce格式定义模块,用于基于dbc格式定义dbce格式;

23、dbce文件生成发送模块,用于汽车通信时,发送端基于所述dbce格式以及待传输的can报文生成dbce文件,利用base64算法对所述dbce文件进行加密后发送给接收端;

24、dbce文件接收解析模块,用于接收端利用base64算法对接收的所述dbce文件进行解密后,基于所述dbce格式对dbce文件进行实时解析,进而完成汽车通信。

25、进一步地,所述dbce格式定义模块具体用于:

26、定义dbce格式为在dbc格式的基础上,增加信号类型、逻辑脚本以及特征值。

27、进一步地,所述信号类型的取值为0、1、2、3、4;0表示心跳数据,不需要进行解析;1表示普通数据,需要进行解析;2表示需要更新特征值;3表示需要进行逻辑处理;4表示需要进行acsii数据解码;

28、所述逻辑脚本携带对uds进行处理的脚本;

29、所述特征值包括特征最大值、特征最小值以及特征平均值。

30、进一步地,所述dbce文件接收解析模块中,所述基于所述dbce格式对dbce文件进行实时解析具体为:

31、从所述dbce文件中提取信号类型、逻辑脚本、特征值以及can报文,判断所述信号类型的取值;

32、当所述信号类型的取值为0时,不解析所述can报文;

33、当所述信号类型的取值为1时,将所述can报文的n个字节数据按顺序组合,将各字节数据从最低字节到最高字节依次向右移动n*字节序号位,然后相加得到字节序,当所述字节序的取值为0时,表示can报文的格式为motorola格式,让低字节在前,高字节在后;当所述字节序的取值为1时,表示can报文的格式为intel格式,让高字节在前,低字节在后;

34、基于所述can报文携带的起始位和位长度计算终止位,利用所述起始位和终止位提取有效数据,基于所述位长度计算右移位数,将所述有效数据基于右移位数进行右移后屏蔽高位,得到原始数据;

35、将所述原始数据转换为十进制数后,乘以比例因子并加上偏移量得到报文数据;

36、当所述信号类型的取值为2时,先对所述can报文进行解析得到报文数据,基于所述报文数据更新特征值中的特征最大值和特征最小值,更新过程中对所述特征值的更新次数进行累加,对所述特征最大值和特征最小值的取值进行累加得到特征总值,基于所述特征总值除以更新次数的值更新特征平均值。

37、当所述信号类型的取值为3时,基于所述逻辑脚本对can报文执行逻辑处理;

38、当所述信号类型的取值为4时,基于acsii码表将所述can报文的各字节数据依次转换为字符并进行拼接。

39、进一步地,对所述can报文进行解析得到报文数据后,基于dbc格式携带的报文最大值和报文最小值对所述报文数据进行更新。

40、本发明的优点在于:

41、通过基于dbc格式定义dbce格式,即在dbc格式的基础上,增加信号类型、逻辑脚本以及特征值,再基于dbce格式以及待传输的can报文生成dbce文件,并利用base64算法对dbce文件进行加密传输;接收端利用base64算法对dbce文件进行解密后,基于dbce格式对dbce文件进行实时解析,即基于信号类型的不同取值执行不同的解析操作,使得dbce格式支持uds的解析、支持更复杂的计算、支持acsii码转字符、支持保存变量测试过程中的最大值、最小值和平均值、支持进行一些逻辑判断、支持不解析心跳数据,结合base64算法避免dbce文件被明文窃取,最终极大的提升了汽车通信的灵活性、扩展性、效率以及安全性。

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