基于485总线的高精度数据采集系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于485总线的高精度数据采集系统设计
卢超;梁烁;严帅;王智友;张会新
【摘要】针对数据采集系统中传输距离远、传输容量大和节点多的要求,设计了基于ISO1176T型总线收发器的高精度485总线通信系统.该系统通过主站单元建立485总线并转发指令,从站单元进行高精度数据采集,实现了自动控制多节点轮询采集,可配置各个节点的采样率、采样通道,或查询指定通道数据.实验结果表明,最多可同时采集31个节点的数据,采集精度达到0.7‰,具有很高的应用价值.
【期刊名称】《电子器件》
【年(卷),期】2018(041)006
【总页数】5页(P1572-1576)
【关键词】数据采集;RS-485总线;ADS1258;多通道;高精度
【作者】卢超;梁烁;严帅;王智友;张会新
【作者单位】中北大学电子测试技术重点实验室,太原030051;中北大学仪器科学与动态测试教育部重点实验室,太原030051;中北大学电子测试技术重点实验室,太原030051;中北大学仪器科学与动态测试教育部重点实验室,太原030051;北京宇航系统工程研究所,北京100076;北京宇航系统工程研究所,北京100076;中北大学电子测试技术重点实验室,太原030051;中北大学仪器科学与动态测试教育部重点实验室,太原030051
【正文语种】中文
【中图分类】TP302
在一些大型测试系统中,经常需要对设备工作环境中的多处地点的多个物理量进行准确的测量[1],为解决此类问题,提出了基于RS-485总线[2]的高精度数据采集系统,将不同地点的模拟信号经过采集转换成数字信号,由总线传输至主控制单元。总线的加入解决了数据采集系统中传输距离远、采集通道多的问题,相比于现有的数据采集系统,传输更加稳定,采集精度进一步提高,促进了数据采集系统的智能化。
1 系统整体设计
数据采集系统主要由上位机、485主站单元和31个485从站单元组成,原理框图如图1所示。上位机和主站单元通过以太网接口通信,主站单元建立485总线,其内部的FPGA解析上位机下发的命令后转发到RS-485总线上,与某一从站单元匹配成功后进行通信,并将接收的数据经处理打包后上传至上位机。根据命令可更改从站单元之间的查询模式,实现了一主站多子站间的高速485通信。
图1 系统总体设计框图
每个从站单元都是一个独立的数据采集子系统,主要由A/D采集电路、FPGA控制模块和RS-485总线模块组成,可采集16路模拟信号,原理框图如图2所示。FPGA 配置模数转换芯片ADS1258的相关寄存器设置采样率,选通模拟开关,开启A/D转换,并将数据传回主站单元。
图5 模数转换硬件电路图
图2 从站单元设计框图
2 系统硬件设计
2.1 FPGA控制模块
本系统以SRAM型FPGA即Spartan-6系列的XC6SLX16为主控制器。在主站的硬件电路设计中,FPGA主要实现RS-485芯片ISO1176T的控制,同时通过
W5300与上位机通信,硬件连接图如图3所示。
图3 主站单元FPGA硬件设计图
从站单元中,FPGA主要通过SPI接口控制ADS1258工作以及ISO1176T传输数据,硬件连接图如图4所示。
图4 从站单元FPGA硬件设计图
2.2 AD转换模块
从站单元中,选用ADS1258实现传感器输出模拟信号的采样及模数转换功能。ADS1258是16通道 24位分辨率的低噪声模/数转换芯片,所有通道同时采样时采样速率最高能达到23.7 ksample/s/channel(每路每秒23.7 k取样),采样频率可灵活配置,非常适合采样精度需求高、采样通道数量多的应用[3]。
ADS1258的硬件连接电路如图5所示。ADS1258和FPGA经过22 Ω的排阻连接,以四线SPI的方式通信。时钟选择管脚CLKSEL拉高,即不使用外部晶振,FPGA 产生的时钟信号由CLKIO输入[4]。数字部分与FPGA相连,因此选用0和3.3 V供电,即DVDD=3.3 V,DVSS=DGND;测量的模拟信号范围在0~5 V,所以模拟部分采用0和5 V供电,即AVDD=5 V,AVSS=GNDA;参考电压VREF=VREFP-VREFN=5 V[5]。
2.3 RS-485传输总线模块
为满足数据采集系统多节点、传输速率高、组网范围大等需求[6],采用RS-485总线进行数据传输,其逻辑电平的高低通过差分线之间的压差表示,总线接口由平衡驱动器和差分接收器两部分组成,提高总线驱动能力的同时提高了总线抗共模干扰的能力,保证了数据传输的可靠性。
总线接口芯片选择内置集成变压器和驱动器的隔离式Profibus收发器ISO1176T,它可在线路收发器和逻辑电平接口之间实现2 500VRMS的电压隔离,从而可降低数据损坏风险,具体的连接电路图如图6 所示。ISO1176T的变压器驱动管脚D1、D2分别输出开关频率为400 kHz方波,经过线圈比1∶2.2变压器DA2304升压,
二极管D1、D2实现变压器次级的半桥式整流,电容C13对输出进行滤波使输出电平保持在正半周期。变压器DA2304和线性稳压器LP2985组成的DC-DC电路为总线一侧提供+5 V的电压,实现了电源隔离,大大降低了功耗。在收发器中集成变压器驱动器使得隔离电源的配置变得更为简便,减小了电路板面积。
图6 RS-485总线芯片外围电路图
3 系统软件设计
3.1 主站单元软件设计
主站单元将接收到的上位机的指令转发至 RS-485 总线并将采集到的数据打包发送到上位机进行显示和处理,使用以太网网口[7]协议芯片W5300实现主站单元与上位机之间的通信。上位机通过以太网网口下发的命令遵循如表1的通信协议。表1 网口通信协议指令有效标志1 byte命令格式1 byte4 Byte(从节点地址。采集频率、采集通道)命令要求4 bit协议模式4
bitADD/8bRATE/8bAIN_0/8bAIN_1/8b查询指令2550无效位寄存器配置指令A无效值高三位000,低5位从站地址寄存器CONFIG1数据寄存器MUXSG0数据寄存器MUXSG1数据
主站单元接收到命令后,对命令进行分析。先判其有效标志“25 h”,再判命令格式是否为“50 h”,若是主站则按照表2所示总线通信协议格式向RS-485总线发送命令,此时从站地址从1开始累加到31,寄存器数据全为0,即不改变寄存器数值,每发完一次命令主站单元的RS-485驱动器芯片立即变为接收状态,及时接收从站单元传回的数据;若命令要求为“A”,则将命令中的后四字节的数据赋给总线传输命令包中的有效数据位的后24位中。上位机发送一次寄存器配置指令之后,需要再发送一次查询指令以得到新的采集结果。
表2 总线通讯协议起始位/1b有效数据位/32bCRC码/4b停止位/3b0从节点地址/8b+寄存器数据/24bCRC-4111