基于DSP/BIOS大空間網(wǎng)絡(luò)型火災探測系統(tǒng)設(shè)計
系統(tǒng)軟件設(shè)計流程如圖4所示。首先對DSP/BIOS模塊進行靜態(tài)配置,包括設(shè)置內(nèi)、外部存儲器的映射空間,創(chuàng)建多任務線程及所需堆棧,配置TI網(wǎng)絡(luò)開發(fā)包NDK的啟動環(huán)境,分配旗語、郵箱通信機制的存儲位置及大小等。其中創(chuàng)建的多任務線程包括系統(tǒng)控制任務、視頻輸入任務、算法處理任務、圖像JPEG壓縮任務、網(wǎng)絡(luò)初始化任務、串口通信任務。在應用程序進入DSE/BIOS線程調(diào)度器之前,處理器需要完成3個模塊的初始化:(1)芯片板級間的初始化,包括CSL、RAM、Cache及EDMA的設(shè)置。(2)RF5模塊的初始化,包括通道模塊,SCOM模塊及ICC模塊。一個任務可以創(chuàng)建多個通道,每個通道可以包含多個內(nèi)核,每個內(nèi)核只能包含一種標準算法。(3)視頻捕獲(FVID)通道的建立與啟動。本文引用地址:http://www.biyoush.com/article/149019.htm
應用程序的Main()函數(shù)在完成系統(tǒng)初始化任務后退出,程序控制權(quán)正式交給DSP/BIOS任務線程調(diào)度器,根據(jù)優(yōu)先級和RF5中的任務切換準則調(diào)度各任務線程。為保證網(wǎng)絡(luò)傳輸?shù)膶崟r性,應將網(wǎng)絡(luò)初始化任務的優(yōu)先級配置成高于其他任務的優(yōu)先級。處于同一優(yōu)先級的任務之間利用同步通信機制SCOM模塊進行信息傳遞,同時基于RF5的SCOM通信機制內(nèi)部,制定了任務調(diào)用及切換規(guī)則,這樣就避免了多個任務同時訪問一個隊列指針的情況。
3.1 視頻輸入任務
系統(tǒng)主線程已經(jīng)創(chuàng)建且打開了視頻捕獲通道,并初始化了FVID對象。該任務首先啟動SCOM消息隊列,從捕獲通道的緩沖區(qū)獲取一幀圖片,然后利用SCOM隊列指針將視頻數(shù)據(jù)傳輸至算法處理任務。此時,該任務處于阻塞狀態(tài),等待算法處理任務接收完成的返回消息,系統(tǒng)切換至算法處理任務,直到接收到返回消息,視頻輸入任務才處于等待狀態(tài),等待下一個循環(huán)重新采集視頻。每一個任務都不斷地處于等待消息與處理數(shù)據(jù)的狀態(tài)中。
3.2 算法處理任務
該任務分別創(chuàng)建了火焰檢測通道對象FIRE_CHAN_Obj與煙霧檢測通道對象SMOCK_CHAN_Obj。每一個核對像都要在被初始化以后再調(diào)用注冊函數(shù)CHAN_regCell(),通過這種方式可以將每一個核對象注冊到相應的任務通道中。最后,線程調(diào)用函數(shù)CHAN_open()為每個指定的通道(chanNum)傳遞核對像,這樣通道通過調(diào)用核對像來執(zhí)行檢測算法。煙霧檢測算法流程如圖5所示。
評論