当前位置:首页 > 电源 > 功率器件
[导读]3.4 FPGA内部电路设计本设计硬件电路设计采用了1片FPGA,芯片型号为Altera公司的EP1C6Q240C8 。其作用主要分为数据采集控制和频率测量控制两个部分。数据采集控制部分用于实

3.4 FPGA内部电路设计本设计

硬件电路设计采用了1片FPGA,芯片型号为Altera公司的EP1C6Q240C8 。其作用主要分为数据采集控制和频率测量控制两个部分。数据采集控制部分用于实现ARM寄存器基接口的配置,通道控制,数据采集,触发与存储器读写控制等;频率测量控制部分用于利用前端电路已经分频整形的信号对给定门宽进行计数,从而等到该信号的频率值。这里先对数据采样部分的FPGA内部电路进行介绍,频率测量部分的介绍见后章。

数据采集控制部分的FPGA程序主要完成与ARM芯片接口的的配置工作;对寄存器进行译码;控制触发电平,实现触发功能;FIFO读写控制;时钟频率选择;采样时钟合成与控制;寄存器读写操作。以下分别对各部分的功能进行介绍。

3.4.1地址译码电路及控制信号

模拟通道中的衰减控制信号,以及对FIFO状态的检测信号等,都是由ARM芯片对其数据、地址总线的读写来实现的,这就需要为每个端口分配地址。本设计中,由于是利用LPC2138的两个通用I/O口,模拟读写控制线,由于有独立的读写标志,因此需要4根地址线译码,进行端口读写。

 

 

FPGA中与ARM芯片(LPC2138)接口的写操作地址译码电路。其中,/WR为ARM芯片的写使能信号,低有效。当写外部存储器时,/WR信号变为低,而在/WR信号的上升沿时,ARM外部数据、地址总线上的数据都是很稳定的。而且地址总线上的数据比数据总线上的数据先有效。因此,我们可以先对外部地址总线上的数据利用译码器进行译码,等到/WR信号有效时,利用/WR信号的上升沿对外部数据总线上的数据进行锁存,完成对外部存储器的一次写操作。

其中,写寄存器部分主要由74374构成,实现寄存器写操作。送写的数据包括触发字、FIFO状态控制字、DAC控制字、MAX4141通道选择字等控制字。

同样在ARM读操作中,/RD为ARM芯片的输出时钟信号,低有效;当每执行一次读操作时/RD产生一个读时钟信号,同时ARM外部数据总线上的数据在两个读时钟周期内有效。而且地址总线上的数据比数据总线上的数据先有效。因此,我们可以先对外部地址总线上的数据利用译码器进行译码,等到/RD读时钟信号有效时,选通相应的缓冲器,从而完成对外部存储器的一次读操作。

其中,读寄存器部分主要由74244构成,完成寄存器读操作,包括读取FIFO状态字、存储在FIFO中的ADC采集的数据等。

3.4.2数字触发电路

功率测量中,为了得到检波后脉冲的峰值,需要设置触发电平,获得信号的峰值。为了避免毛刺干扰的影响,触发电路设计中选用窗口电路的设计方法。并选用上升沿/下降沿触发。具体触发电平大小的设置,根据于采样得到信号的峰值,如下图3-18所示,触发电路由两个比较器、选择器和触发器等组成。触发电平triglev小于triglev1,构成窗口触发的两个电平。第一路比较器实现触发电平triglev和采样得到的信号值比较,当triglev小于此时的信号值,则第二路经过比较器输出的信号被选通到输出端。第二路比较器实现触发电平triglev1和采样信号比较,当信号高于triglev1则输出端置高。因此,trig_or比较器的输出为采样信号的整形后信号,在后端的trig_s标志为用户提供上升沿/下降沿触发方式的选择。从而实现窗口触发。

 

 

3.4.3数据的存储与控制

A/D采样出来的数据,是随采样时钟和被测信号的变化而变化的,要能够再现被测信号,必须要把每次采集的数据存入缓存器中,这里介绍的FIFO就是一个典型的缓存器。FIFO是一个先进先出的存储器,可同时对存储空间进行读写,没有地址线,第一个读出来的数据是第一个写进去的数据,它有现成的集成芯片。由于EP1C6Q240片内有92160bits的存储空间,因此本设计采用ALTERA公司提供的宏单元库MEGA_LPM中提供的FIFO库文件(LPM_FIFO_DC),将FIFO做在FPGA中。对应AD9480的存储主通道信号采样值的FIFO存储深度设为1024,单位为8bits,生成的FIFO如图3-19所示。

 

 

生成的FIFO有一个写使能信号wrreq,一个写时钟信号wrclk,一个读使能信号rdreq,一个读时钟信号rdclk,一个清除端aclr,8bits数据输入端data[7……0]和8bits数据输出端q[];同时还有两个状态端:wrfull(FIFO满)和rdempty(FIFO空),FIFO被写满时wrfull=1,当FIFO被读空时rdempty=1.如图3-19中还使用到一个数据输出端wrusedw[9..0],该端口在每一个FIFO写时钟到来是更新当前FIFO以写入数据数量,这将在做预触发方式时使用。

这里之所以不用一般并行RAM而用FIFO主要有如下两个原因:一方面是它不用地址线,便于电路的连接和控制;更重要的是它可以同时进行读写操作,这样在做预触发功能时是非常方便的。虽然用并行RAM将地址计数器做成一个环行计数器也可以实现,这样就增加了FPGA内部的资源,也使电路复杂化了。[!--empirenews.page--]

本设计在FPGA中用AHDL语言编写了对FIFO复位及读写总体控制程序,如下:

BEGIN

DEFAULTS

fifo_wclk=gnd;fifo_rclk=gnd;

trig_clr=vcc;fifo_/wen=vcc;

fifo_/ren=vcc;fifo_/reset=vcc; //控制器默认状态,FIFO读写无效

END DEFAULTS;

IF workstate==0 THEN //通道采集关闭

fifo_/wen=vcc; //关闭FIFO写使能

……//FIFO读时钟由ARM提供

ELSIF (workstate==1) THEN //通道采集开启

fifo_/ren=gnd;

fifo_/wen=gnd; //FIFO读写使能同时有效

……

由程序可见,当workstate=0时,可由程序控制对FIFO进行复位,或者FIFO不复位,但是此时可对FIFO进行读操作。一般开始新一轮的采数之前要对FIFO进行一次复位,以确保FIFO的状态正常且为空。当FIFO存满后,也要用到此状态将FIFO中的数据读出。当workstate=1时,FIFO读写均使能:一般在采数阶段要用workstate=1状态。本设计在FPGA中对FIFO复位及读写的触发控制采用了两种模式:

一种为自动触发模式,即,当调整数字触发电路的触发电平使其低于采样信号最大值,且高于其最小值时(既数字触发器触发时),液晶屏显示信号波形由触发电平所在位置附近启始,保持显示信号的稳定;当不触发时,则不对FIFO存储数据加以限制。实现方法如上图以及数字触发电路原理图所示,在FIFO清空控制端加入一个trig_fifo控制信号并将其与正常FIFO清空控制信号相或,trig_fifo信号由数字触发电路产生,信号特点是在触发出现时产生短暂的低电平,用于对FIFO清空数据,使FIFO在触发到来后,其内部只保留触发点之后的数据。

另一种为正常触发方式,即,首先在触发信号到来前FIFO存储一段触发前的数据并不断刷新,等待触发信号到来,这既是预触发。触发信号到来后FIFO停止刷新前端预触发数据,直接存储采样数据;当触发信号没到来是系统则一直等待触发。如下:

if (clk'event and clk='1') then

if fifodepth >="0010000000" and trig ='0' then

cntrl<='1';

elsif fifodepth >="0010000000" and trig ='1' then

cntrl<='0';

else

cntrl<='0';

end if;

……

程序中,cntrl信号是读时钟控制信号。当cntrl=0时,控制关闭FIFO读时钟,当cntrl=1时,FIFO的读写时钟相同。由程序可以看出,FIFO首先直接写入128个数据(暂定为FIFO深度的10%),此时FIFO读时钟关闭;当FIFO写入数据达到或超过128个时,打开读时钟,此时FIFO中存入一个数的同时也读出一个数,FIFO已存入的128个数据将不断被刷新;若信号已经触发时,这时FIFO没有读时钟,只有写时钟,也就是说FIFO处于只写的状态,进行数据存储。这样就实现了预触发。

当被采样信号为连续波信号时,自动触发模式能够很好的稳定显示的波形,方便用户观察,但是由于自动触发时FIFO里存储的只能是触发之后的数据,加之各个模块的延时导致不能显示出触发时刻以及触发之前一段时间的数据,当被测信号是窄脉冲信号时将由于不能完整显示脉冲信号,而使用户不能了解被测信号的全部特征,而且当脉冲信号宽度较窄时,可能因触发到FIFO存储控制信号的延时导致脉冲信号数据无法被FIFO存储。所以在被测信号是窄脉冲信号的,应使用正常触发方式,利用预触发,保证触发时刻的信号数据能够显示出来。

3.4.4时基电路的实现

时基电路是显示示波部分的重要组成部分,它的作用主要是提供AD的采样时钟和FIFO的写时钟。

系统源时钟是由外部晶振提供的标准20MHz频率信号。由于250MHz时钟直接分频产生200MHz时钟将较为繁琐,所以我们利用ALTPLL锁相环模块,分别产生250MHz,200MHz频率信号。将200MHz时钟经过由四个74390和两个T触发器构成的二分频、四分频器组成的分频网络产生所需要的AD采样频率和FIFO写时钟。在功率分析仪的控制面板上有一个时基控制按钮sec/div,不同的时基档位下对应着不同的采样频率。每选择不同的时基档位时,时钟选择信号clk_s0~clk_s3就会输出不同的值以选择与档位相应的采样时钟;当时基控制设置在最高采样率时选择250MHz采样时钟。具体的时基档位与采样时钟以及每个档位下存储深度的对应关系如表3-1.

 

 

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

罗德与施瓦茨(以下简称“R&S”)新推出的功率分析仪系列有三种型号,可满足测量直流和交流源的电压、电流、功率和总谐波失真的所有要求。

关键字: 功率分析仪 电压 总谐波失真

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

可视化直觉式平台,适用TN- LCD 设计、模拟﹑测试,能加快开发速度

关键字: 微控制器 LCD 布局 硬件设计

EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概...

关键字: eda工具 硬件设计

单片机(MCU)系统的发展结合了相关的软硬件技术。要完成单片机系统的开发,用户不仅要掌握编程技术,还要根据实际应用选择合理的单片机芯片和外围器件,以此为基础设计硬件电路。MCU(微控制器)硬件设计是一个复杂的过程,涉及多...

关键字: MCU 硬件设计

FIFO(First In, First Out)存储器是一种常见的存储器类型,它具有以下特点,并在实际应用中发挥着重要的作用。

关键字: FIFO 存储器 数据传输

单片机是嵌入式系统的核心元件,使用单片机的电路要复杂得多,但在更改和添加新功能时,带有单片机的电路更加容易实现,这也正是电器设备使用单片机的原因。那么在单片机电路的设计中需要注意的难点有哪些?

关键字: 单片机 电路 硬件设计

复位电路是一种用来使电路恢复到起始状态的电路设备,它的操作原理与计算器有着异曲同工之妙,只是启动原理和手段有所不同。复位电路,就是利用它把电路恢复到起始状态。就像计算器的清零按钮的作用一样,以便回到原始状态,重新进行计算...

关键字: 复位电路 计算器 电平

本文中,小编将对功率分析仪、微波信号分析仪予以介绍,如果你想对它的详细情况有所认识,或者想要增进对二者的了解程度,不妨请看以下内容哦。

关键字: 功率分析仪 微波信号分析仪 分析仪
关闭
关闭