CN106528198A - 一种用于汽车电控单元的程序下载系统及方法 - Google Patents
一种用于汽车电控单元的程序下载系统及方法 Download PDFInfo
- Publication number
- CN106528198A CN106528198A CN201610864976.2A CN201610864976A CN106528198A CN 106528198 A CN106528198 A CN 106528198A CN 201610864976 A CN201610864976 A CN 201610864976A CN 106528198 A CN106528198 A CN 106528198A
- Authority
- CN
- China
- Prior art keywords
- program
- bootloader
- hex
- data
- control unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
本发明公开了一种用于汽车电控单元的程序下载系统,该程序下载系统与汽车电控单元的Bootloader相配合,其包括:人机交互界面,用于根据实际需要选择应用程序、设置参数、接收和发送数据显示及进行程序下载;HEX文件解析模块,用于通过文件路径打开并读取应用程序的HEX文件,将HEX文件解析并转换为芯片可以识别的数据格式;CAN通讯模块,用于将解析好的应用程序以CAN通信的形式发送给下位机,同时接收到Bootloader的状态反馈信息,并根据反馈信息对下载操作进行调整;接收和发送的CAN数据帧及相关信息显示在人机交互界面上。本发明程序下载系统抗干扰能力更强,下载速度更快,减少了开发人员进行程序更新时的工作量和复杂度,节省了程序调试所需成本。
Description
技术领域
本发明涉及汽车电控技术领域,具体涉及一种用于汽车电控单元的程序下载系统及方法。
背景技术
在汽车电控单元的开发过程中需要频繁地进行程序烧写工作,传统的烧写方式一般是利用芯片专用下载器通过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.点击“get on bus”按钮让上位机程序下载系统与下位机Bootloader建立通信连接。
4.通过CAN总线不断向下位机发送程序下载命令,并等待来自Bootloader的反馈信息,同时可以在显示框中观察到上位机接收到的CAN数据。
5.如果通信连接建立成功,则将转换好的应用程序逐帧向下位机发送,全部发完后软件自动停止,也可以手动通过“get on bus”强制中断下载。
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.判断ID 18FFAAAA的报文内容。
3.若为下位机Bootloader发送来的握手信息,则与下位机进行握手。
4.若为下位机Bootloader反馈的程序下载确认通知,则跳转至CAN通信发送模块发送下一页的数据。
以上所述仅为本发明的一种实施方式,不是全部或唯一的实施方式,本领域普通技术人员通过阅读本发明说明书而对本发明技术方案采取的任何等效的变换,均为本发明的权利要求所涵盖。
Claims (8)
1.一种用于汽车电控单元的程序下载系统,其特征在于,该程序下载系统与汽车电控单元的Bootloader相配合,其包括:
人机交互界面,用于根据实际需要选择应用程序、设置参数、接收和发送数据显示及进行程序下载;
HEX文件解析模块,用于通过文件路径打开并读取应用程序的HEX文件,将HEX文件解析并转换为芯片可以识别的数据格式;
CAN通讯模块,用于将解析好的应用程序以CAN通信的形式发送给下位机,同时接收到Bootloader的状态反馈信息,并根据反馈信息对下载操作进行调整;接收和发送的CAN数据帧及相关信息显示在人机交互界面上。
2.根据权利要求1所述的一种用于汽车电控单元的程序下载系统,其特征在于,人机交互界面中设置参数包括CAN通道号、波特率、ID类型、发送ID号及其他参数。
3.根据权利要求1所述的一种用于汽车电控单元的程序下载系统,其特征在于,所述的芯片为英飞凌系列芯片。
4.一种用于汽车电控单元的程序下载方法,其特征在于,包括以下步骤:
1)在文件路径下选择需要下载的应用程序的HEX文件;
2)通过文件路径打开并读取应用程序的HEX文件,将HEX文件解析并转换为芯片可以识别的数据格式;
3)使上位机程序下载系统与下位机Bootloader建立通信连接;将解析好的应用程序以CAN通信的形式发送给下位机,同时接收到Bootloader的状态反馈信息,并根据反馈信息对下载操作进行调整;
4)通过CAN总线向下位机发送程序下载命令,并等待来自Bootloader的反馈信息,同时观察到上位机接收到的CAN数据;
5)通信连接建立成功,则将转换好的应用程序逐帧向下位机发送,全部发完后结束下载。
5.根据权利要求4所述的一种用于汽车电控单元的程序下载方法,其特征在于,HEX文件解析包括以下步骤:
1.1)以行为单位读取HEX文件中的字符串;
1.2)将字符串转换为16进制数据,并以字节为单位将其转换为数列;
1.3)取数列的第4字节并根据其值进行判断:
如果是00,则该行字符串存储的是数据,则根据行偏移地址判断是否对该行数据进行页分割或页添加,然后返回步骤1.1);
如果是01,则该文件全部处理完毕,结束;
如果是04,则该行字符串存储的是页首地址,返回步骤1.1);
1.4)一行字符串处理完毕后,跳转至下一行继续处理。
6.根据权利要求5所述的一种用于汽车电控单元的程序下载方法,其特征在于,根据行偏移地址判断的具体步骤为:
根据行偏移地址判断该行是否包含页首地址:若是,则根据偏移地址极端页首地址并对数据记录进行分割;若否,则直接将数据记录添加至页数组中。
7.根据权利要求4所述的一种用于汽车电控单元的程序下载方法,其特征在于,CAN通信的发送流程具体步骤如下:
2.1)应用程序启动后,向下位机Bootloader发送程序下载请求;
2.2)与下位机Bootloader进行握手,以建立CAN通信;
2.3)建立通信连接成功后,从HEX文件解析出一页数据,逐帧循环发送给Bootloader,每帧包含四个字节的数据;
2.4)间隔循环发送33帧数据;
2.5)如果收到Bootloader反馈的下载确认通知,则跳转至步骤2.3),再解析出一页数据继续发送;如果没有收到下载确认通知,则返回步骤2.4)。
8.根据权利要求7所述的一种用于汽车电控单元的程序下载方法,其特征在于,CAN通信的接收流程具体步骤如下:
3.1)读取CAN通信接收缓冲区的内容;
3.2)判断不同ID的报文内容:若为下位机Bootloader发送来的握手信息,则与下位机进行握手;
若为下位机Bootloader反馈的程序下载确认通知,则跳转至CAN通信发送流程发送下一页的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610864976.2A CN106528198A (zh) | 2016-09-29 | 2016-09-29 | 一种用于汽车电控单元的程序下载系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610864976.2A CN106528198A (zh) | 2016-09-29 | 2016-09-29 | 一种用于汽车电控单元的程序下载系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106528198A true CN106528198A (zh) | 2017-03-22 |
Family
ID=58344586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610864976.2A Pending CN106528198A (zh) | 2016-09-29 | 2016-09-29 | 一种用于汽车电控单元的程序下载系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106528198A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108462567A (zh) * | 2017-12-28 | 2018-08-28 | 宁德时代新能源科技股份有限公司 | 车载程序文件下载方法和装置 |
CN110244688A (zh) * | 2019-06-06 | 2019-09-17 | 惠州市德赛西威汽车电子股份有限公司 | 基于LabVIEW的仪表总线面板自动生成方法及其系统 |
CN111158662A (zh) * | 2019-12-24 | 2020-05-15 | 江苏大学 | 一种利用LabVIEW设计MSCAN通讯的方法 |
CN111901212A (zh) * | 2019-05-06 | 2020-11-06 | 上汽通用汽车有限公司 | 基于车载总线的多种不同通讯协议刷新电控模块的方法 |
CN112052046A (zh) * | 2020-07-24 | 2020-12-08 | 乐歌人体工学科技股份有限公司 | 一种针对升降装置的电机控制参数修改的方法 |
CN112214230A (zh) * | 2020-09-15 | 2021-01-12 | 广芯微电子(广州)股份有限公司 | 一种芯片程序烧写装置及芯片程序烧写方法 |
CN113934473A (zh) * | 2021-12-17 | 2022-01-14 | 机科发展科技股份有限公司 | 一种工业电动车辆驱动器应用程序下载系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294511A (zh) * | 2013-05-31 | 2013-09-11 | 哈尔滨工业大学 | 基于CAN总线的bootloader软件的升级方法 |
CN103744712A (zh) * | 2014-01-28 | 2014-04-23 | 北京经纬恒润科技有限公司 | 一种应用程序的更新方法及装置 |
CN104281469A (zh) * | 2014-08-26 | 2015-01-14 | 东风电子科技股份有限公司 | 实现电子控制单元程序刷写的方法及系统 |
CN105573807A (zh) * | 2015-12-31 | 2016-05-11 | 清华大学苏州汽车研究院(吴江) | 一种基于can总线的ecu在线程序升级系统及方法 |
-
2016
- 2016-09-29 CN CN201610864976.2A patent/CN106528198A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294511A (zh) * | 2013-05-31 | 2013-09-11 | 哈尔滨工业大学 | 基于CAN总线的bootloader软件的升级方法 |
CN103744712A (zh) * | 2014-01-28 | 2014-04-23 | 北京经纬恒润科技有限公司 | 一种应用程序的更新方法及装置 |
CN104281469A (zh) * | 2014-08-26 | 2015-01-14 | 东风电子科技股份有限公司 | 实现电子控制单元程序刷写的方法及系统 |
CN105573807A (zh) * | 2015-12-31 | 2016-05-11 | 清华大学苏州汽车研究院(吴江) | 一种基于can总线的ecu在线程序升级系统及方法 |
Non-Patent Citations (1)
Title |
---|
陈彤 等: ""一种用于汽车电控单元CAN Bootloader的设计与实现"", 《汽车电子》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108462567A (zh) * | 2017-12-28 | 2018-08-28 | 宁德时代新能源科技股份有限公司 | 车载程序文件下载方法和装置 |
CN111901212A (zh) * | 2019-05-06 | 2020-11-06 | 上汽通用汽车有限公司 | 基于车载总线的多种不同通讯协议刷新电控模块的方法 |
CN111901212B (zh) * | 2019-05-06 | 2022-05-17 | 上汽通用汽车有限公司 | 基于车载总线的多种不同通讯协议刷新电控模块的方法 |
CN110244688A (zh) * | 2019-06-06 | 2019-09-17 | 惠州市德赛西威汽车电子股份有限公司 | 基于LabVIEW的仪表总线面板自动生成方法及其系统 |
CN111158662A (zh) * | 2019-12-24 | 2020-05-15 | 江苏大学 | 一种利用LabVIEW设计MSCAN通讯的方法 |
CN112052046A (zh) * | 2020-07-24 | 2020-12-08 | 乐歌人体工学科技股份有限公司 | 一种针对升降装置的电机控制参数修改的方法 |
CN112214230A (zh) * | 2020-09-15 | 2021-01-12 | 广芯微电子(广州)股份有限公司 | 一种芯片程序烧写装置及芯片程序烧写方法 |
CN113934473A (zh) * | 2021-12-17 | 2022-01-14 | 机科发展科技股份有限公司 | 一种工业电动车辆驱动器应用程序下载系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528198A (zh) | 一种用于汽车电控单元的程序下载系统及方法 | |
US11403364B2 (en) | Method and terminal device for extracting web page content | |
CN106936871A (zh) | 界面展示数据的方法及装置 | |
CN109388396A (zh) | 页面生成方法、装置、计算机设备和存储介质 | |
CN100386743C (zh) | 一种嵌入式系统的调试方法及其系统 | |
US20210182032A1 (en) | Execution Order Block For Graphical Programming | |
CN103383670B (zh) | 整合周边装置的通用型驱动方法与系统 | |
CN102279789A (zh) | 生产阶段嵌入式系统的调试系统及其调试方法 | |
US20090064096A1 (en) | System and methods for tracing code generation in template engines | |
CN110837385A (zh) | 一种基于CANopen协议的DSP应用程序在线升级方法 | |
JPH0195354A (ja) | アプリケーションプログラムインタフエース及び情報処理システムの動作方法 | |
CN108399072A (zh) | 应用页面更新方法和装置 | |
CN110119222A (zh) | 基于双系统的触控模块切换方法、装置、设备及可读介质 | |
CN104077166A (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
CN102868734A (zh) | 一种用于全自动生化分析仪的在线升级方法及其系统 | |
CN115982266A (zh) | 基于自定义配置属性字段的页面动态渲染方法及系统 | |
CN104699500A (zh) | 智能设备中实现引导程序自动升级的方法 | |
CN106775826B (zh) | 一种使用注解方式加载代码文件的方法及系统 | |
CN105607909B (zh) | 一种基于mvc框架改进列表开发效率的方法和系统 | |
JP2001034497A (ja) | 逆アセンブラのバイナリコード取得方法 | |
CN109634215B (zh) | 一种基于平面图形编码技术的核电厂操作规程设计方法 | |
CN206892846U (zh) | 一种微控制器嵌入式系统的程序烧写系统 | |
CN106502968A (zh) | 数据处理的方法及装置 | |
US20060080636A1 (en) | Method of building intelligent platform management interface firmware architecture | |
CN103177064B (zh) | 一种自动取录电子文档中指定内容的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170322 |
|
RJ01 | Rejection of invention patent application after publication |