基于嵌入式以太网的轮重传感器信号采集系统设计

2016-02-02 03:10李子华
铁道机车车辆 2016年6期
关键词:传输方式以太网传输

曹 玉,李子华

(中国铁道科学研究院 标准计量研究所,北京100081)

基于嵌入式以太网的轮重传感器信号采集系统设计

曹 玉,李子华

(中国铁道科学研究院 标准计量研究所,北京100081)

针对轮重检测系统多传感器和大数据量传输的特点及现有模拟信号传输方式的不足,为实现轨道轮重检测传感器信号的实时远距离传输,设计一种基于嵌入式以太网技术的轮重检测传感器信号实时采集与传输方法。选用STM32F103VET作为控制芯片,选用ENC28J60作为以太网控制器。使用STM32F103VET芯片片内的ADC外设实现准确的双AD同步采样,同时采用DMA功能转移经ADC转换后的数据,以提高数据采集的效率。完成STM32F103VET与ENC28J60的接口设计,移植uIP协议栈实现TCP/IP协议,使用UDP协议实现采样数据在以太网上的实时传输。实验结果表明:该系统具有成本低廉、布线简单、传输距离远、抗干扰性强等特点,能够满足轮重检测系统信号实时采集与传输的要求。

轮重检测;以太网;数据采集;UDP

研究轮重检测传感器信号的采集与传输在轨道轮重检测装置中有重要的应用价值。轮重检测装置通常由多组轮重检测传感器组成,其信号采集系统的数据采集量大,信号实时性高,轮重检测传感器信号的采集系统需要将数据传输到远离轨道现场的操作室中。传统的传输方式是通过模拟信号来传输,即传感器输出信号直接通过模拟信号线,以电压或电流传输方式引入操作室的计算机数据采集卡中。使用这种方式实时性强,但长距离模拟信号的传输极易受到干扰[1,2]。并且由于每个传感器的信号线都要单独引入操作室,会造成信号线过多,从而导致安装复杂,维护困难。因此,如何有效的防止干扰并且实时高效的把轮重检测信号数据传输到操作室的计算机上一直是一个值得研究的问题。

为解决使用传统传输方法的不足,同时根据轨道轮重检测传感器信号传输数据量大,传输距离远的特点。提出一种使用STM32F103VET控制和使用其自带的ADC转换外设对传感器信号进行就近采集,并使用以太网传输方式将采集到的信号进行远距离实时传输的方法。这种方法具有抗干扰性强,结构简单、成本低廉、维护简单的特点。

1 硬件组成

研究所使用的轮重检测传感器输出两路电压信号,对每个电压信号的采样频率为10 k Hz,采样精度要求大于0.5%。假设AD转换数据的位数为12位,其最高的采样精度为0.025%,可以满足系统的要求。以12位AD转换精度,采样速率为10 k Hz计算,每个传感器信号的数据传输速率至少为240 kb/s,由6组传感器组成的检测系统的数据传输速率大于1.44 Mb/s,数据的传输速率较高。

方案选用STM32F103VET作为控制芯片,STM32F103VET是一款基于Cortex-M3内核的微控制芯片,其最高运行频率为72 MHz。本系统中的轮重传感器要求的采样频率为10 k Hz,采样精度为0.5%。STM32F103VET片内集成有3个ADC转换外设,采样位数12位,即最高的采样精度为0.025%,可以满足本系统的要求。STM32F103VET片内集成的ADC转换外设最高采样频率可达1 MHz,也远大于系统要求的最高的采样频率。同时STM32F103VET片内集成有2个SPI同步串行接口,最高通信速度为18 Mb/s,可简便的控制本系统选用的以太网控制器,同时通信速率也远大于系统要求的传输速率。

方案选用Microchip公司生产的ENC28J60作为以太网控制器,其具有结构简单、体积小、价格低廉等特点。该芯片的引脚数仅有28个,可简化相关设计,节省空间。ENC28J60与STM32F103VET的通信通过两个中断引脚和SPI接口实现,SPI接口的数据传输速率可以高达10 Mb/s。

图1 硬件系统结构图

方案的硬件系统结构如图1所示。使用STM32F103VET芯片片内集成的AD转换外设ADC1和ADC3对传感器产生的电压信号进行采集。使用STM32F103VET的DMA功能将ADC转换的数据转存到其片内的SRAM中,再通过STM32F103VET片内的SPI接口将SRAM中的AD转换数据发送到以太网控制器,以太网控制器再将数据发送到以太网上,通过以太网将数据传送到目的主机。STM32F103VET就近布置在传感器附近,这样可以减少电压信号的传输距离,可以提高信号的抗干扰性。电压信号转换为数字信号后使用以太网传输,如果使用双绞线作为以太网的传输介质,传输距离可以达到100 m,使用网络路由器后可以将数据传输到更远的距离[3]。

2 双AD同步采样

由于需要对传感器的两路电压输出进行同步采样,本方案应用STM32F103VET芯片内部自带的12位AD转换器ADC1和ADC3分别对两个电压信号进行采样。ADC1和ADC3都可以使用STM32F103VET片内定时器1的TIM1_CC3事件作为外部触发转换来源。设定TIM1_CC3事件的发生频率为10 k Hz,同时设定TIM1_ CC3为ADC1和ADC3的外部触发来源,可以实现准确的10 k Hz双AD同步采样。为提高STM32F103VET的效率,本方法使用STM32F103VET的直接存储器存取功能(DMA)对AD转换得到的数据进行存储转移,DMA功能可以在无CPU干预的情况下,将ADC1和ADC3转换的数据通过DMA通道快速地移动到指定的内存地址中,这将节省CPU的资源,以便进行其他操作[4]。

在本方法中,ADC1使用DMA1的通道1进行数据转移,ADC3使用DMA2的通道5进行数据转移。设定每个DMA转移数据满256个后,进入各自的中断服务函数。在DMA中断服务函数中将其转移来的数据转存到AD转换数据数组中,然后分别将AD转换完成标志ADC1_flag和ADC3_flag置为1,AD转换完成标志将作为程序向以太网发送AD转换得到数据的标志位。最后清除DMA中断标志位,DMA继续进行下一轮数据转存。

3 以太网通信实现

3.1 STM32F103VET和ENC28J60的接口

ENC28J60是带有SPI接口的独立以太网控制器。本方案使用STM32F103VET的SPI1外设接口引脚PA4~PA7与ENC28J60连接实现数据通信,通过引脚PA1实现中断控制,引脚PE1用于完成系统硬件上电复位。构成的以太网通信硬件系统如图2所示。

图2 以太网通信硬件系统示意图

3.2 TCP/IP协议

以太网通信的关键是实现TCP/IP网络传输协议。TCP/IP协议栈是以太网最基本的协议[5],其采用4层层级结构,每一层都使用下一层提供的服务,4个层分别为:网络接口层、网络层、传输层、应用层。UDP协议属于TCP/IP协议的传输层,UDP协议的全称是用户数据报协议。其主要作用是将网络数据以数据报的形式在以太网上传输。由于UDP在传输数据报前不用在客户机与服务器之间建立连接,且没有超时重发等机制,故而传输速度较快。UDP数据报的格式如图3所示,源端口和目标端口字段指定了两个16位长的端口号。长度字段表示整个UDP数据报的字节数,包含UDP头部和数据部分。UDP校验和字段是用来保证UDP数据报的完整性。基于UDP传输速度快等特点,本方法使用UDP协议在以太网上传输数据。

图3 UDP数据报的格式

3.3 uIP协议栈

通过移植uIP协议栈可以快速可靠的实现TCP/IP协议。uIP协议栈是一种适用于小型嵌入式系统的TCP/IP协议栈。它为网络通信提供一系列必要的协议,可以实现TCP/IP协议栈中的IP、ICMP、TCP、ARP和UDP协议。uIP协议栈具有移植的通用性,其通过接口实现与底层硬件和顶层应用程序间的通信。这种方式使得uIP具有很高的通用性和独立性,可以方便的移植到不同系统和实现不同的应用,体现TCP/IP协议平台无关性的特点。

uIP协议栈与应用程序、系统底层之间的接口关系如图4所示。uIP与系统底层的网络设备驱动和系统定时器分别有接口函数。网络设备驱动程序主要对ENC28J60的寄存器进行操作,包括读取接收缓存区的数据、发送缓存区数据、网络设备硬件配置及初始化以及读取和发送网络数据报等操作。TCP/IP协议要处理多个定时事件,所以uIP协议栈需要定义一个系统定时器,本程序使用STM32F103VET内部的系统滴答定时器(systick)作为uIP的系统定时器。在应用中,用户程序的主循环中必须插入处理uIP的事件,主要包括Uip Pro()和eth_poll()函数。Uip Pro()的功能是中断触发读取网络接收缓存。eth_poll()的主要功能是定时查询TCP及UDP连接收发状态,ARP表更新及响应。uIP协议栈定义有UDP应用回调函数,将这个函数定义为UDP发送的函数,就可以在这个函数中将发送数据写入发送缓冲区,uIP再将缓冲区的数据发送出。

图4 uIP协议栈接口

4 软件设计

程序的工作流程如图5所示。首先完成双AD同步采样设置,初始化GPIO和SPI。接着设定AD转换完成标志位ADC1_flag和ADC 3_flag为0。由于使用STM32F103VET内部的DMA功能,ADC1和ADC3转换满256个数据后进入DMA中断程序,在中断程序中将AD转换完的数据转存到AD转换数据数组中,并将AD转换完成标志位置为1。在后期的UDP发送程序中通过判断AD转换完成标志位来发送AD转换数据数组。然后初始化网络设置,主要包括设置IP地址、MAC地址、UDP连接参数。

下一步进入程序的主循环中,主循环中主要运行uIP提供的事件函数Uip Pro()和eth_poll()。Uip Pro()函数主要功能是中断触发读取网络接收缓存,如果ENC28J60的接收中断引脚为高电平则说明收到网络数据报。读取和处理数据报后,如果接收到的字符串是开始传输命令start,则将开始传输标志位start_flag置为1;如果接收到的字符串是停止传输命令stop,则将开始传输标志位start_flag置为0。接着运行eth_ poll()函数,如果AD转换完成标志位ADC1_flag和ADC3_flag的值都为1,则进入TCP及UDP连接收发状态,ARP表更新及响应,这样可以及时的发送AD转换数据。接着在uIP协议栈定义的UDP应用回调函数中判断开始传输标志位是否为1,如果为1则将AD转换数据数组发送到以太网,uIP协议栈会将数据通过以太网控制器发送到以太网上,目的主机就可以接收到包含AD转换数据的UDP数据报。

图5 信号采集与以太网传输程序流程图

5 试验测试

方案通过测量车轮经过轨道时钢轨的曲率变化,从而达到检测轮重的目的。具体的实现过程是:在钢轨同一侧面的两个位置分别安装一个激光发射器和一个光电位置探测器,激光发射器发射的光斑投射在光电位置探测器上。当车轮经过钢轨时,钢轨会产生微小的曲率弯曲,这将会导致光电位置探测器上光斑位置发生变化。传感器输出的两个电压Va、Vb与光斑位置偏离光电位置探测器中心的距离X及光电位置探测器感应区长度L有如式(1)所示的关系。因此系统需满足对两路电压进行同步采集的要求,以保证对光斑位置进行准确的计算。图6为使用曲率检测方法实现轨道动态轮重检测的结构示意图。

图6 曲率检测方法的结构示意图

通过在STM32F103VET控制芯片的程序中移植uIP协议,实现了TCP/IP中的IP协议,所以在多点测试中,只需给每个测试节点设置不同的IP地址,就可以实现多点同时测量。

图7为在计算机上运行的接收测试软件,其使用Labview软件编写。测试中对6个测试节点进行同时测量,以太网使用的传输介质为双绞线,传输距离为30 m。经测试,本系统测量得到的结果误差在0.97%以内,并与使用数据采集卡采集信号进行对比,结果表明本系统可以有效降低因长距离传输所导致的信号波动。

6 结 论

(1)系统在传感器现场将传感器信号转化为数字信号,使用以太网传输信号,比传统模拟信号传输方式具有更强的抗干扰能力。

(2)系统实现了以太网TCP/IP协议,可以快速组成网络化数据采集系统,该系统的可扩展性高于传统模拟信号传输方式。

图7 数据接收测试软件

(3)试验证明系统工作稳定、可靠,可以解决传统模拟信号传输方式布线复杂、传输距离短、易受干扰的问题,具有广阔的应用前景。

[1] 谢志江,胡应鹏,朱明星,尧 鹏.基于DSP的机械振动信号实时以太网数据传输技术[J].重庆大学学报,2006,29(2):6-8.

[2] 黄志辉,涂开武,程鑫鑫.AD693在扫掠力信号调理中的应用[J].测控技术,2013,32(1):19-22.

[3] 林雅娇.基于以太网网关的电力参数远程监测系统[D].江苏:江苏大学,2011.

[4] 喻金钱,喻 斌.STM32F系列ARMCortex-M3核微控制器开发与应用[M].北京:清华大学出版社,2011.

[5] 柴 毅,王玉堂,陈 禾.基于以太网数据采集与控制模块的设计与应用[J].计算机测量与控制,2004,12(12):1188-1191.

Design of Wheel Load Detection Sensor Signal Acquisition System Based on Embedded Ethernet

CAO Yu,LI Zihua
(Standard&Metrology Research Institute,China Academy of Railway Sciences,Beijing 100081,China)

Aiming at the disadvantages of present analog signal transmission mode used in wheel load detection system,satisfying the multiple sensors and large transmission data rate of wheel load detection system,and in order to realize the real time remote transmission of wheel load detection sensor's signal,a real-time acquisition and Ethernet transmission scheme was proposed.In this scheme,STM32F103VET was used as main control chip,and ENC28J60 was used as Ethernet physical transceiver.Double ADC synchronous sampling was realized by the peripherals ADC in STM32F103VET.The AD conversion data were transferred by DMA.The Interface between STM32F103VET and ENC28J60 was designed.TCP/IP protocol was realized by transportation of uIP,and the sample data were transported in real time by Ethernet using UDP protocol.This scheme has the advantages of lower cost,simple in wiring,far transmitting range and stronger anti-interference ability.This scheme can satisfy the signal acquisition and real-time transmission requirements of wheel load detection system.

wheel load detection;Ethernet;data acquisition;UDP

U285.5+3

A

10.3969/j.issn.1008-7842.2016.06.04

1008-7842(2016)06-0014-04

�)女,工程师(

2016-07-19)

猜你喜欢
传输方式以太网传输
混合型随机微分方程的传输不等式
牵引8K超高清传输时代 FIBBR Pure38K
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
关于无线电力传输的探究
可穿戴式多通道传感系统功能需求分析及设计
支持长距离4K HDR传输 AudioQuest Pearl、 Forest、 Cinnamon HDMI线
谈实时以太网EtherCAT技术在变电站自动化中的应用
浅谈EPON与工业以太网在贵遵高速公路中的应用
浅谈工程建设中的信息化发展与网络传输方式选择
浅谈海军某医院物流传输系统的选购