一种基于RS485总线的分布式系统在线升级方法技术方案

技术编号:39412997 阅读:7 留言:0更新日期:2023-11-19 16:04
本申请提供了一种基于RS485总线的分布式系统在线升级方法,属于嵌入式软件系统自动测控技术领域,本申请为了实现分布式系统多个子模块同时软件升级,上位机采用广播地址给所有子模块发送待升级的软件代码,然后根据子模块地址从小到大依次对子模块升级后的软件进行校验。为了实现对某个子模块软件升级,确保在某个子模块升级失败时对其进行重新升级时不影响其他子模块,设计了地址识别机制。为了保护软件安全性,设置了在线编程模式准入机制,采用密码验证的方式实现。针对烧录的软件代码校验问题,本申请采用读取软件代码发送至上位机软件,由上位机软件进行校验的方式实现。由上位机软件进行校验的方式实现。由上位机软件进行校验的方式实现。

【技术实现步骤摘要】
一种基于RS485总线的分布式系统在线升级方法


[0001]本申请涉及嵌入式软件系统自动测控的领域,尤其是涉及一种基于RS485总线的分布式系统在线升级方法。

技术介绍

[0002]随着技术的发展,目前大部分微处理器/微控制器(以下简称嵌入式处理器)都集成片内FLASH存储器用于固化软件代码。随着用户需求的提升或者产品维护的要求,往往需要对已经投入使用的嵌入式产品进行软件的维护和升级。这种情况下采用在线编程技术是成本最低、易用性最高的一种方法。在分布式系统中,往往有若干个功能相同的子模块,若采用传统一对一在线升级方法,在子模块较多时进行系统升级时操作十分复杂麻烦。
[0003]目前嵌入式软件在线编程技术的研究着重于如何在单个嵌入式处理器上实现软件代码的自动升级,存在的主要缺点如下:(1)使用一对一方式,不适用于多个子模块组网的分布式系统。(2)未设置在线编程准入机制,仅使用“u”或“0xff”等字符即可进入嵌入式处理器的在线编程模式,可以对软件代码进行修改或替换,严重威胁了软件代码的安全性。(3)不具备烧录程序再校验功能,基于RS485总线的分布式系统通讯较为复杂,软件升级时可能因干扰等原因导致程序烧录错误。

技术实现思路

[0004]有鉴于此,本申请提供一种基于RS485总线的分布式系统在线升级方法,解决现有在线编程方法不适用由RS485这种半双工总线组网的分布式系统、软件代码安全性差等问题,本申请操作简单高效,具备完善的安全验证和校验机制,能够有效的保护用户软件不被非法替换、盗取。
>[0005]本申请提供的一种基于RS485总线的分布式系统在线升级方法采用如下的技术方案:
[0006]一种基于RS485总线的分布式系统在线升级方法,包括如下步骤:
[0007]将上位机和若干分布式子模块通过RS485总线进行组网连接;
[0008]在子模块的FLASH中嵌入引导程序,在指定FLASH地址存储软件代码;
[0009]上位机解析待升级的软件代码HEX文件,逐行读取地址信息和代码数据,分别存储地址数据和代码数据;
[0010]判断待升级子模块的个数,设置子模块的地址并设置子模块的个数;
[0011]上位机向子模块发送进入引导程序指令,子模块收到进入引导程序指令后进行地址匹配,过滤所有非本机地址;
[0012]子模块对过滤后的指令类型进行判断,若为进入引导程序指令,通过复位进入引导程序,准备进行软件升级,并回复上位机;
[0013]上位机收到子模块的回复,计算FLASH擦除地址,向子模块发送FLASH擦除指令;
[0014]子模块进入引导程序后,接收FLASH擦除指令,清除跳转标志位以及FLASH写保护
标志位,擦除相应FLASH区域,并向上位机回复已擦除,若100ms内未收到FLASH擦除指令,则跳转至工作程序;
[0015]上位机接收子模块回复的已擦除指令后按照待升级代码HEX文件依次按行生成FLASH烧录数据发送至子模块直至所有数据发送完毕,子模块依次接收FLASH烧录数据,将数据烧录到指定FLASH地址。
[0016]可选的,在上位机发送待升级代码HEX文件的过程中,按照从低到高顺序提取子模块的地址,按照待升级软件代码HEX文件每行地址信息生成FLASH读取指令,若收到指定地址子模块FLASH回复的升级完成指令,则读取下一地址的子模块直至所有子模块读取完成;若未收到指定地址子模块FLASH回复的升级完成指令,则存储对应子模块的地址并继续读取下一地址的子模块直至所有子模块读取完成。
[0017]可选的,引导程序位于在子模块FLASH中起始地址。
[0018]可选的,在引导程序中设置启动软件代码升级的密码,在发送进入引导程序指令帧中加入密码,子模块对接收到的进入引导程序指令帧中的密码进行验证,密码验证通过则允许进行升级,密码验证不通过则跳转至工作程序。
[0019]可选的,升级方法还包括对读取的软件代码进行校验:上位机向子模块发送校验指令,子模块收到校验指令后发送烧录的软件代码,上位机对接受到的软件代码进行校验,若校验正确则生成进入工作程序指令帧发送至RS485总线;若校验错误,则更新子模块地址继续读取下一地址的子模块直至所有子模块读取完成;判断是否所有子模块都已验证完毕,若验证完毕则本次在线编程完成。
[0020]引导程序包括FLASH驱动模块、在线编程主控模块、串口通讯模块和软件代码;
[0021]FLASH驱动模块用于对FLASH擦除、烧录和读取,FLASH擦除是对最小擦除单元的擦除,FLASH烧录是对一个地址位的烧录,FALSH读取是对一个地址位上数据的读取;
[0022]串口通讯模块由接收模块和发送模块组成,串口接收模块通过中断或查询的方式接收RS485总线数据,并存储接收的数据,串口发送模块把数据和指令通过中断或查询的方式发送至RS485总线上;
[0023]在线编程主控模根据上位机指令执行FLASH在线编程相关操作;
[0024]软件代码由软件功能代码和进入在线编程模式检测模块组成,其中,进入在线编程模式检测模块用于检测是否收到进入引导程序指令帧。
[0025]综上所述,本申请包括以下有益技术效果:
[0026]本申请采用集散控制方式实现分布式系统在线编程,上位机实现通讯管理和过程把控,防止通讯链路出现发送冲突问题;子模块嵌入式处理器根据收到的指令和数据实现FLASH擦除、程序烧录、读取等操作控制。本申请利用RS485通讯网络实现软件升级,无额外硬件开销;本申请不仅具备对分布式系统所有子模块同时软件升级能力,而且具备分布式系统特定子模块进行在线编程能力。
[0027]本申请设计了完善的通讯协议和校验机制,确保在线编程过程全程可控和软件代码的烧录准确性。
[0028]本申请设计了在线编程模式准入机制,确保软件代码不被恶意修改和盗取。
附图说明
[0029]为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0030]图1为本申请基于RS485总线的分布式系统组网示例图;
[0031]图2为本申请子模块嵌入式处理器软件组成框图;
[0032]图3为本申请上位机控制流程图;
[0033]图4为本申请子模块嵌入式处理器在线编程执行流程图;
[0034]图5为本申请通讯协议帧格式。
具体实施方式
[0035]下面结合附图对本申请实施例进行详细描述。
[0036]以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于RS485总线的分布式系统在线升级方法,其特征在于,包括如下步骤:将上位机和若干分布式子模块通过RS485总线进行组网连接;在子模块的FLASH中嵌入引导程序,在指定FLASH地址存储软件代码;上位机解析待升级的软件代码HEX文件,逐行读取地址信息和代码数据,分别存储地址数据和代码数据;判断待升级子模块的个数,设置子模块的地址并设置子模块的个数;上位机向子模块发送进入引导程序指令,子模块收到进入引导程序指令后进行地址匹配,过滤所有非本机地址;子模块对过滤后的指令类型进行判断,若为进入引导程序指令,通过复位进入引导程序,准备进行软件升级,并回复上位机;上位机收到子模块的回复,计算FLASH擦除地址,向子模块发送FLASH擦除指令;子模块进入引导程序后,接收FLASH擦除指令,清除跳转标志位以及FLASH写保护标志位,擦除相应FLASH区域,并向上位机回复已擦除,若100ms内未收到FLASH擦除指令,则跳转至工作程序;上位机接收子模块回复的已擦除指令后按照待升级代码HEX文件依次按行生成FLASH烧录数据发送至子模块直至所有数据发送完毕,子模块依次接收FLASH烧录数据,将数据烧录到指定FLASH地址。2.根据权利要求1所述的基于RS485总线的分布式系统在线升级方法,其特征在于,在上位机发送待升级代码HEX文件的过程中,按照从低到高顺序提取子模块的地址,按照待升级软件代码HEX文件每行地址信息生成FLASH读取指令,若收到指定地址子模块FLASH回复的升级完成指令,则读取下一地址的子模块直至所有子模块读取完成;若未收到指定地址子模块FLASH回复的升级完成指令,则存储对应子模块的地址并继续读取下一地址的子模块直至所有子模块读取完成。3.根据权利要求1所述的...

【专利技术属性】
技术研发人员:吴良晶蒋晓峰周杰
申请(专利权)人:中国航空工业集团公司雷华电子技术研究所
类型:发明
国别省市:

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

1