获取服务端文件的更新时间_【正点原子FPGA连载】第三十六章远程更新QSPI Flash实验-领航者ZYNQ 之嵌入式开发指南...

1)实验平台:正点原子领航者ZYNQ开发板

2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761

3)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html

4)对正点原子FPGA感兴趣的同学可以加群讨论:876744900

5)关注正点原子公众号,获取最新资料

b3522cf50250c126884c53e27e6780d5.png

第三十六章基于TCP协议的远程更新QSPI Flash实验


在《程序固化实验》中,我们了解了如何通过SDK软件将BOOT.bin文件固化到QSPI中,这种现场通过SDK软件固化的方式很常用,重新固化也很方便。然而在实际应用中,通过SDK软件固化或重新固化QSPI并不一定可行,如产品量产发布后进入维护升级阶段,若需要修改、更新QSPI中的BOOT.bin文件,遇到产品安放在高危环境中或产品整合到大型机械内部,或产品生产时没有预留JTAG口,而是预先将程序固化到QSPI中等情况,使用SDK软件现场重新固化就不可行。此时通过网络远程更新QSPI的方式将显得极其重要和方便。本章我们将介绍如何使用TCP协议实现远程更新QSPI。本章包括以下几个部分:
3636.1简介
36.2实验任务
36.3硬件设计
36.4软件设计
36.5下载验证
36.1简介
在《程序固化实验》中我们可以看到,将生成的BOOT.bin文件烧写到QSPI中就完成了程序固化,其实质是将BOOT.bin文件的数据写入到QSPI中。将数据写入到QSPI中的方式有多种,通过SDK软件工具使用JTAG接口写入是一种常用的方式。除此之外,我们在《QSPI读写实验》通过调用相关函数操作QSPI向QSPI中写入数据也是一种常用的方式。显然,远程更新QSPI使用的是后一种方式。
远程更新QSPI就是将BOOT.bin文件通过网络协议如常用的TCP、UDP协议传给远端联网的文件接收端即领航者开发板。接收端将文件暂存在DDR3中,当文件传输完成后,接收端接收到更新命令后将调用相关函数将文件数据写入到QSPI中,写入完成后为了防止写入出错,需要将写入到QSPI中的数据读出以进行校验。校验成功后就可以重新以QSPI启动的方式启动,完成远程更新。
从上述可以看出,接收端的领航者开发板作为服务端,发送端作为客户端将BOOT.bin文件数据上传给服务端是一个较好的客户/服务器模型。有一个特别需要注意的地方是,当客户端上传完文件后,作为服务端的领航者开发板如何知道文件传输完成并启动更新呢。
有两种方式可以解决。一是客户端传输完成后,关闭连接,服务端知道客户端关闭连接后知道文件传输完成,更新QSPI。此种方式弊端很多,如不能知道后续的更新情况,若发生写入到QSPI错误,不能及时修复,以及不能避免因环境问题导致的网络误关闭。另一种是当客户端传输文件完成后,向服务端发送更新命令,服务端接收到更新命令后启动更新。为了防止传错文件等意外情况,也可以添加清除命令,使之前传送的数据无效。
由于TCP协议的稳定可靠,本章我们选择TCP协议作为网络传输协议。领航者开发板利用lwip协议栈开启TCP服务作为服务端,可以写一个TCP客户端的上位机或使用网络调试助手开启TCP客户端传送BOOT.bin文件。
最后我们比较下通过SDK软件更新(使用JTAG接口方式)和网络更新方式的优缺点。
表 36.1.1 更新方式比较

e22908e0b7c43355bc49603e176d1021.png


36.2实验任务
本章的实验任务是使用LWIP协议栈的tcp协议实现远程更新QSPI的功能,当输入“update”命令时更新QSPI并反馈信息,当输入“clear”命令时之前传输的数据无效。
36.3硬件设计
根据实验任务我们可以画出本次实验的系统框图,如下图所示:

a8374f3b06d1f9282e6ae763a15f1da1.png

图 36.3.1 系统框图


在图 5.3.1中,UART用于打印程序相关的信息,LWIP通过以太网传输文件数据,传输的BOOT.bin文件数据写入到QSPI中。
step1:创建Vivado工程
本次实验的硬件设计只需在《LWIP echo server》实验的基础上添加QSPI即可。
1-1 我们先打开《LWIP echo server》实验的Vivado工程,打开后将工程另存为 “qspi_update_tcp”工程。
step2:使用IP Integrator创建Processing System
2-1 在Vivado界面左侧的Flow Navigator中,点击IP INTEGRATOR下的Open Block Design以打开Diagram窗口。然后在右侧打开的Diagram界面中双击ZYNQ Pro

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值