APP下载

基于FPGA设计的含有多路通信串口的电压采集系统

2017-10-22叶沉

中国新通信 2017年18期

叶沉

【摘要】 电压采集系统是在工业自动化应用中常见的一种数据采集系统,被广泛应用在工业自动化控制和无线广播发射机控制等领域。基于FPGA设计的含有多路通信串口的电压采集系统是以FPGA为核心器件,通过控制模数转换芯片对模拟电压进行采样,将采样结果通过多路串口传输到多个上位机的一种数据采集系统。该系统通过在FPGA内部复用功能模块的方式,在一个系统中提供多达八个通信串口资源,解决了在需要多个串口同时上传数据的情况下,有些电压采集系统通信串口数量不足的问题。

【关键词】 FPGA 电压采集 模数转换 多路通信串口

在对无线广播发射机的工作状态进行现场监控时,需要对发射机的多个节点电压量进行采集,并将采集到的多组电压值上传至监控平台的多个PC端进行分析和显示。基于FPGA设计的含有多路通信串口的电压采集系统是一个能够采集八路模拟电压量的电压采集系统,该系统的模拟电压输入范围为±5V,允许最大误差为±0.005V,最大可提供八个通信串口,很好的满足了对无线广播发射机的多个节点电压量进行采集和传输的需求。…

该电压采集系统采用Xilinx公司推出的Virtex5系列FPGA产品作为设计载体,在FPGA内部复用设计了八个串口通信模块,每个模块可独立实现一路串口的收发功能,串口波特率设置均为19200,数据位为8bit,无奇偶校验,停止位1bit。

由于FPGA属于并行逻辑电路结构,各个串口模块可同时进行数据收发而不会相互影响,利用FPGA支持的调用IP核设计方式,在每个串口模块的前端,为发送和接收端分别配置一个FIFO模块,用于对通信数据进行缓存。通过对FIFO的IP核进行简单设置,为每一个串口模块设计出FIFO缓冲单元,提高了各路串口的传输效率,从而简单有效的完成各路串口的数据缓冲功能设计。

根据对模拟电压量的采样需求,电压采样系统需要提供100kpps以上的采样率才能够满足系统的整体设计要求,综合考虑模拟电压范围为±5V,允许最大误差±0.005V等设计要求,该电压采集系统采用型号为AD7892的模数转换芯片,配合多路模拟量选通器件实现八路模拟电压量的采样功能。

AD7892是一款12位的支持双极性输入的ADC芯片,提供串行接口和并行接口两种输出方式。为实现最佳的数据传输效率,该电压采集系统选用的是12…bit的并行接口方式完成ADC芯片与FPGA之间的数据传输。

单次的采样过程为FPGA控制多路模拟量选通器,将已经经过滤波的一路模拟电压输入信号选通至AD7892芯片的输入端,模数转换完成后,ADC芯片将12…bit的模拟电压值通过并行总线输出,同时给出输出有效标志信号。

FPGA通过判断该标志信号状态,在标志位有效的情况下将并行总线上12…bit的模拟电压数据锁存到FPGA内部的触发器中,然后通過添位扩充的方式将12…bit的数据扩充到16…bit,转换成两个字节的数据,以便于按字节进行传输。

具体采用的扩充方式为将12…bit数据中的高位6个bit前面补充2个bit的‘0,构成“00xxxxxx”样式的一个高字节数据,再将12…bit数据中的低位6个bit前面补充2个bit的‘1,构成“11xxxxxx”样式的一个低字节数据。

扩充好个两个字节的数据首先按顺序依次存入串口的发送FIFO中进行数据缓冲,待该路串口的发送端没有数据待发送时,系统从FIFO中读取数据到串口发送端进行数据的发送。

PC端通过串口接收到该路的数据后,对每个字节数据的前2个bit进行判别,并按照先处理“00xxxxxx”字节得到高位的6个bit采样数据,后处理“11xxxxxx”字节得到地位的6个bit采样数据,按先后顺序便可以还原出单路一次采样得到的12…bit的模拟电压值。

传统的电压采集系统的设计,通常采用的是单片机或DSP处理器与ADC芯片组合的设计方式,这种设计方式的优点是开发工具支持C语言进行设计编程,便于对系统的开发与调试,开发成本较低。

但由于现场应用需求的特殊性,系统需要同时提供八个通信串口,并且要求能够实时的将采集数据上传至多个PC终端,而单片机或DSP处理器一般只提供2个到3个串口外设。

虽然通过软件编程方式可以再额外模拟出几路串口,但系统的稳定性和通信速度都会大大降低,无法满足现场应用的需求。

采用Virtex5系列FPGA作为该电压采集系统的核心电路,与12位模数转换芯片AD7892的组合既实现了多串口通信,又达到了很好的硬件处理能力,拓展了电压采集系统的应用范围。

参 考 文 献

[1]…徐文波,田耘.《Xilinx…FPGA开发使用教程》.…2012

[2]…薛小刚,葛毅敏.《Xilinx…ISE…9.X…FPGA/CPLD设计指南》….…2007

[3]…孙航,胡灵博,于联锋,樊彧.《Xilinx可编程逻辑器件应用与系统设计》.…2008