基于千兆以太网的多节点数据采集系统
2021-12-30薛伟钊赵晓阳张会新
陈 航,严 帅,薛伟钊,赵晓阳,张会新
(1.中北大学,仪器科学与动态测试教育部重点实验室,山西太原 030051;2.北京宇航系统工程研究所,北京 100076)
0 引言
在大规模测试系统中,经常要对多个节点的物理量实现精确采集,例如温度、大气压强、湿度等[1-3]。以往的测试现场在对传感器的模拟量进行测量时,大都采用端对端直接连线的方式。模拟量直接在电缆中传输,容易受到周围环境的干扰,造成采集端信号与测点端模拟量数值产生较大误差。为了解决传输电缆长短不同、信号易受到周围环境干扰的问题,设计了以千兆以太网和RS485总线为通信方式的数据采集系统[4-5]。该系统将需要采集的模拟量在测点端进行数字化,再将数字信号通过RS485总线传输至节点控制中心,最后通过以太网传至电脑端。相比传统的测试系统,提高了数据采集精度,增加了节点数量,实现了自动化测试。
1 系统整体设计
多节点数据采集系统主要由以下4部分组成,20个采集节点、RS485总线、节点控制中心、上位机等,系统整体设计如图1所示。采集节点主要功能是对前端的模拟量进行高精度数据采集,然后通过RS485总线传输至节点控制中心。节点控制中心主要功能是实现对上位机端下发的命令信息进行解析并传给各采集节点,同时还负责将接收的各节点数据打包传给上位机。上位机的功能是实现命令下发与节点数据接收。
采集节点作为系统前端数字化单元,采用了模块化设计,可根据实际测点多少调配采集节点电路板的使用数量,在投入使用时只用下载程序配置其节点序号即可。采集节点电路主要包括FPGA主控、A/D模数转换、RS485总线控制芯片等,原理设计如图2所示。
2 系统硬件设计
2.1 千兆以太网接口电路设计
在复杂大型测试系统设计中,模块化和系统自动化测试越来越被设计者重视,各模块之间的通信设计也随之成为要重点考虑的内容。通信接口分为串行和并行,串行接口常用的有RS232、RS485、USB、LVDS、以太网等,并行接口常用的有PCI、PCIE等。考虑到PC端常用的接口,最终选择千兆以太网和电路板进行通信。
以太网物理层选择88E1111来实现,它支持GMII、TBI、RGMII、RTBI、SGMII等接口,支持十兆、百兆、千兆网络自协商,芯片内核供电电压为1 V或1.2 V,其他部分供电电压为2.5 V,运行时的功率仅为0.75 W,同时还集成了MDIO管理接口,方便用户读取芯片工作状态和重新配置芯片内部寄存器[6-7]。FPGA与88E1111之间的通信选用常见的GMII模式,如图3所示。
在进行千兆以太网数据传输时,88E1111首先要进行正确的硬件配置,一共有7个配置管脚CONFIG0~CONFIG6,CONFIG4和CONFIG5最低位决定HWCFG_MODE[3∶0]为1111,即GMII模式。具体的引脚连接如表1所示。
表1 88E1111芯片引脚配置表
2.2 采集节点电路设计
采集节点的功能是对前端模拟量完成数字量化,同时还需要考虑恶劣的工作环境影响,如高温、复杂的电磁环境等。ADS1258具有24位模数转换分辨率,内部集成了16路模拟开关,在自动扫描通道模式下最高采样速率为23.7 KSPS,也可以配置为固定通道采样模式,最高速率可达125 KSPS,测试的单极性电压范围为0~5 V。它具有内部温度传感器,可以根据温度变化对数据进行实时补偿,工作在-40~105 ℃,符合模数转换的环境要求[8]。
FPGA主控通过SPI四线接口与ADS1258交换数据信息,16 MHz通信时钟由FPGA提供,这时要将CLKSEL管脚变为高电平,代表选择外部时钟输入。芯片电源分为5 V模拟供电电压AVDD,5 V参考电压VREF,3.3 V数字供电电压DVDD。ADS1258的接口设计如图4所示。
2.3 RS485模块电路设计
多节点数据采集系统需要将各节点数据传至节点控制中心,串行总线技术接口信号少,是节点和控制中心数据交互的最佳选择。RS485总线和RS232总线比较,降低了接口电压,实现了信号差分传输,增强了传输过程中的抗干扰能力,同时可以实现多节点之间半双工通信[9]。
RS485总线芯片选择ISO1176T,总线电缆采用双绞线,节点和总线之间采用DB-9针孔接插件实现互连。接口芯片的板内信号电源和总线侧信号电源相互隔离,在源头解决了总线上复杂电磁信号对板内各电子器件的影响。ISO1176T产生数字信号驱动DA2304产生6 V电压,经过二极管整流,通过线性调节器LP2985H后变为差分信号输出到总线上,相应的电路设计如图5所示。
3 系统软件设计
3.1 千兆以太网软件设计
目前,以太网数据传输多基于TCP/IP协议族实现,OSI网络结构将计算机网络分成7层,在FPGA端实现以太网数据传输主要涉及数据组包和电信号编码和传输。节点采集数据组包由Verilog编写的MAC模块实现,和赛灵思公司提供的硬核比较,使用代码逻辑搭建的适配器可以按需要功能进行定制和优化,以太网的一包数据如图6所示。以太网V2标准数据包的电信号编码和传输由专用PHY芯片88E1111完成。
在数据进行传输时,发送和接收数据分别在etn_txc和etn_rxc的上升沿进行,etn_rxc为125 MHz时钟引脚,由88E1111芯片在进行成千兆网络通信时提供,etn_txc由接收数据时钟产生。首先发送前导码7个55h,1个D5h,然后发送以太网帧头,包含目的MAC、源MAC、协议类型0806H(代表后面的信息遵循IP协议),接下来发送组包完成的采集数据等,最后还要发送4个字节的CRC校验位。
表2 TCP和UDP协议区别
3.2 系统通信协议设计
各节点将数据精确采集后,需要通过RS485总线将数据传输至节点控制中心,随后通过千兆以太网传输至上位机进行显示和处理。这就需要制定通信协议,在保证数据不丢失的前提下高效传到计算机。
控制中心主要完成配置轮询等信息的接收和节点数据编帧和上传,通信协议既要有效完成命令下发,又要和总线协议相匹配,控制中心在对上位机下发命令进行简单裁剪后,就可以发送给相关节点,定制的控制中心协议见表3。整个协议包含48位,高8位是接收有效标志位,33~40位是命令标志,配置命令用来对节点寄存器进行配置,轮询命令用来对总线上所有节点的数据进行接收,停止命令表示上位机不再接收数据。低32位是数据位,主要包含节点位置和配置数据。
表3 控制中心通信协议
总线通信协议要完成命令与数据下传,还要将各节点的数据准确无误传输至控制中心,总线通信协议如表4所示。在进行数据传输时加入了4位CRC校验位,当数据有错误时,下发命令重新传输,5次传输都错误时,节点位置号会传输至上位机。协议包含一个低电平开始位,8个节点地址位,24个节点数据位,4个CRC校验位,3个高电平停止位。系统传输逻辑加入了热拔插设计,可以随意增加或减少节点,提高了系统的灵活性和可靠性。
表4 RS485总线通信协议
3.3 采集节点软件设计
一个采集节点需要将16路模拟量进行精确采集,经过编帧后再根据RS485总线协议发送到节点控制中心。在系统上电后,首先要对采集芯片ADS1258进行配置,使其对16个模拟量输入通道自动扫描,工作速率为23.7 KSPS,主要涉及3个寄存器配置CONFIG1、MUXSG0和MUXSG1,CONFIG1寄存器的配置参数为03h,意义是不选择待机模式,并且选择最高数据速率。MUXSG0和MUXSG1寄存器的配置参数为FFh,意义是选择16个单通道电压输入方式。配置采取SPI接口进行,在芯片选择管脚CS是低信号时,配置命令和参数会在时钟SCLK的上升沿进入DIN引脚。
系统开始工作后,采集节点先对ADS1258的3个相关寄存器进行重新配置,然后读取配置结果,检验是否正确。在配置数据正确后进入采集状态,开始接收RS485总线上的信号,当信息是轮询指令时,开始将节点号和采集数据打包发出,当接收到重新配置命令时,则对寄存器重新配置。
ADS1258在配置完成后,把START引脚置高进入数据采集状态,通过监测DRDY引脚可以获取1次数据转换是否完成,低电平时可以读取最新4字节的转换数据,其中有1个字节的状态信息,3个字节的数据,状态信息包含是否为新数据、转换通道、供电电压是否达到预设值等。具体的软件逻辑设计见图7。
4 试验结果
系统试验分为千兆以太网速率测试和整体试验。通过自加数信号源测试以太网速率,实际测试速率可达800 Mbps,经过分析软件分析数据正确。在整体测试时,RS485总线一共20个采集节点,根据需要采集的前端数据种类分为A、B、C、D 4组,系统最多可实现320个测点的模拟量轮询采集。在D组第1个节点第9测点输入2.5 V电压,其他的节点和测点做悬空处理,下发轮询命令,接收的数据用Hex软件打开,见图8。
分析图8的试验结果数据,节点控制中心对D组的第1个节点和第2个节点依次进行轮询,图中2条黑线分割了不同节点的数据,EB 90 EB 90是一个节点16通道数据发送完成标志。第6行第5列开始的数据“AD D0 D1 01 90 3B EF 1C”中“AD D0”是数据地址标志,“D1 01 90”代表数据来自D组第1个节点第9测点,“3B EF 1C”转变成电压为2.497 3 V,用高精度万用表测得实际输入电压为2.499 8 V,计算采集系统的精度是(2.499 8-2.497 3)/2.499 8=0.1%,证明该系统有较高的数据采集精度。
5 结束语
多节点数据采集系统的设计采用千兆以太网作为系统和上位机的通信载体,和USB2.0比较,提高了数据通信带宽和稳定性。24位高精度模数转换芯片的使用,提高了对传感器端模拟量变化的感知能力,新型RS485总线驱动器ISO1176T一方面提高了总线通信速率、节点挂载数量,另一方面通过变压器隔离了总线侧和芯片侧的电源,提高了总线电信号抗干扰能力。经过测试证明,该系统可以有效实现大面积环境下模拟量采集工作。