楊存祥,楊慧娟,牛云龍
(鄭州輕工業(yè)學(xué)院電氣信息工程學(xué)院,河南鄭州 450002)
?
RT-Thread及Cortex-M4在智能氣密性檢測(cè)儀上的應(yīng)用
楊存祥,楊慧娟,牛云龍
(鄭州輕工業(yè)學(xué)院電氣信息工程學(xué)院,河南鄭州 450002)
通過對(duì)現(xiàn)有氣密性檢測(cè)儀進(jìn)行分析,結(jié)合其優(yōu)缺點(diǎn),設(shè)計(jì)出一種基于RT-Thread及Cortex-M4處理器的智能化方案。使用BP神經(jīng)網(wǎng)絡(luò)建立各個(gè)因素之間的模型,處理檢測(cè)數(shù)據(jù),彌補(bǔ)了直壓法在精度上的不足;使用Cortex-M4作為硬件核心,完成氣路、數(shù)據(jù)采集及輸出等模塊的硬件設(shè)計(jì);移植RT-Thread作為軟件平臺(tái),使用多線程技術(shù)完成系統(tǒng)應(yīng)用軟件的開發(fā)。該設(shè)計(jì)方案和數(shù)據(jù)處理算法使該設(shè)計(jì)具有智能化、穩(wěn)定可靠、精度高、人機(jī)接口良好、成本低等特點(diǎn)。
RT-Thread;Cortex-M4;實(shí)時(shí)操作系統(tǒng);氣密性;BP神經(jīng)網(wǎng)絡(luò);智能檢測(cè)
在日常的生產(chǎn)與生活中,很多領(lǐng)域需要對(duì)設(shè)備的密封性進(jìn)行檢測(cè),這不僅僅關(guān)乎設(shè)備的性能能否滿足要求,有的時(shí)候更涉及到人身安全。氣密性檢測(cè)是設(shè)備密封性能的重要檢查手段,肥皂膜法、差壓法、直壓法等是目前常用的氣密性檢測(cè)手段。肥皂膜法是一種完全依靠人工的方法,效率低且可靠性差。壓差檢測(cè)法是目前比較成熟的一種氣密性檢測(cè)方法,但是其設(shè)計(jì)比較復(fù)雜,故障率較高[1]。所以通過對(duì)直壓法的改進(jìn),利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)處理,使直壓法不但設(shè)計(jì)簡(jiǎn)單,并且能夠滿足對(duì)性能的要求。
現(xiàn)有的氣密性檢測(cè)儀大多是基于8位單片機(jī)或者利用Linux平臺(tái),前者已經(jīng)遠(yuǎn)不能滿足智能儀器的要求,而基于Linux的設(shè)備又過于復(fù)雜,開發(fā)難度大。所以文中提出了一種基于實(shí)時(shí)操作系統(tǒng)RT-thread和新型數(shù)字信號(hào)控制器Cortex-M4的方案。
直壓法是一種通過給被測(cè)容器通入壓縮氣體,利用壓力傳感器檢測(cè)被測(cè)容器在一定環(huán)境下,內(nèi)部壓力的變化情況,從而推算出被測(cè)容器密封狀況及泄漏量的方法。理想氣體狀態(tài)方程式見式(1)。
pV=nRT
(1)
式中:p為壓強(qiáng),Pa;V為體積,m3;n為摩爾質(zhì)量,mol;R為理想氣體常數(shù);T為溫度,K。
在檢測(cè)過程中,在T1時(shí)刻容積為V的初始態(tài)為p1;在T2時(shí)刻的終止態(tài)壓強(qiáng)為p2,Δp為壓力差。從而可以推算出泄漏的氣體量Q為
(2)
待測(cè)容器內(nèi)氣體運(yùn)動(dòng)狀況十分復(fù)雜,是一個(gè)動(dòng)態(tài)的非線性過程。容器體積、環(huán)境溫度、測(cè)試壓強(qiáng)和測(cè)試時(shí)間等都會(huì)對(duì)最終的泄漏量測(cè)算產(chǎn)生影響,所以很難建立一個(gè)精確的物理模型。BP神經(jīng)網(wǎng)絡(luò)有很強(qiáng)的非線性映射能力,被應(yīng)用在數(shù)學(xué)建模以及函數(shù)逼近等眾多領(lǐng)域,所以本文利用BP神經(jīng)網(wǎng)絡(luò)來建立待測(cè)容器泄漏量與各個(gè)相關(guān)變量間的數(shù)學(xué)模型,該網(wǎng)絡(luò)形成了一個(gè)從系統(tǒng)輸入到系統(tǒng)輸出的非線性映射。用于氣密性檢測(cè)的BP神經(jīng)網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu),包含輸入層、隱含層和輸出層。輸入層包含測(cè)試壓力、環(huán)境溫度、保壓時(shí)間和容器體積這4個(gè)節(jié)點(diǎn)。在儀器的適用范圍內(nèi),選取具有不同輸入變量的訓(xùn)練樣本對(duì)該網(wǎng)絡(luò)進(jìn)行訓(xùn)練[2]。神經(jīng)網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 神經(jīng)網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu)
改進(jìn)直壓法的整個(gè)檢測(cè)過程分為充氣階段、檢測(cè)階段和平衡階段這3個(gè)階段。首先電磁閥導(dǎo)通為待測(cè)容器充氣,待容器內(nèi)壓力達(dá)到設(shè)定值時(shí)關(guān)閉電磁閥,進(jìn)入檢測(cè)階段。在檢測(cè)階段記錄待測(cè)容器內(nèi)氣壓及溫度隨時(shí)間的變化情況,然后推算出最終測(cè)試結(jié)果。在完成上述過程后,打開排氣閥為待測(cè)容器排氣,一個(gè)測(cè)試周期結(jié)束。改進(jìn)直壓法的氣路原理如圖2所示。
圖2 改進(jìn)直壓法的氣路原理
依據(jù)系統(tǒng)的檢測(cè)原理及目的,系統(tǒng)硬件構(gòu)成主要有數(shù)字信號(hào)控制器、傳感器、顯示模塊、存儲(chǔ)模塊、通信模塊和電源模塊等幾部分。系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì)如圖3所示。
圖3 硬件系統(tǒng)框圖
處理器選用STM32F373,這是一款基于Cortex-M4內(nèi)核的嵌入式處理器。Cortex-M4在要求易于使用的數(shù)字信號(hào)處理及控制功能混合的數(shù)字信號(hào)控制領(lǐng)域適用,它擁有擴(kuò)展的單周期乘法累加(MAC) 指令、優(yōu)化的 SIMD 運(yùn)算、單精度浮點(diǎn)單元(FPU)等DSP擴(kuò)展,因而被稱為數(shù)字信號(hào)控制器。STM32F373集成了豐富的片上外設(shè),如16ADC、CAN、SPI、I2C等模塊[3]。
氣壓傳感器選用GB-3000A(G)型擴(kuò)散硅壓力變送器,其量程為0~600 kPa,輸出信號(hào)范圍為4~20 mA,輸出信號(hào)經(jīng)過信號(hào)轉(zhuǎn)換電路調(diào)理后,由STM32F373自帶的16位高速A/D轉(zhuǎn)換器進(jìn)行采樣。溫度傳感器使用DS18B20,是一款高精度的單總線數(shù)字溫度傳感器,通過處理器的I/O口模擬時(shí)序來讀取溫度值。
系統(tǒng)的人機(jī)接口部分使用4.3″(1″=2.54 cm)的四線電阻式TFT觸摸屏,此觸摸屏的液晶屏控制器為ILI9320,采用26萬色,分辨率為480×272,使用16位并行接口。觸摸屏控制芯片為XPT2046,這是一款4線電阻式觸摸屏控制器,內(nèi)含12位分辨率125 kHz轉(zhuǎn)換速率逐步逼近型A/D轉(zhuǎn)換器,使用SPI接口與控制器通信。
數(shù)據(jù)存儲(chǔ)部分使用1片W25X16來存儲(chǔ)系統(tǒng)的配置信息及字庫(kù),是一款具有SPI接口的Flash芯片。SD卡接口用來方便使用SD卡來存儲(chǔ)測(cè)試數(shù)據(jù),此接口使用的是SD卡的SPI通信模式。
USB接口和以太網(wǎng)接口用來和上位機(jī)通信。STM32F373自帶USB2.0接口,因?yàn)閿?shù)據(jù)量不大,所以被枚舉為HID設(shè)備,不但避免了上位機(jī)中USB設(shè)備驅(qū)動(dòng)的開發(fā),還獲得了在不同操作系統(tǒng)中較好的兼容性。以太網(wǎng)接口芯片使用的是DM9000AE,為16接口模式,此外還使用了一個(gè)串口以方便調(diào)試。
傳感器、數(shù)字系統(tǒng)、繼電器等需要的電源各不相同,PCB設(shè)計(jì)中使用電源分割技術(shù)分別供電。為了提高信號(hào)質(zhì)量,分開數(shù)字地和模擬地,可以將各個(gè)不同電平的電源通過去耦磁環(huán)接地。繼電器線圈側(cè)使用1N4148作為續(xù)流二極管來保護(hù)電路。使用GPIO來控制各個(gè)繼電器、電磁閥。
3.1 RTOS平臺(tái)的選擇
RT-Thread是一款穩(wěn)定的開源實(shí)時(shí)操作系統(tǒng),采用面向?qū)ο蟮脑O(shè)計(jì)思想,內(nèi)建有對(duì)象管理系統(tǒng),以線程為基本調(diào)度單位,使用基于優(yōu)先級(jí)的可搶占的調(diào)度算法。調(diào)度器采用位圖算法,可以在恒定的時(shí)間內(nèi)找到具有最高優(yōu)先級(jí)的就緒線程,也就是說其時(shí)間復(fù)雜度為0(1)。RT-Thread支持互斥鎖和信號(hào)量進(jìn)行線程間同步,擁有郵箱、消息隊(duì)列和事件等進(jìn)程間通信機(jī)制。RT-Thread采用模塊化設(shè)計(jì),不僅包含1個(gè)穩(wěn)定高效的實(shí)時(shí)內(nèi)核,更是一套完備的嵌入式系統(tǒng)軟件平臺(tái),包含F(xiàn)inSH、RTGUI、輕型的TCP/IP協(xié)議棧和文件系統(tǒng)等組件,是為中小型嵌入式應(yīng)用專門設(shè)計(jì)的實(shí)時(shí)操作系統(tǒng)[4]。
3.2 線程設(shè)計(jì)
采用多線程技術(shù)可以減小系統(tǒng)開銷,降低應(yīng)用程序開發(fā)的復(fù)雜度,提高系統(tǒng)的可靠性和效率。RT-Thread以線程為最小的調(diào)度單位,采用基于優(yōu)先級(jí)的全搶占式調(diào)度算法。針對(duì)本應(yīng)用,設(shè)計(jì)了守護(hù)線程、數(shù)據(jù)處理線程和數(shù)據(jù)輸出線程這3條主要線程,它們之間利用RT-Thread提供的線程間通信手段進(jìn)行通信,這幾條主要線程間的相互關(guān)系如圖4所示。
圖4 線程交互示意圖
守護(hù)線程負(fù)責(zé)處理對(duì)實(shí)時(shí)性要求較高的任務(wù),負(fù)責(zé)各個(gè)軟件模塊間的協(xié)調(diào),具有最高的優(yōu)先級(jí)。當(dāng)A/D、觸摸屏、USB和網(wǎng)絡(luò)等硬件模塊需要與處理器通信時(shí),會(huì)通過中斷發(fā)送消息來喚醒并通知守護(hù)線程。守護(hù)線程是系統(tǒng)啟動(dòng)后調(diào)度的第1個(gè)線程,在它的初始化部分,會(huì)根據(jù)存儲(chǔ)在SPI FLASH中的系統(tǒng)參數(shù),完成測(cè)試系統(tǒng)的初始化。接著系統(tǒng)守護(hù)線程開始進(jìn)入事件循環(huán),處理來自觸摸屏、USB接口、A/D或者網(wǎng)絡(luò)的輸入中斷,根據(jù)輸入來重新配置系統(tǒng)參數(shù)或開啟1個(gè)測(cè)試流程。守護(hù)線程還負(fù)責(zé)在A/D中斷到來時(shí)采集數(shù)據(jù),并通過郵箱將數(shù)據(jù)發(fā)送給數(shù)據(jù)處理線程,在得到數(shù)據(jù)處理線程的處理結(jié)果后,根據(jù)配置發(fā)送消息到數(shù)據(jù)輸出線程。此外,這個(gè)線程還負(fù)責(zé)測(cè)試的流程控制,通過GPIO控制各個(gè)電磁閥和繼電器,并在適當(dāng)?shù)臅r(shí)機(jī)激活其他線程[5]。
數(shù)據(jù)處理線程在接收到守護(hù)線程的郵箱通知后,會(huì)進(jìn)入就緒狀態(tài),在適當(dāng)?shù)臅r(shí)機(jī)被內(nèi)核調(diào)度。該線程負(fù)責(zé)從緩沖區(qū)內(nèi)讀取采集到的數(shù)據(jù),依據(jù)設(shè)計(jì)好的BP神經(jīng)網(wǎng)絡(luò)算法對(duì)數(shù)據(jù)進(jìn)行處理,并將處理好的數(shù)據(jù)放入緩沖區(qū)中,然后通過郵箱將處理后數(shù)據(jù)的緩沖區(qū)地址發(fā)送給數(shù)據(jù)輸出線程,并使用消息機(jī)制通知守護(hù)線程執(zhí)行結(jié)果。
數(shù)據(jù)輸出線程在接收到數(shù)據(jù)處理線程的郵件以及守護(hù)線程通過消息發(fā)送過來的配置信息和命令后,負(fù)責(zé)將緩沖區(qū)中的數(shù)據(jù)顯示在觸摸屏上,并根據(jù)配置向USB接口和以太網(wǎng)接口發(fā)送數(shù)據(jù),將數(shù)據(jù)保存到SD卡中。這些都是比較耗時(shí)且對(duì)實(shí)時(shí)性要求不高的工作,所以該線程的優(yōu)先級(jí)較低,在系統(tǒng)較空閑的時(shí)候得到調(diào)度。在完成相應(yīng)工作后,數(shù)據(jù)輸出線程會(huì)發(fā)出消息通知守護(hù)線程各項(xiàng)工作的執(zhí)行結(jié)果,然后放棄CPU使用權(quán),守護(hù)線程得到調(diào)度,至此完成一個(gè)測(cè)試流程。
3.3 USB接口設(shè)計(jì)
USB接口負(fù)責(zé)與上位機(jī)進(jìn)行通信,因?yàn)閿?shù)據(jù)量不大,所以將系統(tǒng)枚舉為自定義HID設(shè)備,因?yàn)樯衔粰C(jī)操作系統(tǒng)一般自帶HID驅(qū)動(dòng),從而免去了上位機(jī)中設(shè)備驅(qū)動(dòng)的開發(fā),簡(jiǎn)化了設(shè)備的開發(fā)和使用。接口使用兩個(gè)中斷端點(diǎn),輸出端點(diǎn)的緩沖區(qū)長(zhǎng)度定義為16 Byte,用于接收上位機(jī)命令,輸入端點(diǎn)的緩沖區(qū)長(zhǎng)度定義為64 Byte,用于向上位機(jī)發(fā)送數(shù)據(jù)[6]。
3.4 網(wǎng)絡(luò)接口設(shè)計(jì)
網(wǎng)絡(luò)接口的軟件開發(fā)主要是完成了網(wǎng)卡驅(qū)動(dòng)程序的設(shè)計(jì),采用LwIP這一輕量級(jí)的TCP/IP協(xié)議棧為系統(tǒng)提供網(wǎng)絡(luò)服務(wù)。在需要的時(shí)候,系統(tǒng)會(huì)使用TCP協(xié)議將測(cè)得的數(shù)據(jù)可靠地上傳到上位機(jī)中。
3.5 文件系統(tǒng)設(shè)計(jì)
RT-Thread的文件系統(tǒng)采用3層結(jié)構(gòu),最底層的是各類存儲(chǔ)設(shè)備的驅(qū)動(dòng),使用SPI接口訪問SD卡,由驅(qū)動(dòng)程序向上層提供相應(yīng)的SD卡訪問接口。接下來是具體文件系統(tǒng)的實(shí)現(xiàn)層,這里利用FATFS在SD中實(shí)現(xiàn)了FAT32這種常用于PC中的文件系統(tǒng),方便在PC中分析采集的數(shù)據(jù)。最上層利用中間層提供的文件系統(tǒng)訪問接口,向系統(tǒng)提供統(tǒng)一設(shè)備虛擬文件系統(tǒng)POSIX標(biāo)準(zhǔn)接口。
文中討論了一種智能化的氣密性測(cè)試系統(tǒng),它利用經(jīng)過大量樣本訓(xùn)練過的BP神經(jīng)網(wǎng)絡(luò)對(duì)傳統(tǒng)的直壓法進(jìn)行改進(jìn),提高了測(cè)試精度。先進(jìn)的Cortex-M4內(nèi)核的數(shù)字信號(hào)控制器提供了系統(tǒng)運(yùn)行實(shí)時(shí)操作系統(tǒng)和BP神經(jīng)網(wǎng)絡(luò)算法所需要的運(yùn)算可控制能力。新型的實(shí)時(shí)操作系統(tǒng)RT-Thread在降低系統(tǒng)軟件開發(fā)復(fù)雜度的同時(shí)保證了系統(tǒng)的穩(wěn)定性和實(shí)時(shí)性。該氣密檢測(cè)儀具有結(jié)構(gòu)簡(jiǎn)單、快捷、準(zhǔn)確、高效等特點(diǎn),并且基于Cortex-M4及RT-thread的設(shè)計(jì)思想還可方便的移植到其它智能儀器的設(shè)計(jì)中。
[1] 朱正德.科學(xué)完善的泄漏計(jì)量體系的建立與實(shí)踐.組合機(jī)床與自動(dòng)化加工技術(shù),2002(11):4-6.
[2] 趙勇.基于人工神經(jīng)網(wǎng)絡(luò)的溫度預(yù)測(cè)在高壓氣密性檢測(cè)中的應(yīng)用研究:[學(xué)位論文].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2009.
[3] 邱祎.嵌入式實(shí)時(shí)操作系統(tǒng)RT-Thread的設(shè)計(jì)與實(shí)現(xiàn):[學(xué)位論文].西安:電子科技大學(xué),2007.
[4] 熊譜翔.RT-Thread實(shí)時(shí)操作系統(tǒng)編程指南.上海: RT-Thread工作室,2010.
[5] 劉軍.例說STM32.北京:北京航空航天大學(xué)出版社,2011.
[6] 熊譜翔.RT-Thread源碼及簡(jiǎn)介[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—)教授,博士,主要從事電氣測(cè)量與故障診斷技術(shù)的教學(xué)與研究工作。E-mail:yangzzha@126.com 楊慧娟(1990—)碩士研究生,從事電氣檢測(cè)與微網(wǎng)方面的研究。E-mail:yanghj90@126.com