<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > μC/OS-II與ARM在中央空調機組控制器中的應用

μC/OS-II與ARM在中央空調機組控制器中的應用

作者: 時(shí)間:2010-07-28 來(lái)源:網(wǎng)絡(luò ) 收藏
Bootloader的主要功能是初始化必要的硬件并啟動(dòng)操作系統。軟件層實(shí)現的相關(guān)控制任務(wù),包括初始化任務(wù)、故障處理任務(wù)、數據通信任務(wù)、數據采集任務(wù)、控制任務(wù)及顯示任務(wù)。底層硬件設備控制驅動(dòng)層初始化微與外圍部件管腳連接的配置,建立處理器與外圍功能電路之間的關(guān)聯(lián),與具體硬件電路相關(guān)。功能部件命令接口驅動(dòng)實(shí)現處理器各個(gè)功能模塊的運作機制,如串口、SPI、CAN等模塊,該層函數由上兩層調用。功能部件協(xié)議實(shí)現層提供各功能模塊初始化函數、讀寫(xiě)函數以及中斷處理函數等。上兩層軟件設計與操作系統密切相關(guān),利用操作系統管理控制任務(wù)、實(shí)現任務(wù)間的數據交互通信和延時(shí)等。
3.2 移植μ
LPC2210的7TDMI-S內核用 ADS1.2作為編譯器移植μ。μ的移植涉及到與處理器及編譯器相關(guān)的OS_CPU.H、OS_CPU_C.C和OS_CPU_A.S 3個(gè)文件。其包括以下內容:(1)設置OS_CPU.H頭文件中與處理器和編譯器相關(guān)的代碼,如整數、浮點(diǎn)數、堆棧等數據類(lèi)型定義,打開(kāi)或者關(guān)閉中斷函數設置,定義堆棧增長(cháng)方向,任務(wù)切換的執行代碼。(2)用C語(yǔ)言在OS_CPU_C.C文件中編寫(xiě)若干與操作系統相關(guān)函數,如任務(wù)堆棧初始化函數OSTaskStkInit();μC/OS-II在執行某些操作時(shí)調用的用戶(hù)函數,如OSTaskCreateHook()、OS-TaskDelHook()、OSTaskSwHook()、OSTaskStatHook()和OS-TimeTickHook()等。(3)在OS_CPU.ASM文件中用匯編語(yǔ)言編寫(xiě)4個(gè)與處理器相關(guān)的函數:運行優(yōu)先級最高的就緒任務(wù)OSStartHighRdy()、任務(wù)級的任務(wù)切換函數OSCtxSw()和中斷級的任務(wù)切換函數OSIntCtxSw()和中斷服務(wù)函數OS-
TickISR()[5-6]。
3.3 程序
在μC/OS-II中,程序以任務(wù)形式存在,每個(gè)任務(wù)都是無(wú)限循環(huán)的,并處于以下五種狀態(tài)之一:休眠態(tài)、就緒態(tài)、運行態(tài)、掛起態(tài)和被中斷態(tài)[7]。根據的控制要求,本系統由以下幾個(gè)任務(wù)來(lái)實(shí)現。
(1)定義5個(gè)基本的信號量用于任務(wù)之間的同步:故障信號量、通信信號量、定時(shí)采集信號、控制信號量和顯示信號量。
(2)初始化任務(wù)Task_init()具有最高運行優(yōu)先級,優(yōu)先級Prio=10,該任務(wù)完成處理器I/O接口的初始化,向量中斷分配與設置,定時(shí)器初始化以及I2C、串口等基本功能部件的初始化工作,為后繼任務(wù)的運行做準備,只運行一次。
(3)故障處理任務(wù)Task_error()為次優(yōu)先級任務(wù),優(yōu)先級Prio=11。當獲得Data_err_sem信號后判斷故障的類(lèi)型,按照預先的設定進(jìn)行實(shí)時(shí)故障處理,并給出報警、提示故障原因。
(4)數據通信任務(wù)Task_comminication()的優(yōu)先級Prio=12,當有數據傳送請求時(shí)便通過(guò)以太網(wǎng)與上位機進(jìn)行通信,完成命令及數據的傳送。
(5)數據采集任務(wù)Task_collect()優(yōu)先級Prio= 13,主要完成周期性地采集各路溫度模擬量、濕度頻率量和開(kāi)關(guān)量信號的輸入,為機組控制任務(wù)提供運算數據。
(6)機組控制任務(wù)Task_control()是整個(gè)系統任務(wù)中的核心,優(yōu)先級Prio=14。當獲得采集任務(wù)釋放的Data_Control_sem信號后,便對采集過(guò)來(lái)的各路溫濕度信號及開(kāi)關(guān)量信號進(jìn)行處理,輸出控制信號,完成對各個(gè)調節閥的控制;且當有故障發(fā)生時(shí)釋放故障信號量Data_err_sem。
(7)顯示任務(wù)Task_display()優(yōu)先級最低,Prio= 15。當獲得顯示信號量Data_Display_sem時(shí)任務(wù)就緒,刷新機組當前的設置參數及運行狀態(tài)。
系統整體軟件流程圖如圖3所示。系統初始化后便建立各個(gè)運行任務(wù),啟動(dòng)多任務(wù)調度機制,在各個(gè)同步信號的協(xié)調下有序運行[8]。

本文引用地址:http://dyxdggzs.com/article/151712.htm

3.4 數據處理算法
在機組控制任務(wù)Task_control()中需要對采集過(guò)來(lái)的各路模擬量及數字量信號進(jìn)行處理,以得到合適的輸出控制信號,選取何種處理方法直接關(guān)系到的控制品質(zhì)。針對對象大慣性、大滯后、非線(xiàn)性等特性,常規PID控制無(wú)論在參數整定還是在控制精度或控制過(guò)程都存在不足[4,9]。本系統采用基于T-S模型的模糊神經(jīng)網(wǎng)絡(luò )[10]參數自整定PID控制方法,利用神經(jīng)網(wǎng)絡(luò )經(jīng)訓練后可以逼近任意非線(xiàn)性關(guān)系特性,并綜合了PID控制與模糊控制各自的優(yōu)勢。圖4為控制系統結構圖[9],模糊神經(jīng)網(wǎng)絡(luò )模塊根據誤差及其變換率實(shí)時(shí)地修改PID的3個(gè)參數,使其處于最優(yōu)狀態(tài)。圖5為基于T-S模型神經(jīng)網(wǎng)絡(luò )結構圖[11]。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>