新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 基于FPGA的多普勒测振计信号采集与处理系统设计方案

基于FPGA的多普勒测振计信号采集与处理系统设计方案

作者:时间:2013-11-05来源:网络收藏
DDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT: 14px/25px 宋体, arial; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align=center>  FPGA逻辑设计工作流程图

  在工作过程中,首先检测是否接收到数据采集完毕的使能信号,如果没有接收到就一直进行检测,如果收到就读取16 位数据并缓存。当FIFO 接近全满状态时启动数据处理逻辑,数据处理逻辑通过一系列乘加运算结合流水线的设计方法实现,并将运算结果适当截位输出给双口RAM.双口RAM 拥有两套完全独立的数据线、地址线和读写控制线,当检测到有数据输入时,读地址开始加1,否则读地址保持不变。上位机准备就绪,即双口RAM 数据准备输出时,双口RAM 写地址开始加1,通过串行接口将数据输出。在输出模拟信号时,只有当DAC8551芯片输入寄存器接收到24位数据,同时同步信号为低电平时,才能启动 D/A转换逻辑。

  下面将介绍几个典型数字逻辑模块的关键设计点。

  (1)时钟模块

  本设计中外部晶振提供给的时钟为50 MHz,时钟模块的功能就是根据设计要求,利用锁相环以及使能时钟的设计方法为各个模块提供所需的时钟信号。通过锁相环配置工具将50 MHz的系统时钟进行1/2分频,从而产生频率为25 MHz并满足时序约束的主时钟。使能时钟设计,即不增加新的时钟,而只是利用原有主时钟,让分频信号作为使能信号来使用,通过该设计对主时钟进行1/16 分频,为信号处理模块提供工作时钟。

  (2)A/D逻辑模块

  A/D 逻辑模块的任务是根据ADS1174 的转换时序图,在芯片的引脚发出或接收相应的信号,使得ADS1174完成启动、配置和数据读取操作。其控制操作如下:首先配置ADS1174 的相关参数,包括运行模式、接口类型等,然后通过查询ADS1174的DRDY信号来判定数据转换是否完成,开始读取数据,最后将读得数据进行串并转换,同时完成数据的缓存。A/D逻辑模块每完成一次信号采样,则等待下一次触发脉冲的到来。

  (3)数据处理模块

  数据处理模块的功能是提取出信号中的频移信号,本设计采用如图4 所示的信号处理算法,通过微分和乘加运算,同时结合流水线的设计方法来实现。微分运算的处理是将前一个数据延迟一个单位时间,用当前的数据减去前一个数据得到的。通过宏模块构建16 b × 16 b有符号乘法器来实现乘法运算,同时为了避免溢出,对乘法运算结果适当截位。相关除法器操作则与乘法器类似。

  信号处理算法

  (4)双口RAM模块

  本文设计中双口RAM 用于存储经过处理的数据,一方面通过RS 232 接口提供给上位机操作,另一方面通过DAC8551转换成模拟信号。双口RAM拥有两套完全独立的数据线、地址线和读写控制线,并允许两个独立的系统或设备同时对其进行随机性访问。该双口RAM 模块是通过调用Quartus Ⅱ自带的参数化模型库实现的,容量为4 KB.

  (5)数据通信模块

  RS 232采用的是异步通信协议,基本的异步通信只需包括通信发送端和通信接收端两根信号线。该模块由三个子模块组成:波特率发送器模块、数据发送模块、数据接收模块。波特率发生器模块主要用于产生接收模块和发送模块的时钟频率,其实质是一个分频器,数据接收模块的作用就是将接收到的串行数据转换成并行数据并输出,数据发送模块的作用相当于一个移位寄存器,其功能就是按照一定的波特率将移位寄存器中的数据一位一位移出。数据收发过程是通过状态机实现的,设计中波特率发生器模块的输出时钟为实际串口数据波特率的16倍,当输入线路逻辑发生跳变时,开启采样计数器,当计数器计数到起始位数据中间时刻时即可认定接收到的数据是起始位数据,依次类推,只有计数器计数到每个数据的中间位置时才开始采集该数据。

  3 仿真验证



关键词: FPGA 多普勒测振计 信号采集

评论


相关推荐

技术专区

关闭