(南昌大學環境與化學工程學院,江西 南昌 330031曹長剛,張衛華,王先平
(南昌大學機電工程學院,江西 南昌 330031)劉國平
曹長剛(1982-)男,南昌大學測試計量技術及儀器碩士研究生,研究方向為嵌入式先進控制技術。
摘要:介紹了一種基于ARM7的μC/OS-II的智能閥門定位器控制系統的基本硬件組成和軟件程序設計。系統采用A RM7核的LPC2290作為控制系統的核心,基于μC/OS-II實時操作系統編程,用FuzzyP-PID進行控制輸出PWM占空比,通過CAN和UART接口實現主控制器、上位機與定位器之間的通信,實現了閥門的準確定位。
關鍵詞:閥門定位器;ARM7;μC/OS-II;程序設計
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
隨著工業自動化水平和嵌入式系統的飛速發展,開發具有智能化、功能全面和操作簡便的智能化儀表迫在眉睫。調節閥是過程工業控制的核心,其系統控制性能主要體現在閥門定位器上。
本文提出了一種基于ARM7和μC/OS-II的智能閥門定位器設計方案,既滿足了現場實時數據的采集、運算和輸出,又可以通過CAN總線和UART實現閥門定位器和控制中心的實時通信。
1 系統總體設計
本系統要求軟件完成的功能有以下幾個方面:
實時數據采集處理功能。系統要求能夠實時采集調節閥的設定閥位和反饋閥位數據 并進行A/D轉換。
人機監控功能。人機監控實現參數組態、控制方式和作用方式的選擇、流量特性的選擇、分程控制以及現場數據的動態顯示和自診斷報警。
控制策略。系統對設定位移和閥反饋信號的偏差進行算法處理,輸出閥位控制信號。
上位機監控功能。系統可通過串口把實時數據發送到上位機顯示。
為了實現程序設計清晰高效,本系統采用模塊化設計方法,采用了μC/OS-II操作系統。按照系統要求,將軟件劃分為4個任務模塊:A/D采集任務、鍵盤監控任務、控制算法輸出任務和LCD顯示任務。任務優先級分別設置為10、12、14、16。
2 硬件組成及功能
系統控制器以周立功公司的A R M7 系列低功耗系統M9080FNU20I為核心,利用CAN接口接收設定信號,ADC接口采樣反饋信號,雙PWM實現占空比輸出,I2C接口連接鍵盤,顯示采用LCD總線接口,報警和上位機監控采用GPIO口和UART0串行口發送數據。系統結構如圖1。人機界面采用外部中斷獲取四鍵鍵碼值和清達光電分辨率為128x64的HG128641液晶模塊實現現場顯示。
圖1 系統總體框圖
圖2 監控任務程序流程圖
3 系統軟件設計
嵌入式操作系統是嵌入式系統硬件和應用軟件的接口,它的使用可以提高軟件開發效率。本軟件設計采用公開源碼的μC/OS-II多任務實時操作系統,任務和數據通信主要采用全局變量、信號量和消息郵箱。
3.1 人機監控程序設計
人機監控分為鍵盤任務和顯示任務。在鍵盤任務中,首先創建一個按鍵信號消息郵箱:KEYD= OSMboxCreate((void*)0),再進行一些必要的初始化工作,接著請求信號量。當有鍵按下時,鍵盤GPIO口將產生一個外部中斷,外部中斷控制器收到中斷后執行中斷服務程序(ISR向量中斷),在中斷服務程序里,發送對應的消息:OSMboxPost(KEYD),鍵盤任務獲得消息后執行相應的鍵盤監控函數。在鍵盤監控程序里判斷為有效鍵被按下時調用相應的功能函數。鍵盤任務程序流程圖如圖2所示。
3.2 A/D采集任務
AD采樣操作任務主要完成對調節閥閥桿位移的信號采集和向顯示任務以及上位機發送數據,采集對象為慢變物理量。
調節閥所在的工業現場存在很多脈沖干擾和其它非周期性干擾,為消除上述干擾采用平均中位值濾波。由于AD采樣頻率很高,每次采樣要實現一次PWM控制運算輸出,需要合理設定整個周期,故采用定時中斷采樣,定時時間作為采樣周期,采樣周期和濾波間隔乘積作為PWM周期。
AD采樣任務程序設計如圖3所示。
圖3 采樣任務程序流程圖
3.3 控制策略輸出任務
系統控制策略采用FuzzyP-PID算法,當偏差大于β時,粗調采用FuzzyP控制,小于β時細調采用PID控制,程序設計如圖4所示。該算法能達到快速和精度高的效果。FuzzyP即模糊五點開關控制,通過調節一個比例參數實現對占空比的調節,特點是調節快速但精度低。PID算法綜合積分分離、帶死區和抗積分飽和三種功能,實現精確控制。程序流程如圖5所示??刂戚敵鯬WM占空比,調節效率高,能耗低,精度好。占空比,所以工作時間。PWM周期,其中N為濾波間隔。
圖4 PID程序流程圖 圖5控制輸出任務流程圖
3.4 顯示任務
顯示任務實現LCD顯示,主要為現場工程人員提供當前閥門數據和操作信息,提供友好的人機交互界面。程序設計如圖6所示。顯示任務分為7個菜單:主菜單、控制方式、作用方式、流量特性、PID參數整定、報警參數整定和報警提示菜單。主菜單動態顯示閥門開度、動態偏差、PWM占空比、死區和行程;控制方式顯示手動輸入或自動獲取上位機設定閥位值;作用方式顯示當前是正作用還是反作用;流量特性菜單顯示當前選擇的流量特性;參數整定菜單顯示鍵盤輸入的數據值,實現現場參數組態;報警菜單提示報警原因。
圖6 顯示任務程序流程圖
4 uC/OS-Ⅱ的移植
本設計移植μC/OS-II到ARM7采用ARM公司的ADS1.2編譯器,任務的缺省模式為ARM用戶模式,任務的可選模式為ARM系統模式。移植μC/OS-II多任務實時操作系統主要實現對三個文件的改寫:OS_CPU.H、OS_CPU.C和OS_CPU_A.S。在OS_CPU.H文件中主要涉及到與編譯器相關數據類型的修改和μC/OS-II臨界區保護方式的選擇;在OS_CPU.C文件中主要實現任務堆棧的初始化函數OsTaskStkInit()和開關中斷宏定義;μC/OS-II的移植主要需要編寫OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()和OSTickISR()4個匯編語言函數,可以說這幾個匯編函數是整個移植過程的重點,它們在最底層保證了μC/OS-II內核任務調度的順利進行。啟動最高優先級就緒任務函數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 總結
本文提出了一種基于ARM7和μC/OS-II實時操作系統的嵌入式智能閥門定位器的總體設計,主要介紹了應用程序設計和μC/OS-II操作系統在ARM7上的移植。該智能定位器與傳統的閥門定位器相比,不僅功能齊全、操作簡單,而且精度高、能耗低。
參考文獻:
[1] 周航慈,吳光文. 基于嵌入式實時操作系統的程序設計技術[M]. 北京:北京航空航天出版社,2003.
[2] 張素文,李勇振. 基于Fuzzy-PI雙模控制的智能液壓閥門定位器的算法研究[J]. 泰山學院學報,2006.
[3] 周立功. ARM嵌入式系統基礎教程[M]. 北京: 北京航空航天出版社,2005.
[4] 費浙平. 基于ARM的嵌入式系統程序開發要點[J]. 單片機與嵌入式系統應用,2003,(09): 80-83.
[5] 劉靜靜. 基于ARM和μC/OS-Ⅱ的嵌入式應用系統的設計[D].中國海洋大學優秀碩士論文, 2008.
[6] 張素文,劉延兵. 基于ARM的智能液壓閥門定位器的設計[J]. 武漢理工大學學報,2007(29): 45-48.
[7] 林慧. 智能電氣閥門定位器的研究開發[D]. 天津: 天津大學電氣與自動化工程學院,2003.
摘自《自動化博覽》2010年第四期