基于VME总线的高精度温度测量板卡FPGA设计
方案具有设计性能更优、设计思路更清晰、周期短、成本低等优点。
关键词:高精度;VME總线;FPGA
中图分类号:TP274 文献标识码:A 文章编号:1003-5168(2018)02-0082-03
Design of High Precision Temperature Measurement Board
FPGA Based on VME Bus
XUE Qinghua ZHANG Yuanyuan
(Chongqing Kaiwu Industry Co., Ltd.,Chongqing 401331)
Abstract: In modern large-scale environmental control system, high precision temperature measurement is the prerequisite for the implementation of precise control. The high precision temperature measurement unit also puts forward higher requirements for the control of its own. This paper presented a way to control the whole working process of the card and the VME bus interface by using FPGA. Compared with the traditional microcontroller, the control scheme has the advantages of better design performance, clearer design idea, shorter cycle time and lower cost.
Keywords: high precision;VME bus;FPGA
在现代大型环境控制系统中,温度参数的测量至关重要,它往往不但需要很高精度,而且需要多点、实时。系统的复杂性必然导致可靠性和稳定性下降,而这又会严重影响系统的性能。作为子系统的测量板卡也面临同样的问题。板卡采用VME总线作为板卡内外部的接口,可以满足系统稳定性的要求。VME总线的规范同时确保了机械结构的稳定性。板卡整个控制都在FPGA中实现,包括VME协议、控制、算法、存储等。
1 整体设计方案
1.1 板卡模块分解
VME总线高精度温度测量板卡设计主要分为以下几部分:主控FPGA、模-数转换、恒流源、恒压源、扫描开关阵列等。由于系统测温精度高达±0.01℃,在板卡内部数据采集时的精度要求达到0.01%,所以AD芯片的转换位数至少高达14bits。但是,受目前相关模拟芯片的精度限制,加上环境造成的温度漂移,使之最终的转换精度有所下降。为了达到设计要求,对测量精度起关键作用的AD芯片选用TI公司的ADS1255,它的转换分辨率为24bits,具有FPGA(可编程增益放大倍数)性能,能够满足设计性能的要求[1]。
除了AD芯片具备很高的精度外,外接传感器激励信号精度也至关重要,其精度高低在某种意义上决定了设计的成败。板卡除主要外接温度传感器外,提供电压及电流激励等。测量板卡通过扫描开关来对每一路传感器进行数据采集,板卡总共有17路差分输入的扫描通道。
FPGA芯片是整个板卡的控制核心,它实现了VME总线协议、完成对AD芯片的控制、对数据进行64次递推平均滤波算法、通过Megafunction生成DPRAM、扫描开关阵列的时序配合控制等。
1.2 控制固件功能划分
板卡控制固件所需控制的元件主要有:AD芯片ADS1255的控制,扫描开关阵列的控制,LED指示的控制,状态指示和调试。
其中板卡控制固件功能模块有:①时钟倍频PLL;②AD芯片控制;③VME总线;④扫描开关阵列控制;⑤DPRAM(Daul Port RAM)模块;⑥顶层控制主状态机;⑦滤波算法模块。
2 FPGA设计
2.1 FPGA模块划分
控制固件的模块划分是FPGA设计的基础,在FPGA中进行了设计的详细定义,确立了输入输出的接口关系。
晶振产生时钟主要有20M和8M两种,前者提供给FPGA芯片应用,后者提供给AD芯片使用。板卡固件内部时序逻辑工作的主时钟频率是40M,DPRAM模块时钟为160M,通过芯片内部的PLL模块,分别倍频2倍和8倍可以达到设计的要求。
AD芯片准确控制是确保板卡正常工作的关键。该芯片硬件电路设计为差分输入,这决定了芯片寄存器的参数。在AD芯片的整个控制中,与芯片通信的SPI模块占据十分重要的位置。同时,AD芯片控制时序比较复杂,必须满足相关信号的延时要求。
VME总线是整个板卡与外界通信的桥梁。板卡采用的VME总线符合VME64标准,同时根据板卡具体设计,对标准VME信号进行裁减,使之更符合实际需要[2]。板卡采用的通信格式为A16:D16:D8(E0),接口芯片为符合VXI标准的寄存器器件。板卡在VME协议中规定为从模式。它的设计主要包括,中断请求处理和数据传输(从模式)控制模块。
扫描开关阵列控制是为配合板卡顶层主状态机控制模块的时序要求。但扫描开关数量比较多,容易产生比较大的漏电流和寄生电容等影响板卡精度的负面因素。为了达到良好的控制效果,必须等待扫描开关达到合适的稳定时间,使AD芯片采样到准确的数据[3]。
板卡扫描通路较多,同时滤波算法、板卡每路通道采样数据需要大量存储,需用较大容量DPRAM存储器。FPGA芯片内含M4K逻辑资源,通过Megafunction配置生成4K×16bits的DPRAM。配置DPRAM地址线12位,虽然与VME总线的16位短地址模式不匹配,但通过地址重新映射,VME总线可以实现对DPRAM的访问。
板卡顶层主状态机主要负责协调各个模块工作,使其按照预定设计的流程完成对数据的采集功能。为了使工作效率更高,须对状态机进行优化,并选择合适的编码方式。
板卡滤波算法是嵌入主状态机之中,从硬件上实现了对数据64次递推平均滤波算法。
FPGA模块设计的主要任务集中在AD芯片时序控制、VME总线接口、顶层主状态机实现等部分。本论文仅从这3部分来展开阐述。
2.2 模块功能实现
围绕主要功能模块,下面对其展开论述。
在AD芯片时序控制中,主要完成与芯片通信的SPI接口和芯片时序控制。
SPI模块分为3部分:①顶层控制模块,主要完成其他功能模块的信号转接和对SPI工作模式的寄存器参数设置;②串行时钟产生模块,它主要是完成按设置参数产生准确的串行时钟,以及辅助控制信号;③传输细节控制模块,配合顶层控制模块产生的串行时钟完成串并转换或并串转换的功能。对芯片其他信号的控制是在状态机中完成的,如芯片复位、芯片读写寄存器、读取24位采样结果。
初步设计中采用参数化设计,为以后上电调试提供便利。
VME总线模块的FPGA划分为以下几部分:中断控制模块和数据传输控制模块。在数据传输控制模块中又包括SLAVER(从模式)控制模块、地址译码、背板接口逻辑、实用逻辑等模块。
主状态机是顶层控制模块,它负责协调各个功能模块的工作。主要状态包括所有模块的复位、设置相关寄存器、启动采集任务、数据滤波处理、对DPRAM进行读写等,它设计的优劣关系采样的效率和速度,对板卡采集的实时性有较大影响。
2.3 仿真验证
在FPGA设计中,仿真是非常重要的环节。仿真主要分两个阶段:在前期对各单独模块仿真,后期对整个模块进行仿真。在仿真的时候,一般需要建立专门的Testbench。模块独立仿真阶段,由于VME总线模块信号很多,仿真需要外加的激励信号也很多,所以编写了Testbench加以验证。而对于AD芯片控制模块等,激励信号有限,只需要通过建立波形文件手动加上激励信号即可。
所有的仿真验证工作全部在ALTERA公司提供的集成开发环境QuartusII 5.0下完成。经过仿真验证,基本可以确定模块设计的正确性。
部分仿真波形如图1—4所示。
3 测试
3.1 测试平台
固件代码下载到FPGA芯片进行调试成功,表明控制固件的功能已经实现。为了对其性能作全面测评,还必须要进行长期的稳定性和可靠性测试。上位机软件用于记录测量结果,该软件通过串口通信与VME机箱交互,记录每一通道传感器的测量数据,同时通过绘制图形的方式来实时显示当前测量结果。
3.2 测试结论
测试结果表明,高精度数据采集板卡精度完全达到设计标准,性能良好,运行稳定可靠。
4 结语
测量板卡经过使用后的反馈表明,性能完全能够达到设计的精度。板卡设计过程中由于采用以FPGA芯片为控制器的方式,大大加快了设计进度,板卡控制达到了自身的要求,板卡性能满足达到环境系统的要求。
参考文献:
[1]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大學出版社,2003.
[2]American National Standard for VME64[C].American Nationanl Standards Institute, Inc.,1995.
[3]费业泰.误差理论与数据处理[M].北京:机械工业出版社,2002.
推荐访问: 板卡 总线 测量 温度 设计