APP下载

基于超声系统的FPGA 在线升级方案

2022-04-02孟宪华李健铎

科学技术创新 2022年7期
关键词:配置文件电路板方案设计

孟宪华 李健铎

(东软医疗系统股份有限公司,辽宁 沈阳 110034)

在先前低版本的台车式医疗超声系统中,配置了SP(Signal Processing)板和BF(Beamforming)板,每块电路板中都有FPGA 芯片,FPGA 执行的代码是固化在配置芯片Flash中。当系统上电时,芯片会从Flash 中下载执行代码。这样的架构在实际使用中发现的问题:

(1)一旦FPGA 代码需要更新或升级,则需要服务工程师现场更换电路板,同时将旧电路板返厂,再由加工厂将Flash 芯片的内容重新更新;或采用专用JTAG 下载器进行代码升级,需要在客户现场拆机操作,比较耗时。这样升级成本特别高,而且十分繁琐,直接导致服务成本增加。

(2)对于硬件完全相同的两个电路板,但由于Flash 中存储的程序不同,导致同一个电路板有两个PartNumber。也就是对于一个完全相同的电路板,仅仅由于存储的程序不同,还需要同时维护两套PartNumber,直接导致管理成本增加。

1 系统方案设计

针对上述问题,将FPGA 固件升级方案进行调整,基本设计思路如下:

FPGA 在线升级结构框图如图1 所示。

图1 FPGA 在线升级结构框图

2 FPGA 设计方案

2.1 SP 板Multiboot 原理

本设计将FLASH 的16M 存储空间等分成两个部分,在QSPI-Flash 中,存储了两个FPGA 的配置程序,一个是“Golden Boot”(G) 另一个是“Update Boot”(U)。根据XC7K325T 芯片支持Multiboot(多镜像启动功能),基本原理如图2 所示,Golden 文件是原始出厂程序,FLASH 中的起始位置为address 0,即Flash 启动时加载的位置;Update 文件是更新文件,位于FLASH 的Address X,X 可以根据文件大小进行调整,本设计中的位置为FLASH 中间部分。SP 板上电后,在启动阶段,XC7K325T 芯片中ICAP 模块会从Flash的首地址开始,读取Golden 文件。当Golden 程序读取完后,会执行跳转命令,会根据WBSTART 中的地址,直接跳转到Update 文件的起始地址,继续进行读取配置文件动作。当Update 文件读取完成后,FPGA 代码配置成功,Config_done信号释放。

图2 FPGA 的MultiBoot 配置方式

如果由于某种原因读取Update 配置文件出错(如读取过程出错,或update 文件存储错误),FPGA 会重新调取Golden 配置文件。这就是MultiBoot 的Fallback 功能。这样的机制使得系统具有鲁棒性。同时可扩展性得到了大大的增强。具体的FallBack 执行过程如图3 所示。

图3 FallBack 执行过程

2.2 SP 板更新方案设计

通常Golden 配置文件仅仅具有最简单的必要功能(如PCIE,Flash_Programmer,Hardware_info 等),而Update 文件则存储的是全部功能,也就是系统工作使用的全程序。通常Golden 文件是几乎不会做改动的,Golden 文件在电路板加工厂出厂时,已经被固化在指定空间内。针对这样的存储和执行机制,可以增加许多可扩展的功能。

如图4 所示,当需要更新Update 文件时,HOST PC 端通过上层应用,将需要更新的Update 下载文件U',(通常格式为.bit 或者.mcs)通过PCIE 总线将数据传递到FPGA,FPGA的Flash_Programmer 功能模块会将这个U'文件替换原来的Updte 文件。上层程序被设计为只能对Upadete 的空间进行刷写,而Golden 文件的空间是禁止读写的。这样也就保证了Golden 文件的安全。在升级过程中,即使upadte 出错,Golden仍然好用。

图4 SP 板的更新原理

2.3 BF 板更新方案设计

BF 板的FPGA 并没有配备存储配置文件的Flash 芯片,通过FPGA 的Slave Serial Mode 配置方式,来进行下载文件。通常,这种模式配置方式是如图5 所实现,MCU 通过一个CPLD,将配置文件写入FPGA,配置文件在MCU 中存储。

图5 Slave Serial Mode 配置方式

本设计中采用了Host PC+FPGA 的方式实现,具体更新方案设计如图6 所示。

图6 更新方案设计框图

Host PC 通过PCIE,将配置文件传送到SP 板的FPGA,SP 板的FPGA 再将这个文件重新解析打包,对BF 板的FPGA 进行配置。

3 程序设计

本设计中共包括三个部分开发,应用程序设计,windows 驱动设计以及FPGA 硬件功能实现。应用程序主要分为两个模块功能:(1)将FPGA 的bit 文件通过PCIE 总线下载到SP 板的Flash中,只更新Update 部分的Flash 空间;(2)将FPGA 的bin 文件通过PCIE 总线,在SP 板的FPGA 中做协议解析,对BF 板进行配置。

SP 板的配置过程如图7 所示。

图7 SP 板的配置过程

BF 板的配置过程,如图8 箭头部分所示。

图8 BF 板的配置过程

3.1 硬件设计方案

硬件部分主要包括PCIE 模块,FIFO 模块,SPI 端口模块,如图9 所示。

图9 硬件数据通路

(1)PCIE 模块有以下几个作用:硬件枚举识别,提供标准PCIE 协议,数据分层,连接驱动;

(2)FIFO 模块的作用:避免跨时钟域,数据传递;

(3)SPI 模块的作用:提供Flash 端口,提供标准的SPI 协议。

3.2 应用程序设计

应用程序设计基本界面,如图10 所示,基本功能如下:

图10 应用程序设计

(1)获取硬件SP&BF 设备ID;

(2)硬件读写擦除功能;

(3)进度条显示。

3.3 驱动程序设计

驱动工程生成文件如下:

(1).exe 文件为驱动执行文件;

(2).inf 文件为硬件设备的信息;

(3).pdb 文件为程序的数据库;

(4).sys 文件为驱动程序的可执行代码。

运行exe 文件即可安装驱动。

本设计共创建了3 个地址空间,加载驱动后,在系统任务管理器中观察设备资源情况如图11 所示。

图11 PCIE 枚举信息

4 结论

本方案所有技术上的难点都已经克服,经过调试及验证测试后,已经配置在多型号台车式医疗超声系统中,并通过了整机测试。

猜你喜欢

配置文件电路板方案设计
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
基于AKAZE 算法的大尺寸电路板图像拼接研究
100MW光伏车间自动化改造方案设计
一种适用于高轨空间的GNSS矢量跟踪方案设计
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
方案设计我做主
用方程组解决方案设计问题
闪存落水处理方法