Xilinx系列FPGA远程网络升级实现简介

作者:Albert Wei,来源:Ingdan FPGA微信公众号

1、概述

在实际应用中有很多FPGA板卡离工程师是有一定的距离,导致升级FPGA的mcs文件需要到现场,这样不方便也浪费时间。为此我们实现了基于通用网络传输方式来做远程升级的方案。此方案框图如下所示,本方案硬件平台基于米联客KU040FA板卡来做实现,当然此方案适用Xilinx的其他型号FPGA芯片。在Vivado工程上面例化了一个MircoBlaze核作为TCP/IP 数据传输的承载,在PC端将升级的bin文件分割成1024大小的块进行传输,此大小可以根据具体需要通过宏进行调整,每个数据块在传输前会进行CRC计算并将值随数据流一并发出来保证每个包传输的正确性,在FPGA端接收到数据块进行CRC校验并比对,如果正确则进行QSPI写入来完成升级。

2、FPGA内部功能模块

FPGA内部主要使用的IP模块包括MicroBlaze,axi_qspi和axi_ethernet等:

A、 MicroBlaze:主要实现LWIP、QSPI控制器等工作;

图1:新建一个的MircoBlaze的Platform

图2:基于platform新建一个lwipserver的application

注:需要在BoardSupport Package→Modify BSP Settings中增加lwip package的支持。

B、Axi_ethernet:主要实现FPGA板卡跟PC直接通信;

C、Axi_Qspi:主要实现对QSPI flash读写操作。

图3:移植xapp1280中的Qsqi驱动部分到此application project中

注:注释掉原来main函数,并抽象出主要接口函数到xspi_dev.h中。

3、嵌入式软件设计

嵌入式部分工程完成了QSPI flash的初始化及基于LWIP使用TCP/IP作为server端的监听,Server端的默认IP和Port为192.168.1.10:5001,工程还完成了多个数据包的拼接及CRC的校验等功能。

下图为C代码运行流程图:

4、上位机软件设计

上位机软件使用QT设计,主要功能有网络连接测试测试板卡是否在线,及升级包进行分割和CRC计算后进行传输。

此工程包含如下几个设计部分,经过测试可以正常工作。

此方案我们是可以提供一整套参考设计。如果需要请联系我们。
simonyang@comtech.com.cn
charlesxu@comtech.com.cn

最新文章