DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 799|回复: 0
打印 上一主题 下一主题

[工仪] 基于SOPC的频谱分析仪设计与研制

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-17 14:58:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 引言??? 基于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模块、显示器等组成闭。


                          
                       
                          
                                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所示。


                          
                       
                          
                                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控制器来完成设计;实现了片上设计,实现了高集成度和可靠度。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-10 10:21 , 耗时 0.088268 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表