高速数据采集系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
精心整理
基于FPGA 和SoC 单片机的
高速数据采集系统设计
一.选题背景及意义
随着信息技术的飞速发展,各种数据的实时采集和处理在现代工业控制和科学研究中已成为必不可少的部分。高速数据采集系统在自动测试、生产控制、通信、信号处理等领域占有极其重要的地位。随着核集成FPGA 芯片软件的正机读取图1-1最小系A/D 转换器以128图3-1高速数据采集系统设计方案
四.硬件电路设计
1.模拟量输入通道的设计
模拟量输入通道由高速A/D 转换器和信号调理电路组成。信号调理电路将模拟信号放大、滤波、直流电平位移,以满足A/D 转换器对模拟输入信号的要求。
2.高速A/D 转换电路设计
五.FPGA模块设计
本设计的数据缓冲电路采用FIFO存储器。FIFO数据缓冲电路原理如图5-1。
图5-1FIFO数据缓冲电路原理
FIFO的写端口的数据线与ADS931的数据线直接相连,FIFO的写时钟和ADS931采用同一时钟信号CLK0。FIFO的读端口与单片机并行总线相连,数据输出端口加了三态缓冲器。地址译码器的CS和读信号RD相或非后作为FIFO的读时钟电路和三态缓冲的使能信号。
片选信号1
FIFO数据顶层原理图如图5-2。
图5-2FIFO数据顶层原理图
六.F360单片机模块设计
主程序完成C8051F360单片机初始化、检测有无按键输入等功能。在此系统中我们加入了一个频率测试显示功能。主程序流程图如图6-2。
图6-2主程序流程图
主程序源代码如下:
voidmain()
{
ucharxdata*addr1;
uinti;
floatf,ts;
ucharfuzhi;
intup,down,m,n;
up=0;down=0;m=0;n=0;ts=0.04;
InitDevice(); //F360初始化
InsitiLcd(); //LCD模块初始化
DispHan(hanzi10,0x80,0x10);
DispHan(hanzi11,0x92,0x08);
DispHan(hanzi12,0x8a,0x08);
DispHan(hanzi13,0x98,0x08);
DispHan(hanzi14,0x9c,0x08);
addr1=LEDENCS;
*addr1=0x01;
START=0;
EOC=1;
while(1)
{
{
{
{
if(WaveData[i]>=WaveData[i-2])down=1;
if((WaveData[i]<=WaveData[i-2])&&(down==1)){down=0;n=i-1;}
}
}
else
{
for(i=m+5;i<=128;i++)
{
if(WaveData[i]>=WaveData[i+2])down=1;
if((WaveData[i]<=WaveData[i+2])&&(down==1)){down=0;n=i+1;}
}
}
if(m>=n)f=1/(4*(m-n)*ts);
elsef=1/(4*(n-m)*ts);
fuzhi=WaveData[m]-WaveData[n]; InsitiLcd();
ShowWave();
}
}
}
}
图
波如图
7-2按K0后的波形显示
按K1,LCD显示频率如图7-3。
7-3LCD频率显示
与输入频率相比有误差,不过在可以接受的范围内。