FPGA数据

2024-07-22

FPGA数据(精选10篇)

FPGA数据 篇1

随着网络通信技术的发展,对数据的通信、处理和存储的安全性和可靠性要求越来越高,数据加密是信息安全的重要手段。数据加密标准(DES)[1]是一种对称的“块加密”。1976年被美国政府采用,随后又被美国国家标准局和美国国家标准学会承认,发展至今已成为工业界的标准密码算法,目前广泛应用于卫星通信、网关服务器、视频传输、数字电视接收、多媒体数据传输[2]等方面。DES加密算法可采用软件、固件和硬件的方法实现。软件实现的DES加密算法容易改变,但是其数据处理速率低[3];专用集成电路ASIC可提供高性能算法但灵活性差;而FPGA实现的加密算法具有对同一个FPGA使用不同算法的重新编程可增加其灵活性,使用同一个算法的不同版本和改变结构参数实现系统升级[4]。因此利用FPGA实现DES加密算法是一种理想选择并具有实际的应用价值。本文提出一种DES加密算法的硬件实现方法。

1 DES加密算法原理

DES算法是在64位密钥控制下由64位数据组成的加密和解密块。解密必须与加密使用相同的密钥,解密过程是加密过程的逆过程。要加密的块首先经过初始IP变换,然后经过复杂的密钥函数计算,最后经过初始变换的IP-1逆变换。加密结构如图1所示。具体的加密过程如下:

64位数据的明文输入后经过IP表初始置换后输出64位的数据。将初始变换后的64位明文分为两部分L和R,长度分别为32位,然后数据通过如图2所示的n轮的处理。每一轮的输入Li-1和Ri-1都来自上一轮的输出,子密钥K由初始密钥K扩展而来。每一轮变化的结构都完全相同。左边一半数据需要执行一次置换操作。而右边一半数据执行一次“轮函数F”,然后与左边一半数据进行异或,最后再将数据的两个部分交换。即

经过16轮后,得到L16和R16,将两部分合起来后,最后再进行初始变换的逆变换,即得到所需的密文。

2 子密钥生成

子密钥的生成流程图如图3所示。

输入的64位密钥经过PC-1变换为56位。然后将此56位密钥平分成分别为28位的C0和D0,将C0和D0分别循环左移一位得到C1和D2,将C1和D1合在一起,再经过PC-2变换,得到子密钥K1,之后再将C1和D1分别循环左移,得到C2和D2,再将C2和D2合在一起,再经过PC-2变换,得到子密钥K2,依此类推,将Ci-1和Di-1分别循环左移,得到Ci和Di,再将Ci和Di合在一起,再经过表PC-2变换,得到48位的子密钥Ki,共经过16次迭代,分别得到每次的子密钥Ki(i=1~16)。子密钥生成的代码示意如下:

在进行循环左移时,每次左移的位数都不一样,左移次数和迭代次数如表1所示。

移位实现代码如下所示:

3 轮函数F计算

F函数的计算过程如图4所示,将32位的数据经过E表扩展置换后形成48位的数据,然后与各轮的子密钥异或,然后通过S盒的非线性变换,S盒共有8个,将48位数据分成8个6位b1b2b3b4b5b6数据,以b1b6为行号,b2b3b4b5b6为列号,输入给每个S盒,分别输出4位数据。这样将F函数扩展出来的48位数据减少为下一轮需要的32位数据。

S盒的置换算法可采用非ROM方式[4]和ROM方式[5]实现,本文使用ROM方式实现,即如下的第4种。具体有以下几种:

1)根据S盒的工作原理,可直接使用输入为六变量,输出为四变量的case语句进行描述,构成一个4位26个存储空间的表。然而这样的语句虽然可读性很强,但综合的效率往往不高,占用资源过多,速度也比较低,使S盒成为系统速度的瓶颈。

2)为了利用FPGA内部的四输入查找表结构,可将S盒的逻辑描述进行重新设计,即先固定2个变量,而使另外4个变量发生变化。在实现时使用双重case语句,外层使用两个变量,对应S盒输入的第1、6位。内层使用4个变量,对应S盒输入的第2、3、4、5位,形成一个6输入、4输出的查找表。该方案可充分利用FPGA的内部资源,提高综合效率,加快算法执行速度。

3)另一种方法就是根据S盒列出每位输出的真值表,用卡诺图进行化简,得到每一位输出的逻辑表达式,再用VHDL语言进行描述。为了节省资源,化简时应考虑多个输出函数之间的乘积项共用问题。采用该方案实现的S盒在资源利用率和速度的提升上都有很大的改进。

4)首先将48位输入分为8组,每组6位。然后用这6位数据查找一个6输入的置换表,该置换表就称为S盒。在实现过程中用一个只读存储器(ROM)来存储所有的置换模式。置换模块将块索引和输入数据结合起来构成一个地址,用来查找S盒中相应的置换值。地址的计算由函数smap执行,这样在置换函数中,分别调用8次smap函数执行8次置换。为了优化数据路径,可将S盒分成8个更小的ROM,这样可以并行访问。置换函数如下所示:

4 仿真结果

DES加密的芯片设计采用VHDL语言进行描述,代码包含des_ip、des_ip_1、key_pc_1、des_e、key_pc_2、des_p共6个部件以及key_rotate和substitute两个函数,依次分别完成初始变换、最终逆变换、64位密钥到56位的压缩转换、32位到48位的压缩置换、48位到56位的置换、32位到32位的变换以及子密钥的移位运算和S盒轮函数运算。代码在Quartus II开发环境中编译完成,以Altera公司Cyclone EP1C12F324C6为目标器件,逻辑综合结果表明系统共占用3968个逻辑单元(LE)。

假设需要加密的明文分别为4E6F772069732074、68652074696D6520、666F7220616C6C20,所用密钥为0123456789ABCDEF,经过初始置换,16轮迭代加密,逆初始置换,最终的加密密文分别为:3FA40E8A984D4815、6A271787AB8883F9、893D51EC4B563B53,其时序仿真结果如图5所示,仿真结果表明,系统完全实现DES算法的加密功能。

摘要:文章对DES加密算法进行了详细的分析,给出了采用VHDL描述基于FPGA实现DES加密算法系统的设计过程和仿真结果。该算法在密钥生成、S盒的处理中采用了并行处理的方式,克服了传统DES流水线实现方式的缺点,进一步提高了系统的处理速度。

关键词:DES数据加密标准,FPGA,VHDL

参考文献

[1]FIPS 46-3.Data Encryption Standard(DES),National Institute of Standards and Technology(NIST)[S/OL].http://csrc.nist.gov/cryptval/des.htm.

[2]肖新帅,刘洪鹏.基于FPGA的DES算法的并行加密技术[J].科技信息,2010(25).

[3]Biham E.A fast new DES implementation in software[EB/OL].http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.52.5429&rep=rep1&type=pdf.

[4]王简瑜,张鲁国.基于FPGA实现DES算法的性能分析[J].微计算机信息,2007,23(8).

[5]Wilson P.FPGA设计实战[M].杜生海,译.北京:人民邮电出版社,2009.

FPGA数据 篇2

在module内部编写中,最基本块是initial,always,以及assign块(此外还有一些UDP原语,在行为级暂且不谈),其他语句都要包含在这些块里面。这其中,initial块是不可综合语句,可以用来编写testbench,这里面的内容在程序运行时只执行一次;assign语句是在不用寄存器的情况下直接编写组合逻辑;always块是最常用的块,其语法格式是always @(*);其中括号里称为敏感列表,即对于组合逻辑而言,必须是所实现逻辑的所有输入变量,意思是当组合逻辑的每一个变量发生变化,结果立刻发生变化(这与实际情况一致,对于任何组合逻辑,输入变化,输出立刻变化)。对于时序逻辑,常为

always@(posedge/negedge clk),指在时钟上升沿/下降沿到来时,输出才根据那一时刻的输入来决定输出结果。

编程思想:

这一部分是我的心得体会,一般讲verilog的书肯定不会讲这个,因为这部分感觉的东西比较多,完全靠理解应用,没什么固定模式,呵呵,玄了点。不废话了,开始切入正题。Verilog归根到底还是编程,同时它是对电路的编程,所以就可以利用这两个特点,充分利用高级语言编程(例如C)的思想和数字电路的知识,就会很大程度上帮助你。首先牢记,编写verilog依据的是时间轴,根据时间顺序确定各种信号何时进入你的电路,可以在编写时先把几个主流信号(即贯穿于整个系统的信号,比如数据流信号)用always写出来,这些信号就是你的基准,其他控制信号根据所处的位置在介入这些主流信号,分别用 always

模块写入。这样,这种时间轴顺序跟C的编程思想就一致,在编写这种顺序性信号时,带着C的思想,基本就容易的多。同时,verilog有个很重要的电路特点,就是在每一时刻,同时会有多个电路有信号(即在运行),这样就必须从传统的顺序语言中跳出来(跳出C的思想),然后进入数字电路的思想,即你的编程要时刻跟实际电路模型联系到一起,比如A<=B,C<=A,即可以想象成两个D触发器,其中C的输入就是A的输出,这样当时钟沿到来时,两个D触发器同时运行,B的值就给了A,而A的输出就给了C,不考虑电路延时,就可以认为二者在时间轴的同一时刻运行成功,A在此时刻的值为B,C 在此时刻的值就是A前一时刻的值。这里只是举了简单的例子,但是时间轴的思路、高级语言编程思想和数字电路模型化思想以及这几个思想的转换对于编程来说帮助很大,帮你在编程时头脑时刻冷静,即使有很多信号,也会让你从全局把握整个电路,避免头脑一团糟。

关于复用:

复用对于硬件设计来说,尤为重要,在实现功能的前提下,电路比的就是主频和资源,而资源的减少思路就是复用。比如多次调用一个子函数A,如果直接写,在结构上就是这个子函数电路块A的复制,电路完成后就会看到你调用了几次A函数,你的结构中就有几个一模一样的A电路,当你的A电路本身资源很大,而且你调用的次数很多时,就很少有FPGA能装的下了。这当然跟我们的思想不符,我们只是想让整个电路中只有一块电路A,只不过把A电路在不同时刻用了几次而已,这时就要用到电路复用的思想。电路复用并不神秘,简单来讲,就是把控制端放在A电路两边,用计数器之类的东西,控制在时间轴的不同时刻把值写入A和从A输出端读取值。补充一点,对于电路的同步,计数器是一个很好的东西,因为本身计数器资源并不很大,用它来对于相差多个周期的信号进行同步,非常实用。但是,当信号相差的时间过于大,计数器的计数规模

就变的不可接受,这时就要用到状态机划分状态的方法进行同步了。有了同步,复用就变得简单的多。

关于task:

FPGA数据 篇3

关键词封装协议MSTPMTUGFP

中国散裂中子源实验的简图如图1所示,其原理是把中子束打在被测样品(例如新药品或机翼材料)上,探测被反射的中子位置就能计算出样品的内部结构图像,其特点如下: A/D采集通道多,每个通道的数据带宽高,且需要把现场采集的数据传到远程服务器上。因此,要求数据传输模块既要成本低、微型化、具备网络功能,也要数据带宽高。

单片机或ARM具有微型化、低成本的特点,但数据带宽和灵活性不满足本项目;工控计算机数据处理能力强,有网络接口,但是体积过大,成本高;传统高能物理实验采用的VME系统也因体积大、数据带宽有限而不适合用在中国散裂中子源实验上。

FPGA有很高的性能,而且内部还集成PowerPC处理器、千兆网MAC等硬核资源,这使得在一块FPGA上就能构建一个完整的片上系统,使整个系统体积可以做的很小。在FPGA片内PowerPC硬核上移植嵌入式linux操作系统,用软件来实现网络传输协议可以解决用FPGA硬件描述语言实现TCP/IP协议难度大的问题。FPGA的高性能、高可靠性和Linux的灵活性完美结合在一个片内,能较好地满足本项目的需求。

1系统的总体构成及层次

本系统可以分为5个层次,如图2所示。

最低层为外围电路硬件层,每一层都是建立在其下一层之上。

2系统外围电路的简介

本文在硬件上采用了实验室自行设计的电路板,用的是带PowerPC的xilinx Virtex4 FPGA,电路如图3所示。

3SOPC的构建

SOPC(System on a Programmable Chip)即可编程片上系统,把整个系统放到一块硅片上,是一种特殊的嵌入式系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。

3.1开发工具

Xilinx 公司提供了FPGA开发工具EDK(Embedded Development Kit),它带有大量可配置可定制的IP核,可以大大提高设计的效率,使设计者把主要精力放在设计系统架构上,能很方便的对FPGA进行模块化的重构和裁剪,提高设计的灵活性,减少了外围器件,符合SOPC的思想。

3.2SOPC的总体构成

SOPC系统构建完成后的框图如图4所示,其中PowerPC405是已经固化在FPGA内部的硬核,工作频率设为300MHz,配置时要选择cache选项,否则运行嵌入式Linux会很慢。PowerPC405通过PLB(Process Local Bus)总线核和各个IP模块互联构建了一个完整的SOPC系统。

3.3内存端口的设置

MPMC(Multi-Port Memory Controller)是DDR2内存控制器的IP核,它最多可以接八个数据端口,这样的好处是多个设备都可以通过各自的端口共享内存,本论文使用了四个端口:port0和port1都通过plb总线连接在PowerPC上,分别用于传输指令和数据,port2端口采用的是NPI(Native Port Interface)接口,用于接收A/D模块传输过来的用户数据,port3采用SDMA(Soft Direct Memory Access)接口,通过locallink总线和千兆网IP核相连。在对MPMC配置时要根据内存的型号、大小等实际参数来设置。

3.4用户自定义数据接口IP核

开发工具虽然提供了一些常用的IP核,但是对于一些特定要求的逻辑,需要用户自己开发。由于从A/D采集板传送过来的数据速度很大,所以本论文在MPMC 的port2上采用NPI接口把A/D模块传过来的数据直接送入DDR2中。需要用硬件描述语言编写基于NPI接口的逻辑,并且还要编写基于PLB总线的IP核来实现对数据传输的控制,例如数据传输开始与停止、握手方式、数据包的大小等等。

3.5千兆三态以太网硬核的配置

三态以太网TEMAC(Tri-Mode Ethernet Media Access Controller)是嵌在FPGA内部的硬核。本论文通过LocalLink总线使其连在内存控制器MPMC上,采用SDMA方式,使得数据直接从内存到网络接口而不必经过PowerPC的搬运, 这样在很大程度上减轻了CPU的负担,提高了数据传输速度。

4板级支持包的生成

4.1板级支持包工具的选择和设置

先在http://git.xilinx.com/网站上下载device-tree.git,它是板级支持包(BSP)生成工具。解压后放在EDK安装目录下的EDKswlibbsp,之后点击Software→Software Platform Settings就可以发现并选择它了,如图5所示。

在device-tree下要把 bootargs的设置成console=ttyUL0,而不是默认的console =ttyS0,否则超级终端将没有输出。这是因为我们在调试时需要RS232串口作为超级终端,用的是XPS UART Lite核,但板级支持包默认的却是UART16500核。

4.2dts(device tree)文件的生成

xilinx.dts文件是板级支持包工具device tree生成的,它记录了硬件信息。正是这个文件的存在操作系统才能知道本系统有哪些硬件及其属性。在EDK菜单中选择Software→generate Libraries and BSP就会生成xilinx.dts文件。

5嵌入式Linux的移植

5.1安装用于PowerPC的交叉编译链并设置环境变量

先下载并安装德国DENX公司提供的开发环境编译套件ELDK4.1,用source 命令设置路径和交叉编译环境变量,再用export ARCH=powerpc命令使其支持PowerPC架构。

5.2准备Linux内核及根文件系统

这不是一般的Linux内核,而是专门针对Xilinx FPGA的linux-2.6-xlnx.git。可以到git.xilinx.com网站下载最新版本的Linux内核。在http://xilinx.wikidot.com/网上下载根文件系统镜像压缩文件ramdisk.image.gz,把ramdisk.image.gz拷贝到内核文件夹的arch/powerpc/boot文件夹中。

5.3准备 device tree文件

需要把把EDK工程中板级支持包工具生成的xilinx.dts复制到嵌入式Linux内核文件夹arch/powerpc/boot/dts中,这样linux才能根据这个文件给硬件设备添加相应的驱动。

5.4内核的裁剪与定制

用命令make 40x/virtex4_defconfig载入ML405开发板的内核配置,再用make menuconfig打开内核定制图形界面进行裁剪和定制,使满足自己的特定需求,需要选上TCP/IP协议。如果需要调试就要把串口驱动 xilinx uartlite serial port support选上。这样才能使用RS2323作为超级终端。保存配置后用make zImage命令就可以生成内核镜像文件了。

6测试结果与分析

在EDK中选把硬件文件烧录到FPGA中, 把Linux镜像文件下载到内存中运行,这样一个系统就能运行起来了。编写一个基于socket的网络通信程序,把FPGA作为客户端,把PC机作为服务器端,从FPGA不断的向PC发送基于TCP协议的数据包,来测试每次发送的数据包大小和传输速度之间的关系。当发送的数据包大小为30000Byte时,用tcp/ip协议传输的速率是70Mb/s,用udp协议传输的速率是135Mb/s。

在一定范围内,每次发送的数据包越大,则网络传输速率就越大。传输的速度即与powerpc、内存、内部总线的频率及位宽有关系,也与操作系统及应用程序有关系。

7结束语

本文详细的介绍了基于Linux和FPGA的嵌入式千兆网数据传输的实现方法,测试结果表明传输速度能满足设计指标。由于FPGA和linux都具有很大的灵活性,会给将来系统的升级和变更带来很大方便。

参考文献

[1] XPS LL TEMAC(v1.01a) [Z]. Xilinx Corporation, 2009

[2] Reference System: XPS LL Tri-Mode Ethernet MAC Embedded Systems for MicroBlaze and PowerPC Processors [Z]. Xilinx Corporation, 2008

[3] Getting Started Using Git [Z]. Xilinx Corporation, 2009

The Realization of Data Transmission Based on Linux and FPGA

Zhao Yuanli1,Wang Xiuku1,2,Zhang Hongyu2,Xu Lisheng2

(1. Zhengzhou University,Zhengzhou 450001,China)

(2. Institute of high energy physics, Chinese Academy of Sciences,Beijing 100049,China)

AbstractThe task of this paper is to transmit the data reliably from the local to remote server. A SOPC system with PowerPC hard core, memory controller and Gigabit Ethernet IP core is built in Xilinx FPGA. Data transmission with Gigabit Ethernet is achieved by the way that embedded linux is transplanted on PowerPC405.The relation between performance of the network and packet size is obtained by a test program. In addition, a custom IP cores was designed in order to communicate with the acquisition module in high speed and cache. The system has the advantage of small size, high bandwidth, reliability, in line with the requirements of the project.

FPGA数据 篇4

随着信息技术的发展,基于微处理器的数字信号处理在测控、通讯、雷达等各个领域得到广泛的应用。数据的采集成为重要的一个环节。对于各种各样的数据采集系统,利用PCI总线实现的数据采集卡有许多其他总线(如ISA)所没有的优点,如高速、热插拔、自动配置等。数据采集的控制部分由近年来发展迅速的可编程逻辑器件FPGA来设计,其时钟频率高,内部延时小,全部控制逻辑由硬件完成,速度快、效率高。

二、硬件设计

论文设计的数据采集卡是基于PCI总线,采用ALTERA公司的EP1C6Q240实现PCI协议和对整个采集过程的控制。其硬件设计如图1所示

本设计利用可编程逻辑器件FPGA的强大编程功能来实现PCI接口协议和数据采集控制器,同时利用EP1C6Q240中的双口RAM实现数据的暂存,可以有效简化电路设计。该电路板上电路还包括一些信号条理电路,其主要功能是对输入的模拟信号进行放大、滤波、隔离、衰减、多路复用等一系列处理,使调理以后的信号满足AD的采样数据采集控制器要求。

1. FPGA器件

系统所选用的EP1C6Q240这种Cyclone系列的FPGA器件具有以下优点:

(1)采用240个引脚的FPQF封装形式,能提供185个IO用户引脚和5 980个逻辑单元。具有20个4 608位的RAM存储区,最高可支持200MHz的数据传输。每个存储区均包括单口或双口RAM、ROM、FIFO等各类存储器件,并支持8位、16位、32位、36位等数据存储类型。

(2)片上的锁相环电路可以提供输入时钟的1分~32分频或倍频。

(3)可使用Altera的Nios软核和丰富的IP库,快速实现完整的可编程(SOPC)。

(4)多功能的IO结构支持差分和单端输入,并与3.3V、32位、66MHz的PCI局部总线兼容。

2. A/D转换电路

ADS5220是TI产品线中的一款新型?高精度?宽动态范围?流水线型ADC·它具有12位有效分辨率,工作电压范围及逻辑电平为3.3V,与PCI接口相兼容?该器件内部含有参考电压,可最大限度的减少外围器件。由于采用了流水线结构,采集速度有很大提高,采集速度最高可达40MSPS。

三、FPGA实现的功能

本设计中FPGA实现五方面的功能:

一是FPGA逻辑运算模块。用来接收其他各部分的数据,并按照程序中设定的方案对所收到的数据进行相应的分析和处理。包括:对从MCU接收来的数据指令进行分析,并按其指令要求进行相应操作;接收A/D采样来的数据,对数据进行各种处理,如求其有效值等;接收来自数字量的各种信息数据,按设定的模式对其进行判断处理,并负责按接收的CPU指令输出相应的数字量。

二是PCI内核模块,是系统设计的核心部分,它建立与上位机通信,以及与其他控制模块的数据交换。

三是用于数据暂存的双口RAM,当写入控制信号到达时,根据当前写入地址控制字向相应单元写入数据输入总线上的内容,并在读出控制信号到达时,根据读出地址控制字从相应单元读出内容,送到数据输出总线。

四是双口RAM控制模块,当启动写入地址控制信号到达时,把当前的写入地址加1,加满之后清零并重新开始,同时,当启动读出地址控制信号到达时,对当前读出地址加1,加满之后清零并重新开始。

五是A/D控制单元。主要负责控制外部A/D芯片和多路开关的选通时序,以及实现对A/D采样过程的合理控制。因为,在FPGA芯片内部,不像在MCU内部那样有丰富的外设控制资源供用户使用,要用FPGA来控制A/D采样过程的动作,必须用软件来模拟实现各种A/D控制资源。利用这些自设定的A/D控制管理资源,配以合理的软件控制时序,才能保证采样过程的顺利进行。

六是数字量监测控制单元。负责所有要监视和控制的数字量的状态数据的采集和控制命令的输出。这一部分也需要用软件来模拟实现各种对数字量的管理控制,只有配备较完备的外设控制管理单元,整个数字量的管理控制才能正确地进行。

四、基于FPGA的PCI内核设计

在PCI内核的设计中,核心设计有时序控制和配置空间两部分。时序控制保证了板卡能按正常的PCI时序工作,配置空间部分保证了板卡的即插即用功能。

1. PCI接口配置空间

当计算机第一个上电时,配置软件必须扫描在系统中的不同总线(PCI和其他),确定什么设备存在和他们有什么配置要求。这个过程常常指的是:扫描总线、激活总线、检查总线、发现过程、总线枚举。

执行PCI总线扫描的程序常称为PCI总线枚举。而为了实现这一过程,就必须提供256字节的配置空间结构,并实现PCI规范定义的一组寄存器。PCI总线标准规定的配置空间总长度为256个字节,配置信息按一定的顺序和大小依次存放。前64个字节配置空间称为头标区,是任何PCI兼容设备都应实现的空间。头标区的功能主要是用于识别设备,定义主机访问PCI板卡的方式(是I/O访问还是MEM访问、中断号等)。其余的192个字节空间称为本地配置空间因卡而异,主要定义卡上局部总线的特性、本地空间基地址及范围等。因PCI规范的通用性,所以每一块PCI总线扩展板卡都只是实现配置空间的一个子集。一般的PCI配置空间的结构如表1所示:

2. PCI接口状态机

在时序控制程序中采用状态机模型来实现不同时序的转换。各种命令、数据交换、控制均在状态机的管理下进行工作。PCI总线上的信号是并行工作的,因此,对应每个状态必须明确其执行的任务。这些任务要用VHDL的进程语句来描述所发生的事件。本设计中的状态机共使用了8种状态如图2所示。

本系统接到复位信号后对系统进行复位,然后转入空闲状态(此状态DEVSEL#、TRDY#和STOP#以及其他输出信号为高阻态)。

在IDLE状态下当检测到FRAME变低、IDSEFL为高,且PCI_CBE上命令是config_read或config_write时,状态转移到CONFIG_WAIT;如果FRAME变低、且PCI_CBE上命令是IO_read或IO_write或memory_read或memory_write时,状态转移到RDWR_WAIT,否则继续IDLE状态。

在CONFIG状态下,如果检测到IRDY为0,表示主机要求完成当前操作,状态转移到BACKOFF;否则继续CONFIG状态,直到IRDY为0为止。

在READ_WAIT状态下,如果检测到用户端需要ABORT,则下一状态转到ABORT状态。如果用户端需要STOP当前传输或者FRAME变为高电平,则下一状态转移到LAST_RDWR状态;如果FRAME还保持为低,则转到RDWR状态。

在RDWR状态下如果检测到用户端需要ABORT,则下一状态转到ABORT状态;如果用户端需要STOP当前传输.则下一状态转移到LAST_RDWR状态;如果FRAME还保持为低,则转保持RDWR状态;如果FRAME还变为高电平,则转到BACKOFF状态。

五、结论

本文介绍了用PCI和FPGA结合实现的高速数据采集卡,利用了PCI总线高速的传输特性,同时配合以FPGA强大的编程控制功能,简化了硬件设计。本系统用VHDL语言来描述。VHDL语言是一种结构化语言,易于编程和修改,开发周期短。整个设计简化了器件,实验中数据传输效果较好,完全符合PCI总线的要求,实现了灵活的接口控制。

摘要:在微机对数据的处理当中,数据采集是很重要的一部分,以前的数据采集都是通过DSP或单片机来实现。本文提出了基于PCI总线,用FPGA来作为整个数据采集部分的核心的数据采集卡的设计。该设计充分利用了PCI总线的高速传输和FPGA灵活强大的编程控制能力。从而保证了数据传输的速度,简化了电路。实验表明,该设计为数据采集卡的设计提供了一种在硬件上更加简单的方法。

关键词:PCI,数据采集,FPGA

参考文献

[1]李贵山戚德虎:PCI局部总线开发者指南[M].西安:西安电子科技大学出版,1997

[2]徐海军叶卫东:FPGA在高性能数据采集系统中的应用[J].计测技术,2005,1(25):4043

[3]褚振勇翁木云:FPGA设计及应用[M].西安:西安电子科技大学出版社,2002

FPGA教学大纲 篇5

本科课程《现场可编程逻辑门阵列FPGA》

电子类专业教学大纲

一、课程基本信息

课程名称(中、英文):《现场可编程逻辑门阵列FPGA》, Field Programmable Gate Array 课程类别:必修专业课

学时:

学分:2

二、预前知识

数字电子技术基础

三、课程目的及要求

1.了解FPGA的应用场合、发展历程、主要厂家。2.熟悉典型FPGA的基本结构。

3.掌握FPGA设计流程及其中涉及到的重要概念与工具软件。4.熟练掌握可综合的Verilog语法语句。

5.掌握常用的基本电路结构,并能用Verilog语言进行描述。

四、教学内容及进度

第1章 课程简介(本章2课时)

掌握FPGA的概念、用途及生产厂家,掌握FPGA的学习方法。重点:FPGA的学习方法 难点:芯片可编程的理解 1.什么是FPGA 2.FPGA有何用途 3.为什么要学习FPGA 4.如何学习FPGA 第二章 可编程逻辑器件基础(本章2课时)

掌握与或阵列及查找表用于实现逻辑函数的方法,了解基于与或阵列结构可编程逻辑器件的发展历程,掌握典型FPGA的基本结构及使用上的特点,了解FPGA的发展趋势。

重点:与或阵列及查找表用于实现逻辑函数 难点:典型FPGA的基本结构 1.知识准备:与或阵列、查找表 2.可编程逻辑器件结构发展历程 3.FPGA结构介绍

第3章 硬件描述语言基础(本章2课时)

掌握硬件描述的思想,了解常用的硬件描述语言及Verilog的历史,掌握可综合的概念及对应的设计思路,掌握数字芯片系统结构及自顶向下分层设计的方法,掌握Verilog描述程序的基本结构及Verilog基本语法。

重点:数字芯片系统结构及Verilog基本语法 难点:可综合的理解

1.硬件描述语言及Verilog简介 2.可综合简介

3.自顶向下分层设计的思路 4.Verilog基本语法

第4章 Verilog基本描述语句(本章4课时)

掌握常用的可综合Verilog描述语句:always过程语句;串行块begin-end;连续赋值 assign;过程赋值 =、<=;条件语句if-else、case;循环语句for 重点:常用的可综合Verilog描述语句

难点:阻塞赋值与非阻塞赋值的区别,顺序执行与并发执行的区分 1.always过程语句 2.串行块begin-end 3.连续赋值 assign 4.过程赋值 =、<= 5.条件语句if-else、case 6.循环语句for 第5章 运算符及表达式(本章4课时)

掌握Verilog中注释的格式;掌握Verilog中整数常量的表示法;掌握Verilog中常用的可综合运算符的使用:逻辑运算符、关系运算符、相等与全等运算符、位运算符、归约(缩减)运算符、移位运算符、条件运算符、连接(位拼接)运算符、算术运算符 重点:常用的可综合运算符的使用

难点:各运算符的优先级别及对有符号数和无符号数处理的差别 1.注释的格式 2.整数常量表示法 3.逻辑运算符 4.关系运算符 5.相等与全等运算符 6.位运算符

7.归约(缩减)运算符 8.移位运算符 9.条件运算符

10.连接(位拼接)运算符 11.算术运算符

第6章 基本电路设计(本章2课时)

掌握电路描述方法,掌握按端口位置对应及按端口名称对应的模块例 化方式,掌握常用基本电路的结构及描述方法 重点:常用基本电路的结构及描述方法

难点:按端口位置对应及按端口名称对应的模块例化方式

1.电路描述方法,按端口位置对应及按端口名称对应的模块例化方式 2.2选1多路选择器 3.优先编码器 4.多路选择器 5.译码器 6.D触发器 7.移位寄存器 8.上升沿检测 9.下降沿检测 10.计数器

11.两级单时钟使能计数器结构

第7章 有限状态机设计(本章2课时)

掌握状态机设计及描述方法,掌握起始状态、剩余状态的处理,掌握各状态编码方式之间的差别及各自的优缺点。重点:状态机设计及描述方法

难点:格雷码及“one-hot”状态值编码 1.有限状态机介绍及其优点 2.状态机设计思路 3.起始状态处理 4.状态编码方式 5.剩余状态与容错技术

第8章 双向端口及存储器(本章2课时)

掌握双向端口的定义及使用,掌握使用D触发器组及调用库单元实现 存储器的描述方式。重点:存储器的描述 难点:双向端口的使用 1.双向端口的定义及使用 2.存储器描述方式

第9章 设计方法与技巧(本章4课时)

掌握可编程逻辑设计的基本原则,掌握可编程逻辑设计常用设计思想和技巧,掌握良好的编码风格。重点:时钟的最小周期定义 难点:流水线、寄存器配平1.可编程逻辑设计的基本原则 2.可编程逻辑设计常用设计思想和技巧 3.Altera公司推荐的编码风格 4.面积优化 5.速度优化

五、教材

《CPLD/FPGA与ASIC设计实践教程》 主编:陈 赜

编著:朱如琪、罗 杰、王建明、鲁 放 出版社:科学出版社 出版日期:2005-8 书号:ISBN-978-7-03-016036-2/TP.332.1

六、主要参考资料

[1] 陈云洽,CPLD应用技术与数字系统设计,北京:电子工业出版社,2003 [2] 黄智伟,FPGA系统设计与实践,北京:电子工业出版社,2005 [3] 李国丽,EDA与数字系统设计,北京:机械工业出版社,2004 [4] 王金明,数字系统设计与Verilog HDL,北京:电子工业出版社,2002

七、成绩评定

学科成绩总分100分:

期末闭卷考试,考查学生对基本理论、能力的掌握程度,100分,占70%

平时成绩100分(包括考勤,课堂提问,作业)占

FPGA数据 篇6

系统采用的开窗采集是在目标检测成功完成的前提下进行的。它利用目标检测的结果,得到目标方位和距离信息,然后在下一次雷达扫描中,在该方位和距离上形成脉宽为1μs的采集波门,利用这一采集波门控制采样电路模块,完成一次高采样频率、高精度的采集。

1 数据采集系统的硬件设计

图1中,I路和Q路雷达信号首先分别进入衰减选择,接着进入直流电平调整,然后进入AD转换,在36 MHz采样频率下完成12位分辨率的AD转换,实现I路和Q路的数据采集。这里使用的AD芯片型号为AD9226-ARS,其主要性能指标:转换速度65 MS/s,精度为12位。具体的应用电路见图2。

该电路使用单端输入,输入电压必须在0.5~1.5 V之间,这可以通过一个运算放大器实现,本系统使用AD8056运放,实现直流电平调整,同时也起到缓冲的作用。具体电路图见图3。

为了尽可能提高AD转换后数据的分辨率,对电源、接地、电路布局进行了一些处理。所选用的运算放大器、电阻、电容等器件具有稳定的性能,电阻电容温漂小、漏电小。模拟输入的引线尽可能地短、粗。这些措施对实现分辨率指标有一定的帮助,保证了数据来源的可靠性。

2 FPGA完成的工作

(1)采集波门的产生

如图1所示,进入FPGA芯片后的数据在保存到RAM中之前必须加入数据头,以便主机得到这些精细采集数据时能方便地区别各次采集,该数据头没有包括当前的方位信息,这是因为此时的方位和距离信息是已知的。

波门的形成过程见图4,是精细采集模块中数据形成流程图。首先,主机通过USB接口模块地输入端点2得到FIFO中的检测结果,然后取出感兴趣的检测结果,将其方位和距离信息通过输出端口2发送到XCS30内部的方位和距离寄存器中。在下一次雷达扫描过程中,不断比较当前方位,如果当前方位和方位寄存器中的值相等,再进行距离的比较。在方位相同的前提下记录当前距离,如果记录的当前距离与距离寄存器中的值相等,则开始一个波门。在波门有效期间,对I路、Q路进行36 MHz、12位的数据采集,采集结果通过XCS30保存到RAM中。当波门的有效时间持续有效一段时间后(这段时间决定采集波门的宽度),波门信号变为无效,至此完成一次开窗采集过程。

(2)从主机发送方位信息和距离信息到FPGA内部的方位寄存器和距离寄存器

方位寄存器为12位,距离寄存器为17位,考虑到USB接口芯片数据线为8位,同时根据USB协议主机发送字节数的约束,最后决定距离寄存器采用20位,20位中的高三位数据没有参与距离的比较。

写方位信息和距离信息到XCS30中的过程是通过接口芯片的块输出端点完成的。8051的数据线为8位,为了发送12位的方位信息或20位的距离信息,必须通过多次传输才能完成。

(3)记录当前方位和当前距离

对于当前方位使用一个12位的计数器进行方位脉冲的下降沿的计数,这个计数器的清零信号使用正北信号的下降沿。对于当前距离的记录,使用一个17位的计数器对36 MHz采集时钟进行计数,清零信号使用同步脉冲的下降沿。

(4)波门的产生和终止

在采样时钟的上升沿时,如果当前的方位和距离都是设定的方位和距离时,产生一个波门的开始信号,经过64个距离单元时间后,波门结束。这里的64个距离单元对应的时间为1.78μs,也就是说,这时开的采集波门宽度为1.78μs。

(5)在每帧数据开始时添加标志位(即数据帧加头)

检测时在数据进入双口RAM前有一个数据帧加头的过程,加入的数据头包括帧起始标志、当前方位信息。在精细采集过程中,由于每一帧数据都是在主机指定的方位和距离的前提下进行,所以没有必要再添加方位和距离信息。这里的数据头将只包括每一帧的起始标志。

(6)精细采集数据的存储

在波门有效期间,AD转换后的两路数据将保存到RAM中,在进入RAM中时,必须先加上数据头标志,然后再写入一次采集所得的数据。实现原理见图5。

在加数据头时,锁存器OE端由FPGA置为无效,此时的锁存器输出为高阻状态。FPGA将锁存器置为高阻的同时,将内部的“FFFFFF”放到数据总线上;在不进行加数据头时,锁存器OE端由FPGA置为有效,数据总线上的数据为锁存后输出的12位数据。这样通过对锁存器使能端的控制,实现了数据在保存到RAM之前完成添加数据帧标志的工作。

图5中,锁存器的锁存时钟CLK与AD转换芯片的采集时钟CLK反相,这样在晶振时钟的上升沿实现AD的转换,在晶振时钟的下降沿实现锁存器的一次锁存。通过这样的设计错开了AD采样和锁存采样的取样时刻,保证了数据的正确性。

(7)数据传输

对于cy7c68013C而言,其内部的8051有16位的地址线,但是考虑到外部存储器的容量为256 kB,8051的地址线仅能寻址64 kB,最后决定采用对读脉冲进行计数产生地址信息的方法实现对存储器的访问。除了对8051发出的读脉冲的异步处理外,在传输过程中还需要解决24位数据转换为8位数据、2路数据的分离等问题。可以通过图6来理解。图中RAM的读脉冲经过抽取8051(包含在cy7c68013C内的处理器)的读脉冲,每4个抽1个。在存储器接口方面,抽取的脉冲给RAM的RD端,完成存储器读脉冲的实现,每4次8051的RD脉冲读取一个RAM地址内的数据。与8051接口方面,先将8051的读脉冲延迟3个时钟,形成一个延迟的8051读脉冲信号,利用这个信号,完成把读入FPGA内的一个RAM地址的数据传送给8051,这个信号的第一个读脉冲的下降沿是第一时刻,第二个读脉冲的下降沿是第二时刻。在第一时刻读入数据为1010+regin[2320],第二时刻读入数据为regin[19:12],这两个时刻读入的数据方为一个完整的采集结果数据,通过在主机的应用程序中组合两次读入的数据,最后得到的数据格式为“A+12位采集结果数据”,这一种格式表示是I路的12位数据。同理,第三时刻和第四时刻读入的数据为Q路的12位。传输精细采集数据时FPGA内部各个读脉冲之间的时序见图6所示。

以上是存储器读脉冲的实现过程,存储器地址则是通过对8051发出读脉冲计数而得到。

下面再从整体上看保存的精细采集数据是如何发送给USB接口模块的。基本原理可以通过图7来说明。传输过程为:当主机发送一个IN令牌给AN2131QC的管道2时,AN2131QC执行对应的管道中断程序。在中断程序中,AN2131QC发出连续的64个读脉冲,这64个读脉冲通过4抽1,得到16个读脉冲。这16个读脉冲送给存储器的RD引脚,同时计数器对16个读脉冲进行计数,得到存储器的地址送给存储器的地址线。在第一个读脉冲的下降沿时存储器送出对应第一个地址的24位数据到XCS30内的24位寄存器regin。同时在XCS30内部,把这24位作为4组数据一次保存。AN2131QC发出的64个读脉冲延迟3个时钟后控制XCS30内部的数据线。第一个延时的读脉冲到来时,将图7对应的第一时刻内的数据送到8位寄存器,这时AN2131QC读入8位寄存器的内容;第二个延时的读脉冲到来时,将图7对应的第二时刻内的数据送到8位寄存器,AN2131QC读入该寄存器内容;第三个延时的读脉冲到来时,将第三时刻内的数据送到8位寄存器,AN2131QC读入该寄存器内容;第四个延时的读脉冲到来时,将第四时刻内的数据送到8位寄存器,AN2131QC读入该寄存器内容。通过四个延时的读脉冲,完成对应的存储器的第一个地址内24位数据的传输。主机发送一个IN令牌将引起AN2131QC发送64个读脉冲,完成存储器16个地址的数据的传输。

经过这样的处理,完成了24位到8位的转换,同时由于在XCS内部处理数据时,加入了“1010”和“1011”的通路标志,在主机接收到的数据中可以通过对此识别,分离开I路和Q路的数据。此外,由于在数据的保存过程中,每一帧开始写入的数据为FFFFFF,所以在主机的数据中,如果出现“AFFF BFFF”的标志时可以识别这一段数据为一个新的数据帧的开始。

参考文献

FPGA数据 篇7

为使计算机能对数据采集系统输入的模拟量进行处理,必须经由数据采集系统将模拟量转化为数字量[1]。FPGA是在CPLD等逻辑器件的基础上发展起来的,其高集成度能大大缩小电路板的尺寸,降低系统成本,提高系统的性能和可靠性,适合于时序、组合等逻辑电路的应用场合。一个完整成型的探测系统通常都有采集储存部分,无论是电信号、光信号、声音信号等在被探测器接收到后,大部分都需要转化为数字信号才能再传给处理器完成分析、判断的过程。现在的一些高速大容量采集系统,往往价格比较昂贵。本论文主要论述一种应用FPGA[4]等来控制,采用多片Nandflash存储的低成本、高速、多路、可靠的数据采集系统,本文主要探讨硬件设计和存储设计。

1 系统总体设计方案

数据采集系统[5]的工作原理是:各种信息经过传感器后转化成模拟电量信号,通过ADC将模拟量转换为数字量信号[6],而后进行传输存储和处理。本系统中,在软件和硬件相结合的控制下,系统将采集到的模拟信号经过A/D转换器件转换后,将转换结果先缓存到FIFO,再转存到非易失性Nandflash阵列中。其中,FIFO不但可以实现缓存功能,还可以解决A/D转换之后数据位数跟Nandflash存储器的数据线位数不匹配的矛盾。如图1系统总体设计方案框图所示,本系统采用FPGA内部软核microblaze处理器作主控制器即软件控制器,而FPGA内部逻辑资源则用于产生硬件控制时序,整个系统就是在两者相结合协调下进行数据的采集以及传输[3]。

2 硬件控制器的设计

整个数据采集系统含有数据采集模块和数据传输模块。其中数据采集模块由AD数据转换模块和Nandflash数据存储模块组成。系统采用USB接口做数据传输模块,在此不作为本论文的重点进行描述。在数据传输部分本系统采用了DMA传输技术。其FPGA内部电路功能模块如图2所示。

其中ALE,WR分别连接处理器的地址锁存和WR引脚。而处理器设置成地址总线和数据总线分时复用的模式。这样FPGA可以通过ALE信号来锁存处理器的地址。而控制命令生成器用来译码产生相应的命令和操作。DMA控制器是我们自己编写的特定的控制器,它需在收到处理器的DMA使能命令的情况下使得DMA_EN有效,然后在收到DMA开启信号DMA_restart后,才会启动一次DMA传输数据,每启动一次传输一页2 K的数据。在传输过程中,因为是多片FIFO的读,为了数据不会乱,我们通过一个特定的控制器将DMA_FLASH_WE和多片FIFO的DMA_FIFO_RD匹配的统一起来产生了多片FIFO轮换读的操作。

在采样速率选择的设计中,我们是应用先微处理器的软件系统给FPGA的硬件系统一个采样速率选择值,而后FPGA的硬件系统内部将译码微处理器给的频率值,频率选择器将根据这个数值产生相应的频率输出,频率选择器输出的频率又将输入到控制AD转换的状态机里,这样控制AD转换的状态机将根据输入的频率进行相应的频率采集、数据的读取和向FIFO写数据等操作。

3 控制与存储模块

本系统在存储方式设计时采用流水线操作方式。Nandflash存储器的写入有两个阶段:数据加载阶段(即通过I/O端口将数据写入页数据寄存器)和编程阶段(在芯片内部,将页数据寄存器中的数据转存到非易失性存储单元内)。数据编程阶段是自动进行的,不需要外部系统的其它操作,但它需要很长的时间,其典型值是200 μs。而如果采用流水线存储方式就可克服Nandflash芯片写入速度较慢的缺点。应用流水线操作方式对Nandflash存储器进行写操作流程原理如图3所示。首先对第一片Nandflash进行数据的加载,数据加载完后,第一片Nandflash随后就将进入自动数据编程阶段;然后再对第二片Nandflash进行数据的加载,数据加载完后,第二片Nandflash也将进入自动数据编程阶段;然后依次对第三片Nandflash和第四片Nandflash进行相同的上述操作。而当第四片Nandflash数据加载完后,第一片Nandflash刚好已经自动编程数据结束,接着再从第一片Nandflash重复刚开始的加载数据和自动编程数据阶段。就这样如此循环一直到数据采集完成。这就是流水线的存储方式[7]。从整体时间来看,整个系统在一直的进行着数据的传输和存储[2]。

实现Nandflash流水线方式存储的部分C程序有:

在数据加载期间本系统应用DMA传输控制方式,即:每当FIFO的半满标志信号HF产生一次有效的电平时,处理器就启动一次中断,在中断程序中,处理器将完成对Nandflash写命令和地址,以及DMA控制器的启动。一旦DMA控制器启动,处理器就将转入后台进行有效地址的运算等而不参与数据传输过程,整个数据从FIFO到Nandflash存储器的传输过程是由FPGA内部编写的DMA控制器控制完成。启动一次DMA控制器传输一页2048个字节的数据,一次中断将完成16K字节的传输。应用DMA传输的时序示波器波形图如图4所示:第0,1,2,3通道是FIFO的读数据时序波形,第4通道是Nandflash的写时序波形。一次DMA传输完成后,则处理器还要判断当前页是否为最后一页第64页,若不是最后一页第64页,则页地址加1,继续进行DMA传输采样数据操作。如果当前页为最后一页第64页,则判断当前块是否为本文件的最后一块,若不是最后块,则块地址加1,再跟无效块表对照判断此块是否为有效块,若是则页地址置0,继续进行DMA传输采样数据操作;若当前块已是本文件的最后一块,则本文件的采集数据操作完成即本次采集完成。

4 结论

试验结果表明,采集系统性能稳定,采集速度能保持在10 Mb/s以上,符合设计要求。该系统对选用低成本、高速、可靠性采集的硬件设计具有实用价值。

摘要:为了在提高数据采集卡的速度的同时降低成本,设计了一种应用流水线存储技术的数据采集系统。该系统应用软件与硬件相结合的方式来控制实现,通过MAX1308模数转换器完成ADC的转化过程,采用多片Nandflash流水线数据存储模式对高速采集的数据进行存储。搭建硬件电路,并在FPGA内部通过编写VHDL语言实现了采集模块、控制与存储模块和Nandflash存储功能。调试结果表明,芯片的读写时序信号对应的位置准确无误,没有出现时序混乱,且采集速度能保持在10 Mb/s以上。系统实现了低成本、高速多路采集的设计要求。

关键词:高速采集,流水线存储,FPGA

参考文献

[1]潘明海,邸建红,刘芬,等.数字正交调制器及其硬件设计[J].现代电子技术,2003,17(3):24-26.

[2]曲震宇,刘胜辉.基于CPLD的高速数据采集系统控制模块的设计与实现[J].哈尔滨理工大学学报,2006,11(3):17-19.

[3]杨飞,李东星,陈小牧.用XILINX FPGA制作高度保密专用集成电路(ASIC)[J].电子技术,1994(10):40-41.

[4]王俊雄,黄铉,刘正义.基于FPGA的嵌入式系统设计[J].电子工程师,2006(10):67-70.

[5]赵玉印,白玉贤,张泽宏.一种弹载数据记录器的设计[J].武器装备自动化,2004,23(2):1-3.

[6]Analog Devices Inc.Multi2channel 122bit ADC with Em-bedded Flash ADuC812 Datasheet[Z/OL].www.analog.com,04,2003.

FPGA数据 篇8

傅里叶变换光谱技术具有光谱分辨率高、光通量大、通道数量多的优点,是目前工作波段应用最广泛的光谱分光技术[1]。傅里叶变换光谱技术利用迈克尔逊干涉仪(或改进的形式)对入射光进行干涉,探测器把干涉信号转换为电信号,经模数转换,成为时域干涉图。干涉图与入射光的光谱图存在傅里叶变换关系,对干涉图实施傅里叶逆变换,就可获得入射光的光谱信息。

星载傅里叶光谱仪的干涉信号采集需要多通道同步采集,而且对数据采集系统的采集传输速度和精度提出了较高要求。通常数据采集系统采用MCU或DSP作为主控制器,控制ADC(模数转换器)、存储器和其他外围电路工作。由于指令周期以及处理速度的影响,单片机对于多通道数据采集,往往达不到要求。DSP擅长处理密集的乘加运算,不适合完成外围电路复杂逻辑控制。对于高速多通道数据采集,FPGA有MCU和DSP无法比拟的优势。FPGA时钟频率高,内部时延小,全部控制逻辑由硬件完成,速度快,组成形式灵活,可以集成外围控制、译码和接口电路[2]。

在干涉式大气垂直探测仪研制过程中,我们设计了一种基于FPGA的多通道同步数据采集系统,利用FPGA实现了多达64路信号的同步采集时序控制、存储扩展、USB接口控制等功能,完成了多路干涉信号的高速、高精度的同步采集。

1硬件设计

对于多通道模拟信号同步采集,模拟信号采样保持后,有两种处理方法。一是采用采用多片无差别ADC构成阵列来实现,二是采用多路模拟开关加单片ADC[3]。由于信号输出的路数很多,采用64并行输出是不合理的,并且成本较高,所以在满足性能指标要求下,采用第二种方法。

同步采集的硬件电路主要有采样保持电路(SampleandHoldAmplifiers)、多路选择电路(Multiplexer)、ADC、FPGA主控电路和USB 2.0接口电路组成,如图1所示。64路红外模拟信号放大、滤波处理后送到数据采集系统,在FPGA的控制下,经过采样保持、多路转换和数模转换后,进入FPGA。最后通过USB 2.0接口传送到PC机。

1.1数据采集模拟电路

本系统如图1,对调理成-2.5~+2.5V信号,在前向通道中使用16片4通道采样保持器SMP-04采样保持,再使用2片32通道的多路模拟开关ADG 732依次选择64路信号。ADC器件选择LTC1414。在每个周期的开始,FPGA通过编程输出脉冲至采样保持器和多路选择器。定时逻辑送出脉冲至采样保持器对模拟输入取样,然后选择一个通道的模拟输入,最后完成A/D转换。总之,FPGA提供采样保持、多路转换和A/D转换电路模块所需要的各种状态和控制时序逻辑。

1.2 FPGA及其外围电路

系统采用FPGA构建多路同步数据采集系统控制电路。FPGA采用ALTERA公司CycloneII系列的EP2C35实现。EP2C35提供多达33,216个逻辑单元(LE)、35个18×18位乘法器、483,840比特内部RAM块、专用外部存储器接口电路、4个锁相环(PLL)和高速差分I/O等功能[4]。FPGA的配置芯片,采用EPC8,容量达8 MBits。仪器要求以高速率非连续方式存入数据,以较低的速率连续方式把数据传给卫星。数据存储量应至少满足存储产生一次干涉图的所有数据(64幅干涉图)。FPGA模块外扩了SRAM选择CY7C1041CV33(256 K×16 Bits)。

傅立叶光谱仪数据采集系统中,由FPGA实现的功能模块包括数据采集电路时序控制、片上双口RAM存储控制、外部存储控制、USB传输控制和数据打包排序等功能,如图2所示。

数据采集电路时序控制模块主要完成外部A/D芯片、多路模拟开关、采样保持电路的选通时序、逻辑控制。在QuartusII软件集成的内部逻辑分析工具SignalTapII得到的设计时序如图3所示。

EP2C35有多达483 Kbits片上RAM,在FPGA内部生成双口RAM,作为数据采集的输入缓存。片上双口RAM存储控制模块实现上述功能。

数据打包排序功能包括将14位干涉数据通过移位寄存器扩展成16位,并且在本模块内部设计一个存储扫描表(RAM块),按照通道采集顺序,将采集方式、通道顺序、数据有效标志等打包到干涉数据中。

由于USB2.0接口工作在FIFO从模式状态,FPGA内部的USB传输控制实际上就是FIFO的读写时序控制,本设计中采用同步FIFO读写控制。

1.3 USB接口电路

干涉信号采集电路和光谱反演和现实系统采用USB2.0接口传输。USB2.0接口全速运行是可达480 Mbits/s。接口芯片采用Cpress公司EZ-USB FX2系列的CY7C68013A。FX2 集USB2. 0收发器、智能串行接口引擎(SIE)、增强的8051内核、I2C总线接口以及通用可编程接口(GPIF)于一体,既负责USB事务处理也兼具微处理器的控制功能,可用做USB外设的主控制芯片[5]。在本系统中,高速数据流从数据采集部分向主机方向传送,FX2 工作在从模式(slave mode),将FIFO交给外部设备控制器控制。其接口如图4所示。这种方式下外部控制器可像普通FIFO 一样对FX2 的多层缓冲FIFO 进行读写,FX2可以和FPGA 直接通信而无需8051 固件的参与。

2 软件设计

系统软件包括三个部分:USB外设端的固件、主机客户驱动程序以及主机端应用程序。

应用程序通过客户驱动程序与系统USBDI(USB Device Interface)进行通信,由系统产生数据的传送动作,固件则响应各种来自系统的标准要求,完成各种数据的交换工作和事件处理。在FX2开发包和相关工具的基础上,可简化和加快软件开发。

Cypress公司为EZ-USB系列FX2芯片提供了用KeilC51开发的固件库和固件框架。固件框架实现了初始化芯片、处理USB标准设备请求及挂起状态下的电源管理等功能。固件设计的主要工作是根据自定义设备修改固件框架中的PERIPH.C文件。固件存储在PC上,当设备与主机连接时,固件通过软配置从主机装载到EZ - USB FX2片内RAM执行。设备配置、有效端点、工作方式、设备功能等都可以通过改变固件进行再配置。

USB 驱动程序处于应用程序和设备端固件之间,使操作系统识别USB设备, 并建立起主机端和设备端之间的通讯。为了加快开发速度,在本数据采集系统中使用的Cypress自带设备驱动程序。

主机端应用程序用于将采集得到的数据文件进行解包、进行傅里叶逆变换转换成干涉图和相应的参数进行显示,同时允许用户针对每次采集任务对采集系统进行采集参数可视化设定和流程控制等。

主机端应用程序由文件处理模块,界面显示模块和采集/ 传输控制模块组成。文件处理模块用于将每次采集得到的数据在计算机中按照特定的格式生成数据文件;界面显示模块用于波形和参数的显示;采集/ 传输控制模块用于对每次采集任务的参数和采集进度进行可视化的设定和控制,例如:设定采集通道,连接设备,启动和停止采集,启动数据传输等。程序流程图如图5所示。

3 结束语

该方案采用FPGA实现系统的控制,完成多通道红外干涉信号的采集、处理与传输。利用FPGA可以在线编程的特点,根据不同的应用需要进行功能扩展,进一步增加了系统应用的灵活性。同时采用高速USB2.0接口,能够较好地和软件配合在FPGA和PC间快速传输大量数据而不丢失需要采集的数据,具有高速、高可靠性等优点。本文给出的多通道同步数据采集系统,已成功地用于星载傅里叶光谱仪预研项目中。

摘要:多通道同步数据采集是星载傅里叶光谱仪研制的关键技术之一。介绍了一种基于FPGA的64路通道数据同步采集系统,实现了高速高精度红外干涉信号采集。本系统用FPGA实现了干涉信号采样时序控制、打包排序和USB接口的传输控制等功能,具有实时性好、抗干扰性强的优点,并且具有一定的通用性。

关键词:数据采集,FPGA,USB,采样保持

参考文献

[1]吴瑾光,等.近代傅立叶变换红外光谱技术及应用(上).北京:科学文献出版社,1994:1—2

[2]林长青,孙胜利.基于FPGA的多路高速数据采集系统.电测与仪表,2005;42(473):52—54

[3]Kirianaki N V.Data acquisition and signal processing for smart sen-sors.England:John Wiley&Sons Ltd,2001:51—58

[4]Cyclone II Device Handbook,Volume1,2005.1—6.http://www.altera.com

FPGA数据 篇9

电容式传感器广泛地应用于航空航天、军事、工业、医疗等领域, 在很多场合下电容量只有几p F到几百p F, 传感器的输出信号微弱, 如何提高测量灵敏度和信噪比成为微弱电容检测的关键[1]。

本文介绍了一种以FPGA为核心的电容数据采集系统, 它利用基于载波调制的电荷放大电路完成电容/电压转换, 抗干扰性较好。与传统的模拟检测系统相比, 系统的载波生成和信号解调都在FPGA内部实现, 载波稳定度更高, 解调误差更小, 高分辨率A/D转换芯片的选用进一步保证了精度。

1 系统组成

系统以FPGA为核心集成了差动电容传感器、电源电路、信号调理电路、A/D转换电路、D/A转换电路等功能模块。系统整体结构如图1所示。

信号调理电路主要用于对差动电容的变化进行载波调制、交流放大、滤波等预处理, 保证系统有较宽的测量范围, 为AD转换提供高质量的信号;AD转换电路负责把信号调理电路的输出信号转化为数字量, 送FPGA进行处理;FPGA模块用于外设控制、载波生成、数字解调以及数据传输。

2 系统硬件设计

2.1 信号调理电路

2.1.1 电容/电压转换电路

为抑制共模噪声, 增强抗干扰性能, 系统采用连续积分型电容检测电路将差分电容的变化调制到正弦载波的幅度上[2,3], 再利用相干解调的方法得到电容变化量, 电路如图2所示。

C6和C8构成差分电容;R2与R3为反馈电阻, 阻值相等, C4和C9为反馈电容, 电容值相同;R1为标准电阻, 用于设置放大器U1的增益;它们与U1、U2构成电荷放大器, 将差分电容的变化量调制到载波幅度上。Vs为正弦载波信号, 可表示为Vsinωct。一般反馈电阻R2很大, R2>>1/ωc C4, 设U1的放大倍数为A, 当差分电容变化时, 可得到输出电压Vo的表达式如式 (1) 所示:

电容/电压转换电路的输出正比于差分电容的变化量, 电容的变化被调制到输出信号Vo的振幅之中。为保证测量精度以及小型化需求, U1选择AD8221, U2选择双通道精密运算放大器OP2177。AD8221是美国模拟公司推出的仪表放大器, 其增益误差典型值小于20ppm且10KHz条件下的共模抑制比高达80d B。

2.1.2 差分信号调理电路

由于A/D转换器必须采用全差分驱动输入, 且差分输入的共模电压以及对差分输入的限制与基准电压有关, 系统采用差分运算放大器ADA4941将电荷放大电路的输出转换为全差分信号后再与AD转换器的差分输入接口连接, 差分信号调理电路如图3所示。

ADA4941采用正负10伏的电源进行供电, 选用0.1μF的旁路电容降低干扰, 通过调整R8和R10这两个电阻的阻值可调整运算放大器的增益。8脚为输入电压引脚, 与电容/电压转换电路的输出引脚相连;2脚VRef设定差分信号的共模电压, 这里为2.5V, 5脚和4脚为差分输出信号, 其输出电压如式 (2) 所示, 差模输出电压如式 (3) 所示。

2.2 电源电路

系统所用到的电源主要有5V、3.3V、2.5V、1.8V、1.2V, 选用SPX1117提供5V、2.5V、1.8V电压信号, 选用AMS1117提供1.2V电压信号, 利用开关型稳压电源芯片LM2576提供3.3V信号。3.3V电源电路如图4所示。

2.3 A/D转换电路

为保证数字解调的精度, 选用高精度24位A/D转换芯片AD7767对信号调理电路输出的差分驱动信号进行采样。AD7767为高性能24位过采样SAR型模数转换器, 片内集成数字滤波器 (包括线性相位响应) , 通过过采样输入来消除带外噪声, 具有较宽的动态范围和输入带宽, 适用于超低功耗数据采集应用。

AD7767的工作电压为2.5V, 标准基准电压为5V, 为了保证A/D转换的精度, 选用ADI公司的高精度电压参考源芯片ADR425提供基准电压, 它具有低噪声、高精度和出色的长期稳定特性, 输出电压5V。基准电压产生电路如图5所示, 输入电压引脚和输出电源引脚均由去耦电容与地连接。

AD7767的外围电路如图6所示, 参考电压由adref提供;其模拟工作电压和数字供电电压均为2.5V, I/O口电压为3.3V, 均通过去耦电容与地连接。CS引脚为片选输入引脚, 并充当SDO引脚的使能信号。数据输出采用串行接口方式, 输出数据的协议为SPI协议。串行接口用到SCLK、MCLK、DRDY、SDI、SDO等信号, 其中SCLK为串行时钟输入, MCLK为主时钟输入;DRDY为数据就绪信号, 低电平有效;转换后的数据通过引脚SDO移位输出。SDI为串行输入引脚, 主要用于多个器件的菊花链连接。时钟信号、片选信号、串行输出控制信号都由FPGA进行控制。

2.4 D/A转换电路

选用TI公司的DAC9881将FPGA内产生的数字载波信号转换成模拟信号, 其电路如图7所示。

TI公司的DAC9881是高精确度的D/A转换芯片, 分辨率为18位, 典型功耗为4m W[4]。

2.5 FPGA模块

FPGA芯片选用Altera公司生产的Cyclone系列的EP3C25E144C8, 其芯片模拟工作电压为1.2V和2.5V, 分别为模拟锁相环PLL和模拟电压端供电;数字工作电压为3.3V和1.2V。控制程序存储在配置芯片EPCS16中。

3 系统软件设计

3.1 DDS算法

直接数字频率合成 (DDS) 技术[5]是一种从相位概念出发直接合成所需波形的一种新的全数字频率合成技术, 其结构如图8所示。

DDS系统主要由相位累加器、波形存储器和数模转换电路等部分组成。相位累加器由加法器和累加寄存器级联构成, 在时钟脉冲的控制下将频率控制字与累加相位相加, 得到信号的新相位。相位累加器的输出作为波形存储器的相位地址, 通过查找表得到对应的正弦值或余弦值, 经数模转换器将数字量形式的波形幅值转换为模拟量。

DDS算法实现的部分代码如下:

DDS载波生成信号的modelsim仿真结果如图9所示, sin_o和cos_o代表正弦值和余弦值。

3.2 AD7767的采样控制

AD7767通过串行数据输出引脚 (SDO) 输出其数据转换结果。SCLK是该器件的串行时钟输入;DRDY线用作状态信号;CS信号是SDO引脚的选通信号。数据读出的工作时序如图10所示。

有效的数据准备好时, DRDY被置为低电平。CS引脚变为低电平后开始启动串行数据传输, 数据在时钟信号控制下串行输出, FPGA提供AD7767工作所需的时钟信号和控制信号。在QUARTUS中设计的A/D控制模块如图11所示。

4 结束语

基于FPGA的电容数据采集系统运用数字技术生产载波和实现解调, 结构简单, 精度高, 具有一定的实用价值。

摘要:本文介绍了由FPGA、电源电路、电容/电压转换电路、高精度A/D转换电路等模块组成的电容数据采集系统。该系统以FPGA器件EP3C25为核心, 基于DDS算法和D/A转换芯片DAC8830产生载波信号用于电容变化信号的调制, 选用24位高精度A/D转换芯片进行电容调制信号的数据采集。详细阐述了系统的硬件设计方案和在Quartus II中利用Verilog HDL语言实现DDS算法和AD7767 A/D采样控制的软件设计方法。实际运行结果表明, 该系统能对电容变化进行数据采集, 具有精度高及抗干扰性强等优点。

关键词:电容检测,FPGA,AD7767,数据采集,DDS算法

参考文献

[1]刘俊, 徐佩, 石云波.微弱电容信号的离散频率测试方法及其硬件电路的实现[J].兵工学报, 2005, 26 (4) :500-503.

[2]周晓奇, 郑阳明, 金仲和, 等.基于FPGA的数字式电容检测系统[J].传感技术学报, 2008, 21 (4) :698-699.

[3]庞士信, 王超, 匡石.基于FPGA的硅电容传感器调理模块设计[J].仪表技术与传感器, 2010, (10) :1-2.

[4]魏永旺, 罗海波, 邹彦.18位数/模转换芯DAC9881的原理与应用[J].现代电子技术, 2009, (14) :167-169.

FPGA数据 篇10

高速图像 数据采集 系统实现 高速相机 拍摄图像 数据的采 集 、实时传输 、处理和图 像数据存 储 。 通过采集 的高速数 据 , 可以观测 到高速运 动物体的 细微变化 , 从而能够 更全面地 改进目标 ,提高目标 性能 。 图像数据 采集使用 高速面阵 相机 ,相机数据 传输接口 为Camera Link接口 。 通过Camera Link接口将图 像数据传 输到FPGA开发板上 进行实时 处理 , 处理后的 数据能够 用显示器 显示以便 更好地观 测 。 本文主要 研究高速 相机和Camera Link接口协议[1], 设计一个 能够实现 数据实时 高速传输 的Camera Link接口电路 , 节省FPGA内部资源 消耗 。 同时通过FPGA的缓存处 理 ,在VGA显示器上 实现实时 图像显示 。

Camera Link协议是由 一些高速 相机生产 商和图像 采集卡供 应商为了 降低相机 与采集卡 之间连接 的成本而 联合推出 的一个标 准 。 设计选用 了Teledyne Dalsa公司的PT-41-04M60[2]相机 ( 以下简称 为4M60),FPGA板卡采用Xilinx公司Virtex-6系列的XC6VLX240T,相机数据 通过Camera Link接口传输 到FPGA芯片上进 行高速缓 存处理 。

1PT-41-04M60相机简介

4M60相机[2]采用Teledyne DALSA专利的CMOS传感技术 , 在全分辨 率4M时帧率可 达62 f/s。 4M60相机分辨 率为2 352×1 728, 像素尺寸7.4 μm×7.4 μm, 有8/ 10 bit可选数据 位 , 4路传感器 通道 , 基本 ( Base ) 和中级 ( Medium ) 两种配置 方式 。 相机上电 后电源指 示灯会闪 烁一段时 间表示正 在初始化 ,初始化完 毕之后指 示灯变为 稳定的绿 色 。 在实际操 作中可依 据相机电 源指示灯 状态变化 情况来判 断相机是 否正常工 作 。

计算机可 通过向串 口发送命 令来控制 相机工作 状态 , 异步串口 命令[3]为ASCII字符 , 默认1位起始位 ,1位停止位 , 无奇偶校 验位和握 手位 , 波特率默 认为9 600 b / s , 通过串口 命令sbr m可以改变 波特率 , m可选择9 600(默认 )、19 200、57 600、115 200几种 。 相机上电 后的波特 率总是9 600 b/s, 通过rc命令可重 置相机 , 但重置后 的波特率 不是上电 后的9 600 b/s,而是最近 一次使用 过的波特 率 。

串口每条 命令以回 车键 <CR> 结束 ,相机会以ok>或Error x : Error Message > 回应 。 x为错误的 类型 , Error Message为错误的 具体内容 , ‘ > ’ 通常为相 机发送的 最后一个 符号 ,发送命令 大小写均 支持 。 gcp<CR> 为读取相 机当前配 置数据 。 用户可以 根据实际 需求配置 相机参数 , 相机指示 灯变成稳 定的绿色 后就会自 动向Camera Link接口传输 图像数据 。

2CameraLink标准与协议

Camera Link接口主要 是利用低 压差分信 号 ( LVDS ) , 将相机采 集的并行 数据通过LVDS转换成串 行数据高 速传输 , 在接收端 再将串行 数据转换 成并行 ,以便于FPGA进行处理 。 Camera Link协议主要 包括相机 信号和Channel Link技术两个 方面 。

2.1相机信号

Camera Link接口规定 了相机信 号主要分 为高速视 频信号 、相机控制 信号 、串行通信 信号和电 源 。

( 1 ) 高速视频 信号

高速视频 信号传输 图像数据 信号 , 其中包括 图像数据 和图像使 能信号 。 使能信号 有4个 :帧有效 (FVAL)、 行有效 (LVAL)、 数据有效 (DVAL) 和备用 (Spare)。 FVAL为高时表 明输出有 效行 ; LVAL为高时表 明输出有 效像素 ; DVAL为高时表 明输出有 效数据 。 备用信号 (Spare)留作备用 。 相机必须 给每个Channel Link芯片提供 上述4个使能信 号 。

( 2 ) 高速相机 控制信号

Camera Link协议定义 了4对LVDS信号用来 传输相机 控制信号 , 分别是Camera Control 1( CC1 ) 、 Camera Control 2 ( CC2 ) 、 Camera Control 3 ( CC3 ) 、 Camera Control 4 ( CC4 ) 。 4对信号是 由图像采 集卡发给 相机 , 相机生产 商可以根 据自己的 需要来定 义这4组信号 。 本文使用 的4M60相机将CC1作为外同 步信号 ( EXSYNC ) 来触发相 机输出帧 数据 。 其他3个信号未 使用 。

( 3 ) 低速串行 通信信号

Camera Link协议使用 了两对LVDS信号来传 输相机与 图像采集 卡之间的 异步串行 通信信号 , 分别为 : 由相机发 给采集卡 的信号Ser TFG(Serial communications to The Frame Grabber ) 和采集卡 发送给相 机的信号Ser TC ( Serial communications to The Camera ) 。 两对信号 实现了计 算机与相 机的通信 , 计算机可 以通过串 口用ASCII字符对相 机进行配 置 。

( 4 ) 电源

Camera Link连接器并 不为相机 提供电源 , 相机要通 过独立的 电缆来供 电 , 本设计中 使用的4M60相机的电 源插座如 图1所示 ,其引脚配 置[4]如表1所示 。

2. 2 Channel Link

Channel Link接口是利 用低压差 分信号传 输视频信 号的新技 术 。 如图2[2]所示为Channel Link主要原理 图 , Channel Link是由一个 并转串驱 动器和一 个串转并 接收器构 成一对信 号传输线 路 。 在一片Channel Link接口芯片 上有5对这样的 信号 ,4对用来传 输数据 , 另外一对 用来传输 时钟信号 。 传输数据 时 ,在并转串 驱动器端 ,发送数据 按照7:1的比例串 行化 , 这样就将28 bit数据串行 转化为4路数据 , 分别通过 差分信号 对传输 ; 在接收器 端又将4路串行数 据转换回28 bit并行数据 , 方便FPGA进行数据 处理 。

3系统设计

高速图像 采集系统 一般分为 图像获取 、 图像接收 、 图像控制 、 图像存储 和图像显 示几个部 分 , 本设计主 要是实现 图像的接 收和显示 ,总体框图[5]如图3所示 。

3.1图像的接收和接口控制

图像数据 由高速相 机发送过 来 , 在基本模 式下相机 发送的数 据包括了24 bit图像数据 和4个同步信 号 , 并串转换 为4路串行差 分信号 。 在接收端 需要将这4路串行信 号转换为FPGA能够识别 的并行CMOS/TTL信号 , 所以在图 像采集端 就需要串 并转换芯 片实现信 号转换 。 本设计采 用了美国 国家半导 体公司的DS90CR288A[6]芯片实现 上述要求 。 此外 ,相机控制 信号和串 行通信信 号也需要 转换芯片 , 分别使用 美国国家 半导体公 司的DS90LV031A和DS90LV019芯片实现 。 基本配置 模式具体实现框 图如图4所示 。

如图4,Camera Link接口选用3M公司生产 的MDR26作为信号 传输的连 接器 。 在基本模 式下相机 端和采集 卡端各有 一个 ,中级和高 级模式下 则各有两 个MDR26连接器 。 其详细引 脚接口可 参照文献 [ 1 ] 。 FPGA接收288A芯片转换 的28 bit数据 , 并可根据 相机提供 的FVAL、LVAL和DVAL 3个同步信 号将接收 到的数据 通过液晶 显示器显 示出来 。 FPGA还可以通 过019和031A芯片实现 对相机的 控制 , 例如设置 曝光模式 、输出模式 、外同步等 。

图5为Camera Link接口基本 (Base) 配置模式 的硬件实 现原理图 。 中级 (Medium)配置比图5多了一个MDR26连接器和 一块288A芯片 , 连接方法 与图5类似 。 图中最右 边的28个引脚为 采集到的 图像数据 和同步信 号的输出 引脚 , 将采集到 的数据送 到FPGA的FMC连接器上 , 这样FPGA就可以方 便地对数 据进行操 作 。 图5中每对差 分对之间 跨接一个100 Ω 的电阻 ,用来确保 信号的完 整性 ,减少终端 信号的反 射 。 硬件模块 搭建完毕 ,就可以进 行数据的 采集 。 图6所示为图 像数据采 集的时序 图 , 从图中可 以看出 , 相机输出 的FVAL和LVAL信号都为 周期信号 , 第一个FVAL低电平出 发相机发 送数据 ,当FVAL和LVAL同时为低 电平时 ,数据无效 。 FVAL的两个低 电平之间 为一行数 据 。

3.2图像的显示

4M60相机在Medium模式下 , 可以同时 输出4路 ( Taps ) 80 MHz数据 , 即一个时 钟周期可 以同时输 出4个像素点 的数据 。 像素点的 输出方式 如图7所示 ,像素数据 从屏幕左 边到右边 、 从屏幕下 方到上方 依次输出 。 4通道输出 方式下 ,4个通道依 次输出像 素点 , 即通道1依次输出 第1、5、9、13、17…2 349个像素点 的数据 。

像素4通道同时输出时,每个通道的时钟率为80 MHz, 4个通道同 时输出则 为320 MHz的数据率[3]。 而VGA显示标准 中 , 最大只能 显示108 MHz、1 280×1 024分辨率的 图像 ,达不到要 求 。 所以在显 示过程中 选一路数 据进行显 示来验证 设计结果 。 此时 , 图片的分 辨率就变 为588 × 432 , 根据VGA显示标准 表 , 选择640 × 480@60显示标准 ,60为每秒显 示帧数 , 与相机要 求匹配 , 但是640× 480显示标准的时钟只有25 MHz , 达不到相 机的数据 率 , 所以在FPGA中采用了 乒乓存储 结构[7]对数据进 行缓存 , 从而达到 实时显示 的效果 , 显示效果 如图8所示 。图像未经 处理显示 效果略有 失真 , 但总体还 是比较理 想 。

4结论

上一篇:A型夹层下一篇:成体系试验