使用 Nios II 处理器通过 UART 的英特尔 MAX 10 FPGA 设备
产品信息
该参考设计提供了一个简单的应用程序,可在 MAX 10 FPGA 器件的基于 Nios II 的系统中实现基本的远程配置功能。 MAX 10 FPGA 开发套件中包含的 UART 接口与 Altera UART IP 内核一起使用,以提供远程配置功能。 MAX10 FPGA 器件能够存储最多两个配置映像,进一步增强了远程系统升级功能。
缩写
缩写 | 描述 |
---|---|
阿瓦隆-MM | Avalon 内存映射配置闪存 |
立方英尺每分钟 | 图形用户界面 |
间苯二酚 | 初始化配置位 |
地图/.map | 内存映射 File |
尼奥斯II EDS | Nios II 嵌入式设计套件支持 |
前缘韧带 | 并行闪存加载器IP核 |
塑料光纤/.pof | 程序员对象 File |
串行外设接口 | 四串行外设接口 |
RPD/.rpd | 原始编程数据 |
顺铂 | 软件构建工具 |
软文件 | SRAM对象 File |
大车 | 通用异步接收器/发送器 |
超细纤维 | 用户闪存 |
产品使用说明
先决条件
此参考设计的应用要求您在以下领域具备指定的知识或经验水平:
要求:
以下是参考设计的硬件和软件要求:
参考设计 Files
File 姓名 | 描述 |
---|---|
工厂图片 | 在双配置镜像配置模式下,CFM1和CFM2 组合成单个 CFM 存储。 |
应用程序图像_1 | Quartus II 硬件设计 file 替换 app_image_2 在远程系统升级期间。 |
应用程序图像_2 | Nios II 软件应用程序代码充当控制器 远程升级系统设计。 |
远程系统升级.c | |
工厂_application1.pof | Quartus II 编程 file 由工厂图像和 应用程序映像 1,将被编程到 CFM0 和 CFM1 & CFM2 分别在初始 stage. |
工厂应用程序1.rpd | |
应用程序图像1.rpd | |
应用程序图像2.rpd | |
Nios_应用程序.pof |
该参考设计提供了一个简单的应用程序,可在 MAX 10 FPGA 器件的基于 Nios II 的系统中实现基本的远程配置功能。 MAX 10 FPGA 开发套件中包含的 UART 接口与 Altera UART IP 内核一起使用,以提供远程配置功能。
参考设计 Files
使用 MAX 10 FPGA 进行远程系统升级view
通过远程系统升级功能,可以远程完成 FPGA 设备的增强和错误修复。 在嵌入式系统环境中,固件需要通过各种类型的协议(例如UART、以太网和I2C)频繁更新。 当嵌入式系统包括FPGA时,固件更新可以包括FPGA上的硬件映像的更新。
MAX10 FPGA 器件能够存储最多两个配置映像,进一步增强了远程系统升级功能。 其中一张图像将作为当前图像发生错误时加载的备份图像。
缩写
表 1:缩写列表
缩写 说明 | |
阿瓦隆-MM | Avalon 内存映射 |
立方英尺每分钟 | 配置闪存 |
图形用户界面 | 图形用户界面 |
间苯二酚 | 初始化配置位 |
地图/.map | 内存映射 File |
尼奥斯II EDS | Nios II 嵌入式设计套件支持 |
前缘韧带 | 并行闪存加载器IP核 |
塑料光纤/.pof | 程序员对象 File |
- 英特尔公司。 版权所有。 英特尔、英特尔标识、Altera、Arria、Cyclone、Enpirion、MAX、Nios、Quartus 和 Stratix 文字和标识是英特尔公司或其子公司在美国和/或其他国家/地区的商标。 英特尔保证其 FPGA 和半导体产品的性能符合英特尔的标准保证,符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。 除非英特尔明确书面同意,否则英特尔不承担因应用或使用此处描述的任何信息、产品或服务而产生的任何责任或义务。 建议英特尔客户在依赖任何已发布的信息以及下订单购买产品或服务之前获取最新版本的设备规格。
- 其他名称和品牌可能属于他人财产。
先决条件
缩写
串行外设接口 |
描述
四串行外设接口 |
RPD/.rpd | 原始编程数据 |
顺铂 | 软件构建工具 |
软文件 | SRAM对象 File |
通用异步收发器 | 通用异步接收器/发送器 |
超细纤维 | 用户闪存 |
先决条件
- 此参考设计的应用要求您在以下领域具备指定的知识或经验水平:
- Nios II 系统的工作知识以及构建这些系统的工具。 这些系统和工具包括 Quartus® II 软件、Qsys 和 Nios II EDS。
- 了解 Intel FPGA 配置方法和工具,例如 MAX 10 FPGA 内部配置、远程系统升级功能和 PFL。
要求
- 以下是参考设计的硬件和软件要求:
- MAX 10 FPGA 开发套件
- 带 Nios II EDS 的 Quartus II 版本 15.0
- 具有可用 UART 驱动程序和接口的计算机
- 任何二进制/十六进制 file 编辑
参考设计 Files
表 2: 设计 File包含在参考设计中
File 姓名
工厂图片 |
描述
• Quartus II 硬件设计 file 存储在CFM0中。 • 应用程序映像下载中发生错误时要使用的后备映像/出厂映像。 |
应用程序图像_1 | • Quartus II 硬件设计 file 存储在CFM1和CFM2中。(1)
• 设备中加载的初始应用程序映像。 |
- 在双配置映像配置模式下,CFM1 和 CFM2 组合为单个 CFM 存储。
File 姓名
应用程序图像_2 |
描述
Quartus II 硬件设计 file 在远程系统升级期间替换 app_image_2。 |
Remote_system_upgrade.c | Nios II 软件应用代码充当远程升级系统设计的控制器。 |
远程终端.exe | • 可执行文件 file 带有图形用户界面。
• 作为主机与MAX 10 FPGA 开发套件交互的终端。 • 通过UART 发送编程数据。 • 包含该终端的源代码。 |
表 3:主控 File包含在参考设计中
这些大师都可以用 file用于参考设计,无需编译设计 files.
File 姓名
工厂_应用程序1.pof 工厂_应用程序1.rpd |
描述
Quartus II 编程 file 由工厂映像和应用程序映像 1 组成,在初始 s 时分别编程到 CFM0 和 CFM1 和 CFM2tage. |
工厂_应用程序2.pof 工厂_应用程序2.rpd | • Quartus II 编程 file 由工厂映像和应用程序映像 2 组成。
• 稍后将在远程系统升级期间提取应用程序映像2 以替换应用程序映像1,如下命名为application_ image_2.rpd。 |
应用程序图像1.rpd | Quartus II 原始编程数据 file 仅包含应用程序映像 1。 |
应用程序图像2.rpd | Quartus II 原始编程数据 file 仅包含应用程序映像 2。 |
Nios_应用程序.pof | • 编程 file 包含 Nios II 处理器软件应用程序.hex file 仅有的。
• 编程到外部QSPI 闪存中。 |
pfl软件 | • Quartus II .软件 含有 PFL。
• 编程到MAX 10 FPGA 开发套件上的QSPI 闪存中。 |
参考设计功能描述
Nios II Gen2 处理器
- 参考设计中的Nios II Gen2处理器具有以下功能:
- 总线主控器处理 Altera 片上闪存 IP 内核的所有接口操作,包括读、写和擦除。
- 提供一种软件算法,用于从主机接收编程位流并通过双配置 IP 核触发重新配置。
- 您需要相应地设置处理器的复位向量。 这是为了确保处理器从 UFM 或外部 QSPI 闪存启动正确的应用程序代码。
- 笔记: 如果 Nios II 应用程序代码较大,Intel 建议您将应用程序代码存储在外部 QSPI 闪存中。 在此参考设计中,复位向量指向存储 Nios II 应用代码的外部 QSPI 闪存。
相关信息
- Nios II Gen2 硬件开发教程
- 提供有关开发 Nios II Gen2 处理器的更多信息。
Altera 片上闪存 IP 核
- Altera 片上闪存 IP 内核充当 Nios II 处理器的接口,对 CFM 和 UFM 执行读、写或擦除操作。 Altera 片上闪存 IP 内核允许您使用新的配置位流访问、擦除和更新 CFM。 Altera On-Chip Flash IP 参数编辑器显示每个存储器扇区的预定地址范围。
相关信息
- Altera 片上闪存 IP 核
- 提供有关 Altera 片上闪存 IP 核的更多信息。
Altera 双配置 IP 核
- 您可以使用 Altera 双配置 IP 内核访问 MAX 10 FPGA 器件中的远程系统升级模块。 Altera 双配置 IP 核允许您在下载新映像后触发重新配置。
相关信息
- Altera 双配置 IP 核
- 提供有关 Altera 双配置 IP 内核的更多信息
Altera UART IP 核
- UART IP 核允许 MAX 10 FPGA 中的嵌入式系统与外部器件之间进行串行字符流通信。 作为 Avalon-MM 主设备,Nios II 处理器与作为 Avalon-MM 从设备的 UART IP 核进行通信。 这种通信是通过读写控制和数据寄存器来完成的。
- 该内核实现RS-232协议定时并提供以下功能:
- 可调波特率、奇偶校验、停止位和数据位
- 可选 RTS/CTS 流量控制信号
相关信息
- 串口核心
- 提供有关 UART 内核的更多信息。
通用四路 SPI 控制器 IP 核
- 通用四路 SPI 控制器 IP 核充当 MAX 10 FPGA、外部闪存和板载 QSPI 闪存之间的接口。 内核通过读、写和擦除操作提供对 QSPI 闪存的访问。
当 Nios II 应用程序扩展更多指令时, file 六角形的尺寸 file 从 Nios II 生成的应用程序会更大。 超过一定的大小限制,UFM 将没有足够的空间来存储应用程序十六进制 file。 为了解决这个问题,您可以使用 MAX 10 FPGA 开发套件上提供的外部 QSPI 闪存来存储应用程序十六进制 file.
Nios II EDS 软件应用程序设计
- 该参考设计包括控制远程升级系统设计的 Nios II 软件应用代码。 Nios II 软件应用程序代码通过执行特定指令,通过 UART 响应主机终端。
远程更新应用程序映像
- 传输编程比特流后 file 使用远程终端,Nios II 软件应用程序旨在执行以下操作:
- 设置 Altera On-Chip Flash IP 内核控制寄存器以取消对 CFM1 和 2 扇区的保护。
- 对CFM1和CFM2执行扇区擦除操作。 软件轮询 Altera 片上闪存 IP 内核的状态寄存器,以确保擦除已成功完成。
- 从 stdin 一次接收 4 个字节的比特流。 标准输入和输出可用于直接从主机终端接收数据并将输出打印到主机终端上。 标准输入和输出选项的类型可以通过 Nios II Eclipse Build 工具中的 BSP 编辑器进行设置。
- 反转每个字节的位顺序。
- 笔记: 由于Altera On-Chip Flash IP Core的配置,每个字节的数据在写入CFM之前都需要反转。
- 开始向CFM4和CFM1一次性写入2个字节的数据。 该过程持续到编程比特流结束。
- 轮询 Altera On-Chip Flash IP 的状态寄存器以确保写入操作成功。 提示消息表明传输已完成。
- 笔记: 如果写操作失败,终端将停止比特流发送过程并产生错误消息。
- 设置控制寄存器以重新保护 CFM1 和 CFM2,以防止任何不需要的写入操作。
相关信息
- 通过 Convert 编程生成 pof File开启
- 提供有关创建 rpd 的信息 files 在转换编程期间 files.
远程触发重新配置
- 在主机远程终端中选择触发重新配置操作后,Nios II 软件应用程序将执行以下操作:
- 从标准输入接收命令。
- 通过以下两个写操作开始重新配置:
- 将 0x03 写入双配置 IP 核中 0x01 的偏移地址。 此操作会覆盖物理 CONFIG_SEL 引脚并将映像 1 设置为下一个启动配置映像。
- 将 0x01 写入双配置 IP 核中 0x00 的偏移地址。 此操作会触发对 CFM1 和 CFM2 中的应用程序映像的重新配置
参考设计演练
生成编程 Files
- 您必须生成以下程序 file在 MAX 10 FPGA 开发套件上使用远程系统升级之前:
对于 QSPI 编程:
- 软件——使用 参考设计中包含的 pfl.sof,或者您可以选择创建包含您自己的 PFL 设计的不同 .sof
- pof—配置 file 从 .hex 生成并编程到 QSPI 闪存中。
- 为了 远程系统升级:
- pof—配置 file 从 .sof 生成并编程到内部闪存中。
- rpd—包含 内部闪存的数据,包括 ICB 设置、CFM0、CFM1 和 UFM。
- 地图——持有 ICB 设置、CFM0、CFM1 和 UFM 的每个存储扇区的地址。
生成 file用于 QSPI 编程的 s
生成 .pof file 对于 QSPI 编程,请执行以下步骤:
- 构建 Nios II 项目并生成 HEX file.
- 笔记: 有关构建 Nios II 项目和生成 HEX 的信息,请参阅 AN730:MAX 10 器件中的 Nios II 处理器引导方法 file.
- 在 File 菜单,单击转换编程 Files.
- 在输出编程下 file,选择程序员对象 File (.pof) 在编程中 file 类型列表。
- 在模式列表中,选择 1 位被动串行。
- 在配置设备列表中,选择CFI_512Mb。
- 在 File 名称框,指定 file 编程名称 file 你想创造。
- 在输入中 files 转换列表,删除选项和 SOF 数据行。 单击“添加十六进制数据”,将出现“添加十六进制数据”对话框。 在“添加十六进制数据”框中,选择“绝对寻址”并插入 .hex file 从 Nios II EDS 构建工具生成。
- 全部设置完成后,点击Generate,生成相关编程 file.
相关信息
AN730:MAX 10 FPGA 器件中的 Nios II 处理器启动方法
生成 file远程系统升级
生成 .pof、.map 和 .rpd file如需远程系统升级,请执行以下步骤:
- 恢复 Factory_image、application_image_1 和 application_image_2,并编译所有三个设计。
- 生成两个.pof file如下表所示:
- 笔记: 参考通过Convert编程生成.pof Files 生成 .pof 的步骤 files.
- 笔记: 参考通过Convert编程生成.pof Files 生成 .pof 的步骤 files.
- 使用任何十六进制编辑器打开 app2.rpd。
- 在十六进制编辑器中,参考.map,根据起止偏移选择二进制数据块 file。 10M50 器件的起始偏移量和结束偏移量分别为 0x12000 和 0xB9FFF。 将此块复制到新块 file 并将其保存在不同的 .rpd 中 file。 这个新的.rpd file 仅包含应用程序图像 2。
通过 Convert 编程生成 pof Files
转换 .sof files 到 .pof files,请按照下列步骤操作:
- 在 File 菜单,单击转换编程 Files.
- 在输出编程下 file,选择程序员对象 File (.pof) 在编程中 file 类型列表。
- 在模式列表中,选择内部配置。
- 在 File 名称框,指定 file 编程名称 file 你想创造。
- 生成内存映射 File (.map),打开创建内存映射 File (自动生成输出_file。地图)。 .map 包含 CFM 和 UFM 的地址以及您通过选项/启动信息选项设置的 ICB 设置。
- 要生成原始编程数据 (.rpd),请打开创建配置数据 RPD(生成输出_file_auto.rpd)。
借助内存映射 File,您可以轻松识别.rpd中每个功能块的数据 file。 您还可以为第三方编程工具提取闪存数据,或者通过 Altera 片上闪存 IP 更新配置或用户数据。 - .sof可以通过Input添加 files 转换列表,最多可以添加两个 .sof files.
- 为了进行远程系统升级,您可以保留 .pof 中原始的 page 0 数据,并用新的 .sof 替换 page 1 数据 file。 要执行此操作,您需要添加 .pof file 在第 0 页,然后
添加 .sof 页面,然后添加新的 .sof file 到
- 为了进行远程系统升级,您可以保留 .pof 中原始的 page 0 数据,并用新的 .sof 替换 page 1 数据 file。 要执行此操作,您需要添加 .pof file 在第 0 页,然后
- 全部设置完成后,点击Generate,生成相关编程 file.
对 QSPI 进行编程
要将 Nios II 应用程序代码编程到 QSPI 闪存中,请执行以下步骤:
- 在 MAX 10 FPGA 开发套件上,将 MAX10_BYPASSn 切换为 0 以旁路板载 VTAP (MAX II) 器件。
- 将英特尔 FPGA 下载电缆(以前称为 USB Blaster)连接到 JTAG 標軸。
- 在“编程器”窗口中,单击“硬件设置”并选择“USB Blaster”。
- 在模式列表中,选择 JTAG.
- 单击左侧窗格中的“自动检测”按钮。
- 选择需要烧录的设备,点击添加 File.
- 选择 pfl.sof。
- 单击开始开始编程。
- 编程成功后,无需关闭开发板,再次单击左侧窗格中的“自动检测”按钮。 您将看到 QSPI_512Mb 闪存出现在编程器窗口中。
- 选择QSPI设备,然后单击“添加” File.
- 选择.pof file 之前从 .hex 生成 file.
- 单击开始开始对 QSPI 闪存进行编程。
使用 J 对带有初始映像的 FPGA 进行编程TAG
您必须将 app1.pof 编程到 FPGA 中作为设备初始映像。 要将 app1.pof 编程到 FPGA 中,请执行以下步骤:
- 在“编程器”窗口中,单击“硬件设置”并选择“USB Blaster”。
- 在模式列表中,选择 JTAG.
- 单击左侧窗格中的“自动检测”按钮。
- 选择需要烧录的设备,点击添加 File.
- 选择app1.pof。
- 单击开始开始编程。
使用 UART 更新图像和触发重新配置
要远程配置 MAX10 FPGA 开发套件,请执行以下步骤:
- 笔记: 在开始之前,请确保满足以下条件:
- 板上的 CONFIG_SEL 引脚设置为 0
- 您的开发板的 UART 端口已连接到您的计算机
- 打开 Remote Terminal.exe,远程终端界面将打开。
- 单击设置,将出现串行端口设置窗口。
- 设置远程终端的参数以匹配 Quartus II UART IP 核中选择的 UART 设置。 设置完成后,单击“确定”。
- 按开发套件上的 nCONFIG 按钮或在 Send 文本框中键入 1,然后按 Enter。
- 终端上会出现操作选择列表,如下图:
- 笔记: 要选择操作,请在“发送”文本框中键入数字,然后按 Enter 键。
- 终端上会出现操作选择列表,如下图:
- 要使用应用程序映像 1 更新应用程序映像 2,请选择操作 2。系统将提示您插入 CFM1 和 CFM2 的起始和结束地址。
- 笔记: 地图上显示的地址 file 包括 ICB 设置、CFM 和 UFM,但 Altera 片上
- Flash IP只能访问CFM和UFM。 因此,映射中显示的地址之间存在地址偏移 file 和 Altera On-Chip Flash IP 参数窗口。
- 根据Altera On-Chip Flash IP参数窗口指定的地址键入地址。
- 输入结束地址后,擦除将自动开始。
- 输入结束地址后,擦除将自动开始。
- 擦除成功后,会提示进入烧写.rpd file 对于应用程序图像 2。
- 要上传图像,请单击“发送”File 按钮,然后选择仅包含应用程序映像 2 的 .rpd,然后单击“打开”。
- 笔记: 除了应用程序映像 2 之外,您还可以使用想要更新到设备中的任何新映像。
- 更新过程将直接开始,您可以通过终端监控进度。 操作菜单会提示完成,您可以选择下一步操作。
- 要触发重新配置,请选择操作 4。您可以观察指示加载到设备中的不同图像的 LED 行为。
图像 | LED 状态(低电平有效) |
工厂形象 | 01010 |
应用图像 1 | 10101 |
应用图像 2 | 01110 |
文档修订历史
日期 | 版本 | 更改 |
2017 年 XNUMX 月 | 2017.02.21 | 更名为英特尔。 |
2015 年 XNUMX 月 | 2015.06.15 | 初始版本。 |
文件/资源
![]() |
使用 Nios II 处理器通过 UART 的英特尔 MAX 10 FPGA 设备 [pdf] 用户指南 MAX 10 FPGA 器件通过 UART 使用 Nios II 处理器、MAX 10 FPGA 器件、通过 UART 使用 Nios II 处理器、通过 UART、Nios II 处理器 UART、Nios II、处理器 UART |