(南昌大學(xué)環(huán)境與化學(xué)工程學(xué)院,江西 南昌 330031曹長(zhǎng)剛,張衛(wèi)華,王先平
(南昌大學(xué)機(jī)電工程學(xué)院,江西 南昌 330031)劉國(guó)平
曹長(zhǎng)剛(1982-)男,南昌大學(xué)測(cè)試計(jì)量技術(shù)及儀器碩士研究生,研究方向?yàn)榍度胧较冗M(jìn)控制技術(shù)。
摘要:介紹了一種基于ARM7的μC/OS-II的智能閥門(mén)定位器控制系統(tǒng)的基本硬件組成和軟件程序設(shè)計(jì)。系統(tǒng)采用A RM7核的LPC2290作為控制系統(tǒng)的核心,基于μC/OS-II實(shí)時(shí)操作系統(tǒng)編程,用FuzzyP-PID進(jìn)行控制輸出PWM占空比,通過(guò)CAN和UART接口實(shí)現(xiàn)主控制器、上位機(jī)與定位器之間的通信,實(shí)現(xiàn)了閥門(mén)的準(zhǔn)確定位。
關(guān)鍵詞:閥門(mén)定位器;ARM7;μC/OS-II;程序設(shè)計(jì)
Abstract: The paper introduces the hardware structure and software of an intelligent valve locator based on ARM7 microcontroller and RTOS of μC/OS-II,and mainly analyses the programming design and porting of μC/OS-II on ARM7.The system adopts LPC2290 as the core of control system, programs on RTOS of μC/OS-II,outputs duty cycle by operating of fuzzyP-PID, and communicates with main-controller and PC through CAN bus and UART, therefore this system can implement accurate location of valve.
Key words: Intelligent valve locator; ARM7; μC/OS-II; Programming design
隨著工業(yè)自動(dòng)化水平和嵌入式系統(tǒng)的飛速發(fā)展,開(kāi)發(fā)具有智能化、功能全面和操作簡(jiǎn)便的智能化儀表迫在眉睫。調(diào)節(jié)閥是過(guò)程工業(yè)控制的核心,其系統(tǒng)控制性能主要體現(xiàn)在閥門(mén)定位器上。
本文提出了一種基于ARM7和μC/OS-II的智能閥門(mén)定位器設(shè)計(jì)方案,既滿足了現(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)的采集、運(yùn)算和輸出,又可以通過(guò)CAN總線和UART實(shí)現(xiàn)閥門(mén)定位器和控制中心的實(shí)時(shí)通信。
1 系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)要求軟件完成的功能有以下幾個(gè)方面:
實(shí)時(shí)數(shù)據(jù)采集處理功能。系統(tǒng)要求能夠?qū)崟r(shí)采集調(diào)節(jié)閥的設(shè)定閥位和反饋閥位數(shù)據(jù) 并進(jìn)行A/D轉(zhuǎn)換。
人機(jī)監(jiān)控功能。人機(jī)監(jiān)控實(shí)現(xiàn)參數(shù)組態(tài)、控制方式和作用方式的選擇、流量特性的選擇、分程控制以及現(xiàn)場(chǎng)數(shù)據(jù)的動(dòng)態(tài)顯示和自診斷報(bào)警。
控制策略。系統(tǒng)對(duì)設(shè)定位移和閥反饋信號(hào)的偏差進(jìn)行算法處理,輸出閥位控制信號(hào)。
上位機(jī)監(jiān)控功能。系統(tǒng)可通過(guò)串口把實(shí)時(shí)數(shù)據(jù)發(fā)送到上位機(jī)顯示。
為了實(shí)現(xiàn)程序設(shè)計(jì)清晰高效,本系統(tǒng)采用模塊化設(shè)計(jì)方法,采用了μC/OS-II操作系統(tǒng)。按照系統(tǒng)要求,將軟件劃分為4個(gè)任務(wù)模塊:A/D采集任務(wù)、鍵盤(pán)監(jiān)控任務(wù)、控制算法輸出任務(wù)和LCD顯示任務(wù)。任務(wù)優(yōu)先級(jí)分別設(shè)置為10、12、14、16。
2 硬件組成及功能
系統(tǒng)控制器以周立功公司的A R M7 系列低功耗系統(tǒng)M9080FNU20I為核心,利用CAN接口接收設(shè)定信號(hào),ADC接口采樣反饋信號(hào),雙PWM實(shí)現(xiàn)占空比輸出,I2C接口連接鍵盤(pán),顯示采用LCD總線接口,報(bào)警和上位機(jī)監(jiān)控采用GPIO口和UART0串行口發(fā)送數(shù)據(jù)。系統(tǒng)結(jié)構(gòu)如圖1。人機(jī)界面采用外部中斷獲取四鍵鍵碼值和清達(dá)光電分辨率為128x64的HG128641液晶模塊實(shí)現(xiàn)現(xiàn)場(chǎng)顯示。
圖1 系統(tǒng)總體框圖
圖2 監(jiān)控任務(wù)程序流程圖
3 系統(tǒng)軟件設(shè)計(jì)
嵌入式操作系統(tǒng)是嵌入式系統(tǒng)硬件和應(yīng)用軟件的接口,它的使用可以提高軟件開(kāi)發(fā)效率。本軟件設(shè)計(jì)采用公開(kāi)源碼的μC/OS-II多任務(wù)實(shí)時(shí)操作系統(tǒng),任務(wù)和數(shù)據(jù)通信主要采用全局變量、信號(hào)量和消息郵箱。
3.1 人機(jī)監(jiān)控程序設(shè)計(jì)
人機(jī)監(jiān)控分為鍵盤(pán)任務(wù)和顯示任務(wù)。在鍵盤(pán)任務(wù)中,首先創(chuàng)建一個(gè)按鍵信號(hào)消息郵箱:KEYD= OSMboxCreate((void*)0),再進(jìn)行一些必要的初始化工作,接著請(qǐng)求信號(hào)量。當(dāng)有鍵按下時(shí),鍵盤(pán)GPIO口將產(chǎn)生一個(gè)外部中斷,外部中斷控制器收到中斷后執(zhí)行中斷服務(wù)程序(ISR向量中斷),在中斷服務(wù)程序里,發(fā)送對(duì)應(yīng)的消息:OSMboxPost(KEYD),鍵盤(pán)任務(wù)獲得消息后執(zhí)行相應(yīng)的鍵盤(pán)監(jiān)控函數(shù)。在鍵盤(pán)監(jiān)控程序里判斷為有效鍵被按下時(shí)調(diào)用相應(yīng)的功能函數(shù)。鍵盤(pán)任務(wù)程序流程圖如圖2所示。
3.2 A/D采集任務(wù)
AD采樣操作任務(wù)主要完成對(duì)調(diào)節(jié)閥閥桿位移的信號(hào)采集和向顯示任務(wù)以及上位機(jī)發(fā)送數(shù)據(jù),采集對(duì)象為慢變物理量。
調(diào)節(jié)閥所在的工業(yè)現(xiàn)場(chǎng)存在很多脈沖干擾和其它非周期性干擾,為消除上述干擾采用平均中位值濾波。由于AD采樣頻率很高,每次采樣要實(shí)現(xiàn)一次PWM控制運(yùn)算輸出,需要合理設(shè)定整個(gè)周期,故采用定時(shí)中斷采樣,定時(shí)時(shí)間作為采樣周期,采樣周期和濾波間隔乘積作為PWM周期。
AD采樣任務(wù)程序設(shè)計(jì)如圖3所示。
圖3 采樣任務(wù)程序流程圖
3.3 控制策略輸出任務(wù)
系統(tǒng)控制策略采用FuzzyP-PID算法,當(dāng)偏差大于β時(shí),粗調(diào)采用FuzzyP控制,小于β時(shí)細(xì)調(diào)采用PID控制,程序設(shè)計(jì)如圖4所示。該算法能達(dá)到快速和精度高的效果。FuzzyP即模糊五點(diǎn)開(kāi)關(guān)控制,通過(guò)調(diào)節(jié)一個(gè)比例參數(shù)實(shí)現(xiàn)對(duì)占空比的調(diào)節(jié),特點(diǎn)是調(diào)節(jié)快速但精度低。PID算法綜合積分分離、帶死區(qū)和抗積分飽和三種功能,實(shí)現(xiàn)精確控制。程序流程如圖5所示。控制輸出PWM占空比,調(diào)節(jié)效率高,能耗低,精度好。占空比,所以工作時(shí)間。PWM周期,其中N為濾波間隔。
圖4 PID程序流程圖 圖5控制輸出任務(wù)流程圖
3.4 顯示任務(wù)
顯示任務(wù)實(shí)現(xiàn)LCD顯示,主要為現(xiàn)場(chǎng)工程人員提供當(dāng)前閥門(mén)數(shù)據(jù)和操作信息,提供友好的人機(jī)交互界面。程序設(shè)計(jì)如圖6所示。顯示任務(wù)分為7個(gè)菜單:主菜單、控制方式、作用方式、流量特性、PID參數(shù)整定、報(bào)警參數(shù)整定和報(bào)警提示菜單。主菜單動(dòng)態(tài)顯示閥門(mén)開(kāi)度、動(dòng)態(tài)偏差、PWM占空比、死區(qū)和行程;控制方式顯示手動(dòng)輸入或自動(dòng)獲取上位機(jī)設(shè)定閥位值;作用方式顯示當(dāng)前是正作用還是反作用;流量特性菜單顯示當(dāng)前選擇的流量特性;參數(shù)整定菜單顯示鍵盤(pán)輸入的數(shù)據(jù)值,實(shí)現(xiàn)現(xiàn)場(chǎng)參數(shù)組態(tài);報(bào)警菜單提示報(bào)警原因。
圖6 顯示任務(wù)程序流程圖
4 uC/OS-Ⅱ的移植
本設(shè)計(jì)移植μC/OS-II到ARM7采用ARM公司的ADS1.2編譯器,任務(wù)的缺省模式為ARM用戶模式,任務(wù)的可選模式為ARM系統(tǒng)模式。移植μC/OS-II多任務(wù)實(shí)時(shí)操作系統(tǒng)主要實(shí)現(xiàn)對(duì)三個(gè)文件的改寫(xiě):OS_CPU.H、OS_CPU.C和OS_CPU_A.S。在OS_CPU.H文件中主要涉及到與編譯器相關(guān)數(shù)據(jù)類(lèi)型的修改和μC/OS-II臨界區(qū)保護(hù)方式的選擇;在OS_CPU.C文件中主要實(shí)現(xiàn)任務(wù)堆棧的初始化函數(shù)OsTaskStkInit()和開(kāi)關(guān)中斷宏定義;μC/OS-II的移植主要需要編寫(xiě)OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()和OSTickISR()4個(gè)匯編語(yǔ)言函數(shù),可以說(shuō)這幾個(gè)匯編函數(shù)是整個(gè)移植過(guò)程的重點(diǎn),它們?cè)谧畹讓颖WC了μC/OS-II內(nèi)核任務(wù)調(diào)度的順利進(jìn)行。啟動(dòng)最高優(yōu)先級(jí)就緒任務(wù)函數(shù)OSStartHighRdy()代碼如下:
_OSStartHighRdy
MSR CPSR_c, #(NoInt|SYS32Mode);
LDR R4,=OSRunning;
MOV R5, #1;
STRB R5,[R4];
BL OSTaskSwHook;
LDR R6, =OSTCBHighRdy;
LDR R6, [R6];
B OSIntCtxSw_1;
5 總結(jié)
本文提出了一種基于ARM7和μC/OS-II實(shí)時(shí)操作系統(tǒng)的嵌入式智能閥門(mén)定位器的總體設(shè)計(jì),主要介紹了應(yīng)用程序設(shè)計(jì)和μC/OS-II操作系統(tǒng)在ARM7上的移植。該智能定位器與傳統(tǒng)的閥門(mén)定位器相比,不僅功能齊全、操作簡(jiǎn)單,而且精度高、能耗低。
參考文獻(xiàn):
[1] 周航慈,吳光文. 基于嵌入式實(shí)時(shí)操作系統(tǒng)的程序設(shè)計(jì)技術(shù)[M]. 北京:北京航空航天出版社,2003.
[2] 張素文,李勇振. 基于Fuzzy-PI雙模控制的智能液壓閥門(mén)定位器的算法研究[J]. 泰山學(xué)院學(xué)報(bào),2006.
[3] 周立功. ARM嵌入式系統(tǒng)基礎(chǔ)教程[M]. 北京: 北京航空航天出版社,2005.
[4] 費(fèi)浙平. 基于ARM的嵌入式系統(tǒng)程序開(kāi)發(fā)要點(diǎn)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003,(09): 80-83.
[5] 劉靜靜. 基于ARM和μC/OS-Ⅱ的嵌入式應(yīng)用系統(tǒng)的設(shè)計(jì)[D].中國(guó)海洋大學(xué)優(yōu)秀碩士論文, 2008.
[6] 張素文,劉延兵. 基于ARM的智能液壓閥門(mén)定位器的設(shè)計(jì)[J]. 武漢理工大學(xué)學(xué)報(bào),2007(29): 45-48.
[7] 林慧. 智能電氣閥門(mén)定位器的研究開(kāi)發(fā)[D]. 天津: 天津大學(xué)電氣與自動(dòng)化工程學(xué)院,2003.
摘自《自動(dòng)化博覽》2010年第四期