一种用于汽车电控单元的程序下载系统及方法与流程

文档序号:12119884阅读:421来源:国知局
一种用于汽车电控单元的程序下载系统及方法与流程
本发明涉及汽车电控
技术领域
,具体涉及一种用于汽车电控单元的程序下载系统及方法。
背景技术
:在汽车电控单元的开发过程中需要频繁地进行程序烧写工作,传统的烧写方式一般是利用芯片专用下载器通过BDM调试接口下载程序,该方式的下载速度较慢,而且在汽车电控单元的后期维护中,如果需要升级应用程序,就需要从整车上将电控单元拆卸下来,为电控单元的维护和调试带来极大的不便。对于已经投入使用的汽车电控单元来说,急需一种方便快捷的程序升级方法,从而提高维护人员的工作效率。Bootloader作为应用程序运行之前的一段程序,主要完成应用程序的启动引导和更新,而CAN总线通信在汽车电子领域的广泛应用,使得Bootloader可以直接通过CAN总线进行程序升级。英飞凌系列芯片广泛应用于汽车电控单元,但其自带的程序下载方式,需要英飞凌厂家提供的上位机程序下载系统与之配合,当使用Bootloader以后,由于程序下载方式的改变,原有的程序下载系统无法适用。随着Bootloader在汽车电控领域的不断推广,迫切需要开发与之相配合的上位机程序下载系统。技术实现要素:为解决现有技术存在的问题,本发明提供了一种用于汽车电控单元的程序下载系统及方法。本发明程序下载系统抗干扰能力更强,下载速度更快,减少了开发人员进行程序更新时的工作量和复杂度,节省了程序调试所需成本。为了实现上述目的,本发明采用如下技术方案:一种用于汽车电控单元的程序下载系统,该程序下载系统与汽车电控单元的Bootloader相配合,其包括:人机交互界面,用于根据实际需要选择应用程序、设置参数、接收和发送数据显示及进行程序下载;HEX文件解析模块,用于通过文件路径打开并读取应用程序的HEX文件,将HEX文件解析并转换为芯片可以识别的数据格式;CAN通讯模块,用于将解析好的应用程序以CAN通信的形式发送给下位机,同时接收到Bootloader的状态反馈信息,并根据反馈信息对下载操作进行调整;接收和发送的CAN数据帧及相关信息显示在人机交互界面上。设置参数包括CAN通道号、波特率、ID类型、发送ID号及其他参数。所述的芯片为英飞凌系列芯片。一种用于汽车电控单元的程序下载方法,包括以下步骤:1)在文件路径下选择需要下载的应用程序的HEX文件;2)通过文件路径打开并读取应用程序的HEX文件,将HEX文件解析并转换为芯片可以识别的数据格式;3)使上位机程序下载系统与下位机Bootloader建立通信连接;将解析好的应用程序以CAN通信的形式发送给下位机,同时接收到Bootloader的状态反馈信息,并根据反馈信息对下载操作进行调整;4)通过CAN总线向下位机发送程序下载命令,并等待来自Bootloader的反馈信息,同时观察到上位机接收到的CAN数据;5)通信连接建立成功,则将转换好的应用程序逐帧向下位机发送,全部发完后结束下载。HEX文件解析包括以下步骤:1.1)以行为单位读取HEX文件中的字符串;1.2)将字符串转换为16进制数据,并以字节为单位将其转换为数列;1.3)取数列的第4字节并根据其值进行判断:如果是00,则该行字符串存储的是数据,则根据行偏移地址判断是否对该行数据进行页分割或页添加,然后返回步骤1.1);如果是01,则该文件全部处理完毕,结束;如果是04,则该行字符串存储的是页首地址,返回步骤1.1);1.4)一行字符串处理完毕后,跳转至下一行继续处理。根据行偏移地址判断的具体步骤为:根据行偏移地址判断该行是否包含页首地址:若是,则根据偏移地址极端页首地址并对数据记录进行分割;若否,则直接将数据记录添加至页数组中。CAN通信的发送流程具体步骤如下:2.1)应用程序启动后,向下位机Bootloader发送程序下载请求;2.2)与下位机Bootloader进行握手,以建立CAN通信;2.3)建立通信连接成功后,从HEX文件解析出一页数据,逐帧循环发送给Bootloader,每帧包含四个字节的数据;2.4)间隔循环发送33帧数据;2.5)如果收到Bootloader反馈的下载确认通知,则跳转至步骤2.3),再解析出一页数据继续发送;如果没有收到下载确认通知,则返回步骤2.4)。CAN通信的接收流程具体步骤如下:3.1)读取CAN通信接收缓冲区的内容;3.2)判断不同ID的报文内容:若为下位机Bootloader发送来的握手信息,则与下位机进行握手;若为下位机Bootloader反馈的程序下载确认通知,则跳转至CAN通信发送流程发送下一页的数据。相对于现有技术,本发明具有以下有益效果:本发明的程序下载系统通过CAN通信与Bootloader配合实现汽车电控单元的程序下载,相比于传统的程序下载方式,抗干扰能力更强,下载速率更快,无需拆卸电控单元而直接通过CAN总线完成程序刷写,减少了开发人员进行程序更新时的工作量和复杂度,节省了程序调试所需成本。本发明的程序下载系统分为人机交互界面、HEX文件解析模块、CAN通信模块三个部分,将汽车电控单元程序下载功能细化为不同的模块,增强了系统的可拓展性。特别是将HEX文件解析模块独立出来,使得本发明的程序下载系统不再局限于英飞凌系列芯片,而是可以根据电控单元所使用芯片的不同,对文件解析模块进行调整。使用Bootloader对应用程序进行引导和加载是汽车电控单元发展的一个必然趋势,本发明的程序下载系统能够与Bootloader配合紧密,符合汽车电控单元逐步推广Bootloader的发展需求。本发明下载方法中HEX文件解析模块虽然是用于处理HEX文件的,但是本发明以字符串行为单位处理应用程序文件的方式具有较强的通用性,也适用于H86等其他格式的文件。应用程序文件的解析和下载同时进行,进一步加快了程序下载速率。人机交互界面可根据实际工况对CAN通信进行配置,并显示下载过程中的CAN报文,方便开发人员对汽车电控单元程序下载的实时监控。附图说明图1为HEX文件解析流程图;图2为CAN通信发送流程图;图3为CAN通信接收流程图。具体实施方式下面结合附图对本发作明进一步描述。本发明一种用于汽车电控单元的程序下载系统,其为与汽车电控单元Bootloader相配合的上位机程序下载系统,其主要功能是读取并解析应用程序,并通过CAN总线与下位机Bootloader配合实现应用程序的下载。对于英飞凌系列芯片来说,开发人员所编写的下位机应用程序通过英飞凌的集成开发环境Tasking进行编译链接后,生成了HEX文件,因此,用于英飞凌系列芯片Bootloader的程序下载系统,需要处理的应用程序就是HEX文件。用于英飞凌系列芯片Bootloader的程序下载系统,包括人机交互界面、HEX文件解析模块及CAN通讯模块,其实现的功能如下:1)具有人机交互界面,开发人员可以根据实际需要选择应用程序、设置波特率、发送帧类型、发送ID号等。2)能够通过文件路径打开并读取应用程序HEX代码文件,并将HEX文件解析并转换为英飞凌系列芯片可以识别的数据格式。3)将解析好的应用程序以CAN通信的形式发送给下位机,同时能够接收到Bootloader的状态反馈信息,并根据反馈信息对下载操作进行调整。接收和发送的CAN数据帧及相关信息能够显示在人机交互界面上。由于Labview具有庞大的CAN通信库函数以及强大的图形化界面编程功能,因此选择Labview来设计并实现用于英飞凌系列芯片Bootloader的程序下载系统。用于英飞凌系列芯片Bootloader的程序下载系统,使用人机交互界面进行程序下载的具体步骤如下:1.设置好CAN通道号、波特率、ID类型、发送ID号等参数。2.在文件路径下选择需要下载的应用程序HEX代码文件。3.点击“getonbus”按钮让上位机程序下载系统与下位机Bootloader建立通信连接。4.通过CAN总线不断向下位机发送程序下载命令,并等待来自Bootloader的反馈信息,同时可以在显示框中观察到上位机接收到的CAN数据。5.如果通信连接建立成功,则将转换好的应用程序逐帧向下位机发送,全部发完后软件自动停止,也可以手动通过“getonbus”强制中断下载。6.如果通信过程中出现错误,则会在错误对话框中显示出错误信息。HEX文件解析是整个程序下载系统的关键部分,HEX二进制文件的行格式如表1所示:表1字节定义1该行数据记录的字节长度2,3该行数据记录的地址偏移量4该行数据记录的类型5~n(根据数据记录长度决定)数据记录最后一字节奇偶校验HEX文件数据记录类型定义如表2所示:表2值定义00实际数据01文件结束02扩展段地址记录03开始段地址记录04扩展线性地址记录05开始线性地址记录因此,HEX文件解析模块需要以行为单位对HEX文件进行处理,并将读取到的字符串转换为16进制数据,根据不同的数据记录类型进行相应的处理,最终将HEX文件解析为英飞凌系列芯片能够识别和刷写的格式。由于英飞凌系列芯片在对内部存储区进行程序下载时是以页(128字节)为单位进行的,因此HEX文件解析模块的处理结果也必须符合这种形式,HEX文件解析流程如图1所示:1.以行为单位读取HEX文件中的字符串。2.将字符串转换为16进制数据,并以字节为单位将其转换为数列。3.取数列的第4字节并根据其值进行判断。4.如果是00,说明该行字符串存储的是数据,则根据行偏移地址来决定是否对该行数据进行页分割或页添加。5.如果是01,说明该文件全部处理完毕。6.如果是04,说明该行字符串存储的是页首地址。7.一行字符串处理完毕后,跳转至下一行继续处理。CAN通信发送流程如图2所示:1.程序启动后,向下位机Bootloader发送程序下载请求。2.与下位机Bootloader进行握手,以建立CAN通信。3.建立通信连接成功后,从HEX文件解析出一页数据,逐帧循环发送给Bootloader,每帧包含四个字节的数据。4.如果收到Bootloader反馈的下载确认通知,则跳转至文件解析模块,再解析出一页数据继续发送。CAN通信接收流程如图3所示:1.读取CAN通信接收缓冲区的内容。2.判断ID18FFAAAA的报文内容。3.若为下位机Bootloader发送来的握手信息,则与下位机进行握手。4.若为下位机Bootloader反馈的程序下载确认通知,则跳转至CAN通信发送模块发送下一页的数据。以上所述仅为本发明的一种实施方式,不是全部或唯一的实施方式,本领域普通技术人员通过阅读本发明说明书而对本发明技术方案采取的任何等效的变换,均为本发明的权利要求所涵盖。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1