GNSS接收机中实现软件快速串口升级的系统及方法
技术领域
本发明涉及处理器的串口升级领域,尤其涉及GNSS处理器的串口升级领域,具体是指一种GNSS接收机中实现软件快速串口升级的系统及方法。
背景技术
串口升级方法很多,比较通用的有ISP(Internet Service Provider,互联网服务提供商)、ICP(Internet Content Provider,网络内容服务商)和IAP(Internet Access Provider,互联网接入服务商),很多公司还会针对自己的产品设计一套自己的串口升级协议。
对于通用的串口升级方法对芯片的依赖性比较大,需要芯片支持该种升级方法,也就是芯片内部有相应的固化程序支持,这样会限制产品处理器的更换。其他的串口升级方法主要还是依赖于协议,通用性不强,而且还和硬件电路相关,比如需要按键、跳线等辅助功能配合完成产品升级。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现软件升级与硬件无关、串口升级只需重新开关机即可实现、串口升级快速可靠、适用于大规模推广应用的GNSS接收机中实现软件快速串口升级的系统及方法。
为了实现上述目的,本发明的GNSS接收机中实现软件快速串口升级的系统及方法具有如下构成:
该GNSS接收机中实现软件快速串口升级的系统,其主要特点是,所述的系统包括:
升级设备,与所述的GNSS接收机通过串口进行连接,所述的升级设备用以提供所述的GNSS接收机程序升级的下载源;
Flash存储器,设置于所述的GNSS接收机中并与所述的GNSS接收机的处理器相连接,所述的Flash存储器包括Boot程序分区和应用程序分区。
较佳地,所述的升级设备为电脑。
较佳地,所述的Boot程序分区的存储地址在所述的应用程序分区的存储地址之前。
更佳地,所述的Flash存储器还包括存储于起始位置的中断向量分区、存储地址介于所述的中断向量分区和Boot程序分区之间的Boot复位程序入口分区、存储地址介于所述的Boot程序分区和应用程序分区之间的应用程序复位程序入口分区。
本发明还涉及一种基于所述的系统GNSS接收机中实现软件快速串口升级的方法,其主要特点是,所述的方法包括以下步骤:
(1)所述的GNSS接收机运行所述的Boot程序分区中存储的Boot程序并检测是否有升级命令,如果是,则继续步骤(2),否则继续步骤(4);
(2)所述的GNSS接收机通过串口从所述的升级设备中下载升级程序并进行安装;
(3)所述的GNSS接收机进入等待关机状态,然后结束退出;
(4)所述的GNSS接收机运行所述的应用程序分区中存储的应用程序。
较佳地,所述的检测是否有升级命令,具体为:
所述的GNSS接收机检测是否接收到数据头字符为“SS”的数据,如果是,则继续步骤(2),否则继续步骤(4)。
较佳地,所述的GNSS接收机通过串口从所述的升级设备中下载升级程序并进行安装,包括以下步骤:
(21)所述的GNSS接收机通过串口接收数据头字符为“SX”的数据;
(22)所述的GNSS接收机判断升级程序是否接收完成,如果是,则继续步骤(23),否则继续步骤(21);
(23)所述的GNSS接收机的处理器进行升级程序的安装并发送数据头字符为“SC”的数据。
更佳地,所述的步骤(21)和(22)之间,还包括以下步骤:
(211)所述的GNSS接收机判断距离上次向所述的升级设备发送程序数据接收状态反馈信息时刻起是否已接收了128字节的升级程序数据,如果是,则继续步骤(212),否则继续步骤(22);
(212)所述的GNSS接收机向所述的升级设备发送程序数据接收状态反馈信息,然后继续步骤(22)。
采用了该发明中的GNSS接收机中实现软件快速串口升级的系统及方法,具有如下有益效果:
本发明主要用于GNSS接收机ARM内核处理器的软件升级。产品结构本身的防水设计决定了软件升级不能和硬件相关,所以本发明的串口升级过程只要重新开关机便能实现,避免拆机升级带来的困扰。同时本发明的系统和方法支持所有的处理器芯片。本串口升级协议用在公司所有的产品中,可以非常方便客户升级新的固件程序,200K大小的代码数据能在大约5S的时间内升级完成,并保证数据的可靠,适用于大规模推广应用。
附图说明
图1为本发明的GNSS接收机中实现软件快速串口升级的系统的结构示意图。
图2为本发明的Flash存储器内部分区结构示意图。
图3为本发明的GNSS接收机中实现软件快速串口升级的方法的流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
基于创造发明的目的我们通过以下技术方案来实现:我们把处理器的Flash存储器划分成两部分,一部分烧写Boot(引导)程序,剩下的存放应用程序。程序升级过程在Boot程序中实现。整个存储空间划分示意图如图2所示。
如图1所示,本发明的实现软件快速串口升级的系统包括:
升级设备,与GNSS接收机通过串口进行连接,升级设备用以提供GNSS接收机程序升级的下载源,升级设备可以采用电脑;
Flash存储器,设置于GNSS接收机中并与GNSS接收机的处理器相连接,Flash存储器包括Boot程序分区和应用程序分区,且Boot程序分区的存储地址在应用程序分区的存储地址之前。
Flash存储器还包括存储于起始位置的中断向量分区、存储地址介于中断向量分区和Boot程序分区之间的Boot复位程序入口分区、存储地址介于Boot程序分区和应用程序分区之间的应用程序复位程序入口分区。
设备上电后,首先运行Boot程序,检测是否有升级命令,如果有则进入升级过程,程序升级协议采用最简单的根据数据头的字符来判断通讯数据类型,不需要进行数据的校验,升级快速。同时每收到128个字节的数据会反馈命令,保证升级过程的可靠性。升级过程的软件流程图如图3所示,升级完成后进入等待关机的命令。如果没有收到升级命令则跳出while()循环进入应用程序部分。
本发明的实现软件快速串口升级的方法包括以下步骤:
(1)GNSS接收机运行Boot程序分区中存储的Boot程序并检测是否有升级命令,如果是,则继续步骤(2),否则继续步骤(4);
即GNSS接收机检测是否接收到数据头字符为“SS”的数据,如果是,则继续步骤(2),否则继续步骤(4)。
(2)GNSS接收机通过串口从升级设备中下载升级程序并进行安装;
具体包括以下三个子步骤:
(21)GNSS接收机通过串口接收数据头字符为“SX”的数据;
(22)GNSS接收机判断升级程序是否接收完成,如果是,则继续步骤(23),否则继续步骤(21);
(23)GNSS接收机的处理器进行升级程序的安装并发送数据头字符为“SC”的数据。
(3)GNSS接收机进入等待关机状态,然后结束退出;
(4)GNSS接收机运行应用程序分区中存储的应用程序。
步骤(21)和(22)之间,还包括以下步骤:
(211)GNSS接收机判断距离上次向升级设备发送程序数据接收状态反馈信息时刻起是否已接收了128字节的升级程序数据,如果是,则继续步骤(212),否则继续步骤(22);
(212)GNSS接收机向升级设备发送程序数据接收状态反馈信息,然后继续步骤(22)。
在实际操作中,程序升级操作流程:(1)通过串口连接接收机和电脑;(2)打开串口升级软件,连接上串口,点击“update”按钮;(3)接收机开机,升级过程自动完成;(4)升级完成后重新开关机,运行新的固件程序。
采用了该发明中的GNSS接收机中实现软件快速串口升级的系统及方法,具有如下有益效果:
本发明主要用于GNSS接收机ARM内核处理器的软件升级。产品结构本身的防水设计决定了软件升级不能和硬件相关,所以本发明的串口升级过程只要重新开关机便能实现,避免拆机升级带来的困扰。同时本发明的系统和方法支持所有的处理器芯片。本串口升级协议用在公司所有的产品中,可以非常方便客户升级新的固件程序,200K大小的代码数据能在大约5S的时间内升级完成,并保证数据的可靠,适用于大规模推广应用。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。