一种基于CAN通讯的DBC文件解析及其程序设计方法技术

技术编号:16152024 阅读:117 留言:0更新日期:2017-09-06 17:52
本发明专利技术公开了一种基于CAN通讯的DBC文件解析及其程序设计方法,包括:设置CAN通讯参数配置,以实现CAN通讯正常连接;创建DBC文件,DBC文件包括帧信息报文;编写DBC文件解析程序,解析给定变量赋值帧的数量、帧名称及帧ID号;动态创建与帧信息报文中帧数量相同的控件及帧字符显示;动态创建DBC文件中信号名称的控件及名称显示;动态创建DBC文件中信号值的控件及信号值显示;实现帧信息报文中每一帧数据的接收或发送。本发明专利技术能够满足用户实时监控整车控制器信息的要求,既节约了时间、减少开发成本,同时也降低了文件解析的错误率。

【技术实现步骤摘要】
一种基于CAN通讯的DBC文件解析及其程序设计方法
本专利技术涉及电气测控领域,尤其是涉及一种应用于汽车网络的基于CAN通讯的DBC文件解析及其程序设计方法。
技术介绍
CAN总线协议是ISO国际标准化的一种串行通信协议,由于它具有极好的抗干扰能力、极强的差错检测和处理能力,能够满足信息传输实时性的要求,同时具有控制接口结构简单、易于配置的优点,因此在汽车电子等领域得到了日益广泛的应用。随着技术的进步及人们对驾驶要求的不断提高,汽车网络中的CAN节点不断增加,网络中的数据也越来越庞大。因此,为了便于整车的设计和维护,现有技术中提出了采用DBC数据库文件对汽车CAN数据进行解析和管理的技术方案。DBC文件是一个标准的数据库文件,绝大多数汽车生产厂家都有相应的DBC文件数据库。DBC解析的过程就是将汽车CAN网络传输的十六进制数据转换成通常熟知的物理量,比如车速、转速、温度等。在现有技术中,多采用USB转CAN卡2进行上位机1与汽车控制器3之间的通讯,以实现对汽车运行状态的实时监测,如附图1所示。而在现有技术中,对CAN文件进行读取主要由以下几种方式:现有方案1为用户直接根据既有的CAN通讯协议逐一进行Bit位解析。用户在上位机软件中逐一对报文的格式进行详细解析,完成包括移位、比例、偏移等程序编写。这种方案的缺陷是:通过CAN通讯协议在上位机软件中逐一进行报文详细解析的方法,当CAN节点数量较多时,人工输入代码工作量大,且繁琐容易出错。一旦协议稍有改动,代码修改也是费时费力。同时,应对不同的通讯协议,用户需建立其特定的一套上位机软件,通用性较弱。现有方案2为购买能实现对汽车的DBC数据库文件进行解析的设备读取CAN文件。用户需采购能够实现对汽车的DBC数据库文件进行解析的CAN卡设备,并使用该设备配套的软件。这种方案的缺陷是:通过购买CAN卡设备的方式,由于满足能加载DBC文件的CAN卡对配置要求较高,因此选择度较少、影响产品开发进度、增加产品开发成本。现今可以实现DBC文件解析的CAN卡设备,其国外的价格偏高,而国内的满足要求的型号又较少,且只能使用其配套软件,用户不仅增加了采购成本,而且不能对软件进行维护修改,如增加其他所需功能等,提高了产品维护难度。现有方案3为广州汽车集团股份有限公司于2012年10月23日申请,并于2014年05月07日公开,公开号为CN103777934A的中国专利技术专利申请《一种基于MATLAB生成控制器CAN交互层的方法及系统》。该专利技术申请公开了一种基于CAN数据库文件即DBC文件将数据包解析成实际物理信息的方案。这种方案在车用局域网上的CAN信号量十分巨大,从而导致CAN信号的软件解析以及其他的相关软件处理工作量大。对于不同的DBC文件,用户往往需建立多个不同的上位机监控软件,编写代码时将需实现每一信号位的逐一提取,一旦帧数量庞大,其过多的数学运算,将无疑会增加出错率。此外,在技术层面,该申请只提到了利用MATLAB软件以文本格式打开CAN数据库文件,得到CAN数据库文件文本代码信息的内容。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种基于CAN通讯的DBC文件解析及其程序设计方法,解决现有CAN文件解析方法代码输入量大、维护难度大、数据处理量大的技术缺陷,以满足用户实时监控整车控制器信息的要求。为了实现上述专利技术目的,本专利技术具体提供了一种基于CAN通讯的DBC文件解析程序设计方法的技术实现方案,一种基于CAN通讯的DBC文件解析程序设计方法,包括以下步骤:S101:设置CAN通讯参数配置,以实现CAN通讯正常连接;S102:创建DBC文件,所述DBC文件包括帧信息报文;S103:编写DBC文件解析程序,解析给定变量赋值帧的数量、帧名称及帧ID号;S104:动态创建与所述帧信息报文中帧数量相同的控件及帧字符显示;S105:动态创建所述DBC文件中信号名称的控件及名称显示;S106:动态创建所述DBC文件中信号值的控件及信号值显示;S107:实现所述帧信息报文中每一帧数据的接收或发送。优选的,所述步骤S101进一步包括以下过程:设置CAN通讯包括波特率、验收码、屏蔽码、帧类型在内的配置。优选的,所述步骤S102进一步包括以下过程:根据CAN网络通讯协议定义数据,新建包括帧ID号、帧类型在内的帧信息报文,再对每一帧信息新建包括类型、起始位、位长度、偏移值、最大值、最小值和变换比例在内的信号信息,待所需数据全部定义完成之后,将定义数据另存为所需的DBC文件。优选的,所述步骤S103进一步包括以下过程:解析所述DBC文件中以BO_和SG_开头的所有行,解析给定变量赋值帧的数量、帧名称及帧ID号,并解析给定变量赋值每一帧内所有信号的名称、类型、起始位、位长度、偏移值、最大值、最小值和变换比例。优选的,所述步骤S107中实现每一帧数据发送的过程进一步包括:S108:实现每一帧数据的单次发送;S109:实现每一帧数据按一定时间间隔连续发送。优选的,所述步骤S104进一步包括以下过程:通过所述步骤S103的解析,根据所述帧信息报文中的帧数量,在上位机界面动态创建与帧数量相同的帧控件;通过所述步骤S103的解析,根据所述帧信息报文中的帧数量,在创建的帧控件内各添加一个下拉列表,所述下拉列表的名称包括发送、单次发送和连续发送;通过所述步骤S103的解析,根据所述帧信息报文中的帧数量,在创建的帧控件内各添加一个发送按钮,进行发送数据时的操作;通过所述步骤S103的解析,根据所述帧信息报文中的帧数量,在创建的帧控件内各添加一个时间间隔输入框,通过设定时间间隔,实现帧信息报文的连续发送;通过所述步骤S103的解析,根据所述帧信息报文中的帧名称、帧ID号,将帧名称_ID号的连接字符作为标签添加至创建的各自帧控件。优选的,所述步骤S105进一步包括以下过程:通过所述步骤S103的解析,在上位机界面动态创建的每一个帧控件内,再动态创建与每一帧信号相同数量的信号控件,所述信号控件在所述帧控件内排列;通过所述步骤S103的解析,每一个信号控件显示相应的信号名称。优选的,所述步骤S106进一步包括以下过程:通过所述步骤S103的解析,在上位机界面动态创建的每一个帧控件内,动态创建与每一帧信号相同数量的信号文本框。优选的,所述步骤S108进一步包括以下过程:根据所述步骤104,对需要进行发送的帧数据,在所述帧控件内的下拉列表选择单次发送;设置最大值、最小值用于限制所述帧数据发送值的范围,确保所述帧数据的有效性;通过所述步骤S101的CAN通讯,在每个帧控件内设定信号文本框的值,点击发送按钮发送帧数据。优选的,所述步骤S109进一步包括以下过程:根据所述步骤S104,对需要进行发送的帧数据,在所述帧控件内的下拉列表选择连续发送;通过所述步骤S101的CAN通讯,在每个帧控件内,设定信号文本框的值,点击发送按钮发送帧数据;根据步骤所述步骤S104,对需要进行发送的帧数据,在所述帧控件内设定时间间隔值,点击发送按钮发送帧数据。优选的,在所述步骤S107之后还包括以下步骤:S110:根据对所述DBC文件的解析生成CAN相关嵌入式代码的.c及.h文件。优选的,所述步骤S110进一步包括以下过程:应用Print语句,本文档来自技高网
...
一种基于CAN通讯的DBC文件解析及其程序设计方法

【技术保护点】
一种基于CAN通讯的DBC文件解析程序设计方法,其特征在于,包括以下步骤:S101:设置CAN通讯参数配置,以实现CAN通讯正常连接;S102:创建DBC文件,所述DBC文件包括帧信息报文;S103:编写DBC文件解析程序,解析给定变量赋值帧的数量、帧名称及帧ID号;S104:动态创建与所述帧信息报文中帧数量相同的控件及帧字符显示;S105:动态创建所述DBC文件中信号名称的控件及名称显示;S106:动态创建所述DBC文件中信号值的控件及信号值显示;S107:实现所述帧信息报文中每一帧数据的接收或发送。

【技术特征摘要】
1.一种基于CAN通讯的DBC文件解析程序设计方法,其特征在于,包括以下步骤:S101:设置CAN通讯参数配置,以实现CAN通讯正常连接;S102:创建DBC文件,所述DBC文件包括帧信息报文;S103:编写DBC文件解析程序,解析给定变量赋值帧的数量、帧名称及帧ID号;S104:动态创建与所述帧信息报文中帧数量相同的控件及帧字符显示;S105:动态创建所述DBC文件中信号名称的控件及名称显示;S106:动态创建所述DBC文件中信号值的控件及信号值显示;S107:实现所述帧信息报文中每一帧数据的接收或发送。2.根据权利要求1所述的基于CAN通讯的DBC文件解析程序设计方法,其特征在于,所述步骤S101进一步包括以下过程:设置CAN通讯包括波特率、验收码、屏蔽码、帧类型在内的配置。3.根据权利要求1或2所述的基于CAN通讯的DBC文件解析程序设计方法,其特征在于,所述步骤S102进一步包括以下过程:根据CAN网络通讯协议定义数据,新建包括帧ID号、帧类型在内的帧信息报文,再对每一帧信息新建包括名称、类型、起始位、位长度、偏移值、最大值、最小值和变换比例在内的信号信息,待所需数据全部定义完成之后,将定义数据另存为所需的DBC文件。4.根据权利要求3所述的基于CAN通讯的DBC文件解析程序设计方法,其特征在于,所述步骤S103进一步包括以下过程:解析所述DBC文件中以BO_和SG_开头的所有行,解析给定变量赋值帧的数量、帧名称及帧ID号,并解析给定变量赋值每一帧内所有信号的名称、类型、起始位、位长度、偏移值、最大值、最小值和变换比例。5.根据权利要求1、2或4中任一项所述的基于CAN通讯的DBC文件解析程序设计方法,其特征在于,所述步骤S107中实现每一帧数据发送的过程进一步包括以下步骤:S108:实现每一帧数据的单次发送;S109:实现每一帧数据按一定时间间隔连续发送。6.根据权利要求5所述的基于CAN通讯的DBC文件解析程序设计方法,其特征在于,所述步骤S104进一步包括以下过程:通过所述步骤S103的解析,根据所述帧信息报文中的帧数量,在上位机界面动态创建与帧数量相同的帧控件;通过所述步骤S103的解析,根据所述帧信息报文中的帧数量,在创建的帧控件内各添加一个下拉列表,所述下拉列表的名称包括发送、单次发送和连续发送;通过所述步骤S103的解析,根据所述帧信息报文中的帧数量,在创建的帧控件内各添加一个发送按钮,进行发送数据时的操作;通过所述步骤S103的解析,根据所述帧信息报文中的帧数量,在创建的帧控件内各添加一个时间间隔输入框,通过设定时间间隔,实现帧信息报文的连续发送;通过所述步骤S103的解析,根据所述帧信息报文中的帧名称、帧ID号,将帧名称_ID号的连接字符作为标签添加至创建的各自帧控件。7.根据权利要求6所述的基于CAN通讯的DBC文件解析程序设计方法,其特征在于,所述步骤S105进一步包括以下过程:通过所述步骤S103的解析,在上位机界面动态创建的每一个帧控件内,再动态创建与每一帧信号相同数量的信号控件,所述信号控件在所述帧控件内排列;通过所述步骤S103的解析,每一个信号控件显示相应的信号名称。8.根据权利要求7所述的基于CAN通讯的DBC文件解析程序设计方法,其特征在于,所述步骤S106进一步包括以下过程:通过所述步骤S103的解析,在上位机界面动态创建的每一个帧控件内,动态创建与每一帧信号...

【专利技术属性】
技术研发人员:陈建明何伟周成
申请(专利权)人:株洲南车时代电气股份有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1