基于FPGA的多普勒测振计信号采集与处理系统设计方案
在芯片的引脚发出或接收相应的信号,使得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 仿真验证
激光多普勒测振计信号采集与处理系统采用MentorGraphics公司Modelsim软件进行仿真验证。数据通信模块仿真波形如图5所示。其中,first发生跳变会引起数据发送使能信号的翻转,从而给UART传输系统中数据发送模块一个使能信号。clk16x_rx,clk16x_tx是由波特率发送器产生的16倍于系统时钟的信号,分别作用于数据接收模块和数据发送模块。按照时间顺序由低字节到高字节发送一帧数据0,1,0,0,1,1,1,0,1,1,当数据发送使能信号低电平有效时,被采样的数据经由数据发送模块发送出来。由此证明数据通信模块能够正常工作。
系统仿真波形如图6 所示。dina,dinb 是由计算机随机产生的两路多普勒正交信号,经过ADS1174 模数转换输出给FPGA,经过信号处理模块、双口RAM 模块以及DA控制模块,从dout口输出给DAC8551芯片进行数模转换。
4 结语
本文主要提出了一种基于FPGA的多普勒测振计信号采集与实时处理的信号采集系统的设计方案,采集系统采样精度为16 b,每路采样速率为50 KSPS,两路信号经过FPGA 处理后解调出多普勒频移信息,处理后的数据存储在双口RAM 中,通过RS 232接口快速传输至上位机或者数模转换成模拟信号输出。测试表明该设计方案能够保证设计要求的采样速度和精度,对于信号的实时解调和处理具有实际应用价值。
- 一种轨道电路信号车载采集系统(03-24)
- 基于PCI总线的微弱信号采集模块的设计方案(02-24)
- 基于ADS1298与FPGA的高性能脑电信号采集系统(02-25)
- 用大电流LDO为FPGA供电需要低噪声、低压差和快速瞬态响应(08-17)
- 基于FPGA 的谐波电压源离散域建模与仿真(01-30)
- 基于FPGA的VRLA蓄电池测试系统设计(06-08)