CN107678760A - 一种can烧写程序交互控制系统及方法 - Google Patents
一种can烧写程序交互控制系统及方法 Download PDFInfo
- Publication number
- CN107678760A CN107678760A CN201710813912.4A CN201710813912A CN107678760A CN 107678760 A CN107678760 A CN 107678760A CN 201710813912 A CN201710813912 A CN 201710813912A CN 107678760 A CN107678760 A CN 107678760A
- Authority
- CN
- China
- Prior art keywords
- unit
- program
- data
- host computer
- slave computer
- 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
本发明涉及一种CAN烧写程序交互控制系统及方法。解决程序下载需要使用官方下载器进行下载,存在成本高,错误率高的问题。系统包括上位机和下位机,上位机与下位机之间通过CAN总线相连,上位机包括命令发送单元、第一处理单元、报警单元和更新分区确认单元,下位机包括命令反馈单元、数据分析单元、数据烧写单元、第二处理单元。控制方法采用一答一问式确认下位机进行更新程序;确认需要更新的程序分区;逐行下载更新数据进行解析和验证。本发明采用一问一答交互形式,保证了通信的准确性,提高了程序的执行效率。对数据逐行进行下载,保证整个烧写程序的完整性。数据分区进行下载,节省了下载时间,提高了程序下载效率。
Description
技术领域
本发明涉及一种程序烧写技术,尤其是涉及一种CAN烧写程序交互控制系统及方法。
背景技术
目前在用的一种程序下载方法是MCU连接程序下载器通过JTAG标准接口完成对程序的下载。也就是通过串口进行更新程序。使用的是芯片官方提供的开发环境。
还有一种方法是通过自主开发上位机,通过串口下载程序,不对S19文件进行深入的解析,传输和烧写过程也不进行数据验证。
但这两种方法都存在缺陷,其中第一种方法不能自由的控制程序的下载区域,只适合开发阶段使用。且需要下载器一般都需要去官方买的,官方提供的下载器一般价格都较贵,使得应用成本过高。第二种方法没有对文件进行深入的解析,也没有对下载的文件做详细的校验,错误率较高。且不能将代码进行分区域下载,因此每次下载都需要下载整个烧写程序,占用大量的时间。实用性不强。
发明内容
本发明主要是解决现有技术中程序下载需要使用官方下载器进行下载,存在成本高,错误率高的问题,以及采用串口下载,且没有对程序进行解析,没有进行分区域下载,存在错误率高、烧写效率低的问题,提供了一种成本低、错误率低、效率高的CAN烧写程序交互控制系统及方法。
本发明的上述技术问题主要是通过下述技术方案得以解决的:一种CAN烧写程序交互控制系统,包括上位机和下位机,上位机与下位机之间通过CAN总线相连,上位机包括命令发送单元、第一处理单元、报警单元和更新分区确认单元,命令发送单元、更新分区确认单元、报警单元分别与第一处理单元相连,下位机包括命令反馈单元、数据分析单元、数据烧写单元、第二处理单元,命令反馈单元与第二处理单元相连,第二处理单元与数据分析单元相连,数据分析单元与烧写单元相连,命令反馈单元与命令发送单元通过CAN中线相连。本发明中上位机命令发送单元向下位机发起命令,下位机命令反馈单元接收命令并向命令发送单元进行反馈,形成一问一答的交互形式。第一处理单元对上位机接收信息进行处理。更新分区确认单元对需要更新程序的各分区进行确认,若其中分区有更新则单独发送更新分区的程序给下位机进行下载。报警单元在命令发送单元长时间没有接收到命令反馈单元答复后进行报警。第二处理单元对下位机接收信息进行处理。数据分析单元对接收的更新数据进行解析和验证。数据烧写单元对验证通过的数据进行写入。本发明采用一问一答的交互方式,上位机发起命令,需要下位机进行答复后才能进行下一步的操作,保证了通信的准确性,提高了程序的执行效率,加快整个程序的下载时间。数据分区进行下载,只需要下载有更改部分的区域的数据,大大节省了下载时间,提高了程序下载效率。
一种CAN烧写程序交互控制方法,包括以下步骤:
S1.采用一答一问式确认下位机进行更新程序;
S2.确认需要更新的程序分区;
S3.逐行下载更新数据进行解析和验证,通过后写入文件,直至所有数据都写入完毕。
本发明上位机和下位机之间采用一问一答交互形式,上位机发起命令后,需要下位机答复后才能进行下一步操作,保证了通信的准确性,提高了程序的执行效率,加快整个程序的下载时间。对数据逐行进行下载,每一行都进行解析和验证,一行验证通过后才进行下一行数据的处理,这样可以确保每一行数据都能正确的写入到对应的地址空间里,保证整个烧写程序的完整性。数据分区进行下载,只需要下载有更改部分的区域的数据,大大节省了下载时间,提高了程序下载效率。
作为一种优选方案,步骤S1中确认下位机进行更新程序的过程包括:
S11.上位机向下位机发送更新请求,下位机若允许更新程序则反馈允许更新信息给上位机,进入下步骤;若不允许更新程序则反馈不允许更新信息给上位机,结束更新;
S12.上位机向下位机发送是否进入BOOT更新程序询问请求,下位机若已进入则反馈需要更新信息给上位机,进入下步骤;若未进入则反馈不需要更新信息给上位机,结束更新。
作为一种优选方案,步骤S2中确认需要更新的程序分区的过程包括:
S21.将程序划分成多个分区;
S22. 确认需要更新的程序分区,并根据程序分区向上危机请求程序分区FLASH地址;
S23.上位机提供需擦除的FLASH地址给下位机,下位机进行擦除,若擦除成功则反馈成功信息给上位机,继续更新,若擦除失败则反馈失败信息给上位机,停止更新。
作为一种优选方案,步骤S3的具体过程包括:
S31.下位机下载一行数据;
S32.对下载的数据进行解析,获得解析信息;
S33.根据解析信息对数据进行验证,若验证通过进入下步骤,若验证不通过则反馈信息给上位机,停止更新;
S34.将验证通过数据写入到相应地址;
S35.下位机下载下一行数据,重复步骤S32-S34,直至所有数据写入完毕。
作为一种优选方案,在上位机向下位机发送请求后,若长时间都没有收到下位机的反馈信息,则控制报警单元进行报警,结束程序更新。
因此,本发明的优点是:上位机和下位机之间采用一问一答交互形式,上位机发起命令后,需要下位机答复后才能进行下一步操作,保证了通信的准确性,提高了程序的执行效率,加快整个程序的下载时间。对数据逐行进行下载,每一行都进行解析和验证,一行验证通过后才进行下一行数据的处理,这样可以确保每一行数据都能正确的写入到对应的地址空间里,保证整个烧写程序的完整性。数据分区进行下载,只需要下载有更改部分的区域的数据,大大节省了下载时间,提高了程序下载效率。
附图说明
附图1是本发明的一种结构框示图;
附图2是本发明的一种流程示意图。
1-上位机 2-下位机 11-命令发送单元 12-第一处理单元 13-更新分区确认单元14-报警单元 21-命令反馈单元 22-第二处理单元 23-数据分析单元 24-数据烧写单元。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
本实施例一种CAN烧写程序交互控制系统,如图1所示,包括上位机1和下位机2,上位机与下位机之间通过CAN总线相连。
上位机包括命令发送单元11、第一处理单元12、报警单元14和更新分区确认单元13,命令发送单元、更新分区确认单元、报警单元分别与第一处理单元相连。下位机包括命令反馈单元21、数据分析单元23、数据烧写单元24、第二处理单元22,命令反馈单元与第二处理单元相连,第二处理单元与数据分析单元相连,数据分析单元与烧写单元相连,命令反馈单元与命令发送单元通过CAN总线相连。
一种CAN烧写程序交互控制方法,如图2所示,包括以下步骤:
S1.采用一答一问式确认下位机进行更新程序;其过程为:
S11.上位机向下位机发送更新请求,下位机若允许更新程序则反馈允许更新信息给上位机,进入下步骤;若不允许更新程序则反馈不允许更新信息给上位机,结束更新;
S12.上位机向下位机发送是否进入BOOT更新程序询问请求,下位机若已进入则反馈需要更新信息给上位机,进入下步骤;若未进入则反馈不需要更新信息给上位机,结束更新。
S2.确认需要更新的程序分区;过程包括:
S21.将程序划分成多个分区;
S22. 确认需要更新的程序分区,并根据程序分区向上危机请求程序分区FLASH地址;
S23.上位机提供需擦除的FLASH地址给下位机,下位机进行擦除,若擦除成功则反馈成功信息给上位机,继续更新,若擦除失败则反馈失败信息给上位机,停止更新。
S3.逐行下载更新数据进行解析和验证,通过后写入文件,直至所有数据都写入完毕。过程包括:
S31.下位机下载一行数据;
S32.对下载的数据进行解析,获得解析信息;
S33.根据解析信息对数据进行验证,若验证通过进入下步骤,若验证不通过则反馈信息给上位机,停止更新;
S34.将验证通过数据写入到相应地址;
S35.下位机下载下一行数据,重复步骤S32-S34,直至所有数据写入完毕。
在上位机向下位机发送请求后,若长时间都没有收到下位机的反馈信息,则控制报警单元进行报警,结束程序更新。
下面采用具体事例对步骤S3进行说明。
本实施例中以S19文件为例,摘取S19文件中的一部分说明烧写程序交互过程。
这里摘取了整个S19文件中的四行数据,
S30D00010000015A00000001010490
S31900010020000100000001000000000008000100200001002079
S31900010034000000E4000101040001010400000244000110006A
S3190001004800011000000001000001110000011100000000A8DF
首先下载第一行数据,对第一行数据进行进行解析,获得解析信息:
数据类型:S3
剩余成对字符数:0D
数据存放地址:00010000
有效数据:015A000000010104
校验和:90
根据校验和计算方法对接收的数据进行校验,校验和计算如下:
0x0D+0x00+0x01+0x00+0x00+0x01+0x5A+0x00+0x00+0x00+0x01+0x01+0x04=0x90;
验证通过,则接收的数据是完全正确的,根据这一行提供的地址,将有效数据写入到该地址中,每次写8个字节。完成后将写入情况反馈给上位机。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管本文较多地使用了上位机、下位机、命令发送单元、第一处理单元等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
Claims (6)
1.一种CAN烧写程序交互控制系统,其特征在于:包括上位机和下位机,上位机与下位机之间通过CAN总线相连,上位机包括命令发送单元、第一处理单元、报警单元和更新分区确认单元,命令发送单元、更新分区确认单元、报警单元分别与第一处理单元相连,下位机包括命令反馈单元、数据分析单元、数据烧写单元、第二处理单元,命令反馈单元与第二处理单元相连,第二处理单元与数据分析单元相连,数据分析单元与烧写单元相连,命令反馈单元与命令发送单元通过CAN总线相连。
2.一种CAN烧写程序交互控制方法,采用权利要求1中的系统,其特征是包括以下步骤:
S1.采用一答一问式确认下位机进行更新程序;
S2.确认需要更新的程序分区;
S3.逐行下载更新数据进行解析和验证,通过后写入文件,直至所有数据都写入完毕。
3.根据权利要求2所述的一种CAN烧写程序交互控制方法,其特征是步骤S1中确认下位机进行更新程序的过程包括:
S11.上位机向下位机发送更新请求,下位机若允许更新程序则反馈允许更新信息给上位机,进入下步骤;若不允许更新程序则反馈不允许更新信息给上位机,结束更新;
S12.上位机向下位机发送是否进入BOOT更新程序询问请求,下位机若已进入则反馈需要更新信息给上位机,进入下步骤;若未进入则反馈不需要更新信息给上位机,结束更新。
4.根据权利要求2所述的一种CAN烧写程序交互控制方法,其特征是步骤S2中确认需要更新的程序分区的过程包括:
S21.将程序划分成多个分区;
S22.确认需要更新的程序分区,并根据程序分区向上危机请求程序分区FLASH地址;
S23.上位机提供需擦除的FLASH地址给下位机,下位机进行擦除,若擦除成功则反馈成功信息给上位机,继续更新,若擦除失败则反馈失败信息给上位机,停止更新。
5.根据权利要求2所述的一种CAN烧写程序交互控制方法,其特征是步骤S3的具体过程包括:
S31.下位机下载一行数据;
S32.对下载的数据进行解析,获得解析信息;
S33.根据解析信息对数据进行验证,若验证通过进入下步骤,若验证不通过则反馈信息给上位机,停止更新;
S34.将验证通过数据写入到相应地址;
S35.下位机下载下一行数据,重复步骤S32-S34,直至所有数据写入完毕。
6.根据权利要求3所述的一种CAN烧写程序交互控制方法,其特征是在上位机向下位机发送请求后,若长时间都没有收到下位机的反馈信息,则控制报警单元进行报警,结束程序更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710813912.4A CN107678760A (zh) | 2017-09-11 | 2017-09-11 | 一种can烧写程序交互控制系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710813912.4A CN107678760A (zh) | 2017-09-11 | 2017-09-11 | 一种can烧写程序交互控制系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107678760A true CN107678760A (zh) | 2018-02-09 |
Family
ID=61135407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710813912.4A Pending CN107678760A (zh) | 2017-09-11 | 2017-09-11 | 一种can烧写程序交互控制系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107678760A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189410A (zh) * | 2018-08-21 | 2019-01-11 | 铁将军汽车电子股份有限公司 | 烧录方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060195833A1 (en) * | 2005-02-25 | 2006-08-31 | Inventec Corporation | Data-burning method and system thereof based on auto-detection of computer platform |
CN104216745A (zh) * | 2014-08-29 | 2014-12-17 | 万向钱潮股份有限公司 | 一种半主动悬架ecu控制器软件在线升级系统与方法 |
CN105426198A (zh) * | 2014-09-09 | 2016-03-23 | 联创汽车电子有限公司 | 车载双控制芯片系统及其辅助控制芯片程序更新方法 |
CN106775904A (zh) * | 2017-03-03 | 2017-05-31 | 北京电擎科技股份有限公司 | 一种微控制器嵌入式系统的程序烧写系统及方法 |
-
2017
- 2017-09-11 CN CN201710813912.4A patent/CN107678760A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060195833A1 (en) * | 2005-02-25 | 2006-08-31 | Inventec Corporation | Data-burning method and system thereof based on auto-detection of computer platform |
CN104216745A (zh) * | 2014-08-29 | 2014-12-17 | 万向钱潮股份有限公司 | 一种半主动悬架ecu控制器软件在线升级系统与方法 |
CN105426198A (zh) * | 2014-09-09 | 2016-03-23 | 联创汽车电子有限公司 | 车载双控制芯片系统及其辅助控制芯片程序更新方法 |
CN106775904A (zh) * | 2017-03-03 | 2017-05-31 | 北京电擎科技股份有限公司 | 一种微控制器嵌入式系统的程序烧写系统及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189410A (zh) * | 2018-08-21 | 2019-01-11 | 铁将军汽车电子股份有限公司 | 烧录方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102495744B (zh) | 基于can总线的电动汽车电控设备控制软件升级方法 | |
CN111381844A (zh) | 更新车辆ecu固件的方法及装置 | |
CN112698854A (zh) | 一种车辆多控制器刷写设备 | |
CN107357595A (zh) | 一种基于总线的多驱动器固件在线更新系统 | |
CN104317618A (zh) | 一种固件分区处理方法和装置 | |
CN103761131B (zh) | 一种基于内存共享的多板卡部件自动更新方法及系统 | |
CN108989103A (zh) | 设备升级方法、调试器、网络设备和网络系统 | |
CN103257869B (zh) | 一种ecu程序智能下载方法 | |
CN113518004A (zh) | 物联网网关的管控方法和系统 | |
CN113703803A (zh) | 基于fpga的远程升级系统、方法及介质 | |
CN110210586A (zh) | 车载终端与车辆的绑定方法、装置及计算设备 | |
CN113608772A (zh) | 一种应用程序升级方法及装置 | |
CN107678760A (zh) | 一种can烧写程序交互控制系统及方法 | |
CN102495746A (zh) | 一种机载嵌入式计算机数据加载方法 | |
CN105824653A (zh) | 一种汽车can总线数据刷写方法及装置 | |
CN107015829A (zh) | 音频系统升级方法、装置 | |
CN113741936B (zh) | 一种基于uds协议的并行刷写方法、装置、车辆及计算机可读存储介质 | |
CN102866900A (zh) | 更新fpga控制单元的配置数据的方法及系统 | |
CN111190621A (zh) | 固件烧录方法、装置、系统、终端设备及存储介质 | |
CN107220070A (zh) | 一种物联网用dtu数据采集方法 | |
CN106555743B (zh) | 一种电动压缩机驱动器固件更新方法及系统 | |
CN108415711B (zh) | 一种在线烧录mac地址的方法 | |
CN110134423B (zh) | 固件的更新方法、装置及计算机可读存储介质 | |
CN106445592A (zh) | 一种基于wifi与can总线远程多机程序升级方法 | |
CN109918082A (zh) | 软件开发的编译系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180209 |