基于IAP技术的北斗用户机远程升级系统及其升级方法与流程

文档序号:12305027阅读:884来源:国知局
基于IAP技术的北斗用户机远程升级系统及其升级方法与流程

本发明属于北斗卫星导航通信技术领域,具体涉及一种基于iap技术的北斗用户机远程升级系统及其升级方法。



背景技术:

北斗卫星导航系统是中国自主研制的全球卫星导航系统,由空间段、地面段和用户段三部分组成,系统兼具rdss和rnss两种业务模式。rdss具有短报文通信业务,可以通过卫星链路发送一定长度以内的字符。

iap在线升级,iap是stm32芯片很强大的一个功能,其本质就是程序本身可以往程序存储器里写数据或修改程序。利用iap功能,即使在产品发布之后也可以方便的通过预留的通信端口,如串口、usb、iic等,对产品中的程序固件进行更新升级。iap功能的固件一般包含两个部分:boot和userapp,其中boot部分必须通过jatg或isp进行烧录,userapp部分可以在烧录boot后通过iap升级烧入或者与boot合并到一起后通过jatg或isp进行烧录。

现有技术通常采用isp软件烧录方式对北斗用户机进行升级,每次烧录都必须要和计算机连机才行,isp软件烧录方式无法实现自动更新程序内容,显然无法解决北斗用户机在无人值守的应用环境下软件升级难题。



技术实现要素:

本发明为了克服上述现有技术的不足,提供了一种基于iap技术的北斗用户机远程升级系统,本发明有效地解决了北斗用户机软件远程升级困难的问题。

为实现上述目的,本发明采用了以下技术措施:

一种基于iap技术的北斗用户机远程升级系统包括系统升级平台、待升级北斗用户机、北斗卫星系统,所述系统升级平台的输出端输出用于升级的北斗通信申请报文,所述用于升级的北斗通信申请报文通过北斗卫星系统传输至待升级北斗用户机的输入端。

优选的,所述系统升级平台包括软件编译模块、文件拆分模块、北斗短报文封装模块、北斗短报文发送模块,其中,

软件编译模块,用于对待升级的软件源代码编译生成hex文件,并将所述hex文件发送至文件拆分模块的输入端;

文件拆分模块,用于对hex文件的内容进行解析,根据hex文件的固定格式,每次以行为单位提取2至3行hex文件的内容得到多个子hex文件;

北斗短报文封装模块,其根据北斗通信申请的协议格式,将多个所述子hex文件封装在北斗通信申请的电文内容字段中得到用于升级的北斗通信申请报文;

北斗短报文发送模块,用于接收来自北斗短报文封装模块的用于升级的北斗通信申请报文,并将用于升级的北斗通信申请报文通过北斗卫星系统传输至待升级北斗用户机的输入端。

优选的,所述待升级北斗用户机包括北斗通信模块、mcu控制模块以及存储模块,

北斗通信模块,用于接收来自北斗短报文发送模块的用于升级的北斗通信申请报文,并将用于升级的北斗通信申请报文发送至mcu控制模块的输入端;

mcu控制模块,用于提取用于升级的北斗通信申请报文的通信内容,根据通信内容的格式对报文内容判断,对于符合北斗通信申请的电文内容字段格式要求的报文内容,将其存储至存储模块,对于不符合北斗通信申请的电文内容字段格式要求的报文内容进行舍弃,并发出重发请求至系统升级平台。

优选的,所述北斗通信申请的电文内容字段依次包括帧头、命令字符、数据长度、总帧数、同步码、存储地址、数据类型、数据内容、升级内容结束标志、校验码。

优选的,所述mcu控制模块包括控制芯片,所述控制芯片的型号为stm32系列芯片。

进一步的,所述存储模块为片外flash存储芯片。

本发明还提供了基于iap技术的北斗用户机远程升级系统的升级方法,包括以下步骤:

s1、mcu控制模块上电后进入iap引导程序;

s2、所述软件编译模块将待升级的软件源代码编译生成hex文件,并将所述hex文件发送至文件拆分模块的输入端;

s3、所述文件拆分模块对hex文件的内容进行解析,根据hex文件的固定格式,每次以行为单位提取2至3行hex文件的内容得到多个子hex文件;

s4、所述北斗短报文封装模块根据北斗通信申请的协议格式,将多个所述子hex文件封装在北斗通信申请的电文内容字段中得到用于升级的北斗通信申请报文;

s5、所述北斗短报文发送模块接收来自北斗短报文封装模块的用于升级的北斗通信申请报文,并将用于升级的北斗通信申请报文输出至北斗卫星系统的输入端;

s6、所述北斗卫星系统输出用于升级的北斗通信申请报文或北斗通信信息至北斗通信模块的输入端;

s7、所述北斗通信模块将用于升级的北斗通信申请报文或北斗通信信息发送至mcu控制模块的输入端;

s8、所述mcu控制模块接收到用于升级的北斗通信申请报文或北斗通信信息后,首先判断是升级内容还是北斗通信内容,如果是北斗通信内容,则交给用户功能任务处理;如果是升级内容,则根据电文内容字段对用于升级的北斗通信申请报文进行判断,对于不符合升级要求的用于升级的北斗通信申请报文,mcu控制模块将其丢弃,并发出重发请求至系统升级平台,对于符合升级要求的用于升级的北斗通信申请报文,mcu控制模块将用于升级的北斗通信申请报文存储于存储模块中,当mcu控制模块接收到升级内容结束标志且重新组包后的hex文件内容完整时,mcu控制模块中的主程序置位mcu控制模块中的软件升级标志位,主程序重启mcu控制模块进入iap引导程序,完成升级任务。

优选的,所述iap引导程序的具体操作步骤如下:

mcu控制模块主程序的芯片初始化模块首先读取软件升级标志位,判断待升级北斗用户机是否需要升级,如果不需要升级,mcu控制模块正常启动,跳转到用户功能程序,执行北斗用户机的正常服务功能;如果需要升级,则iap引导程序进入升级任务,从片外flash存储芯片中读取用于升级的通信信息并按hex文件中的地址信息,将内容写入mcu控制模块内部的flash中;iap引导程序重新设置中断向量表起始地址,清除升级标志位,将mcu控制模块指针指向起始地址,然后mcu控制模块指针跳转到起始地址,执行新的用户程序,完成升级任务。

本发明的有益效果在于:

1)、本发明包括远程升级系统升级平台、待升级北斗用户机、北斗卫星系统,所述系统升级平台的输出端输出用于升级的北斗通信申请报文通过北斗卫星系统传输至待升级北斗用户机的输入端,在远程升级系统的基础上,利用iap技术实现了北斗用户机在功能扩展时,其软件升级不需要对用户机进行断电和拆卸,直接通过升级方法就可实现北斗用户机的功能软件更新,有效地解决了北斗用户机软件远程升级困难的问题。

2)、本发明在升级软件的过程中利用北斗短报文通信链路传输升级软件的内容,与通用的公网通信相比,具有高可靠性和保密性。

3)、本发明在升级软件的过程中利用北斗通信链路进行通信,不受地面通信网络的限制,对于无人值守且地理环境复杂、公网信号不通的地方同样适用,有效的解决了用户机设备远程升级的难题。

附图说明

图1为本发明的远程升级系统的系统框图;

图2为本发明的iap引导程序的流程图;

图3为本发明的主程序的流程图。

10—系统升级平台11—软件编译模块

12—文件拆分模块13—北斗短报文封装模块

14—北斗短报文发送模块20—待升级北斗用户机

21—北斗通信模块22—mcu控制模块

23—存储模块30—北斗卫星系统

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,一种基于iap技术的北斗用户机远程升级系统包括系统升级平台10、待升级北斗用户机20、北斗卫星系统30,所述系统升级平台10的输出端输出用于升级的北斗通信申请报文,所述用于升级的北斗通信申请报文通过北斗卫星系统30传输至待升级北斗用户机20的输入端。

所述系统升级平台10包括软件编译模块11、文件拆分模块12、北斗短报文封装模块13、北斗短报文发送模块14,所述软件编译模块11用于对待升级的软件源代码编译生成hex文件,并将所述hex文件发送至文件拆分模块12的输入端;文件拆分模块12用于对hex文件的内容进行解析,根据hex文件的固定格式,每次以行为单位提取2至3行hex文件的内容得到多个子hex文件;北斗短报文封装模块13根据北斗通信申请的协议格式,将多个所述子hex文件封装在北斗通信申请的电文内容字段中得到用于升级的北斗通信申请报文;北斗短报文发送模块14用于接收来自北斗短报文封装模块13的用于升级的北斗通信申请报文,并将用于升级的北斗通信申请报文通过北斗卫星系统30传输至待升级北斗用户机20的输入端。

hex文件用来保存单片机或其他处理器的目标程序代码,它保存物理程序存储区中的目标代码映象,hex文件全部由可打印的ascii字符组成,在hex文件中,每一行是一个hex记录,由十六进制数组成的机器码或者数据常量;每行由“:”(0x3a)开始,以回车换行键结束(0x0d,0x0a)。行内的数据都是由两个字符表示一个16进制字节,比如”01”表示数0x01;”0a”表示数0x0a。对于16位的地址,则高位在前低位在后,比如地址0x010a,在hex文件中表示为字符串”010a”。对于keil编译的hex文件,例如,:1000080080318b1e0828092820280b1d0c280d2854可以被看作“0x100x000x080x000x800x310x8b0x1e0x080x280x090x280x200x280x0b0x1d0x0c0x280x0d0x280x54”;起始符“:”后的第一个字节0x10表示本行数据的长度;第二、三字节0x000x08表示本行数据的起始地址;第四字节0x00表示数据类型,然后是数据内容,最后一个字节0x54表示校验码。

所述待升级北斗用户机20包括北斗通信模块21、mcu控制模块22以及存储模块23,所述北斗通信模块21用于接收来自北斗短报文发送模块14的用于升级的北斗通信申请报文,并将用于升级的北斗通信申请报文发送至mcu控制模块22的输入端;mcu控制模块22用于提取用于升级的北斗通信申请报文的通信内容,根据通信内容的格式对报文内容判断,对于符合北斗通信申请的电文内容字段格式要求的报文内容,将其存储至存储模块23,对于不符合北斗通信申请的电文内容字段格式要求的报文内容进行舍弃,并发出重发请求至系统升级平台10。

北斗通信模块21通过北斗卫星系统30进行短报文通信,实现对系统升级平台10发送过来的北斗链路数据进行接收。

mcu控制模块22是待升级北斗用户机20的核心部分,也是待升级北斗用户机20功能程序的载体,用来实现待升级北斗用户机20的各个功能模块的协调控制和数据处理运算。

hex文件是烧写到mcu控制模块22片内flash的一种文件格式。

具体的,所述mcu控制模块22包括控制芯片,所述控制芯片的型号为stm32系列芯片;所述存储模块23为片外flash存储芯片。stm32系列芯片支持iap,iap在运行过程中对内部userflash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。实现iap功能,需要将设备程序做成两个项目程序,第一个项目程序仅提供iap引导和修改内部flash数据,其不提供正常功能操作。第二个项目程序即为用户程序,其可提供正常的功能操作。iap引导程序负责将待升级的文件写入userflash,并设置程序中断向量入口,启动用户程序。待升级程序通常由keil编译器编译成hex文件。

北斗通信受卫星资源限制,其普通短报文通信频度为60s,其通信内容长度小于78个字节。北斗短报文无法一次性连续的将待升级文件传送给mcu控制模块22,其以北斗短报文的形式发送给待升级的用户机。北斗通信申请的电文内容字段依次包括内容如表1所示:

表1:

如图2、3所示,一种基于iap技术的北斗用户机远程升级系统的升级方法,包括以下步骤:

s1、mcu控制模块22上电后进入iap引导程序;由iap引导程序引导mcu控制模块22指针进入复位中断完成用户功能程序的启动。用户功能程序启动后,mcu控制模块22除了提供正常的用户功能需求外,其系统内部还有一个升级内容存储任务;

s2、所述软件编译模块11将待升级的软件源代码编译生成hex文件,并将所述hex文件发送至文件拆分模块12的输入端;

s3、所述文件拆分模块12对hex文件的内容进行解析,根据hex文件的固定格式,每次以行为单位提取2至3行hex文件的内容得到多个子hex文件;

s4、所述北斗短报文封装模块13根据北斗通信申请的协议格式,将多个所述子hex文件封装在北斗通信申请的电文内容字段中得到用于升级的北斗通信申请报文;

s5、所述北斗短报文发送模块14接收来自北斗短报文封装模块13的用于升级的北斗通信申请报文,并将用于升级的北斗通信申请报文输出至北斗卫星系统30的输入端;

s6、所述北斗卫星系统30输出用于升级的北斗通信申请报文或北斗通信信息至北斗通信模块21的输入端;

s7、所述北斗通信模块21将用于升级的北斗通信申请报文或北斗通信信息发送至mcu控制模块22的输入端;

s8、所述mcu控制模块22接收到用于升级的北斗通信申请报文或北斗通信信息后,首先判断是升级内容还是北斗通信内容,如果是北斗通信内容,则交给用户功能任务处理;如果是升级内容,则根据电文内容字段对用于升级的北斗通信申请报文进行判断,对于不符合升级要求的用于升级的北斗通信申请报文,mcu控制模块22将其丢弃,并发出重发请求至系统升级平台10,对于符合升级要求的用于升级的北斗通信申请报文,mcu控制模块22将用于升级的北斗通信申请报文存储于存储模块23中,当mcu控制模块22接收到升级内容结束标志且重新组包后的hex文件内容完整时,mcu控制模块22中的主程序置位mcu控制模块22中的软件升级标志位,主程序重启mcu控制模块22进入iap引导程序,mcu控制模块22主程序的芯片初始化模块首先读取软件升级标志位,判断待升级北斗用户机20是否需要升级,如果不需要升级,mcu控制模块22正常启动,跳转到用户功能程序,执行北斗用户机20的正常服务功能;如果需要升级,则iap引导程序进入升级任务,从片外flash存储芯片中读取用于升级的通信信息并按hex文件中的地址信息,将内容写入mcu控制模块22内部的flash中;iap引导程序重新设置中断向量表起始地址,清除升级标志位,将mcu控制模块22指针指向起始地址,然后mcu控制模块22指针跳转到起始地址,执行新的用户程序,完成升级任务。

整个步骤s8均在mcu控制模块22内部完成,对用不同功能有不同的任务模块来完成,均依据mcu控制模块22的软件完成。

所述升级标志位是mcu控制模块22的芯片内部的一个专门用来判断设备上电时,软件是不是要升级的标志。

为了防止程序升级错误造成mcu控制模块22指针指向地址无法启动用户程序,造成用户机不能正常工作,在iap的错误中断处理函数中,应重新设置中断向量表起始地址为未升级前的起始地址,将mcu控制模块22指针跳转到这一地址执行原用户程序,并发送北斗短报文回执给系统升级平台10,报告升级失败。

本发明解决北斗用户机软件远程升级困难的问题,尤其是对无人值守的北斗用户机,在没有其他通用信息通信手段的情况下,利用北斗通信链路实现用户机的远程程序升级。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1