基于MultiBoot的超声设备FPGA更新保护设计

2023-06-22 21:16金璐
无线互联科技 2023年4期

金璐

摘要:超声台车系统由于体积大,机械外壳不建议频繁拆卸,因此必须考虑FPGA烧录的问题。传统FPGA升级方式往往需要通过JTAG升级,而这种方式必须拆卸外壳。文章基于Xilinx公司的XC7K325T芯片,采用MultiBoot原理研究了一款超声设备FPGA固件升级的更新保护设计。经理论和实际验证,该设计符合预期效果,能成功应用到超声台车系统中。

关键词:Xilinx:更新保护:固件升级:MultiBoot

中图分类号:TN791

文献标志码:A

0引言

FPGA程序升级,一般需要使用下载器通过JTAG接口与FP GA连接,但在整机生产及售后服务的情况下,通过下载器升级的方法会一定程度损伤机器本身¨]。这种情况下,后期的维护升级成本、设备使用的可靠性和安全性都会受到一定的影响[2].因此,节约超声台车系统成本及售后服务人力成本至关重要[3]。为了避免这种情况发生,需要设计一个可以取代JTAG升级的方案,目前可行性方案主要包括以下几点需求:首先板载FPGA可以通过SPI总线配置Flash.其次FPCA跳转到Flash的对应地址读取烧写到Flash中的-bin文件加载运行[4].最后需要一种通信连接介质。

1 需求分析

针对上述需求,制定满足超声FP GA更新保护设计方案,按要求逐一分析。

1.1 Flash Programer设计

如图1所示,展示了Xilinx 7系列FPGA和SPIflash交互接口。当FP GA读取和寻址时,通过MOSI引脚发送到SPI flash.获取的数据通过MISO引脚从SPI flash发送到FP GA。SCK是时钟引脚,ss是低电平有效的主从选择引脚。

1.2

FPGA跳转加载

Xilinx 7系列FPGA的MultiBoot和Fallback功能支持现场更新系统,比特流文件可以在现场动态升级.FPGA MultiBoot功能支持在文件之间动态切换。当在MultiBoot配置过程中检测到错误时.FPGA触发回退功能,确保将已知的良好设计加载到器件中。当Fallback发生的时候,除MultiBoot逻辑、热启动起始地址寄存器和啟动状态寄存器需要被保留外,内部生成的脉冲信号会复位整个配置逻辑。当复位脉冲生效时,INIT—B和DONE信号会被拉低,配置存储器的内容会被清除,FLASH从0地址重新启动配置过程。

如图2所示.Xilinx提供的MultiBoot功能为FP GA提供了很多选择性,包括bin文件的加载地址选择。内部逻辑IPROG启动配置逻辑首先跳转到golden烧录文件首地址,同时WBSTAR将热启动地址指定到update烧录文件首地址,并尝试更新跳转。如果此期间检测到配置错误,则会触发Fallback,重新加载golden烧录文件,这就是MultiBoot和Fallback的工作原理。

2 设计与实现

整体设计方案如图3所示.Host主机通过PCIE总线将烧录文件发送给FP CJA.FPCJA在通过SPI总线烧写到FLASH里。

本设计存在两个烧录文件,考虑利用Vivado白带的.msc文件将golden烧录文件和update烧录文件两个文件一同烧录到Flash里。这样在工厂出来的板子上的flash就有MuhiBoot功能,可以直接投产。MultiBoot的构建及验证有以下几点。

2.1 xdc文件配置情况

golden bin文件中需要添加如下命令:

set_property BITSTREAM. CONFIG. CONFICJFALLBACK ENABLE[ currenLdesign]

set—property BITSTREAM. CONFIG. NEXT—CONFIG_ADDR Ox0300000[ current_desig

set_property BITSTREAM. GENERAL. COMPRESSTRUE[ c.urrent_design]

set—property BITSTREAM. CONFIC. SPI—BUSWIDTH l[current_design]

update bin文件中需要添加如下命令:

set

property

BITSTREAM.

CONFIG.CONFIGFALLBACK ENABLE[ current_design]

set — property

BITSTREAM. CJENERAI.COMPRESS TRUE[ current_design]

set—property

BITSTREAM. CONFIC. SPI—BUSWIDTH l[current_design]

golden烧录文件中的NEXT—CONFIC—ADDR的数值必须与P rogrammer逻辑中烧写偏移地址保持一致,才能保证golden烧录文件内容不被破坏。只有这样产品升级过程才能保证即使有意外情况(如掉电,误操作等)发生时,系统重启后仍能更新update烧录文件,这才是设计的意义。

2.2 生成.mcs文件

根据Xilinx官方手册,使用tcl命令writ e_cfg{mem创建一个.mcs文件,具体结构如下:

write_cfgmem -format mc.s -interface SPIX4 -size16 -loadbit”up 0/golden. bit up Ox0300000 /update.bit" /filename.mc.s

2.3

FPCJA与Host传输介质选定

本设计中FPGA与Host的桥梁是PCIE.其中一个原因是现有超声台车具备IPASS总线接口,所以考虑沿用这个传输方式。但是,对于PCIE来说数据是流数据,而这种流数据不能直接写入到Flash中,所以FPGA中需要考虑数据解析整合,即需要确定FLASH块写还是FLASH页写,这里使用的方式是块写,利用FIFO进行速率缓冲,具体的工作流程如图4所示。

2.4 软件测试

依据如图5所示的软件界面,测试步骤如下:

(1)正常上电观察FPCA的done灯是否点亮。

(2)打开软件修改烧写Flash的偏移地址。

(3)执行Flash擦除指令,手册规定flash erase动作需要100 s。

(4)待步骤(3)执行后,掉电上电,观察done灯,发现done灯较正常情况会慢几十秒,这个情况是正常的。

(5)此时PCIE的枚举是没有被建立的,所以需要重启超声台车系统。

(6)待重启后,执行部分写入。

(7)掉电上电观察done灯正常点亮,说明烧写正确。

2.5 测试结果

测试过程中使用Vivado在线调试FP GA.通过观察SPI的时序及约束,确定数据下载的位置是期望的偏移地址;观察PCIE总线的时序图,确定数据链路为期望的BARI.且BARI传递到后端,更新数据也同样传递到PCIE核与SPI核之间的FIFO中,且数据正确,时序约束符合跨时钟域的设计要求。具体结果如下,原基础版本为0.3.0.升级后,版本为0.3.3.更新方案可用。测试过程中强制掉电,上电后观察版本号,为原版本0.3.0,后执行更新操作可恢复正常。下载速度方面,传统JTAG下载时间一般为10 min.本设计下载时间为2 min。

3 结语

本研究针对目前超声系统固件更新过程的复杂性,依托Xilinx的MultiBoot理论制定FPGA更新保护方案,并设计单独升级软件测试及后期调试使用。经过开关机反复4 000次升级测试,没有出现异常现象,设计方案稳定性得到证实:研发和生产过程中出现问题时,也可以通过升级软件及时更新,缩短了研发周期:后期售后服务人员在更新固件版本的时候,可以随软件基线更新固件,避免拆機风险,降低了后期的维护成本,用户使用可靠性、安全性得到保障。目前,该方案已正式运用在超声台车系统中并进入市场。

参考文献

[1]孟宪华,李健铎.基于超声系统的FPGA在线升级方案[J].科学技术创新,2022(7):37-40.

[2]万垚,李蠡.一种基于FPGA的在线升级方案[J].成都信息工程大学学报,2020(5):493-498.

[3]韩子舟,任勇峰,李辉景.基于1553B总线的FPGA在线升级[J].电子设计工程,2022(3):1-5.

[4]田地,李康乐,杨春宇.基于FPGA的空调显示设定器程序升级方案设计[J].电子制作,2022(3):43-46.

(编辑沈强)