2. Research Institute of Highway, Ministry of Transport, Beijing 100088, China
液压式压力机是测试混凝土试块抗压强度的重要设备。近年来,嵌入式压力机能够解决手动压力机精度差和PC压力机适应性差的问题,得到了广泛重视[1]。但目前研制的嵌入式压力机大都基于单芯片[2],缺乏数据的远程传输功能。工程场地测试抗压强度时,数据往往由人工手动抄录,数据的真实性缺乏保障,且公路工程试验检测人员无法对现场试验进行实时监管。因此,本文设计了基于双ARM架构压力试验机的远程监测系统,可以在实现压力自动控制的同时,实现数据的智能实时上传,方便测试人员查看。此外,为满足数据实时上传需求,需制定可靠的通信技术。蔡树向等[3]研究了基于GPRS的路用试验的通信技术,制定了保障系统可靠通信的通信协议,但是该协议不能满足施工现场随机性的特点,存储的数据仅限于固定长度的试验数据,且本地备份方面不能建立与服务器数据库相匹配的存储容量。本文在此基础上,设计了更为可靠地通信协议,满足试验现场对不定长数据的存储要求。在本地备份方面,采用更大容量的外部存储芯片,存储更多试验数据。由此设计出的压力机系统能够实现实时控制、显示和远程数据传输与本地备份功能,适应施工现场的环境,具有实时性好、数据传输机制完善等优点。
1 系统的总体设计系统总体结构设计如图 1所示。系统由压力机控制终端、服务器和客户端用户组成。控制终端可以对压力机实行手动控制和自动控制,对压力数据进行采集。控制终端可以读取含有试块信息的射频卡。一次试验完成后,控制终端可以将采集到的压力数据进行本地存储、打印和显示。同时,终端会通过GPRS模块将数据经GPRS网络和互联网传送至远程服务器。服务器接收到数据后会在界面上显示并将数据存储至数据库。客户端可以通过远程登录的方式访问服务器,以获得传送至数据库的试验数据,实时监控试验现场。
![]() |
| 图 1 系统总体结构 |
压力试验机的远程监测系统采用基于cortex-M3内核的STM32F103VE单片机和STM32F103ZE单片机[4]为核心,系统的总体硬件结构如图 2所示。STM32F103VE是控制芯片,外接压力传感器、液晶屏和键盘,通过输出PWM信号控制电液比例阀,并在液晶屏上实时显示压力数据;通过I/O口连接键盘,响应按键相关控制功能的选择、数字量的输入等;通过串口将试验数据传送给通信芯片。STM32F103ZE是通信芯片,用于数据的处理与传输,外扩NorFlash、打印机、读卡器和GPRS模块。通信芯片通过串口接收控制芯片的数据并存储在本地NorFlash芯片。读卡器可以获取试块信息,并对试验日期、压力最大值和试块信息进行实时打印和显示。GPRS模块可将试验数据上传至远程服务器并存入数据库。
![]() |
| 图 2 硬件结构 |
压力机采用电液比例系统[5],包括电液比例阀、回油阀、送油阀和定量泵等器件。人工操作送油阀和回油阀可以实现手动控制。自动控制时,送油阀和回油阀处于关闭状态,方向阀和电液比例阀处于工作状态。控制芯片输出PWM波控制方向阀和电液比例阀,从而控制加压过程。方向阀用于控制加油和回油的方向;比例阀的输入可调电压为0~24 V,控制所施加压力的大小。
2.2 压力传感器及其外围电路系统采用的压力传感器量程为50 MPa,供电电压为5~12 V,输出为4~20 mV的差分模拟信号。压力传感器输出的电压信号经仪用放大器进行放大后,方可满足控制芯片ADC的输入要求(0~3.3 V)。由于工程现场会引入高频噪声,所以压力信号经放大后,需采用压控电压源二阶低通滤波电路消除高频噪声。噪声的最大幅值为62.5 kHz,滤波电路通带截止频率为1.59 kHz。压力信号处理电路如图 3所示,其中,AD8221构成仪用放大器,LM224构成滤波电路。
![]() |
| 图 3 压力信号处理电路 |
为了满足数据本地备份功能,采用容量大、读写速度快的S29GL128P10TFI01作为系统的外部NorFlash[6]。S29GL128P存储容量为8 MB,可以存储近4万次试验数据。压力机系统采用NorFlash存储试验数据和试验次数。定义试验数据地址和试验次数地址位于bank1、norsram1区,起始地址分别为0x60000000和0x607db430。通信芯片采用GPRS/GSM-300双模无线通讯模块,可以通过网络向服务器传输数据[7]。该模块内封装了基于TCP/IP协议的客户端程序,通过RS485接口实现与通信芯片的通信。
3 软件设计远程监测系统的软件设计的关键在于控制算法、数据传输协议和本地数据备份的实现。这些将直接影响到控制算法的实时性、数据的准确性和完整性。
3.1 控制系统设计压力机的压力采集、数据的屏幕显示和键盘扫描模块在控制芯片主程序内完成,双芯片通信和PID控制算法的启动在中断内完成。控制芯片的主程序流程图如图 4所示。
![]() |
| 图 4 控制芯片主程序流程 |
控制芯片的系统初始化操作包括设定通用同步/异步收发器USART的通信参数、模数转换器ADC的工作方式以及通用I/O口的设置参数等。设置完成后,进行液晶屏的初始化并显示主界面。键盘按键对恒压力控制的目标值进行设定后,液晶屏进入相应的曲线显示界面。按确定键之后,压力机进行自动加压试验。达到压力设定值后,液晶屏返回主界面,可以重新输入压力设定值。
恒压力控制模块采用增量式的PID算法,每次输出控制增量,即液压阀阀位的变化,可以减少机器发生故障时的影响范围,减小手动-自动切换时的冲击[8]。恒压力控制模块包括液压比例阀门的驱动、PID控制和压力信号采集3部分,其流程图如图 5所示。
![]() |
| 图 5 恒压力控制子程序流程 |
压力机通过控制液压比例阀进行加压试验,调节电压即可调节压力大小。使用通用定时器输出两路PWM信号,其中一路PWM信号用于调节方向阀的输入电信号,占空比固定,输出电压有效值为20 V;另一路PWM信号为输入给比例阀的电信号,占空比不固定,输出电压有效值在0~24 V。
试验过程一般分为启动阶段、加压阶段和压力维持阶段。整个试验过程数据量较大,全部保存数据会占用较多空间。因此,在保存试验数据完整性的前提下,尽量减少保存的数据量以提高经济性和保障数据通信的可靠性。启动阶段需选取合适的供电电压克服阀门的死区,使阀门顺利加油。阀门有较大的死区,故程序设定压力大于50 kN时,开始保存数据。加压阶段由定时器确定每隔1 s保存一次数据;压力维持阶段每隔3 s保存一次数据。恒压力控制时,程序需要判断试验是否进入压力维持阶段。将实际压力与设定压力值进行比较,若连续3次采集二者差的绝对值小于10 kN,表明程序进入压力维持阶段。
压力数据采集,既需要满足香农采样定理,又需要记录一次有效数据时采集到的数据在一周期以上。设定一次ADC转换时间为21 μs,采样频率为47.62 kHz。每采到512个压力值,取其均值并计数。采集到512个压力值所需时间为11 ms,满足对压力数据采集的要求。计数达到36后,对均值进行排序,经限幅滤波后得到一次压力值,并与最大值进行比较实时更新最大值。当采样结束后,控制芯片根据双芯片通信协议,将试验所得数据通过串口发送至通信芯片,完成数据的传输。
3.2 数据传输关键点设计由于压力机采集的数据需经控制芯片传输至通信芯片,再由通信芯片传送至远程服务器,所以数据传输的设计显得尤为重要。为保证数据的准确性和完整性,需制定一系列的校验措施和通信协议。
3.2.1 通信协议和校验措施的制定为保证数据的可靠通信,需制定合理的通信协议和校验措施,包括双芯片通信协议、通信芯片与服务器端通信协议和校验机制。
1)双芯片的通信协议定义如表 1所示。由于数据通信中起始位出错几率较高,设定起始符为3个连续的字节。控制方式有2种,分别是手动控制和恒压力控制。为方便查询记录,记录试验日期。设定值是自动控制时压力的设定值,最大值是压力的最大值。由于每次试验设定的压力不同,试验时间长短也不尽相同,因此试验达到稳态时采集的数据长度不定,需要对数据是否结束进行判断。3个连续的相同字节用于标识试验数据已结束,可保存数据。
2)GPRS模块与服务器通信采用帧格式,GPRS模块向服务器发送心跳帧、数据帧和命令帧。心跳帧是GPRS连接后每隔一段时间对服务器发送的数据,标志GPRS一直在线,这里设置为15 bytes,内含GPRS模块所插电话卡的号码,例如,本系统中这15 bytes依次是:(ID18759162078),其中,前括弧和后括弧分别占1 byte。数据帧即正确的试验数据,如表 2所示,设定最大长度为219 bytes。由于GPRS模块向服务器传输数据过程中,数据起始极易出错,所以设定6 bytes的无效数据。试验数据是经过通信芯片处理后的包含控制方式、日期时间、设定值、最大值、压力值和校验值在内的信息。命令帧如表 3所示,设置为19 bytes。其中,命令位分别用特定的字节表示GPRS已连接、校验错误、要数和设定日期时间这4种命令。GPRS模块向服务器发送心跳帧、数据帧和命令帧,服务器端向GPRS模块只发送命令帧。为区分试验数据与起始位、命令位和停止位,防止出现相同数据,设定试验数据和校验位为ASCII码的形式。服务器接收时根据数据的长度区分这3种数据类型。
3)校验机制。试验信息的校验采用CRC校验,发送的数据帧、命令帧中均含有根据发送数据计算出的校验数据。每当通信芯片或服务器接收到数据时,均会根据校验数据判断接收的信息是否正确。除了CRC校验,通信芯片还设定了校验错误标志位,包括服务器校验错误标志位和通信芯片校验错误标志位。如果服务器校验错误,会向通信芯片发送校验错误命令帧,请求重发数据。通信芯片收到该命令帧后会将服务器校验错误标志位置1。通信芯片校验错误分为两种情况:一是接受到服务器发送的命令帧后,经CRC校验错误。二是通过两个定时器判断数据是否超时,若数据超时,认为通信芯片校验错误,即GPRS无法与服务器连接导致数据无法发送。在通信芯片程序中将该数据加入待发送队列,等待下次连接时发送。只有在服务器、通信芯片校验均无错误且有待发送数据,才会将试验数据发送出去。
3.2.2 通信软件设计通信芯片中读卡器、控制芯片串口通信、GPRS模块接收发送数据以及判断数据接收超时使用的定时器均采取中断的方式,可以随时接收和发送数据。中断优先级从高到低依次为双芯片通信、GPRS通信、读卡器、GPRS连接确认定时器中断、GPRS数据接收超时定时器中断。该中断优先级设定方式保障了通信芯片数据的可靠传输。
针对试验数据的不定长问题,设定试验数据的最大长度,同时在双芯片通信中断程序中计算本次试验压力数据的长度。如此可以将不定长的试验数据换成可以计量的定长数据。将该数据长度加入GPRS模块传送的数据包中,服务器收到后,根据该长度区分、提取试验数据。
为保证传输的稳定性,在通信芯片主函数开始部分需要先判断GPRS模块是否与远程服务器连接,即GPRS数据是否有效。待到数据有效后,方可进行下一步操作,这样可以有效防止在山区试验信号不稳定时产生的数据误发送问题。设置数据处理子函数,用于判断数据漏发与校验错误,其流程图如图 6所示。程序中采用校验机制,对不同的校验错误做出标记,等待主函数的处理。
![]() |
| 图 6 数据处理子函数流程 |
服务器通过网络与封装有TCP/IP协议的GPRS模块通信。服务器确定GPRS通信已连接后,向通信芯片发送确认连接命令帧。每当接收到通信芯片由GPRS发送的数据后,服务器会给出应答,若通信芯片在定时器规定时间内得不到应答且超过3次,认为GPRS数据超时掉线,重新建立连接。当服务器程序收到GPRS发送的数据并校验正确后,根据数据长度和位置提取试验数据中的日期和设备号,在界面上显示并将数据存入数据库。为了防止遗漏数据,服务器会对数据库中数据表进行搜索,根据试验次数查找遗漏的数据,将缺失的试验次数编号加入要数队列。若数据缺失,从要数队列中取第一个数据,根据命令帧格式组成要数命令帧,发送给通信芯片。若数据没有缺失,则发送确认连接命令帧。
3.3 本地备份设计NorFlash模块作为通信芯片的本地备份,可以方便以后数据的查询以及漏传后的及时上传。由于NorFlash的擦除次数有限,通常采用按页擦除方式[9]。采用写平衡处理,在数据的读写过程中引入控制机制来实现NorFlash各页的均衡擦除,从而提高其使用寿命[10]。写扇区分为2种情况,一种是扇区还未使用,可以直接写;另一种是已经写过的数据。将存储区分为3部分,一是位于存储区的开始,二是位于存储区的最后一页,三是存储区的中间位置。在子程序的开始,对写入数据的地址进行判断。若存储区非空,则对存储区进行擦除操作。本地备份的数据由通信芯片按照表 2格式整理后进行存储。
4 压力机试验机测试对所研制的双ARM构架压力试验机的远程监测系统进行实验测试。图 7为某次试验后,液晶屏上实时显示的压力数据。
![]() |
| 图 7 压力机控制效果 |
该次试验是第59次试验,试验编号为59。设定压力值为498 kN,根据采集的数据计算得出超调量为9.68%,调节时间为23.5 s,稳态值为495.4 kN。超调量在合理范围内,稳态值与设定值接近,控制效果较好。
在服务器端,远程服务器运行界面如图 8所示,每收到下位机发来的数据时,接收成功后,均会在上位机上显示一条试验时间和电话卡号码的信息。在数据库中,可以查到试验次数为59的数据记录。同时,利用J-link调试器连接通信芯片,根据试验次数59,可以在Norflash中查询到本次试验的相关数据,包括试验时间、压力设定值、压力采集值和最大值等。在试验过程中,为模拟GPRS信号中断的情况,将GPRS模块关断。发现在这期间试验次数仍在累加,NorFlash模块中可以查询到相应的试验数据和试验次数,也即第67次试验。在GPRS再次连接后,程序将自动发送未发送成功的数据到服务器端,如图 9中编号为67的数据即为漏发后补发的数据,Norflash存储的试验次数与服务器查询到补发的试验次数对应一致,验证了本系统的可靠性。
![]() |
| 图 8 远程服务器程序运行界面 |
![]() |
| 图 9 压力机试验数据库 |
针对嵌入式压力机缺乏数据的远程传输功能、不能实时上传数据供监管人员监控的问题,开发了一套能够自动实时上传试验数据的压力试验机的远程监测系统。该系统采用双芯片结构,使用STM32F103VE作为控制芯片,STM32F103ZE作为通信芯片,克服了单芯片时存储容量不够的问题,性能得到了极大的提升。本地端数据备份采用NorFlash的写平衡处理技术,可以延长NorFlash芯片的使用寿命,保障数据的可靠性。设定了双芯片通信协议和校验机制,保障了通信的可靠性。压力数据可以经GPRS传至网络服务器,存入建好的数据库,方便用户远程数据访问,为工作人员分析数据、利用数据提供了极大的方便。经验证,压力机的试验数据得到了可靠的存储与传输,控制性能较好。
| [1] | 陈安余.水泥压力试验机的选择和使用[J].建材技术与应用,2005(1):7-9. |
| [2] | 闫亚峰,姚明海,朱肖肖.嵌入式智能压力试验机测控系统设计[J].机电工程,2007,24(9):74-76,80. |
| [3] | 蔡树向,袁海文,张月魁,等.基于GPRS的路用试验仪器远程监测系统的可靠通信技术研究[J].测控技术,2014,33(1):38-42. |
| [4] | STMicroelectronics limited.STM32FF103xC/STM32FF 103xD/STM32FF103xE datasheet(Rev9)[EB/OL].[2015-03-22].http://www.st.com. |
| [5] | 钟旭佳,高晓丁,严楠.电液比例压力控制系统的PID参数优化[J].西安工业大学学报,2015,35(2):106-111,118. |
| [6] | Spansion Inc.S29GL-N MirrorBit Flash Family datasheet(Rev A)[EB/OL].[2013-11-08].http://datasheet.eeworld.com.cn/pdf/SPANSION/204967_S29GL-N.pdf |
| [7] | 郑优讯,李宗伯.基于STM32微处理器的GPRS数据传输技术的研究[J].微型机与应用,2012,31(21):60-61,64. |
| [8] | 张晓,王晓宇,郭涛,等.增量式PID规律在电机软启动控制中的应用[J].机电一体化,2008,14(12):57-59. |
| [9] | 张东磊.NORFLASH存储芯片测试程序的设计[J].电子世界,2014(6):115,279. |
| [10] | 王标,周新平,罗志平.嵌入式系统中Nand Flash写平衡的研究[J].微计算机信息,2008,24(5):8-9,26. |












