admin管理员组

文章数量:1566665

2024年4月26日发(作者:)

基于FPGA的正弦信号测量系统

张霞

【摘 要】设计并实现了基于FPGA和8051 IP核的正弦信号频率和幅度的测量系

统。系统包括模数转换器、FPGA数据采集模块、51 IP核的数据处理及控制模块、

LCD液晶显示模块。经测试验证,该系统能够实现对输入正弦信号频率和幅度的

实时、精确测量。%A measurement system which can measure the

frequency and amplitude of the Sin signal is designed and realized based

on FPGA and 8051 IP core. The system includes analog-to-digital converter,

FPGA data acquisition module, 51 IP core data processing and control

module, and LCD display module. Through test confirmation, the system

can realize the real-time, accurate measurement of the frequency and

amplitude of the input sin Signal.

【期刊名称】《电子设计工程》

【年(卷),期】2015(000)024

【总页数】3页(P93-95)

【关键词】FPGA;8051 IP核;正弦信号;等精度测频法

【作 者】张霞

【作者单位】西安邮电大学 电子工程学院,陕西 西安 710100

【正文语种】中 文

【中图分类】TN409

正弦信号是电子、通信、雷达、自动化、计算机等工程领域应用最多的信号之一,

因此正弦信号的测量在系统联调测试阶段和排查错误过程中具有重要的作用[1]。

传统的正弦信号测量方法主要采用模拟技术,其电路复杂,在运用过程中存在着种

种弊端[2]。 随着微电子技术的发展和EDA 技术的日渐成熟,现场可编程逻辑器

件FPGA 凭借其稳定性好、可靠性高、设计方便灵活等特点广泛应用于信号处理、

通信、雷达等众多领域,并且随着可重构的嵌入式MCU 核、百万门级的FPGA、

各种功能强大的EDA 工具及功能复杂的IP 核的出现,将存储器、外围电路和

MCU 集成到一个芯片得以实现[3]。

本文采用在FPGA 内嵌入8051 IP 核的方法设计并实现了正弦信号频率和幅度的

测量系统。 FPGA 主要完成正弦信号频率数据和幅度数据的采集;51 IP 核主要完

成FPGA 和LCD 液晶显示的控制,以及测试数据的处理等。 该系统采用51 IP 核

进行相关的数据处理和显示控制, 极大地简化了FPGA 进行该项工作的复杂度。

1 总体设计方案

以FPGA 为核心的正弦信号测量系统由模数转换器、基于FPGA 的数据采集模块、

基于8051 IP 核的数据处理模块以及LCD 液晶显示模块所组成。 正弦信号经

TLC549 模数转换器进行信号采样后,送入FPGA 内部进行正弦信号频率和幅度的

测量,并利用51 IP 核对数据进行处理,最后将频率和幅度的测量结果通过LCD

进行显示。 系统框图如图1 所示。

图1 系统框图Fig. 1 Structure diagram of the system

2 系统设计与实现

2.1 数据采集

该系统的主要功能是测量输入正弦信号的频率和幅度。正弦信号首先经TLC549

模数转换器将其由模拟信号转换为数字信号。 TLC549 是以8 位开关电容逐次逼

近A/D 转换器为基础而构造的CMOS A/D 转换器, 其采样速率为40 kHz,参

考电压为2.5 V,输入电压范围为0~2.5 V,输出为8 位串行数据。 正弦信号经

TLC549 模数转换器后输出为仅保留正弦信号正半周期的数字信号。 FPGA 采用算

法对转换后的数字信号进行频率和幅度的测量,其框图如图2 所示。

图2 FPGA 数据采集模块框图Fig. 2 Structure diagram of the data acquisition

module based on FPGA

本文采用等精度测频法进行正弦信号频率的测量。 等精度测频法是以直接测频法

为基础发展而来的,它没有对被测信号计数产生的±1 周期误差,因此在整个被测

信号范围内都能达到相同的测量精度[4-5]。 等精度测频法在测量频率时,其实

际闸门与被测信号进行了同步。 在测量过程中,使用两个计数器分别对标准信号

和被测信号同时进行计数。 首先将预置闸门置为高电平,此时计数器不计数,只

有当被测信号产生上升沿时,两个计数器才同时开始计数。 一段时间后,将预置

闸门拉低,此时计数器不停止计数,仅当检测到被测信号上升沿时才停止计数[6]。

假设在实际闸门中计数标准信号有N s 个上升沿,被测信号有N x 个上升沿,标

准信号频率为f s,则被测信号的频率f 可表示为式(1)。

本文通过对外部时钟频率50 MHz 信号进行分频获得100 Hz 的时钟信号,作为

等精度测频法的标准信号。同时,为了对实际闸门内被测信号的上升沿进行计数,

需要对ADC采样获得的信号进行零点检测,获得频率与正弦信号频率相同的脉冲

信号作为等精度测频法的被测信号, 如图2 所示。在实际闸门为高电平期间,使

用两个计数器,分别对标准信号和被测信号进行计数。

通过对标准信号进行计数,设定预置闸门高电平时间即开启时间为500 ms。在预

置闸门变为高电平后检测到第一个被测信号上升沿时,实际闸门变为高电平。 在

实际闸门为高电平期间,使用两个计数器,分别对标准信号和零点个数进行计数。

预置闸门变为低电平后检测到被测信号上升沿时,实际闸门变为低电平,此时计数

器停止计数,从而实现了实际闸门的动态控制。 等精度测频法的时序波形图如图

3 所示, 图中adc_data 为ADC 转换数据,detected 为零点检测信号,

pose_detected 为反映零点检测信号上升沿的脉冲信号,pre_gate 为 预 置 闸 门,

start 为 实 际 闸 门,pregate_count 为 标 准信号计数输出,z_count 为被测信

号计数输出。

图3 等精度测频法的时序波形图Fig. 3 Timing waveform of equal precision

frequency measuring method

在幅度测量方面,FPGA 内部对ADC 转换输出数据进行采集,多次分段比较求段

内正弦信号幅度的最大值,并将多个最大值的平均值作为最终的幅度测量结果。

2.2 数据发送

FPGA 将采集到的频率数据和幅度数据发送给51 IP核,通过计算求取正弦信号的

频率和幅度。 如果将频率数据和幅度数据以并行的形式单独发送给IP 核, 将需

要大量的端口,51 IP 核的端口远远不够, 所以采用将数据以8 bits 的形式分次

进行发送,在IP 核内重新恢复为原值后进行计算,这样就节省了51 IP 核的端口。

数据发送的仿真结果如图4所示。信号data_part 由51IP 核向FPGA 发送,表明

IP 核准备接收的数据,其值为两位二进制数。当data_part 值为‘00’时,

FPGA 向51 IP 核发送被测信号的计数值(z_count,为14 位二进制数)的低8

位;data_part 值为‘01’时,发送z_count 的高六位, 并且51 IP 核将

z_count 进行还原;data_part 值为‘10’时,发送标准信号的计数值

pregate_count;data_part 值为‘11’时,发送幅度数据amp_data;

wave_data 为51 IP 核接收到的来自FPGA 的数据。由此可见,在51 IP 核的控

制下实现了对FPGA 所采集的频率数据和幅度数据的分时传送。

2.3 51 IP 核的配置及其与FPGA 的通信

图4 数据发送的仿真图Fig. 4 Simulation diagram of data sending

本文使用Oregano Systems 公司开发的免费51 IP 核,其设计描述采用全同步方

式, 指令集与工业标准8051 单片机构架完全兼容,并针对SOC 设计流程的要求

进行了优化。 该软核具有如下特点:可综合的RTL 风格、完全同步设计、单时钟、

可通过调整和修改VHDL 代码进行功能扩展、 具有128字节的片内RAM、最高

可支持64KB 的ROM 和RAM,并且集成了UART、定时器、中断和4 组8 位的

I/O 口[3,7]。 使用Quartus II 中自身集成的MegaWizard Plug-In Manager

工具生成51 IP 核所需的外扩RAM 和ROM, 并使用FPGA 自带的PLL(锁相环)

调整时钟频率,产生51 IP 核所需的工作时钟。PLL 输出的时钟频率、相位均可调

且精度很高,完全可以为51 IP 核提供时钟信号。 51 IP 核向FPGA 数据采集模

块发送控制信号, 同时接收来自FPGA 的频率数据和幅度数据,FPGA 与51 IP

核的连接示意图如图5 所示。

rec_ready:当其为高电平脉冲时,表明51 IP 核开始接收来自FPGA 的频率数据;

图5 FPGA 与51 IP 核的连接示意图Fig. 5 Connection diagram of FPGA and

51 IP core

rec_done:当其为高电平脉冲时,表明51IP 核数据接收完成, 此时数据采集模

块将上次采集到的所有数据清零,准备进行下一次计数;

data_part:包括 高低两位(data_part_h 和data_part_l),用来表明当前51 IP

核需要接收的数据类型;

amp_test:幅度测量使能信号,当其为高电平时,FPGA 进行幅度数据采集;

test_finish:由数据采集模块向51IP 核发送,它与IP 核的外部中断0 相连,数

据采集完成后,该信号由高电平变为低电平, 说明数据采集模块完成了频率和幅

度数据的采集工作,此时,51 IP 核进入外部中断,开始改变data_part 值,并接

收数据采集模块发送的数据,接收完成后,产生rec_done 高电平脉冲;

wave_data: 数据采集模块根据data_part 的值向51IP 核发送采集的8 位数据。

数据接收采用外部中断的形式, 当51 IP 核向FPGA 发送的rec_ready 信号为高

电平脉冲时,表明51 IP 核开始准备接收来自FPGA 的采集数据, 当数据采集模

块采集完成后,产生完成信号,此时51 IP 核进入外部中断INT0,依次改变

data_part 的值并接收所对应的数据。

3 功能测试

基于FPGA 的正弦信号测量系统采用Altera 公司的Cyclone II EP2C8Q208C8N

芯片并嵌入Oregano Systems 公司开发的8051 IP 核来实现。 由安捷伦信号发

生器产生正弦信号作为输入信号, 选取若干测试点进行频率和幅度的测量,输入

信号及其测量结果如表1 和表2 所示。 由测试结果可见,该系统能够实现正弦信

号频率和幅度的测量,且测量结果可靠,性能稳定。

表1 频率的测量结果Tab. 1 Test results of the frequency输入信号频率/Hz 频

率测量结果/Hz 204.4 204 850.5 851 1 218.0 1 217 2 311.0 2 311 3 938.5 3

939 4 327.7 4 328

表2 幅度的测量结果Tab. 2 Test results of the amplitude输入信号幅度/V 幅度

测量结果/V 0.50 0.50 0.60 0.59 0.70 0.69 0.80 0.79 0.90 0.88 1.00 0.98

4 结束语

本系统采用FPGA 内部嵌入8051 IP 核的方法, 使用Quartus II 软件平台进行设

计输入,Modelsim 软件平台进行功能仿真,并在Altera 开发板上进行实现。 测

试结果表明该系统实现了对正弦信号频率和幅度的精确测量。

【相关文献】

[1] 徐丽燕. 正弦信号测试仪的设计[J]. 计算机测量与控制,2009,17(12):2564-2567.

[2] 杜英,郝茂森. 基于DDS和FPGA的频率特性测试仪[J]. 现代电子技术,2014,37(4):112-

117.

[3] 王瑞,游志宇,杜杨,等. MC8051单片机IP核的FPGA实现与应用[J]. 电子设计工程, 2009,

17(1):57-60.

[4] 夏振华. 等精度频率计的实现[J]. 电子设计工程,2010,18(6):177-182.

[5] 李国利,刘旭明,翟力欣. 基于FPGA与单片机的等精度频率计的设计[J]. 电子设计工程,2013,

21(22):171-173.

[6] 方易圆,邓琛. 等精度频率计的FPGA设计[J]. 测控技术,2012,31(10):1-4.

[7] 万晓华,钟夏,陈建勋. 8051 IP 核的应用开发系统研究[J].微计算机信息,2008,24

(6):102-104.

本文标签: 信号数据正弦