logo资料库

基于FPGA多通道采样系统设计.doc

第1页 / 共46页
第2页 / 共46页
第3页 / 共46页
第4页 / 共46页
第5页 / 共46页
第6页 / 共46页
第7页 / 共46页
第8页 / 共46页
资料共46页,剩余部分请下载后查看
Abstract
引言
1.1 FPGA发展历程
1.2 VHDL语言介绍
2 多通道采样系统的组成
3 总体方案设计与论证
3.1 方案设计
3.1.1方案一
3.1.2方案二
3.1.3方案三
3.2 方案比较
4 单元电路的设计
4.1 音频放大、滤波部分
4.1.1音频放大部分
4.1.2有源滤波器的设计
4.2 AD采样电路
4.2.1芯片介绍
4.2.2芯片应用
4.3 FPGA控制部分
4.3.1通道选择模块
4.3.2AD7892控制部分
4.3.3延时模块的设计
4.3.4串并输出选择控制
4.3.5FIFO模块
4.4 FPGA的硬件设计
4.4.1EP1K30TC144-3芯片介绍
4.4.2芯片组成描述
4.4.3芯片工作电压设计
4.4.4芯片配置介绍
4.4.5电路设计注意事项
4.4.6硬件电路设计技巧
5 软件介绍
5.1 MAX+PlusⅡ
5.2 Electronics Workbench(EWB)
6 整机调试
7 结论
谢 辞
参考文献
附 录
1 各模块程序
(1)通道选择模块
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity count is
port(clk:in std_logic;
--cnt:out integer range 0 to 7;
cnt : out std_logic_vector(2 downto 0));
--oc : out std_logic);
end count;
architecture archcount of count is
signal q:std_logic_vector(2 downto 0);
begin
counter:process(clk)
begin
if(clk'event and clk='1') then
if q="111" then
q<="000";--oc<='1';
else
q<=q+1;--oc<='0';
end if;
end if;
cnt<=q;
end process;
end archcount;
(2)延时模块
library ieee;
use ieee.std_logic_1164.all;
entity delay is
port(in1,in2,in3:in std_logic;
out1,out2,out3:out std_logic);
end delay;
architecture behav of delay is
signal comin:std_logic_vector(2 downto 0);
signal comout:std_logic_vector(2 downto 0);
begin
process(in1,in2,in3)
begin
comin<=in3&in2&in1;
case comin is
when "000"=> comout<="111";
when "001"=> comout<="000";
when "010"=> comout<="001";
when "011"=> comout<="010";
when "100"=> comout<="011";
when "101"=> comout<="100";
when "110"=> comout<="101";
when "111"=> comout<="110";
when others=>comout<="ZZZ";
end case;
out1<=comout(0);out2<=comout(1);out3<=comout(2);
end process;
end behav;
(3)AD采样控制模块
library ieee;
use ieee.std_logic_1164.all;
entity adcontrol is
port(D : in std_logic_vector(11 downto 0);
clk,eoc : in std_logic;
b0,b1,b2:in std_logic;
wr_en,rd_en : out std_logic;
lock0,conv,rd,cs: out std_logic;
Q : out std_logic_vector(15 downto 0))
end entity;
architecture behav of adcontrol is
type states is(st1,st2,st3,st4,st5,st6,st7,st8);
signal current_state,next_state:states:=st1;
signal regl1 : std_logic_vector(11 downto 0);
signal regl : std_logic_vector(15 downto 0);
signal lock : std_logic;
begin
lock0 <= lock;
end behav;
(4)串并转换模块部分程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity counter4 is
port(clk:in std_logic;
cnt4 : out std_logic_vector(3 downto 0)
);
end counter4;
architecture archcount of counter4 is
signal q:std_logic_vector(3 downto 0);
begin
counter:process(clk)
begin
if(clk'event and clk='1') then
if q="1111" then
q<="0000";
else
q<=q+1;
end if;
end if;
cnt4<=q;
end process;
end archcount;
2 FPGA顶层设计图
3 电路设计图
(1)音频放大
(2)滤波器
(3)AD7892电路
FPGA芯片PCB图
摘 要 本论文介绍了基于 FPGA 的多通道采样系统的设计。用 FPGA 设计一个多通道采样控 制器,利用 VHDL 语言设计有限状态机来实现对 AD7892 的控制。由于 FPGA 器件的特性 是可以实现高速工作,为此模拟信号选用音频信号。由于音频信号的频率是 20Hz-20KHz, 这样就对 AD 转换的速率有很高的要求.因为 FPGA 的功能很强大,所以我们把系统的许 多功能都集成到 FPGA 器件中,例如 AD 通道选择部分,串并输出控制模块,这样使得整 个系统的外围电路简单、系统的稳定性强。FPGA 的配置模式选用被动串行模式,这样 就增强了系统的可扩展性。输出模式可选择性使得系统的应用相当广泛,串行输出可以 用于通信信号的采集,方便调制后发射到远程接受端,远程接收端对采集的数据进行解 调;而并行输出模式则可以通过高速存储器将采集的信号放到微机或者其他的处理器 上,根据采集的数据进行相应的控制。此系统的缺点是由于 FPGA 器件配置是基于 SRAM 查找表单元,编程的信息是保持在 SRAM 中,但 SRAM 在掉电后编程信息立即丢失,所以 每次系统上电都需要重新配置芯片,这对在野外作业的工作人员很不方便,解决的方法 是专用的配置器件来配置 FPGA,在每次系统上电的时候会自动把编程信息配置到 FPGA 芯片中。但设计中没有采用到这种配置方案主要是考虑到专用配置器件的价格问题。 本文开始介绍了多通道系统的组成部分,然后分别介绍了各个组成部分的原理和设 计方法,其中重点介绍了FPGA软件设计部分。还对当前十分流行的基于FPGA的设计技术 作了简单的阐述,最后对系统的调试和应用作了简短的说明。 关键词:音频放大;滤波器;FPGA;VHDL;AD7892;有限状态机;
Abstract The paper introduces the design of multiple channel sampling system based on FPGA, It designs a multiple channel control sampling instrument with FPGA, I use VHDL to design ASM and then achieve the control to AD7892. Because the FPGA device can work in high-speed, we select audio signal for analog signals. The range of audio signal frequency is 20Hz-20 KHz, And then the transform speed of AD sampling must be very high. We integrate many modules in the FPGA device. For example the AD sampling channel control, the mode of output which made the circuit simply and the system stably. We choose Passive Serial for configuring the FPGA device which made the system can extend easily. The mode of output can control which made this system can use many field. The serial output mode can use in the sampling of communication. The sampling data can launch to the long-distance sink by brewage, and then the long-distance sink can demodulation the sampling data. The parallel output mode can put the sampling data to the microprocessor or other processor by the high-speed memorizer. And then control accordingly. The disadvantage of this system is that the configure of the FPGA device is based on SRAM LUT. The message of programming is kept in the SRAM, which will lose when the system is out of power supply. So we should reconfigure the programming message into the FPGA device when the system has the power supply again. It is not very convenience for working outside. But this can be resolve by using appropriative configure device which can load the configure message into the FPGA device automatically when the system have power supply. Because the price of the appropriative device, I don't choose this configure mode in this design. This paper introduce the multiple channel sampling system in the first place, and then introduce the principle of each module and design method separately, among these I introduce the designs of FPGA especially. I also introduce the designing technique which is popular at present based on FPGA simply. Finally, I introduce debugging and application of this system. Key words: audio amplifying; filter; FPGA; VHDL; AD7892; ASM
目 录 引言···························································1 1 FPGA 和 VHDL 概述·············································1 FPGA 发展历程·················································1 VHDL 语言介绍·················································3 2 多通道采样系统的组成········································3 3 总体方案设计与论证··········································4 3.1 方案设计·····················································4 3.1.1 方案一·····················································4 3.1.2 方案二·····················································4 3.1.3 方案三·····················································4 3.2 方案比较·····················································4 4 单元电路的设计··············································5 4.1 音频放大、滤波部分············································5 4.1.1 音频放大部分················································5 4.1.2 有源滤波器的设计·············································6 4.2 AD 采样电路···················································8 4.2.1 芯片介绍····················································8 4.2.2 芯片应用···················································11 4.3 FPGA 控制部分·················································11 4.3.1 通道选择模块···············································11 4.3.2 AD7892 控制部分·············································12 4.3.3 延时模块的设计·············································17 4.3.4 串并输出选择控制············································18 4.3.5 FIFO 模块··················································18 4.3.6 AD 采样系统顶层电路设计······································19 4.4 FPGA 的硬件设计··············································20 4.4.1 EP1K30TC144-3 芯片介绍·······································20 4.4.2 芯片组成描述···············································20 4.4.3 芯片工作电压设计············································21 4.4.4 芯片配置介绍···············································22
4.4.5 电路设计注意事项············································24 4.4.6 硬件电路设计技巧············································25 5 软件介绍···················································25 5.1 MAX+PlusⅡ··················································25 5.2 Electronics Workbench(EWB) ····································25 5.3Protel99SE···················································26 6 整机调试···················································26 6.1 硬件电路的调试步骤···········································26 6.1.1 音频放大部分调试············································26 6.1.2 滤波部分调试···············································27 6.1.3LM317 稳压块调试·············································27 6.1.4FPGA 硬件电路调试············································27 6.1.5AD 采样模块调试··············································28 6.2 联机调试····················································28 6.3 调试注意事项·················································28 7 结论·······················································29 谢辞··························································30 参考文献······················································31 附录··························································32
引言 FPGA(Field-Programmable Gate Array 现场可编程门阵列)是近年来广泛应用的 超大规模、超高速的可编程逻辑器件,由于其具有高集成度(单片集成的系统门数达上 千万门)、高速(200MHz以上)、在线系统可编程等优点,为数字系统的设计带来了突 破性变革,大大推动了数字系统设计的单片化、自动化,提高了单片数字系统的设计周 期、设计灵活性和可靠性。在超高速信号处理和实时测控方面有非常广泛的应用。 硬件描述语言 HDL 是一种用形式化方法描述数字电路和系统的语言。VHDL 是硬件 描述语言的几种代表性语言的一种。VHDL(Very High Speed Integrated Circuit Hardware Description Language 即超高速集成电路硬件描述语言)主要用于描述数字 系统的结构、行为、功能和接口,与其它的硬件描述语言相比,VHDL 具有更强的行为 描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。用 VHDL 设计的程序, 通过综合工具产生网表文件,下载到目标器件,从而生成硬件电路。VHDL 还是一种仿 真语言,包括行为仿真、功能仿真和时序仿真,给系统设计各个阶段的可行性做出了决 策。 目前,这种高层次(high-level-design)的方法已被广泛采用。据统计,目前在美 国硅谷约有90%以上的ASIC和FPGA采用硬件描述语言进行设计。 数据采集在现代工业生产以及科学研究中的重要地位日益突出,并且实时高速数 据采集的要求也不断提高,在信号测量、图像处理,音频信号处理等一些高速、高精度 的测量中,都需要进行高速数据采集。本次设计就是用 FPGA 实现采样系统,来实现音 频信号的数据采集。 1 FPGA 和 VHDL 概述 1.1 FPGA 发展历程 当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在 不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规 模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着 微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系 统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望 ASIC 的设计周期尽可 能短,最好是在实验室里就能设计出合适的 ASIC 芯片,并且立即投入实际应用之中, 因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列 (FPGA)和复杂可编程逻辑器件(CPLD)。 早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器 (EPROM)和电可擦除只读存储器(EEPROM)三种。由于结构的限制,它们只能完成简单的 数字逻辑功能。其后,出现了一类结构上较复杂的可编程芯片,即可编程逻辑器件(PLD), 它能够完成各种数字逻辑功能。典型的 PLD 由一个“与”门和一个“或”门阵列组成, 而任意一个组合逻辑都可以用“与一或”表达式来描述,所以, PLD 能以乘积和的形
式完成大量的组合逻辑功能。 这一阶段的产品主要有 PAL(可编程阵列逻辑)和 GAL(通用阵列逻辑)。 PAL 由一个 可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择 地被置为寄存状态。 PAL 器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM 技 术和 EEPROM 技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由 一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。 PLA 器件既有现场可编程的,也有掩膜可编程的。 在 PAL 的基础上,又发展了一种通用阵 列逻辑 GAL (Generic Array Logic),如 GAL16V8,GAL22V10 等。它采用了 EEPROM 工艺, 实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很 强的灵活性,至今仍有许多人使用。 这些早期的 PLD 器件的一个共同特点是可以实现 速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。 为了弥补这一缺陷,20 世纪 80 年代中期。 Altera 和 Xilinx 分别推出了类似于 PAL 结构的扩展型 CPLD(Complex Programmab1e Logic Device)和与标准门阵列类似的 FPGA(Field Programmable Gate Array),它们都具有体系结构和逻辑单元灵活、集成 度高以及适用范围广等特点。这两种器件兼容了 PLD 和通用门阵列的优点,可实现较大 规模的电路,编程也很灵活。与门阵列等其它 ASIC(Application Specific IC)相比, 它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质 量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一 般在 10,000 件以下)之中。几乎所有应用门阵列、PLD 和中小规模通用数字集成电路的 场合均可应用 FPGA 和 CPLD 器件。 FPGA(现场可编程门阵列)与 CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,它 们是在 PAL,GAL 等逻辑器件的基础之上发展起来的。同以往的 PAL,GAL 等相比较,FPGA 的规模比较大,它可以替代几十甚至几千块通用 IC 芯片。这样的 FPGA 实际上就是一个 子系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。 尽管 FPGA 和其它类型 PLD 的结构各有其特点和长处,但概括起来,它们是由三大 部分组成的: 一个二维的逻辑块阵列,构成了 PLD 器件的逻辑组成核心; 输入/输出块; 连线资源:由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用 于逻辑块之间、逻辑块与输入/输出块之间的连接。 FPGA 芯片都是特殊的 ASIC 芯片,它们除了具有 ASIC 的特点之外,还具有以下几 个优点: (1)随着 VLSI(Very Large Scale IC,超大规模集成电路)工艺的不断提高单一 芯片内部可以容纳上百万个晶体管,FPGA 芯片的规模也越来越大,其单片逻辑门数已 达到上百万门,它所能实现的功能也越来越强,同时也可以实现系统集成。
(2)FPGA 芯片在出厂之前都做过百分之百的测试,不需要设计人员承担投资的风 险和费用,设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的 最终功能设计。所以,FPGA 的资金投入小,节省了许多潜在的花费。 (3)用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件 就可实现不同的功能。 所以,用 FPGA 试制样片,能以最快的速度占领市场。 FPGA 软件包中有各种输入 工具和仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内 就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。 当电路有少量改动 时,更能显示出 FPGA 的优势。电路设计人员使用 FPGA 进行电路设计时,不需要具备专 门的 IC(集成电路)深层次的知识, FPGA 软件易学易用,可以使设计人员更能集中精力 进行电路设计,快速将产品推向市场。 1.2 VHDL 语言介绍 VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件 特征的语句外,VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语 言。VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个 电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分), 一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内 外部分的概念是 VHDL 系统设计的基本点。应用 VHDL 进行工程设计的优点是多方面的。 (1)与其他的硬件描述语言相比,VHDL 具有更强的行为描述能力,从而决定了他 成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构, 从逻辑行为上描述和设计大规模电子系统的重要保证。 (2)VHDL 丰富的仿真语句和库函数,使得在任何系统的设计早期就能查验设计系 统的功能可行性,随时可对设计进行仿真模拟。 (3)VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和 已有设计的再利用功能。符合市场需求的大规模系统设计,高速的完成必须有多人甚至 多个开发组共同并行工作才能实现的工程。 (4)对于用 VHDL 完成的一个确定的设计,可以利用 EDA 工具进行逻辑综合和优化, 并自动的把 VHDL 描述设计转变成门级网表。 (5)VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管 最终设计实现的目标器件是什么,而进行独立的设计。 2 多通道采样系统的组成 本系统硬件电路包括 FPGA 设计的多通道采样控制器和相应的通道选择电路,A/D 转换电路,由于采样音频信号,所以需要设计音频的放大和滤波电路。系统组成部分如 图 2.1 所示:
信号 1 信号 2 信号 7 信号 8 音频放大、 通 道 选 择 部 滤波部分 分 模拟信号输入 控制 AD 转换部分 控制采样 数字信号存储 FPGA 控 制的 通道 选择和 AD 控制部 分 输出 图 2.1 多通道系统的组成 3 总体方案设计与论证 3.1 方案设计 3.1.1 方案一 用 FPGA 实现一个 3 位 8 进制的计数器,记数脉冲是 FPGA 锁存 AD 转换数据的锁存 信号,计数器的输出作为数据开关 CD4051 的地址。利用进程的并行操作来实现 AD574 来实现 AD 转换,这个方案的优点是节省了 FPGA 芯片的资源,但数字电路较为复杂,而 且 AD574 的转换速率最高达到 50KHz,不能达到 8 通道的高速音频采集。 3.1.2 方案二 用 FPGA 实现一个 3 位 8 进制的计数器,记数脉冲是 FPGA 锁存 AD 转换数据的锁存 信号,计数器的输出作为数据开关 CD4051 的地址。用有限状态机来实现对 AD7892 的控 制,用外部 RAM 实现采样数据的存储,这样电路实现比较简单,而且 AD7892 的采样速 率可以达到 500KHz,可以实现 8 个通道同时 8 路音频信号采集。但需要外接 RAM 芯片, 成本比较高,而且外部 RAM 的读写速度达不到高速数据采集的要求。 3.1.3 方案三 用 FPGA 实现一个 3 位 8 进制的计数器,记数脉冲是 FPGA 锁存 AD 转换数据的锁存 信号,计数器的输出作为数据开关 CD4051 的地址。用有限状态机来实现对 AD7892 的控 制,这样电路实现比较简单,而且 AD7892 的采样速率可以达到 500KHz,可以实现 8 个 通道同时 8 路音频信号采集。同时采用 FIFO 模块,让数字数据先存到队列中,一边往 队列中写数据,一边从队列中读数据,这样就对数字数据起了一个高速缓存的作用,更 加快了整个系统的运行速度。 3.2 方案比较 为获得更佳的系统功能,使系统资源能得到充分地利用,我们采用第三种方案。主
分享到:
收藏