本发明涉及一种基于c8051f系列单片机的在线升级方法。
背景技术:
c8051f系列单片机在进行程序更新通常用两种方法:(1)通过仿真器直接将程序仿真下载到单片机内部flash中运行;(2)通过专用烧录器在单片机焊接前将程序烧录到单片机内部flash中。方法(1)适用于产品研制阶段,该阶段需要对程序功能进行验证修改;方法(2)适用于定型后阶段,该阶段程序已经固化,为提高生产效率在贴片前固化程序。方法(1)、(2)未能解决产品交付后,用户变更需求后的程序变更升级的方法,而通过方法(1)、(2)均需要对产品进行拆卸,这两种方法均费时费力、程序更新成本较高。
技术实现要素:
本发明的目的是根据上述现有技术的不足之处,提供一种能够适用于c8051f系列单片机的在线升级方法。本发明在无需拆卸设备的情况下通过常用的uart串行总线完成c8051f系统单片机的程序更新,接口简单,软件硬件实现复杂度低,为c8051f系统单片机系统的在线升级提供了一种简洁有效的方法。
本发明是主要由两部分软件方法构成:(1)上位机升级软件、(2)单片机升级引导软件。其中上位机升级软件负责读取、解析hex格式可执行文件,并通过uart串行总线与单片机进行通信,将数据打包后传输给单片机升级引导软件;单片机升级引导软件主要负责升级状态的判断,可执行hex文件数据的接收、校验、存储,并将操作结果反馈给上位机。
一种其于c8051f系列单片机的在线升级方法,其特征在于,包括如下步骤:
步骤一:上位机升级软件读取可执行文件,同时打开所选择通信端口,等待c8051f系列单片机的中央处理器cpu在线升级通信连接指令;
步骤二:cpu上电后启动,首先运行升级引导程序,发送建立升级通信连接请求命令给上位机,若接收到上位机反馈的确认建立升级通信连接命令,则转至步骤三,否则转至步骤十;
步骤三:cpu请求上传特征信息,当cpu接收到允许上传特征信息的指令后,将特征信息传送至上位机升级软件;
步骤四:上位机升级软件接收到特征信息后,对特征信息进行判别,与可执行文件中的特征信息一致时,发送信息确认指令,使能升级按钮;
步骤五:用户触发确认升级按钮,发送命令开始升级;
步骤六:cpu获取发送获取页信息请求指令,上位机升级软件接收到该指令后判断是否还存在未发送的页数据,若存在则发送页数据的存储地址信息,若无则发送升级结束指令;cpu对反馈的页信息进行判断,若为页地址信息则跳转到步骤七,否则转至步骤十;
步骤七:cpu发送请求页擦除命令给上位机,在接收到上位机反馈的擦允许指令后对内部flash进行擦除操作;
步骤八:擦除成功后cpu发送获取页数据请求指令给上位机,上位机将一页数据打包后发送给cpu;
步骤九:cpu对接收到的页数据进行校验,若校验成功,则将该页数据写入到内部flash中,操作完成对写入的数据进行写正确校验,校验正确后转至步骤六;
步骤十:通过绝对指地址跳转方式,将程序跳转至应用代码区,运行应用程序。
可执行文件为hex格式可执行文件。
特征信息包括:cpu类型、当前程序版本和应用代码程序地址。
特征信息位于cpu内部的flash特征信息区。
cpu对接收到的页数据进行校验时,校验方式采用crc校验。
上述cpu即c8051f系列单片机的中央处理器。
上位机升级软件通过uart串行总线与单片机进行通信。
本发明所达到的有益效果:
本发明提供一种能够适用于c8051f系列单片机的在线升级方法,可以在无需拆卸设备的情况下通过常用的uart串行总线完成c8051f系统单片机的程序更新,接口简单,软件硬件实现复杂度低,为c8051f系统单片机系统的在线升级提供了一种简洁有效的方法。
附图说明
图1为上位机升级软件图;
图2为cpu内部flash存储分布图;
图3为程序升级流程图;
图4为程序升级步骤图;
图5为程序过程所使用的技术指标;
图中:1、上位机uart串行端口配置区;2、可执行文件hex选择按钮;3、用户确认升级按钮;4、信息提示清空按钮;5、升级进度条;6、升级提示信息。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
结合图4,本发明的升级步骤如下:
步骤一:如图1所示,上位机升级软件界面包括上位机uart串行端口配置区1、可执行文件hex选择按钮2、用户确认升级按钮3、信息提示清空按钮4、升级进度条5、升级提示信息6。用户首先选择可执行hex文件,选择操作端口品并打开,根据信息提示,可判断操作结果,并等待用户给产品上电;
步骤二:用户给产品上电,上电后首先执行升级引导代码,如图3所示的流程图,在接收到上位机反馈的通信确认命令后转至步骤三;
步骤三:cpu请求上传特征信息,该信息位于图2所示的flash特征信息区,包括:cpu类型、当前程序版本、应用代码程序地址,如图5所示。当cpu接收到允许上传指令后,将信息传送至上位机;
步骤四:上位机接收到特征信息后,对特征信息进行判别,确保与可执行文件中的特征信息一致,并发送信息确认指令,使能图1所示的确认升级按钮;
步骤五:用户点击确认升级按钮,发送命令开始升级;
步骤六:cpu获取发送获取页信息请求指令,上位机升级软件接收到该指令后判断是否还存在未发送的页数据,若存在则发送页数据的存储地址信息,若无则发送升级结束指令;cpu对反馈的页信息进行判断,若为页地址信息则跳转到步骤七,否则转至步骤十。
步骤七:cpu发送请求页擦除命令,在接收到升级上位机反馈的擦允许指令后才能对内部flash进行擦除操作,同时擦除后要进行擦空校验;
步骤八:擦除成功后cpu发送获取页数据请求指令,上位机将一页数据打包后发送给cpu;
步骤九:cpu对接收到的页数据进行校验,校验方式采用crc校验,若校验成功,则将该页数据写入到内部flash中,操作完成需要对写入的数据进行写正确校验,校验正确后转至步骤六。
步骤十:通过绝对指地址跳转方式,将程序跳转至应用代码区,运行应用程序。
上述只为说明本发明的操作过程,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。