logo

CH563远程固件升级方案

在实际生产中,厂家们为了抢占市场,往往是一边发布产品一边完善技术;此外,要想做出成熟的产品,必须要与用户形成良好的互动,利用客户的反馈信息来完善升级。所以,厂家常常需要升级设备的固件程序,如果对用户手中的大量设备进行现场ISP升级,那么不但浪费人力与时间,繁琐的操作还会影响客户对产品的印象。

在网络飞速发展的时代,将终端设备接入到网络中可以有效地解决上述问题,厂家只需要将最新的固件放到指定的服务器上,设备通过网络远程访问服务器,自动下载更新固件程序。客户无需去现场拆卸设备,无需isp下载软件。方便快捷,稳定可靠,设备可以远程自动检测下载升级,尤其是在大批量升级中,优点显著。

CH563是一款带网络接口的单片机,可以广泛应用于各种嵌入式产品的开发,使用CH563可以很好的实现该方案:CH563作为用户的终端设备,通过TFTP协议访问厂家的服务器,服务器上保存有最新的固件,CH563可以下载该固件,并进行升级。

1.TFTP协议实现远程下载

 TFTP协议是基于UDP的一种简单的文件传输协议,它由TFTP客户端与服务器组成,CH563TFTP客户端,远程连接厂家的TFTP服务器,下载服务器上的固件程序,TFTP交互流程如下:

1、由客户端发起读文件/写文件的请求,同时可以进行请求连接

2、服务器监听到请求,打开连接,并向客户端发送文件,以每个定长为512字节的块进行发送。每个数据包包含一个数据块,在发送下一个包的时候必须被客户端确认回应一个回应包。

3、当发现某个数据包小于512个字节,说明传输终止。

4、如果出现网络丢包,收件方(客户端)会超时,并且重传最后的接收包(可以是数据包或者回应包),因此这将可以让发送者重新发送丢失包。当之前的包已经接受成功之后,发送者只需要保持一个重传包。

注意:发送方要做的事情:发送数据,接收回应包;接收者要做的:发送回应包,接收数据。如下图所示:

RTX截图未命名.png

2.FLASH区域的划分与固件的存储

CH563的用户程序是保存在FLASH地址0开始的区域内,每次复位或上电之后,单片机总是从地址0开始运行用户程序。为了保存下载的新固件,这里将FLASH划分出一块备用区域,等待校验完成后,才替换旧版固件

FLASH划分示意图:

0---64k

当前用户程序

64k---128k

保存下载的新固件


1CH563将从TFTP服务器上下载的固件保存在FLASH地址64k开始的区域内。

2、对FLASH里保存的固件进行校验,如长度校验或者自定义校验方式

3、校验如果通过,那么就把FLASH里的当前用户程序擦除(地址0-64KB,将保存的新固件写入到0-   64KFLASH里。

4、写入完毕后,单片机执行复位命令,此时,单片机运行的就是新的固件程序了。

 

下面给出563TFTP远程升级的完整例程以及相关软件工具,配合CH563评估板,使用步骤如下:

1、  电脑上打开TFTPD64.exe,建立起TFTP服务器,电脑的IP地址设为:192.168.10.100,将要下载的BIN文件CH563.BIN放到软件指定的目录内。

2、  CH563评估板上电,通过网线连接电脑,按下PB7引脚上的DOWNLOAD键,563就会向电脑TFTP服务器发送下载请求,一键完成下载升级复位。

 

例程包下载:

 

CH563_IAP_网口.rar


能用http进行升级吗?

 


只有登录才能回复,可以选择微信和github账号登录