杨存祥,杨慧娟,牛云龙
(郑州轻工业学院电气信息工程学院,河南郑州 450002)
RT-Thread及Cortex-M4在智能气密性检测仪上的应用
杨存祥,杨慧娟,牛云龙
(郑州轻工业学院电气信息工程学院,河南郑州 450002)
通过对现有气密性检测仪进行分析,结合其优缺点,设计出一种基于RT-Thread及Cortex-M4处理器的智能化方案。使用BP神经网络建立各个因素之间的模型,处理检测数据,弥补了直压法在精度上的不足;使用Cortex-M4作为硬件核心,完成气路、数据采集及输出等模块的硬件设计;移植RT-Thread作为软件平台,使用多线程技术完成系统应用软件的开发。该设计方案和数据处理算法使该设计具有智能化、稳定可靠、精度高、人机接口良好、成本低等特点。
RT-Thread;Cortex-M4;实时操作系统;气密性;BP神经网络;智能检测
在日常的生产与生活中,很多领域需要对设备的密封性进行检测,这不仅仅关乎设备的性能能否满足要求,有的时候更涉及到人身安全。气密性检测是设备密封性能的重要检查手段,肥皂膜法、差压法、直压法等是目前常用的气密性检测手段。肥皂膜法是一种完全依靠人工的方法,效率低且可靠性差。压差检测法是目前比较成熟的一种气密性检测方法,但是其设计比较复杂,故障率较高[1]。所以通过对直压法的改进,利用BP神经网络进行数据处理,使直压法不但设计简单,并且能够满足对性能的要求。
现有的气密性检测仪大多是基于8位单片机或者利用Linux平台,前者已经远不能满足智能仪器的要求,而基于Linux的设备又过于复杂,开发难度大。所以文中提出了一种基于实时操作系统RT-thread和新型数字信号控制器Cortex-M4的方案。
直压法是一种通过给被测容器通入压缩气体,利用压力传感器检测被测容器在一定环境下,内部压力的变化情况,从而推算出被测容器密封状况及泄漏量的方法。理想气体状态方程式见式(1)。
pV=nRT
(1)
式中:p为压强,Pa;V为体积,m3;n为摩尔质量,mol;R为理想气体常数;T为温度,K。
在检测过程中,在T1时刻容积为V的初始态为p1;在T2时刻的终止态压强为p2,Δp为压力差。从而可以推算出泄漏的气体量Q为
(2)
待测容器内气体运动状况十分复杂,是一个动态的非线性过程。容器体积、环境温度、测试压强和测试时间等都会对最终的泄漏量测算产生影响,所以很难建立一个精确的物理模型。BP神经网络有很强的非线性映射能力,被应用在数学建模以及函数逼近等众多领域,所以本文利用BP神经网络来建立待测容器泄漏量与各个相关变量间的数学模型,该网络形成了一个从系统输入到系统输出的非线性映射。用于气密性检测的BP神经网络的系统结构,包含输入层、隐含层和输出层。输入层包含测试压力、环境温度、保压时间和容器体积这4个节点。在仪器的适用范围内,选取具有不同输入变量的训练样本对该网络进行训练[2]。神经网络的系统结构如图1所示。
图1 神经网络的系统结构
改进直压法的整个检测过程分为充气阶段、检测阶段和平衡阶段这3个阶段。首先电磁阀导通为待测容器充气,待容器内压力达到设定值时关闭电磁阀,进入检测阶段。在检测阶段记录待测容器内气压及温度随时间的变化情况,然后推算出最终测试结果。在完成上述过程后,打开排气阀为待测容器排气,一个测试周期结束。改进直压法的气路原理如图2所示。
图2 改进直压法的气路原理
依据系统的检测原理及目的,系统硬件构成主要有数字信号控制器、传感器、显示模块、存储模块、通信模块和电源模块等几部分。系统的硬件结构设计如图3所示。
图3 硬件系统框图
处理器选用STM32F373,这是一款基于Cortex-M4内核的嵌入式处理器。Cortex-M4在要求易于使用的数字信号处理及控制功能混合的数字信号控制领域适用,它拥有扩展的单周期乘法累加(MAC) 指令、优化的 SIMD 运算、单精度浮点单元(FPU)等DSP扩展,因而被称为数字信号控制器。STM32F373集成了丰富的片上外设,如16ADC、CAN、SPI、I2C等模块[3]。
气压传感器选用GB-3000A(G)型扩散硅压力变送器,其量程为0~600 kPa,输出信号范围为4~20 mA,输出信号经过信号转换电路调理后,由STM32F373自带的16位高速A/D转换器进行采样。温度传感器使用DS18B20,是一款高精度的单总线数字温度传感器,通过处理器的I/O口模拟时序来读取温度值。
系统的人机接口部分使用4.3″(1″=2.54 cm)的四线电阻式TFT触摸屏,此触摸屏的液晶屏控制器为ILI9320,采用26万色,分辨率为480×272,使用16位并行接口。触摸屏控制芯片为XPT2046,这是一款4线电阻式触摸屏控制器,内含12位分辨率125 kHz转换速率逐步逼近型A/D转换器,使用SPI接口与控制器通信。
数据存储部分使用1片W25X16来存储系统的配置信息及字库,是一款具有SPI接口的Flash芯片。SD卡接口用来方便使用SD卡来存储测试数据,此接口使用的是SD卡的SPI通信模式。
USB接口和以太网接口用来和上位机通信。STM32F373自带USB2.0接口,因为数据量不大,所以被枚举为HID设备,不但避免了上位机中USB设备驱动的开发,还获得了在不同操作系统中较好的兼容性。以太网接口芯片使用的是DM9000AE,为16接口模式,此外还使用了一个串口以方便调试。
传感器、数字系统、继电器等需要的电源各不相同,PCB设计中使用电源分割技术分别供电。为了提高信号质量,分开数字地和模拟地,可以将各个不同电平的电源通过去耦磁环接地。继电器线圈侧使用1N4148作为续流二极管来保护电路。使用GPIO来控制各个继电器、电磁阀。
3.1 RTOS平台的选择
RT-Thread是一款稳定的开源实时操作系统,采用面向对象的设计思想,内建有对象管理系统,以线程为基本调度单位,使用基于优先级的可抢占的调度算法。调度器采用位图算法,可以在恒定的时间内找到具有最高优先级的就绪线程,也就是说其时间复杂度为0(1)。RT-Thread支持互斥锁和信号量进行线程间同步,拥有邮箱、消息队列和事件等进程间通信机制。RT-Thread采用模块化设计,不仅包含1个稳定高效的实时内核,更是一套完备的嵌入式系统软件平台,包含FinSH、RTGUI、轻型的TCP/IP协议栈和文件系统等组件,是为中小型嵌入式应用专门设计的实时操作系统[4]。
3.2 线程设计
采用多线程技术可以减小系统开销,降低应用程序开发的复杂度,提高系统的可靠性和效率。RT-Thread以线程为最小的调度单位,采用基于优先级的全抢占式调度算法。针对本应用,设计了守护线程、数据处理线程和数据输出线程这3条主要线程,它们之间利用RT-Thread提供的线程间通信手段进行通信,这几条主要线程间的相互关系如图4所示。
图4 线程交互示意图
守护线程负责处理对实时性要求较高的任务,负责各个软件模块间的协调,具有最高的优先级。当A/D、触摸屏、USB和网络等硬件模块需要与处理器通信时,会通过中断发送消息来唤醒并通知守护线程。守护线程是系统启动后调度的第1个线程,在它的初始化部分,会根据存储在SPI FLASH中的系统参数,完成测试系统的初始化。接着系统守护线程开始进入事件循环,处理来自触摸屏、USB接口、A/D或者网络的输入中断,根据输入来重新配置系统参数或开启1个测试流程。守护线程还负责在A/D中断到来时采集数据,并通过邮箱将数据发送给数据处理线程,在得到数据处理线程的处理结果后,根据配置发送消息到数据输出线程。此外,这个线程还负责测试的流程控制,通过GPIO控制各个电磁阀和继电器,并在适当的时机激活其他线程[5]。
数据处理线程在接收到守护线程的邮箱通知后,会进入就绪状态,在适当的时机被内核调度。该线程负责从缓冲区内读取采集到的数据,依据设计好的BP神经网络算法对数据进行处理,并将处理好的数据放入缓冲区中,然后通过邮箱将处理后数据的缓冲区地址发送给数据输出线程,并使用消息机制通知守护线程执行结果。
数据输出线程在接收到数据处理线程的邮件以及守护线程通过消息发送过来的配置信息和命令后,负责将缓冲区中的数据显示在触摸屏上,并根据配置向USB接口和以太网接口发送数据,将数据保存到SD卡中。这些都是比较耗时且对实时性要求不高的工作,所以该线程的优先级较低,在系统较空闲的时候得到调度。在完成相应工作后,数据输出线程会发出消息通知守护线程各项工作的执行结果,然后放弃CPU使用权,守护线程得到调度,至此完成一个测试流程。
3.3 USB接口设计
USB接口负责与上位机进行通信,因为数据量不大,所以将系统枚举为自定义HID设备,因为上位机操作系统一般自带HID驱动,从而免去了上位机中设备驱动的开发,简化了设备的开发和使用。接口使用两个中断端点,输出端点的缓冲区长度定义为16 Byte,用于接收上位机命令,输入端点的缓冲区长度定义为64 Byte,用于向上位机发送数据[6]。
3.4 网络接口设计
网络接口的软件开发主要是完成了网卡驱动程序的设计,采用LwIP这一轻量级的TCP/IP协议栈为系统提供网络服务。在需要的时候,系统会使用TCP协议将测得的数据可靠地上传到上位机中。
3.5 文件系统设计
RT-Thread的文件系统采用3层结构,最底层的是各类存储设备的驱动,使用SPI接口访问SD卡,由驱动程序向上层提供相应的SD卡访问接口。接下来是具体文件系统的实现层,这里利用FATFS在SD中实现了FAT32这种常用于PC中的文件系统,方便在PC中分析采集的数据。最上层利用中间层提供的文件系统访问接口,向系统提供统一设备虚拟文件系统POSIX标准接口。
文中讨论了一种智能化的气密性测试系统,它利用经过大量样本训练过的BP神经网络对传统的直压法进行改进,提高了测试精度。先进的Cortex-M4内核的数字信号控制器提供了系统运行实时操作系统和BP神经网络算法所需要的运算可控制能力。新型的实时操作系统RT-Thread在降低系统软件开发复杂度的同时保证了系统的稳定性和实时性。该气密检测仪具有结构简单、快捷、准确、高效等特点,并且基于Cortex-M4及RT-thread的设计思想还可方便的移植到其它智能仪器的设计中。
[1] 朱正德.科学完善的泄漏计量体系的建立与实践.组合机床与自动化加工技术,2002(11):4-6.
[2] 赵勇.基于人工神经网络的温度预测在高压气密性检测中的应用研究:[学位论文].合肥:中国科学技术大学,2009.
[3] 邱祎.嵌入式实时操作系统RT-Thread的设计与实现:[学位论文].西安:电子科技大学,2007.
[4] 熊谱翔.RT-Thread实时操作系统编程指南.上海: RT-Thread工作室,2010.
[5] 刘军.例说STM32.北京:北京航空航天大学出版社,2011.
[6] 熊谱翔.RT-Thread源码及简介[EB/OL].(2012-11-14) [2013-12-10].http://www.rt-thread.org.
Application of RT-Thread and Cortex-M4 for Intelligent and Airtight Detecting Device
YANG Cun-xiang,YANG Hui-juan,NIU Yun-long
(School of Electric and Information Engineering,Zhengzhou University of Light Industry,Zhengzhou 450002,China)
Through the analysis of the existing air leakage detector,combined with its advantages and disadvantages,an intelligent solution based on RT-Thread and Cortex-M4 processor was designed,BP neural network was used to establish a model between various factors,process data and make up for the deficiency of the direct pressure method in accuracy.Cortex-M4,as the hardware core,was used to control the gas path,acquisition and output data.RT-Thread was transplanted as the software platform and the system application software development was developed using multi thread technology.Advanced design and data processing algorithms enable the design intelligent,reliable,of high accuracy,good man-machine interfaces,low cost,and so on.
RT-Thread;Cortex-M4;RTOS;air tightness;BP neural network;intelligent test
2013-12-17 收修改稿日期:2014-10-02
TP216
A
1002-1841(2015)03-0019-03
杨存祥(1966—)教授,博士,主要从事电气测量与故障诊断技术的教学与研究工作。E-mail:yangzzha@126.com 杨慧娟(1990—)硕士研究生,从事电气检测与微网方面的研究。E-mail:yanghj90@126.com