当前位置: 首页 > news >正文

FPGA远程更新升级和测试(MultiBoot)

最近项目上要使用FPGA程序的远程更新功能,空闲时间在自己的开发板上先搞了一套(千兆网接口),并实现在线重加载;参考了之前的内容,将3字节指令的flash驱动兼容到4字节指令上:

FPGA实现千兆网UDP协议(含ARP、ICMP)

FPGA外挂存储器应用2——QSPI Flash读写等功能

基于ZYNQ的远程更新功能

测试硬件FPGA(Ku5p)、NorFlash(MX25U512)

适用场景:板卡有对外接口(比如:网口、串口、USB、PCIe等),板卡与板卡互联且有上述对外接口等。

远程更新Flash特别适用于人员不方便接触板卡,比如产品部署在偏远的通信基站、机房服务器或者密封的设备机箱中,突然发现一个bug需要修复,或者要增加一个新功能等。

远程更新完Flash后,重加载程序,可以通过外部MCU或者FPGA内部IPROG命令(等同赋值PROGRAM_B负脉冲)在线重加载,或者掉电重启。

1. MultiBoot方案

为例规避在线更新程序的过程中出现断电、断线、通信中断、传输的文件有问题等意外情况,使得固化程序未全部写入Flash,造成FPGA变砖无法启动,只能通过JTAG再次更新程序;FPGA厂商都考虑了这个问题,提供了双镜像方案,比如Xilinx的Golden镜像和Multiboot镜像,允许在同一个配置Flash中存储多个bitstream,并在不同镜像之间进行动态切换。

可参考:

ug570-ultrascale-configuration

xapp1257-multiboot-fallback-spi-flash

xapp1296-multiboot-fallback-icap

1.1. 启动流程

通过双镜像架构和Fallback回退机制,即使在升级过程中发生意外(断电、通信中断、文件错误等),系统也能自动恢复到稳定状态,从根本上解决了FPGA远程升级“变砖”的问题。

在MultiBoot方案中,通常包含两个镜像:

Golden Image(黄金镜像):存储在Flash的起始地址(0x00000000),包含FPGA的基本功能和远程升级逻辑。这个镜像具备远程更新Flash功能,固化后不要更新,是系统最后的容错保障。

Update Image(更新镜像):存储在自定义的Flash某高位地址,包含实际的业务功能。这个镜像是实际远程升级的。

配合Fallback(回退)机制,当Update Image加载失败时,FPGA会自动回退到Golden Image,确保系统始终能够正常运行保障仍可再次远程更新。

主要有以下几个步骤:

上电启动:FPGA上电后,从Flash的0地址开始加载Golden Image。

检测IPROG命令:Golden Image的Header中包含一个特殊的IPROG(Internal Program)命令和WBSTAR(Warm Boot Start Address)寄存器,后者指向Update Image的存储地址。

跳转加载:FPGA检测到IPROG命令后,跳转到WBSTAR指定的地址,开始加载Update Image。

正常运行:如果Update Image加载成功,FPGA运行更新后的业务功能。

触发回退:如果加载过程中出现错误(CRC校验失败、IDCODE不匹配、Watchdog超时等),FPGA自动触发Fallback,重新从0地址加载Golden Image。

1.2. 相关配置

G镜像的约束文件需要指定M镜像的位置,如果Flash容量大于128Mb,需要开启4字节地址。根据自己板卡的原理图设置SPI是单线、双线还是四线模式。

M镜像需要使能Fallback回退。

比如本板卡的设置:

关于Flash的片选和信号线的约束,UltraScale+和其他系列不同;U+系列使用STARTUPE3源语,无需对Flash管脚IO进行约束;其他U和7系列使用STARTUPE2源语,指定程序启动后的Flash时钟,其他的Flash管脚片选和MSIO进行XDC约束。

程序远程更新完后,如果想使用不掉电在线切换程序,U+系列使用ICAPE3源语,指定M镜像的位置,需要注意每字节内高低位互换,参考UG570

1.3. 初次配置

初次固化G镜像和M镜像时,可通过Vivado生成固化文件:

上述设置G镜像位于地址0x00000000,M镜像位于0x02000000(即G镜像指定的M镜像位置),本板用于配置启动的norflash接了4线,为了快速启动采用了SPIX4。

生成G和M镜像的合成文件后,通过JTAG将合成文件TEST_ALL.bin固化到Flash中,板卡即具备了远程加载和在线重启的功能。

2. 功能测试

开发Golden Image和Update Image功能,开发上位机界面,进行测试:

2.1. 约定命令

上位机下发擦除指令:

指令头4B

指令码4B

M镜像起始地址4B

擦除块数4B

结束码4B

AA55A5A5

B2C1B3FD

EEEEFFFF

FPGA擦除完成反馈指令:

指令头4B

指令码4B

备份4B

备份4B

结束码4B

AA55A5A5

B2C1B3FD

EEEEFFFF

上位机下发更新指令:

指令头4B

偏移地址4B

更新数据256B

结束码4B

55AAAA55

EEEEFFFF

FPGA每包数据更新完成反馈指令:

指令头4B

更新地址4B

备份4B

备份4B

结束码4B

55AAAA55

EEEEFFFF

上位机下发在线重加载指令:

指令头4B

指令码4B

备份4B

备份4B

结束码4B

AA55A5A5

FFEEDDCC

EEEEFFFF

2.2. 远程更新测试

固化文件大小约4.77MB,需要进行sector擦除4KB的个数为1223个

擦除完成时间约28s,平均每4KBsector擦除时间约23ms与Flash Datasheet相符。

从指令下发,历经擦除、逐256B更新,到更新完成整个过程约41s,下载过程相比Vivado还是快很多的。

在线重加载后,可以通过测试指示灯,也可查看M镜像是否启动,经寄存器观测,没有回退,即更新程序启动成功:

往期精彩回顾

FPGA开发PCIe系列2:实现Block DMA的H2C、C2H

FPGA开发中常用的TLP包

FPGA的时钟动态调相和鉴相功能

基于7系列FPGA实现万兆网通信

FPGA实现千兆网UDP协议(含ARP、ICMP)

FPGA 40G/50G Ethernet Subsystem核的使用

基于FPGA的千/万兆以太网通信巨型帧 Jumbo的处理测试

基于FPGA实现NVMe硬盘的读写功能

基于FPGA开发应用SATA硬盘

FPGA实现SD卡内文件的读写功能(FAT32文件系统)

FPGA光通信系列4 — 基于64b/66b编码的自定义协议

FPGA光通信系列3 — 基于8b/10b编码的自定义协议应用

FPGA光通信系列2——Aurora 64B/66B的使用

FPGA实现Aurora光通信应用

JESD204B的使用系列——3、DAC的应用(AD9164 9.6GSPS)

JESD204B的使用系列——2、协议及ADC的应用(AD9689)

JESD 204B的使用系列—1、时钟芯片的应用

http://www.jsqmd.com/news/1312565/

相关文章:

  • 3分钟极速上手:用开源神器Video-subtitle-extractor实现智能视频字幕本地化提取
  • 聊了6位毕业3年的学长,普通人怎么选EMBA
  • 3分钟搞定Mac微信防撤回:终极零配置解决方案
  • 万达系列酒店在哪个平台可以一起订?万悦会一站式预订实测 - 小橘甄选
  • 2026 年 8 月青岛非急救医疗转运产业全景调研与本土合规企业运营实录 - 平台推荐官
  • 2026年延安黄土缘苹果常见问题解答 - 万相科技
  • BumpMesh新版实战指南:性能优化与批量纹理生成技巧
  • C 语言文件操作(上)
  • 基于EUI-NEO-DX11框架构建高性能C++桌面GUI应用实战指南
  • WAIC 2026:机器人开始接走人的活
  • PMP费用明细怎么核对和报名怎么咨询? - 众智商学院官方
  • 2026年安庆AIGC应用工程师怎么报名?中山优才教育报考指南 - 人工智能报名机构推荐
  • 多模态大模型夜盲症揭秘:NightSight基准实测与低光视觉鲁棒性提升
  • 2026 年 7 月新发布:北塔有实力的挖掘机包月平台推荐几家,同样是挖土方,你按天算花了三万,却不知这样包月能省出半台车钱?-汇海工程机械 - 企业推荐管【认证】
  • 2026年石家庄五粮液回收市场观察:正规渠道厂家推荐与选择指南 - 优质品牌商家
  • NBTExplorer:免费开源的Minecraft数据编辑终极指南 [特殊字符]
  • Android短信链接唤起App全攻略:从Deep Link到App Link的实战避坑
  • 医生与AI评估LLM临床能力存在系统性分歧:400+医生7专科多中心研究揭示评估标准不可互换
  • LSTM时间序列预测实战:从原理到PyTorch实现
  • Windows Subsystem for Android完整指南:在Windows 11上轻松运行安卓应用
  • 深入理解计算机系统:程序员必备的系统思维与底层知识框架
  • 2026年电子车间净化工程怎么选?专业视角解析关键考量因素 - 优质品牌商家
  • 2026浙江音乐艺考择校白皮书:避坑指南与五大机构横评 - 品牌报告
  • 归并排序与快速排序深度对比:从原理到实战选型指南
  • Unity性能优化实战:八叉树实现视锥体剔除提升帧率
  • 如何在Windows上免费实现专业级音频均衡器调校:Equalizer APO完全指南
  • GHO镜像转VMDK虚拟机:物理机系统备份迁移至VMware全攻略
  • 2026年乐山苏稽临江鳝丝与米花糖选购指南:哪家门店更可靠? - 优质品牌商家
  • 2026年广州电商客服外包厂家推荐:口碑与实力深度评测 - 优质品牌商家
  • 研究生学术效率工具全攻略:从文献管理到论文降重