基于SOPC的频谱分析仪设计与研制
扫描二维码
随时随地手机看文章
基于NIOS核处理器(包括I2C总线模块)和Altera公司FPGA设计制作的频谱分析仪,可用于工程指标的监测和诊断。设计的关键模块有:I2C总线控制的数据采集模块、FFT模块、FFT控制模块、Avalon总线接口及Atlantic总线接口模块以及VGA、LCD显示部分。
频谱分析仪的核心是DFT及快速算法FFT。FFT主要分为基2、基4等固定几何结构,设计采用基2几何结构、512点的FFT算法。设计平台为Altera公司推出的Cvclone II,其为高性能结构体系的PLD器件,其中包括FFT IP Core(知识产权核)。同时,Quartus II(Altera公司开发的IDE)软件具有很强的硬件仿真和逻辑分析功能,可将Verilog HDL描述的硬件综合到FPGA的整体设计中。
2 结构设计
频谱分析仪的系统框图如图1所示,其主要模块包括:I2C总线模块、FIFO模块、平方求和模块、FFT模块、VGA模块、显示器等组成闭。
频谱分析仪的硬件原理框图如图2所示,图2包含FPGA的内部硬件电路及外围接口模块。
软件设计的实现是建立在NIOS II IDE的基础之上,整个软件设计总体分为4大任务:设计主任务、A/D采集控制、Flash存储任务和VGA控制显示器显示任务。
3 系统设计
设计中,充分利用了SOPC技术的优势实现软、硬件协同设计,在尽可能短的时间内实现仪器功能,分别从硬件设计和软件设计两方面详细说明设计过程。
3.1 仪器硬件设计
3.1.1 核设计简介
利用SOPC Builder在NIOS指令系统中集成了A/D转换控制、I2C总线控制、VGA控制、FFT控制等控制模块,图3为SOPC Builder集成IP。
[!--empirenews.page--]
3.1.2 硬件FFT IP CCore的定制与集成
FFT运算器采用FFT Core实现,其引擎结构为双Sin—gle—output,I/O数据流采用突发(Burst)方式。FFT Core采用Atlantic Interface协议,输入接口视为主接收器,输出接口视为主发送器。
具体的工作流程:系统复位后,数据源将master sink day置位,表示有采样数据等待输入;作为回应,FFTCore将mas—te_sink_ena置位,表示可以接收输入数据;数据源加载第一个复数数据,同时master_sink_sop置位,表示输入数据块的起始;下一个时钟,master_sink_sop被清零,输入数据按照自然顺序被加入。输入数据达到512点时。系统自然启动FFT运算。通过inv_i信号的置位/清零可以改变单个数据块的FFT转换方向,inv_i信号必须和master_sink_sop信号严格同步。当FFT转换结束时,子接收器已经将master_source_dav信号置位,表示子接收器可以接收FFT的转换结果:同时,master_source_ena信号置位,FFT Core按照自然顺序输出运算结果:在输出过程中.master_source_sop和mas—ter_soure_eop信号被置位,表示输出数据块的起始和结束。具体接口定义如表1所示。
3.1.3 FIFO硬件设计
FIF0是一种先进先出的数据缓存器,根据FIFO工作的时钟域,可以将FIF0分为同步FIF0和异步FIFO。FIF0的一些重要参数如下:
FIFO的宽度:指的是FIF0一次读写操作的数据位。
FIFO的深度:指的是FIFO可以存储多少个N位的数据。
设计中采用了宽度为16位,深度为256的异步FIF0。
3.1.4 I2C总线设计
I2C总线是由数据线SDA和时钟SCL构成的串行总线.可发送和接收数据。I2C总线在传送数据过程中共有3种类型信号,分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的IC在接收到8 bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。其数据传送过程如图4所示。
3.1.5 串转并数据采集模块设计
由于从FPGA音频接口采集来的信号是串行的,故此处理前应将此串行信号转成并行信号,然后送NIOS核处理器进行处理。
设计中只需要16位数据,而从FPGA音频采集输出端ADCDAT输出的24位的串行数据,考虑到数据计算可能溢出造成失真,因此必须对采样所得数据作近似处理,故取其高15位数据,并将高位补零从而得到16位数据。其设计接口包括:clk为系统时钟;AUD_ADCDAT为音频采集数据输入;data_out为并行输出;Wr为输出使能信号,用于控制向外输出完整的数据。其仿真波形如图5所示。
[!--empirenews.page--]
3.1.6 平方和加法模块设计
设计中处理的是16位数据,FFT变换后,要对结果进行求模运算,从而便于将数据在VGA上显示,设计了硬件乘法器和硬件加法器来节省大量运算所占用的时间,从而提高速度。其设计如图6所示。
3.2 系统软件部分的设计
系统软件流程图如图7所示。
(1)系统初始化系统主要指由主控Nios软核通过12C总线对系统各部分进行初始化,包括A/D、按键等的初始化。
(2)数据采集 主要指Nios软核从音频输出接口ADC—DAT读取数据并作必要的处理。
(3)FFT IP核变换将采集来的数据通过FFT处理后再送入软核中。
(4)NIOS核处理NIOS核将变换后的数据作以处理,以便于送显示器显示。
(5)图像显示NIOS核将处理后的最终数据经VGA送显示器显示。
4 设计特点
4.1 FFT运算全硬件实现,加快了数字信号处理的速度
设计中实现。FFF运算,涉及了大量的浮点乘法运算,软件难以实现其快速性和实时性,采用FFT IP Core及硬件乘法器来实现FFT的方法.浮点运算时.直接用FFT IP Core及乘法器实现。因而大大加快了运算的速度。
4.2 定制Avalon总线接口IP、LCD及FFT控制器
在SOPC Builder中提供了方便的向导.帮助设计基于Avalon总线接口的IP Core。根据需要添加了LCD及FFT控制器来完成设计,这正是开放总线接口带来的好处及优势。
4.3 实现片上设计.实现高集成度和可靠度
在FPGA内部实现整个控制和信号处理的功能,这是传统设计方案无法做到的。NIOS作为一款32位高性能处理器可以在FPGA内部进行配置,成功实现了可编程片上设计,同时实现高集成度和可靠度。
5 结语
在分析和掌握NIOS核处理器和频谱分析仪基础上。完成仪器硬件和软件部分的设计。其中FFT运算几乎全硬件实现,大大加快了数字信号处理的速度;根据需要添加了LCD及FFT控制器来完成设计;实现了片上设计,实现了高集成度和可靠度。