CN104049996A - 一种基于串口进行弹载计算机软件更新的方法 - Google Patents
一种基于串口进行弹载计算机软件更新的方法 Download PDFInfo
- Publication number
- CN104049996A CN104049996A CN201410233073.5A CN201410233073A CN104049996A CN 104049996 A CN104049996 A CN 104049996A CN 201410233073 A CN201410233073 A CN 201410233073A CN 104049996 A CN104049996 A CN 104049996A
- Authority
- CN
- China
- Prior art keywords
- missile
- software
- borne computer
- data
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于串口进行弹载计算机软件更新的方法,包括下述步骤:上位机和弹载计算机通过串口建立通信;上位机软件按照通讯协议将编译器生成的bin文件通过串口发送给弹载计算机;弹载计算机将接收到的每包数据进行校验和计算,正确则写入flash中的临时扇区暂存;所有数据接收并写入临时flash扇区后,计算总校验和,正确则写入正式flash扇区,对弹载计算机重新上电,软件更新完成。本发明通过弹载计算机已有串口对软件升级,避免了通过仿真器升级时,需要拆装结构件的麻烦。同时,通过计算不同数据集校验和来保证数据传输和存储的正确性;系统UPS电源和逻辑控制模块可防止因断电和外部复位而导致的升级失效。
Description
技术领域
本发明属于弹载计算机软件更新技术领域,更具体地,涉及一种基于串口进行弹载计算机软件更新的方法。
背景技术
在实际的工程应用中,弹载计算机上DSP(digital signal processor,数字信号处理器)软件的更新需要通过仿真器将上位机和弹载计算机板JTAG(Joint Test Action Group,联合测试行动小组)接口相连,将DSP的开发软件Code Compose Studio(CCS,代码调式器)生成的可执行文件(*.bin)通过专门的烧写程序下载到弹载计算机flash的相应扇区中。但是在产品研制后期,弹载计算机往往被安装在密闭的结构件中,仿真器无法直接与JTAG相连。在此种情况下,要进行软件更新时,必须拆下结构件才能连接仿真器对软件进行更新,操作极为不便,工作效率极低。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于串口进行弹载计算机软件更新的方法,旨在解决现有技术中对弹载计算机软件更新费时、费力、工作效率低的技术问题。
本发明提供的基于串口进行弹载计算机软件更新的方法,包括下述步骤:
(1)上位机和弹载计算机通过串口建立通信;
(2)上位机软件将编译器生成的目标程序文件以分包数据方式通过串口发送给弹载计算机;
(3)弹载计算机对接收到的每个数据包进行校验和计算,正确则写入flash中的临时扇区暂存;
(4)所有数据包接收并写入临时flash扇区后,计算所有数据的总校验和,并和上位机软件发送的总校验和相比判断二者是否一致,若一致则将所有数据包写入正式flash扇区,对弹载计算机重新上电,软件更新完成。
更进一步地,在所述步骤S2之前,还包括:
上位机向弹载计算机发送软件上传请求,并发送目标程序文件(*.bin)的数据长度和扇区数;
弹载计算机在接收到软件上传请求后,首先申请一个扇区长度的缓冲区;若缓冲区申请成功,则继续后续接收目标程序文件的步骤;若缓冲区申请不成功,则软件更新过程终止。
更进一步地,所述每个数据包的有效数据最长为32字节,并在每个数据包加上2字节的校验数据,弹载计算机每接收一个数据包,即计算该数据包的校验和,并同该数据包的2字节的校验数据进行比较,相同则继续接收,否则终止更新。
更进一步地,在所有步骤开始之前,通过逻辑模块关闭DSP外部复位源以及不必要的中断源,防止在软件升级过程中因外部复位导致升级失效;并且,通过UPS电源持续对弹载计算机供电,防止升级程序时因意外断电写入失败导致系统崩溃。
本发明利用串口对弹载计算机软件进行更新,按照通讯协议,上位机发送软件更新文件数据到弹载计算机板,弹载计算机计算每一包的校验和之后,将新软件首先写入到临时flash扇区。软件全部接受完毕后,再读出临时flash扇区中的程序数据计算校验和,若和上位机发送的校验和一致,再将临时flash扇区中的程序读出,写入到正式flash扇区中。同样,再次读出正式flash扇区中的程序数据,计算校验和,若何上位机发送的校验和一致,则表明软件更新成功。上述的多重校验过程,充分保证了上传软件的正确性。此外,在软件更新完成之后,必须对弹载计算机板重新上电,以加载新程序。
附图说明
图1为本发明提供的基于串口进行弹载计算机软件更新的方法流程图;
图2为本发明一具体实施例中基于串口进行弹载计算机软件更新流程图;
图3为本发明实施过程中对flash扇区存储内容划分图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提供的基于串口进行弹载计算机软件更新的方法是以弹载计算机板上的通信串口作为通道,对弹上DSP软件进行更新。在实际的工程应用中,弹载计算机上DSP软件的更新需要通过仿真器将上位机和弹载计算机板JTAG接口相连,将DSP的开发软件CCS生成的可执行文件(*.bin)通过专门的烧写程序下载到弹载计算机flash的相应扇区中。但是在产品研制后期,弹载计算机往往被安装在密闭的结构件中,仿真器无法与JTAG直接相连。在此种情况下,要进行软件更新,必须拆下结构件才能连接仿真器对软件进行更新,操作极为不便,工作效率极低。
针对上述方法的弊端,本发明提供了一种方便快捷、稳妥可靠的软件更新方法,只需通过弹载计算机已有的串口通信电缆,即可实现软件更新,
图1为本发明提供的基于串口进行弹载计算机软件更新的方法流程图,如图1所示,本发明方法包括:
(1)上位机和弹载计算机通过串口建立通信;
(2)上位机软件将编译器生成的目标程序文件以分包数据方式通过串口发送给弹载计算机;
(3)弹载计算机对接收到的每个数据包进行校验和计算,正确则写入flash中的临时扇区暂存;
(4)所有数据包接收并写入临时flash扇区后,计算所有数据的总校验和,并和上位机软件发送的总校验和相比判断二者是否一致,若一致则将所有数据包写入正式flash扇区,对弹载计算机重新上电,软件更新完成。
图2为本发明一具体实施例中基于串口进行弹载计算机软件更新流程图,如图2所示,本实施例具体为:
上位机在和弹载计算机建立通信之后,向弹载计算机发送软件上传指令,同时送达的还有目标程序文件(*.bin)的数据长度和扇区数。弹载计算机在接收到软件上传请求后,首先计算上传软件数据的总包数,以控制传输次数。延时20ms后,申请4KB,即一个扇区长度的缓冲区。若申请成功,则开始接受新软件的数据。按照通讯协议,每包的有效数据最长为32字节,并在数据包加上2字节的校验数据。弹载计算机每接收一包数据,即计算校验和,同上述2字节的校验数据进行比较,相同则继续接收,否则终止更新。
接收的当前扇区所有有效数据存放在4KB的缓冲区中,待接收完一个扇区的数据之后,计算临时flash扇区中当前数据应存储的起始地址,并将这些数据写入以此地址开始的一个扇区中。以512K的flash芯片SST39VF040为例,其扇区数为128。根据软件长度,40个扇区将完全满足程序数据的存储需求,而1~40号扇区为正式程序存储区,因此,可以将65~104号扇区作为临时flash扇区,如图3所示。
新程序所有数据上传完毕后,弹载计算机接收上位机软件发送的总校验和并存储,弹载计算机读出临时flash存储区的所有程序数据,计算校验和,和上述总校验和比较,相同则进行下一步,不同则终止软件更新。
在上述校验和正确的情况下,将临时flash扇区的新程序数据全部读出,并逐一写入正式程序存储区。同样,再将正式存储区里的程序数据读出,计算总校验和,和上位机发送的校验和比较,若相同,则表明软件更新成功,否则,软件更新失败,需要连接仿真器烧写程序才能恢复正常状态。
软件更新完成之后,弹载计算机需要重新上电,DSP才能加载新程序。
在本发明所述的实施流程之前,必须通过逻辑模块关闭DSP外部复位源以及不必要的中断源,防止在软件升级过程中因外部复位导致升级失效;并且,通过UPS电源持续对弹载计算机供电,防止升级程序时因意外断电写入失败导致系统崩溃。
本发明所述的实施流程中,要求对每一包上传的数据包进行校验、对临时flash扇区写入的程序数据进行校验、对正式程序存储区的程序数据进行校验,任何一步校验出错,将终止更新软件。正是经过上述多重校验的检验,才保证了软件上传过程中数据的正确性以及新软件的完整性。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于串口进行弹载计算机软件更新的方法,其特征在于,包括下述步骤:
(1)上位机和弹载计算机通过串口建立通信;
(2)上位机软件将编译器生成的目标程序文件以分包数据方式通过串口发送给弹载计算机;
(3)弹载计算机对接收到的每个数据包进行校验和计算,正确则写入flash中的临时扇区暂存;
(4)所有数据包接收并写入临时flash扇区后,计算所有数据的总校验和,并和上位机软件发送的总校验和相比判断二者是否一致,若一致则将所有数据包写入正式flash扇区,对弹载计算机重新上电,软件更新完成。
2.如权利要求1所述的方法,其特征在于,在所述步骤S2之前,还包括:
上位机向弹载计算机发送软件上传请求,并发送目标程序文件(*.bin)的数据长度和扇区数;
弹载计算机在接收到软件上传请求后,首先申请一个扇区长度的缓冲区;若缓冲区申请成功,则继续后续接收目标程序文件的步骤;若缓冲区申请不成功,则软件更新过程终止。
3.如权利要求1所述的方法,其特征在于,所述每个数据包的有效数据最长为32字节,并在每个数据包加上2字节的校验数据,弹载计算机每接收一个数据包,即计算该数据包的校验和,并同该数据包的2字节的校验数据进行比较,相同则继续接收,否则终止更新。
4.如权利要求1至3任一项所述的方法,其特征在于,在所有步骤开始之前,关闭DSP外部复位源以及软件中不必要的中断源,并通过UPS电源持续对弹载计算机供电。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410233073.5A CN104049996A (zh) | 2014-05-29 | 2014-05-29 | 一种基于串口进行弹载计算机软件更新的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410233073.5A CN104049996A (zh) | 2014-05-29 | 2014-05-29 | 一种基于串口进行弹载计算机软件更新的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104049996A true CN104049996A (zh) | 2014-09-17 |
Family
ID=51502902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410233073.5A Pending CN104049996A (zh) | 2014-05-29 | 2014-05-29 | 一种基于串口进行弹载计算机软件更新的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104049996A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183526A (zh) * | 2015-10-21 | 2015-12-23 | 深圳市共济科技有限公司 | 一种数据中心组网设备代码升级的方法及系统 |
CN107193567A (zh) * | 2017-05-25 | 2017-09-22 | 湖北航天技术研究院总体设计所 | 弹载dsp软件安全启动更新模式及其实现系统、系统制作方法 |
CN107885523A (zh) * | 2017-11-10 | 2018-04-06 | 航宇救生装备有限公司 | 一种快速稳定的串口升级软件方法 |
CN108108179A (zh) * | 2017-12-15 | 2018-06-01 | 中国船舶重工集团公司第七0七研究所 | 一种基于串口的tms32c6713程序烧录flash方法 |
CN108347424A (zh) * | 2017-10-27 | 2018-07-31 | 北京机电工程研究所 | 弹载设备分时通讯协议设计方法 |
CN111998510A (zh) * | 2020-08-28 | 2020-11-27 | 海信(山东)空调有限公司 | 一种空调器及其控制方法 |
CN117873539A (zh) * | 2023-12-28 | 2024-04-12 | 四川赛狄信息技术股份公司 | 基于MicroBlaze的FPGA在线升级方法、系统及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092659A (zh) * | 2013-01-31 | 2013-05-08 | 中国航空无线电电子研究所 | 脱离仿真器支持环境的dsp软件升级系统及其升级方法 |
CN103530153A (zh) * | 2013-10-11 | 2014-01-22 | 光一科技股份有限公司 | 用户用电信息采集终端远程升级方法 |
CN103677919A (zh) * | 2013-12-10 | 2014-03-26 | 中国航空工业集团公司第六三一研究所 | 一种基于串口的机载软件更新方法 |
-
2014
- 2014-05-29 CN CN201410233073.5A patent/CN104049996A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092659A (zh) * | 2013-01-31 | 2013-05-08 | 中国航空无线电电子研究所 | 脱离仿真器支持环境的dsp软件升级系统及其升级方法 |
CN103530153A (zh) * | 2013-10-11 | 2014-01-22 | 光一科技股份有限公司 | 用户用电信息采集终端远程升级方法 |
CN103677919A (zh) * | 2013-12-10 | 2014-03-26 | 中国航空工业集团公司第六三一研究所 | 一种基于串口的机载软件更新方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183526A (zh) * | 2015-10-21 | 2015-12-23 | 深圳市共济科技有限公司 | 一种数据中心组网设备代码升级的方法及系统 |
CN107193567A (zh) * | 2017-05-25 | 2017-09-22 | 湖北航天技术研究院总体设计所 | 弹载dsp软件安全启动更新模式及其实现系统、系统制作方法 |
CN108347424A (zh) * | 2017-10-27 | 2018-07-31 | 北京机电工程研究所 | 弹载设备分时通讯协议设计方法 |
CN108347424B (zh) * | 2017-10-27 | 2020-12-08 | 北京机电工程研究所 | 弹载设备分时通讯协议设计方法 |
CN107885523A (zh) * | 2017-11-10 | 2018-04-06 | 航宇救生装备有限公司 | 一种快速稳定的串口升级软件方法 |
CN108108179A (zh) * | 2017-12-15 | 2018-06-01 | 中国船舶重工集团公司第七0七研究所 | 一种基于串口的tms32c6713程序烧录flash方法 |
CN111998510A (zh) * | 2020-08-28 | 2020-11-27 | 海信(山东)空调有限公司 | 一种空调器及其控制方法 |
CN111998510B (zh) * | 2020-08-28 | 2022-02-18 | 海信(山东)空调有限公司 | 一种空调器及其控制方法 |
CN117873539A (zh) * | 2023-12-28 | 2024-04-12 | 四川赛狄信息技术股份公司 | 基于MicroBlaze的FPGA在线升级方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104049996A (zh) | 一种基于串口进行弹载计算机软件更新的方法 | |
CN106569847B (zh) | 一种用于车载系统基于移动网络实现iap远程升级的方法 | |
CN102662701B (zh) | Cpld在线升级方法、装置及业务单板 | |
US9081964B2 (en) | Firmware upgrade error detection and automatic rollback | |
CN104090796A (zh) | 一种嵌入式设备程序更新方法和系统 | |
US7529653B2 (en) | Message packet logging in a distributed simulation system | |
US8549389B2 (en) | Systems and methods for 1553 bus operation self checking | |
CN107957874B (zh) | 可恢复的驻留式星载软件在轨编程方法 | |
CN111176702B (zh) | 固件升级方法、装置、计算机设备和存储介质 | |
CN101815988A (zh) | 固件映像更新和管理 | |
CN109976767B (zh) | 软件烧录方法和装置 | |
CN112100081B (zh) | 基于双芯智能电表的升级测试方法、装置和计算机设备 | |
CN103106095A (zh) | 一种工业照相机远程升级的方法及照相机 | |
CN117687664A (zh) | 一种dsp的在线升级配置方法及装置 | |
CN108182078A (zh) | 一种优化的弹载设备不拆弹软件在线升级方法 | |
US10859360B2 (en) | Electronic delay detonator logging control device and method therefor | |
CN103514074A (zh) | Mvb网卡开发方法及平台 | |
CN101452393A (zh) | 基于pci总线的dsp2812程序在线升级方法 | |
CN102866900A (zh) | 更新fpga控制单元的配置数据的方法及系统 | |
CN108845823B (zh) | 一种基于f2812芯片的软件在线升级方法 | |
CN112181444B (zh) | 一种基于1553b总线的dsp多核数据烧写方法 | |
CN102591690A (zh) | 一种嵌入式系统远程升级方法 | |
CN113741934A (zh) | 一种逆变器程序升级方法 | |
CN103677919A (zh) | 一种基于串口的机载软件更新方法 | |
CN102929647B (zh) | 数字硬盘录像机中主板与前面板一体化升级的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20140917 |