单位文秘网 2022-02-20 08:16:05 点击: 次
摘要:本文提出一种基于Nios II多片FPGA远程更新设计方法,通过以太网和串口实现对FPGA配置文件的更新。重点介绍了设计与实现方案、硬件设计、软件设计。该方案解决了传统程序在线升级操作复杂、距离短等难以满足相关工程需求的问题,使得FPGA程序升级方便快捷,提升了工作效率。
关键词:多处理器 Nios II 远程更新
中图分类号:TM929.5 文献标识码:A 文章编号:1007-9416(2014)01-0163-02
FPGA(Field Programmable Gate Array)具有规模大、集成度高、可靠性高的优点,又克服了普通ASIC周期长、投资大、灵活性差的确点,已经逐步成为数字电路的理想选择[1]。随着FPGA规模和性能的不断提高,使得FPGA器件得到了广泛的应用。有时一个机箱甚至一块板子就有几片FPGA,而传统的FPGA配置方法灵活性差,必须为每片要升级的FPGA重新连接下载电缆来对存储器件进行烧写,有时不得不将设备拆散来进行升级更新,操作十分繁琐,效率低下。
Altera公司的SOPC(System On Programmable Chip)是一种灵活、高效的Soc解决方案,是一种新的软硬件协同设计的系统设计技术。它将处理器、存储器、PLL、I/O接口等功能模块集成在一个FPGA上,构成一个可编程的Soc[2]。
本文提出一种采用基于Nios II软核架构的设计方法,在每片FPGA芯片中设计一个CPU来处理远程发送过来的配置文件,将配置文件写入自己的配置芯片中。其基于Altera公司的SOPC Builder开发工具,能够快速地设计并实现可配置、可裁减的多软核系统[3],具有高度集成、可重配置与性价比良好等优点。利用FPGA内部的硬件可编程特性,可提供很强的灵活性和可扩展能力,从而大幅度提高系统的工作效率,满足系统需求。
1 总体设计
1.1 系统原理
FPGA远程系统更新是指远程通过网络或其他信道将升级软件发送给系统,嵌入式系统存储这些数据,然后用这些数据重新配置FPGA器件完成系统升级。
系统功能组成框图如图1所示。从图中看出,该系统用到了3片FPGA,每片FPGA都配了一片EPCS64,用来存储FPGA的配置文件。首先将本地配置文件转换成适合远程更新的比特流文件,使用TFTP客户端软件将配置文件通过以太网及网络接口芯片W5100发送到主FPGA,主FPGA的NiosII软核根据协议解析该配置文件是不是自己的配置文件,如果是则写入自己的配置芯片中,否则是编号为几的FPGA的配置文件就通过串口发送给该FPGA,相应的FPGA的Nios II软核则接收下来写入它们各自的配置芯片,这样就完成了FPGA配置文件的更新。
1.2 Nios II处理器系统的设计
Altera公司提供基于图形界面的系统定制工具SOPC Builder,可以很方便的进行片上系统的定制。它包含了很多常用接口的IP核,从SOPC元件库中选中后双击即可轻松添加进系统中,并能对接口的一些常用属性进行配置[4];对于一些SOPC元件库内不支持的模块,可以使用硬件描述语言设计实现其功能,并使其总线接口满足Avalon总线时序,从而作为用户自定义模块连接到总线上。本系统的处理器及外设架构如图2所示。
系统包括CPU、网络接口芯片W5100、JTAG_UART、TIMER、PIO、EPCS_FLASH_CONTROL、ON_CHIPMEMORY、UART等接口。除W5100之外其它在SOPC元件库中都有对应的IP核,可直接添加到系统中。W5100是我们自定义的模块,根据其手册使用硬件描述语言描述其接口,利用Component Edit定制其时序。W5100用来解析网络协议,是我们进行FPGA远程更新的关键部件。JTAG_UART用来打印调试信息,以便于我们开发过程中的调试。TIMER和PIO用于定时点亮LED灯,以便于验证我们的程序是否下载成功。EPCS_FLASH_CONTROL是FPGA配置芯片的接口,用于下载我们的配置文件。ON_CHIP_MEMORY是片上RAM,用于Nios II程序的运行。UART是串口,用来将其它FPGA的配置文件发送出去。从FPGA不需要接收网络数据,只需要接收主FPGA通过串口发来的数据,因此从FPGA的SOC构成少了一个W5100组件。对于系统中各模块的访问地址,SOPC Builder会自动分配基地址,并根据该模块与Avalon总线接口的地址宽度计算模块占用的地址空间,生成结束地址。与同一条总线相连的各模块使用的地址区域不能有相互重叠的部分,否则会引起冲突。SOPC Builder也会为有中断信号接口的模块自动分配中断号,软件设计时使用该号码进行中断控制。同一条总线内相连的各模块使用的中断号不能有重复,否则也会引起冲突。
1.3 软件设计
上位机软件与主FPGA的软件之间采用TFTP(Trivial File Transfer Protocal)传输配置文件。TFTP是一个传输文件的简单协议,运行在UDP(用户数据报协议)上,适用于客户机和服务器之间不需要复杂的交互环境。TFTP协议传输是由客户端发起的,当需要上传文件时,由客户端向TFTP服务器发送写请求报文,然后向服务器发送数据报文,并接收服务器的确认报文。
嵌入式系统内多个微控制器之间通过各种接口传输数据时被噪声影响的问题不可避免。为提高数据传输的可靠性,需要对传输过程进行差错控制[5,6]。主FPGA与从FPGA之间的数据传输采用CRC(Cyclic Redundancy Check)协议。CRC循环冗余校验码是一种线性分组码,在不增加过多冗余位的情况下就能具备较强的检错与纠错能力,提高了数据传输的可靠性。
2 关键问题及解决方法
2.1 网络接口芯片W5100
传统的网络接入设备大多采用软件方法实现,用软件设计TCP/IP协议栈,对开发人员软件能力要求很高。由于网络协议的复杂性,软件实现的协议稳定性欠佳,因此直接采用硬件协议栈实现网络接入具有设计简单、应用灵活的特点[7,8]。
W5100是由WIZnet公司退出的一款多功能的单片网络接口芯片,内部集成有10/100M以太网控制器,主要应用于高度集成、高稳定、高性能和低成本的嵌入式系统中。支持全双工或半双工模式的应答模式,通信速率最高可以实现25Mbps,它将TCP/IP协议栈、以太网的MAC机制模块和PHY模块三种功能融合为一体,并硬件化支持ARP、TCP、PPPoE、ICMP、UDP、以太网等协议类型,大大减轻了设计师的软硬件开发的复杂度,同时提供了多种总线接口方式(直接总线接口、间接总线接口、SPI总线),便于连接各种类型的CPU,可以满足不同应用场合的需求。
在本设计中,我们采用了直接总线接口的访问方式,采用15位地址线、8位数据线、/CS、/RD、/WR、/INT等信号线,定制用户逻辑外设W5100组件。
2.2 W5100组件的建立
SOPC Builder提供了一个元件编辑器,通过这个元件编辑器我们就可以将我们自己写的逻辑封装成一个SOPC Builder元件了。我们的W5100是基于Avalon总线中的Avalon Memory Mapped Interface(Avalon-MM),首先我们需要选择信号线及信号类型
然后我们将Interfaces标签页中Slave addressing设置为NATIVE,选择静态地址对齐,根据系统时钟及W5100时序图,设置readwait和writewait为3个周期,其余默认。
3 测试与改进
工程应用中选择了Altera公司的三片Cyclone III EP3C80型FPGA芯片,在此芯片上设计构建了Nios II架构的SOPC系统。结合相关外围设备,设计完成了多片FPGA远程更新的设计。
首先连接好网线,配置好IP地址。利用TFTP客户端软件如图所示,选择转换好的配置文件,然后选择要烧写的地址,点击编程,配置文件即下载到相应的配置芯片中。
通过测试发现,配置芯片的下载速度主FPGA较快,从FPGA较慢。因为主FPGA连接的是网口,不需要再转串口传输,直接写入配置芯片,而从FPGA程序的更新则需要通过网口到主FPGA,主FPGA再通过串口到从FPGA,由于串口速率的限制,速度较慢,时间较长,经过提高串口速率,2M左右的配置文件都可在5分钟之内传送完毕,大大提高了效率。
4 结语
本文以FPGA芯片为核心,提出了基于Nios II多片FPGA远程更新的方法,解决了传统方法升级程序操作复杂、距离短等不满足工程需求的问题。通过采用网络接口芯片W5100大大减轻了软件以及硬件电路的复杂性,降低了成本;Nios II的软硬件自由配置空间极大,其编程结构清晰、扩展方便,可以方便地调整系统和不断提升系统性能。
参考文献
[1]王灵芝,林培杰,黄春晖. FPGA的配置及其接口电路的设计[J].电子测量与仪器学报,2007,21(2):109-112
[2]周立功, SOPC嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2006.
[3]周博,邱卫东,陈燕,等.挑战SOC—基于Nios的SOPC设计与实践[M].北京:清华大学出版社,2004.
[4]Altera Corporation.Quartus II Version 9.0 Handbook Volume 5:Embedded Peripherals[Z].2009.
[5]刘星华.CRC校验在单片机系统中的软件快速实现[J].福建工程学院学报,2007,5(1):76-78.
[6]杨利娟,陈多观.循环冗余校验CRC的分析及硬件实现[J].苏州科技学院学报:自然科学版,2010,27(4):51-53.
[7]刘义才,林飞宇.基于W5100的远程控制设计[J].现代电子技术,2011,34(5):103-105.
[8]王卫亚,张大跃.计算机网络原理、应用和实现[M].北京:清华大学出版社,2007.
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-166-100256-1.html
下一篇:论电力运行维护管理工作
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用