Xilinx A7 FPGA串口更新教程与配置

5星 · 超过95%的资源 需积分: 48 133 下载量 119 浏览量 更新于2024-08-05 17 收藏 304KB DOCX 举报
“xilinx A7系列FPGA 串口更新方案” 在Xilinx A7系列FPGA中,串口更新方案是一种重要的固件更新方法,它允许用户在不依赖JTAG或专用硬件的情况下,通过串行接口更新FPGA的配置。这种方案在设备部署后维护和修复时尤其有用,因为它提供了远程更新的灵活性。 首次烧写到Flash的mcs配置文件包含了两个关键部分:goldenimagebitstream和updateimagebitstream。goldenimagebitstream是主用配置,包含了正常运行的逻辑,如点亮LED灯等基本功能,以及串口更新所需的逻辑。串口更新逻辑使得设备能够响应特定的串口命令,进入更新模式,擦除并写入新的配置数据到Flash的特定区域。 为了使goldenimagebitstream支持串口更新,需要在相应的XDC(约束文件)中进行配置。以下是一些关键的XDC设置: 1. `set_property BITSTREAM.CONFIG.CONFIGFALLBACK Enable [current_design]`:启用配置回退功能,如果在updateimage区域找不到有效的配置文件,系统将回退到goldenimage区域加载配置。 2. `set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0xXXXXXXXX [current_design]`:设置更新区域的起始地址,这告诉FPGA在上电时应从哪个地址读取更新配置。 3. `set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design]`:配置SPI总线宽度为1,这对于某些Flash存储器的通信可能是必要的。 4. `set_property BITSTREAM.CONFIG.TIMER_CFG 0x50000 [current_design]`:配置看门狗定时器,如果在指定时间内未检测到有效的配置文件,系统将回退到goldenimage区域。 生成这两个比特流后,使用Vivado工具将其打包成mcs文件。然后,这个包含两个部分的mcs文件需要被烧录到Flash中。在上电时,FPGA会首先尝试从updateimage区域加载配置,如果该区域没有有效的配置,由于配置回退机制,它会跳转到goldenimagebitstream区域加载配置。 完成更新流程通常包括以下步骤: 1. 通过JTAG首次烧录包含goldenimagebitstream和updateimagebitstream的mcs文件到Flash。 2. 上电,设备会尝试从updateimage区域加载配置,如果没有,会回退到goldenimage区域。 3. 当需要更新时,通过串口发送命令使设备进入更新模式。 4. 擦除updateimage区域,并通过串口将新的bitstream文件写入。 5. 设备重新启动,此时会从updateimage区域加载新的配置,完成更新。 此方案的优势在于它提供了一种安全且灵活的更新机制,即使在设备部署后也能进行固件升级,而且不需要物理访问设备。然而,为了确保可靠性,需要确保在更新过程中有良好的错误检查和恢复机制,防止因通信问题导致设备无法正常工作。