μC/OS-II與ARM在中央空調機組控制器中的應用
3.2 移植μC/OS-II
LPC2210的ARM7TDMI-S內核用ARM ADS1.2作為編譯器移植μC/OS-II。μC/OS-II的移植涉及到與處理器及編譯器相關的OS_CPU.H、OS_CPU_C.C和OS_CPU_A.S 3個文件。其包括以下內容:(1)設置OS_CPU.H頭文件中與處理器和編譯器相關的代碼,如整數、浮點數、堆棧等數據類型定義,打開或者關閉中斷函數設置,定義堆棧增長方向,任務切換的執行代碼。(2)用C語言在OS_CPU_C.C文件中編寫若干與操作系統相關函數,如任務堆棧初始化函數OSTaskStkInit();μC/OS-II在執行某些操作時調用的用戶函數,如OSTaskCreateHook()、OS-TaskDelHook()、OSTaskSwHook()、OSTaskStatHook()和OS-TimeTickHook()等。(3)在OS_CPU.ASM文件中用匯編語言編寫4個與處理器相關的函數:運行優先級最高的就緒任務OSStartHighRdy()、任務級的任務切換函數OSCtxSw()和中斷級的任務切換函數OSIntCtxSw()和中斷服務函數OS-
TickISR()[5-6]。
3.3 應用程序
在μC/OS-II中,應用程序以任務形式存在,每個任務都是無限循環的,并處于以下五種狀態之一:休眠態、就緒態、運行態、掛起態和被中斷態[7]。根據中央空調的控制要求,本系統由以下幾個任務來實現。
(1)定義5個基本的信號量用于任務之間的同步:故障信號量、通信信號量、定時采集信號、機組控制信號量和顯示信號量。
(2)初始化任務Task_init()具有最高運行優先級,優先級Prio=10,該任務完成處理器I/O接口的初始化,向量中斷分配與設置,定時器初始化以及I2C、串口等基本功能部件的初始化工作,為后繼任務的運行做準備,只運行一次。
(3)故障處理任務Task_error()為次優先級任務,優先級Prio=11。當獲得Data_err_sem信號后判斷機組故障的類型,按照預先的設定進行實時故障處理,并給出報警、提示故障原因。
(4)數據通信任務Task_comminication()的優先級Prio=12,當有數據傳送請求時便通過以太網與上位機進行通信,完成命令及數據的傳送。
(5)數據采集任務Task_collect()優先級Prio= 13,主要完成周期性地采集各路溫度模擬量、濕度頻率量和開關量信號的輸入,為機組控制任務提供運算數據。
(6)機組控制任務Task_control()是整個系統任務中的核心,優先級Prio=14。當獲得采集任務釋放的Data_Control_sem信號后,便對采集過來的各路溫濕度信號及開關量信號進行處理,輸出控制信號,完成對各個調節閥的控制;且當有故障發生時釋放故障信號量Data_err_sem。
(7)顯示任務Task_display()優先級最低,Prio= 15。當獲得顯示信號量Data_Display_sem時任務就緒,刷新機組當前的設置參數及運行狀態。
系統整體軟件流程圖如圖3所示。系統初始化后便建立各個運行任務,啟動多任務調度機制,在各個同步信號的協調下有序運行[8]。本文引用地址:http://www.104case.com/article/151712.htm
3.4 數據處理算法
在機組控制任務Task_control()中需要對采集過來的各路模擬量及數字量信號進行處理,以得到合適的輸出控制信號,選取何種處理方法直接關系到控制器的控制品質。針對中央空調對象大慣性、大滯后、非線性等特性,常規PID控制無論在參數整定還是在控制精度或控制過程都存在不足[4,9]。本系統采用基于T-S模型的模糊神經網絡[10]參數自整定PID控制方法,利用神經網絡經訓練后可以逼近任意非線性關系特性,并綜合了PID控制與模糊控制各自的優勢。圖4為控制系統結構圖[9],模糊神經網絡模塊根據誤差及其變換率實時地修改PID控制器的3個參數,使其處于最優狀態。圖5為基于T-S模型神經網絡結構圖[11]。
評論