资深版主
- 积分
- 839
- 金钱
- 839
- 注册时间
- 2018-7-29
- 在线时间
- 128 小时
|
本帖最后由 SunML 于 2020-11-25 09:21 编辑
在使用开发板做FPGA开发时,常见的方式是使用JTAG下载程序。但是在实际的项目中,产品交付后,很难再使用JTAG接口进行固件升级。原因有很多,如产品结构不方便拆卸,或者产品装配在不易到达的位置等。
此时需要使用FPGA的远程更新功能,使用产品自带的通讯接口(如串口,以太网接口等)传输待更新的固件,将固件写入EPCS等非易失性存储器,最后触发FPGA使用新的镜像文件进行重配置。
ALETRA Cyclone IV 系列FPGA中包含了一个 ”远程系统升级电路”,我们可以利用它实现FPGA的远程更新。这里以正点原子“开拓者/新起点”FPGA开发板为例,使用串口来演示FPGA的远程更新功能。
程序总共分成三个部分,如下:
0_RSU_Factory:
远程更新过程中的出厂镜像,基于新起点开发板,出厂程序运行过程中开发板左侧两个LED会循环闪烁,作为指示灯。
出厂镜像在执行重配置时,关闭了用户程序的Watchdog使能。
1_application_image_project:
应用镜像工程,有3个指示灯,LED[2:0]同时快速闪烁,指示当前处于用户模式;(该镜像为原始应用镜像,直接和出厂程序一起固化到EPCS中)
该模式下3个LED同时闪烁持续7秒后,触发重配置,跳转到出厂模式;
2_RSU_Application:
需要更新进去的应用镜像,实现了流水灯的功能。
其中最关键的模块为0_RSU_Factory,其顶层模块原理图如下所示:
远程更新的操作步骤如下:
一、用 0_RSU_Factory 和 1_application_image_project 的 sof 文件导出一个JIC文件,烧录到EPCS中,其存储映射如下所示:
IMAGE BLOCK START ADDRESS END ADDRESS
0_RSU_Factory Page_0 0x00000000 0x0003FFFF (0x0001ED17)
1_application_image_project Page_1 0x00040000 0x001FFFFF (0x0005A317)
二、开发板重新上电,则出厂程序会在上电后直接执行重配置。
重配置后的现象是:LED[2:0]同时快速闪烁,指示当前处于用户模式;
三、3个LED同时闪烁持续7秒后,触发重配置,跳转到出厂模式。
跳转到出厂模式后的现象是:开发板左侧两个LED会循环闪烁,指示当前处于出厂模式;
四、出厂模式下,通过串口助手将 2_RSU_Application 的镜像文件发送给开发板。
新的应用镜像接收完成后,会自动触发重配置,再次进入用户模式,开发板上显示四个LED的流水灯效果,表示远程更新成功;
五、开发板再次重新上电,显示的是流水灯效果,证明新的应用镜像成功写入EPCS。
|
|