多路数据采集系统的FPGA方案实现

2021-04-11 14:56长江大学电子信息学院范宋杰
电子世界 2021年6期
关键词:二进制寄存器高精度

长江大学电子信息学院 范宋杰

数据采集常见于方方面面,为获取更精确更及时的数据,选用一款高精度24位的具有多路输入的采集芯片并采用FPGA芯片对采集进行控制和提取采集数据,然后将数据通过串口模块上传至上位机,通过曲线或表格实时显示出来。该采集系统结构简单、体积小、精度高、实时性好、可扩展性好,能与各种高速低速外设进行连接,对有各种电压采集需求的方案设计有积极的参考意义。

1 背景

在民用、工业、军事乃至航空航天等各种领域中,需要对各种环境和设备的温度等参数进行实时监测,这些参数一般都是通过如热电偶和热电阻等温度传感器传将物理量转换成电压表现出来。在技术愈加发达的今天,数据的精确性和实时性要求越来越高,成为各种温度控制场所正常工作的必然要求,也可以实现节能减排的效果。考虑到成本因素,多数采集系统的采集芯片的位数不够,得到的数据与实际误差较大,对精细化采集达不到要求,因此本文选择了一款24位的AD,并且单片机因其价格低,使用简单,被常用于各种温度控制中心和数据处理中心,但是单片机速度不够快,精度差,时序不精准,易受干扰,甚至可用I/O口不多,可维护性差,对于以后的系统升级改造造成不便,而FPGA特别适合高速高精度数据采集的控制,且快速稳定,为此本文采用了Intel公司的Altera FPGA芯片作为采集控制中心和数据处理中心,来实现高精度采集的控制,并将采集结果上传至上位机。根据上述,进行了方案设计和理论分析。

图1 高精度实时采集系统框图

2 总体采集方案设计

根据采集需求,设计了电压采集系统总体框图,如图1所示,FPGA外接一个存储器以便程序存储。FPGA对AD的进行复位和写寄存器操作以配置各种采集参数,并控制AD采集的开始和停止,在收到采集数据后,通过串口模块上传给上位机进行解析并显示出来。同时电源模块为各部分进行供电。

3 模块设计

3.1 采集芯片的选型及介绍

本模块采用TI公司的ads1256芯片进行采集,其内部结构示意图如图2所示。该AD是一款24位低噪声模数转换芯片,动态范围为144dB,若将2.5V作为AD的参考电压,则最小可识别电压0.3uV。AD芯片的外围电路也比较简单,需要一个3.3V的工作电压及一个7.68MHZ的无源晶振,通过四线制SPI总线与处理器进行通信,分别为SCLK、CS、DIN、DOUT。要注意的是数字地、模拟地、电源地的接法,相互独立连接,最后通过磁珠或电感连接在一起。AD所有寄存器可编程,针对采集常用的寄存器有状态寄存器、多路复用寄存器(确定正负两个输入端以便差分采集,若另一端接地则为单端采集)、AD控制寄存器(可产生恒流源及可控增益设置)、A/D数据速率寄存器(采样率可通过编程设置为2.5~30k SPS)等。

图2 AD内部结构图

3.2 采集系统的构成及实现

采集系统包括数据采集控制器、通信模块和上位机设计共3个部分。其中采集控制器实现采集逻辑,串口模块实现通信,它们均由FPGA实现。

FPGA采用Altera公司的4代EP4CE6E22C8N,FPGA(Field Programmable Gate Array),现场可编程门阵列,其本质是一种硬件电路,由于通电瞬间所有电路的同时运行的,因此FPGA有着独特的并行特性,可以同时处理多任务且互不干扰,一般配置高达50MHZ的晶振,内部集成PLL锁相环,从而FPGA的时钟频率高达几百兆,运行速度非常快,通用IO口很多,在对音频处理、图像处理等大容量数字信号处理时优势更加明显。FPGA芯片的厂商很多,如Altera(Intel)、ACTEL,xilinx,Lattice等,随着工艺进步和量产规模的扩大,芯片价格也比较亲民,其中Altera系列芯片比较常见。

FPGA最小系统由晶振、复位、电源、电感、标准10引脚JTAG调试及程序下载接口等部分组成,外围电路的搭建比较简单。Altera芯片一般基于SRAM运行,掉电程序消失,为使下次仍能运行,可外界接一个存储芯片进行存储,待上电时需要耗费一定时间进行配置。

①AD采集控制器:将AD的SPI接口和FPGA通用IO口相连。根据手册,控制器需要对AD进行复位、配置上述3.1节中各种寄存器、开始转换、读取数据并组帧处理。采用多路复用技术,仅仅修改多路复用寄存器的参数就能实现对不同通道的电压采集。

所有寄存器的配置参数均通过DIN引脚写入AD,写命令为{0101+4bit-寄存器地址addr+0000+4bit被写字节数+1字节具体参数}共24位。由于仅有一个采集模块,CS信号可一直拉低,一个SCLK长度为520.8ns。此外当FPGA控制器检测到DRDY为低电平时就开始接收OUT引脚输出的24位二进制数,并采用二进制补码形式对24位二进制数进行读取,解析时根据AD编码格式将其恢复成原始模拟值。

②串口模块:采用UART,仅有RX、TX两根线,无时钟信号线,因此属于异步通信。定义1位起始位0,8位数据位,1位停止位高,波特率为115200bps,由于串口模块比较简单,无需采用状态机来实现,计时器用得比较频繁。因为采集一次有24位数据,如果分通道号,则再加8位的通道标志位,因此串口模块需要将32位二进制数据分为4帧8位二进制数依次发送出去。

同时由于FPGA电平与电脑USB接口电平不同,需要USB转TTL模块,将两者进行电平转换才能进行通信。

③上位机设计:用户图形界面开发有多种开发语言及工具。曾经很火的有MFC,微软公司几乎停止对其维护,其代码生涩难懂,编程复杂,尤其是开发的界面不够美观,显得生硬,而QT是奇趣公司开发的一种跨平台C++图形用户界面的开发框架(最终被Digia收购),QT开发的界面美观,代码易懂,网络教程较多,最重要的是QT的各种打包的库可直接使用,避免了开发人员从底层进行复杂的编程,深受GUI开发者的喜爱,被广泛应用各种游戏平台和各种管理客户端的开发。

图3 上位机软件截图

微软的visual studio是一款十分优秀的集成开发环境(IDE),具有强大的代码智能提示、纠错、关键词高亮、快速定位的功能,对错误提示比较友好,VS的配套插件及其丰富,相对而言,QT自带的IDE-Qt Creator的使用体验不如VS,编译不够稳定健壮。因此本文采取VS+QT的方式进行串口上位机的开发。在VS的扩展更新中搜索安装QT VS Tools插件,并添加QT安装路径下的MSVC2017就能在VS中新建QT工程,在ui文件中添加控件并进行布局,通过编程实现相应控件的功能,进行用户界面的开发。

由于QT自带serialport库,直接在工程文件中添加调用,通过提供的函数设定串口通信格式,此外第三方QCustomplot库是一种精美的静态和动态绘图库,基于以上两种库,可以实现串口收发实时绘图。坐标轴可移动和缩放。上位机软件如图3所示。

结束语:本文通过对一个高精度高实时性的多路电压采集系统的方案进行设计,并分析了每一个模块的组成及具体功能作用,采用一款24位高精度模数转换器和一款性能较高的FPGA芯片作为AD采集控制器,可以实现单路采集、多通道采集或4通道的差分采集,只需在多路复用寄存器更改参数即可,同时对采集数据可以进行各种处理,充分说明了可编程的便利性,也延长了器件和系统的使用周期,该采集系统测量精度高、结构简单、体积小、集成度高,可扩展性强、适用范围广,具有较广泛的应用前景。

猜你喜欢
二进制寄存器高精度
STM32和51单片机寄存器映射原理异同分析
用二进制解一道高中数学联赛数论题
Lite寄存器模型的设计与实现
有趣的进度
二进制在竞赛题中的应用
高抗扰高精度无人机着舰纵向飞行控制
船载高精度星敏感器安装角的标定
基于高精度测角的多面阵航测相机几何拼接
高精度免热处理45钢的开发
高速数模转换器AD9779/AD9788的应用