資源描述:
《基于μc/os-ⅱ的火災(zāi)視頻監(jiān)測(cè)終端應(yīng)用軟件設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、基于uc/OS-II的火災(zāi)視頻監(jiān)測(cè)終端應(yīng)用1=軟件設(shè)計(jì)與實(shí)現(xiàn)豳基于p,C/OS-II的火災(zāi)視頻監(jiān)測(cè)終端應(yīng)用軟件設(shè)計(jì)與實(shí)現(xiàn)何鵬(齊齊哈爾大學(xué)通信與電子工程學(xué)院,黑龍江齊齊哈爾161006)火災(zāi)是造成森林破壞的主要原因之一,全世界每年發(fā)生的森林火災(zāi)大約為20萬(wàn)次,因此而造成的森林面積損失每年約為1%。,林火多發(fā)國(guó)家更高達(dá)2%e.-8%.,為了減少森林火災(zāi)造成的損失,世界各國(guó)都很重視對(duì)森林火災(zāi)的研究?木文研究的森林火災(zāi)視頻監(jiān)控終端采用?C/OS—II作為ARM的嵌入式操作系統(tǒng),提出了針對(duì)視頻圖像連續(xù)性要求不高,且在低碼率傳輸條件下的軟件
2、實(shí)現(xiàn)方案,其主要應(yīng)用于無(wú)人職守的了望點(diǎn).1視頻監(jiān)測(cè)終端硬件原理本文研究的視頻監(jiān)控儀采用ARM+DSP+GPRS結(jié)構(gòu),利用DSP強(qiáng)大的運(yùn)算功能實(shí)現(xiàn)軟件壓縮編碼?相對(duì)使用ASIC專用壓縮芯片實(shí)現(xiàn)視頻壓縮,用這種方法實(shí)現(xiàn)的產(chǎn)品升級(jí)和算法的更改都很方便?因此,隨著DSP和嵌入式MCU運(yùn)算速度的快速發(fā)展,這種方法將越來(lái)越顯現(xiàn)出其強(qiáng)大的生命力.該方法實(shí)現(xiàn)的視頻監(jiān)控終端原理如圖1所示.模擬攝像頭IJ圖像緩存器視頻采樣.1圖像壓縮1模塊TMS320壓縮后的圖像11嵌入式CPUI21o4圖1視頻監(jiān)控終端原理圖2視頻監(jiān)測(cè)終端軟件設(shè)計(jì)2.1LPC210
3、4的啟動(dòng)代碼收稿日期:20016-01—16基金項(xiàng)目:黑龍江省教育廳科研基金”熱成像型森林火災(zāi)報(bào)警系統(tǒng)與圖像處理方法研究”(10541262)嵌入式系統(tǒng)的資源有限,應(yīng)用稈序通常都是固化在ROM中運(yùn)行.ROM中的程序執(zhí)行前需要對(duì)系統(tǒng)破件和軟件運(yùn)行環(huán)境進(jìn)行初始化,這些工作是用匯編語(yǔ)言和C語(yǔ)言編寫的啟動(dòng)代碼完成的?芯片的啟動(dòng)代碼是芯片復(fù)位后進(jìn)入操作系統(tǒng)之前執(zhí)行的一段代碼,主要是為運(yùn)行操作系統(tǒng)提供基木的運(yùn)行環(huán)境,如初始化CPU堆棧,初始化存儲(chǔ)器系統(tǒng)等.啟動(dòng)代碼與CPU芯片的內(nèi)核結(jié)構(gòu),具體芯片和使用的操作系統(tǒng)等因素有關(guān).基于LPC2104和
4、~C/OS—II操作系統(tǒng)的啟動(dòng)程序流程如圖2所示.設(shè)置程睜入口指針(PC設(shè)置中斷向量表初始化CPU寄存器和堆棧始化系統(tǒng)各部分時(shí)鐘初始化存儲(chǔ)器加速模塊二二二]二=初始化片內(nèi)外設(shè)端口初始化應(yīng)用程序內(nèi)存空間圖2系統(tǒng)啟動(dòng)代碼2.2-C/OS—II在LPC2104上的移植引導(dǎo)操作系統(tǒng)結(jié)束RTOS的移植就是使一個(gè)實(shí)時(shí)內(nèi)核能在某個(gè)微處理器或微控制器上運(yùn)行.?C/OS—II在設(shè)計(jì)之初就考慮到了移植問(wèn)題,它的大部分代碼是一些與處理器沒(méi)有關(guān)聯(lián)的C語(yǔ)言程序,但也存在一些與處理器相關(guān)的代碼(包括匯編語(yǔ)言和C語(yǔ)言),這是因?yàn)?C/OS—II在讀寫處理器寄存
5、器時(shí)一般只能通過(guò)匯編語(yǔ)言來(lái)實(shí)現(xiàn)?另外,因任務(wù)切換時(shí)間和臨界區(qū)大小是衡量一個(gè)RTOS實(shí)時(shí)性最重要的兩個(gè)技術(shù)指標(biāo),所以這些代碼應(yīng)由高效第34卷2006年第6期1JI率的匯編代碼來(lái)實(shí)現(xiàn).與處理器無(wú)關(guān)的代碼包含了c/Os—II的系統(tǒng)函數(shù),移植時(shí)只耍將p~C/OS—II,C文件包含在自己的項(xiàng)目屮,即可將P-C/OS—II屮所有與MCU無(wú)關(guān)的代碼包含到移植的代碼中?與處理器相關(guān)的代碼包含了對(duì)各種不同類型MCU的支持,需要根據(jù)自己的MCU對(duì)這部分進(jìn)行修改.移植p?C/OS—II主要包括:設(shè)置堆棧的增長(zhǎng)方面,聲明3個(gè)宏(開中斷,關(guān)中斷和任務(wù)切換)
6、,聲明10個(gè)與編譯器相關(guān)的數(shù)據(jù)類型;用c語(yǔ)言編寫6個(gè)與操作系統(tǒng)相關(guān)的函數(shù)(任務(wù)堆棧初始化函數(shù)和5個(gè)鉤子函數(shù));用匯編語(yǔ)言編寫4個(gè)與處理器相關(guān)的函數(shù).2.3ARM的RTOS應(yīng)用軟件設(shè)計(jì)p?C/OS-II提供了全部的源代碼,應(yīng)用程序一般同RTOS一起編譯,并生成燒寫文件,也可事先將p-C/OS-II的部分代碼編譯成庫(kù)文件,然后將它鏈接編譯.?C/OS-II內(nèi)核包含了任務(wù)調(diào)度,任務(wù)管理,時(shí)間管理,內(nèi)存管理和任務(wù)間的通信與同步等基本功能.用戶根據(jù)自己的需要打開/關(guān)閉某些服務(wù),使得-C/OS-II成為最適合自己應(yīng)用的程序?圖3是木系統(tǒng)基于p
7、?C/OS-II的系統(tǒng)軟件結(jié)構(gòu)圖.串行通信任務(wù)11狀態(tài)顯示任務(wù)網(wǎng)絡(luò)上層服務(wù)程序1網(wǎng)絡(luò)上層服務(wù)程序2圖3基于I?C/OS—II的系統(tǒng)軟件結(jié)構(gòu)圖首先,指定所需要的最大任務(wù)數(shù)和最低優(yōu)先級(jí)值.t~C/OS—II在程序編譯時(shí)就生成了最大任務(wù)數(shù)目的OSTCBTbl任務(wù)控制塊數(shù)據(jù)結(jié)構(gòu)和OSTCBPrioTbl優(yōu)先級(jí)任務(wù)塊數(shù)據(jù)結(jié)構(gòu)?如果設(shè)置過(guò)大的任務(wù)數(shù)和優(yōu)先級(jí)值,將會(huì)無(wú)端地消耗不必要的存儲(chǔ)器?本系統(tǒng)中,系統(tǒng)任務(wù)層并行存在的幾個(gè)任務(wù)按其優(yōu)先級(jí)從高到低依次為:TMS320C6701火災(zāi)報(bào)警處理任務(wù),網(wǎng)絡(luò)數(shù)據(jù)收發(fā)任務(wù),兩個(gè)網(wǎng)絡(luò)上層服務(wù)任務(wù),網(wǎng)絡(luò)協(xié)議處理
8、任務(wù),串行通信任務(wù),狀態(tài)顯示任務(wù)和兩個(gè)系統(tǒng)任務(wù)總共9個(gè)任務(wù);各任務(wù)的優(yōu)先級(jí)是根據(jù)本系統(tǒng)各部分對(duì)相應(yīng)時(shí)間的不同來(lái)決定的,并且采用靜態(tài)優(yōu)先權(quán),即運(yùn)行過(guò)程中任務(wù)優(yōu)先1賊所以張fEOs卜?AXJASKS=I1,OS_LOWESTPRIO=15.其次,指定所