EDN China > 设计实例 > 可编程器件 > FPGA > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于FPGA的数据采集系统设计

21ic 海军驻西安导弹设备军事代表室 葛澎 王垄?? 2011年08月26日 ?? 收藏1

  0 引言

  在电气测控系统中,常常需要采集各种模拟量信号、数字量信号,并对它们进行相应的处理。一般情况下,测控系统中用普通MCU(如51、196等单片机或控制型DSP)就可以完成系统任务,但当系统中要采集的信号量特别多时(特别是各种信号量、状态量),仅仅靠用普通MCU的资源就往往难以完成任务。本文所提出的一种基于FPGA技术的模拟量、数字量采集与处理系统,利用FPGA的I/O端口多,且可以自由编程支配、定义其功能的特点,能很好地解决采集的信号路数多的问题。

  1 系统组成

  本系统中的外围电路设计相对简单、可靠,且鉴于FPGA自身的特点,系统具有较好的扩展性,在监测和控制系统中也具有一定的通用性。系统主要包括:FPGA芯片区、多路选择与A/D采样电路、时钟电源区、PROM代码下载电路等几部分。结构示意如图1所示。

结构示意

  2 FPGA芯片特点分析及资源分配

  本系统中的FPGA是采用Altera公司的EP1C20F400。该系列的内核采用1.5 V供电,I/O端口供电电压为3.3V。FPGA内部资源划分为四大部分,如图2所示。

FPGA内部资源划

  (1)FPGA逻辑运算中心。用来接收其他各部分的数据,并按照程序中设定的方案对所收到的数据进行相应的分析和处理。包括:对从MCU接收来的数据指令进行分析,并按其指令要求进行相应操作;接收A/D采样来的数据,对数据进行处理,存储等工作。

  (2)A/D控制单元。主要负责控制外部A/D芯片和多路开关的选通时序,以及实现对A/D采要过程的合理控制,利用FPGA实现A/D自动采集与数据存储。

  (3)数字量监测控制单元。负责所有要监视和控制的数字量的状态数据的采集和控制命令的输出。这一部分主要实现数字量输出的控制、数字量输入的存储、数字量输入状态变化识别(中断输入)。

  (4)FPGA接口逻辑控制单元。在FPGA内部设计了FPGA模块与外界MCU的接口单元,该部分主要用于同CPU的接口,使数据采集系统可以方便的与PCI、ISA及其他总线连接。

  3 模拟量采集的控制与管理

  在模拟量采集外围电路中,A/D芯片采用的是AD公司的AD976A。多路模拟量是通过AD438的多路开关后输入到AD976A芯片的。

  A/D采样部分可分为:寄存器组、时钟发生模块、采样控制状态机、数据存储模块。

  3.1 寄存器组

  寄存器组用于设置/读取A/D的工作状态,包括:采样频率设置寄存器、工作模式选择寄存器、工作状态寄存器及FIFO中断寄存器。

  (1)采样频率设置寄存器Frereg1,Frereg2(R/W):两个16位寄存器,用于设置12路A/D的采样频率,其位含义如下:

  频率设置如下:

频率设置

频率设置

  为保留位。

  (2)工作模式选择寄存器modereg(R/W)。176位寄存器,用于设置A/D的工作模式和启动、停止FPGA,各位的定义如下:

  (3)FIFO中断寄存器(fifo_int)(R):16位寄存器,用来记录FIFO的状态,各位定义如下:

  3.2 时钟发生模块

  (1)把时钟分频为1 MHz时钟,作为状态机的工作时钟;??

  (2)生成20 Hz,50 Hz,100 Hz时钟并结合Frereg的值给出12路A/D启动中断信号。

  3.3 采样控制状态机

  每个A/D用一个采样控制状态机,用于自动控制A/D的数据采集。其状态转换图如图3所示。

状态转换图

  IDLE:空闲状态。

  READ:temp=intreg,进入下一状态

  WAIT:等待中断,如果中断寄存器(intreg)不为0,进入下一状态,否则返回READ。

  SHIFT:根据temp[0]的值进行下一步操作,若temp[0]=0则temp>>1,同时通道计数器(counter)加1;若temp[0]=1,则根据counter的值给出通道选择信号,进入下一状态。

  START:发出RC=0信号,进入下一状态。

  W_BLISY:RC=1,等待A/D转换结束信号,如果结束,temp>>1,发出写FIFO信号,进入下一状态。

  END:无效FIFO写信号,若temp=0,表明已无中断,coutnter=0,进入WAIT;否则,counter+1,进入SHIFT。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

FPGA? 数据采集? FIFO? EP1C20F400?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈