摘要:传统测试仪器普遍存在生产出来后普通用户难以改变其相对固定的功能,无法满足多样性的测量。基于此本文开发了基于FPGA的可重构智能仪器,利用SOPCBuilder软件在FPGA中嵌入了Nios II处理器系统,采用可重构的应用框架技术利用HAL系统库进行软件设计。解决了由于测试对象复杂、测试设备多、测试资源利用率低所造成的测试系统的生产、维修成本过高,资源浪费等问题。
0 引言
传统测试系统由于专用性强、相互不兼容、扩展性差、缺乏通用化、模块化,不能共享软硬件组成,不仅使开发效率低下,而且使得开发一套复杂测试系统的价格高昂[1]。目前,传统的分析仪表正在更新换代,向数字化,智能化方向迈进[2]。改变以往由仪器生产厂家定义仪器功能、用户只能使用的局面,使用户可自定义仪器、根据不同测试需求对仪器进行重构,已经成为现代测试技术发展的一个重要方面。由于其能够大大减少测试设备的维修成本、提高资源利用率,可重构仪器技术已引起高度重视。
1 可重构技术
目前对可重构性还没有形成公认的定义。可重构性一般是指在一个系统中,其硬件模块或(和)软件模块均能根据变化的数据流或控制流对结构和算法进行重新配置(或重新设置)。
在可重构系统(Reconfigurable System)中,硬件信息(可编程器件的配置信息)也可以像软件程序一样被动态调用或修改。这样既保留了硬件计算的性能,又兼具软件的灵活性。尤其是大规模可编程器件FPGA的出现,实时电路重构思想逐渐引起了学术界的关注[3]。可重构的实现技术又很多种方式,包括DSP重构技术、FPGA重构、DSP+FPGA重构、可重组算法逻辑体系结构、可进化硬件(EHW)、本地重构/Internet远程重构、SOPC/SOC重构。
可重构技术具有以下优点:
1)可重构技术能够高效地实现特定功能。可重构逻辑器件上都是硬连线逻辑,它通过改变器件的配置来改变功能。2)可重构技术能够动态改变器件配置,灵活满足多种功能的需求。3)可重构技术适合恶劣工作环境下的应用。利用可重构逻辑器件的一个优势是不需要微处理器必需的散热系统,大大减少了电子产品占据的空间。4)可重构技术具有强大的技术支持来加速产品开发。5)可重构技术的使用能够大大降低系统成本。另外,对于不会同时被使用的功能,可考虑利用动态重构技术在不同的需求时段里分别实现,做到“一片多用”,节省了资源、空间和成本。
2 可重构智能仪器硬件设计
2.1 可重构仪器硬件结构
可重构智能仪器技术将先进的微电子技术、开云棋牌官网在线客服技术和微处理器技术引入仪器设计领域,通过构建通用的硬件平台,最终由用户通过选择不同的软件来实现不同的仪器功能,因此软硬件在可重构仪器设计技术中同样关键。
可重构智能仪器硬件结构由Nois II处理器系统(包括可重构FPGA芯片、FPGA片外系统)和计算机组成,其硬件结构框图如图1所示。
可重构FPGA选用Altera公司Cyclone II系列中的EP2C35F672C6芯片,片外系统主要包括SDRAM存储器、Flash存储器、模数转换芯片、数模转换芯片、EPC16增强型配置芯片、MAX232芯片等组成。片外系统实现数据的采集、预处理、存储和输出等功能。
2.2 控制核
在基于FPGA的可重构智能仪器中,EP2C35F672C6是整个系统的核心,为了实现FPGA与其他芯片、器件的正确通信、数据交换,需要在FPGA上配置Nios II软核处理器以及其他控制器核。
(一) Nios II嵌入式处理器的设置。首先在Quartus II下建立一个Project,在SOPC Builder中选择组件列表中的Nios II Processor-Altera Corporation,考虑到芯片的性能以及资源利用率,选择Nios II/s(标准型)CPU,在Cache & Tightly Coupled Memories标签下设置Instruction Cache为4KB。在JTAG Debug Module标签下选择Level 3,可设置2个硬断点、2个数据触发、指令跟踪和片上系统。整个Debug模块将占用2400~2700个LE,4个M4K。
(二) 添加SDRAM控制器内核。在SOPC Builder组件选择栏中选择Avalon Components→Memory→SDRAM Controller,加入SDRAM控制器核,。在Data Width(数据总线宽度)下拉列表框中选择16Bits,其余设置不变,因为都满足SDRAM芯片IS42S16400的参数要求。Timing选项卡的参数也满足芯片要求,不必修改。
(三) 添加FLASH控制器。在对硬件系统进行编程控制时,Flash用于存储应用程序。在SOPC Builder的组件选择栏中选择Avalon Components→Bridge→Avalon Tri-State Bridge,加入Avalon三态总线桥;在SOPC Builder的组件选择栏中选择AvalonComponents→Memery→Flash Memery(Common Flash Interface),添加CFI控制器。
( 四) 定时器设置。在SOPC Builder组件选择栏中选择Avalon Components→Other→Interval timer,加入定时器核。定时器的硬件配置选项会影响定时器的硬件结构,SOPC提供了简单周期中断配置、完全功能配置和看门狗配置三种硬件配置。
(五) 添加SPI核。采用的A/D转换芯片和D/A转换芯片都是基于SPI总线进行数据传输的,要实现Nios II系统对转换芯片的控制必须添加SPI核。在SOPC Builder组件选择栏中选择Avalon Components→Communication→SPI(3 Wire Serial),配置SPI核。由于用到的模数转换芯片AD7810和数模转换芯片AD5611对于Nios II系统来说都是从SPI器件,所以在FPGA中添加两个主SPI核分别控制A/D和D/A转换芯片。
2.3 可重构配置文件生成
在完成可重构智能仪器的各个控制器核之后,要生成相应的配置文件,才能配置FPGA芯片,使其实现各种功能。
配置是对FPGA的内容进行编程的一个过程。目前大部分FPGA都是基于SRAM工艺 的,而SRAM工艺的芯片在掉电后信息就会丢失,需要外加专用配置芯片,在上电时,由这个专用配置芯片把配置数据加载到FPGA中,之后FPGA就可以正常工作了。
在被动模式(PS)方式下,FPGA处于完全被动的地位。FPGA接收配置时钟、配置命令和配置数据,给出配置的状态信号以及配置完成指示信号等。PS配置时序如图2所示:
根据SOPC Builder中对FPGA添加的各种控制器核,利用Quatus II软件例化Nios II处理器,生成了完整的FPGA内部顶层模块图,如图3所示。然后利用引脚规划器Pin Planner对其进行引脚分配。最后用进行Compilation,生成.sof和.pof配置文件,完成硬件设计。
2.4 外围电路设计
外围电路设计包括存储器设计、AD转换电路设计、DA转换设计、显示电路设计、开关量DI、DO设计和RS232通信设计等。
仪器上的存储器包含1片8M字节的SDRAM和一片32M字节的FLASH存储器。限于篇幅SDRAM(IS42S16400)与EP2C35F672C6连接的引脚、FLASH存储器(AT49BV163)与EP2C35F672C6连接的引脚分配这里不再赘述。
A/D转换电路采用了AD7810芯片、DA转换电路采用AD5611芯片。
DI、DO均为16路,数字端口满足标准TTL电气特性。数字量输入最低的高电平为2V,数字量输入最高的低电平为0.8V;数字量输出最低的高电平为3.4V,数字量输出最高的低电平为0.5V。DI、DO部分的电路如图4所示:
图4 DI、DO部分电路
3 可重构智能仪器软件设计
3.1 可重构仪器软件结构
可重构智能仪器的软件结构如图5所示。
系统软件模块库:包含软件控制模块、RS232通讯模块、模数转换模块、数模转换模块、显示模块和DI、DO开关量模块。通过软件控制模块选择其他的模块进行组合就可以实现不同的软件功能,从而达到重构的目的。
HAL程序库实际上包含了各种不同的硬件驱动,包括MAX232驱动、AD转换芯片驱动、DA转换芯片驱动、FPGA的I/O引脚驱动等。
通过选择软件模块库中的软件模块,就可以调用HAL程序库中相应的硬件驱动,从而实现上层应用程序对底层硬件的控制。软件模块的可重构性对应了底层硬件的可重构性。
3.2 基于HAL的可重构智能仪器软件开发
硬件抽象层(HAL,Hardware Abstraction Layer),是指在应用程序和系统硬件之间的一个系统库(System Library),为嵌入式系统与硬件通信的程序提供简单的设备驱动接口。SOPC Builder是一个自动化的SOPC硬件系统工具。基于HAL的软件系统由两个Nios II工程所构建,用户的程序包含在一个工程中(用户应用工程),该工程依赖一个独立的系统库工程(HAL系统库工程)。用户应用工程包含开发的所有代码,编译该工程可以产生可执行文件。HAL系统库工程包含涉及处理器硬件接口的所有信息。系统库工程依赖于由SOPC Builder产生的扩展名为.ptf的Nios II处理器系统。
由于该工程的依赖结构,如果SOPC Builder生成的系统改变(即.ptf文件已修改),则Nios II IDE管理HAL系统库并且修改驱动配置来正确的反应系统硬件。HAL系统库将用户程序与底层硬件变化分离开来,这样,用户可以不用考虑自己的程序是否与目标硬件匹配来开发和调试代码,简而言之,基于HAL系统库的程序和目标硬件是同步的。
由于HAL系统库中包含有各种不同的硬件驱动,用户可以根据特定的设计需要调用HAL系统库中的相应硬件驱动,从而实现对不同硬件系统的控制,来达到可重构设计的目的。本文所设计的基于HAL系统库的可重构智能仪器软件系统如6示。在系统软件控制界面中选择了某一功能后,该功能就会调用HAL程序库中相应的一些硬件驱动,从而实现对硬件设备的控制。
4 系统分析
基于FPGA的可重构智能仪器主要是针对目前测试仪器生产出来后功能不能改变、维护 费费用过高、资源浪费严重等问题。提出基于FPGA的可重构智能仪器的硬件结构和软件结构,实现了八种不同的功能,借鉴虚拟仪器的思想,开发了基于FPGA的可重构智能仪器演示系统,该系统具有A/D采集、D/A输出和开关量控制三种功能。
本文作者创新点:基于SOPC技术进行可重构设计;采用了FPGA增强型配置芯片EPC16;软件重构采用了应用框架的复用技术。