基于Modbus/TCP的电容式扭矩传感器数据采集系统设计

2024-02-22 12:48蒲明辉赵仁东黄学创艾振军
仪表技术与传感器 2024年1期
关键词:电容式以太网上位

蒲明辉,赵仁东,黄学创,艾振军

1.广西大学机械工程学院;2.广西制造系统与先进制造技术重点实验室

0 引言

随着工业自动化的不断发展,扭矩传感器已经广泛应用于协作机器人[1-2]、空间机械臂[3]和精密加工机床[4]等领域,通常安装于具有旋转副的关节处,用于感知关节承受的扭矩大小。而电容式扭矩传感器具有灵敏度高、动态性能好、体积小等优点[5],被认为是极具应用前景的一类传感器。

电容式扭矩传感器要实现扭矩的测量,需要相应的数据采集系统对电容信号进行采集和处理,并将数据传输到上位机,最终转换为扭矩信息。目前基于串口通讯的数据采集系统数据传输方案应用最为广泛。如刘瑾等[6]基于RS232通信实现了电容式位移传感器的数据采集,但RS232串口通讯存在传输速率慢、易受干扰的问题。于是,有研究者采用差分的串口通讯方式,如王小鑫[7]设计的基于RS485的电容式加速度传感器的测量系统,董超慧[8]设计的基于CAN总线的电容式压差传感器的数据采集系统,增强了数据传输的抗干扰能力,同时传输速率也得到提高。虽然CAN和RS485最大传输速率已经达到Mbit/s,但当通讯距离超过10 m后,通讯速率就会大大降低。而采样芯片和主控芯片之间的SPI通讯最大速率高达80 Mbit/s,以上的通讯方式未能充分发挥芯片的性能。

以太网通讯技术能实现远程数据传输,被广泛应用于多个领域,其采用差分方式传输数据,具有很好的抗干扰能力,在局域网内传输速率可达100 Mbit/s。Modbus/TCP通信数据链路层的校验机制可以保证数据的完整性[9-10],是一种可靠的通讯模式。本文针对电容式扭矩传感器设计了一套基于Modbus/TCP协议的数据采集系统。系统硬件基于AD7147+STM32实现电容信号采集,通过W5500芯片实现以太网通信。另外,为了实现数据的采集、显示与存储,开发了一款对应的以太网通讯上位机软件。

1 系统需求与总体设计

数据采集对象为电容式扭矩传感器,其基于变极距型电容器工作原理设计,极距的微小变化会导致电容器容值发生改变,而采集系统根据容值变化量可以映射出相应的扭矩值。传感器结构如图1所示,包括传感器本体的外圈、弹性梁、内圈以及安装在本体外圈上的PCB板。其中外圈用于固定传感器,电容动极板与内圈连接,电容静极板位于PCB板上。当扭矩施加于传感器内圈,动极板会随着内圈发生微小转动,电容器动、静极板的间距就会发生改变。

图1 传感器结构

传感器共需要8个电容静极板两两构成差动,分成4组来实现扭矩的测量,这就要求系统至少支持8个电容通道的输入。同时,考虑到系统的可扩展性,使系统能够扩展到电容式多维力传感器的测量。因此,选用电容数字转换芯片AD7147,使系统具有13输入通道、16位采样精度。主控芯片选择低功耗、性能稳定的STM32F103C8T6。为了更方便地与主控芯片整合,选用支持高效SPI接口的W5500来实现以太网传输。系统采用模块化设计,由电容数字转换模块、以太网通信模块、电源模块以及上位机组成。

数据采集系统的整体框图如图2所示。传感器电容模拟信号经过AD7147读入并转换为电容数字信号输出,再通过SPI通信接口将数字信号发送到主控芯片。主控芯片首先要完成对AD芯片数字信号的读写控制,然后将采集的数据按特定的帧格式打包,再通过W5500的TCP/IP硬件协议栈方式将数据帧发送至上位机软件中。

图2 系统总体框图

2 系统硬件设计

2.1 以太网通信模块

要实现以太网通信,采集系统就需要1颗网卡芯片。W5500是1款集成TCP/IP硬件协议栈的以太网芯片,内置高达10/100M的以太网数据链路MAC层、物理层PHY以及 32 KB的收发缓存。

以太网通信模块的电路原理如图3所示。W5500采用25 MHz外部晶振Y1输入,通过PMODE0、PMODE1、PMODE2 3个引脚的不同电平逻辑组合设置物理层PHY的网络工作模式。W5500与主控芯片之间的连接工作模式为可变数据长度(VDM)模式。传输数据帧的长度由STM32的SCSN信号控制,在SCLK的上升沿锁存,在下降沿输出数据。

图3 W5500通信模块电路图

考虑到通信接口的电磁兼容性能,抑制通信接口电缆带来的共模干扰,采用带有网络变压器的隔离型RJ45以太网通信接头,同时可以起到保护电路的作用[11]。为了避免信号传输线的反射,在不影响通信质量的情况下,采用并联端接[12]的方式在信号发送端并联了阻值为51 Ω的电阻R20、R21。

2.2 电容数字转换模块

为实现多通道、高精度的数据采集,系统采用AD7147作为电容信号采集芯片。该芯片集成了片上自动环境补偿功能,电容信号通过一个开关矩阵传输到16位分辨率、250 kHz采样频率的模数转换器内。在转换器中有12个转换通道,每个转换通道可以配置多个信号输入,转换结果存储在片上寄存器。通过对片上寄存器进行编辑来实现任何一组输入以及每个外部电容信号的平均、偏移和增益等特性。芯片输入通道范围为±8 pF,支持电压范围为2.6~3.6 V。

13个输入通道电容极板的不同位置摆放与组合,可以实现对空间上单维和多维力的测量。本文使用8个通道的静极板两两构成差动组合,共4组均匀分布于扭矩传感器动极板两侧,实现扭矩的测量。其AD模数转换模块的电路原理如图4所示,AD7147提供了SPI外设通信接口,通过CS、SCLK、SDO、SDI引脚与STM32连接实现板间的高速通信,供电电压3.3 V。

图4 AD7147外围电路原理图

2.3 电源模块

电源模块是整个采集系统的供能部分,电源质量与整个系统的稳定性密切相关。电源模块采用二级压降设计,支持9~12 V外部电压供电。一级压降采用直流开关电源输出。开关电源通过调整功率半导体器件的饱和区时间或频率实现电压控制,其损耗很少,转换效率高,发热量小[13]。但是,开关电源的纹波系数较大,不利于电源系统的稳定。而线性稳压电源虽然效率较低,但是电磁干扰小,纹波系数低,输出稳定且瞬态响应好[14]。所以二级压降采用线性稳压电源弥补一级压降波纹系数大的不足,为系统提供稳定的工作电源。

电源模块的电路原理图如图5所示,一级压降通过TPMP2359芯片将外部12 V电源降到5 V,二级压降通过AMS1117芯片将5 V降到3.3 V。此外,通过肖特基二极管D1、D2以及每级压降的输入输出引脚设计旁路接地电容滤波来进一步提高电源的稳定性,降低电源噪声。

图5 电源模块原理图

3 系统软件设计

3.1 下位机程序

下位机要保证系统上电后能正确初始化相关芯片,等待上位机指令进行工作。下位机的程序设计主要包括AD7147的工作模式配置、主控芯片的I/O口初始化以及以太网通信协议设置。下位机的工作流程如图6所示。

图6 下位机工作流程图

系统上电后,首先对STM32进行I/O口、时钟和中断事件的初始化,然后再通过SPI1和SPI2接口分别去设置AD7147和W5500的工作模式。W5500的初始化包括时钟、MAC地址、子网掩码、默认网关、IP地址、端口号、收发溢出时间以及socket的初始化。初始化完成,进入定时器中断函数,等待上位机的功能码指令。STM32接收到读数据指令后,将数据按特定帧格式打包并通过W5500传输到上位机。

芯片的转换输出效率由功率模式和采样率决定。采样率是指输出单个电极的电容数字量需要采集的样本数,采样率越高,输出结果的精度也越高,但是消耗的时间就越长。为了使芯片转换速率达到最快,同时确保具有一定的精度,系统采样率设为64,功率模式为全功率模式,理论上8个电极的转换周期6 ms。采集系统将上位机作为服务端,将下位机作为客户端,上位机通过客户端设定的IP地址和端口号进行连接。

3.2 上位机软件设计

上位机除了控制下位机读写外,还要完成数据的处理和图形显示。上位机软件基于Winform.NET 4.7框架开发,其功能主要包括AD芯片寄存器读写、电容数字信号的显示与存储、传感器扭矩测量的显示与存储以及供数据输出的软件接口。图7为上位机的扭矩测量界面,左边为按钮操作和信息输入区,右边为扭矩图形化显示区。

图7 上位机测量界面

系统每帧数据传输都需要上位机向下位机发送Modbus功能码指令,下位机根据收到的指令进行读写操作。如表1所示,所用的Modbus/TCP协议的数据帧由MBAP报文头和数据单元PDU 2部分组成。其中报文头的事务标识2字节,协议标识2字节,PDU数据段长度2字节,设备编号1字节。PDU由Modbus功能码、起始地址和数据3部分组成,文中主要用到03读寄存器功能码和06写单个寄存器功能码。

表1 Modbus/TCP帧格式 Byte

上位机软件读取数据的流程如图8所示,首先配置IP地址和端口号、初始化定时器,然后发送连接请求,等待与下位机连接成功后,通过定时器触发事件函数连续发送读指令,同时等待接收数据。每次对数据进行处理、存储与显示后,等待定时器溢出进入下一次循环。

图8 上位机读取数据流程图

扭矩传感器多应用于机械手关节处,其控制系统需要及时获取关节处扭矩信息来做出调整。本系统上位机软件开发了socket和共享内存2种供数据输出的软件接口方式,可以实时输出扭矩信息,实现与其他系统的数据交互。

4 系统测试

4.1 实验方法与设备

AD7147开发系统是专门为AD7147芯片设计的电容数据采集系统,包括1块开发板和相应上位机软件,能够准确测出电容极板的数字变化量。为了验证所研制的数据采集系统的性能,使用AD7147开发系统和文中设计的以太网采集系统分别对传感器进行电容数据采集测试。实验要确保2次测试的加载条件一致,通过对比相同加载条件下2个采集系统输出的电容数字变化量来验证本文系统的可靠性和精度。另外,给传感器重新标定后,用文中设计的以太网采集系统进行扭矩加载测量,得到系统的测量误差。

搭建的实验平台如图9所示,实验设备包括1套实验加载平台、1款实验室自主研制量程为20 N·m的电容式扭矩传感器[15]、AD7147芯片开发板和上位机、本文所设计的以太网采集板和上位机以及若干经过校正的砝码。其中,图9(a)在进行AD7147开发系统测试实验,图9(b)在进行以太网采集系统测试实验,图9(c)是型号为EVAL-AD7147EBZ的开发电路板,图9(d)是文中设计的以太网采集电路板。

(a)AD7147开发系统实验

将扭矩传感器安装于实验平台上,先使用AD7147开发系统进行测试,通过加载高精度砝码对传感器施加扭矩,扭矩施加范围为0~20 N·m,从空载状态加载到20 N·m,再卸载到0 N·m,每次加载和卸载的步长为2 N·m。再使用所设计的以太网采集系统进行测试,扭矩施加范围为0~20 N·m,从空载状态加载到20 N·m,再卸载到0 N·m,每次加载和卸载的步长为2 N·m。

4.2 实验结果

存储每次加载和卸载后的电容数字量输出值,对数据进行处理后,得到测试结果如图10所示。在相同加载条件下,2个采集系统的输出拟合曲线高度重合,误差在1.19%以内,该误差为2个采集系统输出电容数字变化量的最大误差绝对值与对应AD7147开发板输出电容数字变化量的百分比。测试结果可以说明所设计的采集系统能够准确测出对应电容的数字变化量。

图10 采集系统的电容数字变化量曲线

采用三次多项式对实验数据进行拟合,得到电容数字变化量与扭矩值的映射关系。使用所设计的以太网采集系统进行扭矩加载测量实验,其测量结果如表2所示,最大测量误差为1.47%,该误差为实际加载值与测量值的最大误差绝对值和实际加载值的百分比。在实验加载过程中,除了数据采集系统的误差外,标定平台的安装误差、砝码加载方向的偏差以及传感器解耦曲线拟合误差等都会影响最终的误差测试结果。

表2 误差测量实验结果

通过上位机软件测试来验证采集系统的数据刷新频率,系统上位机从发送03读指令到获取一次完整数据的时间周期约为1 ms,输出频率为1 000 Hz。

5 结束语

本文基于Modbus/TCP协议设计了一套应用于电容式扭矩传感器的数据采集系统。系统以STM32为主控芯片,W5500为以太网控制芯片,AD7147为电容信号采集芯片,系统具有13个电容输入通道和16位的采样精度。实验测试结果表明:系统最大测量误差为1.47%,数据输出频率为1 000 Hz。上位机软件可直接读写寄存器参数,更加方便控制芯片的工作模式。系统除了应用于扭矩测量,也可以扩展到电容式多维力传感器的测量。

猜你喜欢
电容式以太网上位
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于FDC2214电容式传感器的手势识别装置
电容式油量表设计
电容式蓄电池液位计设计
特斯拉 风云之老阿姨上位
谈实时以太网EtherCAT技术在变电站自动化中的应用
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
一种90W高功率以太网供电系统的设计
以新思路促推现代农业上位