毕业设计169邵阳学院基于模拟电路的波形发生器设计

毕业设计169邵阳学院基于模拟电路的波形发生器设计
毕业设计169邵阳学院基于模拟电路的波形发生器设计

前言

波形发生器是一种常用的信号源,广泛用于科学研究、生产实践和教学实践等领域。如设计和测试、汽车制造、生物医药、传感器仿真、制造模型等。

传统的信号发生器采用模拟电子技术,由分立元件构成振荡电路和整形电路,产生各种波形。它在电子信息、通信、工业等领域曾发挥了很大的作用。但是采用这种技术的波形发生器电路结构复杂、体积庞大、稳定度和准确度较差,而且仅能产生正弦波、方波、三角波等几种简单波形,难以产生较为复杂的波形信号。随着微处理器性能的提高,出现了由微处理器、D/A以及相关硬件、软件构成的波形发生器。它扩展了波形发生器的功能,产生的波形也比以往复杂。实质上它采用了软件控制,利用微处理器控制D/A,就可以得到各种简单波形。但由于微处理器的速度限制,这种方式的波形发生器分辨率较低,频率切换速度较慢。

从2007年2月到2007年4月,在系统研究国内外波形发生器的基础上提出了基于Matlab和FPGA技术的波形发生器,在FPGA内开辟高速存储器ROM做查询表,通过Matlab获得波形数据存入ROM中,波形数据不断地,有序地从ROM 中送到高速D/A转换器对存储器的波形数据进行转换。因此只要改变FPGA中查找表数据就可以产生任意波形,因此该研究方法可以产生任意波形。

随着我国四个现代化和经济发展,我国在科技和生产各领域都取得了飞速的发展和进步,同时这也对相应的测试仪器和测试手段提出了更高的要求,而波形发生器已成为测试仪器中至关重要的一类,因此在国内发展波形发生器具有重大意义和实际价值。例如,它能模拟编码雷达信号、潜水艇特征信号、磁盘数据信号、机械振动瞬变过程、电视信号以及神经脉冲之类的波形,也能重演由数字示波器捕获的波形等。

在本次设计中,我通过Matlab获取了波形数据,在FPGA中开辟了ROM区域,在MaxplusⅡ开发平台上,实现了电路的VHDL硬件描述和仿真,电路功能在EDA平台上得到了验证,但由于我的能力和水平有限,论文中肯定会有不妥之处和错误,恳请老师和同学提出批评和改进意见,在此表示由衷的感谢。

1 波形发生器

1.1 基于模拟电路的波形发生器设计方案

正弦波振荡电路是用来产生一定频率和幅度的正弦波信号。如图1.1所示为利用集成运放构成的RC 桥式正弦波振荡器的电路原理图。

图1.1 RC 桥式正弦波振荡器

适当调整反馈电阻3R 值,使电路产生振荡,输出波形为稳定的不失真的正弦波。 (1)电路的正振荡频率和起振条件

在图1.1中,令12R =R =R ,12C =C =C 则该电路的振荡频率由式(1.1)决定。

01

f =2πRC

(1.1)

起振条件由式(1.2)决定:F 4R 2R (1.2) 在电路图1.1中, F 35d R =R +R //r ,d r 表示限幅二极管导通时的动态电阻。 (2)选择RC 参数的主要依据和条件

①因为RC 桥式振荡器的振荡频率是由RC 网络决定的,所以选择RC 的值时应该把已知振荡频率0f 作为主要依据。

②为了使选频网络的特性不受集成运算放大器输入和输出的电阻的影响,选择R 时还应该考虑下列条件:i

o r R

r 式中,i r 是集成运算放大器同相端输入电阻;o r 是

集成运算放大器的输出电阻。

(3)计算R 和C 的值

由式(1.1)可计算出电容值,初选R 的值由式(1.3)算出C 的值再复算R 值。

Vo

01

C=

2πf R

(1.3) 实际应用中,要注意选用稳定性好的电阻和电容。

(4)选择电阻4R 和5R 电阻4R 和5R 可根据式(1.2)来确定,通常取5R =2.14R ,这样既能保证起振,又不致引起严重的波形失真。为了减小运算放大器输入失调电流及其漂移的影响,应尽量满足45R=R //R 的条件。注意,4R 和5R 的最佳数值还是要通过实验调整来确定。

(5)稳幅电路的作用及参数选择 由于元件误差,温度等外界因数的影响,振荡器往往达不到理论设计的效果。因此,一般在振荡器的负反馈支路中加入自动稳幅电路,根据振荡幅度的变化自动改变负反馈的强弱,达到稳幅效果。图1.1中的二极管1D 和

2D 在振荡过程中总有一个二极管处于正向导通状态,正向导通电阻d r 与3R 并联。当振幅大时,d r 减小,负反馈增强,限制振幅继续增长;反之振幅减小时d r 加大,负反馈减弱,防止振幅继续减小,从而达到稳幅的目的。稳幅二极管的选择应注意以下两点:

①为了提高电路的温度稳定性,应尽量选用硅管。

②为了保证上下振幅对称,两个稳幅二极管特性参数必须匹配。 (6)电阻3R 、5R 值的确定

二极管的正向电阻与并联电阻值差不多时,稳幅特性和改善波形失真都有较好的效果。通常5R 选几千欧,5R 选定后3R 的阻值便可以初步确定,3R 的调节范围应保证达到F R 所需的值。

因为:F 35d R =R +R //r (1.4) 取5R =d r

所以:3F 5d F 5R =R -R //r =R 0.5R -? (1.5) 但是,3R 与5R 的最佳数值仍要通过实验调整来确定。 (7)集成运算放大器的选择

集成运算放大器作为振荡电路的放大器,起放大作用,它是整个振荡电路的基础。选择集成运算放大器时,除希望输入电阻较高和输出电阻较低,最主要的是要选择其增益带宽积满足下列关系:

od BW 0A f >3f (1.6)

1.2 基于MCU 的波形发生器设计方案

波形的生成及对频率和相位的控制均由单片机编程实现。波形生成程序生成正弦波信号在一个周期内的波形数据,这些数据循环输出至D/A 转换器,通过在输出数据指令之间插入NOP 指令实现对频率的控制,原理框图如图1.2所示。

图1.2 以MCU 为核心的设计方案原理框图

此方法产生的信号频率范围、步进值取决于所采用的每个周期的输出点数及单片机执行指令的时间(与单片机的结构及选用的晶体振荡器等有关)。

此方案的优点是硬件电路简单,所用器件少,可相对容易地产生各种波形,在低频区基本上能实现所要求的功能;缺点是控制较复杂,精度不易满足,生成波形的频率范围小,特别是难以生成高频波形。

例如,对输出信号频率max f =20kHz 而言,因为移相分辨率为o 1,则一个周期至少要采样360个点,即MCU 发送波形幅度数据的速度,cp max f 360f ≥即cp f 7.2MHz ≥则前后发送2个波形幅度数据的时间间隔max T 0.1388μs ≤,但是MCU 的指令执行周期一般有几个μs ,从而MCU 发送信号一个周期的波形数据一般要几十个μs 。故以

MCU 为核心的实现方案难以产生高频波形。

1.3 基于MCU 与FPGA 相结合的波形发生器设计方案

该方案采用DDS (Direct Digital Synthesis ,直接数字频率合成)技术产生数字式移相正弦波信号。信号生成主要由FPGA 部分实现,FPGA 部分主要包括相位累加器和波形查找表(波形查找表由FPGA 外部的存储器实现)。DDS 技术将输出波形的一个完整周期的幅度值都顺序地存放在波形存储器中,通过控制相位增量产生频率、相位可控的波形。一个数字频率合成器由相位累加器、加法器、波形存储ROM 、

D/A 转换器和低通滤波器(LPF )构成。如图1.3所示。

其中K 为频率控制字、P 为相位控制字、W 为波形控制字、C f 参考时钟频率,N 为相位累加器的字长,D 为ROM 数据位及D/A 转换器的字长。相位累加器在时钟C f 的控制下以步长K 作累加,输出的N 位二进制码与相位控制字P 、波形控制字W 相加后作为波形ROM 的地址,对波形ROM 进行寻址,波形ROM 输出D 位的幅度S(n)经

D/A 转换器变成阶梯波S(t),再经过低通滤波器平滑后就可以得到合成的信号波形,

合成的信号波形形状取决于波形ROM 存放的幅度码,因此用DDS 可以生成任意波形。DDS 电路的基本组成:

图1.3 基于DDS 技术设计方案原理框图

(1)频率预置与调节电路

K 被称为频率控制字,也叫相位增量。DDS 方程: N 0C f =f K 2,0f 为输出频率,

C f 为频率时钟。当K=1时,DDS 输出最低频率(也即频率分辨率)为N C f 2,而DDS 的最大输出频率由Nyquist 采样定理决定,即C f 2,也就是说K 的最大值为N 2-1。因此,只要N 足够大DDS 可以得到很细的频率间隔。要改变DDS 的输出频率,只要改变频率控制字K 即可。

(2)累加器

相位累加器由N 位加法器与N 位寄存器级联构成。累加器框图如图1.4所示。

图1.4 累加器框图

每来一个时钟脉冲C f ,加法器将频率控制字K 与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端。寄存器将加法器在上一个时钟作用后所产生的相位数据反馈到加法器的输入端;以加法器在下一个时钟作用下继续与频率控制字进行相加。这样,相位累加器在时钟的作用下进行相位累加。当相位累加器加满量时就会产生一次溢出,完成一个周期的动作。

(3)控制相位的加法器

通过改变相位控制字P 可以控制输出信号的相位参数。令相位加法器的字长为N ,当相位控制字由0跃变到P (P 0)时,波形存储器的输入为相位累加器的输出与相位控制字P 之和,因而其输出的幅度编码相位会增加N P/2,从而使最后输出的信号产生相移。

(4)控制波形的加法器

通过改变波形控制字W 可以控制输出信号的波形。由于波形存储器中的不同波形是分块存储的,所以当波形控制字改变时,波形存储器的输入为改变相位后的地址与波形控制字W (波形地址)之和,从而使最后输出的信号产生相移。

(5)波形存储器

有相位累加器输出的数据作为波形存储器的详细地址,进行波形的相位—幅值转换,即可在给定的时间上确定输出的波形的抽样幅值。N 位寻址ROM 相当于把

o 0~o 360的正弦信号离散成具有N 2个样值的幅度以D 位二进制数值固化ROM 中,按

照地址的不同可以输出相应相位的正弦信号的幅值。相位—幅度变换原理图如下图

1.5所示:

图1.5 相位—幅度变换原理图

(6)D/A 转换器

D/A 转换器的作用是把合成的正弦波数字量转换成模拟量。正弦幅度量化序列S(n)经D/A 转换后变成了包络为正弦波的阶梯波S(t)。需要注意的是,频率合成器对D/A 转换器的分辨率有一定的要求,D/A 转换器的分辨率越高,合成的正弦波S(t)台

阶数就越多,输出的波形的精度也就越高。

(7)低通滤波器

对D/A 输出的阶梯波S(t)进行频谱分析,可知S(t)中除主频0f 外,还存在分布在

C f ,2C f ......两边0f 处的非谐波分量,幅值包络为辛格函数。因此,为了取出主频0f ,必须在D/A 转换器的输出端接入截止频率为C f /2的低通滤波器。

1.4 基于Matlab 与FPGA 的波形发生器设计方案

(1)基于Matlab 软件生成波形查找表。 ①生成正弦波波形查找表

Matlab 是一套功能十分强大的工程计算及数值计算分析

软件。目前,它已经成为世界上应用量最广泛的工程计算软件之一。Matlab 最大的特点是简单和直接,它主要有如下特点:编写简单,编程效率高,简单易懂;能在同一界面上进行灵活操作,用户使用方便;Matlab 语言有丰富的库函数,进行数学运算时可以在直接调用,扩充能力强,交互性好;高效方便的矩阵个数组运算;Matlab 绘图十分方便;本设计正是基于

Matlab 软件生成波形函数,再对波形进行数据采集,生成查找

表文件,然后作为头文件包含进工程。 图1.6 波形数据采集流程图

②输出缓存的初始化

同样根据所需要计算的波形频率大小定义一个数组用于存放输出的波形数据。数组的大小可以根据实际情况确定,如果需要波形持续时间教长则数组长一些。初始化使其所有元素值等于0,如这个数组大小为1024,用一个for 循环语句即可实现初始

化。每次生成新波形时必须把次缓存清零。总体流程如图1.6所示。

(2)基于FPGA 实现波形输出

波形发生电路主要由时钟电路、FPGA 控制电路、D/A 转换电路、集成运放、低通滤波电路五部分组成。波形发生器可以被看成是数字波形合成器。波形数用数字形式存储在ROM 当中,通过D/A 将一个数字量转换成模拟量。波形转换速度是由控制地址发生器的时钟控制的。通过改变ROM 中的数字量来实现模拟信号改变。

地址发生器是指波形发生器的波形输出机制。地址发生器是靠向ROM 输送一定顺序的地址来实现的,每一个新的时钟到来时提供一个新的地址(这里指采样时钟)。最简单的地址发生器就是计数器。每来一个时钟计数器就加一直到加到计数器的最大值,然后在从起始地址开始。如果把计数器的输出作为ROM 的地址输入,那么波形就会连续的输出了。波形输出的频率直接由采样时钟频率来控制。这种以计数器为基础的地址发生器结构简单,缺点就是整个波形ROM 的内容都必须连续输出。

地址发生器如图1.7所示。它允许计数器在任何地址处开始或终止,输出频率OUT

F 可用式(1.7)表示:

OUT F =CLK F (结束地址-起始地址)

(1.7)

公式中CLK F 为时钟频率,这里假定计数器是逐个递增的,因此ROM 的每一个点都可以访问到。由送入地址依次读取数据,所以通过DAC 转换是离散的信号,这就是从集成运放输出的波形是由很多点组成的原因。经D/A 转换的电流信号通过集成运放电路转换成电压信号,再通过低通滤波电路滤除高频分量,最后可在示波器上观察到连续、平滑的波形。

图1.7 波形发生器电路系统结构图

综合上述方案,基于模拟电路的波形设计方法此方案的优点是电路结构简单,原理简单易懂,成本低廉,能基本生成正弦波。缺点是生成的波形单一,幅度和频率固定,这种电路生成的正弦波信号越来越不能满足生产实践的需要,已经逐渐被淘汰。

基于单片机编程的波形发生器设计方案的优点是硬件电路简单,所用器件少,可相对容易地产生各种波形,在低频区基本上能实现所要求的功能;缺点是控制较复杂,精度不易满足,生成波形的频率范围小,特别是难以生成高频波形。

基于MCU 与FPGA 结合的波形发生器设计方案利用单片机作为控制芯片,由

MCU 产生频率控制字和相位控制字并送给FPGA 。这样,需要高速运行的电路均

由FPGA 实现,大大减轻了对MCU 速度的要求。且输出信号频率切换时间短,输出信号频率稳定度高,输出信号的频率和相位可以快速程控切换,输出相位可连续改变,可编程以及灵活性大。此方案的不足就是控制较为复杂,对系统硬件要求高,成本比较高等。

基于Matlab 与FPGA 结合的波形发生器设计方案综合了采用MCU 与FPGA 结合的技术的方案的所有优点,而且此方案用软件来实现采用MCU 与FPGA 结合的技术方案中用硬件实现的功能,具有简单易操作的优点也大大的降低了成本。由次可见,该方案更具有可行性,而且能很好地体现技术的先进性。

FPGA

2 电路设计

2.1 电路原理

波形发生电路主要由时钟电路、FPGA 控制电路、D/A 转换电路、集成运放、低通滤波电路五部分组成。电路原理图2.1所示。

图2.1 波形发生电路原理图

利用FPGA 实现波形发生器的工作原理如下:时钟脉冲产生一个50Mhz 的固有频率,送往FPGA 目标芯片,波形数据存储于FPGA 内部的ROM 中,这个ROM 是由FPGA 中的EAB 利用LPM-ROM 定制来实现的,它所占的存储容量小,转换速度快,FPGA 中的波形发生控制电路向波形数据ROM 发出地址信号,当接受来自FPGA 的地址信号后,将从数据线输出相应波形数据,地址变化的越快,输出数据的速度越快,然后通过D/A 转换器对数据进行处理。

D/A 转换器主要采用8位一体的DAC0832,由于输出波形的频率上限与DA

转换器件的转换速度有很重要的关系,转换的速度由D/A 转换周期为1μs 所决定,输入电压为+5V 。负责将ROM 输出数据转换成模拟信号,D/A 转换的电流信号通过集成运放电路转换成电压信号,集成运放必须接12V 电压作为驱动低通滤波电路电压,模拟信号通过低通滤波后,可在示波器观察到光滑的正弦波。

H D R

2.2 单元电路设计

2.2.1 D/A 转换电路设计

(1)D/A 转换电路

DAC0832可编程数模转换器是一种常用的电流输出型的8位数模转换电路,

本次设计采用这种D/A 转换器。下图2.2是DAC0832在波形发生器里应用的电路:

OUT

图2.2 DAC0832及外围电路

在图2.2中,CS 、1WR 、2WR 、XFER 均接地,ILE 接高电平。为了保证稳幅输出,选用了TL0821构成稳幅电路,TL0821是一款低功耗、高速、宽带运算放大器,具有很强的大电流驱动能力。(实际电路测试表明,当负载为100Ω,输出电压峰值为10V 时,带宽大于500KHz ,幅度变化小于1 )稳幅输出电路主要是将

DAC0832的输出电流转变为输出电压,为滤波电路提供电压信号。

(2)D/A 转换原理

设计采用DAC0832可编程转换器,与DAC0809模数转换器的100s 模数转换速度相比,DAC0832数模转换器的输出电流建立时间只需1s 。因此,在可编程

DAC0832数模转换器上没有设计转换完成查询标志或转换完成中断请求输出信号,

不能够采用查询等待方式或者中断响应方式启动DAC0832数模转换器的数模转换过程,只能够使用直接控制方式启动DAC0832数模转换器的数模转换操作。

DAC0832的内部结构图如图2.3所示;DAC0832的内部由三部分组成:8位输入

寄存器用于存放CPU 送来的数字量,使输出数字量得到缓冲和锁存,由1LE 加以控

制。8位DAC 寄存器用于存放待转换数字量,由2LE 控制。8位D/A 转换电路由8位T 形电阻网和电子开关组成,电子开关受“8位DAC 寄存器”输出控制,T 形电阻网能输出和数字量成正比的模拟电流。所以说,DAC0832需要外接集成运算放大器才能将电流转变成输出电压。“8位输出寄存器”和“8位DAC 寄存器”用以实现两次缓冲,这样可以提高转换速度。

CC

REF OUT1OUT2

FB

图2.3 DAC 转换内部结构图

①引脚功能

DAC 是由双缓冲寄存器和R-2R 梯形D/A 转换器组成的CMOS 8位DAC 芯片。采用DAC0832采用20脚双列直插式封装,与TTL 电平兼容。

对应的引脚功能如图2.4

所示:

图2.4 DAC0832引脚排列图

数字量输入线0

7DI DI 常和CPU 数据总路线相连,用于输入CPU 送来的待转

换数字量。DAC 引脚功能说明如表2-1所示。

控制线(5条):CS 为片选线,ILE 为允许数字量输入线,XFER 为传送控制输入线,1WR 、2WR 为两条写命令输入线,1WR 用于控制数字量输入到输入寄存器,

(LSB 4DI 5DI 6

DI ()7DI MSB OUT1I OUT2

I CC

V 2

WR XFER IEL

当ILE 、CS 、1WR 均有效时,可将数据写入8位输入寄存器。2WR 用于控制转换时间,当2WR 有效时,在XFER 为传送控制信号作用下,可将锁存在输入寄存器的8位数据送到DAC 寄存器。1WR 和2WR 的脉冲宽度要求不小于500ns 。

表2-1 DAC 引脚功能说明

输出线(3条):FB R 为集成运放的反馈线,常常接到集成运放的输出端。OUT1I 和OUT2I 为两条模拟电流输出线。OUT1I +OUT2I 为一常数,若输入数值量全为“1”时,则OUT1I 取最大值,OUT2I 取最小值;若输入全为“0”时,OUT1I 取最小值,OUT2I 取最大值。

电源线(4条):cc V 为电源输入线,可在+5~+15V 范围内选择。ref U 为参考电压,一般在-0~+10V 范围,由稳压电源提供。DGND 为数字量地线,AGND 为模拟量地线。

②工作方式 由于DAC0832内部有两级缓冲寄存器,所以有三种工作方式可供选择:

直通工作方式 1WR 、2WR 、XFER 及CS 接低电平,ILE 接高电平。即不用写信号控制,外部输入数据直通内部8位D/A 转换器的数据输入端。

单缓冲工作方式 2WR 、XFER 接低电平,使8位DAC 寄存器处于直通状态,输入数据经过8位输入寄存器缓冲控制后直接进入D/A 转换器。

双缓冲工作方式 两个寄存器均处于受控状态,输入数据要经过两个寄存器缓冲控制后才进入D/A 转换器。这种工作方式可以用来实现多片D/A 转换器的同步输出。

③转换公式

为了将模拟电流转换成模拟电压,需把DAC0832的两个输出端OUT1I 和OUT2I 分别接到运算放大器的两个输入端上,经过一级运放得到单级性输出电压A1U 。D/A 转换单级性输出电路图如图2.2所示,该电路为8位数字量07D -D 经D/A 转换器转换为单级性电压输出。

转换公式如下:

一级运放的输出电压:A1REF 8

D

U =-V 2?

(2.1) D 为数字量的十进制数,即76107610D=D 2+D 2+...+D 2+D 2????

当REF V =5V 时,DAC0832的转换表如表2.2所示。

表2.2 DAC0832转换表

2.2.2 滤波电路设计

(1)滤波电路原理

滤波器是一种能使有用信号频率通过,同时抑制无用频率成分的电路,广泛应用于电子、电气、通信、计算机等领域的信号处理电路中。滤波器的种类很多,在本次设计中用到集成有源滤波器。集成有源滤波器是由集成运放和电阻电容等器件组成

的。随着电子技术、集成电路技术的迅速发展,集成有源滤波器在许多领域得到广泛应用。

在本次设计中,我们要滤除的频率分量主要是D/A 转换器所产生的高频分量,与我们所要保留的信号频率相差很远,因此相对来说,滤波器在通带内的平坦程度对我们来说比其衰减陡度更为重要,本次设计选择一阶低通滤波器电路。一阶低通滤波包含一

个RC 电路。图2.5是一阶低通滤波电路。

(2)滤波电路参数计算 图2.5 低通滤波电路

该滤波电路是反相放大器,其传递函数为:

()()()()0f f 0

f i 111f f

c U s Z s I G R 1

G S =-=-U s Z s I R 1+sC R s 1+w ?=

?? ?

??

()=

(2.2)

上式(2-2)中,f 01R G R =-

为零频增益,c w =f f

1

R C 为截止角频率。 其频率特性为:()0

c

G G jw w 1+j

w =

(2.3) 幅频特性为:(

)G ω=

(2.4)

相频特性为:()c ωδw =-π-arctan ω??

??? (2.5)

已知截止频率0f ,先确定R 的值,然后根据c w =f f 1/R C ,f f c C 1/R w =,得出电容的值,再由电容值去求电阻值。滤波信号是从运算放大器的同相端输入的,所以应该选用共模输入范围较大的运算放大器。运算放大器的增益带宽积应满足

od up 0A A f ≥,取od up A 100A ≥。一阶低通滤波器的缺点是:阻带特性衰减太慢,一般为

-20dB/10out ,所以这种电路只适用于对滤波特性要求不高的场合。只适合于低频信

号。

2.2.3 时钟电路

Uin

时钟输入是波形发生器必不可少的一部分,它能为FPGA提供时钟脉冲信号,考虑到EDA开发系统时钟输入的重要性,一个是50MHz的有源晶振作为时钟信号源输入,主要用于输入大的时钟信号,为波形发生器提供基准的时钟脉冲输入。有源晶振电路如图2.6所示:

图2.6 有源晶振电路

有源晶振的驱动能力强,晶振频率比较大,能达到几百兆Hz,采用有源晶振作为时钟源可以使电路的时钟扩大。HO-12系列的有源晶振采用TTL/HCMOS技术,频率范围是1000Hz-1000MHz,这里我们采用的是50MHz的有源晶振。

2.2.4 下载电路

FPGA配置可以使用专用的编程设备,也可以使用下载电缆。电可擦除编程工艺的优点是编程后信息不会因掉电而丢失,但编程的次数有限,编程的速度不快。对于SRAM型FPGA来说,可反复进行配置,在加电时可随时更改逻辑,但掉电后芯片中的信息丢失,每次上电时,必须重新载入信息,下载信息的保密性也不如前者。使用ALTERA的ByteBlaster(MV)并行下载电缆,连接PC机的并行打印口和需要编程或配置的器件,并与MAX+Plus II配合可以对ALTERA公司的多种CPLD、FPGA进行配置或编程。ByteBlaster(MV)下载电缆与ALTERA器件的接口一般是10芯的接口,其中ByteBlaster(MV)与计算机并口连接。MV即混合电压的意思。引脚对应关系如图2.7所示,10芯连接信号如表2.3所示。

图2.7 10芯片下载口

表2.3 芯接口各引脚信号名称

用Altera的ByteBlaster(MV)并行下载电缆,连接PC机的并行打印机口和需要编程的器件,在线配置FPGA,调试非常的方便。基于SRAM LUT的FPGA器件,由于是易失性器件,以ICR(In-Circuit Reconfigurability)即在线可重配置方式代替在线系统可编程(ISP)。电路可重配置是指允许在器件已经配置好的情况下进行重新配置,以改变电路逻辑结构和功能。在利用FPGA进行设计时可以利用FPGA 的ICR特性,通过连接PC机的下载电缆快速地下载设计文件至FPGA进行硬件验证。PS被动串行模式(MSEL1=0、MSEL0=0),PPS被动并行同步模式(MSEL1=1、MSEL0=0),PSA被动串行异步模式(MSEL1=1、MSEL0=0),PPA被动并行异步模式(MSEL1=1、MSEL0=1),JTAG模式(MSEL1=0、MSEL0=0)。图2.8为FPGA芯片PS模式配置电路。

ALTERA的

图2.8 ByteBlaster(MV)配置FPGA

2.2.5 芯片介绍

(1)FPGA的配置方式

在利用FPGA进行设计时可以利用FPGA的ICR特性,通过连接PC机的下载电缆快速地下载设计文件至FPGA进行硬件验证。Altera的基于SRAM LUT的FPGA 提供了五种配置模式,这些模式通过FPGA上的两个模式选择引脚MSEL1和MSEL0和设定的电平来决定的。FPGA的配置引脚功能如下:

MSEL0、MSEL1:输入,(0,0)为串行配置或使用配置器件模式;(1,0)为并行同步模式;(1,1)为并行异步模式。

nSTATUS:双向集电极开路,上电后被器件拉低,在5uS之内,被器件释放,(当使用一个专用配置器件时,专用加载器件将控制这个脚为低长达200ms。)这个管脚必须通过一个1K电阻上拉到VCCIO;如果在配置过程中,如有错误发生,本管脚被器件拉;如果在配置或初始化过程中,有一个外部的信号源驱动本管脚为低,则器

件进入一个错误的状态;在配置或初始化之后,驱动本管脚为低,不会影响器件。但是,如果使用专用配置器件,驱动本管脚低将引起配置器件试图去配置FLEX器件。

nCONFIG:输入,配置控制引脚,由0-1的跳变开始配置,由1-0跳变则复位器件;当设定本管脚为0时,所有I/O为三态。

CONF_DONE:双向集电极开路,状态输出:在配置之前和配置过程中,器件驱动本管脚为0,一旦所有配置数据都被接收并没有错误发生,则初始化时钟周期开始时器件释放本管脚;状态输入:在所有数据被接收后,本管脚为高电平,器件初始化,然后进入用户模式;本管脚必须通过一个1K的电阻上拉到VCCIO外部的信号源可以驱动本管脚为低,来延迟初始化的过程,当使用一个配置器件进行配置除外,在配置以及初始化之后,驱动本管脚为低,不影响配置器件。

DCLK:输入,时钟输入,用于从一个外部信号源输入时钟数据进入器件,在串行异步模式或并行异步模式配置中,DCLK应当被拉高,不能悬空。

nCE:输入,低有效芯片使能,本管脚使用低电平使能器件来允许配置,对于单芯片配置应当被固定为低电平,在配置以及初始化过程和用户模式,本管脚必须固定为低电平;在级联时,第一片的nCE接地,前一片的nCEO接后一片的nCE。

nCEO:输出,当设备配置完成后被驱动为低电平。在多器件配置过程中,这个管脚用来连接后面器件的nCE引脚,最后一片的nCEO悬空。

nRS:输入,读选通输入:对于APEX II、Mercury、ACEX 1K、APEX 20K 和FLEX10K器件低电平表示在DATA7引脚输出的是RDYnBSY信号;对于FLEX 6000 器件,低电平表示在DATA引脚输出的是RDYnBSY信号,如果nRS 管脚没有使用,应该被固定连接到高电平。

RDYnBSY:输出,忙闲信号:高电平表示器件准备好来存取另外字节的数据;高电平表示器件没有准备好接收另外字节的数据。

nCS、CS:输入,片选择信号:nCS为低电平且CS为高电平器件被使能可以进行配置,如果只有一个芯片选择输入被使用,那么另外一个必须被激活,在配置和初始化的过程中,nCS和CS管脚必须被处于有效状态。

CLKUSR:输入,可选的用户时钟输入信号:用在初始化过程中;(注:在初始化过程中可以继续使用配置数据用的DCLK,或者切换到用CLKUSR)。

DATA[7..1]:数据输入:并行的字节流数据通过DATA[7..1]与DATA0输入器件。

DATA0:输入,数据输入:在串行配置模式下比特流数据通过DATA0写入器

件。

DATA7:输出,在FPGA配置方式,DATA的数据是被RDYnBSY信号通过电平触发方式在nRS信号已经被锁存之后写入。

INIT_DONE:输出集电极开路,状态管脚:可以被用来指示器件已经被初始化或者已经进入用户模式;在配置过程中INIT_DONE引脚保持低电平,在初始化之前和之后,INIT_DONE引脚被释放,被上拉到VCCIO通过一个外部上拉电阻,因为INIT_DONE在配置之前是三态,所以被外部的上拉电阻拉到高电平。因此监控电路必须能够检测一个0-1的跳变信号。

DEV_OE:输入,此管脚需要在编译设置中设定才能实现第一功能,缺损是第二功能;当本引脚被拉低,所有I/O都是三态。当本引脚被拉高,所有I/O在正常的程序控制状态。

(2)FLEX1OK配置引脚

FLEX1OK主要由嵌入式阵列块、逻辑阵列块、快速通道(FastTrack)和I/O 单元四部分组成。

如图2.9为FLEX 10K10主要引脚功能,该装置采用的FLEX EPF10K10有84个引脚,各主要引脚功能如下(图2.9):

图2.9 FLEX10K10芯片引脚图

FLEX10K系列采用重复可构造的CMOS SRAM工艺,把连续的快速通道互连与独特的嵌入式阵列结构相组合,同时也结合了众多可编程器件的有点来完成普通门阵列的宏功能。每个FLEX 10K器件包括一个嵌入式阵列和一个逻辑阵列,它能让设计人员轻松地开发出存储器、数字信号处理器以及特殊逻辑等强大功能于一身的芯片。同时,改芯片具有的多电压功能可以全面支持以不同电压工作的产品。

EPF10K10有84I/O口,其丰富的IO资源,大大满足了用户的需求,其具体的IO引脚与对应的引脚序号如表2.4所示:

表2.4 I/O引脚对应的引脚序号

FLEX10K10主要特点如下:

①它是工业世界的第一种嵌入式可编程逻辑器件,提供了在单个器件中的系统集成,具有实现宏函数的嵌入式阵列和实现普通功能的逻辑阵列;

②高密度,它具有10000—150000个可用门,高达40960位内部RAM;

③系统支持多电压I/O接口;

④低功耗,系统维持状态小于0.5mA;

⑤灵活的内部连接,快速、可预测连线延时的快速通道连续式分布结构。

3 波形发生器的VHDL描述

完整的波形发生器由三部分组成:由计数器构成的地址信号发生器、波形数据ROM和D/A。在FPGA的顶层文件中,计数器通过外来的控制信号和高速时钟信号向波形数据ROM发出地址信号,输出波形的频率由发出的地址信号速度决定;当固定波频率扫描出地址时,输出波形是固定频率,而当以周期性变方式扫描输出地址时,则输出波形为扫描信号。波形数据ROM中存有发生器的波形数据。基于FPGA 波形发生器的VHDL的实现经过以下几个过程,首先利用MATLAB软件编写波形查找表程序生成波形查找表(请参看第4章)获得波形数据,利用MAX+plusⅡ软件依次建立波形数据文件、在FPGA生成ROM空间存储波形数据再经过编译、仿真、下载和测试即可以得到波形了。

3.1 波形发生器的VHDL描述

3.1.1 正弦信号波形数据文件的建立

正弦波数据存储器ROM地址线宽度为6,数据线宽度为8,在FPGA中用VHDL硬件描述语言实现存储空间的扩展,正弦波波形数据由64点构成,在MATLAB环境下,通过采样获取,关于采样数据的获取方法,在本文的第四章有详细说明。波形数据在FPGA的时序控制下,经DAC0832进行D/A转换,实现将数字信号转化成模拟信号,模拟信号通过放大,滤波后,可实现波形的还原。

波形数据文件:

WIDTH=8;

DEPTH=64;

ADDRESS_RADIX=HEX;

DATA_RADIX=DEC;

CONTENT BEGIN

00:255;01:254;02:252;03:249;04:245;05:239;06:233;

07:255;08:217;09:207;0A:197;0B:186;0C:174;0D:162;0E:150;0F:137;10:124;11:112;12:99;13:87;14:75;15:64;16:53;17:43;18:34;19:26;1A:19;1B:13;

1C:8;1D:4;1E:1;1F:0;20:0;21:1;22:4;23:8;24:13;25:19;26:26;27:34;28:43;29:53;2A:64;2B:75;

相关主题
相关文档
最新文档