用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

基于FPGA的多路模拟量、数字量采集与处理系统

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:39:51
地址从(10000)2到(11111)2。(100000)2单元存储的是第1个负载的状态,以此类推,(10000)2单元存储的是第16个负载的状态。每个16位数据存储器的8位固定为5AH,接下来的5位为(00000)2,只有最后3位才是负载的状态位。

当MCU读FPGA时,process(rd)进程启动。这时,如果MCU地址线A4的电平(对应于FPGA的chansel:std_logic_vector(4 downto 0)信号量的第四位)为“1”,FPGA就根据chanse1(3 downto 0)的值,将对应的数据存储器的值发送到数据总线上。MCU读回数据存储器的值后,如果前13位不是(0101101000000)2,说明产生了读错误,MCU重新再读一次。必须指出,在FPGA控制A/D采样时,读哪个通道信息也是通过A0~A3地址线区分的,但是,A4的电平为低。

MCU根据系统处于不同的状态给负载发送接通/断开指令,这是通过写FPGA的寄存器KGIR实现的。KGIR的16位依次代表16个负载,“1”为接通,“0”为断开,复位值是0000H.寄存器KGER是数字量输出的总开关,复位后为0000H,不允许数字量输出;MCU对其写入FFFFH后,允许数字量输出。FPGA给负载发去接通/断开指令后,负载将会有两个状态信号返回。FPGA结合寄存器KGIR的控制指令值,可以判定负载处于何种状态之一。如果反馈的信息为跳闸,FPGA将根据寄存器KGCR的值作出相应的处理。如果为其它信息,FPGA将不做处理,只是将状态信息存储在数据缓冲区中等待发送给权限高的MCU来决定。KGCR的复全值是0001H,表示跳闸发生后,FPGA将自动再发一次接通指令。程序运行的过程中,MCU根据任务的紧急和系统的布局,可以修改KGCR的值。如果KGCR的值为0003H,表示第一次跳闸发生后,FPGA可以重复发三次接通指令。

因为FPGA是基于RAM工艺的,在掉电后本身不能保存信息,因此需要一个外置存储芯片来保存其信息,这里采用一次可编程的PROM:XC17S100APD8I(OTP)。该PROM与Spartan-II芯片的接口只需要一个I/O;复位引脚的极性可编程(高有效或低有效);供电电压为3.3V。

XC17S100A的DONE、INIT、CCLK信号来自FPGA芯片XC2S100。系统刚一上电,FPGA首先初始化,置INIT、DONE为低。INIT为低后复位PROM,此时由于PROM的CE为低,因此PROM被选中,从而将数据流从DATA脚输入到FPGA的DIN脚。配置完成后,FPGA将DONE接高,PROM处于低功耗的待机模式,并将DATA脚置为高阻态。

在硬件调试和在线修改过程中,选用FPGA的CCLK、DONE、DIN、PROG引脚用做硬件调试编程。将下载电缆接在计算机并口上,选择恰当的下载方式就会将Xilinx开发软件生成的位流文件下载到FPGA的内部配置存储器中。配置下载流程可以分为3个阶段:初始化、清除配置内存、下载数据。清除内存在所有配置模式中都是一样的,下载数据却随着配置方式的不同而不同。

实际应用中,一般都需要将数据流文件烧入到Xilinx PROM中,每次上电伊始,由PROM将数据流下载到FPGA中,下载完毕,FPGA开始工作。

4 结论

针对监测系统监测信号一般较多的特点,本文提出了一种基于FPGA技术的多路模拟量、数字量采集与处理系统,设计了相应的外围硬件电路和系统处理软件。在仿真和综合调试成功的基础上,本系统成功用于某航空重点预研项目的电气负载管理系统试验中。试验结果表明,本系统成功地完成了对多路模拟量、数字量的采集处理任务,因此,在电气测控系统中有较好的应用前景。



上一页  [1] [2] [3] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:6,484.37500 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号